<!--{{{-->
<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>>

*Recruiting

<html>
<img src="http://raw.githubusercontent.com/mirage335/TazStiff/master/images/TazStiff_owner.jpg" style="float:right;height:320px;border: 2px solid black">
<img src="https://dl.dropboxusercontent.com/u/2757918/mrocks.jpg" style="float:right;height:320px;border: 2px solid black;border: 2px solid black">
</html>
[[WebChat - Click here to chat now.|http://webchat.freenode.net/?channels=%23%23mirage335]]
spamfreemirage335@gmail.com
[[GitHub|https://github.com/mirage335]]
1-301-660-6414
Generally available between 10:00-22:00 EDT and often beyond.

More information available on request.

!Direction
Seeking to develop open-source heavy industry underpinning a sustainable closed-loop economy. Requirements are sought, maximum performance solutions identified, infrastructure built. Veni, vidi, vici.

Individuals or organizations with skills, tools, connections, or a desire to learn are invited to participate.

!Strengths
* Interdisciplinary technical leadership and strategic planning.
* Comprehensive attention to the minutiae behind new product development, from design, through bill-of-materials, to manufacturing and market segment analysis.
* Continuous development and integration of new automation with a pragmatic focus on long-term productivity.
* Extensively self-taught, accustomed to efficiently exploring uncharted territory.
* Particularly keen to develop open-source fabrication and communication technologies for public benefit.

!Skills
Over the years, some specific skills have emerged as particularly essential or definitive, by no means a complete list.
<html>
<style>
.second {
    margin: 0;
    position: absolute;
    left: 600px;
}

.third {
    margin: 5;
    position: absolute;
    left: 800px;
}
</style>

<p>
<span>Analog</span>
<span class="second">gEDA</span>
<span class="third">CMake</span><br>


<span>Electrical Design</span>
<span class="second">FreeCAD</span>
<span class="third">UNIX</span><br>


<span>Mechanical Design</span>
<span class="second">Solidworks</span>
<span class="third">Linux</span><br>


<span>Optical Design</span>
<span class="second">Revit</span>
<span class="third">Debian</span><br>


<span>Simulation</span>
<span class="second">Photolithography</span>
<span class="third">Gentoo</span><br>


<span>Fabrication</span>
<span class="second">3D Printing</span>
<span class="third">Funtoo</span><br>


<span>Manufacturing</span>
<span class="second">CNC Milling</span>
<span class="third">Arch</span><br>


<span>Programming</span>
<span class="second">Laser Cutting</span>
<span class="third">Correlation</span><br>


<span>Scripting</span>
<span class="second">C</span>
<span class="third">Confidence Testing</span><br>


<span>Cryptography</span>
<span class="second">C++</span>
<span class="third">Infinite Impulse Response</span><br>


<span>Statistics</span>
<span class="second">AVR</span>
<span class="third">Filter Design</span><br>


<span>Psychometrics</span>
<span class="second">Arduino</span>
<span class="third">Inkscape</span><br>


<span>Graphics</span>
<span class="second">Bash</span>
<span class="third">GIMP</span><br>


<span>Technical Writing</span>
<span class="second">HTML</span>
<span class="third">MediaWiki</span><br>

<span>Instruction</span>
<span class="second">JavaScript</span>
<span class="third">GitLab</span><br>


<span>Project Management</span>
<span class="second">MySQL</span>
<span class="third">Git</span><br>

<span>Research</span>
</p>

</html>

!Official Titles
!![[HacDC, The Capital Hackerspace|http://www.hacdc.org/]]
<html><img src='http://www.hacdc.org/wp-content/themes/hacdc/images/home.png' style="float:right;height:60px;border: 2px solid black"></html>
* Director at Large
* Admin Team
* Former Vice President, Director of IT
* Official contact for SUPPLIES and EXPANSION funds.

!![[Imagnus Medical|https://www.linkedin.com/company/imagnus]]
<html><img src='https://media.licdn.com/media/p/1/005/055/0e4/328f82e.png' style="float:right;height:60px;border: 2px solid black"></html>
* Director of Engineering

!![[Connected 3D Printing|http://3dconnectedprinting.com]]
* Chief Technology Officer

!!Soaring Industries LLC
* Owner, Sole Proprietor, CEO

!Community
Have extensive experience leading community organizations, teaching freely available classes, and identifying issues in open-source code. Additionally, many other [[projects|http://mirage335-site.member.hacdc.org:6380/wiki/Category:Projects]] have been done collaboratively or in service of a larger community.

!!Assistant Teacher to Dan Barlow for CNC Mill Class
<html><img src='https://wiki.hacdc.org/images/d/d7/TAIG_CNC_Mill.JPG' style="float:right;height:80px;border: 2px solid black"></html>Class began with Dan Barlow's outstanding theoretical introduction, which covered mounting hardware, cutting speeds, machine subsystems, and much more.

Subsequently provided practical, hands-on individual instruction. Participants were independently able to attach appropriate mounting hardware, clamp workpieces, generate g-code using ~JSCut, and actually mill their designs.

!!CAD Modeling Class
Using ~SolidWorks, participants were guided to create complex printable 3D models in under 20 minutes. Focus was on the fundamental geometric CAD workflow: sketching, constraining, extruding, face sketching, and assembling. After this tutorial, in-service part designs were demonstrated, and alternative FOSS software compared, notably ~FreeCAD.

!!~KVIrc Weak Encryption
<html><img src="http://upload.wikimedia.org/wikipedia/commons/f/f0/Tux_ecb.jpg" style="float:right;width:60px;border: 2px solid black"></html>Tested and found ~KVIrc encryption to use only ECB mode, which [[outputs identical ciphertext for identical inputs and keys|http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation]]. As dramatically revealed by the [[Wikipedia image|http://en.wikipedia.org/wiki/File:Tux_ecb.jpg]], this is a highly insecure method of using otherwise secure ciphers. Filed [[bug report|https://svn.kvirc.de/kvirc/ticket/1169]], and contacted developer ~CtrlAltCa via IRC. Proper CBC mode encryption became available and documented for ~KVIrc as a result.

!!Linux Kernel Tracer Bug
Reported and assisted diagnosis for a Linux kernel bug affecting kernel latency (ie. desktop interactivity). Bug fix was subsequently committed to mainline Linux kernel.
See commit db4c75cbebd7e5910cd3bcb6790272fcc3042857 at [[http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.5|http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.3.5]].

![[Projects|http://mirage335-site.member.hacdc.org:6380/wiki/Category:Projects]]
A few select projects are referenced below. Please browse the [[wiki|http://mirage335-site.member.hacdc.org:6380/wiki/Category:Projects]] for far more extensive documentation regarding many more awesome projects and operational systems.

!![[Biosignal Amplifier|http://mirage335-site.member.hacdc.org:6380/wiki/Category:Mirage335BiosignalAmp]]
<html><img src="http://dl.dropbox.com/u/2757918/documentation/Mirage335BiosignalAmp/02-heartbeat.jpg" style="float:right;height:320px;border: 2px solid black">
<img src="http://dl.dropbox.com/u/2757918/documentation/Mirage335BiosignalAmp/08-AlphaWavesLowRes.jpg" style="float:right;height:320px;border: 2px solid black">
</html>Animals (including humans) produce weak electrical signals, as hearts beat, muscles move, and neurons fire. Using all the best techniques and components, a uniquely low-noise high-dynamic-range biosignal amplifier has been achieved to pull out even the weakest biosignals for research purposes. ~Mirage335BiosignalAmp employs [[new research on low-noise amplifier chips|http://mirage335-site.member.hacdc.org:6380/forums/viewtopic.php?f=4&t=16&sid=32e6e82aa79e9a42acf030a1fbd48830]] and extensive measures to reject external noise such as feedback AC coupling, driven shields, and active probes. An [[ArduinoDAQ|http://mirage335-site.member.hacdc.org:6380/wiki/Category:ArduinoDAQ]], 24bit ADC, is also onboard, paired with high-order digital IIR filters efficient enough to run in real-time on AVR (ie. Arduino) microcontrollers before handing off the raw audio format data through USB connection.

See [[wiki|http://mirage335-site.member.hacdc.org:6380/wiki/Category:Mirage335BiosignalAmp]] for complete schematics, ~PCBs, ~BOMs, documentation, repositories, and investor list. Special thanks to Shawn Nock for creating oshpark conversion script, now evolved into the [[GEDAProduction|http://mirage335-site.member.hacdc.org:6380/wiki/Category:GEDAProduction]] system generating a variety of PCB related fabrication assets.

<html><img src="https://raw.github.com/mirage335/Mirage335BiosignalAmp/master/amplifierSchematic.png" width=640 style="border: 2px solid black"></html>

!![[Industrial Computerized Numerical Control Platforms|http://mirage335-site.member.hacdc.org:6380/wiki/Category:CNC]]
<html>
<div style="text-align: right;float:right;">
<a href='http://mirage335-site.member.hacdc.org:6380/wiki/Category:TazStiff'><img src="https://github.com/mirage335/TazStiff/raw/master/images/TazStiff.jpg" style="height:120px;"></a>
<a href='http://mirage335-site.member.hacdc.org:6380/wiki/Category:TazUp'><img src="http://raw.githubusercontent.com/mirage335/TazStiff/master/images/TazUpIllustration.png" style="height:120px;"></a>
<a href='http://mirage335-site.member.hacdc.org:6380/wiki/Category:TazMega'><img src="http://raw.githubusercontent.com/mirage335/Taz_Mega/master/Photos/MightyTool.jpg" style="height:120px;"></a>
<div></div>
<a href='http://mirage335-site.member.hacdc.org:6380/wiki/Category:FlexReplicator'><img src="https://raw.github.com/mirage335/FlexReplicator/master/Render.png" style="height:120px;"></a>
<a href='http://mirage335-site.member.hacdc.org:6380/wiki/Category:LulzBotTaz'><img src="https://raw.github.com/mirage335/LulzBotTaz/master/GenericPhotos/01-PrinterWorkstation.jpg" style="height:120px"></a>
<a href='https://wiki.hacdc.org/index.php/Category:PrusaMendel'><img src="http://wiki.hacdc.org/images/thumb/6/6d/PrusaMendelPresent.jpg/500px-PrusaMendelPresent.jpg" style="height:120px"></a>
</div>

</p>
</html>
Designing, building, and operating a growing base of industrial Computerized Numerical Control (CNC) platforms.

[[TazMega|http://mirage335-site.member.hacdc.org:6380/wiki/Category:TazMega]] and [[TazStiff|http://mirage335-site.member.hacdc.org:6380/wiki/Category:TazStiff]] are fully self-designed, built, and operated. [[TazUp|http://mirage335-site.member.hacdc.org:6380/wiki/Category:TazUp]] simplifies the upgrade process for existing stock ~LulzBot Taz machines to a three-step process emphasizing the benefits of metal plates instead of plastic brackets. Along the way, a stock ~LulzBot Taz was also operated until some of the components were used for a rebuild. Further, [[FlexReplicator|http://mirage335-site.member.hacdc.org:6380/wiki/Category:FlexReplicator]] still stands as a self-designed cubical architecture which may prove useful in future projects.

Accessories applicable to virtually all CNC platforms have become available to the public through these projects. Instead of overbuilt frames, a [[RigidTable|http://mirage335-site.member.hacdc.org:6380/wiki/Category:RigidTable]] provides the strong base to resist stress that would deform lighter weight machines. With the [[MightyTool|http://mirage335-site.member.hacdc.org:6380/wiki/Category:MightyTool]] mounting hardware, these platforms, especially [[TazMega|http://mirage335-site.member.hacdc.org:6380/wiki/Category:TazMega]], can simultaneously operate 3D printing extruders, milling spindles, and various lasers. Specialized [[Cabinet|http://mirage335-site.member.hacdc.org:6380/wiki/Category:CNCcabinet]] plans add convenience, keeping all supplies right under the printer, while placing the print surface at eye level.

Collaboratively, have upgraded rigidity, lifespan, and usability for ~HacDC's Prusa Mendel 3D Printer. Responsible for more than half the printer's parts, through upgrades over a three year period, as well as for the printer remaining operational. Maintenance has included documentation, extruder fabrication, CNC milling stronger parts, spool holder fabrication, complete print-surface re-engineering, and eliminating manual priming from the printing process. Since then the platform has manufactured the models crucial to Julia Longtin's [[CCC31 presentation on lost-PLA aluminum casting by consumer microwave oven heating|https://www.youtube.com/watch?v=oFZMfBXxMxk]]. Consequently, the overall effort has been directly responsible for [[HacDC freely acquiring an outstanding LulzBot Mini|http://www.hacdc.org/2015/03/10/hacdc-wins-lulzbot-mini-3d-printer-hackerspace-giveaway/]]. Today, the machine's high-maintenance requirements continue to provide a highly educational robotics 'school'. Special thanks to Julia Longtin for timely parts, debugging assistance, and mentorship.

!![[RigidArm|http://mirage335-site.member.hacdc.org:6380/wiki/Category:RigidArm]]
<html><img src="https://raw.github.com/mirage335/rigidArm/master/render.png" style="float:right;height:60px;border: 2px solid black"></html>All-metal, high-strength low-cost linear actuator, specifically for gate operation. Steel channel simulated to 500lbs compressive force with >150x safety factor.

!![[Test Cart|https://wiki.hacdc.org/index.php/Category:TestCart]]
<html><img src="http://wiki.hacdc.org/images/8/8f/TestCartStylish.jpg" style="float:right;height:140px;border: 2px solid black"></html>Built up [[HacDC's test equipment cart|http://wiki.hacdc.org/index.php/Category:TestCart]] to handle almost any electronics design problem, through self-built hardware, salvaged components, recommended purchases, and efficient cart layout. Among other things, capabilities are now broad enough to construct superheterodyne HF receivers in a few minutes just by connecting equipment with BNC cables.






!![[SigBlockly|http://mirage335-site.member.hacdc.org:6380/wiki/Category:SigBlockly]]
<html><div style="text-align: right;float:right;"><table><tr><td><img src="http://dl.dropbox.com/u/2757918/documentation/SigBlocklyDemo/Blocks.png" height=80 style="border: 2px solid black" /></td><td><img src="http://dl.dropbox.com/u/2757918/documentation/SigBlocklyDemo/Code.png" height=80 style="border: 2px solid black" /></td></tr></html>Unlimited [[graphical programming environment for C|http://mirage335-site.member.hacdc.org:6380/wiki/Category:SigBlockly]], focused on facilitating realtime signal processing and control systems development.




!![[Radio|http://mirage335-site.member.hacdc.org:6380/wiki/Category:Radio]]
!!![[HF_Upconverter|http://mirage335-site.member.hacdc.org:6380/wiki/Category:HF_Upconverter]]
<html><img src="https://raw.github.com/mirage335/HF_Upconverter/master/HF_Upconverter.pcb.png" style="float:right;height:120px;border: 2px solid black"></html>Maximum performance frequency converter. Core component for ultra-high-performance receivers, offering exceptional interference rejection.





!!![[30MHz LowPass|http://mirage335-site.member.hacdc.org:6380/wiki/Category:30MHzLowPass]]
<html><img src="http://dl.dropbox.com/u/2757918/publication/mirage335/HexFormer/image.png" style="float:right;height:120px;border: 2px solid black"><img src="http://dl.dropbox.com/u/2757918/publication/mirage335/MiniVNA.jpg" style="float:right;height:120px;border: 2px solid black"></html>High performance, easily constructed filter controls spurious responses from superheterodyne radios. Made from [[sophisticated 3D printed air-core toroid inductors|http://mirage335-site.member.hacdc.org:6380/wiki/Category:AirCoreToroidInductors]], performance is excellent. Stopband attenuation is extremely sharp and deep.





!!![[Antenna|http://mirage335-site.member.hacdc.org:6380/wiki/Category:RooftopAntenna]]
<html><img src="http://dl.dropboxusercontent.com/u/2757918/publication/HacDC/AntennaMast/Antenna.jpg" style="float:right;height:120px;border: 2px solid black"><img src="http://dl.dropboxusercontent.com/u/2757918/publication/HacDC/AntennaTuner/AllBandTest.png" style="float:right;height:120px;border: 2px solid black"></html>Colloborative ~HacDC project provides worldwide HF (shortwave) amateur radio communication, having served as the club's primary antenna for three years. This replaced an antenna other remote amateur radio operators confirmed as inoperable. Testing a variety of antennas in a rural open field demonstrated a 20m quarter-wave (5m height) vertical monopole antenna was most suitable. With an ~SGC-237 autotuner, all-band coverage from 1.8MHz to 29.7MHz is available, meeting the requirements for [[automatic link establishment|http://en.wikipedia.org/wiki/Automatic_link_establishment]], supporting reliable dial-a-number worldwide communication.




!![[AudioToResistance|http://mirage335-site.member.hacdc.org:6380/wiki/Category:AudioToResistance]]
<html><img src="https://raw.github.com/HacDC/AudioToResistance/master/Basic.sch.png" style="float:right;height:80px;border: 2px solid black"></html>Collaboratively worked with [[Project Byzantium|http://project-byzantium.org/]] development team at ~HacDC to trigger ~Push-To-Talk radio inputs using only energy received from audio line-level signals. Enables high-speed data transmission across VHF/UHF amateur radio technology, requiring only low-cost 'handie talkies' as transceivers. Assistance provided included several schematic designs and CNC milled ~PCBs in one night. Now, research is progressing to merge amateur radio support into their [[famous WiFi mesh network distribution|http://beta.slashdot.org/story/173373]] which is already [[assisting disaster relief efforts|http://drwho.virtadpt.net/archive/2012/11/14/project-byzantium-called-to-assist-relief-efforts-in-new-york]].



!![[Occupancy Sensor and NetPLC Successor|http://mirage335-site.member.hacdc.org:6380/wiki/Category:OccupancySensor]]
<html><img src="https://wiki.hacdc.org/images/thumb/f/f4/NetPLC_Core.jpg/400px-NetPLC_Core.jpg" style="float:right;height:120px;border: 2px solid black"></html>Colloborative ~HacDC project. Lights on/off status is used to report whether the space is open or closed. Developed Arduino and ~OpenWRT wireless router internet connected platform to monitor and report light sensor status. Operating successfully for over two years, this custom embedded platform is [[helped guests determine whether the space is open to visit|http://api.hacdc.org/OccSensor.php]]. ~HacDC members “haxwithaxe” and “eryc” were helpful in creating and hosting the web interfaces as well as external light sensors.

Presently, a new Occupancy Sensor system with RFID support based on [[NetPLC|http://mirage335-site.member.hacdc.org:6380/wiki/Category:NetPLC]] is ready for installation, pending a suitable electronically controlled lock.



!![[OpenEtherSurge|http://mirage335-site.member.hacdc.org:6380/wiki/Category:OpenEtherSurge]]
<html><img src="https://raw.github.com/mirage335/OpenEtherSurge/master/OpenEtherSurge.sch.png" style="float:right;height:120px;border: 2px solid black"><img src="https://raw.github.com/mirage335/OpenEtherSurge/master/productionStatic/cad/OpenEtherSurge/Render.png" style="float:right;height:120px;border: 2px solid black"></html>High-performance multi-stage low-cost Ethernet/8P8C/~RJ45 surge suppressor.





!![[GEDAProduction|http://mirage335-site.member.hacdc.org:6380/wiki/Category:GEDAProduction]]
<html><img src="https://raw.github.com/mirage335/LulzBotTaz/master/GenericPhotos/05-LaserStencil.jpg" style="float:right;height:120px;border: 2px solid black"></html>Scripts to generate production resources from gEDA projects, including CAD models, ~Bill-Of-Materials documents, Oshpark/Oshstencil packages, photolithography masks, solder paste stencils, CNC mill ~G-Code, and ~RepRap laser cutting ~G-Code.





!![[Electronics Workstation|http://mirage335-site.member.hacdc.org:6380/wiki/Category:ElectronicsWorkstation]]
<html><img src="https://raw.github.com/mirage335/ElectronicsWorkstation/master/Photo.jpg" style="float:right;height:180px;border: 2px solid black"></html>
Precision high-accessibility electromechanical lab bench, with recommended equipment list.







!![[IQEmu|http://mirage335-site.member.hacdc.org:6380/wiki/Category:IQEmu]]
<html><img src="http://dl.dropbox.com/u/2757918/documentation/IQEmuDemo/05-doing.png" style="float:right;height:160px;border: 2px solid black"><img src="http://dl.dropbox.com/u/2757918/documentation/IQEmuDemo/01-file.png" style="float:right;height:60px;border: 2px solid black"></html> Tightly integrates native Windows applications with Linux.

Double clicking an "*.exe" file on a Linux machine can now bring up a temporary virtual machine launching the file, with access to the host filesystem. This also works for other files, like opening "*.txt" with "notepad.exe".






!![[Business Card|http://mirage335-site.member.hacdc.org:6380/wiki/Category:BusinessCard]]
<html><img src="http://dl.dropboxusercontent.com/u/2757918/BusinessCard_mirage335_pcb.png" style="float:right;border: 10px solid black"></html>Custom graphics. Only the satellite, antenna, clouds, stars, are clipart from [[OpenClipArt|http://openclipart.org/]] or [[Inkscape|http://inkscape.org/en/]]. All other work is an original design.

!Formal Education
!UMUC
<html><img width=50></html>GPA 4.0, Summa Cum Laude
<html><img width=50></html>Bachelor's of Science (Psychology) Degree
<html><img width=50></html>Computer Science Minor

!Certifications
* Amateur Radio Licensed, Extra Class
* [[CompTIA Linux+|http://en.wikipedia.org/wiki/CompTIA#Linux.2B]] [[Certified|https://www.certmetrics.com/comptia/public/verification.aspx?code=NZJ03K0JKL41KZGJ]]
* Tae Kwon Do, Black Belt, First Degree
tags:
links:

ContactMe

Internet Relay Chat (IRC), Instant Messenging, email, and forums are online 24/7 for real-time communication, and will be responded to as soon as possible. IRC and forums are the preferred contact options.
<<showtoc>>
!IRC
[[WebChat|http://webchat.freenode.net/?channels=%23%23mirage335]]
Channel: ##mirage335 @ irc.freenode.net
Username: mirage335

Unanswered messages are logged 24/7, so check in often.

Internet Relay Chat (IRC) is by far the preferred real-time communication tool. The protocol is easy to automate, infrastructure is thoroughly distributed, and group conversations are easily managed.
Further, many other IRC users provide expert knowledge on topics ranging from C programming to amateur radio, often saving weeks of R&D.

!Phone
1-301-660-6414

!Email
spamfreemirage335@gmail.com

!Forums
[[Forums|http://mirage335-site.member.hacdc.org:6380/forums]] are provided as indicated on the sidebar.

!Further Info
More information available on request.

!Cryptography
GPG Public Key (Generic, spamfreemirage335@gmail.com)
//{{{
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.18 (GNU/Linux)

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
D4f+yaFh7YcipumXEG7MAblya5g=
=9uQj
-----END PGP PUBLIC KEY BLOCK-----
//}}}
tags:
links:

Copyleft

Licensing for personal works, with commitment to Open Source Initiative approved licenses.
!Website
!!~TiddlyWiki
This page licensed under the original [[TidddlyWiki BSD license|http://tiddlywiki.com/#OpenSourceLicense]]. No further copyright is claimed on the content by mirage335.
!!~MediaWiki
[[For compatibility with Wikipedia|http://en.wikipedia.org/wiki/Wikipedia:Mirrors_and_forks]], the Creative Commons Attribution Share Alike license is used.

!Policy
!!Automatic
Resources without an explicit license declaration are automatically in the public domain.

!!Small
Small projects and libraries will be explicitly given an [[all permissive license|http://www.opensource.org/licenses/mit-license.php]] to maximize adoption.

!!Large
Large projects will be given GPLv3. GPLv2 is questionable, as [[accidental violation of the GPLv2 can cause massive problems for large projects|http://www.gnu.org/licenses/quick-guide-gplv3.html]].

!!Contributions
The number of developers submitting code to a large project under a non-permissive license (eg. GPLv2) should be minimized to avert lock-in issues. Case in point: it would be [["technically quite hard"|http://kerneltrap.org/node/8369]] to dual license the linux kernel.
tags:
links: GPLv3GPLv2

DcTableOfContentsPlugin

/***
Slight modification by mirage335 to change toggle button text and fix top links on headers.

|Name|DcTableOfContentsPlugin|
|Author|[[Doug Compton|http://www.zagware.com/tw/plugins.html#DcTableOfContentsPlugin]]|
|Contributors|[[Lewcid|http://lewcid.org]], [[FND|http://devpad.tiddlyspot.com]], [[ELS|http://www.tiddlytools.com]]|
|Source|[[FND's DevPad|http://devpad.tiddlyspot.com#DcTableOfContentsPlugin]]|
|Version|0.4.1|
|~CoreVersion|2.2|
<<showtoc>>
!Description
This macro will insert a table of contents reflecting the headings that are used in a tiddler and will be automatically updated when you make changes.  Each item in the table of contents can be clicked on to jump to that heading.  It can be used either inside of select tiddlers or inside a system wide template.

A parameter can be used to show the table of contents of a seperate tiddler, &lt;<showtoc tiddlerTitle>&gt;

It will also place a link beside each header which will jump the screen to the top of the current tiddler.  This will only be displayed if the current tiddler is using the &lt;<showtoc>&gt; macro.

The appearance of the table of contents and the link to jump to the top can be modified using CSS.  An example of this is given below.

!Usage
!!Only in select tiddlers
The table of contents above is an example of how to use this macro in a tiddler.  Just insert &lt;<showtoc>&gt; in a tiddler on a line by itself.

It can also display the table of contents of another tiddler by using the macro with a parameter, &lt;<showtoc tiddlerTitle>&gt;
!!On every tiddler
It can also be used in a template to have it show on every tiddler.  An example ViewTemplate is shown below.

//{{{
<div class='toolbar' macro='toolbar -closeTiddler closeOthers +editTiddler permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'>Created <span macro='view created date DD-MM-YY'></span>, updated <span macro='view modified date DD-MM-YY'></span></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class="toc" macro='showtoc'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
//}}}

!Examples
If you had a tiddler with the following headings:
{{{
!Heading1a
!!Heading2a
!!Heading2b
!!!Heading3
!Heading1b
}}}
this table of contents would be automatically generated:
* Heading1a
** Heading2a
** Heading2b
*** Heading3
* Heading1b
!Changing how it looks
To modifiy the appearance, you can use CSS similiar to the below.
//{{{
.dcTOC ul {
	color: red;
	list-style-type: lower-roman;
}
.dcTOC a {
	color: green;
	border: none;
}

.dcTOC a:hover {
	background: white;
	border: solid 1px;
}
.dcTOCTop {
	font-size: 2em;
	color: green;
}
//}}}

!Revision History
!!v0.1.0 (2006-04-07)
* initial release
!!v0.2.0 (2006-04-10)
* added the [top] link on headings to jump to the top of the current tiddler
* appearance can now be customized using CSS
* all event handlers now return false
!!v0.3.0 (2006-04-12)
* added the ability to show the table of contents of a seperate tiddler
* fixed an error when a heading had a ~WikiLink in it
!!v0.3.5 (2007-10-16)
* updated formatter object for compatibility with TiddlyWiki v2.2 (by Lewcid)
!!v0.4.0 (2007-11-14)
* added toggle button for collapsing/expanding table of contents element
* refactored documentation
!To Do
* code sanitizing/rewrite
* documentation refactoring
* use shadow tiddler for styles
!Code
***/
//{{{

version.extensions.DcTableOfContentsPlugin= {
	major: 0, minor: 4, revision: 0,
	type: "macro",
	source: "http://devpad.tiddlyspot.com#DcTableOfContentsPlugin"
};

// Replace heading formatter with our own
for (var n=0; n<config.formatters.length; n++) {
	var format = config.formatters[n];
	if (format.name == 'heading') {
		format.handler = function(w) {
			// following two lines is the default handler
			var e = createTiddlyElement(w.output, "h" + w.matchLength);
			w.subWikifyTerm(e, this.termRegExp); //updated for TW 2.2+

			// Only show [top] if current tiddler is using showtoc
			if (w.tiddler && w.tiddler.isTOCInTiddler == 1) {
				// Create a container for the default CSS values
				var c = createTiddlyElement(e, "div");
				c.setAttribute("style", "font-size: 0.5em; color: blue; float:right;");
				// Create the link to jump to the top
				createTiddlyButton(c, " [top]", "Go to top of tiddler", window.scrollToTop, "dcTOCTop", null, null);
			}
		}
		break;
	}
}

config.macros.showtoc = {
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var text = "";
		var title = "";
		var myTiddler = null;

		// Did they pass in a tiddler?
		if (params.length) {
			title = params[0];
			myTiddler = store.getTiddler(title);
		} else {
			myTiddler = tiddler;
		}

		if (myTiddler == null) {
			wikify("ERROR: Could not find " + title, place);
			return;
		}

		var lines = myTiddler .text.split("\n");
		myTiddler.isTOCInTiddler = 1;

		// Create a parent container so the TOC can be customized using CSS
		var r = createTiddlyElement(place, "div", null, "dcTOC");
		// create toggle button
		createTiddlyButton(r, "TableOfContents", "show/collapse table of contents",
			function() { config.macros.showtoc.toggleElement(this.nextSibling); },
			"toggleButton")
		// Create a container so the TOC can be customized using CSS
		var c = createTiddlyElement(r, "div");

		if (lines != null) {
			for (var x=0; x<lines.length; x++) {
				var line = lines[x];
				if (line.substr(0,1) == "!") {
					// Find first non ! char
					for (var i=0; i<line.length; i++) {
						if (line.substr(i, 1) != "!") {
							break;
						}
					}
					var desc = line.substring(i);
					// Remove WikiLinks
					desc = desc.replace(/\[\[/g, "");
					desc = desc.replace(/\]\]/g, "");

					text += line.substr(0, i).replace(/[!]/g, '*');
					text += '<html><a href="javascript:;" onClick="window.scrollToHeading(\'' + title + '\', \'' + desc+ '\', event)">' + desc+ '</a></html>\n';
				}
			}
		}
		wikify(text, c);
	}
}

config.macros.showtoc.toggleElement = function(e) {
	if(e) {
		if(e.style.display != "none") {
			e.style.display = "none";
		} else {
			e.style.display = "";
		}
	}
};

window.scrollToTop = function(evt) {
	if (! evt)
		var evt = window.event;

	var target = resolveTarget(evt);
	var tiddler = story.findContainingTiddler(target);

	if (! tiddler)
		return false;

	window.scrollTo(0, ensureVisible(tiddler));

	return false;
};

window.scrollToHeading = function(title, anchorName, evt) {
	var tiddler = null;

	if (! evt)
		var evt = window.event;

	if (title) {
		story.displayTiddler(store.getTiddler(title), title, null, false);
		tiddler = document.getElementById(story.idPrefix + title);
	} else {
		var target = resolveTarget(evt);
		tiddler = story.findContainingTiddler(target);
	}

	if (tiddler == null)
		return false;
	
	var children1 = tiddler.getElementsByTagName("h1");
	var children2 = tiddler.getElementsByTagName("h2");
	var children3 = tiddler.getElementsByTagName("h3");
	var children4 = tiddler.getElementsByTagName("h4");
	var children5 = tiddler.getElementsByTagName("h5");

	var children = new Array();
	children = children.concat(children1, children2, children3, children4, children5);

	for (var i = 0; i < children.length; i++) {
		for (var j = 0; j < children[i].length; j++) {
			var heading = children[i][j].innerHTML;

			// Remove all HTML tags
			while (heading.indexOf("<") >= 0) {
				heading = heading.substring(0, heading.indexOf("<")) + heading.substring(heading.indexOf(">") + 1);
			}

			// Cut off the code added in showtoc for TOP
			heading = heading.substr(0, heading.length-6);

			if (heading == anchorName) {
				var y = findPosY(children[i][j]);
				window.scrollTo(0,y);
				return false;
			}
		}
	}
	return false
};
//}}}
links:

DefaultTiddlers

[[*Recruiting]]

MainMenu

<html><a href='http://mirage335-site.dyndns.org'><img src='http://dl.dropbox.com/u/2757918/avatarlogo.png'></a></html>
* [[Recruiting|*Recruiting]]

* <html><a href='http://mirage335-site.member.hacdc.org:6380/wiki/Category:Projects'>Projects</a></html>
* <html><a href='http://mirage335-site.member.hacdc.org:6380/wiki/Category:ReferenceCards'>ReferenceCards</a></html>

* [[ContactMe]]
* <html><a href='http://mirage335-site.member.hacdc.org:6380/forums'>Forum</a></html>
* <html><a href='http://mirage335-site.member.hacdc.org:6380/forums/viewforum.php?f=4'>Blog</a></html>
* <html><a href='http://mirage335-site.member.hacdc.org:6380/wiki/Main_Page'>Wiki</a></html>

* [[Copyleft]]
* [[SSL_Encryption]]
<html><hr></html>

PageTemplate

<div class='header' macro='gradient vert #390108 #900'>
<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='sidebar'>

<!--- <div id='mainMenu'> --->
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<!--- </div> --->

<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>

SSL_Encryption

All sites available through unencrypted HTTP for guest and amateur radio access.

Unencrypted login attempts will be redirected to SSL, however. ''Most browsers will then require the self-signed SSL certificate to be accepted manually, this is normal.''  The encryption exists only to deter passive offline attacks on users' passwords.

At all times, some filetypes (particularly images) may remain unencrypted, as they are served by ~CoralCDN.
tags:
links:

SideBarOptions

<html> <!--- mirage335_knockout <<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">> ---> </html>
links:

SideBarTabs

<html> <!--- mirage335_knockout <<tabs txtMainTab "Timeline" "Timeline" TabTimeline "All" "All tiddlers" TabAll "Tags" "All tags" TabTags "More" "More lists" TabMore>> ---> </html>
links:

SiteSubtitle

Maximum performance solutions. Veni, vidi, vici.
links:

SiteTitle

mirage335
links:

StyleSheet

/***
http://tiddlystyles.com/#theme:DevFire
Author: Clint Checketts
***/

/***
No longer identical to DevFire theme. Modified by mirage335.
***/

/*{{{*/
body {
background: #000;
}
/*}}}*/
/***
!Link styles /% ============================================================= %/
***/
/*{{{*/
a,
a.button,
#mainMenu a.button,
#sidebarOptions .sliderPanel a{
 color: #ffbf00;
 border: 0;
 background: transparent;
}

a:hover,
a.button:hover,
#mainMenu a.button:hover,
#sidebarOptions .sliderPanel a:hover
#sidebarOptions .sliderPanel a:active{
 color: #ff7f00;
 border: 0;
 border-bottom: #ff7f00 1px dashed;
 background: transparent;
 text-decoration: none;
}

#displayArea .button.highlight{
 color: #ffbf00;
 background: #4c4c4c;
}
/*}}}*/
/***
!Header styles /% ============================================================= %/
***/
/*{{{*/
.header{
 border-bottom: 2px solid #ffbf00;
 color: #fff;
}

.headerForeground a {
 color: #fff;
}

.header a:hover {
 border-bottom: 1px dashed #fff;
}
/*}}}*/
/***
!Main menu styles /% ============================================================= %/
***/
/*{{{*/
#mainMenu {
 color: #fff;
 background-color: #2F4F4F;
 position: static;
 width: auto;
 padding: 0;
 text-align: left;
}

#mainMenu h1{
 font-size: 1.1em;
}
#mainMenu li,#mainMenu ul{
 list-style: none;
 margin: 0;
 padding: 0;
}
/*}}}*/

/***
!Sidebar styles /% ============================================================= %/
***/
/*{{{*/
#sidebar {
 left: 0;
 color: #fff;
 border: 2px solid #ffbf00;
 border-width: 0 0 2px 2px;
 background-color: #4c4c4c;
}
#sidebarOptions {
 background-color: #4c4c4c;
 padding: 0;
}

#sidebarOptions a{
 margin: 0;
 color: #ffbf00;
 border: 0;
}
#sidebarOptions a:hover {
 color: #4c4c4c;
 background-color: #ffbf00;

}

#sidebarOptions a:active {
 color: #ffbf00;
 background-color: transparent;
}

#sidebarOptions .sliderPanel {
 background-color: #333;
 margin: 0;
}

#sidebarTabs {background-color: #4c4c4c;}
#sidebarTabs .tabSelected {
 padding: 3px 3px;
 cursor: default;
 color: #ffbf00;
 background-color: #666;
}
#sidebarTabs .tabUnselected {
 color: #ffbf00;
 background-color: #5f5f5f;
 padding: 0 4px;
}

#sidebarTabs .tabUnselected:hover,
#sidebarTabs .tabContents {
 background-color: #666;
}

.listTitle{color: #FFF;}
#sidebarTabs .tabContents a{
 color: #ffbf00;
}

#sidebarTabs .tabContents a:hover{
 color: #ff7f00;
 background: transparent;
}

#sidebarTabs .txtMoreTab .tabSelected,
#sidebarTabs .txtMoreTab .tab:hover,
#sidebarTabs .txtMoreTab .tabContents{
 color: #ffbf00;
 background: #4c4c4c;
}

#sidebarTabs .txtMoreTab .tabUnselected {
 color: #ffbf00;
 background: #5f5f5f;
}

.tab.tabSelected, .tab.tabSelected:hover{color: #ffbf00; border: 0; background-color: #4c4c4c;cursor:default;}
.tab.tabUnselected {background-color: #666;}
.tab.tabUnselected:hover{color:#ffbf00; border: 0;background-color: #4c4c4c;}
.tabContents {
 background-color: #4c4c4c;
 border: 0;
}
.tabContents .tabContents{background: #666;}
.tabContents .tabSelected{background: #666;}
.tabContents .tabUnselected{background: #5f5f5f;}
.tabContents .tab:hover{background: #666;}
/*}}}*/
/***
!Message area styles /% ============================================================= %/
***/
/*{{{*/
#messageArea {background-color: #666; color: #fff; border: 2px solid #ffbf00;}
#messageArea a:link, #messageArea a:visited {color: #ffbf00; text-decoration:none;}
#messageArea a:hover {color: #ff7f00;}
#messageArea a:active {color: #ff7f00;}
#messageArea .messageToolbar a{
 border: 1px solid #ffbf00;
 background: #4c4c4c;
}
/*}}}*/
/***
!Popup styles /% ============================================================= %/
***/
/*{{{*/
.popup {color: #fff; background-color: #4c4c4c; border: 1px solid #ffbf00;}
.popup li.disabled{color: #fff;}
.popup a {color: #ffbf00; }
.popup a:hover { background: transparent; color: #ff7f00; border: 0;}
.popup hr {color: #ffbf00; background: #ffbf00;}
/*}}}*/
/***
!Tiddler Display styles /% ============================================================= %/
***/
/*{{{*/
.title{color: #fff;}

h1 {
 color: #fff;
 background-color: #4c4c4c;
 border-bottom: 1px solid #333;
}

h2, h3, h4, h5 {
 color: #fff;
 background-color: transparent;
 border-bottom: 1px solid #333;
}

.subtitle{
 color: #666;
}

.viewer {color: #fff; }

.viewer table{background: #666; color: #fff;}

.viewer th {background-color: #996; color: #fff;}

.viewer pre, .viewer code {color: #ddd; background-color: #4c4c4c; border: 1px solid #ffbf00;}

.viewer hr {color: #666;}

.tiddler .button {color: #4c4c4c;}
.tiddler .button:hover { color: #ffbf00; background-color: #4c4c4c;}
.tiddler .button:active {color: #ffbf00; background-color: #4c4c4c;}

.toolbar {
 color: #4c4c4c;
}

.toolbar a.button,
.toolbar a.button:hover,
.toolbar a.button:active,
.editorFooter a{
 border: 0;
}

.footer {
 color: #ddd;
}

.selected .footer {
 color: #888;
}

.highlight, .marked {
 color: #000;
 background-color: #ffe72f;
}
.editorFooter {
 color: #aaa;
}

.tab{
-moz-border-radius-topleft: 3px;
-moz-border-radius-topright: 3px;
}

.tagging,
.tagged{
 background: #4c4c4c;
 border: 1px solid #4c4c4c; 
}

.selected .tagging,
.selected .tagged{
 background-color: #333;
 border: 1px solid #ffbf00;
}

.tagging .listTitle,
.tagged .listTitle{
 color: #fff;
}

.tagging .button,
.tagged .button{
 color: #ffbf00;
 border: 0;
 padding: 0;
}

.tagging .button:hover,
.tagged .button:hover{
background: transparent;
}

.selected .isTag .tagging.simple,
.selected .tagged.simple,
.isTag .tagging.simple,
.tagged.simple {
 float: none;
 display: inline;
 border: 0;
 background: transparent;
 color: #fff;
 margin: 0;
}

.cascade {
 background: #4c4c4c;
 color: #ddd;
 border: 1px solid #ffbf00;
}
/*}}}*/
/***
!Miscellaneous /% ============================================================= %/
***/
/*{{{*/
#displayArea {margin:1em 1em 0 14em;}
/*}}}*/
links: DevFire

ToolbarCommands

|~ViewToolbar|closeTiddler closeOthers > editTiddler fields syncing permalink references jump|
|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|
links:

ViewTemplate

<!--{{{-->
<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> -->
<hr>
<div class='tagging' macro='tagging'></div>
<!-- <div class='tagged' macro='tags'></div> -->
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
links: