<!--{{{-->
<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>>
''[[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]]''
''[[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.''
[[Permaview|http://artport.tiddlyspot.com/#%5B%5BAna%20Vidovic%5D%5D]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]''
[[Ana Vidovic|https://youtu.be/GYXNjJX33DY?list=RDGYXNjJX33DY]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/GYXNjJX33DY?list=RDGYXNjJX33DY" frameborder="0" allowfullscreen></iframe></html>
[[Arts and Crafts Tutorials playlist|https://youtu.be/mYuCsYtWwBE?list=PLIO5qNdQIuhqH72A3XNnLMJ8jMLIcpih4]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/mYuCsYtWwBE?list=PLIO5qNdQIuhqH72A3XNnLMJ8jMLIcpih4" frameborder="0" allowfullscreen></iframe></html>
[[Blender 2.78 Feature Overview|https://youtu.be/ajdnTVDxsxU]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/ajdnTVDxsxU" frameborder="0" allowfullscreen></iframe></html>
''[[Permaview|https://goo.gl/t7VGUi]] - [[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]] - [[The Mega Plush]]''
''[[Blenderella|https://goo.gl/6XM8NF]] - [[Barbie Doll Clothes and Accessories in Bangkok|https://www.tripadvisor.com/ShowTopic-g293916-i3687-k5963650-Barbie_Doll_Clothes_and_Accessories_in_Bangkok-Bangkok.html]] - [[Shapeways|http://www.shapeways.com/]]''<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/375LkBKnXy0?list=PLCF8C2CA7D76785B7" frameborder="0" allowfullscreen></iframe></html>
''[[How does a sundial work?|https://youtu.be/IJhgZBn-LHg]] - [[Explaination|https://www.quora.com/How-does-a-sundial-work-If-the-world-is-a-sphere-like-shape-how-does-the-sundial-work-so-consistently-Does-a-sundial-prove-the-earth-is-flat]] - [[Sundial Web Links|http://sundialsoc.org.uk/discussions/web-links/]] - [[Google Search Sundials|https://www.google.co.th/search?client=ubuntu&hs=3ng&q=how+does+a+sundial+work&sa=X&ved=0ahUKEwjt1qbO-rvPAhWIQ48KHbNVC44Q1QIIdygB]]''<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/IJhgZBn-LHg" frameborder="0" allowfullscreen></iframe></html>
''See this [[Asian Mermaid|http://thumbs4.picclick.com/d/w1600/pict/112009264327_/Nixie-the-Mermaid-Wall-Plaque-Garden-Ornament-Wall-Hanging-Sculpture-Stone-Gift.jpg]]
[[MakeHuman|http://www.makehuman.org/]] simplifies the construction of a wire frame 
which may be modified to build an asian mermaid.
[[Manuel Bastioni Laboratory for Blender|http://www.manuelbastioni.com/manuellab.php]] for [[character creation|https://youtu.be/4T91Q-g2urY]].
[[Ubuntu Studio|https://ubuntustudio.org/]] - [[Blender|https://www.blender.org/]] - [[Blender 2.78 Feature Overview|https://youtu.be/ajdnTVDxsxU]]'' 
[[Learn Thai Online|http://thailanguage.tiddlyspot.com/#%5B%5BLearn%20Thai%20Online%5D%5D]] - ''[[Hangouts|https://hangouts.google.com/]]''

[[Permaview|http://artport.tiddlyspot.com/#%5B%5BChanging%20a%20Song%E2%80%99s%20Pitch%20in%20Audacity%5D%5D]] 
[[Best Programs To Learn Thai|http://womenlearnthai.com/index.php/top-thai-language-learning-resources/]]
<<miniBrowser http://womenlearnthai.com/index.php/top-thai-language-learning-resources/>>
[[Recognize pitch of song software|https://www.google.com/#q=recognize+pitch+of+song+software]] - [[Converting Audio files to Sheet Music|http://www.notation.com/Articles-AudioToSheetMusic.php]]
|[[Changing Key or Pitch of Music With Audacity Audio Editor|https://youtu.be/oFeKQkM0eI4?list=RDoFeKQkM0eI4]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/oFeKQkM0eI4?list=RDoFeKQkM0eI4" frameborder="0" allowfullscreen></iframe></html>|[[ADX TRAX: Vocal Isolation for Remixes|https://youtu.be/ghjWoEKeNlk]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/ghjWoEKeNlk" frameborder="0" allowfullscreen></iframe></html>|
[[Changing a Song’s Pitch in Audacity|http://www.jakebinstein.com/blog/changing-a-songs-pitch-in-audacity/]]
<<miniBrowser http://www.jakebinstein.com/blog/changing-a-songs-pitch-in-audacity/>>
[[Karaoke|http://www.makeuseof.com/tag/top-4-sites-download-music-words-test-singing-ability/]] - http://www.karaoke-version.com/free/karaoke.html - [[Karaoke Software for Linux and Windows|http://www.junauza.com/2009/01/karaoke-software-for-linux.html]]
<<miniBrowser http://www.karaoke-version.com/free/karaoke.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);
}
//}}}
[[My Mediawiki]]
[[Universal Licensing System]]
[[Hey Google Phrases]]
[[Virtual Flute/Flute Acoustics]]
[[Ocean Energy - Wave Power Station]]
[[Additive Manufacturing - Ceramic 3D Printing Breakthrough]]
[[DNA]]
[[Moses!]]
[[Shoutcast]]
[[Arts and Crafts Tutorials]]
[[Blenderella]]
[[Blender 2.78 Feature Overview]]
[[Changing a Song’s Pitch in Audacity]]
[[List of jazz musicians]]
[[Ana Vidovic]]
[[H.M.S. Pinafore]]
[[WelcomeToTiddlyspot]] [[GettingStarted]]
[[DefaultTiddlers]]
[[Permaview|http://artport.tiddlyspot.com/#%5B%5BH.M.S.%20Pinafore%5D%5D]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]''
[[H.M.S. Pinafore|https://en.wikipedia.org/wiki/H.M.S._Pinafore]] - [[SV|http://www.acronymfinder.com/SV.html]] - sailing vessel - SV Pinafore
<<miniBrowser https://en.wikipedia.org/wiki/H.M.S._Pinafore>>
<<miniBrowser https://archive.org/details/csfpal_000060>>
<<miniBrowser https://archive.org/search.php?query=H.M.S.%20Pinafore>>

[[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]]
[[List of jazz musicians|https://en.wikipedia.org/wiki/List_of_jazz_musicians]]<br><<miniBrowser https://en.wikipedia.org/wiki/List_of_jazz_musicians>>
/***
|''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)//
Slinky loop aerial
https://www.nonstopsystems.com/radio/pdf-ant/article-antenna-slinky-RDCM-11-2010.pdf
----
PSY
http://www.shoutcast.com/Search?query=Psy
----
Ambient Art Foundation - Shoutcast
http://www.shoutcast.com/Search?query=Ambient%20Art%20Foundation
----
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
----
Wikipedia
https://en.wikipedia.org/wiki/
----
Name: phuket@jabber.hot-chilli.net
https://jabber.hot-chilli.net/jappix/
----
Best Programs To Learn Thai
http://womenlearnthai.com/index.php/top-thai-language-learning-resources/
----
Karaoke Version
http://www.karaoke-version.com/free/karaoke.html
----
Changing a Song’s Pitch in Audacity
http://www.jakebinstein.com/blog/changing-a-songs-pitch-in-audacity/
----
Karaoke
http://www.makeuseof.com/tag/top-4-sites-download-music-words-test-singing-ability/
----
List of jazz musicians (Wikipedia)
https://en.wikipedia.org/wiki/List_of_jazz_musicians
----
H.M.S. Pinafore by Lamplighters Music Theatre
https://archive.org/details/csfpal_000060
----
H.M.S. Pinafore (Wikipedia)
https://en.wikipedia.org/wiki/H.M.S._Pinafore
----
H.M.S. Pinafore; Or, The Lass That Loved A Sailor (LibriVox)
https://librivox.org/search?title=H.M.S.+Pinafore&author=GILBERT&reader=&keywords=&genre_id=0&status=all&project_type=either&recorded_language=&sort_order=catalog_date&search_page=1&search_form=advanced
----
/***
|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/>>
[[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
/***
|''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"
	});
*/
//}}}
''[[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]]''
Artport
/***
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 = 'artport';

// 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 |
| 07/06/2018 05:15:44 | Artport  | [[/|http://artport.tiddlyspot.com/#DefaultTiddlers%20%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D%20%5B%5BUniversal%20Licensing%20System%5D%5D]] | [[store.cgi|http://artport.tiddlyspot.com/store.cgi]] | . | [[index.html | http://artport.tiddlyspot.com/index.html]] | . |
| 10/06/2018 20:03:32 | Artport | [[/|http://artport.tiddlyspot.com/#%5B%5BUniversal%20Licensing%20System%5D%5D%20%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D]] | [[store.cgi|http://artport.tiddlyspot.com/store.cgi]] | . | [[index.html | http://artport.tiddlyspot.com/index.html]] | . |
| 11/06/2018 23:20:32 | Artport | [[/|http://artport.tiddlyspot.com/#%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D%20%5B%5BUniversal%20Licensing%20System%5D%5D]] | [[store.cgi|http://artport.tiddlyspot.com/store.cgi]] | . | [[index.html | http://artport.tiddlyspot.com/index.html]] | . |
| 13/06/2018 04:14:40 | Artport | [[/|http://artport.tiddlyspot.com/#%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D%20%5B%5BUniversal%20Licensing%20System%5D%5D]] | [[store.cgi|http://artport.tiddlyspot.com/store.cgi]] | . | [[index.html | http://artport.tiddlyspot.com/index.html]] | . |
| 06/08/2018 16:42:40 | YourName | [[/|http://artport.tiddlyspot.com/#DefaultTiddlers%20%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D]] | [[store.cgi|http://artport.tiddlyspot.com/store.cgi]] | . | [[index.html | http://artport.tiddlyspot.com/index.html]] | . |
| 20/10/2018 16:40:11 | Artport  | [[/|http://artport.tiddlyspot.com/#%5B%5BMy%20Mediawiki%5D%5D]] | [[store.cgi|http://artport.tiddlyspot.com/store.cgi]] | . | [[index.html | http://artport.tiddlyspot.com/index.html]] | . |
| 21/01/2019 23:56:29 | Artport  | [[/|http://artport.tiddlyspot.com/]] | [[store.cgi|http://artport.tiddlyspot.com/store.cgi]] | . | [[index.html | http://artport.tiddlyspot.com/index.html]] | . |
| 22/01/2019 10:17:56 | Artport  | [[/|http://artport.tiddlyspot.com/]] | [[store.cgi|http://artport.tiddlyspot.com/store.cgi]] | . | [[index.html | http://artport.tiddlyspot.com/index.html]] | . |
| 07/07/2019 05:20:39 | Artport | [[/|http://artport.tiddlyspot.com/#SiteSubtitle]] | [[store.cgi|http://artport.tiddlyspot.com/store.cgi]] | . | [[index.html | http://artport.tiddlyspot.com/index.html]] | . |
| 15/07/2019 10:24:22 | Artport  | [[/|http://artport.tiddlyspot.com/#%5B%5BMy%20Mediawiki%5D%5D]] | [[store.cgi|http://artport.tiddlyspot.com/store.cgi]] | . | [[index.html | http://artport.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.3|
|''Date:''|Feb 24, 2008|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 3,
	date: new Date("Feb 24, 2008"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'
};

//
// Environment
//

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

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

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

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

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

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

//
// uploadOptions Macro
//

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

//
// upload functions
//

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

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

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

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

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

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

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

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

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

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

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

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

//
// Utilities
// 

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

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

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

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

//
// Initializations
//

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

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

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

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


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


//}}}

[[JustAnotherFlutist Youtube Channel|https://www.youtube.com/channel/UCq2gHrRVv2Z6Saf5FScqCaA]]
<<miniBrowser http://newt.phys.unsw.edu.au/music/flute/modernC/results.html>>