<!--{{{-->
<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>>
[[4 Clever Ethernet Cable Hacks|https://youtu.be/7iSC9yXxVVc]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/7iSC9yXxVVc" frameborder="0" allowfullscreen></iframe>
</html>

[[How to make CAT5 Ethernet Cable - Straight Through & Crossover (HD)|https://youtu.be/Uw8FSXx4dnU]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Uw8FSXx4dnU" frameborder="0" allowfullscreen></iframe>
</html>
EIA 568A

PIN WIRE
1 white green
2 green
3 white orange
4 blue
5 white blue
6 orange
7 white brown
8 brown


EIA 568B

PIN WIRE
1 white orange
2 orange
3 white green
4 blue
5 white blue
6 green
7 white brown
8 brown
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5B6%20Hidden%20Features%20in%20Windows%2010%5D%5D]]
[[6 Hidden Features in Windows 10|https://youtu.be/41Luqd5XJok]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/41Luqd5XJok" frameborder="0" allowfullscreen></iframe>
</html>

[[5 Things You Should Do After Upgrading to Windows 10|https://youtu.be/BT1Mz_TRXvQ]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/BT1Mz_TRXvQ" frameborder="0" allowfullscreen></iframe>
</html>
[[80 Amp-DC, 120 Volt, Inverter Stick Welder|http://www.harborfreight.com/80-Amp-DC-120-Volt-Inverter-Stick-Welder-61749.html]]
[img[http://www.harborfreight.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/i/m/image_25357.jpg][http://www.harborfreight.com/80-Amp-DC-120-Volt-Inverter-Stick-Welder-61749.html]]
[[Welding Goggles Set 2 Pc|http://www.harborfreight.com/welding/welding-helmets/2-piece-welding-goggles-set-35712.html]]
[img[http://www.harborfreight.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/i/m/image_17507.jpg][http://www.harborfreight.com/welding/welding-helmets/2-piece-welding-goggles-set-35712.html]]

[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BA%20Trip%20to%20the%20Moon%20-%20Georges%20M%C3%A9li%C3%A8s%201902%5D%5D]]
|''[[A Trip to the Moon - Georges Méliès 1902|https://youtu.be/EvhTo2-0BQg]]''<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/EvhTo2-0BQg" frameborder="0" allowfullscreen></iframe></html>|''[[CGI 3D Animated Short HD: "Monkey Moon"|https://youtu.be/tRqXcx7dHao]] - [[David Bowie – Space Oddity|https://youtu.be/iYYRH4apXDo?list=RDiYYRH4apXDo]]''<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/tRqXcx7dHao" frameborder="0" allowfullscreen></iframe></html>|
|''[[Homeless foreigners on the rise in Thailand|https://youtu.be/J4dcii_fnp4]]''<br>''[[CGI 3D Animated Short Film "Can I Stay?"|https://youtu.be/SdoWrm45bVw]]''<br>''[["Home Sweet Home"|https://youtu.be/aKRZn0uS6eA]]'' - ''[["Ensecret"|https://youtu.be/Yw7DrPMpOLM]] Love is strange''<br>''[[Thai king backs military coup|https://youtu.be/WQ-K50Icuzc]] - [[FEMA camps?|https://en.wikipedia.org/wiki/FEMA_camps_conspiracy_theory]]''<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/SdoWrm45bVw" frameborder="0" allowfullscreen></iframe></html>|[[StarTrekContinues|https://www.youtube.com/playlist?list=PLhvh2eq-XLgqNxH6npvQxGxLCUHy90IpZ]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/3G-ziTBAkbQ?list=PLhvh2eq-XLgqNxH6npvQxGxLCUHy90IpZ" frameborder="0" allowfullscreen></iframe></html>|
''[[Moon landing conspiracy theories|https://en.wikipedia.org/wiki/Moon_landing_conspiracy_theories]]''
<<miniBrowser https://en.wikipedia.org/wiki/Moon_landing_conspiracy_theories>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BAMPRNet%20Wiki%5D%5D]]
[[AMPRNet Wiki|http://wiki.ampr.org/wiki/Main_Page]] - [[High-speed multimedia radio]] - [[Winlink Digital Ameteur Radio]] - ''[[Amateur radio playlist|https://youtu.be/8Ce_b-eclJI?list=PL919125436E6499CB]]''
<<miniBrowser http://wiki.ampr.org/wiki/Main_Page>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BAdafruit%20FONA%203G%20Cellular%20%2B%20GPS%20Breakout%5D%5D]]
[[Adafruit FONA 3G Cellular + GPS Breakout|https://learn.adafruit.com/adafruit-fona-3g-cellular-gps-breakout?view=all]] - [[Buy|https://www.adafruit.com/product/2691]] $79.95
<<miniBrowser https://learn.adafruit.com/downloads/pdf/adafruit-fona-3g-cellular-gps-breakout.pdf>>
''[[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]]


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

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

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

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

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

	typeList: "AttachFileMIMETypes",

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BBlender%20Manual%20Localhost%5D%5D]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]'' - [[Nat King Cole Walkin]]
[[Blender Manual Localhost|http://localhost/BlenderManual/html/contents.html]] - https://www.blender.org/manual/
[[Kiwix Localhost]] - ''[[Self-build and live aboard boat in Thailand|http://www.thaivisa.com/forum/topic/769652-self-build-and-live-aboard-boat-in-thailand/]] - [[Living on a Boat|http://psychology.tiddlyspot.com/#%5B%5BLiving%20on%20a%20Boat%5D%5D]]''
<<miniBrowser http://localhost/BlenderManual/html/contents.html>>
|<<miniBrowser http://www.calculator.net/scientific-calculator.html>>|
|<<miniBrowser http://www.unitconverters.net/>>|
[[Permalink|http://glassparrot.tiddlyspot.com/#%5B%5BCalculus%20-%20Gilbert%20Strang%5D%5D]]
[[Calculus - Gilbert Strang|http://ocw.mit.edu/ans7870/resources/Strang/Edited/Calculus/Calculus.pdf]]
<<miniBrowser http://ocw.mit.edu/ans7870/resources/Strang/Edited/Calculus/Calculus.pdf>>
|[[Complete PCB Hand Assembly (FPGA in BGA Package + reflow)|https://youtu.be/-DMYJmB4naA]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/-DMYJmB4naA" frameborder="0" allowfullscreen></iframe></html>|[[Homemade SMD Pick and Place Machine - complete cycle|https://youtu.be/CRSLbo_8nTQ]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/CRSLbo_8nTQ" frameborder="0" allowfullscreen></iframe></html>|
See [[AncestryDNA|http://scienceport.tiddlyspot.com/#AncestryDNA]] - ONLY$99
* Discover the family story your DNA can tell.
* Uncover your ethnic mix, discover distant relatives, and find new details about your unique family history with a simple DNA test.

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

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

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

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

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

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

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

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

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

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

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

	var co=config.options; // abbrev

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	if ((weekend!==undefined?weekend:isWeekend(date))&&(cmd.weekendbg!=""))
		{ place.style.background = cmd.weekendbg; }
	if (hasModifieds(date)||hasCreateds(date)||hasTagged(date,fmt))
		{ link.style.fontStyle="normal"; link.style.fontWeight="bold"; }
	if (hasReminders(date))
		{ link.style.textDecoration="underline"; }
	if (isToday(date))
		{ link.style.border="1px solid black"; }
	if (isHoliday(date)&&(cmd.holidaybg!=""))
		{ place.style.background = cmd.holidaybg; }
	if (hasCreateds(date)&&(cmd.createdbg!=""))
		{ place.style.background = cmd.createdbg; }
	if (hasModifieds(date)&&(cmd.modifiedsbg!=""))
		{ place.style.background = cmd.modifiedsbg; }
	if ((hasTagged(date,fmt)||store.tiddlerExists(linkto))&&(cmd.linkedbg!=""))
		{ place.style.background = cmd.linkedbg; }
	if (hasReminders(date)&&(cmd.remindersbg!=""))
		{ place.style.background = cmd.remindersbg; }
	if (isToday(date)&&(cmd.todaybg!=""))
		{ place.style.background = cmd.todaybg; }
	if (config.options.chkShowJulianDate) {
		var m=[0,31,59,90,120,151,181,212,243,273,304,334];
		var d=date.getDate()+m[date.getMonth()];
		var y=date.getFullYear();
		if (date.getMonth()>1 && (y%4==0 && y%100!=0) || y%400==0) d++; // after February in a leap year
		wikify("@@font-size:80%;<br>"+d+"@@",place);
	}
	var t=store.getTiddlerText(linkto,'')
	if (config.options.chkInlineCalendarJournals && t.length) wikify('<br>'+t,place);
}
//}}}
|Name|DatePluginInfo|
|Source|http://www.TiddlyTools.com/#DatePlugin|
|Documentation|http://www.TiddlyTools.com/#DatePluginInfo|
|Version|2.7.3|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|documentation|
|Description|documentation for DatePlugin|
This plugin provides a general approach to displaying formatted dates and/or links and popups that permit easy navigation and management of tiddlers based on their creation/modification dates.
!!!!!Usage
<<<
This plugin displays formatted dates, for the specified year, month, day using number values or mathematical expressions such as (Y+1) or (D+30).  Optionally, you can create a link to a 'dated tiddler' for quick blogging or create a popup menu that includes the dated tiddler link plus links to tiddlers that were created/changed on that date, or are tagged with that date and, if the [[ReminderMacros|http://remindermacros.tiddlyspot.com/]] plugin is installed, any pending reminders for next month.  There is also a public API, so other plugins can embed a variety of formatted date output, links, and/or popup menus.
{{{
<<date mode date format linkformat>>
}}}
//all parameters are optional//
*''mode''<br>is one of:
**''display'' (default)<br>shows a formatted date
**''link''<br>creates a link to a specific 'date titled' tiddler
**''popup''<br>creates a popup command containing a dated tiddler link, plus links to changes and reminders.
*''date'' (or ''tiddler'' or ''tiddler:title'' or ''today'' or ''filedate'')<br>enter ANY date (not just today) as space-separated year, month, and day parameters (e.g., 2011 4 23).  You can use pre-defined variables, Y, M, and D for the current year, month and day, repectively.  These variables can be combined with simple mathematical expressions to calculate ''relative dates'' (e.g., D+1 = tomorrow, M-1 = last month, Y+1= next year, etc.)  Alternatively, you can use special keywords in place of the year/month/day parameters to access tiddler and file dates:
**''tiddler'' displays the modification date of the current tiddler.
**''tiddler://name-of-tiddler//'' displays the modification date of a specific tiddler.
**''today'' shows the current date.
**''filedate'' shows the modification date of the entire document.  
*{{block{
''format'' (and ''linkformat'') (default: YYYY.0MM.0DD)<br>uses standard ~TiddlyWiki date formatting syntax to specify the title of the target tiddler.
>''DDD'' - day of week in full (eg, "Monday"), ''DD'' - day of month, ''0DD'' - adds leading zero
>''MMM'' - month in full (eg, "July"), ''MM'' - month number, ''0MM'' - adds leading zero
>''YYYY'' - full year, ''YY'' - two digit year, ''hh'' - hours, ''mm'' - minutes, ''ss'' - seconds
>//note: use of hh, mm or ss format codes is only supported with ''tiddler'', ''today'' or ''filedate'' values//
}}}
*{{block{
''linkformat''<br>specify an alternative date format so that the title of a 'dated tiddler' link can have a format that differs from the date's displayed format.  The default tooltip is same as the title of the linked tiddler.  You can customize the tooltip by modifying the definition in [[DatePluginConfig]]:
{{{
config.macros.date.tipformat="YYYY.0MM.0DD"; // 'dated tiddler' tooltip format
}}}
}}}
You can adjust the 'lead time' for display of [[reminders|http://remindermacros.tiddlyspot.com/]] by modifying the definition in [[DatePluginConfig]]:
{{{
config.macros.date.leadtime=30; // find reminders up to 30 days from now
}}}
In addition to the macro syntax, DatePlugin also provides a public javascript API so that other plugins that work with dates (such as calendar generators, etc.) can quickly incorporate date formatted links or popups into their output:
{{{
showDate(place, date, mode, format, linkformat, autostyle, weekend);
}}}
Note that the javascript API supports two //optional// true/false parameters, in addition those provided by the macro interface:
*''autostyle''<br>font/background styles of formatted dates are automatically adjusted to show the date's status:  'today' is boxed, 'changes' are bold, 'reminders' are underlined, weekends, holidays, changes, and reminders each have a different background color to make them more visibly distinct from one another.
*''weekend''<br>true=day is a weekend, false=day is a weekday, default=automatically determine if a given date falls on a weekend.
<<<
!!!!!Examples
<<<
{{{The current date: <<date>>}}}
>The current date: <<date>>
{{{The current time: <<date today "0hh:0mm:0ss">>}}}
>The current time: <<date today "0hh:0mm:0ss">>
{{{Today's blog: <<date link today "DDD, MMM DDth, YYYY">>}}}
>Today's blog: <<date link today "DDD, MMM DDth, YYYY">>
{{{Recent blogs/changes/reminders: <<date popup Y M D-1 "yesterday">> <<date popup today "today">> <<date popup Y M D+1 "tomorrow">>}}}
>Recent blogs/changes/reminders: <<date popup Y M D-1 "yesterday">> <<date popup today "today">> <<date popup Y M D+1 "tomorrow">>
{{{The first day of next month will be a <<date Y M+1 1 "DDD">>}}}
>The first day of next month will be a <<date Y M+1 1 "DDD">>
{{{This tiddler (DatePlugin) was last updated on: <<date tiddler "DDD, MMM DDth, YYYY">>}}}
>This tiddler (DatePlugin) was last updated on: <<date tiddler "DDD, MMM DDth, YYYY">>
{{{The SiteUrl was last updated on: <<date tiddler:SiteUrl "DDD, MMM DDth, YYYY">>}}}
>The SiteUrl was last updated on: <<date tiddler:SiteUrl "DDD, MMM DDth, YYYY">>
{{{This document was last saved on <<date filedate "DDD, MMM DDth, YYYY at 0hh:0mm:0ss">>}}}
>This document was last saved on <<date filedate "DDD, MMM DDth, YYYY at 0hh:0mm:0ss">>
{{{<<date Y 07 24 "MMM DDth, YYYY">> will be a <<date Y 07 24 "DDD">>}}}
><<date Y 07 24 "MMM DDth, YYYY">> will be a <<date Y 07 24 "DDD">>
<<<
!!!!!Revisions
<<<
2011.04.23 2.7.3 added config.macros.date.tipformat for custom mouseover tooltip
2010.12.15 2.7.2 omit date highlighting when hiding popup items (created/changed/tagged/reminders)
2009.05.31 2.7.1 in addRemindersToPopup(), 'new reminder....' command now uses {{{<<newTiddler>>}}} macro.  Also, general code reduction/cleanup.
2008.03.08 2.7.0 in addModifiedsToPopup(), if a tiddler was created on the specified date, don't list it in the 'changed' section of the popup.  Based on a request from Kashgarinn
2008.01.31 2.6.0 refactored date style logic into separate setDateStyle() function so it can be overridden by a custom definition.  See [[DatePluginConfig]].
2008.01.11 2.5.0 added options to selectively suppress created/changes/tagged/reminders popup content 
2008.01.08 [*.*.*] plugin size reduction: documentation moved to DatePluginInfo
2007.11.21 2.4.0 added hasTagged() and addTaggedToPopup() to list any tiddlers that has been tagged using the title of the dated journal tiddler asa tag value (i.e., the tiddlers that will be listed in the standard "tagging" display when viewing the journal tiddler itself).  Based on a request from Coby.
2007.06.20 2.3.1 in onClickDatePopup(), use Popup.show() instead of deprecated ScrollToTiddlerPopup().  Fixes fatal error that prevents popups from being properly displayed
2007.05.31 2.3.0 list "created" tiddlers in date popup.  Also, force re-cache of created/modified indices when displaying current date and store.isDirty(), so that popup is kept in sync with tiddler changes.
2006.05.09 2.2.1 added "todaybg" handling to set background color of current date.  Also, honor excludeLists tag when getting lists of tiddlers.  Based on suggestions by Mark Hulme.
2006.05.05 2.2.0 added "linkedbg" handling to set background color when a 'dated tiddler' exists.  Based on a suggestion by Mark Hulme.
2006.03.08 2.1.2 add 'override leadtime' flag param in call to findTiddlersWithReminders(), and add "Enter a title" default text to new reminder handler.  Thanks to Jeremy Sheeley for these additional tweaks.
2006.03.06 2.1.0 hasReminders() nows uses window.reminderCacheForCalendar[] when present.  If calendar cache is not present, indexReminders() now uses findTiddlersWithReminders() with a 90-day look ahead to check for reminders.  Also, switched default background colors for autostyled dates: reminders are now greenish ("c0ffee") and holidays are now reddish ("ffaace").
2006.02.14 2.0.5 when readOnly is set (by TW core), omit "new reminders..." popup menu item and, if a "dated tiddler" does not already exist, display the date as simple text instead of a link.
2006.02.05 2.0.4 added var to variables that were unintentionally global.  Avoids FireFox 1.5.0.1 crash bug when referencing global variables
2006.01.18 2.0.3 In 1.2.x the tiddler editor's text area control was given an element ID=("tiddlerBody"+title), so that it was easy to locate this field and programmatically modify its content.  With the addition of configuration templates in 2.x, the textarea no longer has an ID assigned.  To find this control we now look through all the child nodes of the tiddler editor to locate a "textarea" control where attribute("edit") equals "text", and then append the new reminder to the contents of that control.
2006.01.11 2.0.2 correct 'weekend' override detection logic in showDate()
2006.01.10 2.0.1 allow custom-defined weekend days (default defined in config.macros.date.weekend[] array)
added flag param to showDate() API to override internal weekend[] array
2005.12.27 2.0.0 Update for TW2.0
Added parameter handling for 'linkformat'
2005.12.21 1.2.2 FF's date.getYear() function returns 105 (for the current year, 2005).  When calculating a date value from Y M and D expressions, the plugin adds 1900 to the returned year value get the current year number.  But IE's date.getYear() already returns 2005.  As a result, plugin calculated date values on IE were incorrect (e.g., 3905 instead of 2005).  Adding +1900 is now conditional so the values will be correct on both browsers.
2005.11.07 1.2.1 added support for "tiddler" dynamic date parameter
2005.11.06 1.2.0 added support for "tiddler:title" dynamic date parameter
2005.11.03 1.1.2 when a reminder doesn't have a specified title parameter, use the title of the tiddler that contains the reminder as "fallback" text in the popup menu.  Based on a suggestion from BenjaminKudria.
2005.11.03 1.1.1 Temporarily bypass hasReminders() logic to avoid excessive overhead from generating the indexReminders() cache.  While reminders can still appear in the popup menu, they just won't be indicated by auto-styling the date number that is displayed.  This single change saves approx. 60% overhead (5 second delay reduced to under 2 seconds).
2005.11.01 1.1.0 corrected logic in hasModifieds() and hasReminders() so caching of indexed modifieds and reminders is done just once, as intended.  This should hopefully speed up calendar generators and other plugins that render multiple dates...
2005.10.31 1.0.1 documentation and code cleanup
2005.10.31 1.0.0 initial public release
2005.10.30 0.9.0 pre-release
<<<
[[My Mediawiki]]
[[Netgear CM-500 Cable Modem]]
[[Universal Licensing System]]
[[Hey Google Phrases]]
[[Ocean Energy - Wave Power Station]]
[[Additive Manufacturing - Ceramic 3D Printing Breakthrough]]
[[DNA]]
[[Moses!]]
[[Shoutcast]]
[[Microscope]]
[[80 Amp-DC, 120 Volt, Inverter Stick Welder]]
[[Moonshine Making 101]]
[[Blender Manual Localhost]]
[[Example of TinyMCE editor - (File:New document)]]
[[SiteSubtitle]]
[[Faraday Future car 2016]]
[[OpenROV]]
[[Django]]
[[Working for Free]]
[[mathbff]]
[[MiniBrowser]]
[[FreeCAD at Reprap]]
[[Eco Dome, Building a Small Home]]
[[LITHIUM BATTERIES HOW THEY MAKE THEM]]
[[Adafruit FONA 3G Cellular + GPS Breakout]]
[[DefaultTiddlers]]
[[wysiwyg]]
[[Wysiwyg]]
[[Permalink|http://glassparrot.tiddlyspot.com/#%5B%5BDiyouware%20TwinTeeth%3A%20The%20PCB%20mini-factory%5D%5D]]
[[Diyouware TwinTeeth: The PCB mini-factory|http://www.diyouware.com/]]
<<miniBrowser http://www.diyouware.com/>>
|[[Low Budget Manual Pick and Place (HD)|https://youtu.be/bkYNBFXlJYQ]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/bkYNBFXlJYQ" frameborder="0" allowfullscreen></iframe></html>|
[[Permaview|http://glassparrot.tiddlyspot.com/#Django]]
<<miniBrowser https://www.fullstackpython.com/django.html>>
/***
|''Name:''|EasyEditPlugin|
|''Description:''|Lite and extensible Wysiwyg editor for TiddlyWiki.|
|''Version:''|1.3.3|
|''Date:''|Dec 21,2007|
|''Source:''|http://visualtw.ouvaton.org/VisualTW.html|
|''Author:''|Pascal Collin|
|''License:''|[[BSD open source license|License]]|
|''~CoreVersion:''|2.1.0|
|''Browser:''|Firefox 2.0; InternetExplorer 6.0|
!Demo
*On the plugin [[homepage|http://visualtw.ouvaton.org/VisualTW.html]], see [[WysiwygDemo]] and use the {{{write}}} button.
!Installation
#import the plugin,
#save and reload,
#use the <<toolbar easyEdit>> button in the tiddler's toolbar (in default ViewTemplate) or add {{{easyEdit}}} command in your own toolbar.
! Useful Addons
*[[HTMLFormattingPlugin|http://www.tiddlytools.com/#HTMLFormattingPlugin]] to embed wiki syntax in html tiddlers.<<br>>//__Tips__ : When this plugin is installed, you can use anchor syntax to link tiddlers in wysiwyg mode (example : #example). Anchors are converted back and from wiki syntax when editing.//
*[[TaggedTemplateTweak|http://www.TiddlyTools.com/#TaggedTemplateTweak]] to use alternative ViewTemplate/EditTemplate for tiddler's tagged with specific tag values.
!Configuration
|Buttons in the toolbar (empty = all).<<br>>//Example : bold,underline,separator,forecolor//<<br>>The buttons will appear in this order.| <<option txtEasyEditorButtons>>|
|EasyEditor default height | <<option txtEasyEditorHeight>>|
|Stylesheet applied to the edited richtext |[[EasyEditDocStyleSheet]]|
|Template called by the {{{write}}} button |[[EasyEditTemplate]]|
!How to extend EasyEditor
*To add your own buttons, add some code like the following in a systemConfig tagged tiddler (//use the prompt attribute only if there is a parameter//) :
**{{{EditorToolbar.buttons.heading = {label:"H", toolTip : "Set heading level", prompt: "Enter heading level"};}}} 
**{{{EditorToolbar.buttonsList +=",heading";}}}
*To get the list of all possible commands, see the documentation of the [[Gecko built-in rich text editor|http://developer.mozilla.org/en/docs/Midas]] or the [[IE command identifiers|http://msdn2.microsoft.com/en-us/library/ms533049.aspx]].
*To go further in customization, see [[Link button|EasyEditPlugin-LinkButton]] as an example.
!Code
***/

//{{{

var geckoEditor={};
var IEeditor={};

config.options.txtEasyEditorHeight = config.options.txtEasyEditorHeight ? config.options.txtEasyEditorHeight : "500px";
config.options.txtEasyEditorButtons = config.options.txtEasyEditorButtons ? config.options.txtEasyEditorButtons : "";

// TW2.1.x compatibility
config.browser.isGecko = config.browser.isGecko ? config.browser.isGecko : (config.userAgent.indexOf("gecko") != -1); 
config.macros.annotations = config.macros.annotations ? config.macros.annotations : {handler : function() {}}


// EASYEDITOR MACRO

config.macros.easyEdit = {
	handler : function(place,macroName,params,wikifier,paramString,tiddler) {
		var field = params[0];
		var height = params[1] ? params[1] : config.options.txtEasyEditorHeight;
		var editor = field ? new easyEditor(tiddler,field,place,height) : null;
	},
	gather: function(element){
		var iframes = element.getElementsByTagName("iframe");
		if (iframes.length!=1) return null
		var text = "<html>"+iframes[0].contentWindow.document.body.innerHTML+"</html>";
		text = config.browser.isGecko ? geckoEditor.postProcessor(text) : (config.browser.isIE ? IEeditor.postProcessor(text) : text);
		return text;
	}
}

// EASYEDITOR CLASS

function easyEditor(tiddler,field,place,height) {
	this.tiddler = tiddler;
	this.field = field;
	this.browser = config.browser.isGecko ? geckoEditor : (config.browser.isIE ? IEeditor : null);
	this.wrapper = createTiddlyElement(place,"div",null,"easyEditor");
	this.wrapper.setAttribute("easyEdit",this.field);
	this.iframe = createTiddlyElement(null,"iframe");
	this.browser.setupFrame(this.iframe,height,contextualCallback(this,this.onload));
	this.wrapper.appendChild(this.iframe);
}

easyEditor.prototype.onload = function(){
	this.editor = this.iframe.contentWindow;
	this.doc = this.editor.document;
	if (!this.browser.isDocReady(this.doc)) return null;
	
	if (!this.tiddler.isReadOnly() && this.doc.designMode.toLowerCase()!="on") {
		this.doc.designMode = "on";
		if (this.browser.reloadOnDesignMode) return false;	// IE fire readystatechange after designMode change
	}
	
	var internalCSS = store.getTiddlerText("EasyEditDocStyleSheet");
	setStylesheet(internalCSS,"EasyEditDocStyleSheet",this.doc);
	this.browser.initContent(this.doc,store.getValue(this.tiddler,this.field));

	var barElement=createTiddlyElement(null,"div",null,"easyEditorToolBar");
	this.wrapper.insertBefore(barElement,this.wrapper.firstChild);
	this.toolbar = new EditorToolbar(this.doc,barElement,this.editor);

	this.browser.plugEvents(this.doc,contextualCallback(this,this.scheduleButtonsRefresh));
	this.editor.focus();
}

easyEditor.SimplePreProcessoror = function(text) {
	var re = /^<html>(.*)<\/html>$/m;
	var htmlValue = re.exec(text);
	var value = (htmlValue && (htmlValue.length>0)) ? htmlValue[1] : text;
	return value;
}

easyEditor.prototype.scheduleButtonsRefresh=function() { //doesn't refresh buttons state when rough typing
	if (this.nextUpdate) window.clearTimeout(this.nextUpdate);
	this.nextUpdate = window.setTimeout(contextualCallback(this.toolbar,EditorToolbar.onUpdateButton),easyEditor.buttonDelay);
}

easyEditor.buttonDelay = 200;

// TOOLBAR CLASS

function EditorToolbar(target,parent,window){
	this.target = target;
	this.window=window;
	this.elements={};
	var row = createTiddlyElement(createTiddlyElement(createTiddlyElement(parent,"table"),"tbody"),"tr");
	var buttons = (config.options.txtEasyEditorButtons ? config.options.txtEasyEditorButtons : EditorToolbar.buttonsList).split(",");
	for(var cpt = 0; cpt < buttons.length; cpt++){
		var b = buttons[cpt];
		var button = EditorToolbar.buttons[b];
		if (button) {
			if (button.separator)
				createTiddlyElement(row,"td",null,"separator").innerHTML+="&nbsp;";
			else {
				var cell=createTiddlyElement(row,"td",null,b+"Button");
				if (button.onCreate) button.onCreate.call(this, cell, b);
				else EditorToolbar.createButton.call(this, cell, b);
			}
		}
	}
}

EditorToolbar.createButton = function(place,name){
	this.elements[name] = createTiddlyButton(place,EditorToolbar.buttons[name].label,EditorToolbar.buttons[name].toolTip,contextualCallback(this,EditorToolbar.onCommand(name)),"button");
}

EditorToolbar.onCommand = function(name){
	var button = EditorToolbar.buttons[name];
	return function(){
		var parameter = false;
		if (button.prompt) {
			var parameter = this.target.queryCommandValue(name);
			parameter = prompt(button.prompt,parameter);
		}
		if (parameter != null) {
			this.target.execCommand(name, false, parameter);
			EditorToolbar.onUpdateButton.call(this);
		}
		return false;
	}
}

EditorToolbar.getCommandState = function(target,name){
	try {return target.queryCommandState(name)}
	catch(e){return false}
}

EditorToolbar.onRefreshButton = function (name){
	if (EditorToolbar.getCommandState(this.target,name)) addClass(this.elements[name].parentNode,"buttonON");
	else removeClass(this.elements[name].parentNode,"buttonON");
	this.window.focus();
}

EditorToolbar.onUpdateButton = function(){
	for (b in this.elements) 
		if (EditorToolbar.buttons[b].onRefresh) EditorToolbar.buttons[b].onRefresh.call(this,b);
		else EditorToolbar.onRefreshButton.call(this,b);
}

EditorToolbar.buttons = {
	separator : {separator : true},
	bold : {label:"B", toolTip : "Bold"},
	italic : {label:"I", toolTip : "Italic"},
	underline : {label:"U", toolTip : "Underline"},
	strikethrough : {label:"S", toolTip : "Strikethrough"},
	insertunorderedlist : {label:"\u25CF", toolTip : "Unordered list"},
	insertorderedlist : {label:"1.", toolTip : "Ordered list"},
	justifyleft : {label:"[\u2261", toolTip : "Align left"},
	justifyright : {label:"\u2261]", toolTip : "Align right"},
	justifycenter : {label:"\u2261", toolTip : "Align center"},
	justifyfull : {label:"[\u2261]", toolTip : "Justify"},
	removeformat : {label:"\u00F8", toolTip : "Remove format"},
	fontsize : {label:"\u00B1", toolTip : "Set font size", prompt: "Enter font size"},
	forecolor : {label:"C", toolTip : "Set font color", prompt: "Enter font color"},
	fontname : {label:"F", toolTip : "Set font name", prompt: "Enter font name"},
	heading : {label:"H", toolTip : "Set heading level", prompt: "Enter heading level (example : h1, h2, ...)"},
	indent : {label:"\u2192[", toolTip : "Indent paragraph"},
	outdent : {label:"[\u2190", toolTip : "Outdent paragraph"},
	inserthorizontalrule : {label:"\u2014", toolTip : "Insert an horizontal rule"},
	insertimage : {label:"\u263C", toolTip : "Insert image", prompt: "Enter image url"}
}

EditorToolbar.buttonsList = "bold,italic,underline,strikethrough,separator,increasefontsize,decreasefontsize,fontsize,forecolor,fontname,separator,removeformat,separator,insertparagraph,insertunorderedlist,insertorderedlist,separator,justifyleft,justifyright,justifycenter,justifyfull,indent,outdent,separator,heading,separator,inserthorizontalrule,insertimage";

if (config.browser.isGecko) {
	EditorToolbar.buttons.increasefontsize = {onCreate : EditorToolbar.createButton, label:"A", toolTip : "Increase font size"};
	EditorToolbar.buttons.decreasefontsize = {onCreate : EditorToolbar.createButton, label:"A", toolTip : "Decrease font size"};
	EditorToolbar.buttons.insertparagraph = {label:"P", toolTip : "Format as paragraph"};
}

// GECKO (FIREFOX, ...) BROWSER SPECIFIC METHODS

geckoEditor.setupFrame = function(iframe,height,callback) {
	iframe.setAttribute("style","width: 100%; height:" + height);
	iframe.addEventListener("load",callback,true);
}

geckoEditor.plugEvents = function(doc,onchange){
	doc.addEventListener("keyup", onchange, true);
	doc.addEventListener("keydown", onchange, true);
	doc.addEventListener("click", onchange, true);
}

geckoEditor.postProcessor = function(text){return text};

geckoEditor.preProcessor = function(text){return easyEditor.SimplePreProcessoror(text)}

geckoEditor.isDocReady = function() {return true;}

geckoEditor.reloadOnDesignMode=false;

geckoEditor.initContent = function(doc,content){
	if (content) doc.execCommand("insertHTML",false,geckoEditor.preProcessor(content));
}

// INTERNET EXPLORER BROWSER SPECIFIC METHODS
	
IEeditor.setupFrame = function(iframe,height,callback) {
	iframe.width="99%";  //IE displays the iframe at the bottom if 100%. CSS layout problem ? I don't know. To be studied...
	iframe.height=height.toString();
	iframe.attachEvent("onreadystatechange",callback);
}

IEeditor.plugEvents = function(doc,onchange){
	doc.attachEvent("onkeyup", onchange);
	doc.attachEvent("onkeydown", onchange);
	doc.attachEvent("onclick", onchange);
}

IEeditor.isDocReady = function(doc){
	if (doc.readyState!="complete") return false;
	if (!doc.body) return false;
	return (doc && doc.getElementsByTagName && doc.getElementsByTagName("head") && doc.getElementsByTagName("head").length>0);
}

IEeditor.postProcessor = function(text){return text};

IEeditor.preProcessor = function(text){return easyEditor.SimplePreProcessoror(text)}

IEeditor.reloadOnDesignMode=true;

IEeditor.initContent = function(doc,content){
	if (content) doc.body.innerHTML=IEeditor.preProcessor(content);
}
	
function contextualCallback(obj,func){
    return function(){return func.call(obj)}
}
	
Story.prototype.previousGatherSaveEasyEdit = Story.prototype.previousGatherSaveEasyEdit ? Story.prototype.previousGatherSaveEasyEdit : Story.prototype.gatherSaveFields; // to avoid looping if this line is called several times
Story.prototype.gatherSaveFields = function(e,fields){
	if(e && e.getAttribute) {
		var f = e.getAttribute("easyEdit");
		if(f){
			var newVal = config.macros.easyEdit.gather(e);
			if (newVal) fields[f] = newVal;
		}
		this.previousGatherSaveEasyEdit(e, fields);
	}
}

config.commands.easyEdit={
	text: "write",
	tooltip: "Edit this tiddler in wysiwyg mode",
	readOnlyText: "view",
	readOnlyTooltip: "View the source of this tiddler",
	handler : function(event,src,title) {
		clearMessage();
		var tiddlerElem = document.getElementById(story.idPrefix + title);
		var fields = tiddlerElem.getAttribute("tiddlyFields");
		story.displayTiddler(null,title,"EasyEditTemplate",false,null,fields);
		return false;
	}
}

config.shadowTiddlers.ViewTemplate = config.shadowTiddlers.ViewTemplate.replace(/\+editTiddler/,"+editTiddler easyEdit");

config.shadowTiddlers.EasyEditTemplate = config.shadowTiddlers.EditTemplate.replace(/macro='edit text'/,"macro='easyEdit text'");

config.shadowTiddlers.EasyEditToolBarStyleSheet = "/*{{{*/\n";
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar {font-size:0.8em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".editor iframe {border:1px solid #DDD}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar td{border:1px solid #888; padding:2px 1px 2px 1px; vertical-align:middle}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar td.separator{border:0}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .button{border:0;color:#444}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .buttonON{background-color:#EEE}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar {margin:0.25em 0}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .boldButton {font-weight:bold}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .italicButton .button {font-style:italic;padding-right:0.65em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .underlineButton .button {text-decoration:underline}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .strikeButton .button {text-decoration:line-through}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .unorderedListButton {margin-left:0.7em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .justifyleftButton .button {padding-left:0.1em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .justifyrightButton .button {padding-right:0.1em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .justifyfullButton .button, .easyEditorToolBar .indentButton .button, .easyEditorToolBar .outdentButton .button {padding-left:0.1em;padding-right:0.1em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .increasefontsizeButton .button {padding-left:0.15em;padding-right:0.15em; font-size:1.3em; line-height:0.75em}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .decreasefontsizeButton .button {padding-left:0.4em;padding-right:0.4em; font-size:0.8em;}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .forecolorButton .button {color:red;}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet += ".easyEditorToolBar .fontnameButton .button {font-family:serif}\n" ;
config.shadowTiddlers.EasyEditToolBarStyleSheet +="/*}}}*/";

store.addNotification("EasyEditToolBarStyleSheet", refreshStyles); 

config.shadowTiddlers.EasyEditDocStyleSheet = "/*{{{*/\n \n/*}}}*/";
if (config.annotations) config.annotations.EasyEditDocStyleSheet = "This stylesheet is applied when editing a text with the wysiwyg easyEditor";

//}}}
/***
!Link button add-on
***/
//{{{
EditorToolbar.createLinkButton = function(place,name) {
	this.elements[name] = createTiddlyButton(place,EditorToolbar.buttons[name].label,EditorToolbar.buttons[name].toolTip,contextualCallback(this,EditorToolbar.onInputLink()),"button");
}

EditorToolbar.onInputLink = function() {
	return function(){
		var browser = config.browser.isGecko ? geckoEditor : (config.browser.isIE ? IEeditor : null);
		var value = browser ? browser.getLink(this.target) : "";
		value = prompt(EditorToolbar.buttons["createlink"].prompt,value);
		if (value) browser.doLink(this.target,value);
		else if (value=="") this.target.execCommand("unlink", false, value);
		EditorToolbar.onUpdateButton.call(this);
		return false;
	}
}

EditorToolbar.buttonsList += ",separator,createlink";

EditorToolbar.buttons.createlink = {onCreate : EditorToolbar.createLinkButton, label:"L", toolTip : "Set link", prompt: "Enter link url"};


geckoEditor.getLink=function(doc){
	var range=doc.defaultView.getSelection().getRangeAt(0);
	var container = range.commonAncestorContainer;
	var node = (container.nodeType==3) ? container.parentNode : range.startContainer.childNodes[range.startOffset];
	if (node && node.tagName=="A") {
		var r=doc.createRange();
		r.selectNode(node);
		doc.defaultView.getSelection().addRange(r);
		return (node.getAttribute("tiddler") ? "#"+node.getAttribute("tiddler") : node.href);
	}
	else return (container.nodeType==3 ? "#"+container.textContent.substr(range.startOffset, range.endOffset-range.startOffset).replace(/ $/,"") : "");
}

geckoEditor.doLink=function(doc,link){ // store tiddler in a temporary attribute to avoid url encoding of tiddler's name
	var pin = "href"+Math.random().toString().substr(3);
	doc.execCommand("createlink", false, pin);
	var isTiddler=(link.charAt(0)=="#");
	var node = doc.defaultView.getSelection().getRangeAt(0).commonAncestorContainer;
	var links= (node.nodeType!=3) ? node.getElementsByTagName("a") : [node.parentNode];
	for (var cpt=0;cpt<links.length;cpt++) 
			if (links[cpt].href==pin){
				links[cpt].href=isTiddler ? "javascript:;" : link; 
				links[cpt].setAttribute("tiddler",isTiddler ? link.substr(1) : "");
			}
}

geckoEditor.beforeLinkPostProcessor = geckoEditor.beforelinkPostProcessor ? geckoEditor.beforelinkPostProcessor : geckoEditor.postProcessor;
geckoEditor.postProcessor = function(text){
	return geckoEditor.beforeLinkPostProcessor(text).replace(/<a tiddler="([^"]*)" href="javascript:;">(.*?)(?:<\/a>)/gi,"[[$2|$1]]").replace(/<a tiddler="" href="/gi,'<a href="');
}

geckoEditor.beforeLinkPreProcessor = geckoEditor.beforeLinkPreProcessor ? geckoEditor.beforeLinkPreProcessor : geckoEditor.preProcessor
geckoEditor.preProcessor = function(text){
	return geckoEditor.beforeLinkPreProcessor(text).replace(/\[\[([^|\]]*)\|([^\]]*)]]/g,'<a tiddler="$2" href="javascript:;">$1</a>');
}


IEeditor.getLink=function(doc){
	var node=doc.selection.createRange().parentElement();
	if (node.tagName=="A") return node.href;
	else return (doc.selection.type=="Text"? "#"+doc.selection.createRange().text.replace(/ $/,"") :"");
}

IEeditor.doLink=function(doc,link){
	doc.execCommand("createlink", false, link);
}

IEeditor.beforeLinkPreProcessor = IEeditor.beforeLinkPreProcessor ? IEeditor.beforeLinkPreProcessor : IEeditor.preProcessor
IEeditor.preProcessor = function(text){
	return IEeditor.beforeLinkPreProcessor(text).replace(/\[\[([^|\]]*)\|([^\]]*)]]/g,'<a ref="#$2">$1</a>');
}

IEeditor.beforeLinkPostProcessor = IEeditor.beforelinkPostProcessor ? IEeditor.beforelinkPostProcessor : IEeditor.postProcessor;
IEeditor.postProcessor = function(text){
	return IEeditor.beforeLinkPostProcessor(text).replace(/<a href="#([^>]*)">([^<]*)<\/a>/gi,"[[$2|$1]]");
}

IEeditor.beforeLinkInitContent = IEeditor.beforeLinkInitContent ? IEeditor.beforeLinkInitContent : IEeditor.initContent;
IEeditor.initContent = function(doc,content){
	IEeditor.beforeLinkInitContent(doc,content);
	var links=doc.body.getElementsByTagName("A");
	for (var cpt=0; cpt<links.length; cpt++) {
		links[cpt].href=links[cpt].ref; //to avoid IE conversion of relative URLs to absolute
		links[cpt].removeAttribute("ref");	
	}
}

config.shadowTiddlers.EasyEditToolBarStyleSheet += "\n/*{{{*/\n.easyEditorToolBar .createlinkButton .button {color:blue;text-decoration:underline;}\n/*}}}*/";

config.shadowTiddlers.EasyEditDocStyleSheet += "\n/*{{{*/\na {color:#0044BB;font-weight:bold}\n/*}}}*/";

//}}}
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BEcholink%20Pi%20Naked%20Node%20with%20SVXLINK%5D%5D]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]'' - [[Winlink Digital Ameteur Radio]]
[[AmateurLogic.TV 38: D-Star, Echolink, Audio & Baluns]]
Echolink Pi Naked Node with SVXLINK is an amateur radio transceiver wired into a Raspberry Pi<br>and loaded with Echolink software (SVXLINK). One can use this<br>with a 12V battery and connect to the echolink network.<br>See video parts 1,2 and 3.<br>Software in use is SVXLINK at - <br>http://sourceforge.net/apps/trac/svxlink/wiki/SvxLink
|[[Echolink Pi Naked Node with SVXLINK Part 1|https://youtu.be/rvSiH7XVoZQ]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/rvSiH7XVoZQ" frameborder="0" allowfullscreen></iframe></html>|[[Echolink Pi Naked Node with SVXLINK Part 2|https://youtu.be/hM0Xj7_Uous]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/hM0Xj7_Uous" frameborder="0" allowfullscreen></iframe></html>|
|[[Echolink Pi Naked Node with SVXLINK Part 3|https://youtu.be/f45mgvvkLUc]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/f45mgvvkLUc" frameborder="0" allowfullscreen></iframe></html>|[[Installing Alexa Voice Service to Raspberry Pi|https://youtu.be/frH9HaQTFL8]] - Links are on Youtube<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/frH9HaQTFL8" frameborder="0" allowfullscreen></iframe></html>|
[[Echolink (Wikipedia)|https://en.wikipedia.org/wiki/Echolink]]
<<miniBrowser https://en.wikipedia.org/wiki/Echolink>>
|[[Eco Dome, Building a Small Home|https://youtu.be/zcElYoMcrmo]]<br>[[Permaview|http://blenderorganizer.tiddlyspot.com/#%5B%5BEco%20Dome%2C%20Building%20a%20Small%20Home%5D%5D]] - [[MiniBrowser|http://h8quadmod.tiddlyspot.com/#MiniBrowser]]<br><html><iframe width="420" height="315" src="https://www.youtube.com/embed/zcElYoMcrmo" frameborder="0" allowfullscreen></iframe></html>|[[Eco Dome, Building a Small Home 2|https://youtu.be/OpBQxpGA1YI]]<br><html><iframe width="420" height="315" src="https://www.youtube.com/embed/OpBQxpGA1YI" frameborder="0" allowfullscreen></iframe></html>|
[[3D Printing Buildings|https://en.wikipedia.org/wiki/Building_printing]] - [[Sausage making|https://en.wikipedia.org/wiki/Sausage_making]] - with adobe tube bags. - [[One Man. Every Country. No Flights|https://youtu.be/2s1WEPUGql0]]
[[Blender_(software)|https://en.wikipedia.org/wiki/Blender_(software)]] - It's easier to build round houses. Less stress.
[[FreeCAD|https://en.wikipedia.org/wiki/FreeCAD]]
Add [[Mycelium|https://en.wikipedia.org/wiki/Mycelium]] to make it stronger. Maybe [[Amsterdam|https://en.wikipedia.org/wiki/Amsterdam_Arena]] [[Truffles|https://en.wikipedia.org/wiki/Truffle]]? (grows on wood chips or straw)
[[Mycorestoration of Abandoned Logging Roads|http://www.fungi.com/blog/items/mycorestoration-of-abandoned-logging-roads.html]] - [[Hematite|https://en.wikipedia.org/wiki/Hematite]] - [[Ceramic materials|https://en.wikipedia.org/wiki/Ceramic_materials]] - [[Glass fiber|https://en.wikipedia.org/wiki/Glass_fiber]]
[[blenderorganizer|http://blenderorganizer.tiddlyspot.com/]] - [[glassparrot|http://glassparrot.tiddlyspot.com/]]
[[Internet Crime Schemes|http://goo.gl/Stm6zF]]
<html>
<p>Example of&nbsp;<strong>TinyMCE editor</strong> - (File:New document)</p>
<h5><a href="AmbientRadio.org">AmbientRadio.org</a> - Deeply Beautiful Chillout Music - A Heavenly World of Sound</h5>
<p><iframe width="560" height="315" src="https://www.youtube.com/embed/nMlwIpulIqU?list=PL2EF0573AD8754E4E" frameborder="0" allowfullscreen></iframe></p>
</html>
Go To [[TinyMCE]]
Go To [[Wysiwyg]]

<html>
<head>
<title>TinyMCE Debian Test</title>
<script src="https://cdn.tinymce.com/4/tinymce.js" show></script>
<script>
tinyMCE.init({
    mode : "textareas"
});
</script>
</head>
<body>
<form method="post">
    <textarea name="content" cols="60" rows="3">This is some content that will be editable with TinyMCE.</textarea>
</form>
</body>
</html>
 
[[FPGA Lessons|https://www.youtube.com/playlist?list=PL2o_JnEWfUHgqEBEtqaWtRY8MqhWd9M0k]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?list=PL2o_JnEWfUHgqEBEtqaWtRY8MqhWd9M0k" frameborder="0" allowfullscreen></iframe>
</html>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BFaraday%20Future%20car%202016%5D%5D]] - [[Learn Thai Online|http://psychology.tiddlyspot.com/#%5B%5BLearn%20Thai%20Online%5D%5D]] - [[Tenzin Gyatso|https://en.wikipedia.org/wiki/14th_Dalai_Lama#Retirement_and_succession_plans]] - [[Banggood|http://www.banggood.com/Wholesale-Arduino-SCM-and-3D-Printer-Acc-c-2153.html?utm_source=facebook&utm_medium=cpc_elc&utm_campaign=ar-140ar-rm-r&utm_content=tracy&utm_design=46]]
[[Faraday Future car 2016|http://faradayfuture.com/ces2016/]] - See Faraday Future (Wikipedia) in Bookmarks  - See [[007 Lotus Esprit 'Submarine Car'|http://www.rmsothebys.com/lots/lot.cfm?lot_id=1061050]] In Bookmarks - Watch the movie - [[Beaked whales|https://goo.gl/ChrdTm]] - [[Dolphin|https://en.wikipedia.org/wiki/Dolphin]] - [[Invisible Ghost|https://youtu.be/kbBC445z4Ng]] - [[Allium Sativum|https://www.google.com/search?q=Allium+sativum&oq=Allium+sativum&aqs=chrome..69i57.2584j0j7&sourceid=chrome&ie=UTF-8]] - [[Apotropaics|https://www.google.com/search?q=Apotropaics&oq=Apotropaics&aqs=chrome..69i57&sourceid=chrome&ie=UTF-8]]
<<miniBrowser http://faradayfuture.com/ces2016/>>
See the [[10 Most Expensive Cars In The World|https://youtu.be/GB9ks0OYB7Q]] - [[Autonomous underwater vehicle (AUV) - Hydrogen Power Station Module|http://www.km.kongsberg.com/ks/web/nokbg0240.nsf/AllWeb/B3F87A63D8E419E5C1256A68004E946C?OpenDocument#tab-6]]  - [[OpenROV]] - [[Synthetic Aperture Sonar|http://www.km.kongsberg.com/ks/web/nokbg0240.nsf/AllWeb/90CBC5D82A8F2A6CC125721F003360C2?OpenDocument]]
|[[FF's Variable Platform Architecture|https://youtu.be/SAXoVSXnNTg]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/SAXoVSXnNTg" frameborder="0" allowfullscreen></iframe></html>|[[Faraday Future car 2016|https://youtu.be/s36AYPmsp_c]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/s36AYPmsp_c" frameborder="0" allowfullscreen></iframe></html>|
[[The politics behind the scarcity of oil, lithium, or hydrogen power systems explained|https://goo.gl/yC9lBY]]

[[Firebase Realtime Database|https://www.firebase.com/features.html]] homepage

<<miniBrowser https://en.wikipedia.org/wiki/Firebase>>
[[FreeCAD|http://www.freecadweb.org/]] download

<<miniBrowser http://reprap.org/wiki/FreeCAD>>
[[Grub2Win|https://sourceforge.net/projects/grub2win/files/]]
- click 
[img[http://i.imgur.com/AnARQAt.png][https://sourceforge.net/projects/grub2win/files/]]

[[bootia32.ubuntu_13.04_x64.zip|http://forum.xda-developers.com/showpost.php?p=46845643&postcount=3]]
<<miniBrowser http://liliputing.com/2013/10/booting-ubuntu-asus-transformer-book-t100.html>>
[[Permaview|http://glassparrot.tiddlyspot.com/#HackRF]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]''
|[[HackRF|https://youtu.be/TZmHgIPBLDo?list=PLVQhg1UYyzxUcv-bZnxOOA6pkoAB021d9]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/TZmHgIPBLDo?list=PLVQhg1UYyzxUcv-bZnxOOA6pkoAB021d9" frameborder="0" allowfullscreen></iframe></html>|[[SDR Showdown: HackRF vs. bladeRF vs. USRP|http://www.taylorkillian.com/2013/08/sdr-showdown-hackrf-vs-bladerf-vs-usrp.html]]<br><<miniBrowser http://www.taylorkillian.com/2013/08/sdr-showdown-hackrf-vs-bladerf-vs-usrp.html>>|
|[[Homebrew software defined radio - a demonstration|https://youtu.be/mfdgxZPc2BI]]<br><html><iframe width="420" height="315" src="https://www.youtube.com/embed/mfdgxZPc2BI" frameborder="0" allowfullscreen></iframe></html>|[[Simple SDR|http://www.vk5tm.com/homebrew/simplesdr/simplesdr.php]]<br><<miniBrowser http://www.vk5tm.com/homebrew/simplesdr/simplesdr.php>>|
[[Permalink|http://glassparrot.tiddlyspot.com/#%5B%5BHak5%20-%20Hacking%20DNS%20from%20beginning%20to%20end%5D%5D]]
[[Hak5 - Hacking DNS from beginning to end|https://youtu.be/2hMkSNiBPvE]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/2hMkSNiBPvE" frameborder="0" allowfullscreen></iframe>
</html>

[[Legally build a 60 Watt WiFi Link - 2.4 GHz and EIRP, Hak5 1515]]
[[Universal Licensing System]] - See [[unKoshered Ham Rantings!|Moses!]] - ''http://catchvideo.net/''
''[[October2017 Youtube Playlist|https://www.youtube.com/playlist?list=PLzHM9iyT6QCpsORVF008omissmzYBZTl0]] - [[My Playlists|http://inventoryport.tiddlyspot.com/#%5B%5BMy%20Playlists%5D%5D]] - [[Wish List|http://n6xre.tiddlyspot.com/#%5B%5BWish%20List%5D%5D]]''
Click to Speak with translator
# [[OK google, what time and date is it?|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20what%20time%20and%20date%20is%20it%3F]]
# [[OK Google, what is the weather?|https://translate.google.com/?hl=en&tab=wT#auto/th/OK%20google%2C%20what%20is%20the%20weather%3F]]
# [[OK google, what is on my schedule?|https://translate.google.com/?hl=en&tab=wT#auto/th/OK%20google%2C%20what%20is%20on%20my%20schedule%3F]]
# [[OK google, what can you do?|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20what%20can%20you%20do%3F]]
# [[OK google, Let’s play crystal ball.|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20Let%E2%80%99s%20play%20crystal%20ball.]] - Is [[Kepler's Somnium|http://www.depauw.edu/sfs/backissues/8/christianson8art.htm]] fiction? [[OK google, I’m Bored.|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20I%E2%80%99m%20Bored.]] - [[Shroomery Message Board|https://www.shroomery.org/forums/showflat.php/Number/1334481/fpart/all/vc/1]]
# [[Get your kicks on Route 66|https://youtu.be/dCYApJtsyd0]]. (or the [[Chicken Ranch|https://youtu.be/QaGNTksIfQE]] in [[Las Vegas|https://youtu.be/ypPRoomqJpY]] Videos) [[FAQ|http://www.a2zlasvegas.com/adult/lasvegas//brothels/crfaq.html]] - [[Tantra E-juice|http://moving.tiddlyspot.com/#%5B%5BTantra%20E-juice%5D%5D]]
# [[OK google, play lucky trivia?|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20play%20lucky%20trivia%3F]] - https://www.nasa.gov/eclipselive 
# [[OK Google I want to talk to Crazy House|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20Google%20I%20want%20to%20talk%20to%20Crazy%20House]] - [[OK Google, Where can I buy Moclobemide|https://translate.google.com/#auto/en/OK%20Google%2C%20Where%20can%20I%20buy%20Moclobemide]] - [[2|https://www.drugs.com/international/moclobemide.html]] - [[3|https://en.wikipedia.org/wiki/Moclobemide]]
# [[OK google, what is live spelled backwards?|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20google%2C%20what%20is%20live%20spelled%20backwards%3F]]
# [[OK Google, Flip a coin.|https://translate.google.com/?hl=en&tab=TT#auto/th/OK%20Google%2C%20Flip%20a%20coin.]] - Call it - Beds or Snails? Three times.
# [[OK google, how do you say I'm a Bunny would you like a ride in my vehicle and some dinner in French?|https://translate.google.com/?hl=en&tab=TT#auto/fr/OK%20google%2C%20how%20do%20you%20say%20I%27m%20a%20Bunny%20would%20you%20like%20a%20ride%20in%20my%20vehicle%20and%20some%20dinner%20in%20French%3F]] - [[Yes or No in French?|https://translate.google.com/?hl=en&tab=TT#auto/de/OK%20google%2C%20how%20do%20you%20say%20Yes%20or%20No%20in%20French%3F]]
# [[More Hey Google Phrases|http://n6xre.tiddlyspot.com/#%5B%5BMore%20Hey%20Google%20Phrases%5D%5D]]
[[How to Make a Google Home on Raspberry Pi without MagPi 57 Kit|http://n6xre.tiddlyspot.com/#%5B%5BHow%20to%20Make%20a%20Google%20Home%20on%20Raspberry%20Pi%20without%20MagPi%2057%20Kit%5D%5D]] - [[Anet A8 Desktop 3D Printer Prusa i3 DIY Kit|http://scienceport.tiddlyspot.com/#%5B%5BAnet%20A8%20Desktop%203D%20Printer%20Prusa%20i3%20DIY%20Kit%5D%5D]]
[[5 Best Buffets in Las Vegas RIGHT NOW|https://youtu.be/CZD7noSqnBg]] - [[How to Eat Cheap in Las Vegas for Under $10|https://youtu.be/VtQ0lyFXMtg]] - [[Day 5: $10 VS $42 BUFFET!|https://youtu.be/nO-QuEEaxHk]]
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BHigh-speed%20multimedia%20radio%5D%5D]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]''
[[High-speed multimedia radio|https://en.wikipedia.org/wiki/High-speed_multimedia_radio]] - [[AMPRNet Wiki]] - [[Winlink Digital Ameteur Radio]] - ''[[Amateur radio playlist|https://youtu.be/8Ce_b-eclJI?list=PL919125436E6499CB]]''
<<miniBrowser https://en.wikipedia.org/wiki/High-speed_multimedia_radio>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BHow%20To%20Install%20And%20Run%20A%20Chroot%20JailKit%20Shell%5D%5D]]
[[Install and setup a jailed shell with jailkit on ubuntu/debian|https://neverendingsecurity.wordpress.com/2015/03/14/install-and-setup-a-jailed-shell-with-jailkit-on-ubuntudebian/]] - [[dSploit - Android App For Hackers]] - [[Internet Crime Schemes|http://goo.gl/Stm6zF]]
''Question:'' Can you chroot with cygwin in Windows? Would it be safer to chroot when talking on the internet than a firewall? - (See [[video|https://youtu.be/dL-9k4riBps]], [[notes|https://goo.gl/mnbYB7]] and [[veification|https://cygwin.com/ml/cygwin/2008-12/msg00005.html]]).
<<miniBrowser https://neverendingsecurity.wordpress.com/2015/03/14/install-and-setup-a-jailed-shell-with-jailkit-on-ubuntudebian/>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BHow%20To%20Make%20A%20Cluster%20Computer%5D%5D]]
|[[How To Make A Cluster Computer (Part 1)|https://youtu.be/1R0UgIgcb5g]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/1R0UgIgcb5g" frameborder="0" allowfullscreen></iframe></html>|[[How To Make A Cluster Computer (Part 2)|https://youtu.be/lHmFRlETTcQ]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/lHmFRlETTcQ" frameborder="0" allowfullscreen></iframe></html>|

[[How to Chroot on Linux Basic Tutorial|https://youtu.be/N87m6fxO5a8]]
https://www.youtube.com/user/metalx1000/playlists
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/N87m6fxO5a8" frameborder="0" allowfullscreen></iframe>
</html>
[[How To Configure Chroot Environments for Testing on an Ubuntu 12.04 VPS|https://www.digitalocean.com/community/tutorials/how-to-configure-chroot-environments-for-testing-on-an-ubuntu-12-04-vps]]
<<miniBrowser http://filmsbykris.com/v7/index.php>>
[[Premalink|http://glassparrot.tiddlyspot.com/#%5B%5BHow%20to%20Install%20Kali%20Linux%202016%20%2B%20Guest%20Additions%20on%20VirtualBox%5D%5D]]
[[How to Install Kali Linux 2016 + Guest Additions on VirtualBox|https://youtu.be/MkaJ3Nssxac]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/MkaJ3Nssxac" frameborder="0" allowfullscreen></iframe>
</html>
|[[How to Install and Run Chrome OS in Virtualbox|https://youtu.be/3SVaBQJG_Tk]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/3SVaBQJG_Tk" frameborder="0" allowfullscreen></iframe></html>|[[How To Install Chrome OS on a USB|https://youtu.be/mcCawqsl88g]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/mcCawqsl88g" frameborder="0" allowfullscreen></iframe></html>|

<<miniBrowser http://reviewingtech.com/get-latest-builds-chromium-os-flash-working/>>
<<miniBrowser http://www.howtogeek.com/217348/how-to-record-the-sound-coming-from-your-pc-even-without-stereo-mix/>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BHow%20to%20Set%20Up%20Bash%20in%20Windows%2010%5D%5D]]
[[How to Set Up Bash in Windows 10|https://youtu.be/pmXFRfi9rpQ]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/pmXFRfi9rpQ" frameborder="0" allowfullscreen></iframe>
</html>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BHow%20to%20Setup%20an%20LCD%20Touchscreen%20on%20the%20Raspberry%20Pi%5D%5D]]
[[Rasberry Pi 3 Model B - Amazon|http://goo.gl/KpuoTw]] - $42.98
[[3.5 Inch 320 X 480 TFT LCD Display Touch Board For Raspberry Pi 2 Model B & RPI B+|http://us.banggood.com/Wholesale-Warehouse-3_5-Inch-320-X-480-TFT-LCD-Display-Touch-Board-For-Raspberry-Pi-2-Model-B-RPI-B-wp-Usa-1023432.html]] - $14.99
[[Bangood forum|http://forum.banggood.com/forum-topic-109743.html]]

|[[How to Setup a 3.5 Inch LCD Touchscreen on the Raspberry Pi|https://www.youtube.com/playlist?list=PLufZkWfLbSe08gKBUr-NAMmKAv6dmobgb]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?list=PLufZkWfLbSe08gKBUr-NAMmKAv6dmobgb" frameborder="0" allowfullscreen></iframe></html><br>In this video, I walk you through the steps of setting up an LCD touchscreen on the Raspberry Pi.<br>A full tutorial and all of the code and links are provided on my blog at:<br> http://www.circuitbasics.com/?p=494<br>----<br>Check out the Circuit Basics blog for articles and <br>tutorials on the Raspberry Pi, Arduino and other DIY electronic projects! http://www.circuitbasics.com|''Uniker Raspberry Pi 2 Model B Quad Core for Raspberry Pi Model (B+) 5- Inch<br>800x480 Pixel Hdmi input Touch Screen & Stand Case''<br>[[Customer Review|http://www.amazon.com/gp/customer-reviews/RBU5UBFX5URHE/ref=cm_cr_getr_d_rvw_ttl?ie=UTF8&ASIN=B00Z9NN7OO]]<br>If it wasn't for the case, I'd be giving this a 5 star rating. This display is very nice, bright, and sharp.<br>The case is not very well built though. And mine came looking like it had been kicked across the<br>factory floor a few times. But I've seen others selling this display for close to the same price without<br>the case, so maybe just consider the case a freebie.The display works flawlessly with the weezy<br>distribution the manufacturer has you download. Unfortunately I needed Python 2.7.9 so I need it to<br>run with Jessie. That was also pretty easy to get going once I found the info. You'll find what you need at<br>the bottom of the thread at https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=105755. <br>Basically the display works without changing anything except that it only shows up as 640 x 480 and<br>you get a white line on the right side of the screen. The touch screen has to be totally setup. Jessie has<br>the support for both, you just need the right entries in /boot/config.txt. Make sure you have the following<br>in that file: <br>hdmi_cvt=800 480 60 6<br>framebuffer_width=800<br>framebuffer_height=480<br>hdmi_group=2<br>hdmi_mode=87<br>dtparam=spi=on<br>dtparam=i2c_arm=on<br>dtoverlay=ads7846, cs=1 speed=50000 penirq=25, penirq_pull=2, swapxy=0, xmin=200, ymin=200, <br>xmax=3900, ymax=3900, pmin=0, pmax=155, xohms=150<br>dtoverlay=w1-gpio-pullup,gpiopin=4,extpullup=1<br>Once that's done everything will work, but the touch screen probably won't be calibrated right.<br>You can do this by running:<br>sudo apt-get install xinput-calibrator evtest<br>from a terminal and then in X windows go to preferences and run the touch screen calibration. <br>After that you'll have a fully supported and calibrated display in X on Jessie.|
See ''Use your Android Device as a Secondary Monitor'' in Bookmarks
<<miniBrowser http://www.spotpear.com/learn/EN/raspberry-pi/Raspberry-Pi-LCD/Drive-the-LCD.html>>
<<miniBrowser http://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)>>
[[How to Use All of Windows 10’s Backup and Recovery Tools|http://www.howtogeek.com/220986/how-to-use-all-of-windows-10%E2%80%99s-backup-and-recovery-tools/]]
<<miniBrowser http://www.howtogeek.com/220986/how-to-use-all-of-windows-10%E2%80%99s-backup-and-recovery-tools/>>
<<miniBrowser http://www.windowscentral.com/how-make-full-backup-windows-pc>>
[[How to Use Windows 8 or 10’s Storage Spaces to Mirror & Combine Drives|http://www.howtogeek.com/109380/how-to-use-windows-8s-storage-spaces-to-mirror-combine-drives/]]
<<miniBrowser http://www.howtogeek.com/109380/how-to-use-windows-8s-storage-spaces-to-mirror-combine-drives/>>
[[Windows Storage Spaces and ReFS: Is it time to ditch RAID for good?| http://betanews.com/2014/01/15/windows-storage-spaces-and-refs-is-it-time-to-ditch-raid-for-good/]]
<<miniBrowser http://betanews.com/2014/01/15/windows-storage-spaces-and-refs-is-it-time-to-ditch-raid-for-good/>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BHow%20to%20crack%20wpa%2Fwpa2%20with%20commview%20for%20wifi%5D%5D]] - [[dSploit - Android App For Hackers]]
[[How to crack wpa/wpa2 with commview for wifi|https://youtu.be/xka54tG2Kqo]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/xka54tG2Kqo" frameborder="0" allowfullscreen></iframe>
</html>
Published on Mar 7, 2015
iam not responsible for any illegal work with this tools. this is only for educative purpose to proove that wpa and wpa2 are not that much secure
aircrack-ng: http://www.aircrack-ng.org/
commview for wifi: https://kat.cr/tamosoft-commview-for-wifi-7-0-build-777-final-scenedl-t9081362.html
Dictionary: https://kickass.to/collection-of-wordlist-dictionaries-for-cracking-wifi-wpa-wpa2-t5337709.html
Here i used my own wordlist ( dictionary.txt ) for cracking because it is on croatian language. You should 
use any of .txt files you download here. All of that files are dictionaries. The bigger file you use, the better. 
DO NOT ASK ME TO SEND YOU DICTIONARY.TXT BECAUSE IT WILL NOT HELP YOU. THE PASSWORD 
OF THE NETWORK NEED TO BE IN .TXT FILE YOU USE, OR CRACK WILL FAIL. THAT IS MY OWN 
WORDLIST WHERE I PLACED MY NETWORK PASSWORD, SO IT WILL SAY SUCCESS.
enjoy
btw. signal strength is very important at capturing handshake
If you have any problems, be sure to left a comment ( or you can also post a message on facebook page )
we will try to answer you as soon we can.
Please Subscribe for more awesome videos.

Follow us on facebook: https://www.facebook.com/HowToWifi
[[Icom IC 706MKIIG ham radio demonstration|https://youtu.be/GwZd1gB_lmQ]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/GwZd1gB_lmQ" frameborder="0" allowfullscreen></iframe>
</html>
http://www.ebay.com/bhp/icom-706
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Documentation
>see [[InlineJavascriptPluginInfo]]
!!!!!Revisions
<<<
2010.12.15 1.9.6 allow (but ignore) type="..." syntax
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 6, date: new Date(2010,12,15)};

config.formatters.push( {
	name: "inlineJavascript",
	match: "\\<script",
	lookahead: "\\<script(?: type=\\\"[^\\\"]*\\\")?(?: src=\\\"([^\\\"]*)\\\")?(?: label=\\\"([^\\\"]*)\\\")?(?: title=\\\"([^\\\"]*)\\\")?(?: key=\\\"([^\\\"]*)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",
	handler: function(w) {
		var lookaheadRegExp = new RegExp(this.lookahead,"mg");
		lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var src=lookaheadMatch[1];
			var label=lookaheadMatch[2];
			var tip=lookaheadMatch[3];
			var key=lookaheadMatch[4];
			var show=lookaheadMatch[5];
			var code=lookaheadMatch[6];
			if (src) { // external script library
				var script = document.createElement("script"); script.src = src;
				document.body.appendChild(script); document.body.removeChild(script);
			}
			if (code) { // inline code
				if (show) // display source in tiddler
					wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
				if (label) { // create 'onclick' command link
					var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",wikifyPlainText(label));
					var fixup=code.replace(/document.write\s*\(/gi,'place.bufferedHTML+=(');
					link.code="function _out(place,tiddler){"+fixup+"\n};_out(this,this.tiddler);"
					link.tiddler=w.tiddler;
					link.onclick=function(){
						this.bufferedHTML="";
						try{ var r=eval(this.code);
							if(this.bufferedHTML.length || (typeof(r)==="string")&&r.length)
								var s=this.parentNode.insertBefore(document.createElement("span"),this.nextSibling);
							if(this.bufferedHTML.length)
								s.innerHTML=this.bufferedHTML;
							if((typeof(r)==="string")&&r.length) {
								wikify(r,s,null,this.tiddler);
								return false;
							} else return r!==undefined?r:false;
						} catch(e){alert(e.description||e.toString());return false;}
					};
					link.setAttribute("title",tip||"");
					var URIcode='javascript:void(eval(decodeURIComponent(%22(function(){try{';
					URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g,' ')));
					URIcode+='}catch(e){alert(e.description||e.toString())}})()%22)))';
					link.setAttribute("href",URIcode);
					link.style.cursor="pointer";
					if (key) link.accessKey=key.substr(0,1); // single character only
				}
				else { // run script immediately
					var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
					var c="function _out(place,tiddler){"+fixup+"\n};_out(w.output,w.tiddler);";
					try	 { var out=eval(c); }
					catch(e) { out=e.description?e.description:e.toString(); }
					if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
				}
			}
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
	}
} )
//}}}

// // Backward-compatibility for TW2.1.x and earlier
//{{{
if (typeof(wikifyPlainText)=="undefined") window.wikifyPlainText=function(text,limit,tiddler) {
	if(limit > 0) text = text.substr(0,limit);
	var wikifier = new Wikifier(text,formatter,null,tiddler);
	return wikifier.wikifyPlain();
}
//}}}

// // GLOBAL FUNCTION: $(...) -- 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
//}}}
/***
|Name|InlineJavascriptPluginInfo|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|documentation|
|Description|Documentation for InlineJavascriptPlugin|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Usage
<<<
This plugin adds wiki syntax for surrounding tiddler content with {{{<script>}}} and {{{</script>}}} markers, so that it can be recognized as embedded javascript code.  When a tiddler is rendered, the plugin automatically invokes any embedded scripts, which can be used to construct and return dynamically-generated output that is inserted into the tiddler content.
{{{
<script type="..." src="..." label="..." title="..." key="..." show>
	/* javascript code goes here... */
</script>
}}}
All parameters are //optional//.    When the ''show'' keyword is used, the plugin will also include the script source code in the output that it displays in the tiddler.  This is helpful when creating examples for documentation purposes (such as used in this tiddler!)

__''Deferred execution from an 'onClick' link''__
<script label="click here" title="mouseover tooltip text" key="X" show>
	/* javascript code goes here... */
	alert('you clicked on the link!');
</script>
By including a {{{label="..."}}} parameter in the initial {{{<script>}}} marker, the plugin will create a link to an 'onclick' script that will only be executed when that specific link is clicked, rather than running the script each time the tiddler is rendered.  You may also include a {{{title="..."}}} parameter to specify the 'tooltip' text that will appear whenever the mouse is moved over the onClick link text, and a {{{key="X"}}} parameter to specify an //access key// (which must be a //single// letter or numeric digit only).

__''Loading scripts from external source files''__
<script src="URL" show>
	/* optional javascript code goes here... */
</script>You can also load javascript directly from an external source URL, by including a src="..." parameter in the initial {{{<script>}}} marker (e.g., {{{<script src="demo.js"></script>}}}).  This is particularly useful when incorporating third-party javascript libraries for use in custom extensions and plugins.  The 'foreign' javascript code remains isolated in a separate file that can be easily replaced whenever an updated library file becomes available.

In addition to loading the javascript from the external file, you can also use this feature to invoke javascript code contained within the {{{<script>...</script>}}} markers.  This code is invoked //after// the external script file has been processed, and can make immediate use of the functions and/or global variables defined by the external script file.
>Note: To ensure that your javascript functions are always available when needed, you should load the libraries from a tiddler that is rendered as soon as your TiddlyWiki document is opened, such as MainMenu.  For example: put your {{{<script src="..."></script>}}} syntax into a separate 'library' tiddler (e.g., LoadScripts), and then add {{{<<tiddler LoadScripts>>}}} to MainMenu so that the library is loaded before any other tiddlers that rely upon the functions it defines. 
>
>Normally, loading external javascript in this way does not produce any direct output, and should not have any impact on the appearance of your MainMenu.  However, if your LoadScripts tiddler contains notes or other visible content, you can suppress this output by using 'inline CSS' in the MainMenu, like this: {{{@@display:none;<<tiddler LoadScripts>>@@}}}
<<<
!!!!!Creating dynamic tiddler content and accessing the ~TiddlyWiki DOM
<<<
An important difference between TiddlyWiki inline scripting and conventional embedded javascript techniques for web pages is the method used to produce output that is dynamically inserted into the document: in a typical web document, you use the {{{document.write()}}} (or {{{document.writeln()}}}) function to output text sequences (often containing HTML tags) that are then rendered when the entire document is first loaded into the browser window.

However, in a ~TiddlyWiki document, tiddlers (and other DOM elements) are created, deleted, and rendered "on-the-fly", so writing directly to the global 'document' object does not produce the results you want (i.e., replacing the embedded script within the tiddler content), and instead will //completely replace the entire ~TiddlyWiki document in your browser window (which is clearly not a good thing!)//.  In order to allow scripts to use {{{document.write()}}}, the plugin automatically converts and buffers all HTML output so it can be safely inserted into your tiddler content, immediately following the script.

''Note that {{{document.write()}}} can only be used to output "pure HTML" syntax.  To produce //wiki-formatted// output, your script should instead return a text value containing the desired wiki-syntax content'', which will then be automatically rendered immediately following the script.  If returning a text value is not sufficient for your needs, the plugin also provides an automatically-defined variable, 'place', that gives the script code ''direct access to the //containing DOM element//'' into which the tiddler output is being rendered.  You can use this variable to ''perform direct DOM manipulations'' that can, for example:
* generate wiki-formatted output using {{{wikify("...content...",place)}}}
* vary the script's actions based upon the DOM element in which it is embedded
* access 'tiddler-relative' DOM information using {{{story.findContainingTiddler(place)}}}
Note:
''When using an 'onclick' script, the 'place' element actually refers to the onclick //link text// itself, instead of the containing DOM element.''  This permits you to directly reference or modify the link text to reflect any 'stateful' conditions that might set by the script.  To refer to the containing DOM element from within an 'onclick' script, you can use "place.parentNode" instead.
<<<
!!!!!Instant "bookmarklets"
<<<
You can also use an 'onclick' link to define a "bookmarklet": a small piece of javascript that can be ''invoked directly from the browser without having to be defined within the current document.''  This allows you to create 'stand-alone' commands that can be applied to virtually ANY TiddlyWiki document... even remotely-hosted documents that have been written by others!!  To create a bookmarklet, simply define an 'onclick' script and then grab the resulting link text and drag-and-drop it onto your browser's toolbar (or right-click and use the 'bookmark this link' command to add it to the browser's menu).

Notes:
*When writing scripts intended for use as bookmarklets, due to the ~URI-encoding required by the browser, ''you cannot not use ANY double-quotes (") within the bookmarklet script code.''
*All comments embedded in the bookmarklet script must ''use the fully-delimited {{{/* ... */}}} comment syntax,'' rather than the shorter {{{//}}} comment syntax.
*Most importantly, because bookmarklets are invoked directly from the browser interface and are not embedded within the TiddlyWiki document, there is NO containing 'place' DOM element surrounding the script.  As a result, ''you cannot use a bookmarklet to generate dynamic output in your document,''  and using {{{document.write()}}} or returning wiki-syntax text or making reference to the 'place' DOM element will halt the script and report a "Reference Error" when that bookmarklet is invoked.  
Please see [[InstantBookmarklets]] for many examples of 'onclick' scripts that can also be used as bookmarklets.
<<<
!!!!!Special reserved function name
<<<
The plugin 'wraps' all inline javascript code inside a function, {{{_out()}}}, so that any return value you provide can be correctly handled by the plugin and inserted into the tiddler.  To avoid unpredictable results (and possibly fatal execution errors), this function should never be redefined or called from ''within'' your script code.
<<<
!!!!!$(...) 'shorthand' function
<<<
As described by Dustin Diaz [[here|http://www.dustindiaz.com/top-ten-javascript/]], the plugin defines a 'shorthand' function that allows you to write:
{{{
$(id)
}}}
in place of the normal standard javascript syntax:
{{{
document.getElementById(id)
}}}
This function is provided merely as a convenience for javascript coders that may be familiar with this abbreviation, in order to allow them to save a few bytes when writing their own inline script code.
<<<
!!!!!Examples
<<<
simple dynamic output:
><script show>
	document.write("The current date/time is: "+(new Date())+"<br>");
	return "link to current user: [["+config.options.txtUserName+"]]\n";
</script>
dynamic output using 'place' to get size information for current tiddler:
><script show>
	if (!window.story) window.story=window;
	var title=story.findContainingTiddler(place).getAttribute("tiddler");
	var size=store.getTiddlerText(title).length;
	return title+" is using "+size+" bytes";
</script>
dynamic output from an 'onclick' script, using {{{document.write()}}} and/or {{{return "..."}}}
><script label="click here" show>
	document.write("<br>The current date/time is: "+(new Date())+"<br>");
	return "link to current user: [["+config.options.txtUserName+"]]\n";
</script>
creating an 'onclick' button/link that accesses the link text AND the containing tiddler:
><script label="click here" title="clicking this link will show an 'alert' box" key="H" show>
	if (!window.story) window.story=window;
	var txt=place.firstChild.data;
	var tid=story.findContainingTiddler(place).getAttribute('tiddler');
	alert('Hello World!\nlinktext='+txt+'\ntiddler='+tid);
</script>
dynamically setting onclick link text based on stateful information:
>{{block{
{{{
<script label="click here">
	/* toggle "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.innerHTML=on?"enable":"disable";
	config.txtSomething=on?"OFF":"ON";
	return "\nThe current value is: "+config.txtSomething;
</script><script>
	/* initialize onclick link text based on current "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.lastChild.previousSibling.innerHTML=on?"disable":"enable";
</script>
}}}
<script label="click here">
	/* toggle "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.innerHTML=on?"enable":"disable";
	config.txtSomething=on?"OFF":"ON";
	return "\nThe current value is: "+config.txtSomething;
</script><script>
	/* initialize onclick link text based on current "txtSomething" value */
	var on=(config.txtSomething=="ON");
	place.lastChild.innerHTML=on?"enable":"disable";
</script>
}}}
loading a script from a source url:
>http://www.TiddlyTools.com/demo.js contains:
>>{{{function inlineJavascriptDemo() { alert('Hello from demo.js!!') } }}}
>>{{{displayMessage('InlineJavascriptPlugin: demo.js has been loaded');}}}
>note: When using this example on your local system, you will need to download the external script file from the above URL and install it into the same directory as your document.
>
><script src="demo.js" show>
	return "inlineJavascriptDemo() function has been defined"
</script>
><script label="click to invoke inlineJavascriptDemo()" key="D" show>
	inlineJavascriptDemo();
</script>
<<<
!!!!!Revisions
<<<
2010.12.15 1.9.6 allow (but ignore) type="..." syntax
2009.04.11 1.9.5 pass current tiddler object into wrapper code so it can be referenced from within 'onclick' scripts
2009.02.26 1.9.4 in $(), handle leading '#' on ID for compatibility with JQuery syntax
2008.06.11 1.9.3 added $(...) function as 'shorthand' for document.getElementById()
2008.03.03 1.9.2 corrected fallback declaration of wikifyPlainText() (fixes Safari "parse error")
2008.02.23 1.9.1 in onclick function, use string instead of array for 'bufferedHTML' (fixes IE errors)
2008.02.21 1.9.0 output from 'onclick' scripts (return value or document.write() calls) are now buffered and rendered into into a span following the script.  Also, added default 'return false' handling if no return value provided (prevents HREF from being triggered -- return TRUE to allow HREF to be processed).  Thanks to Xavier Verges for suggestion and preliminary code.
2008.02.14 1.8.1 added backward-compatibility for use of wikifyPlainText() in TW2.1.3 and earlier
2008.01.08 [*.*.*] plugin size reduction: documentation moved to ...Info tiddler
2007.12.28 1.8.0 added support for key="X" syntax to specify custom access key definitions
2007.12.15 1.7.0 autogenerate URI encoded HREF on links for onclick scripts.  Drag links to browser toolbar to create bookmarklets.  IMPORTANT NOTE: place is NOT defined when scripts are used as bookmarklets.  In addition, double-quotes will cause syntax errors.  Thanks to PaulReiber for debugging and brainstorming.
2007.11.26 1.6.2 when converting "document.write()" function calls in inline code, allow whitespace between "write" and "(" so that "document.write ( foobar )" is properly converted.
2007.11.16 1.6.1 when rendering "onclick scripts", pass label text through wikifyPlainText() to parse any embedded wiki-syntax to enable use of HTML entities or even TW macros to generate dynamic label text.
2007.02.19 1.6.0 added support for title="..." to specify mouseover tooltip when using an onclick (label="...") script
2006.10.16 1.5.2 add newline before closing '}' in 'function out_' wrapper.  Fixes error caused when last line of script is a comment.
2006.06.01 1.5.1 when calling wikify() on script return value, pass hightlightRegExp and tiddler params so macros that rely on these values can render properly
2006.04.19 1.5.0 added 'show' parameter to force display of javascript source code in tiddler output
2006.01.05 1.4.0 added support 'onclick' scripts.  When label="..." param is present, a button/link is created using the indicated label text, and the script is only executed when the button/link is clicked.  'place' value is set to match the clicked button/link element.
2005.12.13 1.3.1 when catching eval error in IE, e.description contains the error text, instead of e.toString().  Fixed error reporting so IE shows the correct response text.  Based on a suggestion by UdoBorkowski
2005.11.09 1.3.0 for 'inline' scripts (i.e., not scripts loaded with src="..."), automatically replace calls to 'document.write()' with 'place.innerHTML+=' so script output is directed into tiddler content.  Based on a suggestion by BradleyMeck
2005.11.08 1.2.0 handle loading of javascript from an external URL via src="..." syntax
2005.11.08 1.1.0 pass 'place' param into scripts to provide direct DOM access 
2005.11.08 1.0.0 initial release
<<<
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BInstalling%20a%20Long%20Range%20WIFI%20Antenna%20on%20Your%20Boat%20in%20About%20an%20Hour%5D%5D]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]''
[[Installing a Long Range WIFI Antenna on Your Boat in About an Hour|http://blog.eboatlistings.com/installing-a-long-range-wifi-antenna-on-your-boat-in-about-an-hour/]]
<<miniBrowser http://blog.eboatlistings.com/installing-a-long-range-wifi-antenna-on-your-boat-in-about-an-hour/>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BJimi%20Hendrix%20Last%20Performance%20'%20Love%20and%20Peace%20Festival%20'%201970%20Isle%20of%20Fehmarn%2C%20Germany%5D%5D]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]] - [[Broadcastify|http://www.broadcastify.com/listen/ctid/219]]''
|[[Jimi Hendrix Last Performance ' Love and Peace Festival ' 1970 Isle of Fehmarn, Germany|https://youtu.be/h6pXsQOJqtQ?list=RDh6pXsQOJqtQ]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/h6pXsQOJqtQ?list=RDh6pXsQOJqtQ" frameborder="0" allowfullscreen></iframe></html>|[[Jimi Hendrix material on Accordion|https://youtu.be/PBJT41FcVXU]]<br><html><iframe width="420" height="315" src="https://www.youtube.com/embed/PBJT41FcVXU" frameborder="0" allowfullscreen></iframe></html>|
|[[WIESŁAWA DUDKOWIAK AKORDEON|https://youtu.be/vx88ExjBt8s?list=RDvx88ExjBt8s]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/vx88ExjBt8s?list=RDvx88ExjBt8s" frameborder="0" allowfullscreen></iframe></html>|<<miniBrowser http://www.broadcastify.com/listen/ctid/219>>|
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BKiwix%20Localhost%5D%5D]]  - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]'' - [[Nat King Cole Walkin]] 
[[Kiwix Localhost|http://localhost:8000/]] - http://www.kiwix.org/wiki/Software - [[Blender Manual Localhost]]
''[[Synchrotron radiation|https://en.wikipedia.org/wiki/Synchrotron_radiation]] - [[Synchrotron radiation (Kiwix)|http://localhost:8000/wikipedia_en_all_2015-05/A/Synchrotron_radiation.html]]'' 
root - https://en.wikipedia.org/wiki/Nuclear_reactor
kiwix - http://localhost:8000/wikipedia_en_all_2015-05/A/Nuclear_reactor.html
<<miniBrowser http://localhost:8000/wikipedia_en_all_2015-05/A/Nuclear_reactor.html>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BLISTEN%20TO%20BLUETOOTH%20AUDIO%20ON%20YOUR%20RASPBERRY%20PI%203%5D%5D]]
[[LISTEN TO BLUETOOTH AUDIO ON YOUR RASPBERRY PI 3|http://plugable.com/2016/03/14/listening-to-bluetooth-audio-on-your-raspberry-pi-3-pi-2-or-pi-zero]]
<<miniBrowser http://plugable.com/2016/03/14/listening-to-bluetooth-audio-on-your-raspberry-pi-3-pi-2-or-pi-zero>>
<<miniBrowser http://plugable.com/2016/02/25/get-rid-of-raspberry-pi-cables-with-plugable-keyboards-and-raspbian-jessie>>
<<miniBrowser http://plugable.com/2015/05/11/quick-fix-for-problems-using-bluetooth-from-the-raspberry-pi-desktop>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BLITHIUM%20BATTERIES%20HOW%20THEY%20MAKE%20THEM%5D%5D]]
[[LITHIUM BATTERIES HOW THEY MAKE THEM|https://youtu.be/Lt6oKRQqoSc]]
<html>
<iframe width="420" height="315" src="https://www.youtube.com/embed/Lt6oKRQqoSc" frameborder="0" allowfullscreen></iframe>
</html>

[[Why do Li-ion Batteries die ? and how to improve the situation|https://youtu.be/pxP0Cu00sZs]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/pxP0Cu00sZs" frameborder="0" allowfullscreen></iframe>
</html>
[[Permalink|http://glassparrot.tiddlyspot.com/#%5B%5BLegally%20build%20a%2060%20Watt%20WiFi%20Link%20-%202.4%20GHz%20and%20EIRP%2C%20Hak5%201515%5D%5D]]
[[Legally build a 60 Watt WiFi Link - 2.4 GHz and EIRP, Hak5 1515|https://youtu.be/Tdv_uwz3tf4]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/Tdv_uwz3tf4" frameborder="0" allowfullscreen></iframe>
</html>
[[Hak5 - Hacking DNS from beginning to end]]
/***
|''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)//
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BMake%20Flexible%20Circuit%20Boards%20Using%20A%203D%20Printer%5D%5D]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]''
[[Make Flexible Circuit Boards Using A 3D Printer|http://www.instructables.com/id/Make-Flexible-Circuit-Boards-Using-A-3D-Printer/?ALLSTEPS]]
<<miniBrowser http://www.instructables.com/id/Make-Flexible-Circuit-Boards-Using-A-3D-Printer/?ALLSTEPS>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BMaking%20outgoing%20IRC%20DCC%20work%20with%20NAT%5D%5D]]
[[Making outgoing IRC DCC work with NAT|http://jdc.koitsu.org/irc/dcc_nat.html]]
<<miniBrowser http://jdc.koitsu.org/irc/dcc_nat.html>>
<<miniBrowser http://www.dickson.me.uk/2011/11/09/making-outgoing-irc-dcc-work-with-nat-and-xchat/>>
[[mathbff]]

''[[Muon Ray channel|https://www.youtube.com/user/MuonRay/videos]]''
''[[Richard Feynman - Patents|https://youtu.be/rc9gwPB78lk]]''
''[[Richard Feynman QED Lecture 2, Reflection and Transmission : 1/7|https://www.youtube.com/watch?v=UUAG3yDInQQ&list=PL56C0E60D5AC9DFA4]]''
''[[Richard Feynman's Story of Particle Physics|https://youtu.be/kW6rR9H9Vu8]]''
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/kW6rR9H9Vu8" frameborder="0" allowfullscreen></iframe>
</html>

''[[Mangaljit Singh channel|https://www.youtube.com/channel/UC1g-2jlKuIRtgLY2DN5CA6A/videos]]''
[[Fresnel Diffraction Integral and Fraunhofer Approximation|https://youtu.be/bSHjLu-j8do]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/bSHjLu-j8do" frameborder="0" allowfullscreen></iframe>
</html>

''[[tawkaw OpenCourseWare channel|https://www.youtube.com/channel/UCh_Fl53JBzp6Swd4LYPqJrQ/videos]]''
[[Lecture 17 Fraunhofer diffraction; Fourier transforms and theorems|https://youtu.be/plU4v1dylf4]]
<html>
<iframe width="420" height="315" src="https://www.youtube.com/embed/plU4v1dylf4" frameborder="0" allowfullscreen></iframe>
</html>
[[Permaview|http://glassparrot.tiddlyspot.com/#Microscope]] -  ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]''
# ''[[Math Channels]] - [[Dr. Strangelove|https://en.wikipedia.org/wiki/Dr._Strangelove]] - [[Alien hand syndrome|http://fishcode.tiddlyspot.com/#%5B%5BAlien%20hand%20syndrome%5D%5D]]''
# [[Blender Manual Localhost]] - [[Kiwix Localhost]]
# ''[[Internet Radio|http://h8quadmod.tiddlyspot.com/#%5B%5BInternet%20Radio%5D%5D]] - [[MiniBrowser]] - [[MiniBrowserList]] - [[Wysiwyg]]''
# [[Winlink Digital Ameteur Radio]] - [[AMPRNet Wiki]] - [[High-speed multimedia radio]] 
# ''[[Amateur radio playlist|https://youtu.be/8Ce_b-eclJI?list=PL919125436E6499CB]]'' - [[Make Flexible Circuit Boards Using A 3D Printer]]
# [[RPi Hub]] - [[Backup - Restore Raspberry Pi]]
# [[How to Mirror & Combine Drives on Win10|How to Use Windows 8 or 10’s Storage Spaces to Mirror & Combine Drives]]
# [[How To Make A Cluster Computer]]
# [[How to Setup an LCD Touchscreen on the Raspberry Pi]]
# [[How to Install and Run Chrome OS in Virtualbox]]
# [[Adafruit FONA 3G Cellular + GPS Breakout]]
# [[Pookyfish]] ''Free Internet'' 
# [[How To Install And Run A Chroot JailKit Shell]]
# [[Jimi Hendrix Last Performance ' Love and Peace Festival ' 1970|Jimi Hendrix Last Performance ' Love and Peace Festival ' 1970 Isle of Fehmarn, Germany]]
# [[The Devil And Miss Jones]]
# [[Learn Thai Online|http://psychology.tiddlyspot.com/#%5B%5BLearn%20Thai%20Online%5D%5D]]
[[Making outgoing IRC DCC work with NAT]] - ''[[Gdrive|https://drive.google.com/#all]]''
''[[Remember the Alamo|https://en.wikipedia.org/wiki/Battle_of_the_Alamo]] - [[Remember Watergate|https://en.wikipedia.org/wiki/Watergate_scandal]] - They were losers - [[Shooting People (trailer)|https://shootingpeople.org/watch/613/the-junkies]]''
''These people are dirty pushers, and [[Junkie|https://en.wikipedia.org/wiki/Junkie_(novel)]]s as written in a novel by [[William S. Burroughs|https://en.wikipedia.org/wiki/William_S._Burroughs]]''
''[[Washington is Burning|http://www.historytoday.com/graeme-garrard/washington-burning]] - [[The Man Who Predicted the Great War|http://www.historytoday.com/paul-reynolds/man-who-predicted-great-war]] - [[2016|https://en.wikipedia.org/wiki/2016]]''
What I would like to see is free (maybe Comcast) Bittorrent Repositories for filesharing. 
I live in a (squidded?) hotel with SLOW, filtered, [[insecure Wifi internet|http://h8quadmod.tiddlyspot.com/#%5B%5BINTERNET%20FAILURES%20AT%20THE%20SANDFORD%20HOTEL%20IN%20SAN%20DIEGO%5D%5D]]. - [[Gdrive Storage Plans|https://support.google.com/drive/answer/2375123?hl=en&ref_topic=2375005]]
Clinton never inhaled. - [[Qui tam|http://psychology.tiddlyspot.com/#%5B%5BQui%20tam%5D%5D]]
- click 
[img[http://i.imgur.com/pIkf5m5.jpg][https://www.youtube.com/channel/UCuUz804mPvvBuSXlL2OXjOg/featured]]

[[RPi Hub]] - [[Raspberry Pi WiFi router]] - [[LISTEN TO BLUETOOTH AUDIO ON YOUR RASPBERRY PI 3]] - [[Django]] - [[Firebase Realtime Database]]
''[[Highlights of Calculus|http://blenderorganizer.tiddlyspot.com/#%5B%5BHighlights%20of%20Calculus%5D%5D]] - [[A Trip to the Moon - Georges Méliès 1902]]''

<html>
<iframe src="//commons.wikimedia.org/wiki/File:Dr_Strangelove_-_Official_Trailer.webm?embedplayer=yes" width="800" height="482" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
</html>
''[[Youporn|Youporn Embeded]] - [[Internet Crime Schemes|http://goo.gl/Stm6zF]] - [[Rendering_equation|https://en.wikipedia.org/wiki/Rendering_equation]] - [[Node.js playlist]] - [[Icom IC 706MKIIG ham radio]] - [[Morse Code|http://h8quadmod.tiddlyspot.com/#%5B%5BMorse%20Code%5D%5D]] - [[Time|http://www.time.gov/HTML5/]] - [[N6XRE|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]''
<<attach inline>>
[[MiniBrowserList]] - [[Math Channels]]
[[Permaview|http://h8quadmod.tiddlyspot.com/#MiniBrowser]] - [[Morse Code|http://morsecode.scphillips.com/translator.html]]

<<miniBrowser http://www.time.gov/ie>>
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/
----
The Devil And Miss Jones
http://www.dailymotion.com/video/x22t4ig_the-devil-and-miss-jones-1941-feature_shortfilms
----
Name: phuket@jabber.hot-chilli.net
https://jabber.hot-chilli.net/jappix/
----
Blender Reference Manual (Blender.org)
https://www.blender.org/manual/
----
Blender Reference Manual (Localhost)
http://localhost/BlenderManual/html/contents.html
----
Self-build and live aboard boat in Thailand
http://www.thaivisa.com/forum/topic/769652-self-build-and-live-aboard-boat-in-thailand/
----
Nuclear reactor (Kiwix)
http://localhost:8000/wikipedia_en_all_2015-05/A/Nuclear_reactor.html
----
Nuclear reactor (Wikipedia)
https://en.wikipedia.org/wiki/Nuclear_reactor
----
Synchrotron radiation (Kiwix)
http://localhost:8000/wikipedia_en_all_2015-05/A/Synchrotron_radiation.html
----
Pookyfish Free Internet
http://www.pookyfish.tk/Free-Internet.html
----
High-speed multimedia radio
https://en.wikipedia.org/wiki/High-speed_multimedia_radio
----
Winlink Digital Ameteur Radio
http://www.winlink.org/
----
AMPRNet Wiki
http://wiki.ampr.org/wiki/Main_Page
----
Mobilinkd Bluetooth APRS TNC
http://www.mobilinkd.com/
----
D-STAR (Wikipedia)
https://en.wikipedia.org/wiki/D-STAR
----
Echolink (Wikipedia)
https://en.wikipedia.org/wiki/Echolink
----
Moon landing conspiracy theories (Wikipedia)
https://en.wikipedia.org/wiki/Moon_landing_conspiracy_theories
----
Broadcastify
http://www.broadcastify.com/listen/ctid/219
----
Baofeng UV-5R Series Tech Page
http://www.miklor.com/uv5r/
----
SDR Showdown: HackRF vs. bladeRF vs. USRP
http://www.taylorkillian.com/2013/08/sdr-showdown-hackrf-vs-bladerf-vs-usrp.html
----
Simple SDR
http://www.vk5tm.com/homebrew/simplesdr/simplesdr.php
----
Unit Converter
http://www.unitconverters.net/
----
Scientific Calculator
http://www.calculator.net/scientific-calculator.html
----
Calculus - Gilbert Strang
http://ocw.mit.edu/ans7870/resources/Strang/Edited/Calculus/Calculus.pdf
----
FILMS BY KRIS - software
http://filmsbykris.com/v7/index.php
----
How To Install And Run A Chroot JailKit Shell
https://neverendingsecurity.wordpress.com/2015/03/14/install-and-setup-a-jailed-shell-with-jailkit-on-ubuntudebian/
----
TinyMCE - The Kitchen Sink
http://codepen.io/tinymce/pen/GZNjrQ
----
TinyMCE
https://www.tinymce.com/docs/demo/full-featured/
----
WysiwygDemo tags: Demos
http://visualtw.ouvaton.org/VisualTW.html#WysiwygDemo
----
How to Record the Sound Coming From Your PC (Even Without Stereo Mix)
http://www.howtogeek.com/217348/how-to-record-the-sound-coming-from-your-pc-even-without-stereo-mix/
----
OpenROV
http://www.openrov.com/
----
How to make a full backup of a Windows 10 or Windows 8.1 PC
http://www.windowscentral.com/how-make-full-backup-windows-pc
----
How to Use All of Windows 10’s Backup and Recovery Tools
http://www.howtogeek.com/220986/how-to-use-all-of-windows-10%E2%80%99s-backup-and-recovery-tools/
----
Booting Ubuntu on the Asus Transformer Book T100
http://liliputing.com/2013/10/booting-ubuntu-asus-transformer-book-t100.html
----
Phuket Province
https://www.lonelyplanet.com/thailand/phuket-province
----
FpgaCenter.com
http://www.fpgacenter.com/
----
The COANDA effect
http://www.xplorair.com/nasa-application.html
----
Vertical Takeoff and Landing Aircraft without Rotating Aerofoil
http://www.xplorair.com/
----
The SWATH Electra Glide – a solar electric boat
http://www.technologicvehicles.com/en/green-transportation-news/2785/le-swath-electra-glide-un-bateau-electrique-solaire-tender-pour-megayacht#.VwErPHUrKkA
----
Amphibious automobile (Wikipedia)
https://en.wikipedia.org/wiki/Amphibious_automobile
----
Wet Nellie  submarine car (Wikipedia)
https://en.wikipedia.org/wiki/Wet_Nellie
----
007 Lotus Esprit 'Submarine Car'
http://www.rmsothebys.com/lots/lot.cfm?lot_id=1061050
----
Banggood-diy electronics kit, 3d printer,raspberry pi
http://www.banggood.com/Wholesale-Arduino-SCM-and-3D-Printer-Acc-c-2153.html?utm_source=facebook&utm_medium=cpc_elc&utm_campaign=ar-140ar-rm-r&utm_content=tracy&utm_design=46
----
Faraday Future (Wikipedia) 
https://en.wikipedia.org/wiki/Faraday_Future
----
Faraday Future car 2016
http://faradayfuture.com/ces2016/
----
(VIDEO) Toyota KIKAI, a hybrid Twizy
http://www.technologicvehicles.com/en/green-transportation-news/3026/video-toyota-kikai-a-hybrid-twizy-that-exposes-its-components#.VwEtk3UrKkA
----
Autonomous underwater vehicle (AUV)
http://www.km.kongsberg.com/ks/web/nokbg0240.nsf/AllWeb/B3F87A63D8E419E5C1256A68004E946C?OpenDocument#tab-6
----
Synthetic Aperture Sonar
http://www.km.kongsberg.com/ks/web/nokbg0240.nsf/AllWeb/90CBC5D82A8F2A6CC125721F003360C2?OpenDocument
----
SYNTHETIC APERTURE RADAR
http://hackaday.com/2014/03/17/radar-imaging-in-your-garage-synthetic-aperture-radar/
----
Make Flexible Circuit Boards Using A 3D Printer
http://www.instructables.com/id/Make-Flexible-Circuit-Boards-Using-A-3D-Printer/?ALLSTEPS
----
Beaked whales
http://www.sci-news.com/biology/science-mesoplodon-hotaula-new-species-beaked-whale-01868.html
----
Dolphin (Wikipedia)
https://en.wikipedia.org/wiki/Dolphin
----
HOW TO MAKE A RASPBERRY PI NAS (NETWORK ATTACHED STORAGE)
http://www.tinkernut.com/portfolio/make-raspberry-pi-nas-network-attached-storage/
----
VNC (VIRTUAL NETWORK COMPUTING)
https://www.raspberrypi.org/documentation/remote-access/vnc/
----
Panama Papers (Wikipedia)
https://en.wikipedia.org/wiki/Panama_Papers
----
Adafruit FONA 3G Cellular Breakout - Buy
https://www.adafruit.com/product/2691
----
Adafruit FONA 3G Cellular + GPS Breakout
https://learn.adafruit.com/downloads/pdf/adafruit-fona-3g-cellular-gps-breakout.pdf
----
Chromium OS Builds
http://chromium.arnoldthebat.co.uk/index.php
----
HOW TO: Get latest builds of Chromium OS with Flash working
http://reviewingtech.com/get-latest-builds-chromium-os-flash-working/
----
Use your Android Device as a Secondary Monitor
http://www.avoiderrors.net/android-secondary-monitor/
----
How to Install and Run Chrome OS in Virtualbox
http://www.avoiderrors.net/run-chrome-os-virtual-box/
----
Low End Tech – Raspberry Pi 2 NAS File Server with Webmin
http://www.novaspirit.com/2015/09/16/low-end-tech-raspberry-pi-2-nas-file-server-with-webmin/
----
Raspberry Pi 2 Plex Media Server Installation
http://www.novaspirit.com/2015/11/28/raspberry-pi-2-plex-media-server-installation/
----
Raspberry Pi Wifi Hotspot Router File Share Media Server
http://www.novaspirit.com/2015/12/16/raspberry-pi-wifi-hotspot-router-file-share-media-server/
----
RPI-Wireless-Hotspot
http://elinux.org/RPI-Wireless-Hotspot
----
Setting up a Raspberry Pi as a WiFi access point
https://learn.adafruit.com/downloads/pdf/setting-up-a-raspberry-pi-as-a-wifi-access-point.pdf
----
RPi Hub
http://elinux.org/RPi_Hub
----
Using an External Drive as a Raspberry Pi Root Filesystem
https://learn.adafruit.com/downloads/pdf/external-drive-as-raspberry-pi-root.pdf
----
Raspberry Pi Zero
https://www.adafruit.com/products/2885
----
How to Setup an LCD Touchscreen on the Raspberry Pi
http://www.circuitbasics.com/?p=494
----
3.5inch RPi LCD (A)
http://www.waveshare.com/wiki/3.5inch_RPi_LCD_(A)
----
Drive the LCD
http://www.spotpear.com/learn/EN/raspberry-pi/Raspberry-Pi-LCD/Drive-the-LCD.html
----
Touchscreen calibration
http://www.spotpear.com/learn/EN/raspberry-pi/Raspberry-Pi-LCD/Touchscreen-calibration.html
----
Soft/Virtual keyboard
http://www.spotpear.com/learn/EN/raspberry-pi/Raspberry-Pi-LCD/Soft_Virtual-keyboard.html
----
GET RID OF RASPBERRY PI CABLES WITH PLUGABLE KEYBOARDS AND RASPBIAN JESSIE
http://plugable.com/2016/02/25/get-rid-of-raspberry-pi-cables-with-plugable-keyboards-and-raspbian-jessie
----
Making outgoing IRC DCC work with NAT and XChat
http://www.dickson.me.uk/2011/11/09/making-outgoing-irc-dcc-work-with-nat-and-xchat/
----
Making outgoing IRC DCC work with NAT
http://jdc.koitsu.org/irc/dcc_nat.html
----
QUICK FIX FOR PROBLEMS USING BLUETOOTH AND BLUEMAN FROM THE RASPBERRY PI RASPBIAN DESKTOP (WHEEZY)
http://plugable.com/2015/05/11/quick-fix-for-problems-using-bluetooth-from-the-raspberry-pi-desktop
----
LISTEN TO BLUETOOTH AUDIO ON YOUR RASPBERRY PI 3, PI ZERO, OR EARLIER PI
http://plugable.com/2016/03/14/listening-to-bluetooth-audio-on-your-raspberry-pi-3-pi-2-or-pi-zero
----
Django
https://www.fullstackpython.com/django.html
----
Time
http://www.time.gov/ie
----
Firebase Realtime Database
https://en.wikipedia.org/wiki/Firebase
----
FreeCAD at Reprap
http://reprap.org/wiki/FreeCAD
----
Comparison of programming languages
https://en.wikipedia.org/wiki/Comparison_of_programming_languages_(object-oriented_programming)
----
Object-oriented programming
https://en.wikipedia.org/wiki/Object-oriented_programming
----
MQTT
https://en.wikipedia.org/wiki/MQTT
----
Morse Code
http://morsecode.scphillips.com/translator.html
----
Makehuman
http://www.makehuman.org/
----
Alley OOp
http://www.universaluclick.com/comics/strip/alley-oop#samples
----
EuropaRussiaMoscow
http://streaming210.radionomy.com/EuropaRussiaMoscow
----
ICECAST
http://icecast.org/
----
Download torrent with BitLet.org
http://www.bitlet.org/
----
Glassparrot at wikia.com
http://glassparrot.wikia.com/wiki/Glassparrot_Wiki
----
blenderorganizer at tiddlyspot.com
http://blenderorganizer.tiddlyspot.com/
----
glassparrot at tiddlyspot.com
http://glassparrot.tiddlyspot.com/
----
fishcode at tiddlyspot.com
http://fishcode.tiddlyspot.com/
----
Sheliak.org Docuwiki
http://sheliak.org/dokuwiki/doku.php?id=start&do=index
----
GlassParrot at Wordpress
http://glassparrot.wordpress.com/video/
----
Detekt - Computer and network surveillance software
https://en.wikipedia.org/wiki/Detekt
----
Maltego Forensic Testing
http://www.paterva.com/web6/
----
Carbon Fiber Air Tanks
http://www.airgunsofarizona.com/Tanks.html
----
Google Products
https://www.google.com/intl/en/about/products/
----
Internet Radio
https://www.internet-radio.com/
----
Shoutcast
http://www.shoutcast.com/Home
----
How to Setup an LCD Touchscreen on the Raspberry Pi
http://www.circuitbasics.com/setup-lcd-touchscreen-raspberry-pi/
----
How to Build a Portable Hacking Station with a Raspberry Pi and Kali Linux
http://lifehacker.com/how-to-build-a-portable-hacking-station-with-a-raspberr-1739297918
----
Packet Sniffing using the Raspberry Pi
http://jamesdotcom.com/?p=400
----
JavaScriptKit
http://www.javascriptkit.com/cutpastejava.shtml
----
TiddlyWiki.com - official release
http://www.TiddlyWiki.com
----
TiddlyWiki.org - wiki, tickets, source control
http://www.TiddlyWiki.org
----
GoogleGroup: TiddlyWiki - user/author discussion
http://groups.google.com/group/TiddlyWiki/
----
GoogleGroup: TiddlyWikiDev - core/plugin discussion
http://groups.google.com/group/TiddlyWikiDev/
----
TiddlyVault - index of add-ons from many sources
http://TiddlyVault.TiddlySpot.com
----
TiddlySpot - instant TiddlyWiki hosting!!
http://www.TiddlySpot.com
----
TiddlyTools - plugins, scripts, templates, etc.
http://www.TiddlyTools.com
----
del.icio.us - find popular TiddlyWiki sites
http://del.icio.us/tag/tiddlywiki
----
<<tiddler BookmarkList>>
----
<<tiddler MiniBrowserList_osmosoft>>
----
<<tiddler MiniBrowserList_tech>>
----
<<tiddler MiniBrowserList_news>>
----
<<tiddler MiniBrowserList_media>>
----
<<tiddler MiniBrowserList_flash>>
flash games...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Here are my webpages and references.

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

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

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

Goto https://vega.pythonanywhere.com

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

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

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

[[Nat King Cole Walkin|https://youtu.be/_y_acJdFd68?list=RD_y_acJdFd68]] - [[Dick Whittinghill|https://en.wikipedia.org/wiki/Dick_Whittinghill]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/_y_acJdFd68?list=RD_y_acJdFd68" frameborder="0" allowfullscreen></iframe>
</html>
''In house mediawiki is at''
''http://n6xre.ttl60.com:73''
''Wikipedias''
[[AsusT100_Public|http://n6xre.ttl60.com:81/mediawiki/index.php/Main_Page]] – [[Ipleak|https://ipleak.net/]] – [[Speedtest|http://www.speedtest.net/]] - [[$wgServer|https://www.mediawiki.org/wiki/Topic:S7ttbi3qi5rrd0v0]]
Locals = [[AsusT100|http://192.168.11.206:81/mediawiki/index.php/Main_Page]] – [[AsusP8|http://192.168.11.101/mediawiki/index.php/Main_Page]] – [[StudioG580|http://192.168.11.102/mediawiki/index.php/Main_Page]] – [[StudioVM|http://192.168.11.112/mediawiki/index.php/Main_Page]]
My Java Tomcat Web Server is [[here|http://192.168.11.206:8080/]] – [[Examples|http://192.168.11.206:8080/examples/]]
For my Java [[Jamwiki|https://sourceforge.net/projects/jamwiki/files/jamwiki/1.3.x/]]
[[Node.js playlist|https://youtu.be/O28Knn00qYo?list=PLfMzBWSH11xYjL8oFumSfzOf6-kr8_t-o]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/O28Knn00qYo?list=PLfMzBWSH11xYjL8oFumSfzOf6-kr8_t-o" frameborder="0" allowfullscreen></iframe>
</html>
[[Permalink|http://scienceport.tiddlyspot.com/#%5B%5BOcean%20Energy%20-%20Wave%20Power%20Station%5D%5D]]
''[[High-voltage direct current|https://en.wikipedia.org/wiki/High-voltage_direct_current]] - [[Uniti EV|https://www.uniti.earth/invest/]] - [[Host your wiki with Miraheze|https://meta.miraheze.org/wiki/Help_center]]''
''[[Enel Green Power’s Marine Machine, power from the sea|https://youtu.be/OgDl1PjFheY]] - [[Fusion Energy - Prof. Steven Cowley|https://youtu.be/SMxOvuSMAug]]''
''also see [[HOW THE BIGGEST OIL RIGS ARE MADE|https://youtu.be/iy1sxHyDhbk]] - [[Algae CO2 Capture|https://youtu.be/QI3Al1dpuUY]] - [[Algae Power|https://youtu.be/waPgGQNppHY]] Youtubes''
''[[Algae Biofuels and Biotech - Stephen Mayfield|https://youtu.be/jPfYjOMNGX0]] - [[Salt evaporation ponds|https://en.wikipedia.org/wiki/Salt_evaporation_pond]] and algae for biofuels.''
[[Ocean Energy - Wave Power Station|https://youtu.be/gcStpg3i5V8]] - [[2|https://youtu.be/fYfs-qYGzvs]] - [[The Boring Company|https://www.youtube.com/channel/UCUU0JfukhilijYKenOyKqdg]] - [[Lithium Extraction Process|https://youtu.be/w3CrFR1Jk1w]] - [[Starlink|https://arstechnica.com/information-technology/2016/11/spacex-plans-worldwide-satellite-internet-with-low-latency-gigabit-speed/]] - [[2|https://youtu.be/AllaFzIPaG4]]
<html><iframe width="560" height="315" src="https://www.youtube.com/embed/gcStpg3i5V8" frameborder="0" allowfullscreen></iframe></html>
[[Now You Know - In Depth - Zac & Jesse's Solution to Pollution|https://youtu.be/4ikX-Cg-TMI]] - [[Energy From Floating Algae Pods|https://youtu.be/HwKyW7e9NPw]]
[[NOVA ScienceNOW - Public Genomes, Algae Fuel - Discovery Science Space|https://youtu.be/jZO9Auxxh74]] - [[Farming the Sea|https://youtu.be/EAN-VRvD8_k]] - [[2|https://youtu.be/E-PycaZ6-PQ]] - [[3|https://youtu.be/iXqK7CeypJk]]
''Human kindness has never weakened the stamina or softened the fiber of a free people. A nation
does not have to be cruel to be tough. [[It's not that we can't do it, it's that we must do it|https://en.wikipedia.org/wiki/Attack_on_Pearl_Harbor]].'' 
1> [[Franklin D. Roosevelt|https://www.brainyquote.com/quotes/quotes/f/franklind138856.html]] - ''[[100 Gigafactories|https://youtu.be/ib1KKHGYmLQ]] - [[2|http://www.smh.com.au/world/lithium-bolivia-20170523-gwb8me.html]] - [[3|https://www.google.com/search?ei=JbsAWtSQKJq4jAPOs4ewDw&q=how+far+is+bolivia+from+puerto+rico&oq=how+far+is+bolivia+from+peurto&gs_l=psy-ab.1.1.33i21k1j33i160k1l2.46564.70106.0.76091.22.22.0.0.0.0.373.2620.7j14j0j1.22.0....0...1..64.psy-ab..0.15.1871...0j0i8i7i30k1j0i8i30k1j0i22i30k1j0i22i10i30k1j0i13k1.0.n7wOdRp918Y]] - [[4|https://www.google.com/search?ei=tcYAWviDGtu4jAOqpCk&q=does+the+amazon+river+run+through+bolivia&oq=does+the+amazon+river+bolivia+&gs_l=psy-ab.1.0.0i7i30k1l3.13975.37956.0.45461.26.24.2.0.0.0.534.3250.6j15j4-1j1.23.0....0...1.1.64.psy-ab..1.25.3248...0j0i22i30k1j35i39k1j0i7i10i30k1j0i7i5i30k1j0i8i7i30k1j0i8i7i10i30k1j0i8i30k1.0.GhyJ9jOC65o]].  [[Roll out the barrel|https://youtu.be/7KRc-ceWE2E]]. [[We'll have a barrel of fun|https://www.iridium.com/network/iridiumnext]].''
''I am neither bitter nor cynical but I do wish there was less immaturity in political thinking.'' 
2> [[Franklin D. Roosevelt|https://www.brainyquote.com/quotes/quotes/f/franklind396993.html]]
''Thanksgiving 2017 in United States of America - Thursday, November 23''
''Paleface - [[BAKED HAM|https://www.epicurious.com/recipes/food/views/baked-ham-360789]] served with wine.''
''Redskin - [[Juicy Roast Turkey Recipe|https://natashaskitchen.com/2014/11/06/juicy-roast-turkey-recipe/]] served with vodka.'' 
''Wetback - [[Menudo Sabroso|https://www.heb.com/recipe/recipe-item/menudo-sabroso/1392679750215]] served with mescal.''
''Cocoabrain - [[Soul Food Pork Chitlins & Hog Maws Recipe|https://youtu.be/23KvV52_DAA]] served with beer.'' Youtube
[[Permaview|http://glassparrot.tiddlyspot.com/#OpenROV]]
[[OpenROV|http://www.openrov.com/]] - See [[Faraday Future car 2016]]
<<miniBrowser http://www.openrov.com/>>
|[[Expedition Gallery|https://youtu.be/noTsGnQD8Go?list=PLbMBxofkZ_0KYQaQ4kgJttuMPOZPCn-J1]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/noTsGnQD8Go?list=PLbMBxofkZ_0KYQaQ4kgJttuMPOZPCn-J1" frameborder="0" allowfullscreen></iframe></html>|[[Building OpenROV 2.6|https://youtu.be/w1kkx91-jP0?list=PLbMBxofkZ_0KJ-VX1ixOxjRHKIExrJOfA]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/w1kkx91-jP0?list=PLbMBxofkZ_0KJ-VX1ixOxjRHKIExrJOfA" frameborder="0" allowfullscreen></iframe></html>|
/***
|''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"
	});
*/
//}}}
[[Permaview|http://glassparrot.tiddlyspot.com/#Pookyfish]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]''
''[[Pookyfish|http://www.pookyfish.tk/Free-Internet.html]] - [[FastFreeDialup|http://www.fastfreedialup.com/frequently_asked_questions.html#faq]]''
<<miniBrowser http://www.pookyfish.tk/Free-Internet.html>>
[[Permaview|http://glassparrot.tiddlyspot.com/#PortableApps]]
[[Windows 10 and Portable Apps on Reddit|https://www.reddit.com/r/Windows10/comments/3os092/windows_10_and_portable_apps/]]
[[PortableApps under Windows 10|http://portableapps.com/node/50234]]
- click -
[img[http://i.imgur.com/4Qbme7Q.png][http://portableapps.com/node/50234]]
<<miniBrowser http://www.novirusthanks.org/products/send-to-manager/>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BRPi%20Hub%5D%5D]]
[[RPi Hub|http://elinux.org/RPi_Hub]] - [[How to Setup an LCD Touchscreen on the Raspberry Pi]] - [[MiniBrowserList]]
<<miniBrowser http://elinux.org/RPi_Hub>>
<<miniBrowser https://learn.adafruit.com/downloads/pdf/external-drive-as-raspberry-pi-root.pdf>>
<<miniBrowser https://www.adafruit.com/products/2885>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BRaspberry%20Pi%20WiFi%20router%5D%5D]]
|[[Raspberry Pi - Wireless Access Point|https://youtu.be/Vy3jNM-zajU]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/Vy3jNM-zajU" frameborder="0" allowfullscreen></iframe></html>|[[Low End Tech|https://www.youtube.com/playlist?list=PL846hFPMqg3iTKbgQryS6UNXM4Nf3KVFw]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries?list=PL846hFPMqg3iTKbgQryS6UNXM4Nf3KVFw" frameborder="0" allowfullscreen></iframe></html>|

See [[Adapfruit Raspberry Pi WiFi router|https://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/overview]] in Bookmarks - See Youtube ''[[Raspberry Pi 2 : NAS Server + Mirrored Backups|https://youtu.be/6IbiBYfEbsU]]'' with commands in Description
<<miniBrowser http://www.novaspirit.com/2015/12/16/raspberry-pi-wifi-hotspot-router-file-share-media-server/>>
''[[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]]''
Glassparrot
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BThe%20Devil%20And%20Miss%20Jones%5D%5D]]
<<miniBrowser http://www.dailymotion.com/video/x22t4ig_the-devil-and-miss-jones-1941-feature_shortfilms>>
|[[Faerie Tale Theatre 24 Rip Van Winkle|https://youtu.be/bdOW02SgH_A?list=RDbdOW02SgH_A]] - [[096 Popeye Meets Rip Van Winkle (Popeye Cartoon)|https://youtu.be/zfFfG4J_NEk]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/bdOW02SgH_A?list=RDbdOW02SgH_A" frameborder="0" allowfullscreen></iframe></html>|[[Film Noir Movies|https://youtu.be/-uOfCA4OpFw?list=PLGKblFQXqJackAEPUfxZoboNlPfRjZwpf]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/-uOfCA4OpFw?list=PLGKblFQXqJackAEPUfxZoboNlPfRjZwpf" frameborder="0" allowfullscreen></iframe></html>|
[[TiddlyWiki Tutorial|https://youtu.be/ZMGpAW0z_Bo?list=PLzZCajspPU_UjFn0uy-J9URz0LP4zhxRK]]
<html>
<iframe width="560" height="315" src="https://www.youtube.com/embed/ZMGpAW0z_Bo?list=PLzZCajspPU_UjFn0uy-J9URz0LP4zhxRK" frameborder="0" allowfullscreen></iframe>
</html>
[[Permaview|http://glassparrot.tiddlyspot.com/#Wysiwyg]]
[[TinyMCE|https://www.tinymce.com/docs/demo/full-featured/]] - [[Wysiwyg]]
<<miniBrowser http://codepen.io/tinymce/pen/GZNjrQ>>

[[Example of TinyMCE editor - (File:New document)]]
/***
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 = 'glassparrot';

// 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 03:40:17 | Glassparrot  | [[/|http://glassparrot.tiddlyspot.com/#DefaultTiddlers%20%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D%20%5B%5BUniversal%20Licensing%20System%5D%5D]] | [[store.cgi|http://glassparrot.tiddlyspot.com/store.cgi]] | . | [[index.html | http://glassparrot.tiddlyspot.com/index.html]] | . | ok |
| 07/06/2018 03:40:37 | Glassparrot  | [[/|http://glassparrot.tiddlyspot.com/#DefaultTiddlers%20%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D%20%5B%5BUniversal%20Licensing%20System%5D%5D]] | [[store.cgi|http://glassparrot.tiddlyspot.com/store.cgi]] | . | [[index.html | http://glassparrot.tiddlyspot.com/index.html]] | . |
| 10/06/2018 20:13:33 | Glassparrot | [[/|http://glassparrot.tiddlyspot.com/#%5B%5BUniversal%20Licensing%20System%5D%5D%20%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D]] | [[store.cgi|http://glassparrot.tiddlyspot.com/store.cgi]] | . | [[index.html | http://glassparrot.tiddlyspot.com/index.html]] | . |
| 11/06/2018 23:34:49 | Glassparrot | [[/|http://glassparrot.tiddlyspot.com/#%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D%20%5B%5BUniversal%20Licensing%20System%5D%5D]] | [[store.cgi|http://glassparrot.tiddlyspot.com/store.cgi]] | . | [[index.html | http://glassparrot.tiddlyspot.com/index.html]] | . |
| 13/06/2018 04:25:01 | Glassparrot | [[/|http://glassparrot.tiddlyspot.com/#%5B%5BNetgear%20CM-500%20Cable%20Modem%5D%5D%20%5B%5BUniversal%20Licensing%20System%5D%5D]] | [[store.cgi|http://glassparrot.tiddlyspot.com/store.cgi]] | . | [[index.html | http://glassparrot.tiddlyspot.com/index.html]] | . |
| 20/10/2018 16:52:40 | Glassparrot | [[/|http://glassparrot.tiddlyspot.com/#%5B%5BMy%20Mediawiki%5D%5D]] | [[store.cgi|http://glassparrot.tiddlyspot.com/store.cgi]] | . | [[index.html | http://glassparrot.tiddlyspot.com/index.html]] | . |
| 22/01/2019 00:04:22 | Glassparrot | [[/|http://glassparrot.tiddlyspot.com/]] | [[store.cgi|http://glassparrot.tiddlyspot.com/store.cgi]] | . | [[index.html | http://glassparrot.tiddlyspot.com/index.html]] | . |
| 22/01/2019 10:22:24 | Glassparrot | [[/|http://glassparrot.tiddlyspot.com/]] | [[store.cgi|http://glassparrot.tiddlyspot.com/store.cgi]] | . | [[index.html | http://glassparrot.tiddlyspot.com/index.html]] | . |
| 07/07/2019 05:26:51 | Glassparrot | [[/|http://glassparrot.tiddlyspot.com/#SiteSubtitle]] | [[store.cgi|http://glassparrot.tiddlyspot.com/store.cgi]] | . | [[index.html | http://glassparrot.tiddlyspot.com/index.html]] | . |
| 15/07/2019 10:33:08 | Glassparrot  | [[/|http://glassparrot.tiddlyspot.com/#%5B%5BMy%20Mediawiki%5D%5D]] | [[store.cgi|http://glassparrot.tiddlyspot.com/store.cgi]] | . | [[index.html | http://glassparrot.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");


//}}}

<!--{{{-->
<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>
<!--}}}-->
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BWinlink%20Digital%20Ameteur%20Radio%5D%5D]] - ''[[N6XRE - RUST, GARY A|http://wireless2.fcc.gov/UlsApp/UlsSearch/license.jsp?licKey=722830]]'' - [[Echolink Pi Naked Node with SVXLINK]] - [[AmateurLogic.TV 38: D-Star, Echolink, Audio & Baluns]]
[[Winlink Digital Ameteur Radio|http://www.winlink.org/]] - [[High-speed multimedia radio]] - [[AMPRNet Wiki]] - ''[[Amateur radio playlist|https://youtu.be/8Ce_b-eclJI?list=PL919125436E6499CB]]''
<<miniBrowser http://www.winlink.org/>>
[[Mobilinkd Bluetooth APRS TNC|http://www.mobilinkd.com/]]
<<miniBrowser http://www.mobilinkd.com/>>
|[[VR Get started with APRS for $30! - Mobilinkd TNC|https://youtu.be/uWiN26V3w4w]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/uWiN26V3w4w" frameborder="0" allowfullscreen></iframe></html>|[[Radio Communications Without A Radio - Echolink|https://youtu.be/PlIXeKE7RiI]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/PlIXeKE7RiI" frameborder="0" allowfullscreen></iframe></html>|
- click HERE
[img[http://www.mr-bingo.org.uk/files/gimgs/106_get-fucked.jpg][http://i.imgur.com/ReRI44t.jpg]]
[[Youporn Embeded]]
<<toolbar easyEdit>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BYouporn%20Embeded%5D%5D]]
Every time i see a pussy it makes me want to cum, as many times as I can. I never can get enough - even during daylight savings time. The devil has a hold of me and she won't let loose. She's lovelier than Eve (and hornier).
I wish I could get a girdle on my prostate, and a tube with a one way valve from my appendix to my seminal vestical.  The appendix always has saline. If it ever got dry it would fill back up in 5 minutes. I would have 5 times 
the capacity of a normal person. There is a lesson to be learned [[HERE|https://mango.blender.org/]], but who cares. It's only for morons, with nothing better to do (because they're wimps and they can't get it up, anymore.) Dr. Gregory House, Veterinarian?
|''[[Boom Boom Girl|https://goo.gl/k3P5bp]]''<br><html><iframe src='http://www.youporn.com/embed/9171025/devilsfilm-loud-brunette-creampied/' frameborder=0 height='481' width='608' scrolling=no name='yp_embed_video'></iframe><br /><a href='http://www.youporn.com/watch/9171025/devilsfilm-loud-brunette-creampied/'>DevilsFilm Loud Brunette Creampied</a></html>|''[[I Can't Elope|http://apracticalwedding.com/2011/02/things-to-think-about-when-planning-an-elopement/]] - What about my job?''<br><html><iframe src='http://www.youporn.com/embed/12557369/keiran-lee-cumshots-compilation/' frameborder=0 height='481' width='608' scrolling=no name='yp_embed_video'></iframe><br /><a href='http://www.youporn.com/watch/12557369/keiran-lee-cumshots-compilation/'>Keiran Lee: cumshots compilation</a></html>|
|''[[How to do Camera Tracking in Blender|http://h8quadmod.tiddlyspot.com/#%5B%5BHow%20to%20do%20Camera%20Tracking%20in%20Blender%5D%5D]]''<br><html><iframe src='http://www.youporn.com/embed/8680316/fantasyhd-big-dick-public-sex/' frameborder=0 height='481' width='608' scrolling=no name='yp_embed_video'></iframe><br /><a href='http://www.youporn.com/watch/8680316/fantasyhd-big-dick-public-sex/'>FantasyHD big dick public sex</a></html>|''[[Ask Andy Show|https://www.youtube.com/user/HoboTraveler]]''<br><html><iframe src='http://www.youporn.com/embed/9179783/milf-fuck-and-creampie/' frameborder=0 height='481' width='608' scrolling=no name='yp_embed_video'></iframe><br /><a href='http://www.youporn.com/watch/9179783/milf-fuck-and-creampie/'>Milf fuck and creampie</a></html>|
|[[HAND EXPRESS ASI # 2 - Cara Ibu Cantik Menyusui Bayi|https://youtu.be/G9i6WhnjKEo]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/G9i6WhnjKEo" frameborder="0" allowfullscreen></iframe></html>|[[Breastfeeding. Tutorial. Hand Expressing Breast Milk. How To Use Hand Breast Pump|https://youtu.be/aEd5pSNZQ_0]]<br><html><iframe width="560" height="315" src="https://www.youtube.com/embed/aEd5pSNZQ_0" frameborder="0" allowfullscreen></iframe></html>|
[[MiniBrowserPornList]]<<miniBrowser expand MiniBrowserPornList>>
[[Permaview|http://glassparrot.tiddlyspot.com/#%5B%5BdSploit%20-%20Android%20App%20For%20Hackers%5D%5D]] - [[How to crack wpa/wpa2 with commview for wifi]]
[[dSploit - Android App For Hackers|http://www.effecthacking.com/2015/04/dsploit-android-app-for-hackers.html]] - [[How To Install And Run A Chroot JailKit Shell]] - [[Internet Crime Schemes|http://goo.gl/Stm6zF]]
<<miniBrowser http://www.effecthacking.com/2015/04/dsploit-android-app-for-hackers.html>>
''[[mathbff|https://www.youtube.com/user/mathbff/videos]]'' - [[Math Channels]]
''[[Trigonometric functions|https://en.wikipedia.org/wiki/Trigonometric_functions]]'' - [[List of mathematical symbols|https://en.wikipedia.org/wiki/List_of_mathematical_symbols]] - Wikipedia - ''[[Google docs Spreadsheets|https://docs.google.com/spreadsheets/u/0/]]''

- click 
[img[https://lh3.googleusercontent.com/afdfkXNuEqs-1jSV3tbKO3X9coVvnY4hhxBdoCo-Lcd0hoIl3q8iuUx9VAb6gx7_c_JV8jfltT5nz9RWRJS_MQQEj3MIrrgLMIxcq3vnv2RVc5Cf0L_KHuxG9m0Bt0QJrCTs_jt9hQPe8uMOVtX0J6632Qe8qIoKaBZZvr9qRk4KCsJfy5avHo_K_vk3O1ClU28z_LxC5T8Z1_2Gw2T1HH_fAnmUReUrDG-73fsZOrvrNdnjKydrX6kzrgTCM3t9Lyx5l-U_PJLXItwMnAqiYRwEgu8BG8PZbek_IDUPexz267aveHKjrdQjqJVsGg-sFmPwM6H2sAIDC676MvLxutWqFNJQBru5G_jFPkRvnkvoXxn3u2Y3UgdfsB_U_8424Qe9WPnu5fLeJO7XK-Yq1Oxfv5XO5MG2ibiy0lwlmcvCW557qM4aHmK9o64YWyEAice4muBqT1PAV15sJHu3sr3QPMtcsS93fPXHDIPTepjyEMuaYIGIstadwT3SqsnljQ1cpEZ9R77T6NdZupKygmkT2g9VoFSWTRWV9O90WHrVXbLB0P2ebFoml58uYfTDVP-4=w1255-h796-no][https://www.youtube.com/user/mathbff/videos]]


[[Working for Free]]
<<toolbar easyEdit>> 
[[Wysiwyg]] - [[TinyMCE]]

<html>Does <font size="7"><a href="#TinyMCE">It</a></font> work?</html>