<!--{{{-->
<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]];}

.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]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#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 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.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:0 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 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding: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 0;}
.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 0 0 0.5em;}
.tab {margin:0 0 0 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 0 14em;}

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

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

.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:0 0.25em; padding:0 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:0 3px 0 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 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

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

.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;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding: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;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<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 excludeLists'></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>>
''[[The Mouse That Roared|https://thepiratebay.org/torrent/4072072/The_Mouse_That_Roared_(1959)_(Peter_Sellers__Jean_Seberg)]] - [[Prophecy 80 Pound Pistol Crossbow|https://www.amazon.com/dp/B00SI8TZCK/_encoding=UTF8?coliid=I3VMAYCT3G1GQG&colid=27Y18XJ9539G3]] - [[StrandBeest Home Page|https://www.exploratorium.edu/strandbeest]]''
[[Living Sculptures Move Without Electricity - Theo Jansen's Strandbeests|https://youtu.be/kWwXrSyuGIA]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/kWwXrSyuGIA" frameborder="0" allowfullscreen></iframe></html>
[[Theo Jansen|https://en.wikipedia.org/wiki/Theo_Jansen]]
<<miniBrowser https://en.wikipedia.org/wiki/Theo_Jansen>>
<<miniBrowser http://www.aluminumdiecastingsupplier.com/products/Aluminum-shell-prototyping-parts-3016492.html>>
''[[Additive Manufacturing - Ceramic 3D Printing Breakthrough|http://blenderorganizer.tiddlyspot.com/#%5B%5BAdditive%20Manufacturing%20-%20Ceramic%203D%20Printing%20Breakthrough%5D%5D]] Youtube - [[Math Channels|http://scienceport.tiddlyspot.com/#%5B%5BMath%20Channels%5D%5D]]''
<html><iframe width="560" height="315" src="https://www.youtube.com/embed/n16GdJ__Pp8" frameborder="0" allowfullscreen></iframe></html>
''[[To Farm Out Work or Not To Farm Out Work?|http://psychology.tiddlyspot.com/#%5B%5BTo%20Farm%20Out%20Work%20or%20Not%20To%20Farm%20Out%20Work%3F%5D%5D]] - [[Virtual Reality Glasses|http://mediaport.tiddlyspot.com/#%5B%5BWorlds%20First%204K%20VR%20-%20HALF%20PRICE%20of%20a%20HTC%20VIVE%5D%5D]] - [[Barbi (Klein) Benton|https://youtu.be/A1o-gLIh10w]] ([[2|http://www.hgtv.com/videos/barbis-copper-dream-palace-0217813]])''
''[[DIY Low Cost Tiny Home made of Air crete|https://youtu.be/b9Gmor0I3mw]] - [[Creation of a Medieval Village in Blender 2.79|https://youtu.be/GlyhFyfVGbE]]''
''What if you could startup a [[Pony Express Ebike Battery Exchange, Charging Station and Database|http://inventoryport.tiddlyspot.com/#%5B%5BPony%20Express%20Ebike%20Battery%20Exchange%2C%20Charging%20Station%20and%20Database%5D%5D]]
in any bicycle shop, hostile, or apartment building that features an exercise room, nation wide on [[Google Docs|https://docs.google.com/]]? - [[Tesla Inc.|http://scienceport.tiddlyspot.com/#%5B%5BTesla%20Inc.%5D%5D]]''
''When you are traveling, carrying a large lithium battery for an Ebike on an airplane is not allowed. Exchange it with Bitcoin.''
# ''What production would be the bees knees for the King of Thailand? - [[CMS Bali 250cc Water Cooled Moped|http://countyimports.com/inc/sdetail/cms-bali-250cc-water-cooled-touring-edition-motor-scooter-moped-for-sale---free-shipping--mp-5018--/25503/22831]] - $2,099.96
Gasoline Vehicles do not need Transmissions, they need electric wheels for Serial Power assist. (Reducing emissions).
A [[Cyclamatic Power Plus eBike|https://www.amazon.com/dp/B002AQHM3U/_encoding=UTF8?coliid=I4NFDTMNXZ0LE&colid=27Y18XJ9539G3]] with a connection for a [[Savannamama 26" 2-Stroke 66CC/80CC gBike|https://www.amazon.com/dp/B01I3NL5S6/_encoding=UTF8?coliid=I38B6Q7EW7CHLG&colid=27Y18XJ9539G3]] as a sidecar
(autonomous and Covered) to pull a Rickshaw Carriage (no range limitations). [[TL;DR - What Was the Mouse Utopia?|https://youtu.be/HfNKFvHtA3g]]''
# '' [[DongFang (150CC :: 3 Wheel reverse trike|http://countyimports.com/inc/sdetail/dongfang--150cc----3-wheel-reverse-trike---motor-scooter---free-shipping---df-12567--/19235/40309]] - $1,959.95 - with front electric wheels - http://dmvnv.com/newresident.htm''
''[[How to Make a Google Home on Raspberry Pi without MagPi 57 Kit|http://n6xre.tiddlyspot.com/#%5B%5BHow%20to%20Make%20a%20Google%20Home%20on%20Raspberry%20Pi%20without%20MagPi%2057%20Kit%5D%5D]]''
''[[Aluminum shell prototyping|Aluminum shell prototyping parts|http://n6xre.tiddlyspot.com/#%5B%5BAluminum%20shell%20prototyping%20parts%5D%5D]] - [[Sculpteo|https://www.sculpteo.com/en/]] - [[Baofeng Radio TNC Packet Radio|http://n6xre.tiddlyspot.com/#%5B%5BBaofeng%20Radio%20TNC%20Packet%20Radio%20cable%5D%5D]]''
''[[Anet A8 3D Printer Kit|http://scienceport.tiddlyspot.com/#%5B%5BAnet%20A8%20Desktop%203D%20Printer%20Prusa%20i3%20DIY%20Kit%5D%5D]] - [[Consciousness is similar to the Astronomy of time and space|http://n6xre.tiddlyspot.com/#%5B%5BConsciousness%20is%20similar%20to%20the%20Astronomy%20of%20time%20and%20space%5D%5D]]''
''[[Water Memory (Documentary of 2014 about Nobel Prize laureate Luc Montagnier)|https://youtu.be/R8VyUsVOic0]]''
''[[Making Gears|http://blenderorganizer.tiddlyspot.com/#%5B%5BMaking%20Gears%5D%5D]] - [[Danielle Fong|https://youtu.be/MaebOLfdSd8]] - [[Elon Musk tells all, strange events.|https://youtu.be/RPOLlAqBe1g]] - [[Red Skelton Albert Hall|https://youtu.be/3Pf5DIkd0xo]]''
I was adopted by [[Robert Rust in Yuba City, California, 95991|https://www.instantcheckmate.com/people/robert-rust/?state=California&city=Yuba+City&zip=95991]] the second husband of Elizabeth Ann Turner. 
My natural name is Gary Allen Snow ([[PDQ|http://www.thesaurus.com/browse/pdq]] - [[The Virtual King of Speed|https://youtu.be/Hg2zx95CgdA]] + 71) - [[To This Day Project|https://youtu.be/ltun92DfnPY]]
''[[Author Brian Shul on piloting the SR-71|https://youtu.be/wigZsFypdyI]]'' - [[The flight that rocked the Soviet Union|http://n6xre.tiddlyspot.com/#%5B%5BThe%20flight%20that%20rocked%20the%20Soviet%20Union%5D%5D]] - [[Rrustdon (ficticious)|https://youtu.be/eenZZL_bf6o]]<br> <html><iframe width="560" height="315" src="https://www.youtube.com/embed/wigZsFypdyI" frameborder="0" allowfullscreen></iframe></html>
[[Photorealistic Facial Texture Inference Using Deep Neural Networks|http://scienceport.tiddlyspot.com/#%5B%5BPhotorealistic%20Facial%20Texture%20Inference%20Using%20Deep%20Neural%20Networks%5D%5D]]

''[[Universal Licensing System|http://n6xre.tiddlyspot.com/#%5B%5BUniversal%20Licensing%20System%5D%5D]] - [[A Protocol for Offline Bitcoin Over Radio Transactions|http://n6xre.tiddlyspot.com/#%5B%5BA%20Protocol%20for%20Offline%20Bitcoin%20Over%20Radio%20Transactions%5D%5D]] - [[HP Laptop Store|http://store.hp.com/us/en/vwa/Laptops/form=Standard-laptop]]''
See ''[[Anet A8 3D Printer Kit|http://scienceport.tiddlyspot.com/#%5B%5BAnet%20A8%20Desktop%203D%20Printer%20Prusa%20i3%20DIY%20Kit%5D%5D]] - [[DIY Electric Bike - 3d Printed|http://scienceport.tiddlyspot.com/#%5B%5BDIY%20Electric%20Bike%20-%203d%20Printed%5D%5D]] - [[Lilium VTOL ElectroJet|https://lilium.com/]] - [[Tesla, Inc.|https://www.tesla.com/]] - [[BCI|https://en.wikipedia.org/wiki/Brain%E2%80%93computer_interface]] - [[Railgun|https://en.wikipedia.org/wiki/Railgun]] - [[Ship Parts|http://psychology.tiddlyspot.com/#%5B%5BShip%20Parts%5D%5D]]''
''[[The Mouse That Roared|https://thepiratebay.org/torrent/4072072/The_Mouse_That_Roared_(1959)_(Peter_Sellers__Jean_Seberg)]] - [[Prophecy 80 Pound Pistol Crossbow|https://www.amazon.com/dp/B00SI8TZCK/_encoding=UTF8?coliid=I3VMAYCT3G1GQG&colid=27Y18XJ9539G3]] - [[3D Printed Theo Jansen Crossbow Tank|http://blenderorganizer.tiddlyspot.com/#%5B%5B3D%20Printed%20Theo%20Jansen%20Crossbow%20Tank%5D%5D]]''
[[Internet Radio|https://www.internet-radio.com]] - [[PhuketLiveRadio|http://www.thephuketnews.com/radio/listen.php#5KdBJpbAL5yeyc3v.97]] - https://time.is/Phuket - [[Ambient Art Foundation on RadioForest|http://www.radioforest.net/radio/ambient-art-foundation/700272]] - ''[[Thingiverse|https://www.thingiverse.com/]]''
[[Shoutcast]] - [[Psychillosis.pls|https://yp.shoutcast.com/sbin/tunein-station.pls?id=543496]] (for an external player) - http://websdr.suws.org.uk/ @ 196.00 kHz AM
<<miniBrowser http://www.shoutcast.com/Search?query=Psy>>
''[[Democratizing Bio-Sensing Tools With OpenBCI|https://youtu.be/c7v5urh06kM]] - [[UCMJ|http://n6xre.tiddlyspot.com/#%5B%5BThe%20flight%20that%20rocked%20the%20Soviet%20Union%5D%5D]] - [[THE BORG|https://en.wikipedia.org/wiki/Borg_(Star_Trek)]] - [[Rendering Photorealistic CGI|http://blenderorganizer.tiddlyspot.com/#%5B%5BThe%20Science%20of%20Rendering%20Photorealistic%20CGI%5D%5D]]''<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/c7v5urh06kM" frameborder="0" allowfullscreen></iframe></html>
''[[A Helicopter pad on an airplane.|http://h8quadmod.tiddlyspot.com/#%5B%5BA%20Helicopter%20pad%20on%20an%20airplane%5D%5D]] The helicopter controls a submarine. The submarine is a drone sub''
''with no personnel. The submarine has a helicopter pad for inspection and repair. After a mission''
''the helicopter would be able to land back on the airplane pad. Also, remote control the helicopter.''
''[[Solar powered submarine|https://www.google.com/search?client=ubuntu&channel=fs&q=Borg&ie=utf-8&oe=utf-8#channel=fs&q=solar+powered+submarine]] - [[Submarine Robots Powered by Renewable Energy|https://youtu.be/Iu7_UkhFyn0]] - [[Circumnavigation|https://en.wikipedia.org/wiki/Circumnavigation]]''
''[[Fusion power|https://en.wikipedia.org/wiki/Fusion_power]] - [[Tesla, Inc.|https://www.tesla.com/]] should also make [[eBikes|https://www.amazon.com/gp/product/B002AQHM3U/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1]] and [[Lilium VTOL ElectroJet|https://lilium.com/]]s - [[SpaceX|https://en.wikipedia.org/wiki/SpaceX]]''
''[[Koenigsegg|https://youtu.be/H2mTriy9oQM]] [[Flexible-fuel|https://en.wikipedia.org/wiki/Flexible-fuel_vehicle]] (Propane?)  [[Turbo-Electric|https://en.wikipedia.org/wiki/Gas_turbine_locomotive]] Charging Station Trailer for Tesla Products.''
[[Anonine VPN|https://anonine.com/en/guides/openvpn-ubuntu-14.04-64bit]]
<<miniBrowser https://anonine.com/en/guides/openvpn-ubuntu-14.04-64bit>>
<<miniBrowser https://www.ivpn.net/>>
text/plain
.txt .text .js .vbs .asp .cgi .pl
----
text/html
.htm .html .hta .htx .mht
----
text/comma-separated-values
.csv
----
text/javascript
.js
----
text/css
.css
----
text/xml
.xml .xsl .xslt
----
image/gif
.gif
----
image/jpeg
.jpg .jpe .jpeg
----
image/png
.png
----
image/bmp
.bmp
----
image/tiff
.tif .tiff
----
audio/basic
.au .snd
----
audio/wav
.wav
----
audio/x-pn-realaudio
.ra .rm .ram
----
audio/x-midi
.mid .midi
----
audio/mp3
.mp3
----
audio/m3u
.m3u
----
video/x-ms-asf
.asf
----
video/avi
.avi
----
video/mpeg
.mpg .mpeg
----
video/quicktime
.qt .mov .qtvr
----
application/pdf
.pdf
----
application/rtf
.rtf
----
application/postscript
.ai .eps .ps
----
application/wordperfect
.wpd
----
application/mswrite
.wri
----
application/msexcel
.xls .xls3 .xls4 .xls5 .xlw
----
application/msword
.doc
----
application/mspowerpoint
.ppt .pps
----
application/x-director
.swa
----
application/x-shockwave-flash
.swf
----
application/x-zip-compressed
.zip
----
application/x-gzip
.gz
----
application/x-rar-compressed
.rar
----
application/octet-stream
.com .exe .dll .ocx
----
application/java-archive
.jar
[[AttachFilePlugin]] reads binary data from locally-stored files (e.g., images, PDFs, mp3's, etc.) and converts it to base64-encoded text that is stored in tiddlers tagged with<<tag attachment>>. [[AttachFilePluginFormatters]] allows you to use those tiddlers in place of the external path/file references that are normally part of the image and external links wiki syntax.

[[FileDropPlugin]] and [[FileDropPluginConfig]] allow you to quickly create attachment tiddlers simply by dragging files directly from your system's desktop folder display and dropping it onto an open TiddlyWiki document.  Text files are automatically created as simple tiddlers, while binary files are automatically encoded and attached.
/***
|Name|AttachFilePlugin|
|Source|http://www.TiddlyTools.com/#AttachFilePlugin|
|Documentation|http://www.TiddlyTools.com/#AttachFilePluginInfo|
|Version|4.0.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|AttachFilePluginFormatters, AttachFileMIMETypes|
|Description|Store binary files as base64-encoded tiddlers with fallback links for separate local and/or remote file storage|
Store or link binary files (such as jpg, gif, pdf or even mp3) within your TiddlyWiki document and then use them as images or links from within your tiddler content.
> Important note: As of version 3.6.0, in order to //render// images and other binary attachments created with this plugin, you must also install [[AttachFilePluginFormatters]], which extends the behavior of the TiddlyWiki core formatters for embedded images ({{{[img[tooltip|image]]}}}), linked embedded images ({{{[img[tooltip|image][link]]}}}), and external/"pretty" links ({{{[[label|link]]}}}), so that these formatter will process references to attachment tiddlers as if a normal file reference had been provided. |
!!!!!Documentation
>see [[AttachFilePluginInfo]]
!!!!!Inline interface (live)
>see [[AttachFile]] (shadow tiddler)
><<tiddler AttachFile>>
!!!!!Revisions
<<<
2011.02.14 4.0.1 fix OSX error: use picker.file.path
2009.06.04 4.0.0 changed attachment storage format to use //sections// instead of embedded substring markers.
|please see [[AttachFilePluginInfo]] for additional revision details|
2005.07.20 1.0.0 Initial Release
<<<
!!!!!Code
***/
// // version
//{{{
version.extensions.AttachFilePlugin= {major: 4, minor: 0, revision: 1, date: new Date(2011,2,14)};

// shadow tiddler
config.shadowTiddlers.AttachFile="<<attach inline>>";

// add 'attach' backstage task (insert before built-in 'importTask')
if (config.tasks) { // for TW2.2b or above
	config.tasks.attachTask = {
		text: "attach",
		tooltip: "Attach a binary file as a tiddler",
		content: "<<attach inline>>"
	}
	config.backstageTasks.splice(config.backstageTasks.indexOf("importTask"),0,"attachTask");
}

config.macros.attach = {
// // lingo
//{{{
	label: "attach file",
	tooltip: "Attach a file to this document",
	linkTooltip: "Attachment: ",

	typeList: "AttachFileMIMETypes",

	titlePrompt: " enter tiddler title...",
	MIMEPrompt: "<option value=''>select MIME type...</option><option value='editlist'>[edit list...]</option>",
	localPrompt: " enter local path/filename...",
	URLPrompt: " enter remote URL...",

	tiddlerErr: "Please enter a tiddler title",
	sourceErr: "Please enter a source path/filename",
	storageErr: "Please select a storage method: embedded, local or remote",
	MIMEErr: "Unrecognized file format.  Please select a MIME type",
	localErr: "Please enter a local path/filename",
	URLErr: "Please enter a remote URL",
	fileErr: "Invalid path/file or file not found",

	tiddlerFormat: '!usage\n{{{%0}}}\n%0\n!notes\n%1\n!type\n%2\n!file\n%3\n!url\n%4\n!data\n%5\n',

//}}}
// // macro definition
//{{{
	handler:
	function(place,macroName,params) {
		if (params && !params[0])
			{ createTiddlyButton(place,this.label,this.tooltip,this.toggleAttachPanel); return; }
		var id=params.shift();
		this.createAttachPanel(place,id+"_attachPanel",params);
		document.getElementById(id+"_attachPanel").style.position="static";
		document.getElementById(id+"_attachPanel").style.display="block";
	},
//}}}
//{{{
	createAttachPanel:
	function(place,panel_id,params) {
		if (!panel_id || !panel_id.length) var panel_id="_attachPanel";
		// remove existing panel (if any)
		var panel=document.getElementById(panel_id); if (panel) panel.parentNode.removeChild(panel);
		// set styles for this panel
		setStylesheet(this.css,"attachPanel");
		// create new panel
		var title=""; if (params && params[0]) title=params.shift();
		var types=this.MIMEPrompt+this.formatListOptions(store.getTiddlerText(this.typeList)); // get MIME types
		panel=createTiddlyElement(place,"span",panel_id,"attachPanel",null);
		var html=this.html.replace(/%id%/g,panel_id);
		html=html.replace(/%title%/g,title);
		html=html.replace(/%disabled%/g,title.length?"disabled":"");
		html=html.replace(/%IEdisabled%/g,config.browser.isIE?"disabled":"");
		html=html.replace(/%types%/g,types);
		panel.innerHTML=html;
		if (config.browser.isGecko) { // FF3 FIXUP
			document.getElementById("attachSource").style.display="none";
			document.getElementById("attachFixPanel").style.display="block";
		}
		return panel;
	},
//}}}
//{{{
	toggleAttachPanel:
	function (e) {
		if (!e) var e = window.event;
		var parent=resolveTarget(e).parentNode;
		var panel = document.getElementById("_attachPanel");
		if (panel==undefined || panel.parentNode!=parent)
			panel=config.macros.attach.createAttachPanel(parent,"_attachPanel");
		var isOpen = panel.style.display=="block";
		if(config.options.chkAnimate)
			anim.startAnimating(new Slider(panel,!isOpen,e.shiftKey || e.altKey,"none"));
		else
			panel.style.display = isOpen ? "none" : "block" ;
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
		return(false);
	},
//}}}
//{{{
	formatListOptions:
	function(text) {
		if (!text || !text.trim().length) return "";
		// get MIME list content from text
		var parts=text.split("\n----\n");
		var out="";
		for (var p=0; p<parts.length; p++) {
			var lines=parts[p].split("\n");
			var label=lines.shift(); // 1st line=display text
			var value=lines.shift(); // 2nd line=item value
			out +='<option value="%1">%0</option>'.format([label,value]);
		}
		return out;
	},
//}}}
// // interface definition
//{{{
	css:
	".attachPanel { display: none; position:absolute; z-index:10; width:35em; right:105%; top:0em;\
		background-color: #eee; color:#000; font-size: 8pt; line-height:110%;\
		border:1px solid black; border-bottom-width: 3px; border-right-width: 3px;\
		padding: 0.5em; margin:0em; -moz-border-radius:1em;-webkit-border-radius:1em; text-align:left }\
	.attachPanel form { display:inline;border:0;padding:0;margin:0; }\
	.attachPanel select { width:99%;margin:0px;font-size:8pt;line-height:110%;}\
	.attachPanel input  { width:98%;padding:0px;margin:0px;font-size:8pt;line-height:110%}\
	.attachPanel textarea { width:98%;margin:0px;height:2em;font-size:8pt;line-height:110%}\
	.attachPanel table { width:100%;border:0;margin:0;padding:0;color:inherit; }\
	.attachPanel tbody, .attachPanel tr, .attachPanel td { border:0;margin:0;padding:0;color:#000; }\
	.attachPanel .box { border:1px solid black; padding:.3em; margin:.3em 0px; background:#f8f8f8; \
		-moz-border-radius:5px;-webkit-border-radius:5px; }\
	.attachPanel .chk { width:auto;border:0; }\
	.attachPanel .btn { width:auto; }\
	.attachPanel .btn2 { width:49%; }\
	",
//}}}
//{{{
	html:
	'<form>\
		attach from source file\
		<input type="file" id="attachSource" name="source" size="56"\
			onChange="config.macros.attach.onChangeSource(this)">\
		<div id="attachFixPanel" style="display:none"><!-- FF3 FIXUP -->\
			<input type="text" id="attachFixSource" style="width:90%"\
				title="Enter a path/file to attach"\
				onChange="config.macros.attach.onChangeSource(this);">\
			<input type="button" style="width:7%" value="..."\
				title="Enter a path/file to attach"\
				onClick="config.macros.attach.askForFilename(document.getElementById(\'attachFixSource\'));">\
		</div><!--end FF3 FIXUP-->\
		<div class="box">\
		<table style="border:0"><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			embed data <input type=checkbox class=chk name="useData" %IEdisabled% \
				onclick="if (!this.form.MIMEType.value.length)\
					this.form.MIMEType.selectedIndex=this.checked?1:0; ">&nbsp;\
		</td><td style="border:0">\
			<select size=1 name="MIMEType" \
				onchange="this.title=this.value; if (this.value==\'editlist\')\
					{ this.selectedIndex=this.form.useData.checked?1:0; story.displayTiddler(null,config.macros.attach.typeList,2); return; }">\
				<option value=""></option>\
				%types%\
			</select>\
		</td></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			local link <input type=checkbox class=chk name="useLocal"\
				onclick="this.form.local.value=this.form.local.defaultValue=this.checked?config.macros.attach.localPrompt:\'\';">&nbsp;\
		</td><td style="border:0">\
			<input type=text name="local" size=15 autocomplete=off value=""\
				onchange="this.form.useLocal.checked=this.value.length" \
				onkeyup="this.form.useLocal.checked=this.value.length" \
				onfocus="if (!this.value.length) this.value=config.macros.attach.localPrompt; this.select()">\
		</td></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			remote link <input type=checkbox class=chk name="useURL"\
				onclick="this.form.URL.value=this.form.URL.defaultValue=this.checked?config.macros.attach.URLPrompt:\'\';\">&nbsp;\
		</td><td style="border:0">\
			<input type=text name="URL" size=15 autocomplete=off value=""\
				onfocus="if (!this.value.length) this.value=config.macros.attach.URLPrompt; this.select()"\
				onchange="this.form.useURL.checked=this.value.length;"\
				onkeyup="this.form.useURL.checked=this.value.length;">\
		</td></tr></table>\
		</div>\
		<table style="border:0"><tr style="border:0"><td style="border:0;text-align:right;vertical-align:top;width:1%;white-space:nowrap">\
			notes&nbsp;\
		</td><td style="border:0" colspan=2>\
			<textarea name="notes" style="width:98%;height:3.5em;margin-bottom:2px"></textarea>\
		</td><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			attach as&nbsp;\
		</td><td style="border:0" colspan=2>\
			<input type=text name="tiddlertitle" size=15 autocomplete=off value="%title%"\
				onkeyup="if (!this.value.length) { this.value=config.macros.attach.titlePrompt; this.select(); }"\
				onfocus="if (!this.value.length) this.value=config.macros.attach.titlePrompt; this.select()" %disabled%>\
		</td></tr></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			add tags&nbsp;\
		</td><td style="border:0">\
			<input type=text name="tags" size=15 autocomplete=off value="" onfocus="this.select()">\
		</td><td style="width:40%;text-align:right;border:0">\
			<input type=button class=btn2 value="attach"\
				onclick="config.macros.attach.onClickAttach(this)"><!--\
			--><input type=button class=btn2 value="close"\
				onclick="var panel=document.getElementById(\'%id%\'); if (panel) panel.parentNode.removeChild(panel);">\
		</td></tr></table>\
	</form>',
//}}}
// // control processing
//{{{
	onChangeSource:
	function(here) {
		var form=here.form;
		var list=form.MIMEType;
		var theFilename  = here.value;
		var theExtension = theFilename.substr(theFilename.lastIndexOf('.')).toLowerCase();
		// if theFilename is in current document folder, remove path prefix and use relative reference
		var h=document.location.href; folder=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf("/")+1)));
		if (theFilename.substr(0,folder.length)==folder) theFilename='./'+theFilename.substr(folder.length);
		else theFilename='file:///'+theFilename; // otherwise, use absolute reference
		theFilename=theFilename.replace(/\\/g,"/"); // fixup: change \ to /
		form.useLocal.checked = true;
		form.local.value = theFilename;
		form.useData.checked = !form.useData.disabled;
		list.selectedIndex=1;
		for (var i=0; i<list.options.length; i++) // find matching MIME type
			if (list.options[i].value.indexOf(theExtension)!=-1) { list.selectedIndex = i; break; }
		if (!form.tiddlertitle.disabled)
			form.tiddlertitle.value=theFilename.substr(theFilename.lastIndexOf('/')+1); // get tiddlername from filename
	},
//}}}
//{{{
	onClickAttach:
	function (here) {
		clearMessage();
		// get input values
		var form=here.form;
		var src=form.source; if (config.browser.isGecko) src=document.getElementById("attachFixSource");
		src=src.value!=src.defaultValue?src.value:"";
		var when=(new Date()).formatString(config.macros.timeline.dateFormat);
		var title=form.tiddlertitle.value;
		var local = form.local.value!=form.local.defaultValue?form.local.value:"";
		var url = form.URL.value!=form.URL.defaultValue?form.URL.value:"";
		var notes = form.notes.value;
		var tags = "attachment excludeMissing "+form.tags.value;
		var useData=form.useData.checked;
		var useLocal=form.useLocal.checked;
		var useURL=form.useURL.checked;
		var mimetype = form.MIMEType.value.length?form.MIMEType.options[form.MIMEType.selectedIndex].text:"";
		// validate checkboxes and get filename
		if (useData) {
			if (src.length) { if (!theLocation) var theLocation=src; }
			else { alert(this.sourceErr); src.focus(); return false; }
		}
		if (useLocal) {
			if (local.length) { if (!theLocation) var theLocation = local; }
			else { alert(this.localErr); form.local.focus(); return false; }
		}
		if (useURL) {
			if (url.length) { if (!theLocation) var theLocation = url; }
			else { alert(this.URLErr); form.URL.focus(); return false; }
		}
		if (!(useData||useLocal||useURL))
			{ form.useData.focus(); alert(this.storageErr); return false; }
		if (!theLocation)
			{ src.focus(); alert(this.sourceErr); return false; }
		if (!title || !title.trim().length || title==this.titlePrompt)
			{ form.tiddlertitle.focus(); alert(this.tiddlerErr); return false; }
		// if not already selected, determine MIME type based on filename extension (if any)
		if (useData && !mimetype.length && theLocation.lastIndexOf('.')!=-1) {
			var theExt = theLocation.substr(theLocation.lastIndexOf('.')).toLowerCase();
			var theList=form.MIMEType;
			for (var i=0; i<theList.options.length; i++)
				if (theList.options[i].value.indexOf(theExt)!=-1)
					{ var mimetype=theList.options[i].text; theList.selectedIndex=i; break; }
		}
		// attach the file
		return this.createAttachmentTiddler(src, when, notes, tags, title,
			useData, useLocal, useURL, local, url, mimetype);
	},
	getMIMEType:
	function(src,def) {
		var ext = src.substr(src.lastIndexOf('.')).toLowerCase();
		var list=store.getTiddlerText(this.typeList);
		if (!list || !list.trim().length) return def;
		// get MIME list content from tiddler
		var parts=list.split("\n----\n");
		for (var p=0; p<parts.length; p++) {
			var lines=parts[p].split("\n");
			var mime=lines.shift(); // 1st line=MIME type
			var match=lines.shift(); // 2nd line=matching extensions
			if (match.indexOf(ext)!=-1) return mime;
		}
		return def;
	},
	createAttachmentTiddler:
	function (src, when, notes, tags, title, useData, useLocal, useURL, local, url, mimetype, noshow) {
		if (useData) { // encode the data
			if (!mimetype.length) {
				alert(this.MIMEErr);
				form.MIMEType.selectedIndex=1; form.MIMEType.focus();
				return false;
			}
			var d = this.readFile(src); if (!d) { return false; }
			displayMessage('encoding '+src);
			var encoded = this.encodeBase64(d);
			displayMessage('file size='+d.length+' bytes, encoded size='+encoded.length+' bytes');
		}
		var usage=(mimetype.substr(0,5)=="image"?'[img[%0]]':'[[%0|%0]]').format([title]);
		var theText=this.tiddlerFormat.format([
			usage, notes.length?notes:'//none//', mimetype,
			useLocal?local.replace(/\\/g,'/'):'', useURL?url:'',
			useData?('data:'+mimetype+';base64,'+encoded):'' ]);
		store.saveTiddler(title,title,theText,config.options.txtUserName,new Date(),tags);
		var panel=document.getElementById("attachPanel"); if (panel) panel.style.display="none";
		if (!noshow) { story.displayTiddler(null,title); story.refreshTiddler(title,null,true); }
		displayMessage('attached "'+title+'"');
		return true;
	},
//}}}
// // base64 conversion
//{{{
	encodeBase64:
	function (d) {
		if (!d) return null;
		// encode as base64
		var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
		var out="";
		var chr1,chr2,chr3="";
		var enc1,enc2,enc3,enc4="";
		for (var count=0,i=0; i<d.length; ) {
			chr1=d.charCodeAt(i++);
			chr2=d.charCodeAt(i++);
			chr3=d.charCodeAt(i++);
			enc1=chr1 >> 2;
			enc2=((chr1 & 3) << 4) | (chr2 >> 4);
			enc3=((chr2 & 15) << 2) | (chr3 >> 6);
			enc4=chr3 & 63;
			if (isNaN(chr2)) enc3=enc4=64;
			else if (isNaN(chr3)) enc4=64;
			out+=keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4);
			chr1=chr2=chr3=enc1=enc2=enc3=enc4="";
		}
		return out;
	},
	decodeBase64: function(input) {
		var out="";
		var chr1,chr2,chr3;
		var enc1,enc2,enc3,enc4;
		var i = 0;
		// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
		input=input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
		do {
			enc1=keyStr.indexOf(input.charAt(i++));
			enc2=keyStr.indexOf(input.charAt(i++));
			enc3=keyStr.indexOf(input.charAt(i++));
			enc4=keyStr.indexOf(input.charAt(i++));
			chr1=(enc1 << 2) | (enc2 >> 4);
			chr2=((enc2 & 15) << 4) | (enc3 >> 2);
			chr3=((enc3 & 3) << 6) | enc4;
			out=out+String.fromCharCode(chr1);
			if (enc3!=64) out=out+String.fromCharCode(chr2);
			if (enc4!=64) out=out+String.fromCharCode(chr3);
		} while (i<input.length);
		return out;
	},
//}}}
// // I/O functions
//{{{
	readFile: // read local BINARY file data
	function(filePath) {
		if(!window.Components) { return null; }
		try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
		catch(e) { alert("access denied: "+filePath); return null; }
		var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
		try { file.initWithPath(filePath); } catch(e) { alert("cannot read file - invalid path: "+filePath); return null; }
		if (!file.exists()) { alert("cannot read file - not found: "+filePath); return null; }
		var inputStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
		inputStream.init(file, 0x01, 00004, null);
		var bInputStream = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Components.interfaces.nsIBinaryInputStream);
		bInputStream.setInputStream(inputStream);
		return(bInputStream.readBytes(inputStream.available()));
	},
//}}}
//{{{
	writeFile:
	function(filepath,data) {
		// TBD: decode base64 and write BINARY data to specified local path/filename
		return(false);
	},
//}}}
//{{{
	askForFilename: // for FF3 fixup
	function(target) {
		var msg=config.messages.selectFile;
		if (target && target.title) msg=target.title; // use target field tooltip (if any) as dialog prompt text
		// get local path for current document
		var path=getLocalPath(document.location.href);
		var p=path.lastIndexOf("/"); if (p==-1) p=path.lastIndexOf("\\"); // Unix or Windows
		if (p!=-1) path=path.substr(0,p+1); // remove filename, leave trailing slash
		var file=""
		var result=window.mozAskForFilename(msg,path,file,true); // FF3 FIXUP ONLY
		if (target && result.length) // set target field and trigger handling
			{ target.value=result; target.onchange(); }
		return result; 
	}
};
//}}}
//{{{
if (window.mozAskForFilename===undefined) { // also defined by CoreTweaks (for ticket #604)
	window.mozAskForFilename=function(msg,path,file,mustExist) {
		if(!window.Components) return false;
		try {
			netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
			var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
			var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
			picker.init(window, msg, mustExist?nsIFilePicker.modeOpen:nsIFilePicker.modeSave);
			var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
			thispath.initWithPath(path);
			picker.displayDirectory=thispath;
			picker.defaultExtension='';
			picker.defaultString=file;
			picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
			if (picker.show()!=nsIFilePicker.returnCancel)
				var result=picker.file.path;
		}
		catch(ex) { displayMessage(ex.toString()); }
		return result;
	}
}
//}}}
/***
|Name|AttachFilePluginFormatters|
|Source|http://www.TiddlyTools.com/#AttachFilePluginFormatters|
|Version|4.0.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1.3|
|Type|plugin|
|Description|run-time library for displaying attachment tiddlers|
Runtime processing for //rendering// attachment tiddlers created by [[AttachFilePlugin]].   Attachment tiddlers are tagged with<<tag attachment>>and contain binary file content (e.g., jpg, gif, pdf, mp3, etc.) that has been stored directly as base64 text-encoded data or can be loaded from external files stored on a local filesystem or remote web server.  Note: after creating new attachment tiddlers, you can remove [[AttachFilePlugin]], as long as you retain //this// tiddler (so that images can be rendered later on).
!!!!!Formatters
<<<
This plugin extends the behavior of the following TiddlyWiki core "wikify()" formatters:
* embedded images: {{{[img[tooltip|image]]}}}
* linked embedded images: {{{[img[tooltip|image][link]]}}}
* external/"pretty" links: {{{[[label|link]]}}}
''Please refer to AttachFilePlugin (source: http://www.TiddlyTools.com/#AttachFilePlugin) for additional information.''
<<<
!!!!!Revisions
<<<
2009.10.10 [4.0.1] in fileExists(), check for IE to avoid hanging Chrome during startup
2009.06.04 [4.0.0] changed attachment storage format to use //sections// instead of embedded substring markers.
2008.01.08 [*.*.*] plugin size reduction: documentation moved to ...Info
2007.12.04 [*.*.*] update for TW2.3.0: replaced deprecated core functions, regexps, and macros
2007.10.29 [3.7.0] more code reduction: removed upload handling from AttachFilePlugin (saves ~7K!)
2007.10.28 [3.6.0] removed duplicate formatter code from AttachFilePlugin (saves ~10K!) and updated documentation accordingly.  This plugin ([[AttachFilePluginFormatters]]) is now //''required''// in order to display attached images/binary files within tiddler content.
2006.05.20 [3.4.0] through 2007.03.01 [3.5.3] sync with AttachFilePlugin
2006.05.13 [3.2.0] created from AttachFilePlugin v3.2.0
<<<
!!!!!Code
***/
// // version
//{{{
version.extensions.AttachFilePluginFormatters= {major: 4, minor: 0, revision: 1, date: new Date(2009,10,10)};
//}}}

//{{{
if (config.macros.attach==undefined) config.macros.attach= { };
//}}}
//{{{
if (config.macros.attach.isAttachment==undefined) config.macros.attach.isAttachment=function (title) {
	var tiddler = store.getTiddler(title);
	if (tiddler==undefined || tiddler.tags==undefined) return false;
	return (tiddler.tags.indexOf("attachment")!=-1);
}
//}}}

//{{{
// test for local file existence - returns true/false without visible error display
if (config.macros.attach.fileExists==undefined) config.macros.attach.fileExists=function(f) {
	if(window.Components) { // MOZ
		try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
		catch(e) { return false; } // security access denied
		var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
		try { file.initWithPath(f); }
		catch(e) { return false; } // invalid directory
		return file.exists();
	}
	else if (config.browser.isIE) { // IE
		var fso = new ActiveXObject("Scripting.FileSystemObject");
		return fso.FileExists(f);
	}
	else return true; // other browsers: assume file exists
}
//}}}

//{{{
if (config.macros.attach.getAttachment==undefined) config.macros.attach.getAttachment=function(title) {

	// extract embedded data, local and remote links (if any)
	var text=store.getTiddlerText(title,'');
	var embedded=store.getTiddlerText(title+'##data','').trim();
	var locallink=store.getTiddlerText(title+'##file','').trim();
	var remotelink=store.getTiddlerText(title+'##url','').trim();

	// backward-compatibility for older attachments (pre 4.0.0)
	var startmarker="---BEGIN_DATA---\n";
	var endmarker="\n---END_DATA---";
	var pos=0; var endpos=0;
	if ((pos=text.indexOf(startmarker))!=-1 && (endpos=text.indexOf(endmarker))!=-1)
		embedded="data:"+(text.substring(pos+startmarker.length,endpos)).replace(/\n/g,'');
	if ((pos=text.indexOf("/%LOCAL_LINK%/"))!=-1)
		locallink=text.substring(text.indexOf("|",pos)+1,text.indexOf("]]",pos));
	if ((pos=text.indexOf("/%REMOTE_LINK%/"))!=-1)
		remotelink=text.substring(text.indexOf("|",pos)+1,text.indexOf("]]",pos));

	// if there is a data: URI defined (not supported by IE)
	if (embedded.length && !config.browser.isIE) return embedded;

	// document is being served remotely... use remote URL (if any)  (avoids security alert)
	if (remotelink.length && document.location.protocol!="file:")
		return remotelink;  

	// local link only... return link without checking file existence (avoids security alert)
	if (locallink.length && !remotelink.length) 
		return locallink; 

	// local link, check for file exist... use local link if found
	if (locallink.length) { 
		locallink=locallink.replace(/^\.[\/\\]/,''); // strip leading './' or '.\' (if any)
		if (this.fileExists(getLocalPath(locallink))) return locallink;
		// maybe local link is relative... add path from current document and try again
		var pathPrefix=document.location.href;  // get current document path and trim off filename
		var slashpos=pathPrefix.lastIndexOf("/"); if (slashpos==-1) slashpos=pathPrefix.lastIndexOf("\\"); 
		if (slashpos!=-1 && slashpos!=pathPrefix.length-1) pathPrefix=pathPrefix.substr(0,slashpos+1);
		if (this.fileExists(getLocalPath(pathPrefix+locallink))) return locallink;
	}

	// no embedded data, no local (or not found), fallback to remote URL (if any)
	if (remotelink.length) return remotelink;

	// attachment URL doesn't resolve, just return input as is
	return title;
}
//}}}
//{{{
if (config.macros.attach.init_formatters==undefined) config.macros.attach.init_formatters=function() {
	if (this.initialized) return;

	// find the formatter for "image" and replace the handler
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="image"; i++);
	if (i<config.formatters.length)	config.formatters[i].handler=function(w) {
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) // Simple bracketted link
			{
			var e = w.output;
			if(lookaheadMatch[5])
				{
				var link = lookaheadMatch[5];
				// ELS -------------
				var external=config.formatterHelpers.isExternalLink(link);
				if (external)
					{
					if (config.macros.attach.isAttachment(link))
						{
						e = createExternalLink(w.output,link);
						e.href=config.macros.attach.getAttachment(link);
						e.title = config.macros.attach.linkTooltip + link;
						}
					else
						e = createExternalLink(w.output,link);
					}
				else 
					e = createTiddlyLink(w.output,link,false,null,w.isStatic);
				// ELS -------------
				addClass(e,"imageLink");
				}
			var img = createTiddlyElement(e,"img");
			if(lookaheadMatch[1])
				img.align = "left";
			else if(lookaheadMatch[2])
				img.align = "right";
			if(lookaheadMatch[3])
				img.title = lookaheadMatch[3];
			img.src = lookaheadMatch[4];
			// ELS -------------
			if (config.macros.attach.isAttachment(lookaheadMatch[4]))
				img.src=config.macros.attach.getAttachment(lookaheadMatch[4]);
			// ELS -------------
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	}
//}}}
//{{{
	// find the formatter for "prettyLink" and replace the handler
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="prettyLink"; i++);
	if (i<config.formatters.length)	{
		config.formatters[i].handler=function(w) {
			this.lookaheadRegExp.lastIndex = w.matchStart;
			var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
			if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
				var e;
				var text = lookaheadMatch[1];
				if(lookaheadMatch[3]) {
					// Pretty bracketted link
					var link = lookaheadMatch[3];
					if (config.macros.attach.isAttachment(link)) {
						e = createExternalLink(w.output,link);
						e.href=config.macros.attach.getAttachment(link);
						e.title=config.macros.attach.linkTooltip+link;
					}
					else e = (!lookaheadMatch[2] && config.formatterHelpers.isExternalLink(link))
						? createExternalLink(w.output,link)
						: createTiddlyLink(w.output,link,false,null,w.isStatic);
				} else {
					e = createTiddlyLink(w.output,text,false,null,w.isStatic);
				}
				createTiddlyText(e,text);
				w.nextMatch = this.lookaheadRegExp.lastIndex;
			}
		}
	} // if "prettyLink" formatter found
	this.initialized=true;
}
//}}}
//{{{
config.macros.attach.init_formatters(); // load time init
//}}}
//{{{
if (TiddlyWiki.prototype.coreGetRecursiveTiddlerText==undefined) {
	TiddlyWiki.prototype.coreGetRecursiveTiddlerText = TiddlyWiki.prototype.getRecursiveTiddlerText;
	TiddlyWiki.prototype.getRecursiveTiddlerText = function(title,defaultText,depth) {
		return config.macros.attach.isAttachment(title)?
			config.macros.attach.getAttachment(title):this.coreGetRecursiveTiddlerText.apply(this,arguments);
	}
}
//}}}
/***
|Name|AttachFilePluginInfo|
|Source|http://www.TiddlyTools.com/#AttachFilePlugin|
|Documentation|http://www.TiddlyTools.com/#AttachFilePluginInfo|
|Version|4.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Documentation for AttachFilePlugin|
Store or link binary files (such as jpg, gif, pdf or even mp3) within your TiddlyWiki document and then use them as images or links from within your tiddler content.
!!!!!Inline interface (live)
>see [[AttachFile]] (shadow tiddler)
><<tiddler AttachFile>>
!!!!!Syntax
<<<
''To display the attach file control panel, simply view the [[AttachFile]] shadow tiddler that is automatically created by the plugin, and contains an instance of the inline control panel.''.  Or, you can write:
{{{
<<attach inline>>
}}}
in any tiddler to display the control panel embedded within that tiddler.  Note: you can actually use any unique identifier in place of the "inline" keyword.  Each unique id creates a separate instance of the controls.  If the same ID is used in more than one tiddler, then the control panel is automatically moved to the most recently rendered location.  Or, you can write:
{{{
<<attach>>
}}}
(with no ID parameter) in SidebarOptions.  This adds a command link that opens the controls as a floating panel, positioned directly to the left of the sidebar.
<<<
!!!!!Usage
<<<
Binary file content can be stored in three different locations:
#embedded in the attachment tiddler (encoded as base64)
#on your filesystem (a 'local link' path/filename)
#on a web server (a 'remote link' URL)
The plugin creates an "attachment tiddler" for each file you attach.  Regardless of where you store the binary content, your document can refer to the attachment tiddler rather than using a direct file or URL reference in your embedded image or external links, so that changing document locations will not require updating numerous tiddlers or copying files from one system to another.
> Important note: As of version 3.6.0, in order to //render// images and other binary attachments created with this plugin, you must also install [[AttachFilePluginFormatters]], which extends the behavior of the TiddlyWiki core formatters for embedded images ({{{[img[tooltip|image]]}}}), linked embedded images ({{{[img[tooltip|image][link]]}}}), and external/"pretty" links ({{{[[label|link]]}}}), so that these formatter will process references to attachment tiddlers as if a normal file reference had been provided. |
When you attach a file, a tiddler (tagged with<<tag attachment>>) is generated (using the source filename as the tiddler's title).  The tiddler contains //''base64 text-encoded binary data''//, surrounded by {{{/%...%/}}} comment markers (so they are not visible when viewing the tiddler).  The tiddler also includes summary details about the file: when it was attached, by whom, etc. and, if the attachment is an image file (jpg, gif, or png), the image is automatically displayed below the summary information.
>Note: although you can edit an attachment tiddler, ''don't change any of the encoded content below the attachment header'', as it has been prepared for use in the rest of your document, and even changing a single character can make the attachment unusable.  //If needed, you ''can'' edit the header information or even the MIME type declaration in the attachment data, but be very careful not to change any of the base64-encoded binary data.//
Unfortunately, embedding just a few moderately-sized binary files using base64 text-encoding can dramatically increase the size of your document.   To avoid this problem, you can create attachment tiddlers that define external local filesystem (file://) and/or remote web server (http://) 'reference' links, without embedding the binary data directly in the tiddler (i.e., uncheck "embed data" in the 'control panel').

These links provide an alternative source for the binary data: if embedded data is not found (or you are running on Internet Explorer, which does not currently support using embedded data), then the plugin tries the local filesystem reference.  If a local file is not found, then the remote reference (if any) is used.  This "fallback" approach also lets you 'virtualize' the external links in your document, so that you can access very large binary content such as PDFs, MP3's, and even *video* files, by using just a 'remote reference link' without embedding any data or downloading huge files to your hard disk.

Of course, when you //do// download an attached file, the local copy will be used instead of accessing a remote server each time, thereby saving bandwidth and allowing you to 'go mobile' without having to edit any tiddlers to alter the link locations...
<<<
!!!!!Syntax / Examples
<<<
To embed attached files as images or link to them from other tiddlers, use the standard ~TiddlyWiki image syntax ({{{[img[tooltip|filename]]}}}), linked image syntax ({{{[img[tooltip|filename][tiddlername]]}}}) , or "external link" syntax ({{{[[text|URL]]}}}), replacing the filename or URL that is normally entered with the title of an attachment tiddler.

embedded image data:
>{{{[img[Meow|AttachFileSample]]}}}
>[img[Meow|AttachFileSample]]
embedded image data with link to larger remote image:
>{{{[img[click for larger view|AttachFileSample][AttachFileSample2]]}}}
>[img[click for larger view|AttachFileSample][AttachFileSample2]]
'external' link to embedded image data:
>{{{[[click to view attachment|AttachFileSample]]}}}
>[[click to view attachment|AttachFileSample]]
'external' link to remote image:
>{{{[[click to view attachment|AttachFileSample2]]}}}
>[[click to view attachment|AttachFileSample2]]
regular ~TiddlyWiki links to attachment tiddlers:
>{{{[[AttachFileSample]]}}} [[AttachFileSample]]
>{{{[[AttachFileSample2]]}}} [[AttachFileSample2]]
<<<
!!!!!Defining MIME types
<<<
When you select a source file, a ''[[MIME|http://en.wikipedia.org/wiki/MIME]]'' file type is automatically suggested, based on filename extension.  The AttachFileMIMETypes tiddler defines the list of MIME types that will be recognized by the plugin.  Each MIME type definition consists of exactly two lines of text: the official MIME type designator (e.g., "text/plain", "image/gif", etc.), and a space-separated list of file extensions associated with that type.  List entries are separated by "----" (horizontal rules).
<<<
!!!!!Known Limitations
<<<
Internet Explorer does not support the data: URI scheme, and cannot use the //embedded// data to render images or links.  However, you can still use the local/remote link definitions to create file attachments that are stored externally.  In addition, while it is relatively easy to read local //text// files, reading binary files is not directly supported by IE's FileSystemObject (FSO) methods, and other file I/O techniques are subject to security barriers or require additional MS proprietary technologies (like ASP or VB) that make implementation more difficult.  As a result, you cannot //create// new attachment tiddlers using IE.
<<<
!!!!!Installation
<<<
Import (or copy/paste) the following tiddlers into your document:
* [[AttachFilePlugin]] (tagged with <<tag systemConfig>>)
* [[AttachFilePluginFormatters]] ("runtime distribution library") (tagged with <<tag systemConfig>>)
* [[AttachFileSample]] and [[AttachFileSample2]] //(tagged with <<tag attachment>>)//
* [[AttachFileMIMETypes]] //(defines binary file types)//
> Important note: As of version 3.6.0, in order to //render// images and other binary attachments created with this plugin, you must also install [[AttachFilePluginFormatters]], which extends the behavior of the TiddlyWiki core formatters for embedded images ({{{[img[tooltip|image]]}}}), linked embedded images ({{{[img[tooltip|image][link]]}}}), and external/"pretty" links ({{{[[label|link]]}}}), so that these formatter will process references to attachment tiddlers as if a normal file reference had been provided. |
<<<
!!!!!Revisions
<<<
2009.06.04 4.0.0 changed attachment storage format to use //sections// instead of embedded substring markers.
2008.07.21 3.9.0 Fixup for FireFox 3: use HTML with separate text+button control instead of type='file' control
2008.05.12 3.8.1 automatically add 'attach' task to backstage (moved from BackstageTweaks)
2008.04.09 3.8.0 in onChangeSource(), if source matches current document folder, use relative reference for local link.  Also, disable 'embed' when using IE (which //still// doesn't support data: URI)
2008.04.07 3.7.3 fixed typo in HTML for 'local file link' so that clicking in input field doesn't erase current path/file (if any)
2008.04.07 3.7.2 auto-create AttachFile shadow tiddler for inline interface
2008.01.08 [*.*.*] plugin size reduction: documentation moved to ...Info
2007.12.04 [*.*.*] update for TW2.3.0: replaced deprecated core functions, regexps, and macros
2007.12.03 3.7.1 in createAttachmentTiddler(), added optional "noshow" flag to suppress display of newly created tiddlers.
2007.10.29 3.7.0 code reduction: removed support for built-in upload to server... on-line hosting of binary attachments is left to the document author, who can upload/host files using 3rd-party web-based services (e.g. www.flickr.com, ) or stand-alone applications (e.g., FTP).
2007.10.28 3.6.0 code reduction: removed duplicate definition of image and prettyLink formatters.  Rendering of attachment tiddlers now //requires// installation of AttachFilePluginFormatters
2007.03.01 3.5.3 use apply() to invoke hijacked function
2007.02.25 3.5.2 in hijack of "prettyLink", fix version check for TW2.2 compatibility (prevent incorrect use of fallback handler)
2007.01.09 3.5.1 onClickAttach() refactored to create separate createAttachmentTiddler() API for use with FileDropPluginHandlers
2006.11.30 3.5.0 in getAttachment(), for local references, add check for file existence and fallback to remote URL if local file not found.  Added fileExists() to encapsulate FF vs. IE local file test function (IE FSO object code is TBD).
2006.11.29 3.4.8 in hijack for PrettyLink, 'simple bracketed link' opens tiddler instead of external link to attachment
2006.11.29 3.4.7 in readFile(), added try..catch around initWithPath() to handle invalid/non-existent paths better.
2006.11.09 3.4.6 REAL FIX for TWv2.1.3: incorporate new TW2.1.3 core "prettyLink" formatter regexp handling logic and check for version < 2.1.3 with fallback to old plugin code.  Also, cleanup table layout in HTML (added "border:0" directly to table elements to override stylesheet)
2006.11.08 3.4.5 TEMPORARY FIX for TWv2.1.3: disable hijack of wikiLink formatter due to changes in core wikiLink regexp definition.  //Links to attachments are broken, but you can still use {{{[img[TiddlerName]]}}} to render attachments as images, as well as {{{background:url('[[TiddlerName]]')}}} in CSS declarations for background images.//
2006.09.10 3.4.4 update formatters for 2.1 compatibility (use this.lookaheadRegExp instead of temp variable)
2006.07.24 3.4.3 in prettyLink formatter, added check for isShadowTiddler() to fix problem where shadow links became external links.
2006.07.13 3.4.2 in getAttachment(), fixed stripping of newlines so data: used in CSS will work
2006.05.21 3.4.1 in getAttachment(), fixed substring() to extract data: URI (was losing last character, which broken rendering of SOME images)
2006.05.20 3.4.0 hijack core getRecursiveTiddlerText() to support rendering attachments in stylesheets (e.g. {{{url([[AttachFileSample]])}}})
2006.05.20 3.3.6 add "description" feature to easily include notes in attachment tiddler (you can always edit to add them later... but...)
2006.05.19 3.3.5 add "attach as" feature to change default name for attachment tiddlers.  Also, new optional param to specify tiddler name (disables editing)
2006.05.16 3.3.0 completed XMLHttpRequest handling for GET or POST to configurable server scripts
2006.05.13 3.2.0 added interface for upload feature.  Major rewrite of code for clean object definitions.  Major improvements in UI interaction and validation.
2006.05.09 3.1.1 add wikifer support for using attachments in links from "linked image" syntax: {{{[img[tip|attachment1][attachment2]]}}}
2006.05.09 3.1.0 lots of code changes: new options for attachments that use embedded data and/or links to external files (local or remote)
2006.05.03 3.0.2 added {{{/%...%/}}} comments around attachment data to hide it when viewing attachment tiddler.
2006.02.05 3.0.1 wrapped wikifier hijacks in initAttachmentFormatters() function to eliminate globals and avoid FireFox 1.5.0.1 crash bug when referencing globals
2005.12.27 3.0.0 Update for TW2.0.  Automatically add 'excludeMissing' tag to attachments
2005.12.16 2.2.0 Dynamically create/remove attachPanel as needed to ensure only one instance of interface elements exists, even if there are multiple instances of macro embedding.
2005.11.20 2.1.0 added wikifier handler extensions for "image" and "prettyLink" to render tiddler attachments
2005.11.09 2.0.0 begin port from old ELS Design adaptation based on ~TW1.2.33
2005.07.20 1.0.0 Initial release (as adaptation)
<<<
!usage
{{{[img[AttachFileSample]]}}}
[img[AttachFileSample]]
!notes
example of encoded data attachment
!type
image/gif
!file
./images/meow.gif
!url
http://www.TiddlyTools.com/images/meow.gif
!data
data:image/gif;base64,R0lGODlhOABQAPcAAAAACAAAEAAICAgICAgLDBAQCAQQGRAIEBgICBAQEBAQGBAYFBoOEhwUFCEYEBgYGA4cIBkgGyEcHCEhISkYGCkcHCEpHCklIRAgMRkmNSElKSEpNikeKykpKSExQiE5QjEhJTEpITEpKSkpMSkxISk1KTExITExKSktNTEpMTEpOTExMSk5MSkxOSkxQik5PTkrKTkxMTE8KTFCMTExOTExQjE5PTFCPTk3MzlCMTkxQjk5QkI0MzlGPUg9M01JNi88TTlEUkI8REJCSkZDRFBDQkY/UFA/TjNMUkNOS1JKSkpWRj1KWEpKWj9OXEVZZlhMRlVLVVpSUlReUFdSYFVhX1JSa1VfbmBbU11ia2dcV3FjXVpldWVkb2tnb3tnbGZ1ZHV6aWVwe3d5c2N4iXN3gntzgHeBiYd2dYWHeoh/jIKLkJWEfZmUh5CNlJ+VkICPn46XpZiSo5WfoJycnKaemaGcqKWlpZWnraWtqa2qoq2lrZavvKW4xK2lta2ws/8A/7WcjLWllLWlpbWlrb2tnMatnLWtpbWtrb2trbWttb2ttbWtvbW1pca1pbW1ra21va21xrW1tbW1vbW1xrW9tb21rb21tb21vb21xr29rb29tca9sca1vc69rda9ra29wa3GxrW9vbW9xq29zrHGyrPB0rXG1r29vb29xr29zr3Gvb3Gxr3Gzr3G1sa9vcbGtc7GtdbGtcbGvc7GvdbGvd7Gvca9xsa9zsbGxsbGzsbG1s7DyNbGxtbGzs7G1rjQ2MbO0sbO3sbW1s7Owc7OzsbW3sbe3s7O1s7W0tbQx+HUzNDQ29bW1tvb1ufa1sPW6dDW4dbW3trY4sni7dbk797e3tbx9N7n3ufe3t7e597n597i7+fe597s9N73++fn3ufn5+fn7+fv5+fv7+/e5+/r4vfr4ufn9+fv9+fv/+/n7+/v8/Pz7/fv9+/v/+f3++f//+/39+/3/+//9+////f37/f39/f3//f/9/f////37//39//3////9////yH5BAEAAIAALAAAAAA4AFAAQAj+AAEJHEiwoMGDCBMqXIiwiA8tXbxIgXHhgY+FICSIiCFFihIeXRgm9OKlDJMqYs506UIDRIUKD7w8kLCiAw0q0ao8WCFhwgQqDx7E+EJHm0gpUaI0ibKDBo0dXeakazEkxYUOGjRMSQOmQw874eR9IHNPXrFba5Y8CLNDyYULGlZQRVjtzJCmTnew2AGp2j19gAGTC6ctnLvDZfWR07AjCJAd4fTduxctFapbiDKTQ7gjSZcsT6PQqLmCxhA78v4GnuxOHuGzeei8kVLkh5I1b9y80XPp0q1s+lK7E3eQjSIvbqJAEiPGjR0/c9REqyavtTx9rVtn09asmJsvbMb+uLlcrFn3YsqsiRM33M3CDlkUsWMnT978cM206Y/WjH+187cEGOArqKCiCCJ00DEHHXXkIdJBEgQVlEsS1iThAwlg+EAXcNgBySiQQILKJWOM8YYy2Tyo4oqA5HELMtxxVwyLNA5UxAUxxPBWjTjGIIIWNSKUhhddUFFFU0O89BZjQ9DQwYUPVKABCEJg8cYZK5aRxRNM0JDCCimkQMUONXUAwlVOKbGDGHhAMEczgemjTV2jXeCTBqZFoZASVDDRxGildTbHX3zUgJeTZ0Cimj5kBLHDEEM0IU59cd6TDmHm7WFQNHDAwcVoT5m2Qg2tAJPYau6wY01/2ohTjDb+Z91hhiK3FMiILnkcWIw1iLlz0BuPquHEFaDWtEMVclyXWpz1pUNONdKkkkoWyEGSqyKXvYJeNtmEo6pRCEkyaX3ykMPOYOWSw41+2rDTGjndNoMMMsXoUkw05SFzXnlnFaiIikpOIIEUbrzaSit+RPFWByK4ocoordzC74iKKHLGFmm4kQciQSIkgQQIIEAAAQ+Q/IDIIieQAAFROPcHI9heUodh2ujT8c0CzcEdt8Ph7DONGgwxxs+A7BADEUT4SOMEMWyBBRYiEA2ID16oYYYZDsXwQGNOMHGFFUz4ucMFND2qRBdmeDEE0Uq0IccWSuDQwdwXXrBCkxVFKOH+VVB8UceMNHohxhVNipDCEBqkoIGUTu70AA4P3PUEYG6cEQXiM0lwwRBryKNiF1dcwYQQDK+wQxZijGYmnk+tsEIVGrgTZ6VniMHUCHZ3EAWQCWlRxe+X47BCy8UEc08GcmfVwVUxLDHFECPoE01TTWhjTRQimBBDEW64QUYTZczBhBcJCTFEFKODSkMUZcAJWDWMjDJHGW4089df3DiRBRDgwzE7YPLgji5uIQmEzIMaeHgU+nbwqCaEaFEAXI82rqOav8gDLgOzjj5c9YpbXEIR2bjHLQ5yBjdw4QxjGs0OOvA6MQSjGrNLjX2akQ1U0KEMXlACDYh0uS3M4Q3+CeoAHbKBmHuE4yBJ6EEXUveomiBuCKhwA3AqOJmypIMb+ILEH1ChhTXoIUEbqwMiXsELZThjOOEgB8cO4gYqKOEMDNxhFKjQBFmFw4IAZM25uJOKMWyhi35gxFk6WAxnqOcw5wKcQdAgJz84shrVcIMfRpEOSMqjGtGoTnVSJY78dIcRf2ADFPwgsbM0Q2LmaRVmGNKGYmzSPvYxFzsqOZ12dSsbACrlq85Sq1sQ6EBrfBAReHI1baTjUuGIhjZ0UZkC3cI89CqPeQrkBzq4IQ1nWMOCCsijoPhgBUKoQstokJUJQOkBSlADJVqRimKgghEwe4MW0KCxZvisIif+QwCUMnShkD2ABmaQAyQoMYoCXYINdCgGcKRmEAkRQAErI4DKgiIHP/wBEoy4hDvN0wxfMXRFo7CXNYh4j492TBG7VJVJV1oQKDBUCzi6WZQuUAai+UAEPvDRBWikEaTxIGo/EwIP/igFH0hARZoTwRC+8AUtFEFqPlCCFryghZtSRE8H6cIOHnABH0iBWl4wwxGgupIiKUEIPqjAqKhihSY4igYjMGcHUrCDKIS1hFKTAlVFAwIq1W19NMCnhCRQgRBAAQ28SIPP1nCGNBTDaXfZQQoq8LGgYAVSILjQBC6wAyEQAQ11SFGNuvC7P+2ACXO4i+kipNYHdIBMppn+hxteRyYqCEwCOJDCHDyqIixoQQxuleyXojA3rFxgBK57ixcmcNozAOYeeAjCGWZiN7hM4AmjUFEVmpCFJrjuSxEhE1ZAYLq7KQFS0RjU/+5xhjI0YQcauEBesKoQM2QBUp113dzm4CjFZaVM8RWCGwA4u3sAowmq1cAE8GQF+iJECXNkwg6E11kmuCEdGSATCLISlyqAwXkQSI0TuACHdBTjDh0Agwmw0EAyiWElCilCEvDrlKfsoAzC0Ecc9uI6DXDVxxPwwgjuAQc8NSEa3UiDMnghu3v8oXZ3QIYX/KCQIdCxKYGiQhei8dw5tHEIXqjCHGAImHR8QAhAuEL+FsrwP8E0QxdwVogC71JjIXShFdcJDH6sUQxFQJAccHCvE87Qh0WVJRrhCJCBFEKNK0yYgZ3NwgrcAIl0zK414qAPAPPsXQvBSR7TrNiBJKGPNyAkGsbgA1NcxwLXuQEPwrA0s9wRDms8N1XuOOYQJLCF/ESDPwOsVR7glCoSliEOZWCgapNwJDm0AoKSqc49FEGFMtyhVqhIWArWoAgF5WEPLmqDfGTXM4M8oQxXSF2kxpSFHbTADX/wS6XIBatmSKILQzAcpMIkhTSo4Q1pGGM2NqmYg1xhd2sYTQqcdAEqJMENmSywJtnBnVsoopomagMQGVSHQVziFc1AETn+qmNPg1CBCkFwQxC+RKa71bUMsnvuZDRZrmog45138HKu6FCxzGhrVdkQRzhEexAiZRMFe2nSClB3B21AsIrycNav34lDN9wiDwW6TBmdEQ720NoaCTmDGqgghnbvQA7ppt8twnKq+rwLktHIgxbaAIU1+AEVxSgGL3hRSF5tkFt3QEgsdOyGO1zUDWVgxK/1lQ53jbwsnNzOKf2giDdAgQ54zzu/aLgePi9kMqZIRzBGMYpfV6PxlaxGu7BjH3FkwxqrwvYYftDO7jxTl2dBRBsYcongkKtcs4w63AszmGaIA1ZnyTtHzaN5iQVIEXpwj0iw4Abr1OdcFKcPu/T+I/lc8rJftapYbOrAItNhQRHyyLS5CMOffb0qGvqqV949WDE63MEN2qRDbGgUg+WtQARbdnr/cUq6wAg5NwfK1H7TdAl+kAd54AYYswYJ8gpBQllcNTdj4AWMEAxyAAE+JiFKIB6jcAvBUC8jAjNugAUmQgfBVCNBAVsLVwVZwAQPYE5Q8hZ/MAqM0AonqAiDoAXioQdEFyTnVIRBoTIJoAAg0AVyYAeRACIjgghh8AaoMFI+gyEhgwAJoE9QQgBaqAAvWAaBdBmXcQd1ACdl8VE6kk8ZsoVJCFEJMGl2MAdzADOv8AYdpQ+8wFIDUTIj44VBAQgeQlC1ogvNgAouykAHFMiHCkEJqtAK0rQqjKgipWcNvyE7k6gip8QOXTeEmcgQbAAI3VByNBIQAAA7
!usage
{{{[img[AttachFileSample2]]}}}
[img[AttachFileSample2]]
!notes
example of external attachment (no embedded data)
!type
image/jpg
!file
./images/meow2.jpg
!url
http://www.TiddlyTools.com/images/meow2.jpg
!data
[[blender.org|https://www.blender.org/]] - [[Django|http://glassparrot.tiddlyspot.com/#Django]]

<<miniBrowser https://www.blender.org/>>
|[[COMO FAZER UM CALEIDOCICLO - BRINQUEDO DE PAPEL|https://youtu.be/NBVBhlslpqo]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/NBVBhlslpqo" frameborder="0" allowfullscreen></iframe></html>|[[Origami 3D Cisne de 365 Piezas |https://youtu.be/zvx9MaBmBSk]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/zvx9MaBmBSk" frameborder="0" allowfullscreen></iframe></html>|
|<<miniBrowser http://www.calculator.net/scientific-calculator.html>>|
|<<miniBrowser http://www.unitconverters.net/>>|
[[DIY Kinect Motion Capture Studio - Blender|https://youtu.be/1UPZtS5LVvw]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/1UPZtS5LVvw" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></html>
See [[AncestryDNA|http://scienceport.tiddlyspot.com/#AncestryDNA]] - ONLY$99
* Discover the family story your DNA can tell.
* Uncover your ethnic mix, discover distant relatives, and find new details about your unique family history with a simple DNA test.

I have professed to be a [[Pantheist|https://en.wikipedia.org/wiki/Pantheism]]  ([[Fear > antonyms|https://www.powerthesaurus.org/fear/antonyms]]) in the past, and have been told that my heritage has
some Native American background. However I have read articles about tracing Native American heritage 
with DNA, and there are some complications. There is no question about the [[Legality of the War on Drugs|https://www.revolvy.com/main/index.php?s=Legality%20of%20the%20War%20on%20Drugs&item_type=topic]] 
with the Native American tribes in the study and use of ''[[Psilocybin|http://scienceport.tiddlyspot.com/#Psilocybin]]'' in their culture, of which I am an advocate.
Demonizing the study and use of ''[[Ganoderma|https://youtu.be/sh6CzNbRtks?list=RDsh6CzNbRtks]]'' in any culture, would be equivalent to making a [[mandamus|http://legal-dictionary.thefreedictionary.com/mandamus]] about
[[Darwinism|https://en.wikipedia.org/wiki/Darwinism]] or the study of [[DNA|https://en.wikipedia.org/wiki/DNA]] just to preserve [[Capitalism|https://en.wikipedia.org/wiki/Capitalism]] by promoting [[Disease mongering|https://en.wikipedia.org/wiki/Disease_mongering]]. It's not honest.

[[How to Prove Native American Ancestry|https://youtu.be/dIu-WF1LZY4]] - [[Computer Grown Ganoderma|https://youtu.be/CuOIQY5IvR4]] - [[Festivals Concierge Services|http://festivalsconcierge.com/the-mayan-jungle-experience/]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/dIu-WF1LZY4" frameborder="0" allowfullscreen></iframe></html>
Same with [[Ginseng|https://www.youtube.com/results?search_query=Ginseng]] - [[From Ginseng to Mushrooms: Goodies from your Woods|https://youtu.be/3bGECN7nZpA]] - [[Bioprospecting|https://en.wikipedia.org/wiki/Bioprospecting]]
See video by [[Kathleen Harrison, MA|http://www.plantteachers.com/videos-visionary-convergence-2015/]] (not listed on Youtube) - [[former|http://www.thefreedictionary.com/Higgs+boson]] [[maenad|http://www.thefreedictionary.com/maenad]] ([[2|http://www.thefreedictionary.com/bozon]]) of [[Terence McKenna|https://en.wikipedia.org/wiki/Terence_McKenna]]
/***
|Name|[[DatePlugin]]|
|Source|http://www.TiddlyTools.com/#DatePlugin|
|Documentation|http://www.TiddlyTools.com/#DatePluginInfo|
|Version|2.7.3|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|formatted dates plus popup menu with 'journal' link, changes and (optional) reminders|
This plugin provides a general approach to displaying formatted dates and/or links and popups that permit easy navigation and management of tiddlers based on their creation/modification dates.
!!!!!Documentation
>see [[DatePluginInfo]]
!!!!!Configuration
<<<
<<option chkDatePopupHideCreated>> omit 'created' section from date popups
<<option chkDatePopupHideChanged>> omit 'changed' section from date popups
<<option chkDatePopupHideTagged>> omit 'tagged' section from date popups
<<option chkDatePopupHideReminders>> omit 'reminders' section from date popups
<<option chkShowJulianDate>> display Julian day number (1-365) below current date

see [[DatePluginConfig]] for additional configuration settings, for use in calendar displays, including:
*date formats
*color-coded backgrounds
*annual fixed-date holidays
*weekends
<<<
!!!!!Revisions
<<<
2011.04.23 2.7.3 added config.macros.date.tipformat for custom mouseover tooltip and config.macros.date.leadtime for custom reminder leadtime (default=90 days)
2010.12.15 2.7.2 omit date highlighting when hiding popup items (created/changed/tagged/reminders)
|please see [[DatePluginInfo]] for additional revision details|
2005.10.30 0.9.0 pre-release
<<<
!!!!!Code
***/
//{{{
version.extensions.DatePlugin= {major: 2, minor: 7, revision: 3, date: new Date(2011,4,23)};

config.macros.date = {
	format: 'YYYY.0MM.0DD', // default date display format
	linkformat: 'YYYY.0MM.0DD', // 'dated tiddler' link format
	tipformat: 'YYYY.0MM.0DD', // 'dated tiddler' link tooltip format
	leadtime: 31, // find reminders up to 31 days from now
	linkedbg: '#babb1e',
	todaybg: '#ffab1e',
	weekendbg: '#c0c0c0',
	holidaybg: '#ffaace',
	createdbg: '#bbeeff',
	modifiedsbg: '#bbeeff',
	remindersbg: '#c0ffee',
	weekend: [ 1,0,0,0,0,0,1 ], // [ day index values: sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6 ],
	holidays: [ '01/01', '07/04', '07/24', '11/24' ]
		// NewYearsDay, IndependenceDay(US), Eric's Birthday (hooray!), Thanksgiving(US)
};

config.macros.date.handler = function(place,macroName,params)
{
	// default: display current date
	var now =new Date();
	var date=now;
	var mode='display';
	if (params[0]&&['display','popup','link'].contains(params[0].toLowerCase()))
		{ mode=params[0]; params.shift(); }

	if (!params[0] || params[0]=='today')
		{ params.shift(); }
	else if (params[0]=='filedate')
		{ date=new Date(document.lastModified); params.shift(); }
	else if (params[0]=='tiddler')
		{ date=store.getTiddler(story.findContainingTiddler(place).id.substr(7)).modified; params.shift(); }
	else if (params[0].substr(0,8)=='tiddler:')
		{ var t; if ((t=store.getTiddler(params[0].substr(8)))) date=t.modified; params.shift(); }
	else {
		var y = eval(params.shift().replace(/Y/ig,(now.getYear()<1900)?now.getYear()+1900:now.getYear()));
		var m = eval(params.shift().replace(/M/ig,now.getMonth()+1));
		var d = eval(params.shift().replace(/D/ig,now.getDate()+0));
		date = new Date(y,m-1,d);
	}
	// date format with optional custom override
	var format=this.format; if (params[0]) format=params.shift();
	var linkformat=this.linkformat; if (params[0]) linkformat=params.shift();
	showDate(place,date,mode,format,linkformat);
}

window.showDate=showDate;
function showDate(place,date,mode,format,linkformat,autostyle,weekend)
{
	mode	  =mode||'display';
	format	  =format||config.macros.date.format;
	linkformat=linkformat||config.macros.date.linkformat;

	// format the date output
	var title=date.formatString(format);
	var linkto=date.formatString(linkformat);
	var tip=date.formatString(config.macros.date.tipformat);

	// just show the formatted output
	if (mode=='display') { place.appendChild(document.createTextNode(title)); return; }

	// link to a 'dated tiddler'
	var link = createTiddlyLink(place, linkto, false);
	link.appendChild(document.createTextNode(title));
	link.title = tip;
	link.date = date;
	link.format = format;
	link.linkformat = linkformat;

	// if using a popup menu, replace click handler for dated tiddler link
	// with handler for popup and make link text non-italic (i.e., an 'existing link' look)
	if (mode=='popup') {
		link.onclick = onClickDatePopup;
		link.style.fontStyle='normal';
	}
	// format the popup link to show what kind of info it contains (for use with calendar generators)
	if (autostyle) setDateStyle(place,link,weekend);
}
//}}}
//{{{
// NOTE: This function provides default logic for setting the date style when displayed in a calendar
// To customize the date style logic, please see[[DatePluginConfig]]
function setDateStyle(place,link,weekend) {
	// alias variable names for code readability
	var date=link.date;
	var fmt=link.linkformat;
	var linkto=date.formatString(fmt);
	var cmd=config.macros.date;

	var co=config.options; // abbrev

	if ((weekend!==undefined?weekend:isWeekend(date))&&(cmd.weekendbg!=''))
		{ place.style.background = cmd.weekendbg; }
	if (hasModifieds(date)||hasCreateds(date)||hasTagged(date,fmt))
		{ link.style.fontStyle='normal'; link.style.fontWeight='bold'; }
	if (hasReminders(date))
		{ link.style.textDecoration='underline'; }
	if (isToday(date))
		{ link.style.border='1px solid black'; }
	if (isHoliday(date)&&(cmd.holidaybg!=''))
		{ place.style.background = cmd.holidaybg; }
	if (hasCreateds(date)&&(cmd.createdbg!=''))
		{ place.style.background = cmd.createdbg; }
	if (hasModifieds(date)&&(cmd.modifiedsbg!=''))
		{ place.style.background = cmd.modifiedsbg; }
	if ((hasTagged(date,fmt)||store.tiddlerExists(linkto))&&(cmd.linkedbg!=''))
		{ place.style.background = cmd.linkedbg; }
	if (hasReminders(date)&&(cmd.remindersbg!=''))
		{ place.style.background = cmd.remindersbg; }
	if (isToday(date)&&(cmd.todaybg!=''))
		{ place.style.background = cmd.todaybg; }
	if (config.options.chkShowJulianDate) { // optional display of Julian date numbers
		var m=[0,31,59,90,120,151,181,212,243,273,304,334];
		var d=date.getDate()+m[date.getMonth()];
		var y=date.getFullYear();
		if (date.getMonth()>1 && (y%4==0 && y%100!=0) || y%400==0)
			d++; // after February in a leap year
		wikify('@@font-size:80%;<br>'+d+'@@',place);
	}

}
//}}}
//{{{
function isToday(date) // returns true if date is today
	{ var now=new Date(); return ((now-date>=0) && (now-date<86400000)); }
function isWeekend(date) // returns true if date is a weekend
	{ return (config.macros.date.weekend[date.getDay()]); }
function isHoliday(date) // returns true if date is a holiday
{
	var longHoliday = date.formatString('0MM/0DD/YYYY');
	var shortHoliday = date.formatString('0MM/0DD');
	for(var i = 0; i < config.macros.date.holidays.length; i++) {
		var holiday=config.macros.date.holidays[i];
		if (holiday==longHoliday||holiday==shortHoliday) return true;
	}
	return false;
}
//}}}
//{{{
// Event handler for clicking on a day popup
function onClickDatePopup(e) { e=e||window.event;
	var p=Popup.create(this); if (!p) return false;
	// always show dated tiddler link (or just date, if readOnly) at the top...
	if (!readOnly || store.tiddlerExists(this.date.formatString(this.linkformat)))
		createTiddlyLink(createTiddlyElement(p,'li'),this.date.formatString(this.linkformat),true);
	else
		createTiddlyText(createTiddlyElement(p,'li'),this.date.formatString(this.linkformat));
	addCreatedsToPopup(p,this.date,this.format);
	addModifiedsToPopup(p,this.date,this.format);
	addTaggedToPopup(p,this.date,this.linkformat);
	addRemindersToPopup(p,this.date,this.linkformat);
	Popup.show(); e.cancelBubble=true; if(e.stopPropagation)e.stopPropagation(); return false;
}
//}}}
//{{{
function indexCreateds() // build list of tiddlers, hash indexed by creation date
{
	var createds= { };
	var tiddlers = store.getTiddlers('title','excludeLists');
	for (var t = 0; t < tiddlers.length; t++) {
		var date = tiddlers[t].created.formatString('YYYY0MM0DD')
		if (!createds[date])
			createds[date]=new Array();
		createds[date].push(tiddlers[t].title);
	}
	return createds;
}
function hasCreateds(date) // returns true if date has created tiddlers
{
	if (config.options.chkDatePopupHideCreated) return false;
	if (!config.macros.date.createds) config.macros.date.createds=indexCreateds();
	return (config.macros.date.createds[date.formatString('YYYY0MM0DD')]!=undefined);
}

function addCreatedsToPopup(p,when,format)
{
	if (config.options.chkDatePopupHideCreated) return false;
	var force=(store.isDirty() && when.formatString('YYYY0MM0DD')==new Date().formatString('YYYY0MM0DD'));
	if (force || !config.macros.date.createds) config.macros.date.createds=indexCreateds();
	var indent=String.fromCharCode(160)+String.fromCharCode(160);
	var createds = config.macros.date.createds[when.formatString('YYYY0MM0DD')];
	if (createds) {
		createds.sort();
		var e=createTiddlyElement(p,'div',null,null,'created ('+createds.length+')');
		for(var t=0; t<createds.length; t++) {
			var link=createTiddlyLink(createTiddlyElement(p,'li'),createds[t],false);
			link.appendChild(document.createTextNode(indent+createds[t]));
		}
	}
}
//}}}
//{{{
function indexModifieds() // build list of tiddlers, hash indexed by modification date
{
	var modifieds= { };
	var tiddlers = store.getTiddlers('title','excludeLists');
	for (var t = 0; t < tiddlers.length; t++) {
		var date = tiddlers[t].modified.formatString('YYYY0MM0DD')
		if (!modifieds[date])
			modifieds[date]=new Array();
		modifieds[date].push(tiddlers[t].title);
	}
	return modifieds;
}
function hasModifieds(date) // returns true if date has modified tiddlers
{
	if (config.options.chkDatePopupHideChanged) return false;
	if (!config.macros.date.modifieds) config.macros.date.modifieds = indexModifieds();
	return (config.macros.date.modifieds[date.formatString('YYYY0MM0DD')]!=undefined);
}

function addModifiedsToPopup(p,when,format)
{
	if (config.options.chkDatePopupHideChanged) return false;
	var date=when.formatString('YYYY0MM0DD');
	var force=(store.isDirty() && date==new Date().formatString('YYYY0MM0DD'));
	if (force || !config.macros.date.modifieds) config.macros.date.modifieds=indexModifieds();
	var indent=String.fromCharCode(160)+String.fromCharCode(160);
	var mods = config.macros.date.modifieds[date];
	if (mods) {
		// if a tiddler was created on this date, don't list it in the 'changed' section
		if (config.macros.date.createds && config.macros.date.createds[date]) {
			var temp=[];
			for(var t=0; t<mods.length; t++)
				if (!config.macros.date.createds[date].contains(mods[t]))
					temp.push(mods[t]);
			mods=temp;
		}
		mods.sort();
		var e=createTiddlyElement(p,'div',null,null,'changed ('+mods.length+')');
		for(var t=0; t<mods.length; t++) {
			var link=createTiddlyLink(createTiddlyElement(p,'li'),mods[t],false);
			link.appendChild(document.createTextNode(indent+mods[t]));
		}
	}
}
//}}}
//{{{
function hasTagged(date,format) // returns true if date is tagging other tiddlers
{
	if (config.options.chkDatePopupHideTagged) return false;
	return store.getTaggedTiddlers(date.formatString(format)).length>0;
}

function addTaggedToPopup(p,when,format)
{
	if (config.options.chkDatePopupHideTagged) return false;
	var indent=String.fromCharCode(160)+String.fromCharCode(160);
	var tagged=store.getTaggedTiddlers(when.formatString(format));
	if (tagged.length) var e=createTiddlyElement(p,'div',null,null,'tagged ('+tagged.length+')');
	for(var t=0; t<tagged.length; t++) {
		var link=createTiddlyLink(createTiddlyElement(p,'li'),tagged[t].title,false);
		link.appendChild(document.createTextNode(indent+tagged[t].title));
	}
}
//}}}
//{{{
function indexReminders(date,leadtime) // build list of tiddlers with reminders, hash indexed by reminder date
{
	var reminders = { };
	if(window.findTiddlersWithReminders!=undefined) { // reminder plugin is installed
		var t = findTiddlersWithReminders(date, [0,leadtime], null, null, 1);
		for(var i=0; i<t.length; i++) reminders[t[i].matchedDate]=true;
	}
	return reminders;
}

function hasReminders(date) // returns true if date has reminders
{
	if (config.options.chkDatePopupHideReminders) return false;
	if (window.reminderCacheForCalendar)
		return window.reminderCacheForCalendar[date]; // use calendar cache
	if (!config.macros.date.reminders)
		config.macros.date.reminders = indexReminders(date,config.macros.date.leadtime); // create a reminder cache
	return (config.macros.date.reminders[date]);
}

function addRemindersToPopup(p,when,format)
{
	if (config.options.chkDatePopupHideReminders) return false;
	if(window.findTiddlersWithReminders==undefined) return; // reminder plugin not installed

	var indent = String.fromCharCode(160)+String.fromCharCode(160);
	var reminders=findTiddlersWithReminders(when, [0,config.macros.date.leadtime],null,null,1);
	createTiddlyElement(p,'div',null,null,'reminders ('+(reminders.length||'none')+')');
	for(var t=0; t<reminders.length; t++) {
		link = createTiddlyLink(createTiddlyElement(p,'li'),reminders[t].tiddler,false);
		var diff=reminders[t].diff;
		diff=(diff<1)?'Today':((diff==1)?'Tomorrow':diff+' days');
		var txt=(reminders[t].params['title'])?reminders[t].params['title']:reminders[t].tiddler;
		link.appendChild(document.createTextNode(indent+diff+' - '+txt));
	}
	if (readOnly) return;	// readonly... omit 'new reminder...' command
	var rem='\\<\\<reminder day:%0 month:%1 year:%2 title:"Enter a reminder title here"\\>\\>';
	rem=rem.format([when.getDate(),when.getMonth()+1,when.getYear()+1900]);
	var cmd="<<newTiddler label:[["+indent+"new reminder...]] prompt:[[add a reminder to '%0']]"
		+" title:[[%0]] text:{{var t=store.getTiddlerText('%0','');t+(t.length?'\\n':'')+'%1'}} tag:%2>>";
	wikify(cmd.format([when.formatString(format),rem,config.options.txtCalendarReminderTags||'']),
		createTiddlyElement(p,'li'));
}
//}}}
/***
|Name|DatePluginConfig|
|Source|http://www.TiddlyTools.com/#DatePluginConfig|
|Documentation|http://www.TiddlyTools.com/#DatePluginInfo|
|Version|2.7.3|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|formats, background colors and other optional settings for DatePlugin|
***/
// // Default popup content display options (can be overridden by cookies)
//{{{
if (config.options.chkDatePopupHideCreated===undefined)
	config.options.chkDatePopupHideCreated=false;
if (config.options.chkDatePopupHideChanged===undefined)
	config.options.chkDatePopupHideChanged=false;
if (config.options.chkDatePopupHideTagged===undefined)
	config.options.chkDatePopupHideTagged=false;
if (config.options.chkDatePopupHideReminders===undefined)
	config.options.chkDatePopupHideReminders=false;
//}}}

// // show Julian date number below regular date
//{{{
if (config.options.chkShowJulianDate===undefined)
	config.options.chkShowJulianDate=false;
//}}}

// // fixed-date annual holidays
//{{{
config.macros.date.holidays=[
	"01/01", // NewYearsDay, 
	"07/04", // US Independence Day
	"07/24"  // Eric's Birthday (hooray!)
];
//}}}

// // weekend map (1=weekend, 0=weekday)
//{{{
config.macros.date.weekend=[ 1,0,0,0,0,0,1 ]; // day index values: sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6
//}}}

// // date display/link formats
//{{{
config.macros.date.format="YYYY.0MM.0DD"; // default date display format
config.macros.date.linkformat="YYYY.0MM.0DD"; // 'dated tiddler' link format
config.macros.date.tipformat="YYYY.0MM.0DD"; // 'dated tiddler' tooltip format
//}}}

// // reminder lead time
//{{{
config.macros.date.leadtime=31; // find reminders up to 31 days from now
//}}}

// // When displaying a calendar (see [[CalendarPlugin]]), you can customize the colors/styles that are applied to the calendar dates by modifying the values and/or functions below:
//{{{
// default calendar colors
config.macros.date.weekendbg="#c0c0c0";
config.macros.date.holidaybg="#ffaace";
config.macros.date.createdbg="#bbeeff";
config.macros.date.modifiedsbg="#bbeeff";
config.macros.date.linkedbg="#babb1e";
config.macros.date.remindersbg="#c0ffee";

// apply calendar styles
function setDateStyle(place,link,weekend) {
	// alias variable names for code readability
	var date=link.date;
	var fmt=link.linkformat;
	var linkto=date.formatString(fmt);
	var cmd=config.macros.date;

	if ((weekend!==undefined?weekend:isWeekend(date))&&(cmd.weekendbg!=""))
		{ place.style.background = cmd.weekendbg; }
	if (hasModifieds(date)||hasCreateds(date)||hasTagged(date,fmt))
		{ link.style.fontStyle="normal"; link.style.fontWeight="bold"; }
	if (hasReminders(date))
		{ link.style.textDecoration="underline"; }
	if (isToday(date))
		{ link.style.border="1px solid black"; }
	if (isHoliday(date)&&(cmd.holidaybg!=""))
		{ place.style.background = cmd.holidaybg; }
	if (hasCreateds(date)&&(cmd.createdbg!=""))
		{ place.style.background = cmd.createdbg; }
	if (hasModifieds(date)&&(cmd.modifiedsbg!=""))
		{ place.style.background = cmd.modifiedsbg; }
	if ((hasTagged(date,fmt)||store.tiddlerExists(linkto))&&(cmd.linkedbg!=""))
		{ place.style.background = cmd.linkedbg; }
	if (hasReminders(date)&&(cmd.remindersbg!=""))
		{ place.style.background = cmd.remindersbg; }
	if (isToday(date)&&(cmd.todaybg!=""))
		{ place.style.background = cmd.todaybg; }
	if (config.options.chkShowJulianDate) {
		var m=[0,31,59,90,120,151,181,212,243,273,304,334];
		var d=date.getDate()+m[date.getMonth()];
		var y=date.getFullYear();
		if (date.getMonth()>1 && (y%4==0 && y%100!=0) || y%400==0) d++; // after February in a leap year
		wikify("@@font-size:80%;<br>"+d+"@@",place);
	}
	var t=store.getTiddlerText(linkto,'')
	if (config.options.chkInlineCalendarJournals && t.length) wikify('<br>'+t,place);
}
//}}}
|Name|DatePluginInfo|
|Source|http://www.TiddlyTools.com/#DatePlugin|
|Documentation|http://www.TiddlyTools.com/#DatePluginInfo|
|Version|2.7.3|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|documentation|
|Description|documentation for DatePlugin|
This plugin provides a general approach to displaying formatted dates and/or links and popups that permit easy navigation and management of tiddlers based on their creation/modification dates.
!!!!!Usage
<<<
This plugin displays formatted dates, for the specified year, month, day using number values or mathematical expressions such as (Y+1) or (D+30).  Optionally, you can create a link to a 'dated tiddler' for quick blogging or create a popup menu that includes the dated tiddler link plus links to tiddlers that were created/changed on that date, or are tagged with that date and, if the [[ReminderMacros|http://remindermacros.tiddlyspot.com/]] plugin is installed, any pending reminders for next month.  There is also a public API, so other plugins can embed a variety of formatted date output, links, and/or popup menus.
{{{
<<date mode date format linkformat>>
}}}
//all parameters are optional//
*''mode''<br>is one of:
**''display'' (default)<br>shows a formatted date
**''link''<br>creates a link to a specific 'date titled' tiddler
**''popup''<br>creates a popup command containing a dated tiddler link, plus links to changes and reminders.
*''date'' (or ''tiddler'' or ''tiddler:title'' or ''today'' or ''filedate'')<br>enter ANY date (not just today) as space-separated year, month, and day parameters (e.g., 2011 4 23).  You can use pre-defined variables, Y, M, and D for the current year, month and day, repectively.  These variables can be combined with simple mathematical expressions to calculate ''relative dates'' (e.g., D+1 = tomorrow, M-1 = last month, Y+1= next year, etc.)  Alternatively, you can use special keywords in place of the year/month/day parameters to access tiddler and file dates:
**''tiddler'' displays the modification date of the current tiddler.
**''tiddler://name-of-tiddler//'' displays the modification date of a specific tiddler.
**''today'' shows the current date.
**''filedate'' shows the modification date of the entire document.  
*{{block{
''format'' (and ''linkformat'') (default: YYYY.0MM.0DD)<br>uses standard ~TiddlyWiki date formatting syntax to specify the title of the target tiddler.
>''DDD'' - day of week in full (eg, "Monday"), ''DD'' - day of month, ''0DD'' - adds leading zero
>''MMM'' - month in full (eg, "July"), ''MM'' - month number, ''0MM'' - adds leading zero
>''YYYY'' - full year, ''YY'' - two digit year, ''hh'' - hours, ''mm'' - minutes, ''ss'' - seconds
>//note: use of hh, mm or ss format codes is only supported with ''tiddler'', ''today'' or ''filedate'' values//
}}}
*{{block{
''linkformat''<br>specify an alternative date format so that the title of a 'dated tiddler' link can have a format that differs from the date's displayed format.  The default tooltip is same as the title of the linked tiddler.  You can customize the tooltip by modifying the definition in [[DatePluginConfig]]:
{{{
config.macros.date.tipformat="YYYY.0MM.0DD"; // 'dated tiddler' tooltip format
}}}
}}}
You can adjust the 'lead time' for display of [[reminders|http://remindermacros.tiddlyspot.com/]] by modifying the definition in [[DatePluginConfig]]:
{{{
config.macros.date.leadtime=30; // find reminders up to 30 days from now
}}}
In addition to the macro syntax, DatePlugin also provides a public javascript API so that other plugins that work with dates (such as calendar generators, etc.) can quickly incorporate date formatted links or popups into their output:
{{{
showDate(place, date, mode, format, linkformat, autostyle, weekend);
}}}
Note that the javascript API supports two //optional// true/false parameters, in addition those provided by the macro interface:
*''autostyle''<br>font/background styles of formatted dates are automatically adjusted to show the date's status:  'today' is boxed, 'changes' are bold, 'reminders' are underlined, weekends, holidays, changes, and reminders each have a different background color to make them more visibly distinct from one another.
*''weekend''<br>true=day is a weekend, false=day is a weekday, default=automatically determine if a given date falls on a weekend.
<<<
!!!!!Examples
<<<
{{{The current date: <<date>>}}}
>The current date: <<date>>
{{{The current time: <<date today "0hh:0mm:0ss">>}}}
>The current time: <<date today "0hh:0mm:0ss">>
{{{Today's blog: <<date link today "DDD, MMM DDth, YYYY">>}}}
>Today's blog: <<date link today "DDD, MMM DDth, YYYY">>
{{{Recent blogs/changes/reminders: <<date popup Y M D-1 "yesterday">> <<date popup today "today">> <<date popup Y M D+1 "tomorrow">>}}}
>Recent blogs/changes/reminders: <<date popup Y M D-1 "yesterday">> <<date popup today "today">> <<date popup Y M D+1 "tomorrow">>
{{{The first day of next month will be a <<date Y M+1 1 "DDD">>}}}
>The first day of next month will be a <<date Y M+1 1 "DDD">>
{{{This tiddler (DatePlugin) was last updated on: <<date tiddler "DDD, MMM DDth, YYYY">>}}}
>This tiddler (DatePlugin) was last updated on: <<date tiddler "DDD, MMM DDth, YYYY">>
{{{The SiteUrl was last updated on: <<date tiddler:SiteUrl "DDD, MMM DDth, YYYY">>}}}
>The SiteUrl was last updated on: <<date tiddler:SiteUrl "DDD, MMM DDth, YYYY">>
{{{This document was last saved on <<date filedate "DDD, MMM DDth, YYYY at 0hh:0mm:0ss">>}}}
>This document was last saved on <<date filedate "DDD, MMM DDth, YYYY at 0hh:0mm:0ss">>
{{{<<date Y 07 24 "MMM DDth, YYYY">> will be a <<date Y 07 24 "DDD">>}}}
><<date Y 07 24 "MMM DDth, YYYY">> will be a <<date Y 07 24 "DDD">>
<<<
!!!!!Revisions
<<<
2011.04.23 2.7.3 added config.macros.date.tipformat for custom mouseover tooltip
2010.12.15 2.7.2 omit date highlighting when hiding popup items (created/changed/tagged/reminders)
2009.05.31 2.7.1 in addRemindersToPopup(), 'new reminder....' command now uses {{{<<newTiddler>>}}} macro.  Also, general code reduction/cleanup.
2008.03.08 2.7.0 in addModifiedsToPopup(), if a tiddler was created on the specified date, don't list it in the 'changed' section of the popup.  Based on a request from Kashgarinn
2008.01.31 2.6.0 refactored date style logic into separate setDateStyle() function so it can be overridden by a custom definition.  See [[DatePluginConfig]].
2008.01.11 2.5.0 added options to selectively suppress created/changes/tagged/reminders popup content 
2008.01.08 [*.*.*] plugin size reduction: documentation moved to DatePluginInfo
2007.11.21 2.4.0 added hasTagged() and addTaggedToPopup() to list any tiddlers that has been tagged using the title of the dated journal tiddler asa tag value (i.e., the tiddlers that will be listed in the standard "tagging" display when viewing the journal tiddler itself).  Based on a request from Coby.
2007.06.20 2.3.1 in onClickDatePopup(), use Popup.show() instead of deprecated ScrollToTiddlerPopup().  Fixes fatal error that prevents popups from being properly displayed
2007.05.31 2.3.0 list "created" tiddlers in date popup.  Also, force re-cache of created/modified indices when displaying current date and store.isDirty(), so that popup is kept in sync with tiddler changes.
2006.05.09 2.2.1 added "todaybg" handling to set background color of current date.  Also, honor excludeLists tag when getting lists of tiddlers.  Based on suggestions by Mark Hulme.
2006.05.05 2.2.0 added "linkedbg" handling to set background color when a 'dated tiddler' exists.  Based on a suggestion by Mark Hulme.
2006.03.08 2.1.2 add 'override leadtime' flag param in call to findTiddlersWithReminders(), and add "Enter a title" default text to new reminder handler.  Thanks to Jeremy Sheeley for these additional tweaks.
2006.03.06 2.1.0 hasReminders() nows uses window.reminderCacheForCalendar[] when present.  If calendar cache is not present, indexReminders() now uses findTiddlersWithReminders() with a 90-day look ahead to check for reminders.  Also, switched default background colors for autostyled dates: reminders are now greenish ("c0ffee") and holidays are now reddish ("ffaace").
2006.02.14 2.0.5 when readOnly is set (by TW core), omit "new reminders..." popup menu item and, if a "dated tiddler" does not already exist, display the date as simple text instead of a link.
2006.02.05 2.0.4 added var to variables that were unintentionally global.  Avoids FireFox 1.5.0.1 crash bug when referencing global variables
2006.01.18 2.0.3 In 1.2.x the tiddler editor's text area control was given an element ID=("tiddlerBody"+title), so that it was easy to locate this field and programmatically modify its content.  With the addition of configuration templates in 2.x, the textarea no longer has an ID assigned.  To find this control we now look through all the child nodes of the tiddler editor to locate a "textarea" control where attribute("edit") equals "text", and then append the new reminder to the contents of that control.
2006.01.11 2.0.2 correct 'weekend' override detection logic in showDate()
2006.01.10 2.0.1 allow custom-defined weekend days (default defined in config.macros.date.weekend[] array)
added flag param to showDate() API to override internal weekend[] array
2005.12.27 2.0.0 Update for TW2.0
Added parameter handling for 'linkformat'
2005.12.21 1.2.2 FF's date.getYear() function returns 105 (for the current year, 2005).  When calculating a date value from Y M and D expressions, the plugin adds 1900 to the returned year value get the current year number.  But IE's date.getYear() already returns 2005.  As a result, plugin calculated date values on IE were incorrect (e.g., 3905 instead of 2005).  Adding +1900 is now conditional so the values will be correct on both browsers.
2005.11.07 1.2.1 added support for "tiddler" dynamic date parameter
2005.11.06 1.2.0 added support for "tiddler:title" dynamic date parameter
2005.11.03 1.1.2 when a reminder doesn't have a specified title parameter, use the title of the tiddler that contains the reminder as "fallback" text in the popup menu.  Based on a suggestion from BenjaminKudria.
2005.11.03 1.1.1 Temporarily bypass hasReminders() logic to avoid excessive overhead from generating the indexReminders() cache.  While reminders can still appear in the popup menu, they just won't be indicated by auto-styling the date number that is displayed.  This single change saves approx. 60% overhead (5 second delay reduced to under 2 seconds).
2005.11.01 1.1.0 corrected logic in hasModifieds() and hasReminders() so caching of indexed modifieds and reminders is done just once, as intended.  This should hopefully speed up calendar generators and other plugins that render multiple dates...
2005.10.31 1.0.1 documentation and code cleanup
2005.10.31 1.0.0 initial public release
2005.10.30 0.9.0 pre-release
<<<
[[My Mediawiki]]
[[Universal Licensing System]]
[[GEAR CALCULATORS]]
[[Hey Google Phrases]]
[[DIY Kinect Motion Capture Studio - Blender]]
[[3D Printed Theo Jansen Crossbow Tank]]
[[Rigging In Blender]]
[[mathbff]]
[[The Secret Ingredient to Photorealism]]
[[The Science of Rendering Photorealistic CGI]]
[[Video Editing in Blender]]
[[Shoutcast]]
[[Additive Manufacturing - Ceramic 3D Printing Breakthrough]]
[[DNA]]
[[Moses!]]
[[MiniBrowser]]
[[SiteSubtitle]]
[[Blender.org]]
[[Paper Models of Polyhedra]]
[[Working for Free]]
[[Eco Dome, Building a Small Home]]
[[COMO FAZER UM CALEIDOCICLO - BRINQUEDO DE PAPEL]]
[[DefaultTiddlers]]

[[Permaview|http://blenderorganizer.tiddlyspot.com/#%5B%5BEco%20Dome%2C%20Building%20a%20Small%20Home%5D%5D]] - [[MiniBrowser|http://h8quadmod.tiddlyspot.com/#MiniBrowser]]

|[[Eco Dome, Building a Small Home|https://youtu.be/zcElYoMcrmo]]<br><html><iframe width="420" height="315" src="https://www.youtube.com/embed/zcElYoMcrmo" frameborder="0" allowfullscreen></iframe></html>|[[Eco Dome, Building a Small Home 2|https://youtu.be/OpBQxpGA1YI]]<br><html><iframe width="420" height="315" src="https://www.youtube.com/embed/OpBQxpGA1YI" frameborder="0" allowfullscreen></iframe></html>|

[[3D Printing Buildings|https://en.wikipedia.org/wiki/Building_printing]] - [[Sausage making|https://en.wikipedia.org/wiki/Sausage_making]] - with adobe tube bags.  
[[The Best View on Lake Atitlan|https://youtu.be/Wt3eWwJZd58]] - [[Can Marriage Exist|https://youtu.be/Yl1A6brDj4k]] 
[[LITHIUM BATTERIES HOW THEY MAKE THEM|http://glassparrot.tiddlyspot.com/#%5B%5BLITHIUM%20BATTERIES%20HOW%20THEY%20MAKE%20THEM%5D%5D]]
[[Blender_(software)|https://en.wikipedia.org/wiki/Blender_(software)]] - It's easier to build round houses. Less stress.
[[FreeCAD|https://en.wikipedia.org/wiki/FreeCAD]]
Add [[Mycelium|https://en.wikipedia.org/wiki/Mycelium]] to make it stronger. Maybe [[Amsterdam|https://en.wikipedia.org/wiki/Amsterdam_Arena]] [[Truffles|https://en.wikipedia.org/wiki/Truffle]]? (grows on wood chips or straw)
[[Mycorestoration of Abandoned Logging Roads|http://www.fungi.com/blog/items/mycorestoration-of-abandoned-logging-roads.html]] - [[Hematite|https://en.wikipedia.org/wiki/Hematite]] - [[Ceramic materials|https://en.wikipedia.org/wiki/Ceramic_materials]] - [[Glass fiber|https://en.wikipedia.org/wiki/Glass_fiber]]
[[blenderorganizer|http://blenderorganizer.tiddlyspot.com/]] - [[glassparrot|http://glassparrot.tiddlyspot.com/]]
[[Internet Crime Schemes|http://goo.gl/Stm6zF]]
<<miniBrowser http://www.otvinta.com/calculators.html>>
[[Universal Licensing System]] - See [[unKoshered Ham Rantings!|Moses!]] - ''http://catchvideo.net/''
''[[October2017 Youtube Playlist|https://www.youtube.com/playlist?list=PLzHM9iyT6QCpsORVF008omissmzYBZTl0]] - [[My Playlists|http://inventoryport.tiddlyspot.com/#%5B%5BMy%20Playlists%5D%5D]] - [[Wish List|http://n6xre.tiddlyspot.com/#%5B%5BWish%20List%5D%5D]]''
Click to Speak with translator
# [[OK google, what time and date is it?|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20what%20time%20and%20date%20is%20it%3F]]
# [[OK Google, what is the weather?|https://translate.google.com/?hl=en&tab=wT#auto/th/OK%20google%2C%20what%20is%20the%20weather%3F]]
# [[OK google, what is on my schedule?|https://translate.google.com/?hl=en&tab=wT#auto/th/OK%20google%2C%20what%20is%20on%20my%20schedule%3F]]
# [[OK google, what can you do?|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20what%20can%20you%20do%3F]]
# [[OK google, Let’s play crystal ball.|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20Let%E2%80%99s%20play%20crystal%20ball.]] - Is [[Kepler's Somnium|http://www.depauw.edu/sfs/backissues/8/christianson8art.htm]] fiction? [[OK google, I’m Bored.|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20I%E2%80%99m%20Bored.]] - [[Shroomery Message Board|https://www.shroomery.org/forums/showflat.php/Number/1334481/fpart/all/vc/1]]
# [[Get your kicks on Route 66|https://youtu.be/dCYApJtsyd0]]. (or the [[Chicken Ranch|https://youtu.be/QaGNTksIfQE]] in [[Las Vegas|https://youtu.be/ypPRoomqJpY]] Videos) [[FAQ|http://www.a2zlasvegas.com/adult/lasvegas//brothels/crfaq.html]] - [[Tantra E-juice|http://moving.tiddlyspot.com/#%5B%5BTantra%20E-juice%5D%5D]]
# [[OK google, play lucky trivia?|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20play%20lucky%20trivia%3F]] - https://www.nasa.gov/eclipselive 
# [[OK Google I want to talk to Crazy House|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20Google%20I%20want%20to%20talk%20to%20Crazy%20House]] - [[OK Google, Where can I buy Moclobemide|https://translate.google.com/#auto/en/OK%20Google%2C%20Where%20can%20I%20buy%20Moclobemide]] - [[2|https://www.drugs.com/international/moclobemide.html]] - [[3|https://en.wikipedia.org/wiki/Moclobemide]]
# [[OK google, what is live spelled backwards?|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20what%20is%20live%20spelled%20backwards%3F]]
# [[OK Google, Flip a coin.|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20Google%2C%20Flip%20a%20coin.]] - Call it - Beds or Snails? Three times.
# [[OK google, how do you say I'm a Bunny would you like a ride in my vehicle and some dinner in French?|https://translate.google.com/?hl=en&tab=TT#auto/fr/OK%20google%2C%20how%20do%20you%20say%20I%27m%20a%20Bunny%20would%20you%20like%20a%20ride%20in%20my%20vehicle%20and%20some%20dinner%20in%20French%3F]] - [[Yes or No in French?|https://translate.google.com/?hl=en&tab=TT#auto/de/OK%20google%2C%20how%20do%20you%20say%20Yes%20or%20No%20in%20French%3F]]
# [[More Hey Google Phrases|http://n6xre.tiddlyspot.com/#%5B%5BMore%20Hey%20Google%20Phrases%5D%5D]]
[[How to Make a Google Home on Raspberry Pi without MagPi 57 Kit|http://n6xre.tiddlyspot.com/#%5B%5BHow%20to%20Make%20a%20Google%20Home%20on%20Raspberry%20Pi%20without%20MagPi%2057%20Kit%5D%5D]] - [[Anet A8 Desktop 3D Printer Prusa i3 DIY Kit|http://scienceport.tiddlyspot.com/#%5B%5BAnet%20A8%20Desktop%203D%20Printer%20Prusa%20i3%20DIY%20Kit%5D%5D]]
[[5 Best Buffets in Las Vegas RIGHT NOW|https://youtu.be/CZD7noSqnBg]] - [[How to Eat Cheap in Las Vegas for Under $10|https://youtu.be/VtQ0lyFXMtg]] - [[Day 5: $10 VS $42 BUFFET!|https://youtu.be/nO-QuEEaxHk]]
[[Permaview|http://scienceport.tiddlyspot.com/#%5B%5BHighlights%20of%20Calculus%5D%5D]] - ''[[MIT OpenCourseWare|https://www.youtube.com/user/MIT/featured]]''
<<miniBrowser http://scienceport.tiddlyspot.com/#%5B%5BHighlights%20of%20Calculus%5D%5D>>
/***
|''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);
}
//}}}
[[MainMenu]]
''[[CatchVideo|http://catchvideo.net/]]''
''[[Wordpress|https://glassparrot.wordpress.com/]]''
''[[My Playlists|http://inventoryport.tiddlyspot.com/#%5B%5BMy%20Playlists%5D%5D]]''
''[[Social Security|https://secure.ssa.gov/RIL/SiView.do]]''
''[[Medicare|https://myhealthone.com/mh1/public/mh1/Login/#/login-form]] - [[VA|https://www.myhealth.va.gov/]]''
''[[VMTN Trip Request|http://www.rtcsnv.com/transit/rtc-transit-services/veteranservices/vmtn-online-trip-request-2/]]''
''[[Bookmarks|http://almanac.tiddlyspot.com/#Bookmarks]]''
''[[Google_Search|https://www.google.com/]]''
''[[Google_Mail|https://mail.google.com/]]''
''[[10MinuteMail|http://10minutemail.com/10MinuteMail/index.html]]''
''[[Google_Calendar|https://calendar.google.com/]]''
''[[Google_Hangout_Plus|https://plus.google.com/hangouts]]''
''[[Gdrive|https://drive.google.com/#all]]''
''[[Goo.gl|https://goo.gl]]''
''[[Raspberry Pi 3 MIDI|http://mediaport.tiddlyspot.com/#%5B%5BRaspberry%20Pi%203%20MIDI%5D%5D]]''
''[[Recipes|http://inventoryport.tiddlyspot.com/#Recipes]]''
''[[Turo Car Rental|https://turo.com/search?location=3040%20E%20Charleston%20Blvd%20%233087%2C%20Las%20Vegas%2C%20NV%2089104%2C%20USA&locationType=Address&startDate=10%2F25%2F2017&startTime=10%3A00&endDate=11%2F01%2F2017&endTime=10%3A00&region=NV&country=US&category=ALL&instantBook=false&customDelivery=false&maximumDistanceInMiles=30&sortType=RELEVANCE&isMapSearch=false&latitude=36.1584026&longitude=-115.1067183&defaultZoomLevel=14]]''
''[[Uber Ride|https://www.uber.com/ride/]] - [[mUber|https://m.uber.com/]]''
''Uber PBX - [[GOGO|https://gogograndparent.com/]]''
''[[Apartments|http://moving.tiddlyspot.com/#Apartments]]''
''Gary Rust'' 
''3040 E. Charleston Blvd #3087''
''Las Vegas, Nevada'' 
''89104''
''[[Blood Pressure|https://goo.gl/FvAHkr]]
[[DefaultTiddlers]]
''[[Hangouts|https://hangouts.google.com/]] on [[Gmail|https://mail.google.com/]]<br>Main (702) 900-8019''
''[[Phones|http://moving.tiddlyspot.com/#Phones]]''
''Gary Rust on<br>[[ObiTalk|https://www.obitalk.com/info/products]]<br>510 537 368<br>([[buy worldwide|http://1outlets.com/obihai-technology-inc-obi200-1-port-voip-adapter-usb-t38-fax-support-USD-ccy/sku/11l4tHt6GUSuS28Yw2QYss/]])''
''[[Obi200 Device Guide|http://www.obihai.com/OBiDeviceAdminGuide]]''
''Google [[ARC Welder|https://chrome.google.com/webstore/detail/arc-welder/emfinbmielocnlhgmfkkmkngdoccbadn]]''
''[[Dry Ice|http://www.smartandfinal.com/cmssearch/result/?q=dry+ice&store_key=352]]''
''[[Weather Las Vegas|https://www.wunderground.com/us/nv/las-vegas]]''
''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]''
''[[Talkatone|http://www.makeuseof.com/tag/free-phone-calls-wifidata-talkatone-android-ios/]]<br>FWD from Main<br>(702) 825-5436''
''[[SipBroker|http://www.sipbroker.com/sipbroker/action/providerWhitePages]] -  [[SB PSTN|http://www.sipbroker.com/sipbroker/action/pstnNumbers]]''
''[[Callcentric|https://www.callcentric.com/support/device/android/callcentric]] - *462 - 1-631-536-7241''
''Callcentric INUM [[International iNUM|http://www.inum.net/what-is-inum-2/local-access-numbers/]] @ (213) 221-3799<br>883510001197009''
''[[Skype|https://login.skype.com/login?client_id=578134&redirect_uri=https%3A%2F%2Fweb.skype.com%2F]]<br>Name: garyrust''
''Skype To Go No.<br>(702) 425-7809''
''[[jabber.hot-chilli.net|https://jabber.hot-chilli.net/jappix/]]<br>Name: phuket''
[[Psilocybin|http://scienceport.tiddlyspot.com/#Psilocybin]]
[[My Webpages|http://h8quadmod.tiddlyspot.com/#%5B%5BMy%20Webpages%5D%5D]]
[[Blender Crash Course|https://www.youtube.com/playlist?list=PLS24VPXMziw2bmTkMdgd0crwU2vYH5Bzu]]
''[[Blender Wiki|http://wiki.blender.org/]]''
''[[Blender Manual Localhost|http://psychology.tiddlyspot.com/#%5B%5BBlender%20Manual%20Localhost%5D%5D]]''
''[[Kiwix Localhost|http://psychology.tiddlyspot.com/#%5B%5BKiwix%20Localhost%5D%5D]]''
''[[Calculators|http://psychology.tiddlyspot.com/#Calculators]]''
''[[World Travel Thailand|http://psychology.tiddlyspot.com/#%5B%5BWorld%20Travel%20Thailand%5D%5D]]''
''[[Copy, URL to Gdrive|http://urltodrive.softgateon.net/]]''
''[[CasualSexProject|http://casualsexproject.com/]]''
[[INET-FAILURES|http://h8quadmod.tiddlyspot.com/#%5B%5BINTERNET%20FAILURES%20AT%20THE%20SANDFORD%20HOTEL%20IN%20SAN%20DIEGO%5D%5D]]
[[INET Crime Schemes|http://goo.gl/Stm6zF]]
''[[Web Tools|https://www.dmoz.org/Computers/Internet/Protocols/DNS/Web_Tools]]''
''[[Internet Speed Test|https://www.whatismyip.com/internet-speed-test/?iref=c1]]''
''[[Exede Satellite Inet|http://www.satelliteinternetsource.com/]]''
''[[DNSqueries|http://www.dnsqueries.com/en/]]''
''[[Linux man pages|http://goo.gl/XhBgid]]''
''[[FREE PROXY LIST|http://www.samair.ru/proxy/]]''
''[[Anonine VPN|http://h8quadmod.tiddlyspot.com/#%5B%5BAnonine%20VPN%5D%5D]]''
''[[CyberGhost Proxy|http://www.cyberghostvpn.com/en_us/free-proxy]]''
''[[HTML(5) Tutorial|http://www.w3schools.com/html/default.asp]]
''[[javascript|http://javascript.crockford.com/]]''
''[[javascriptkit|http://www.javascriptkit.com/cutpastejava.shtml]]''
''[[InlineJavascriptPlugin|http://tiddlytools.com/#InlineJavascriptPluginInfo]]''
[[FaceBook|http://tinyurl.com/njtafkt]]
[[photos.goo|https://photos.google.com/]]
[[flickr|https://www.flickr.com/cameraroll]]
http://imgur.com/
[[WelcomeToTiddlyspot]] [[GettingStarted]]
[[TiddlyWiki Tutorial]]
''[[TiddlyDesktop|https://github.com/Jermolene/TiddlyDesktop/]]''
''[[TiddlyDesktop Video|http://tiddlywiki.com/#Introducing%20TiddlyDesktop%20Video]]''
''[[twhelp|http://twhelp.tiddlyspot.com/]]''
''[[tiddlytools|http://tiddlytools.com/]]''
''[[tiddlyvault|http://tiddlyvault.tiddlyspot.com/]]''
''[[TiddlyWiki/Dev|http://tiddlywiki.com/dev/]]''
''[[TiddlyWiki5|https://github.com/Jermolene/TiddlyWiki5]]''
''[[TW5 Magick|http://tw5magick.tiddlyspot.com/]]''
''[[Search|https://search.disconnect.me/]]''
''[[Gethub H8QuadMod|https://github.com/garyrust/H8QuadMod]]''
[[WikiText TiddlyWiki |http://tinyurl.com/o5p7h3x]]
[[Empty TiddlyWiki 5|http://tiddlywiki.com/]]
---- 
''[[MiniBrowserPlugin|http://tiddlytools.com/#MiniBrowserPlugin]]''
''[[EasyEditPlugin|http://visualtw.ouvaton.org/VisualTW.html#EasyEditPlugin]]''
''[[InlineJavascriptPlugin|http://tiddlytools.com/#InlineJavascriptPlugin]]''
''[[AttachFilePlugin|http://www.tiddlytools.com/#AttachFilePlugin]]''
[[TiddlyMail|file:///var/www/html/tiddlymail/tiddlymail.html]] - (Local)
//[[PermaView]] (stored)//
[[Making gears by hand without machines - Part 1 - Kosmos|https://youtu.be/uxzWk7v9sUo]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/uxzWk7v9sUo" frameborder="0" allowfullscreen></iframe></html>
[[Kosmos Watchmaker's Tool finds|https://youtu.be/giGBSUvd4j0]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/giGBSUvd4j0" frameborder="0" allowfullscreen></iframe></html>
[[Kosmos - Machinist Project Ideas and Plans|https://youtu.be/QssUISXVMq4]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/QssUISXVMq4" frameborder="0" allowfullscreen></iframe></html>
[[Permaview|http://scienceport.tiddlyspot.com/#%5B%5BMath%20Channels%5D%5D]]
<<miniBrowser http://scienceport.tiddlyspot.com/#%5B%5BMath%20Channels%5D%5D>>
/%
!info
|Name|MicroCalc|
|Source|http://www.TiddlyTools.com/#MicroCalc|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|simple calculator using javascript eval() function|
Usage
<<<
{{{
<<tiddler MicroCalc>>
<<tiddler MicroCalc with: width>>
*''width'' (optional) is a CSS measurement (default=auto)
}}}
<<<
Example
>{{{<<tiddler MicroCalc with: 300px>>}}}
><<tiddler MicroCalc##show with: 300px>>
!end
!show
<html><nowiki>
<form action="javascript:;" style="width:$1;display:block;white-space:nowrap;margin:0;padding:0;"><!--
--><input name="input" value="0" style="width:70%;text-align:right;"
	title="INPUT: enter a JavaScript expression, function, or object/variable name"
	onfocus="this.select()"
	onkeyup="if (event.keyCode==13) {this.form.go.click(); return false;}"><!--
--><input name="go" type="button" value="=" style="width:10%"
	title="CALCULATE: evaluate input and display results"
	onclick="var i=this.form.input; var o=this.form.output; var val=i.value; var res='';
		try{res=eval(val);i.value=res}catch(e){res=e.description||e.toString()};
		o.value+=(o.value.length?'\n':'')+val+'\n='+res;
		o.style.display='block'; o.scrollTop=o.scrollHeight;
		i.select();i.focus();"><!--
--><input name="memstore" type="button" value="m" style="width:10%"
	title="MEMORY STORE: save input to temporary memory"
	onclick="var f=this.form; f.memory.value=f.input.value;
		f.memory.parentNode.style.display='block'"><!--
--><input name="clear" type="button" value="c" style="width:10%" 
	title="CLEAR: erase history and reset input"
	onclick="var i=this.form.input; var o=this.form.output;
		o.value='';o.style.display='none';
		i.value='0';i.select();i.focus();"><!--
--><div style="display:none"><!--
--><input name="memory" value="0" style="width:70%;text-align:right;"
	title="MEMORY: temporarily store input during calculations"><!--
--><input name="meminsert" type="button" value="mi" style="width:10%"
	title="MEMORY INSERT: append memory value to current input"
	onclick="var i=this.form.input;
		i.value+=this.form.memory.value; i.select();i.focus();"><!--
--><input name="memrecall" type="button" value="mr" style="width:10%"
	title="MEMORY RECALL: replace current input with memory value "
	onclick="var i=this.form.input;
		i.value=this.form.memory.value; i.select();i.focus();"><!--
--><input name="memclear" type="button" value="mc" style="width:10%"
	title="MEMORY CLEAR: clear temporary memory"
	onclick="var f=this.form; f.memory.value='0';
		f.memory.parentNode.style.display='none';
		f.input.select();f.input.focus();"><!--
--></div><!--
--><textarea name="output" rows=5 style="width:99%;display:none;text-align:right;"
	title="HISTORY: previous inputs and calculated results"></textarea><!--
--></form></html>
!end
%/<<tiddler {{tiddler&&tiddler.title=='MicroCalc'?'MicroCalc##info':'MicroCalc##show'}}
	with: {{'$1'!='$'+'1'?'$1':'auto'}}>>
Go to [[Top|Moses!]] of page
[[MiniBrowserList]] - [[Math Channels]] - [[Maker-Hacker-Lab Spaces & Events|https://docs.google.com/spreadsheets/d/187w4uz-QoyAptsds2ZBPXblA7mC3Zg6r7MLPWGIqALc/edit?usp=sharing]]
[[Permaview|http://h8quadmod.tiddlyspot.com/#MiniBrowser]] - [[Morse Code|http://morsecode.scphillips.com/translator.html]] - [[Time|http://www.time.gov/HTML5/]] - [[Youporn|http://glassparrot.tiddlyspot.com/#%5B%5BYouporn%20Embeded%5D%5D]]

<<miniBrowser https://docs.google.com/spreadsheets/d/187w4uz-QoyAptsds2ZBPXblA7mC3Zg6r7MLPWGIqALc/edit?usp=sharing>>
Slinky loop aerial
https://www.nonstopsystems.com/radio/pdf-ant/article-antenna-slinky-RDCM-11-2010.pdf
----
Sunrise Metal Technology Co., Ltd
http://www.aluminumdiecastingsupplier.com/products/Aluminum-shell-prototyping-parts-3016492.html
----
Mantissa's Resources
https://www.themantissa.net/resources/
----
Free Landscape Pack
https://www.themantissa.net/blog/landscape-pack
----
Theo Jansen - Wikipedia
https://en.wikipedia.org/wiki/Theo_Jansen
----
PSY
http://www.shoutcast.com/Search?query=Psy
----
Shoutcast
https://www.shoutcast.com/Search?query=Sleep%20Radio%20Stream#
----
Ambient Art Foundation
http://www.radioforest.net/radio/ambient-art-foundation/700272
----
Internet Radio
https://www.internet-radio.com
----
Poliigon
https://www.poliigon.com/
----
Wikipedia
https://en.wikipedia.org/wiki/
----
Sheep it Render Farm
https://www.sheepit-renderfarm.com/getstarted.php
----
cgspeed
http://www.cgspeed.com/
----
Where to find BVH files
https://thomasmakehuman.wordpress.com/makewalk/where-to-find-bvh-files/
----
OPENSHOT Video Editor
http://www.openshot.org/
----
Blender FCP Script
http://www.paulcaggegi.com/store/products/blender-fcp-script/
----
Name: phuket@jabber.hot-chilli.net
https://jabber.hot-chilli.net/jappix/
----
Math Channels
http://scienceport.tiddlyspot.com/#%5B%5BMath%20Channels%5D%5D
----
Unit Converter
http://www.unitconverters.net/
----
Scientific Calculator
http://www.calculator.net/scientific-calculator.html
----
Deep learning
https://en.wikipedia.org/wiki/Deep_learning
----
Ethics of artificial intelligence
https://en.wikipedia.org/wiki/Ethics_of_artificial_intelligence
----
List of mathematical symbols
https://en.wikipedia.org/wiki/List_of_mathematical_symbols
----
Paper Models of Polyhedra
http://www.korthalsaltes.com/
----
Blender.org
https://www.blender.org/
----
Maker-Hacker-Lab Spaces & Events
https://docs.google.com/spreadsheets/d/187w4uz-QoyAptsds2ZBPXblA7mC3Zg6r7MLPWGIqALc/edit?usp=sharing
----
Comparison of programming languages
https://en.wikipedia.org/wiki/Comparison_of_programming_languages_(object-oriented_programming)
----
Object-oriented programming
https://en.wikipedia.org/wiki/Object-oriented_programming
----
MQTT
https://en.wikipedia.org/wiki/MQTT
----
Morse Code
http://morsecode.scphillips.com/translator.html
----
Makehuman
http://www.makehuman.org/
----
Alley OOp
http://www.universaluclick.com/comics/strip/alley-oop#samples
----
EuropaRussiaMoscow
http://streaming210.radionomy.com/EuropaRussiaMoscow
----
ICECAST
http://icecast.org/
----
Download torrent with BitLet.org
http://www.bitlet.org/
----
Glassparrot at wikia.com
http://glassparrot.wikia.com/wiki/Glassparrot_Wiki
----
blenderorganizer at tiddlyspot.com
http://blenderorganizer.tiddlyspot.com/
----
glassparrot at tiddlyspot.com
http://glassparrot.tiddlyspot.com/
----
fishcode at tiddlyspot.com
http://fishcode.tiddlyspot.com/
----
Sheliak.org Docuwiki
http://sheliak.org/dokuwiki/doku.php?id=start&do=index
----
GlassParrot at Wordpress
http://glassparrot.wordpress.com/video/
----
Detekt - Computer and network surveillance software
https://en.wikipedia.org/wiki/Detekt
----
Maltego Forensic Testing
http://www.paterva.com/web6/
----
Carbon Fiber Air Tanks
http://www.airgunsofarizona.com/Tanks.html
----
Google Products
https://www.google.com/intl/en/about/products/
----
Internet Radio
https://www.internet-radio.com/
----
Shoutcast
http://www.shoutcast.com/Home
----
How to Setup an LCD Touchscreen on the Raspberry Pi
http://www.circuitbasics.com/setup-lcd-touchscreen-raspberry-pi/
----
How to Build a Portable Hacking Station with a Raspberry Pi and Kali Linux
http://lifehacker.com/how-to-build-a-portable-hacking-station-with-a-raspberr-1739297918
----
Packet Sniffing using the Raspberry Pi
http://jamesdotcom.com/?p=400
----
JavaScriptKit
http://www.javascriptkit.com/cutpastejava.shtml
----
TiddlyWiki.com - official release
http://www.TiddlyWiki.com
----
TiddlyWiki.org - wiki, tickets, source control
http://www.TiddlyWiki.org
----
GoogleGroup: TiddlyWiki - user/author discussion
http://groups.google.com/group/TiddlyWiki/
----
GoogleGroup: TiddlyWikiDev - core/plugin discussion
http://groups.google.com/group/TiddlyWikiDev/
----
TiddlyVault - index of add-ons from many sources
http://TiddlyVault.TiddlySpot.com
----
TiddlySpot - instant TiddlyWiki hosting!!
http://www.TiddlySpot.com
----
TiddlyTools - plugins, scripts, templates, etc.
http://www.TiddlyTools.com
----
del.icio.us - find popular TiddlyWiki sites
http://del.icio.us/tag/tiddlywiki
----
<<tiddler BookmarkList>>
----
<<tiddler MiniBrowserList_osmosoft>>
----
<<tiddler MiniBrowserList_tech>>
----
<<tiddler MiniBrowserList_news>>
----
<<tiddler MiniBrowserList_media>>
----
<<tiddler MiniBrowserList_flash>>
flash games...

----
Rag Doll
http://www.planetdan.net/pics/misc/georgerag.swf
----
Asteroids
http://www.80smusiclyrics.com/games/asteroids.swf
----
PacMan
http://www.80smusiclyrics.com/games/pacman.swf
----
Tetris
http://www.80smusiclyrics.com/games/tetris2.swf
----
Simon
http://www.80smusiclyrics.com/games/simon.swf
flickr photos...

----
HDR Pool (public collection)
http://www.flickr.com/groups/hdr/pool/show/
----
favorite videos...

----
"PovertyUSA" - WATCH THIS!
http://www.nccbuscc.org/cchd/povertyusa/tour.swf
----
Jack W counts (1yr old)
http://wolfram.org/media/jack_20050310_cleaned.mov
----
webcams...

----
Times Square
http://www.earthcam.com/usa/newyork/timessquare/asx/tsq_stream.asx
----
Monterey Bay
http://www.mbayaq.org/media/STRM/mba_mbay.asx
----
Wrightsville Beach, North Carolina
http://www.aroundtownnc.com/wvx/beachcam.wvx
----
Koningsplein, Amsterdam
"""mms://rembrandt.terena.nl/stream2"""
----
Corsica
http://195.6.173.164/liensmedias/webcam.asx
----
Kulak's Woodshed: Live/Recorded acoustic music
http://www.kulakswoodshed.com/high.asx
----
news...

----
BBC News24 - Live
http://www.bbc.co.uk/newsa/n5ctrl/live/nb/rm/video/now2_nb.ram
----
BBC News - London Summary
http://www.bbc.co.uk/london/realmedia/news/tvnews.ram
----
BBC Entertainment News
http://www.bbc.co.uk/newsa/n5ctrl/summaries/entertain/bb_liquid_news.ram
----
Bloomberg Business News
http://www.bloomberg.com/streams/video/LiveBTV200.ram
----
movies (AmericaFree.TV)...

----
Classic Comedy
http://www.americafree.tv/unicast_mov/AmericaFreeTVComedy.mov
----
Classic Movies
http://www.americafree.tv/unicast_mov/AmericaFreeTVClassics.mov
----
"B" Movies
http://www.americafree.tv/unicast_mov/AmericaFreeTVDimensionB.mov
----
science/education/govt...

----
PBS: Annenberg/CPB
http://www.scctv.net/annenberg_broadband.asx
----
NASA TV
http://science.ksc.nasa.gov/video/nasatv/nasatv.asx
----
C-SPAN 1
http://play.rbn.com/play.asx?url=cspan/cspan/wmlive/cspan1v.asf&proto=mms?mswmext=.asx
----
C-SPAN 2
http://play.rbn.com/play.asx?url=cspan/cspan/wmlive/cspan2v.asf&proto=mms?mswmext=.asx
----
C-SPAN 3
http://play.rbn.com/play.asx?url=cspan/cspan/wmlive/cspan3v.asf&proto=mms?mswmext=.asx
news and events...

----
News - CNN
http://www.cnn.com
----
News - BBC
http://news.bbc.co.uk
----
Comics
http://www.unitedmedia.com/comics/
----
Television
http://www.tvguide.com/listings/default.aspx
----
Weather
http://www.wunderground.com/US/CA/Sunnyvale.html
----
Earthquakes
http://quake.wr.usgs.gov/recenteqs/latest.htm
----
Maps
http://maps.google.com
BT/Osmosoft...

----
Jeremy Ruston
http://jermolene.wordpress.com/
----
Andrew Back
http://carrierdetect.com/
----
Fred Dohr
http://fnd.lewcid.org/blog/
----
James Shi
http://curiousjames.wordpress.com/
----
Jon Lister
http://jaybyjayfresh.com/
----
Nick Webb
http://www.erraticmusings.com/
----
Paul Downey
http://blog.whatfettle.com/
----
Phil Hawksworth
http://www.hawksworx.com/journal/
----
Phil Whitehouse
http://philwhitehouse.blogspot.com/
----
Simon McManus
http://simonmcmanus.com/
technical references...

----
Javascript QuickRef (DevGuru)
http://www.devguru.com/technologies/javascript/
----
CSS QuickRef (DevGuru)
http://www.devguru.com/technologies/css2/
----
CSS compatibility chart
http://www.webdevout.net/browser-support-css
----
Unicode Character Charts
http://www.alanwood.net/unicode/
----
UTF-8 Encoding (Wikipedia)
http://en.wikipedia.org/wiki/UTF-8
----
HTML Character entities (W3)
http://www.w3.org/TR/REC-html40/sgml/entities.html
----
Mozilla Developer Center
http://developer.mozilla.org/
----
Gecko DOM Reference
http://developer.mozilla.org/en/docs/Gecko_DOM_Reference
----
IP Lookup...

----
ARIN - North America
http://www.arin.net
----
RIPE - Europe
http://www.ripe.net
----
APNIC - Asia/Pacific
http://www.apnic.net
----
LACNIC - Latin America/Caribbean
http://www.lacnic.net
----
AFRINIC - Africa
http://www.afrinic.net
/***
|Name|MiniBrowserPlugin|
|Source|http://www.TiddlyTools.com/#MiniBrowserPlugin|
|Documentation|http://www.TiddlyTools.com/#MiniBrowserPluginInfo|
|Version|1.5.3|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.2|
|Type|plugin|
|Requires|PlayerPlugin (optional, recommended)|
|Description|embedded browser-in-browser with favorites lists and media support|
!!!!!Documentation
>see [[MiniBrowserPluginInfo]]
!!!!!Configuration
>Default mini browser size:
>width: <<option txtMiniBrowserWidth>> height: <<option txtMiniBrowserHeight>>
!!!!!Revisions
<<<
2011.02.08 1.5.3 added 'nocontrols' macro keyword parameter
2009.08.29 1.5.2 in load(), fixed 'noplayer' IFRAME output
2009.07.03 1.5.1 added onclick handling to 'n of m' button.  also, if noedit mode, add line numbers to bookmarks droplist items
2009.06.08 1.5.0 added optional 'noedit' mode: replaces add/del/edit buttons with next/previous navigation.
|see [[MiniBrowserPluginInfo]] for additional revision details|
2007.10.15 1.0.0 combined MiniBrowser and MediaCenter inline scripts and converted to true plugin
2006.03.01 0.0.0 inline script
<<<
!!!!!Code
***/
//{{{
version.extensions.MiniBrowserPlugin={major: 1, minor: 5, revision: 3, date: new Date(2011,2,8)};

config.shadowTiddlers.MiniBrowser='<<miniBrowser>>';
config.options.txtMiniBrowserWidth=config.options.txtMiniBrowserWidth||'100%';
config.options.txtMiniBrowserHeight=config.options.txtMiniBrowserHeight||'480';
config.macros.miniBrowser= {
	favoritesList: 'MiniBrowserList',
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var noPlayer=params[0]&&params[0].toLowerCase()=='noplayer'; if (noPlayer) params.shift();
		var noEdit  =params[0]&&params[0].toLowerCase()=='noedit';   if (noEdit)   params.shift();
		var expand  =params[0]&&params[0].toLowerCase()=='expand';   if (expand)   params.shift();
		var hideControls=params[0]&&params[0].toLowerCase()=='hidecontrols'; if (hideControls) params.shift();
		var noControls  =params[0]&&params[0].toLowerCase()=='nocontrols';   if (noControls)   params.shift();
		hideControls	=noControls||hideControls;	// no controls implies hide controls
		var url		=(params[0]&&!store.tiddlerExists(params[0]))?params.shift():'';
		if (!url.length) noControls=hideControls=false; // if no initial URL, force controls to show
		if (!config.macros.player) noPlayer=true; // PlayerPlugin not installed
		var w=config.options.txtMiniBrowserWidth;
		var h=config.options.txtMiniBrowserHeight;

		// create form
		var guid=new Date().getTime()+Math.random().toString(); // globally unique ID
		var html=store.getTiddlerText('MiniBrowserPlugin##html');
		html=html.replace(/%id%/g,guid)
			.replace(/%noplayer%/g,noPlayer?'true':'')
			.replace(/%noedit%/g,noEdit||readOnly?'none':'inline')
			.replace(/%shownav%/g,noEdit||readOnly?'inline':'none')
			.replace(/%hidecontrols%/g,hideControls?'none':'block')
			.replace(/%bookmarksize%/g,(expand?70:20)+'%')
			.replace(/%urlsize%/g,(expand?69.5:20)+'%')
			.replace(/%linebreak%/g,expand?'<br>':'')
			.replace(/%favorites%/g,params[0]||config.macros.miniBrowser.favoritesList);
		createTiddlyElement(place,'span').innerHTML=html;

		// init form
		function $(i){return document.getElementById(i)}; // abbrev
		$('minibrowser_controls_'+guid).style.display=hideControls?'none':'block';
		$('minibrowser_resize_'+guid).style.display=hideControls?'none':'block';
		$('minibrowser_nocontrols_'+guid).style.display=noControls?'none':'inline';
		$('minibrowser_togglecontrols_'+guid).checked=!hideControls;
		$('minibrowser_form_'+guid).url.value=url;
		$('minibrowser_form_'+guid).w.value=w;
		$('minibrowser_form_'+guid).h.value=h;
		if (noPlayer) { // hide type list no PlayerPlugin
			$('minibrowser_type_'+guid).style.display='none';
			$('minibrowser_url_'+guid).style.width=(expand?81.5:32)+'%';
		}

		// load bookmarks droplist from HR-separated tiddler contents
		var b=$('minibrowser_bookmarks_'+guid);
		while (b.options[1]) b.options[1]=null; // clear list but leave 'prompt' item
		var p; while (p=params.shift()) this.getFavorites(b,p,noEdit); // load custom bookmarks
		if (b.length<2) this.getFavorites(b,config.macros.miniBrowser.favoritesList,noEdit); // default list
		$('minibrowser_nav_'+guid).value='1 out of '+b.length;

		// load initial URL (if any)
		var place=$('minibrowser_player_'+guid);
		this.load(place,guid,'','',w,h,true,noPlayer);
		this.go($('minibrowser_form_'+guid));
	},
	getFavorites: function(list,tid,noEdit) {
		var txt=store.getTiddlerText(tid); if (!txt||!txt.trim().length) return;
		txt=this.getWikifiedData(txt);
		var parts=txt.split('\n----\n');
		for (var p=0; p<parts.length; p++) {
			var lines=parts[p].split('\n');
			var label=lines.shift()||''; // 1st line=display text
			var value=lines.shift()||''; // 2nd line=item value
			var indent=value&&value.length?'\xa0\xa0':'';
			var prefix=value.length&&noEdit?list.length+1+': ':'';
			list.options[list.length]=new Option(prefix+indent+label,value,false,false);
		}
	},
	getWikifiedData: // wikify content, then extract text WITH newlines and HRs included
	function(txt) {
		var e=createTiddlyElement(document.body,'div'); wikify(txt,e);
		var breaks=e.getElementsByTagName('br');
		for (var b=0; b<breaks.length; b++)
			breaks[b].parentNode.insertBefore(document.createTextNode('\n'),breaks[b]);
		var lines=e.getElementsByTagName('hr');
		for (var l=0; l<lines.length; l++)
			lines[l].parentNode.insertBefore(document.createTextNode('----\n'),lines[l]);
		var items=e.getElementsByTagName('li');
		for (var i=0; i<items.length; i++)
			items[i].parentNode.insertBefore(document.createTextNode('\n'),items[i]);
		var txt=getPlainText(e);
		removeNode(e);
		return txt.replace(/\r*/g,'').replace(/\n\n/g,'\n');
	},
	load: function(place,id,type,url,w,h,showcontrols,noPlayer) {
		if (!noPlayer)
			config.macros.player.loadURL(place,id,type,url,w,h,showcontrols);
		else { // force IFRAME-only display
			if (!place) place=document.getElementById(id).parentNode;
			var fmt="<iframe name='%0' id='%0' src='%1' width='%2' height='%3' \
				style='background:#fff;border:1px solid'></iframe>";
			place.innerHTML=fmt.format([id,url,w,h]);
		}
	},
	go: function(f) {
		var url=f.url.value.trim();
		if (!url.length) url=f.url.value=f.bookmarks.value.trim();
		if (!url.length) { this.done(f); return false; }
		var id=f.playerID.value;
		document.getElementById('minibrowser_player_'+id).style.display='block';
		document.getElementById('minibrowser_controls2_'+id).style.display='block';
		this.load(null,id,f.type.value,f.url.value,f.w.value,f.h.value,f.ctrls.checked,f.noPlayer.value=='true');
		var matched=false; for (var i=0; i<f.bookmarks.options.length; i++) // select matching bookmark
			if (f.bookmarks.options[i].value==url) { f.bookmarks.selectedIndex=i; matched=true; break; }
		if (!matched) f.bookmarks.selectedIndex=0;
		f.done.disabled=false;
		return false;
	},
	done: function(f) {
		var id=f.playerID.value;
		this.load(null,id,null,null,f.w.value,0,f.ctrls.checked,f.noPlayer.value=='true');
		document.getElementById('minibrowser_player_'+id).style.display='none';
		document.getElementById('minibrowser_controls2_'+id).style.display='none';
		f.done.disabled=true; 
		return false;
	},
	fit: function(place) {
		// fudge factor to account for the other controls + padding + borders.  ADJUST THIS VALUE TO FIT LAYOUT
		var trim=89;
		var t=story.findContainingTiddler(place);
		if (!t) { t=place; while (t && t.className!='floatingPanel') t=t.parentNode; } if (!t) return;
		var w='100%'; // horizontal stretching via CSS works, but vertical stretching doesn't... so:
		var h=t.offsetHeight-trim; // workaround: get containing panel/tiddler height and subtract trim height
		var f=place.form;
		this.load(null,f.playerID.value,f.type.value,f.url.value,w,h,f.ctrls.checked,f.noPlayer.value=='true');
		place.form.w.value=w; place.form.h.value=h; // update width/height input fields
	},
	add: function(place,title) {
		var v=place.value; if (!v.length) return;
		var d=prompt('Please enter a description for\n'+place.value); if (!d || !d.length) return;
		var who=config.options.txtUserName;
		var when=new Date();
		var tid=store.getTiddler(title);
		var txt='%0\n%1\n----\n%2'.format([d,v,tid?tid.text:'']);
		store.saveTiddler(title,title,txt,who,when,tid?tid.tags:[],tid?tid.fields:{});
		if (!tid) story.displayTiddler(story.findContainingTiddler(place),title);
		else story.refreshTiddler(title,1,true);
		var here=story.findContainingTiddler(place);
		if (here) story.refreshTiddler(here.getAttribute('tiddler'),1,true);
	},
	del: function(place,title) {
		var v=place.value; if (!v.length) return;
		var d=place.options[place.selectedIndex].text; if (!d.length) return;
		if (!confirm('Are you sure you want to remove this favorite?\n\n'+d+'\n'+v)) return;
		var tid=store.getTiddler(title); if (!tid) return;
		var who=config.options.txtUserName;
		var when=new Date();
		var pat='%0\n%1\n----\n'.format([d.replace(/\xa0/g,''),v]); var re=new RegExp(pat,'i');
		var txt=tid.text.replace(re,'');
		store.saveTiddler(title,title,txt,who,when,tid?tid.tags:[],tid?tid.fields:{});
		story.refreshTiddler(title,1,true);
		var here=story.findContainingTiddler(place);
		if (here) story.refreshTiddler(here.getAttribute('tiddler'),1,true);
	}
}
//}}}
/***
//{{{
!html
<form id='minibrowser_form_%id%' style='display:block;margin:0;padding:0' onsubmit='return config.macros.miniBrowser.go(this);'><!--
--><nobr><input type='hidden' name='playerID' value='%id%'><input type='hidden' name='noPlayer' value='%noplayer%'><!--
--><div id='minibrowser_controls_%id%' style='display:%hidecontrols%'><!--
--><input type='button' value='<' title='back' style='width:3%'
	onclick='try{window.frames["player_%id%"].history.go(-1)}catch(e){window.history.go(-1)}' ><!--
--><input type='button' value='>' title='forward' style='width:3%'
	onclick='try{window.frames["player_%id%"].history.go(+1)}catch(e){window.history.go(+1)}'><!--
--><input type='button' value='+' title='refresh'style='width:3%'
	onclick='try{window.frames["player_%id%"].location.reload()}catch(e){;}'><!--
--><input type='button' value='x' title='stop'style='width:3%'
	onclick='window.stop()'><!--
--><select name='bookmarks' id='minibrowser_bookmarks_%id%' size='1' style='width:%bookmarksize%'
	onchange='this.form.url.value=this.value;
		this.form.nav.value="%0 out of %1".format([this.selectedIndex+1,this.length]);
		this.form.nav.title="reload %0".format([this.options[this.selectedIndex].text]);
		return config.macros.miniBrowser.go(this.form);'><!--
--><option value=''>bookmarks...</option><!--
--></select><!--
--><span style='display:%noedit%'><!--
--><input type='button' value='add' title='add URL to the bookmarks' style='width:6%'
	favorites="%favorites%"
	onclick='config.macros.miniBrowser.add(this.form.url,this.getAttribute("favorites"));'><!--
--><input type='button' value='del' title='remove URL from the bookmarks' style='width:6%'
	favorites="%favorites%"
	onclick='config.macros.miniBrowser.del(this.form.bookmarks,this.getAttribute("favorites"));'><!--
--><input type='button' value='edit' title='edit the bookmarks list' style='width:6%'
	favorites="%favorites%"
	onclick='story.displayTiddler(null,this.getAttribute("favorites"),2)'><!--
--></span><!--
--><span style='display:%shownav%'><!--
--><input name=prev type='button' value='&#x25C4;' title='view previous bookmark' style='width:3%'
	onclick='var b=document.getElementById("minibrowser_bookmarks_%id%");
		b.selectedIndex=Math.max(b.selectedIndex-1,0); b.onchange();'><!--
--><input name='nav' id='minibrowser_nav_%id%'
	type='button' value='N out of MM' title='enter a bookmark number' style='width:12%'
	onclick='return this.form.next.click();
		var b=this.form.bookmarks;
		var i=prompt("Enter a bookmark number (1-"+b.length+")",b.selectedIndex+1);
		if (i && i<b.length) { b.selectedIndex=i-1; b.onchange(); }'><!--
--><input name=next type='button' value='&#x25BA;' title='view next bookmark' style='width:3%'
	onclick='var b=document.getElementById("minibrowser_bookmarks_%id%");
		b.selectedIndex=Math.min(b.selectedIndex+1,b.length); b.onchange();'><!--
--></span><!--
-->%linebreak%<!--
--><select name='type' id='minibrowser_type_%id%' size='1' style='width:12%'
	onchange='var opt=this.options; for (var i=0; i<opt.length; i++)
		if (i==this.selectedIndex) opt[i].text=opt[i].text.replace(/\xa0\xa0/,"&radic;");
		else opt[i].text=opt[i].text.replace(/&radic;/,"\xa0\xa0");
		if (this.selectedIndex==0) opt[1].text=opt[1].text.replace(/\xa0\xa0/,"&radic;");'><!--
--><option value=''>type...</option><!--
--><option value=''>&radic; auto-detect</option><!--
--><option value='iframe'>&nbsp;&nbsp; web page</option><!--
--><option value='windows'>&nbsp;&nbsp; windows media</option><!--
--><option value='realone'>&nbsp;&nbsp; real one</option><!--
--><option value='quicktime'>&nbsp;&nbsp; quicktime</option><!--
--><option value='flash'>&nbsp;&nbsp; flash</option><!--
--><option value='image'>&nbsp;&nbsp; jpg/gif/png</option><!--
--></select><!--
--><input type='text' name='url' id='minibrowser_url_%id%' size='60' value='' style='width:%urlsize%'
	onfocus='this.select()'><!--
--><input type='submit' value='go' title='view URL' style='width:6%'><!--
--><input type='button' value='open' title='open a separate tab/window' style='width:6%'
	onclick='if (this.form.url.value.length) window.open(this.form.url.value)'><!--
--><input type='button' value='done' name='done' disabled title='disconnect from URL' style='width:6%'
	onclick='return config.macros.miniBrowser.done(this.form);'><!--
--></div><!--
--><div id='minibrowser_player_%id%' style='display:none;text-align:center'></div><!--
--><span id='minibrowser_controls2_%id%' style='margin-top:2px;display:none;'><!--
--><div id='minibrowser_resize_%id%' style='display:%hidecontrols%;float:right'><!--
--> size: <input type='text' name='w' size='3' value='' style=''
	onfocus='this.select()'><!--
-->x<input type='text' name='h' size='3' value='' style=''
	onfocus='this.select()'><!--
--> <input type='submit' value='set' style='width:5em'
	onclick='var f=this.form;
		if(!f.w.value.trim().length) f.w.value=config.options.txtMiniBrowserWidth;
		if(!f.h.value.trim().length) f.h.value=config.options.txtMiniBrowserHeight;
		config.options.txtMiniBrowserWidth=f.w.value; config.options.txtMiniBrowserHeight=f.h.value;
		saveOptionCookie("txtMiniBrowserWidth"); saveOptionCookie("txtMiniBrowserHeight");'><!--
--><input type='submit' value='reset' style='width:5em'
	onclick='var f=this.form; f.ctrls.checked=true; f.w.value="100%"; f.h.value="480";
		config.options.txtMiniBrowserWidth=f.w.value; config.options.txtMiniBrowserHeight=f.h.value;
		saveOptionCookie("txtMiniBrowserWidth"); saveOptionCookie("txtMiniBrowserHeight");'><!--
--><input type='button' value='fit' title='resize player to fit containing window' style='width:5em'
	onclick='config.macros.miniBrowser.fit(this)'><!--
--></div><!--
 style='display:%hidecontrols%'
--><span id='minibrowser_nocontrols_%id%'><!--
--> <input type='checkbox' name='ctrls' id='minibrowser_togglecontrols_%id%' title='toggle minibrowser controls' CHECKED 
	onclick='document.getElementById("minibrowser_controls_%id%").style.display=this.checked?"block":"none";
		document.getElementById("minibrowser_resize_%id%").style.display=this.checked?"block":"none";'
><a href='' title='toggle minibrowser controls'
	onclick='this.previousSibling.click();return false;'>show controls</a><!--
--></span><!--
--></span><!--
--></nobr></form>
!end
//}}}
***/
 
/***
|Name|MiniBrowserPlugin|
|Source|http://www.TiddlyTools.com/#MiniBrowserPlugin|
|Documentation|http://www.TiddlyTools.com/#MiniBrowserPluginInfo|
|Version|1.5.3|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.2|
|Type|plugin|
|Requires|PlayerPlugin (optional, recommended)|
|Description|embedded browser-in-browser with favorites lists and media support|
!!!!!Usage
<<<
{{{<<miniBrowser noplayer noedit expand hidecontrols nocontrols URL TiddlerName TiddlerName TiddlerName...>>}}}
* ''noplayer'' (optional)<br>disables support for embedded media player (using [[PlayerPlugin]], if installed)
* ''noedit'' (optional)<br>hides bookmark //add//, //del//, and //edit// buttons
* ''expand'' (optional)<br>displays minibrowser controls on two lines instead of one for increased readability, especially when long titles or URLs are displayed.
* ''hidecontrols'' (optional)<br>hides initial display of minibrowser controls (except for 'show controls' checkbox)<br>//note: if no initial URL is specified, controls will be shown anyway//
* ''nocontrols'' (optional)<br>hides all minibrowser controls including 'show controls' checkbox<br>//note: if no initial URL is specified, controls will be shown anyway//
* ''URL'' (optional)<br>specifies an initial URL to open when the mini browser is rendered
* ''TiddlerName'', ''TiddlerName''... (optional)<br>indicates one or more tiddlers containing 'HR-separated' lists of favorites.<br>//notes: if no tiddler is specified, [[MiniBrowserList]] is used by default.  In addition, when adding/deleting favorites, the plugin automatically updates [[MiniBrowserList]], regardless of any alternative lists of favorites stored in separate tiddlers.  After changes to [[MiniBrowserList]] are made, you can then use cut/paste to manually move entries from that tiddler into other tiddlers.//
<<<
!!!!!Configuration
>Default mini browser size:
>width: <<option txtMiniBrowserWidth>> height: <<option txtMiniBrowserHeight>>
!!!!!Examples
>{{{<<miniBrowser>>}}}<br>{{smallform small{<<miniBrowser>>}}}
>{{{<<miniBrowser noedit>>}}}<br>{{smallform small{<<miniBrowser noedit>>}}}
>{{{<<miniBrowser expand>>}}}<br>{{smallform small{<<miniBrowser expand>>}}}
>{{{<<miniBrowser noedit expand>>}}}<br>{{smallform small{<<miniBrowser noedit expand>>}}}
>{{{<<miniBrowser hidecontrols http://www.TiddlyWiki.com>>}}}<br>{{smallform small{<<miniBrowser hidecontrols http://www.TiddlyWiki.com>>}}}
!!!!!Revisions
<<<
2011.02.08 1.5.3 added 'nocontrols' macro keyword parameter
2009.08.29 1.5.2 in load(), fixed 'noplayer' IFRAME output
2009.07.03 1.5.1 added onclick handling to 'n of m' button.  also, if noedit mode, add line numbers to bookmarks droplist items
2009.06.08 1.5.0 added optional 'noedit' mode to hide bookmark add/del/edit buttons.  Also, moved html def'n to section (saves space)
2008.09.30 1.4.0 removed hard-coded fontsize.  Added 'expand' option (wider controls, displayed on two lines)
2008.09.16 1.3.1 fixed getWikifiedData() when using IE (remove \r and multiple \n)
2008.08.12 1.3.0 added support for wikifying content from favorites lists to enable use of forEachTiddler or inline script output to generate lists on the fly.
2008.08.06 1.2.2 corrected size control buttons to use fixed width
2008.04.07 1.2.1 added txtMiniBrowserWidth and txtMiniBrowserHeight.  cleanup init handling (somewhat)
2008.04.06 1.2.0 added support for specifying initial URL to view (suggested by Richard Berg).  When opening a URL, select matching entry (if any) in bookmarks droplist.  Added support for hiding minibrowser controls.
2008.01.19 1.1.0 added support for optional extra favorites lists stored in separate tiddlers
2007.10.15 1.0.0 combined MiniBrowser and MediaCenter inline scripts and converted to true plugin
2006.03.01 0.0.0 inline script
<<<
[[Permaview|http://psychology.tiddlyspot.com/#Moses!]] -  [[Shoutcast]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]] - [[BaoFeng UV-5R Dual Band HandiTalkie|http://www.amazon.com/BaoFeng-UV-5R-Dual-Radio-Black/dp/B007H4VT7A/ref=sr_1_4?s=electronics&ie=UTF8&qid=1462976213&sr=1-4&keywords=baofeng+uv-5r]] - [[Baofeng UV-5R repeater|http://glassparrot.tiddlyspot.com/#%5B%5BBaofeng%20UV-5R%20repeater%5D%5D]]''
''[[Ham It Up Upconverter for SDR|http://www.amazon.com/dp/B009LQT3G6/ref=wl_it_dp_o_pd_nS_ttl?_encoding=UTF8&colid=27Y18XJ9539G3&coliid=I32X1JBZPDTZBE]] - [[TYT TYT-TH-9800 50W/40W Two Way Radio|http://www.amazon.com/dp/B00I53VUEY/ref=wl_it_dp_o_pd_nS_ttl?_encoding=UTF8&colid=27Y18XJ9539G3&coliid=I3TAJ0ZMMR6DXZ&psc=1]] - [[Pookyfish|http://glassparrot.tiddlyspot.com/#Pookyfish]] Free Internet''
''[[Broadcastify|http://www.broadcastify.com/listen/ctid/219]]'' - [[MorseCode|http://fishcode.tiddlyspot.com/#MorseCode]] - ''[[WebSDR|http://www.websdr.org/]]'' - ''[[eHamNet|http://www.eham.net/]]'' - ''[[AMPRNET|http://wiki.ampr.org/wiki/Main_Page]]'' - ''[[Winlink|http://glassparrot.tiddlyspot.com/#%5B%5BWinlink%20Digital%20Ameteur%20Radio%5D%5D]]'' - ''[[Packet Radio|http://www.tapr.org/pr_links.html]]'' - ''[[HackRF|http://glassparrot.tiddlyspot.com/#HackRF]]'' - ''[[RPi Hub|http://glassparrot.tiddlyspot.com/#%5B%5BRPi%20Hub%5D%5D]]''
Click on Tags tab to shorten the Timeline menu if your screen is too narrow. -  ''[[Moving Plans|http://psychology.tiddlyspot.com/#%5B%5BMoving%20Plans%5D%5D]] - [[SEEKER Podcasts|http://www.seeker.com/]]'' 
|''[[Morons!|http://psychology.tiddlyspot.com/#%5B%5BBimbo's%20Initiation%5D%5D]]'' They're all morons. You realize, ''[[this|https://en.wikipedia.org/wiki/Corruption]]'' means ''[[war|http://psychology.tiddlyspot.com/#%5B%5BChemical%20warfare%5D%5D]]! [[uTOHphu|http://psychology.tiddlyspot.com/#%5B%5BCult%20suicide%5D%5D]]''<br>''[[How To Install And Run A Chroot JailKit Shell|http://glassparrot.tiddlyspot.com/#%5B%5BHow%20To%20Install%20And%20Run%20A%20Chroot%20JailKit%20Shell%5D%5D]]. - [[¡Ay, caramba!|https://en.wikipedia.org/wiki/%C2%A1Ay,_caramba!]]''<br>''BLU Studio Selfie - Smartphone - GSM Unlocked'' $79.99 - click<br>[img[http://i.imgur.com/DmnCNhb.jpg][http://goo.gl/xOGu6J]]<br>Get ye back to thy [[Microscope|http://glassparrot.tiddlyspot.com/#Microscope]]. Pronto. Thow hast not seen the end. Halt. - ''[[Blend4Web|https://www.blend4web.com/en/]] - [[Gazebo Robot simulator|http://gazebosim.org/]] - [[FreeCAD|https://www.freecadweb.org/]] -  [[FreeVPN|http://n6xre.tiddlyspot.com/#FreeVPN]]''|''[[Pantheism|https://en.wikipedia.org/wiki/Pantheism]] - [[RARE 1950's Walt Disney PREDICTIVE PROGRAMMING|https://youtu.be/XRpMuk27ddA]] - [[Confucius Say|https://goo.gl/qujjR1]] - [[I Ching|http://almanac.tiddlyspot.com/#%5B%5BI%20Ching%5D%5D]]''<br>''[[จิต สู้ มาร|https://www.viddsee.com/video/spirit-fight-evil/tfyib]]  -  [[Boomers Bible|https://ia800300.us.archive.org/30/items/TheBoomerBible/Boomer_Bible.pdf]]  - A Latin maxim - sic utere tuo ut [[alterum|https://en.wikipedia.org/wiki/Homeostasis]] non laedes - advocates that<br>"no one is to use his property in such a manner as to injure that of another."'' - ''[[Boom Boom Girls|https://youtu.be/1vHgXk7TaGU]]''<br>[[HP Spectre HP Laptop|http://glassparrot.tiddlyspot.com/#%5B%5BHP%20Spectre%20HP%20Laptop%5D%5D]] - [[Programs To Learn Thai|http://artport.tiddlyspot.com/#%5B%5BChanging%20a%20Song%E2%80%99s%20Pitch%20in%20Audacity%5D%5D]] - [[Foreign Exchange Rates|http://psychology.tiddlyspot.com/#%5B%5BForeign%20Exchange%20Rates%5D%5D]] - [[Hangouts|https://plus.google.com/hangouts]] - [[Psilocybin|http://scienceport.tiddlyspot.com/#Psilocybin]]<br>[[The Devil And Miss Jones|http://glassparrot.tiddlyspot.com/#%5B%5BThe%20Devil%20And%20Miss%20Jones%5D%5D]] - [[Is Kamasutra Pornography?|https://youtu.be/czu4M978vUk]] - [[High School DxD|https://goo.gl/8WO9Eh]] - [[Learn Thai Online|http://psychology.tiddlyspot.com/#%5B%5BLearn%20Thai%20Online%5D%5D]] - [[Up|https://youtu.be/o8lFOVxheyE]]<br>''[[Science and Islam|http://thailanguage.tiddlyspot.com/#Moses!]] - [[New Computer Knows The Day You Will Die|https://youtu.be/WW1UI-d4MmY]] - [[The Tootsie Roll Tragedy|http://psychology.tiddlyspot.com/#%5B%5BTootsie%20Roll%20Tragedy%3A%20The%20Real%20Leo%20Hirschfeld%20Story%5D%5D]]''<br>''[[Seven wonders of the Buddhist world BBC Documentary|https://youtu.be/-WDG2DELq00]]'' - ''[[Buddhism|http://moving.tiddlyspot.com/#Buddhism]]'' - ''[[Mosquito repellent|http://scienceport.tiddlyspot.com/#%5B%5BMosquito%20repellent%5D%5D]] - [[Bali|http://moving.tiddlyspot.com/#Bali]]''<br>''[[Always Look On The Bright Side Of Life - HD 1080p - Monty Python Life of Brian|https://youtu.be/SJUhlRoBL8M?list=RDfUspLVStPbk]] - [[AncestryDNA|http://scienceport.tiddlyspot.com/#AncestryDNA]]''<br>''[[Ship Parts|http://psychology.tiddlyspot.com/#%5B%5BShip%20Parts%5D%5D]] - [[Anet A8 3D Printer Kit|http://scienceport.tiddlyspot.com/#%5B%5BAnet%20A8%20Desktop%203D%20Printer%20Prusa%20i3%20DIY%20Kit%5D%5D]] - [[Purgatory|https://en.wikipedia.org/wiki/Purgatory]] - [[Shiva|https://en.wikipedia.org/wiki/Shiva]]'' - ''[[Reincarnation|http://moving.tiddlyspot.com/#Reincarnation]] - [[SIDDHARTHA|http://almanac.tiddlyspot.com/#SIDDHARTHA]]''<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/BzYKAamsQWo?list=RDBzYKAamsQWo" frameborder="0" allowfullscreen></iframe></html><br>''[[Living on a Boat|http://psychology.tiddlyspot.com/#%5B%5BLiving%20on%20a%20Boat%5D%5D]]'' - ''[[Blenderella|http://moving.tiddlyspot.com/#Blenderella]]'' - ''[[High-speed multimedia radio|http://glassparrot.tiddlyspot.com/#%5B%5BHigh-speed%20multimedia%20radio%5D%5D]]'' - ''[[Contact Lens FAQ|http://moving.tiddlyspot.com/#%5B%5BContact%20Lens%20FAQ%5D%5D]]'' - ''[[Moving Plans|http://moving.tiddlyspot.com/#%5B%5BMoving%20Plans%5D%5D]]''<br>''[[King of Thailand - Bhumibol Adulyadej|http://almanac.tiddlyspot.com/#%5B%5BKing%20of%20Thailand%20Rama%20IX%20-%20Bhumibol%20Adulyadej%5D%5D]] dies Oct. 13, 2559 BE - [[The Tibetan Book of the Dead|http://almanac.tiddlyspot.com/#%5B%5BThe%20Tibetan%20Book%20of%20the%20Dead%5D%5D]]''<br>''[[Former President of Cuba Fidel Castro|https://en.wikipedia.org/wiki/Fidel_Castro]] dies November 25, 2016 CE. - [[Last Judgment|https://en.wikipedia.org/wiki/Last_Judgment]] - [[The God|https://youtu.be/93xY06Sh7FE]]''<br>''[[Journal|http://almanac.tiddlyspot.com/#Journals]] - [[Arrived in Phuket, Thailand on 09/05/2016|http://moving.tiddlyspot.com/#%5B%5BArrived%20in%20Phuket%2C%20Thailand%20on%20Sept%2005%2C%202016%5D%5D]] - [[Ripley Believe it or Not|http://moving.tiddlyspot.com/#%5B%5BRipley%20Believe%20it%20or%20Not%5D%5D]] - [[Ship Parts|http://psychology.tiddlyspot.com/#%5B%5BShip%20Parts%5D%5D]] - [[Get I2P|https://geti2p.net/en/]]''<br>''[[Gary Rust on Facebook|https://www.facebook.com/gary.rust.75]] - [[Billy Furman on Facebook|https://www.facebook.com/billy.furman1]] - [[Thailand Rob|https://www.youtube.com/channel/UCd7MMxZLnYVREjGJLXYJvCA/featured]] - [[Sailing La Vagabonde|https://www.youtube.com/playlist?list=PLej_Gvr1c1MM4hEcyzmT06mGoIqoXHcwo]]''|
''[[TIDDLYWIKI INTERNALS PERMAVIEW|http://almanac.tiddlyspot.com/#%5B%5BTIDDLYWIKI%20INTERNALS%5D%5D]] - [[Oppenheimer: "I am become Death, the destroyer of worlds."|https://youtu.be/lb13ynu3Iac]] - [[Nuc Time-Lapse Map|http://almanac.tiddlyspot.com/#Nuclear]]''
''[[6 Secret Cities That Prove We Don't Know What's Really Going On|https://youtu.be/wYyBcOLq8bs]] - [[A Psychologists Amazing Discoveries After Near Death Experience|https://youtu.be/RZtM9lanqI4]]'' 

''https://en.wikipedia.org/ - [[DIY Electric Bike - 3d Printed|http://scienceport.tiddlyspot.com/#%5B%5BDIY%20Electric%20Bike%20-%203d%20Printed%5D%5D]] - [[Anet A8 3D Printer Kit|http://scienceport.tiddlyspot.com/#%5B%5BAnet%20A8%20Desktop%203D%20Printer%20Prusa%20i3%20DIY%20Kit%5D%5D]] - [[MakeSea 3D Printed Electric Motor|https://www.makesea.com/web/cla/~/50612/profile/-/asset_publisher/Rl6cqGtVw4Vb/content/660-watt-3d-printed-halbach-array-brushless-motor?inheritRedirect=false&redirect=https%3A%2F%2Fwww.makesea.com%2Fweb%2Fcla%2F%7E%2F50612%2Fprofile%3Fp_p_id%3D101_INSTANCE_Rl6cqGtVw4Vb%26p_p_lifecycle%3D0%26p_p_state%3Dnormal%26p_p_mode%3Dview%26p_p_col_id%3Dcolumn-1%26p_p_col_count%3D4]] - [[HP Laptop Store|http://store.hp.com/us/en/vwa/Laptops/form=Standard-laptop]] - [[Ship Parts|http://psychology.tiddlyspot.com/#%5B%5BShip%20Parts%5D%5D]]''
<<miniBrowser https://www.blenderguru.com/>>
''[[Can I run Daz Studio on Ubuntu|https://www.daz3d.com/forums/discussion/74732/solved-can-i-run-daz-studio-on-ubuntu]] - [[MakeHuman|http://www.makehuman.org/]] - [[Kinect Mocap Basics|https://sites.google.com/site/mcasualsdazscripts2/kinect-mocap-basics]] - [[mcasual|https://www.youtube.com/user/mcasual/videos]] Youtubes - [[FreeCAD Lessons for Beginners|http://psychology.tiddlyspot.com/#%5B%5BFreeCAD%20Lessons%20for%20Beginners%5D%5D]]''
<<miniBrowser https://www.daz3d.com/daz_studio>>
''[[THE SACRED BOOKS OF THE EAST|https://goo.gl/MsP8Dg]] - [[BIG BUDDHA PHUKET|http://www.phuket101.net/phuket-big-buddha/]] - [[Tantra E-juice|http://moving.tiddlyspot.com/#%5B%5BTantra%20E-juice%5D%5D]] - [[Visa|http://moving.tiddlyspot.com/#Visa]]''
<html><iframe width="560" height="315" src="https://www.youtube.com/embed/0G-C8xqNSe8?list=PLFEGb57YkU-aPxVpSQXufjg-Mhh-XFC8t" frameborder="0" allowfullscreen></iframe></html>
'''[[Dasboard|https://www.wix.com/dashboard/a43f1c88-4aab-471b-988f-1f1affff55cc/home]] - [[WixEditor|https://wix.com/editor/a43f1c88-4aab-471b-988f-1f1affff55cc?editorSessionId=9ecaa826-3dc0-43b8-bab4-35a1e89075ac&referralInfo=dashboard]]'''<br>
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title></title>
</head>
<body>
<a href="https://garyrust2013.wixsite.com/n6xre" target="_blank"><img
style="border: 0px solid ; width: 1010px; height: 551px;"
alt="N6XRE WixSite"
src="https://i.imgur.com/rJF973D.png"></a><br>
</body>
</html> <br>
<html><iframe src="https://pastebin.com/embed_iframe/AF9KuwKa" style="border:none;width:100%"></iframe></html>
[img[https://zxing.org/w/chart?cht=qr&chs=350x350&chld=L&choe=UTF-8&chl=BEGIN:VCARD%0AVERSION:3.0%0AN:Gary+Allen+Rust%0AORG:N6XRE%0ATEL:7025812502%0AURL:http://n6xre.duckdns.org:73/mediawiki/%0AEMAIL:garyrust2013@gmail.com%0AADR:3040+E+Charleston+Blvd++%233087+Las+Vegas\,+Nv.+89104%0ANOTE:702-900-8019+on+Google+Voice%0AEND:VCARD]]<br>
''These pagess are also hosted on my duckdns domain - listed below''<br>
<<miniBrowser http://n6xre.duckdns.org:85/Tiddlyspot/>>
[[Archimedes-Lab]]
''[[Twitter Page|https://twitter.com/glassparrot]]''

Here are my webpages and references.

Goto http://fishcode.tiddlyspot.com/
Goto http://h8quadmod.tiddlyspot.com/
Goto http://glassparrot.tiddlyspot.com/
Goto http://blenderorganizer.tiddlyspot.com/
Goto http://psychology.tiddlyspot.com/

Goto http://glassparrot.wordpress.com/video/
Goto http://glassparrot.wikia.com/wiki/Glassparrot_Wiki

Goto https://twitter.com/glassparrot/
Goto https://www.facebook.com/gary.rust.75

Goto https://vega.pythonanywhere.com

Goto [[Ad-hoc_networking/Ad-hoc_networking |https://wiki.archlinux.org/index.php/Ad-hoc_networking]] - here
Goto [[NetworkManage | https://wiki.archlinux.org/index.php/NetworkManager]] - here
Goto http://www.biograf.ch/downloads/VirtualToxLab.pdf

- click for Gary Rust on Facebook -
[img[https://s3.amazonaws.com/lowres.cartoonstock.com/computers-social_media-social_networks-website-profile-follower-wda2309_low.jpg][https://www.facebook.com/gary.rust.75]]

- click for Billy Furman on Facebook -
[img[http://ak-hdl.buzzfed.com/static/2013-10/enhanced/webdr03/30/23/enhanced-buzz-20384-1383191052-17.jpg][https://www.facebook.com/billy.furman1]]

[[Permalink|http://scienceport.tiddlyspot.com/#%5B%5BOcean%20Energy%20-%20Wave%20Power%20Station%5D%5D]]
''[[High-voltage direct current|https://en.wikipedia.org/wiki/High-voltage_direct_current]] - [[Uniti EV|https://www.uniti.earth/invest/]] - [[Host your wiki with Miraheze|https://meta.miraheze.org/wiki/Help_center]]''
''[[Enel Green Power’s Marine Machine, power from the sea|https://youtu.be/OgDl1PjFheY]] - [[Fusion Energy - Prof. Steven Cowley|https://youtu.be/SMxOvuSMAug]]''
''also see [[HOW THE BIGGEST OIL RIGS ARE MADE|https://youtu.be/iy1sxHyDhbk]] - [[Algae CO2 Capture|https://youtu.be/QI3Al1dpuUY]] - [[Algae Power|https://youtu.be/waPgGQNppHY]] Youtubes''
''[[Algae Biofuels and Biotech - Stephen Mayfield|https://youtu.be/jPfYjOMNGX0]] - [[Salt evaporation ponds|https://en.wikipedia.org/wiki/Salt_evaporation_pond]] and algae for biofuels.''
[[Ocean Energy - Wave Power Station|https://youtu.be/gcStpg3i5V8]] - [[2|https://youtu.be/fYfs-qYGzvs]] - [[The Boring Company|https://www.youtube.com/channel/UCUU0JfukhilijYKenOyKqdg]] - [[Lithium Extraction Process|https://youtu.be/w3CrFR1Jk1w]] - [[Starlink|https://arstechnica.com/information-technology/2016/11/spacex-plans-worldwide-satellite-internet-with-low-latency-gigabit-speed/]] - [[2|https://youtu.be/AllaFzIPaG4]]
<html><iframe width="560" height="315" src="https://www.youtube.com/embed/gcStpg3i5V8" frameborder="0" allowfullscreen></iframe></html>
[[Now You Know - In Depth - Zac & Jesse's Solution to Pollution|https://youtu.be/4ikX-Cg-TMI]] - [[Energy From Floating Algae Pods|https://youtu.be/HwKyW7e9NPw]]
[[NOVA ScienceNOW - Public Genomes, Algae Fuel - Discovery Science Space|https://youtu.be/jZO9Auxxh74]] - [[Farming the Sea|https://youtu.be/EAN-VRvD8_k]] - [[2|https://youtu.be/E-PycaZ6-PQ]] - [[3|https://youtu.be/iXqK7CeypJk]]
''Human kindness has never weakened the stamina or softened the fiber of a free people. A nation
does not have to be cruel to be tough. [[It's not that we can't do it, it's that we must do it|https://en.wikipedia.org/wiki/Attack_on_Pearl_Harbor]].'' 
1> [[Franklin D. Roosevelt|https://www.brainyquote.com/quotes/quotes/f/franklind138856.html]] - ''[[100 Gigafactories|https://youtu.be/ib1KKHGYmLQ]] - [[2|http://www.smh.com.au/world/lithium-bolivia-20170523-gwb8me.html]] - [[3|https://www.google.com/search?ei=JbsAWtSQKJq4jAPOs4ewDw&q=how+far+is+bolivia+from+puerto+rico&oq=how+far+is+bolivia+from+peurto&gs_l=psy-ab.1.1.33i21k1j33i160k1l2.46564.70106.0.76091.22.22.0.0.0.0.373.2620.7j14j0j1.22.0....0...1..64.psy-ab..0.15.1871...0j0i8i7i30k1j0i8i30k1j0i22i30k1j0i22i10i30k1j0i13k1.0.n7wOdRp918Y]] - [[4|https://www.google.com/search?ei=tcYAWviDGtu4jAOqpCk&q=does+the+amazon+river+run+through+bolivia&oq=does+the+amazon+river+bolivia+&gs_l=psy-ab.1.0.0i7i30k1l3.13975.37956.0.45461.26.24.2.0.0.0.534.3250.6j15j4-1j1.23.0....0...1.1.64.psy-ab..1.25.3248...0j0i22i30k1j35i39k1j0i7i10i30k1j0i7i5i30k1j0i8i7i30k1j0i8i7i10i30k1j0i8i30k1.0.GhyJ9jOC65o]].  [[Roll out the barrel|https://youtu.be/7KRc-ceWE2E]]. [[We'll have a barrel of fun|https://www.iridium.com/network/iridiumnext]].''
''I am neither bitter nor cynical but I do wish there was less immaturity in political thinking.'' 
2> [[Franklin D. Roosevelt|https://www.brainyquote.com/quotes/quotes/f/franklind396993.html]]
''Thanksgiving 2017 in United States of America - Thursday, November 23''
''Paleface - [[BAKED HAM|https://www.epicurious.com/recipes/food/views/baked-ham-360789]] served with wine.''
''Redskin - [[Juicy Roast Turkey Recipe|https://natashaskitchen.com/2014/11/06/juicy-roast-turkey-recipe/]] served with vodka.'' 
''Wetback - [[Menudo Sabroso|https://www.heb.com/recipe/recipe-item/menudo-sabroso/1392679750215]] served with mescal.''
''Cocoabrain - [[Soul Food Pork Chitlins & Hog Maws Recipe|https://youtu.be/23KvV52_DAA]] served with beer.'' Youtube
[[Permaview|http://blenderorganizer.tiddlyspot.com/#%5B%5BPaper%20Models%20of%20Polyhedra%5D%5D]]
[[Paper Models of Polyhedra|http://www.korthalsaltes.com/]]
<<miniBrowser http://www.korthalsaltes.com/>>
/***
|''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"
	});
*/
//}}}
|[[Tutorials|https://youtu.be/8K_mXD3yMwY?list=PLSvCk9Je4F2s7_NRyS6ZTff7kOzDwTuKf]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/8K_mXD3yMwY?list=PLSvCk9Je4F2s7_NRyS6ZTff7kOzDwTuKf" frameborder="0" allowfullscreen></iframe></html>|[[Graphics Templates|https://youtu.be/HwHb61fYBqw?list=PLSvCk9Je4F2vJMCa6o-0qY6dnKHE6wEZ7]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/HwHb61fYBqw?list=PLSvCk9Je4F2vJMCa6o-0qY6dnKHE6wEZ7" frameborder="0" allowfullscreen></iframe></html>|
|[[Rig and Animate ANYTHING in Blender|https://youtu.be/mhQY2_gVoVg]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/mhQY2_gVoVg" frameborder="0" allowfullscreen></iframe></html>|[[Motion Capture Made Easy in Blender|https://youtu.be/dFLPjVWjmCY]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/dFLPjVWjmCY" frameborder="0" allowfullscreen></iframe></html>|
<<miniBrowser https://thomasmakehuman.wordpress.com/makewalk/where-to-find-bvh-files/>>
<<miniBrowser http://www.cgspeed.com/>>
[[Popular Videos - Render farm|https://youtu.be/tcj3HzCHJuw?list=PL4q8kN_oS6FqrOQ7B_DIltiaCAugIBIB0]]
<<miniBrowser https://www.sheepit-renderfarm.com/getstarted.php>>
''[[Universal Licensing System|http://n6xre.tiddlyspot.com/#%5B%5BUniversal%20Licensing%20System%5D%5D]] - [[A Protocol for Offline Bitcoin Over Radio Transactions|http://n6xre.tiddlyspot.com/#%5B%5BA%20Protocol%20for%20Offline%20Bitcoin%20Over%20Radio%20Transactions%5D%5D]] - [[HP Laptop Store|http://store.hp.com/us/en/vwa/Laptops/form=Standard-laptop]]''
See ''[[Anet A8 3D Printer Kit|http://scienceport.tiddlyspot.com/#%5B%5BAnet%20A8%20Desktop%203D%20Printer%20Prusa%20i3%20DIY%20Kit%5D%5D]] - [[DIY Electric Bike - 3d Printed|http://scienceport.tiddlyspot.com/#%5B%5BDIY%20Electric%20Bike%20-%203d%20Printed%5D%5D]] - [[Lilium VTOL ElectroJet|https://lilium.com/]] - [[Tesla, Inc.|https://www.tesla.com/]] - [[BCI|https://en.wikipedia.org/wiki/Brain%E2%80%93computer_interface]] - [[Railgun|https://en.wikipedia.org/wiki/Railgun]] - [[Ship Parts|http://psychology.tiddlyspot.com/#%5B%5BShip%20Parts%5D%5D]]''
''[[The Mouse That Roared|https://thepiratebay.org/torrent/4072072/The_Mouse_That_Roared_(1959)_(Peter_Sellers__Jean_Seberg)]] - [[Prophecy 80 Pound Pistol Crossbow|https://www.amazon.com/dp/B00SI8TZCK/_encoding=UTF8?coliid=I3VMAYCT3G1GQG&colid=27Y18XJ9539G3]] - [[3D Printed Theo Jansen Crossbow Tank|http://blenderorganizer.tiddlyspot.com/#%5B%5B3D%20Printed%20Theo%20Jansen%20Crossbow%20Tank%5D%5D]]''
[[Internet Radio|https://www.internet-radio.com]] - [[PhuketLiveRadio|http://www.thephuketnews.com/radio/listen.php#5KdBJpbAL5yeyc3v.97]] - https://time.is/Phuket - [[Ambient Art Foundation on RadioForest|http://www.radioforest.net/radio/ambient-art-foundation/700272]] - ''[[Thingiverse|https://www.thingiverse.com/]]''
[[Ambient Art Foundation]] - [[Psychillosis.pls|https://yp.shoutcast.com/sbin/tunein-station.pls?id=543496]] (for an external player) - http://websdr.suws.org.uk/ @ 196.00 kHz AM
<<miniBrowser https://www.shoutcast.com/Search?query=Sleep%20Radio%20Stream#>>
''[[Democratizing Bio-Sensing Tools With OpenBCI|https://youtu.be/c7v5urh06kM]] - [[UCMJ|http://n6xre.tiddlyspot.com/#%5B%5BThe%20flight%20that%20rocked%20the%20Soviet%20Union%5D%5D]] - [[THE BORG|https://en.wikipedia.org/wiki/Borg_(Star_Trek)]] - [[Rendering Photorealistic CGI|http://blenderorganizer.tiddlyspot.com/#%5B%5BThe%20Science%20of%20Rendering%20Photorealistic%20CGI%5D%5D]]''<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/c7v5urh06kM" frameborder="0" allowfullscreen></iframe></html>
''[[A Helicopter pad on an airplane.|http://h8quadmod.tiddlyspot.com/#%5B%5BA%20Helicopter%20pad%20on%20an%20airplane%5D%5D]] The helicopter controls a submarine. The submarine is a drone sub''
''with no personnel. The submarine has a helicopter pad for inspection and repair. After a mission''
''the helicopter would be able to land back on the airplane pad. Also, remote control the helicopter.''
''[[Solar powered submarine|https://www.google.com/search?client=ubuntu&channel=fs&q=Borg&ie=utf-8&oe=utf-8#channel=fs&q=solar+powered+submarine]] - [[Submarine Robots Powered by Renewable Energy|https://youtu.be/Iu7_UkhFyn0]] - [[Circumnavigation|https://en.wikipedia.org/wiki/Circumnavigation]]''
''[[Fusion power|https://en.wikipedia.org/wiki/Fusion_power]] - [[Tesla, Inc.|https://www.tesla.com/]] should also make [[eBikes|https://www.amazon.com/gp/product/B002AQHM3U/ref=oh_aui_detailpage_o06_s00?ie=UTF8&psc=1]] and [[Lilium VTOL ElectroJet|https://lilium.com/]]s - [[SpaceX|https://en.wikipedia.org/wiki/SpaceX]]''
''[[Koenigsegg|https://youtu.be/H2mTriy9oQM]] [[Flexible-fuel|https://en.wikipedia.org/wiki/Flexible-fuel_vehicle]] (Propane?) [[Turbo-Electric|https://en.wikipedia.org/wiki/Gas_turbine_locomotive]] Charging Station Trailer for Tesla Products.''
Updated on <<date filedate "DDD, 0hh:0mm:0ss - MMM DDth, YYYY">> - ''My Home = [[N6XRE|http://n6xre.tiddlyspot.com/]] - [[N6XRE WixSite|https://garyrust2013.wixsite.com/n6xre]] - Member of [[GlobalTuners|http://www.globaltuners.com]], [[WebSDR|http://www.websdr.org/]] and [[EchoLink|http://www.echolink.org/]] - [[Boats Map|http://psychology.tiddlyspot.com/#%5B%5BMarine%20Traffic%20Map%5D%5D]]''
''[[I2P|https://en.wikipedia.org/wiki/I2P]]'' - ''[[artport|http://artport.tiddlyspot.com/]] - [[scienceport|http://scienceport.tiddlyspot.com/]] - [[mediaport|http://mediaport.tiddlyspot.com/]] - [[fishcode|http://fishcode.tiddlyspot.com/]] - [[h8quadmod|http://h8quadmod.tiddlyspot.com/]] - [[glassparrot|http://glassparrot.tiddlyspot.com/]] - [[blenderorganizer|http://blenderorganizer.tiddlyspot.com/]] - [[psychology|http://psychology.tiddlyspot.com/]] - [[moving|http://moving.tiddlyspot.com/]] - [[almanac|http://almanac.tiddlyspot.com/]] - [[thailanguage|http://thailanguage.tiddlyspot.com/]] - [[inventoryport|http://inventoryport.tiddlyspot.com/]] - [[Satellites|http://www.n2yo.com/whats-up/whats-up-now.php]]''
Blenderorganizer
[[Mantissa's landscape-pack video|https://www.themantissa.net/blog/landscape-pack]] - [[Blender Software|https://www.blender.org/]]
<<miniBrowser https://www.themantissa.net/resources/>>
[[The Science of Rendering Photorealistic CGI - playlist|https://youtu.be/Qx_AmlZxzVk?list=PLrMEncyd64BdPt-iWyxiAdo19tYm7myf1]] - [[VidiotsChannel Free VFX|http://www.vidiotschannel.com/]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/Qx_AmlZxzVk?list=PLrMEncyd64BdPt-iWyxiAdo19tYm7myf1" frameborder="0" allowfullscreen></iframe></html>
[[ReForm | Hollywood's Digital Clones|https://youtu.be/lTC3k9Iv4r0]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/lTC3k9Iv4r0" frameborder="0" allowfullscreen></iframe></html>
[[Hollywood's History of Faking It|https://youtu.be/H8aoUXjSfsI]] - also see [[5 Elements of Great Chromakey|https://youtu.be/wIXWnTyY__U]] and [[Chroma Key playlist|https://youtu.be/HptrD4ECDBk?list=PL11S5Ezd1D92ZLY5i1m4ly8OkAKYNJh6O]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/H8aoUXjSfsI" frameborder="0" allowfullscreen></iframe></html>
[[How To Place Tracking Markers Part I|https://youtu.be/0Qhe7IO2hwY]] - also see Blender [[Guide to CGI VFX|https://youtu.be/5EofgP6mOXI]] and [[Camera tracking|https://youtu.be/Sx6-2N5sXVg]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/0Qhe7IO2hwY" frameborder="0" allowfullscreen></iframe></html>
[[Natron playlist|https://youtu.be/Uq4rMphbgwE?list=PL2n8LbT_b5IeMwi3AIzqG4Rbg8y7d6Amk]] - [[Natron Cross-platform free open-source compositing software|https://natron.fr/]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/Uq4rMphbgwE?list=PL2n8LbT_b5IeMwi3AIzqG4Rbg8y7d6Amk" frameborder="0" allowfullscreen></iframe></html>
[[Photogrammetry Overview|https://youtu.be/GEsRcFQ1_H8]] - [[Agisoft PhotoScan software|http://www.agisoft.com/]] - also see [[WEIRD SH!T (BLENDER) playlist|https://youtu.be/HNvqMvF45WM?list=PLw1DJ9P2rih8WfLdO4Gyl3bPcy04DmTf1]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/GEsRcFQ1_H8" frameborder="0" allowfullscreen></iframe></html>
[[3D scanning for free!|https://youtu.be/D6eqW6yk50k]] - also see [[Green Screen effect... with no green screen!|https://youtu.be/NUk2Jern2UI]] (use a lawn)<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/D6eqW6yk50k" frameborder="0" allowfullscreen></iframe></html>
[[The Science of Rendering Photorealistic CGI]]

<<miniBrowser https://www.poliigon.com/>>
[[Blender Guru Youtube Page|https://www.youtube.com/user/AndrewPPrice/videos]]
|[[The Secret Ingredient to Photorealism|https://youtu.be/m9AT7H4GGrA]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/m9AT7H4GGrA" frameborder="0" allowfullscreen></iframe></html>|[[Photorealism Explained|https://youtu.be/R1-Ef54uTeU]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/R1-Ef54uTeU" frameborder="0" allowfullscreen></iframe></html>|
[[TiddlyWiki Tutorial|https://youtu.be/ZMGpAW0z_Bo?list=PLzZCajspPU_UjFn0uy-J9URz0LP4zhxRK]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/ZMGpAW0z_Bo?list=PLzZCajspPU_UjFn0uy-J9URz0LP4zhxRK" frameborder="0" allowfullscreen></iframe>
</html>
/***
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 = 'blenderorganizer';

// 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,{

'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"),

'TspotOptions':[
 "tiddlyspot password:",
 "<<option pasUploadPassword>>",
 ""
].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"),

'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")

});
//}}}
''[[Permaview|http://n6xre.tiddlyspot.com/#%5B%5BUniversal%20Licensing%20System%5D%5D]] - [[Groundhog Day|http://n6xre.tiddlyspot.com/#%5B%5BGroundhog%20Day%5D%5D]]''
''In house mediawiki is at''
''http://n6xre.ttl60.com:73/mediawiki/index.php/Main_Page''
''[[Celestial Navigation|https://youtu.be/fn9xMkNUMmY]] - [[Celestial Navigation at Sea|https://youtu.be/kZCwgoUxXWs]] - [[How does precision GPS work?|https://youtu.be/BGkohw9xGyk]]''
''[[Centimeter Positioning with a Smartphone-Quality GNSS Antenna|https://youtu.be/rCOvklUB5vQ]] - [[Centimeter-Accurate Mobile Positioning|https://youtu.be/_7x_Rpe_bzw]]''
''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]] - [[BaoFeng UV-5R Dual Band HandiTalkie|http://www.amazon.com/BaoFeng-UV-5R-Dual-Radio-Black/dp/B007H4VT7A/ref=sr_1_4?s=electronics&ie=UTF8&qid=1462976213&sr=1-4&keywords=baofeng+uv-5r]] - [[Baofeng UV-5R repeater|http://glassparrot.tiddlyspot.com/#%5B%5BBaofeng%20UV-5R%20repeater%5D%5D]]''
''[[Ham It Up Upconverter for SDR|http://www.amazon.com/dp/B009LQT3G6/ref=wl_it_dp_o_pd_nS_ttl?_encoding=UTF8&colid=27Y18XJ9539G3&coliid=I32X1JBZPDTZBE]] - [[TYT TYT-TH-9800 50W/40W Two Way Radio|http://www.amazon.com/dp/B00I53VUEY/ref=wl_it_dp_o_pd_nS_ttl?_encoding=UTF8&colid=27Y18XJ9539G3&coliid=I3TAJ0ZMMR6DXZ&psc=1]] - [[Pookyfish|http://glassparrot.tiddlyspot.com/#Pookyfish]] Free Internet''
''[[Broadcastify|http://www.broadcastify.com/listen/ctid/219]] - [[MorseCode|http://fishcode.tiddlyspot.com/#MorseCode]] - [[WebSDR|http://www.websdr.org/]] - [[eHamNet|http://www.eham.net/]] - [[AMPRNET|http://wiki.ampr.org/wiki/Main_Page]] - [[Winlink|http://glassparrot.tiddlyspot.com/#%5B%5BWinlink%20Digital%20Ameteur%20Radio%5D%5D]] - [[Packet Radio|http://www.tapr.org/pr_links.html]] - [[HackRF|http://glassparrot.tiddlyspot.com/#HackRF]] - [[RPi Hub|http://glassparrot.tiddlyspot.com/#%5B%5BRPi%20Hub%5D%5D]]''

''[[Apartments|http://moving.tiddlyspot.com/#Apartments]] - [[HP Laptop Store|http://store.hp.com/us/en/vwa/Laptops/form=Standard-laptop]] - [[Universal Licensing System - N6XRE|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]] - [[Weather Underground Las Vegas|https://www.wunderground.com/us/nv/las-vegas]]''
''[[Dionysian Mysteries|https://en.wikipedia.org/wiki/Dionysian_Mysteries]] - [[How to make Root Beer Easy|http://inventoryport.tiddlyspot.com/#%5B%5BHow%20to%20make%20Root%20Beer%20Easy%5D%5D]] - [[3D LabPrint|http://thailanguage.tiddlyspot.com/#%5B%5B3D%20LabPrint%5D%5D]] - [[Baofeng Radio TNC Packet Radio cable|http://n6xre.tiddlyspot.com/#%5B%5BBaofeng%20Radio%20TNC%20Packet%20Radio%20cable%5D%5D]]''
''[[Aimee Nolte Music|http://mediaport.tiddlyspot.com/#%5B%5BAimee%20Nolte%20Music%5D%5D]] - [[Math Channels|http://scienceport.tiddlyspot.com/#%5B%5BMath%20Channels%5D%5D]] - [[Recipes|http://inventoryport.tiddlyspot.com/#Recipes]] - [[Wish List|http://n6xre.tiddlyspot.com/#%5B%5BWish%20List%5D%5D]] - [[If Gparted won't run use FixParts|http://n6xre.tiddlyspot.com/#%5B%5BIf%20Gparted%20won't%20run%20use%20FixParts%5D%5D]]''

<<miniBrowser http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830>>
''[[Mui Bueno Recipes - Horchata/|http://muybuenocookbook.com/2011/07/horchata/]]''
''[[Slinky loop aerial|https://www.nonstopsystems.com/radio/pdf-ant/article-antenna-slinky-RDCM-11-2010.pdf]] - [[Food Recipes|http://inventoryport.tiddlyspot.com/#Recipes]]''
''https://www.freecycle.org/''
<<miniBrowser http://www.otvinta.com/download12.html>>
'' Wikipedia [[David Carradine|https://en.wikipedia.org/wiki/David_Carradine]] - [[Ralph L. Boyce|https://en.wikipedia.org/wiki/Ralph_L._Boyce]] - [[Thaksin Shinawatra|https://en.wikipedia.org/wiki/Thaksin_Shinawatra]] trade in the [[Cayman Islands|https://en.wikipedia.org/wiki/Cayman_Islands]]''
''Thaksin Shinawatra traded 100 Billion Baht for 2942042000 US Dollars after the [[Military Coup|https://en.wikipedia.org/wiki/Category:Military_coups_in_Thailand]] 
at the time of David Carradine's death in [[Bankok, Thailand, June 3, 2009|https://en.wikipedia.org/wiki/Economy_of_Thailand#2006_to_2011]] (aged 72) reported by 
Ambassador Ralph L. Boyce. The United States never tried to recover the counterfeited money.''
''[[Tokyo Rose - JOAK|https://en.wikipedia.org/wiki/Tokyo_Rose]] - [[The Mouse That Roared|https://thepiratebay.org/torrent/4072072/The_Mouse_That_Roared_(1959)_(Peter_Sellers__Jean_Seberg)]] - [[VA gov|https://www.myhealth.va.gov/]] - [[A Helicopter pad on an airplane|http://h8quadmod.tiddlyspot.com/#%5B%5BA%20Helicopter%20pad%20on%20an%20airplane%5D%5D]] - [[uTOHphu|http://psychology.tiddlyspot.com/#%5B%5BCult%20suicide%5D%5D]]''
''[[Zardoz (1974) 720p BrRip x264 - VPPV|http://thailanguage.tiddlyspot.com/#%5B%5BZardoz%20(1974)%20720p%20BrRip%20x264%20-%20VPPV%5D%5D]] -   [[Rrustdon (ficticious)|https://youtu.be/eenZZL_bf6o]] - https://www.tesla.com/model3''
''[[Felix The Cat Japanicky 1920 1929 Funny Cartoon Short|https://youtu.be/jgqeE1ZLL1w]]''
[[Footnotes, Endnotes, and Bibliographies|http://www.semo.edu/pdf/old/CWE_Footnotes_Endnotes_and_Bibliography.pdf]]
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 10/06/2018 20:15:12 | Blenderorganizer  | [[/|http://blenderorganizer.tiddlyspot.com/#%5B%5BUniversal%20Licensing%20System%5D%5D%20%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D]] | [[store.cgi|http://blenderorganizer.tiddlyspot.com/store.cgi]] | . | [[index.html | http://blenderorganizer.tiddlyspot.com/index.html]] | . |
| 11/06/2018 23:36:46 | Blenderorganizer  | [[/|http://blenderorganizer.tiddlyspot.com/#%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D%20%5B%5BUniversal%20Licensing%20System%5D%5D]] | [[store.cgi|http://blenderorganizer.tiddlyspot.com/store.cgi]] | . | [[index.html | http://blenderorganizer.tiddlyspot.com/index.html]] | . |
| 13/06/2018 04:26:37 | Blenderorganizer  | [[/|http://blenderorganizer.tiddlyspot.com/#%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D%20%5B%5BUniversal%20Licensing%20System%5D%5D]] | [[store.cgi|http://blenderorganizer.tiddlyspot.com/store.cgi]] | . | [[index.html | http://blenderorganizer.tiddlyspot.com/index.html]] | . |
| 06/08/2018 16:52:17 | YourName | [[/|http://blenderorganizer.tiddlyspot.com/#DefaultTiddlers%20%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D]] | [[store.cgi|http://blenderorganizer.tiddlyspot.com/store.cgi]] | . | [[index.html | http://blenderorganizer.tiddlyspot.com/index.html]] | . |
| 20/10/2018 16:55:45 | Blenderorganizer | [[/|http://blenderorganizer.tiddlyspot.com/#%5B%5BMy%20Mediawiki%5D%5D]] | [[store.cgi|http://blenderorganizer.tiddlyspot.com/store.cgi]] | . | [[index.html | http://blenderorganizer.tiddlyspot.com/index.html]] | . |
| 22/01/2019 00:05:36 | Blenderorganizer | [[/|http://blenderorganizer.tiddlyspot.com/]] | [[store.cgi|http://blenderorganizer.tiddlyspot.com/store.cgi]] | . | [[index.html | http://blenderorganizer.tiddlyspot.com/index.html]] | . |
| 22/01/2019 10:23:10 | Blenderorganizer | [[/|http://blenderorganizer.tiddlyspot.com/]] | [[store.cgi|http://blenderorganizer.tiddlyspot.com/store.cgi]] | . | [[index.html | http://blenderorganizer.tiddlyspot.com/index.html]] | . |
| 07/07/2019 05:28:03 | Blenderorganizer  | [[/|http://blenderorganizer.tiddlyspot.com/#SiteSubtitle]] | [[store.cgi|http://blenderorganizer.tiddlyspot.com/store.cgi]] | . | [[index.html | http://blenderorganizer.tiddlyspot.com/index.html]] | . |
| 15/07/2019 10:39:20 | Blenderorganizer  | [[/|http://blenderorganizer.tiddlyspot.com/]] | [[store.cgi|http://blenderorganizer.tiddlyspot.com/store.cgi]] | . | [[index.html | http://blenderorganizer.tiddlyspot.com/index.html]] | . |
| 24/07/2019 15:16:09 | N6XRE | [[blenderorganizer.html|file:///home/garyrust/sshfs/192.168.11.113/var/www/html/Tiddlyspot/blenderorganizer.html]] | [[store.cgi|http://blenderorganizer.tiddlyspot.com/store.cgi]] | . | [[index.html | http://blenderorganizer.tiddlyspot.com/index.html]] | . | ok |
/***
|''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");


//}}}

[[Permaview|http://blenderorganizer.tiddlyspot.com/#%5B%5BVideo%20Editing%20in%20Blender%5D%5D]] - [[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]
<<miniBrowser http://www.openshot.org/>>
<<miniBrowser http://www.paulcaggegi.com/store/products/blender-fcp-script/>>
[[Popular Videos - Render farm|https://youtu.be/tcj3HzCHJuw?list=PL4q8kN_oS6FqrOQ7B_DIltiaCAugIBIB0]]
<<miniBrowser https://www.sheepit-renderfarm.com/getstarted.php>>
'' Corben Wallace's [[Pandeia|https://www.kickstarter.com/projects/2053105763/pandeia-book-i/description]] on Kickstarter''
|[[Blender Video Editing (2.7X series [Current Series])|https://youtu.be/UEIkIrYQYYY?list=PLjyuVPBuorqIhlqZtoIvnAVQ3x18sNev4]] by Mikeycal Meyers<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/UEIkIrYQYYY?list=PLjyuVPBuorqIhlqZtoIvnAVQ3x18sNev4" frameborder="0" allowfullscreen></iframe></html>|'[[Blendtuts - Tutorials|https://youtu.be/zVigpYh7-FE?list=PLZWSnMW9jKAFbSOOKYngZwwWuIFLWjId7]] by Oliver Villar<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/zVigpYh7-FE?list=PLZWSnMW9jKAFbSOOKYngZwwWuIFLWjId7" frameborder="0" allowfullscreen></iframe></html>|
|[[Video Editing in Blender - Introduction|https://youtu.be/te9HFQVaSUE]] by Paul Caggegi<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/te9HFQVaSUE" frameborder="0" allowfullscreen></iframe></html>|[[Blender NLE Transitions|https://youtu.be/-ffv5ju4wKU]] by Paul Caggegi<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/-ffv5ju4wKU" frameborder="0" allowfullscreen></iframe></html>|
|[[How to Stabilize Videos with Blender|https://youtu.be/nU8zqn091rM]] by Oliver Villar<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/nU8zqn091rM" frameborder="0" allowfullscreen></iframe></html>|[[How to do Camera Tracking in Blender|https://youtu.be/5HvLTJ4Zgo0]] by Oliver Villar<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/5HvLTJ4Zgo0" frameborder="0" allowfullscreen></iframe></html>|
|[[Youtube Video Editor|https://youtu.be/CFD5ZhXCxyE]] by Teacher's Tech<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/CFD5ZhXCxyE" frameborder="0" allowfullscreen></iframe></html>|[[YouTube Help playlist|https://youtu.be/K2bl_4aPC-w?list=PLmkaw6oRnRv8DSn56lknrg6TUVQ4iXQSr]] by Teacher's Tech<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/K2bl_4aPC-w?list=PLmkaw6oRnRv8DSn56lknrg6TUVQ4iXQSr" frameborder="0" allowfullscreen></iframe></html>|
[[Permaview|http://blenderorganizer.tiddlyspot.com/#%5B%5BWorking%20for%20Free%5D%5D]]
click ''Jimmyology - [[How To Install And Run A Chroot JailKit Shell|http://glassparrot.tiddlyspot.com/#%5B%5BHow%20To%20Install%20And%20Run%20A%20Chroot%20JailKit%20Shell%5D%5D]]''
|!TRUE|!KNOW WAY|!FALSE|
|Push the fit button<br><br><<miniBrowser expand https://en.wikipedia.org/wiki/List_of_mathematical_symbols>><br>Push the reset button<br>''[[Trigonometry: Unit Circle|https://youtu.be/593w799sBms]]''<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/593w799sBms" frameborder="0" allowfullscreen></iframe></html>|[img[https://media.giphy.com/media/kOg3DwFidVdEk/giphy.gif][http://giphy.com/search/get-fucked]]|MicroCalc<br>''[[Trigonometric functions|https://en.wikipedia.org/wiki/Trigonometric_functions]]''<br>''[[Google Spreadsheets|https://docs.google.com/spreadsheets/]]''<br><br><<tiddler MicroCalc>><br>''[[Deep learning|https://en.wikipedia.org/wiki/Deep_learning]]''<br>''[[Ethics of artificial intelligence|https://en.wikipedia.org/wiki/Ethics_of_artificial_intelligence]]''<br>''[[New Planet School|https://www.youtube.com/user/NewPlanetSchool/featured]]''<br>[[Highlights of Calculus]]<br>''[[Internet Crime Schemes|http://goo.gl/Stm6zF]]''|
''[[mathbff|https://www.youtube.com/user/mathbff/videos]]'' - [[Math Channels]] - [[MiniBrowser]]
''[[Trigonometric functions|https://en.wikipedia.org/wiki/Trigonometric_functions]]'' - [[List of mathematical symbols|https://en.wikipedia.org/wiki/List_of_mathematical_symbols]] - Wikipedia - ''[[Google docs Spreadsheets|https://docs.google.com/spreadsheets/u/0/]]''

# [[Internet Radio|http://h8quadmod.tiddlyspot.com/#%5B%5BInternet%20Radio%5D%5D]] - [[MiniBrowser|http://h8quadmod.tiddlyspot.com/#MiniBrowser]]
# [[Makehuman|http://www.makehuman.org/]]
# [[Django|http://glassparrot.tiddlyspot.com/#Django]]
# [[Learn Thai Online|http://psychology.tiddlyspot.com/#%5B%5BLearn%20Thai%20Online%5D%5D]]
- click 
[img[https://lh3.googleusercontent.com/afdfkXNuEqs-1jSV3tbKO3X9coVvnY4hhxBdoCo-Lcd0hoIl3q8iuUx9VAb6gx7_c_JV8jfltT5nz9RWRJS_MQQEj3MIrrgLMIxcq3vnv2RVc5Cf0L_KHuxG9m0Bt0QJrCTs_jt9hQPe8uMOVtX0J6632Qe8qIoKaBZZvr9qRk4KCsJfy5avHo_K_vk3O1ClU28z_LxC5T8Z1_2Gw2T1HH_fAnmUReUrDG-73fsZOrvrNdnjKydrX6kzrgTCM3t9Lyx5l-U_PJLXItwMnAqiYRwEgu8BG8PZbek_IDUPexz267aveHKjrdQjqJVsGg-sFmPwM6H2sAIDC676MvLxutWqFNJQBru5G_jFPkRvnkvoXxn3u2Y3UgdfsB_U_8424Qe9WPnu5fLeJO7XK-Yq1Oxfv5XO5MG2ibiy0lwlmcvCW557qM4aHmK9o64YWyEAice4muBqT1PAV15sJHu3sr3QPMtcsS93fPXHDIPTepjyEMuaYIGIstadwT3SqsnljQ1cpEZ9R77T6NdZupKygmkT2g9VoFSWTRWV9O90WHrVXbLB0P2ebFoml58uYfTDVP-4=w1255-h796-no][https://www.youtube.com/user/mathbff/videos]]
<<attach inline>>

[[Working for Free]]