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

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

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

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

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

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

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

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.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:0px; top:0px;}

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

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

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin: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:0px 3px 0px 3px;}

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

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

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

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

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

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#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>>
Linux is the L in [[LAMP]] and [[LASP]].

[[Distros]]

CreateDistro

[[Shells]]

[[Reset root password|ResetLinuxPassword]]

UbuntuPackagesKeptBack

UnixUndeleteFiles

[[Ubuntu use DVDs, MP3, restricted formats|https://help.ubuntu.com/community/RestrictedFormats]]

ArchFixPacmanError

ArchFixMirrorError

CreatePatchFiles

[[Debian, Ubuntu list packages|UbuntuListPackages]]

[[Fix for slow SSH|SlowSSH]]

[[Get Ubuntu Version|GetUbuntuVersion]]

[[File Compression|FileCompression]]

[[SabayonEmergeEquo]]

[[Detect File MIME Type|DetectMimeType]]

[[Get Directory Size|UnixDirectorySize]]

[[Show Free Space|UnixFreeSpace]]

[[Create Link|UnixCreateLink]]

[[Remove unnecessary config files|DebianPurgeConfigFiles]]

[[Search for pid by server port|UnixPIDServerPort]]

[[Setup SSH Client Authentication|SSHClientAuth]]

[[Delete unnecessary log files|UnixDeleteLogs]]

[[Debian, Ubuntu install git|UbuntuInstallGit]]

UnixKillProccessByPort

[[ViCommands]]

[[Linux Pocket Guide|http://www.amazon.com/Linux-Pocket-Guide-Daniel-Barrett/dp/0596006284/]]
A developer plaform akin to Cocoa, but with many redundant parts.

Includes:
* [[C#]]
* [[F#]]
* J#
* C++
* ~VisualBasic
[[Mirrors|http://www.gregsadetsky.com/aol-data/]]

In April 2006, AOL accidentally disclosed 21 million search queries.
See [[OS X Daily|http://osxdaily.com/2008/01/17/how-to-spoof-your-mac-address-in-mac-os-x/]] for more information.

@@Note: This spell must run with maximum privileges.@@
# Prepare tools. {{multiline{

Windows {{multiline{
# Install [[WireShark|http://www.wireshark.org/]].
# Install [[Macshift|http://devices.natetrue.com/macshift/]].
}}}
Mac OS X {{multiline{
# Install [[WireShark|http://www.wireshark.org/]].
# Add {{{/Applications/Wireshark.app/Contents/Resources/bin/}}} to {{{PATH}}} in {{{~/.profile}}}.
# Add {{{/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/}}} to {{{PATH}}} in {{{~/.profile}}}.
}}}
Unix, Linux {{multiline{
# Install [[WireShark|http://www.wireshark.org/]].
}}}
}}}
# Connect to the hotspot.
# Capture network traffic with {{{tshark}}}.
# Locate peer MAC addresses (Look for {{{xx:xx:xx:xx:xx:xx}}}).
# Disconnect from the hotspot. {{multline{

Windows
{{{
C:\>ipconfig /release INTERFACE
}}}
Mac OS X
{{{
$ sudo airport -z
}}}
Unix, Linux
{{{
$sudo dhclient -r INTERFACE
}}}
}}}
# Overwrite MAC address with peer MAC address {{multline{

Windows
{{{
C:\>macshift -i INTERFACE ADDRESS
}}}
Mac OS X, Unix, Linux
{{{
$sudo ifconfig INTERFACE ether ADDRESS
}}}
}}}
# Confirm change {{multline{

Windows
{{{
C:\>ipconfig /all
}}}
Mac OS X, Unix, Linux
{{{
$ sudo ifconfig INTERFACE | grep ether
}}}
}}}
# Overwrite until the change is confirmed.
# Reconnect to the hotspot. {{multiline{

Windows
{{{
C:\>netssh connect ssid=HOTSPOT
}}}
Mac OS X
{{{
$ sudo airport --associate HOTSPOT
}}}
Unix, Linux
{{{
$sudo iwconfig INTERFACE ap HOTSPOT
}}}
}}}
A popular open-source web server.

The A in [[LAMP]] and [[LASP]].
!Resources
* [[Homepage|http://apache.org/]]
* [[XAMMP|http://www.apachefriends.org/en/xampp.html]]
* [[Apache 2 Pocket Reference|http://www.amazon.com/Apache-Pocket-Reference-Programmers-Administrators/dp/0596518889/]]
!Message
{{{
[warn] NameVirtualHost has no VirtualHosts
}}}
!Solution
Remove or uncomment configuration lines in the virtual host configuration files, such as:
{{{
NameVirtualHost SOME_IP:80
NameVirtualHost SOME_IP:443
}}}
{{{
$ sudo a2enmod MODULE
}}}
!Message
{{{
[warn] module SOME_MODULE is already loaded, skipping
}}}
!Solution
Remove or comment out lines in {{{/etc/apache2/httpd.conf}}}, such as:
{{{
LoadModule rewrite_module modules/mod_rewrite.so
}}}
InstallAppleScript

AppleScriptSuDo

AppleScriptBackgroundCommand
!Resources
* [[Mac OS X Reference Library|http://developer.apple.com/mac/library/navigation/]]
{{{
do shell script "program &>/dev/null &"
}}}
{{{
do shell script "blah blah blah" with administrator privileges
}}}
To enable mirrors, open {{{/etc/pacman.d/mirrorlist}}} and locate your geographic region. Uncomment mirrors you would like to use.
If Pacman reports the error {{{could not find or read package}}}, run the following command:
{{{
$ su -
# pacman -Syu
}}}
DownloadYouTube
!Resources
* [[FFmpeg|http://ffmpeg.org/]]
* [[ffmpegX|http://www.ffmpegx.com/]]
* [[GOM Player|http://www.gomlab.com/]]
* [[HandBrake|http://handbrake.fr/]]
* [[Miro|http://www.getmiro.com/]]
* [[MPlayer|http://www.mplayerhq.hu/]]
* [[MPlayer Portable|http://portableapps.com/apps/music_video/mplayer_portable]]
* [[Perian|http://perian.org/]]
* [[Songbird|http://www.getsongbird.com/]]
* [[SUPER|http://www.erightsoft.com/SUPER.html]]
* [[VLC|http://www.videolan.org/]]
* [[Winamp|http://www.winamp.com/]]
[[Homepage|http://www.bittorrent.com/]]

A peer-to-peer file sharing system designed to ease bandwidth burdens.

Ubuntu and many other Linux [[Distros]] are distributed through ~BitTorrent.
!Clients
* [[µTorrent|http://www.bittorrent.com/]]
* [[Transmission|http://www.transmissionbt.com/]]
* [[Vuze|http://www.vuze.com/]]
* [[BitLet|http://www.bitlet.org/]]
* [[Miro|http://www.getmiro.com/]]
* [[Torrent Relay|http://www2.torrelay.com/]]
!Trackers
* [[The Pirate Bay|http://thepiratebay.org/]]
* [[Demonoid|http://www.demonoid.com/]]
* [[isoHunt|https://isohunt.com/]]
* [[Vertor|http://www.vertor.com/]]
* [[btjunkie|http://btjunkie.org/]]
* [[Monova|http://www.monova.org/]]
* [[BitTorrent Monster|http://www.btmon.com/]]
* [[KickassTorrents|http://www.kickasstorrents.com/]]
* [[OneBigTorrent|http://onebigtorrent.org/]]
* [[torrentHound|http://www.torrenthound.com/]]
* [[Torrentz|http://www.torrentz.com/]]
* [[Bitenova|http://www.bitenova.nl/]]
* [[Legit Torrents|http://www.legittorrents.info/]]
* [[ClearBits|http://www.clearbits.net/]]
!No boards required
* Charades
* Boggle
* Pictionary
* Psychiatrist
* What Were You Thinking?
A [[turing-complete|UTM]] language in 8 symbols: {{{+ - < > [ ] , .}}}

See InstallingBrainfuck.
!Resources
* [[Wikipedia|http://en.wikipedia.org/wiki/Brainfuck]]
* [[Online Brainfuck Interpreter|http://koti.mbnet.fi/villes/php/bf.php]]

Example program {{{99bottles.bf}}}:
{{{
>+++++++++[<+++++++++++>-]<[>[-]>[-]<<[>+>+<<-]>>[<<+>>-]>>>
[-]<<<+++++++++<[>>>+<<[>+>[-]<<-]>[<+>-]>[<<++++++++++>>>+<
-]<<-<-]+++++++++>[<->-]>>+>[<[-]<<+>>>-]>[-]+<<[>+>-<<-]<<<
[>>+>+<<<-]>>>[<<<+>>>-]>[<+>-]<<-[>[-]<[-]]>>+<[>[-]<-]<+++
+++++[<++++++<++++++>>-]>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>-
]<<<<<<.>>[-]>[-]++++[<++++++++>-]<.>++++[<++++++++>-]<++.>+
++++[<+++++++++>-]<.><+++++..--------.-------.>>[>>+>+<<<-]>
>>[<<<+>>>-]<[<<<<++++++++++++++.>>>>-]<<<<[-]>++++[<+++++++
+>-]<.>+++++++++[<+++++++++>-]<--.---------.>+++++++[<------
---->-]<.>++++++[<+++++++++++>-]<.+++..+++++++++++++.>++++++
++[<---------->-]<--.>+++++++++[<+++++++++>-]<--.-.>++++++++
[<---------->-]<++.>++++++++[<++++++++++>-]<++++.-----------
-.---.>+++++++[<---------->-]<+.>++++++++[<+++++++++++>-]<-.
>++[<----------->-]<.+++++++++++..>+++++++++[<---------->-]<
-----.---.>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>>+++
+[<++++++>-]<--.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<.
><+++++..--------.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++
++++++++++++.>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<++
+++++++>-]<--.---------.>+++++++[<---------->-]<.>++++++[<++
+++++++++>-]<.+++..+++++++++++++.>++++++++++[<---------->-]<
-.---.>+++++++[<++++++++++>-]<++++.+++++++++++++.++++++++++.
------.>+++++++[<---------->-]<+.>++++++++[<++++++++++>-]<-.
-.---------.>+++++++[<---------->-]<+.>+++++++[<++++++++++>-
]<--.+++++++++++.++++++++.---------.>++++++++[<---------->-]
<++.>+++++[<+++++++++++++>-]<.+++++++++++++.----------.>++++
+++[<---------->-]<++.>++++++++[<++++++++++>-]<.>+++[<----->
-]<.>+++[<++++++>-]<..>+++++++++[<--------->-]<--.>+++++++[<
++++++++++>-]<+++.+++++++++++.>++++++++[<----------->-]<++++
.>+++++[<+++++++++++++>-]<.>+++[<++++++>-]<-.---.++++++.----
---.----------.>++++++++[<----------->-]<+.---.[-]<<<->[-]>[
-]<<[>+>+<<-]>>[<<+>>-]>>>[-]<<<+++++++++<[>>>+<<[>+>[-]<<-]
>[<+>-]>[<<++++++++++>>>+<-]<<-<-]+++++++++>[<->-]>>+>[<[-]<
<+>>>-]>[-]+<<[>+>-<<-]<<<[>>+>+<<<-]>>>[<<<+>>>-]<>>[<+>-]<
<-[>[-]<[-]]>>+<[>[-]<-]<++++++++[<++++++<++++++>>-]>>>[>+>+
<<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>[-]>[-]++++[<++++++++>
-]<.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<.><+++++..---
-----.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++++++++++++++
.>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<+++++++++>-]<-
-.---------.>+++++++[<---------->-]<.>++++++[<+++++++++++>-]
<.+++..+++++++++++++.>++++++++[<---------->-]<--.>+++++++++[
<+++++++++>-]<--.-.>++++++++[<---------->-]<++.>++++++++[<++
++++++++>-]<++++.------------.---.>+++++++[<---------->-]<+.
>++++++++[<+++++++++++>-]<-.>++[<----------->-]<.+++++++++++
..>+++++++++[<---------->-]<-----.---.+++.---.[-]<<<]
}}}
Strikingly similar to [[Java]], and even more similar to J#.

WinSparkleFix

Part of [[.NET]]
!Resources
* [[Visual Studio C# Express|http://www.microsoft.com/express/Downloads/#2010-Visual-CS]]
* [[Code Converter|http://converter.telerik.com/]]
* [[WinSparkle|http://winsparkle.org/]]
* [[C# Pocket Reference|http://www.amazon.com/3-0-Pocket-Reference-Instant-Programmers/dp/0596519222/]]
One step above assembly programming.

InstallingC

[[Makefiles|Makefiles]]
!Resources
* [[Ch: a C/C++ interpreter|http://www.softintegration.com/]]
* [[c-repl|http://neugierig.org/software/c-repl/]]
* [[The Development of the C Language|http://cm.bell-labs.com/cm/cs/who/dmr/chist.html]]
* [[Google C++ Style Guide|http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml]]
* [[The Definitive C++ Book Guide and List|http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list]]
* [[The C Programming Language|http://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628/]]
* [[C++ The Core Language|http://www.amazon.com/C-Core-Language-Nutshell-Handbooks/dp/156592116X]]
* [[Practical C Programming|http://www.amazon.com/Practical-Programming-3rd-Steve-Oualline/dp/1565923065]]
* [[C++ Cookbook|http://www.amazon.com/Cookbook-Cookbooks-OReilly-Ryan-Stephens/dp/0596007612]]
* [[C Pocket Reference|http://www.amazon.com/C-Pocket-Reference-Peter-Prinz/dp/0596004362/]]
* [[C++ Pocket Reference|http://www.amazon.com/C-Pocket-Reference-Kyle-Loudon/dp/0596004966]]
[[css Zen Garden|http://www.csszengarden.com/]]

CSSWrapPre
{{{
pre {
   white-space: -moz-pre-wrap;
   white-space: -pre-wrap;
   white-space: -o-pre-wrap;
   white-space: pre-wrap;
   word-wrap: break-word;
}
}}}
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #f00
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
!Resourecs
* [[The Hello World Collection|http://www.roesler-ac.de/wolfram/hello.htm]]
* [[List of "Hello World" codes|http://hellowiki.org/index.php?title=List_of_%22Hello_World!%22_codes]]
* [[Syntax Across Languages|http://merd.sourceforge.net/pixel/language-study/syntax-across-languages/]]
* [[Stack Overflow:File IO in Every Programming Language|http://stackoverflow.com/questions/3538156/file-i-o-in-every-programming-language-closed]]
!Hello World
|!Language|!Code|
|Applescript|{{{tell application "Finder" to "Hello World"}}}|
|Brainfuck|{{{++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++. >+. +++++++. .+++. >++. <<+++++++++++++++. >. +++. ------. --------. >>.}}}|
|~BeanShell|{{{System.out.println("Hello World");}}}|
|C|{{{int main(int argc, char **argv) { printf("Hello World\n");}}}|
|C#|{{{public class Hello { public static void Main(string[] args) { System.Console.WriteLine("Hello, World"); }} }}}|
|C++|{{{int main(int argc, char **argv) { cout << "Hello World" << endl;}}}|
|D|{{{import std.stdio; void main(string[] args) { writefln("Hello World, Reloaded"); } }}}|
|GNU Smalltalk|{{{'Hello World' displayNl}}}|
|Haskell|{{{main = putStrLn "Hello World"}}}|
|HTML|{{{<html><head><title>Hello World</title></head><body><h1>Hello World</h1></body></html>}}}|
|Java|{{{public class Hello {public static void main(String[] args) {System.out.println("Hello World");}} }}}|
|~JavaScript|{{{alert("Hello World");}}}|
|~LaTeX|{{{\documentclass{article} \title{Hello World} \author{Merf} \begin{document} \maketitle Hello World \end{document} }}}|
|Lua|{{{print("Hello World")}}}|
|MATLAB|{{{printf("Hello, World\n");}}}|
|~NewLISP|{{{(println "Hello World") (exit)}}}|
|Objective C|{{{int main() { printf("Hello World\n");}}}|
|Octave|{{{printf("Hello, World\n");}}}|
|Perl|{{{print "Hello World\n";}}}|
|PHP|{{{<? echo "<p>Hello World</p>"; ?>}}}|
|Python|{{{print "Hello World"}}}|
|Ruby|{{{puts "Hello World"}}}|
|Scheme|{{{(display "Hello World")}}}|
|Shell|{{{echo "Hello World"}}}|
!Comments
|!Language|!Single line|!Multiline|
|Applescript|{{{-- comment}}}|{{{(* comment *)}}}|
|Brainfuck|{{{comment}}}|{{{comment}}}|
|~BeanShell|{{{// comment}}}|{{{/* comment */}}}|
|C|{{{// comment}}}|{{{/* comment */}}}|
|C#|{{{// comment}}}|{{{/* comment */}}}|
|C++|{{{// comment}}}|{{{/* comment */}}}|
|D|{{{// comment}}}|{{{/* comment */}}}|
|GNU Smalltalk|{{{"comment"}}}|{{{"comment"}}}|
|HTML|{{{<!-- comment -->}}}|{{{<!-- comment -->}}}|
|Haskell|{{{-- comment}}}|{{{ {- comment -} }}}|
|Java|{{{// comment}}}|{{{/* comment */}}}|
|~JavaScript|{{{// comment}}}|{{{/* comment */}}}|
|~LaTeX|{{{% comment}}}|{{{\begin{comment} comment \end{comment} }}}|
|Lua|{{{-- comment}}}|{{{--[[ comment ]]--}}}|
|MATLAB|{{{% comment}}}|{{{%{ comment %}}}}|
|~NewLISP|{{{; comment}}}|(none)|
|Objective C|{{{// comment}}}|{{{/* comment */}}}|
|Octave|{{{% comment}}}|{{{%{ comment %}}}}|
|Perl|{{{# comment}}}|(none)|
|PHP|{{{// comment}}}|{{{/* comment */}}}|
|Python|{{{# comment}}}|{{{""" comment """}}}|
|Ruby|{{{# comment}}}|{{{=begin comment =end}}}|
|Scheme|{{{; comment}}}|{{{#| comment |#}}}|
|Shell|{{{# comment}}}|(none)|
!Arrays
|!Language|!Code|
|Applescript|{{{set a to {1, 2, 3} }}}|
|C|{{{int[] a={1, 2, 3};}}}|
|C#|{{{int[] a=new int[3] {1, 2, 3};}}}|
|C++|{{{int[] a={1, 2, 3};}}}|
|Haskell|{{{let a = [1, 2, 3]}}}|
|Java|{{{int[] a={1, 2, 3};}}}|
|~JavaScript|{{{var a={1, 2, 3};}}}|
|Lua|{{{a={1, 2, 3} }}}|
|MATLAB|{{{a=[1, 2, 3]}}}|
|~NewLISP|{{{(let ((a '(1 2 3)))}}}|
|Objective C|{{{NSArray *a=[[NSArray alloc] initWithObjects: 1, 2, 3, nil];}}}|
|Octave|{{{a=[1, 2, 3]}}}|
|Perl|{{{my $a=(1, 2, 3);}}}|
|PHP|{{{$a=array(1, 2, 3);}}}|
|Python|{{{a=[1, 2, 3]}}}|
|Shell|{{{a=( 1 2 3 )}}}|
!Command line arguments
|!Language|!Code|
|C|{{{int i; for (i=0; i<argc; i++) printf("%s\n", argv[i]);}}}|
|C#|{{{for (int i=0; i<args.Length; i++) Console.WriteLine("{0}", args[i]);}}}|
|C++|{{{int i; for (i=0; i<argc; i++) cout << argv[i] << endl;}}}|
|GNU Smalltalk|{{{main:argv; argv; do:[:a|Transcript nextPutAll:a] separatedBy:[Transcript nextPutAll:' '].; Transcript nl!}}}|
|Haskell|{{{module Main( main ) where import System( getArgs ); main = do; args <- getArgs; print $ show args}}}|
|Java|{{{for (String arg:args) System.out.println(arg);}}}|
|Lua|{{{for i=1, #arg do print(arg[i]) end}}}|
|MATLAB|{{{args=argv(); for i = 1:nargin; printf("%s ", args{i}); endfor}}}|
|~NewLISP|{{{(dolist (arg (main-args)) (println arg))}}}|
|Objective C|{{{int i; for (i=0; i<argc; i++) printf("%s\n", argv[i]);}}}|
|Octave|{{{args=argv(); for i = 1:nargin; printf("%s ", args{i}); endfor}}}|
|Perl|{{{foreach $i (0 .. $#ARGV) { print "$ARGV[$i]\n"; } }}}|
|Python|{{{import sys; for arg in sys.argv: print arg}}}|
|Shell|{{{echo $*}}}|
!Module
|!Language|!Code|
|Lua|{{{function main(arg) end; if type(package.loaded[(...)]) ~= "userdata" then main(arg); else module(..., package.seeall) end}}}|
|~NewLISP|{{{(context 'MODULE) (define (main) (exit)) (if (find "module" (main-args 1)) (main)) (context MAIN)}}}|
|Python|{{{def main: pass; if __name__=="__main__": main()}}}|
|Ruby|{{{def main; end; if __FILE__==$0; begin; main; rescue Interrupt=>e; nil; end; end}}}|
!Script directory
|!Language|!Code|
|Java|{{{import java.net.URL; System.out.println(getClass().getProtectionDomain().getCodeSource().getLocation().toString().split("file:/")[1]);}}}|
|Perl|{{{print dirname($0)."\n";}}}|
|PHP|{{{echo dirname(__FILE__);}}}|
|Python|{{{import os.path; print os.path.dirname(__file__)}}}|
|Ruby|{{{puts File.dirname($0)}}}|
|Shell|{{{echo "$(dirname -- "$0")"}}}|
SSLWorksOnSomePages

[[Joomla|http://www.joomla.org/]]

[[MODx|http://modxcms.com/]]

[[Drupal|http://drupal.org/]]

FrogCustom404Page

[[Frog|http://www.madebyfrog.com/]]

[[Trac|http://trac.edgewall.org/]]

[[MoinMoin|http://moinmo.in/]]

[[MediaWiki|http://www.mediawiki.org/wiki/MediaWiki]]

[[Jaws|http://jaws-project.com/]]
!Resources
* [[Remastersys|http://remastersys.sourceforge.net/remastersystool.html]]
* [[SUSE Studio|http://susestudio.com/]]
* [[UCK|http://uck.sourceforge.net/]]
* [[Revisor|http://revisor.fedoraunity.org/]]
* [[Slax|http://www.slax.org/]]
* [[Wikipedia: List of remastering software|http://en.wikipedia.org/wiki/List_of_remastering_software]]
* [[List of LiveDistro Remastering Software|http://www.livedistro.org/software/remaster-tools]]
{{{diff -crB DIRECTORY1 DIRECTORY2 > FILE.patch}}}
!Error
{{{
Call to undefined function curl_init()
}}}
!Solution
Install {{{php5-curl}}}.
!!Debian, Ubuntu
{{{
$ sudo apt-get install php5-curl
}}}
Digital Mars' object-oriented C variant.
!Resources
* [[Homepage|http://www.digitalmars.com/d/]]
* [[LanguagesVersusD|http://www.wikiservice.at/d/wiki.cgi?LanguagesVersusD]]
* [[The D Programming Language|http://www.amazon.com/D-Programming-Language-Andrei-Alexandrescu/dp/0321635361/]]
!Automatic
{{{
$ sudo dpkg -l | grep ^rc | cut -d' ' -f3| sudo xargs dpkg -P
}}}
!Manual
{{{
$ dpkg --list | grep ^rc
$ sudo dpkg --purge PACKAGE_NAME
}}}
!Sources
* [[Phenoelit DPL|http://www.phenoelit-us.org/dpl/dpl.html]]
* [[CIRT.net|http://cirt.net/passwords]]
* [[CyXla|http://www.cyxla.com/passwords/passwords.html]]
* [[defaultpassword.com|http://www.defaultpassword.com/]]
!List
|!Name|!User|!Password|
|3com|tech|tech|
|Acer|(none)|(none)|
|Apple|root|alpine|
|Apple|mobile|dottie|
|Apple|(none)|xyzzy|
|Apple|(none)|public|
|ASUS|admin|admin|
|ASUS|adsl|adsl1234|
|BEA|system|weblogic|
|Belkin|admin|(none)|
|Busybox|admin|admin|
|Cisco|Cisco|Cisco|
|Cisco|(none)|cisco|
|Cisco|(none)|public|
|Cisco|(none)|private|
|Cisco|(none)|secret|
|Cisco|admin|tsunami|
|Cisco|Administrator|changeme|
|Cisco|sa|(none)|
|Cisco|admin|admin|
|Cisco|admin|cisco|
|Cisco|admin|changeme|
|Cisco|root|attack|
|Cisco|netrangr|attack|
|Compaq|administrator|administrator|
|Compaq|(none)|Compaq|
|~D-Link|(none)|admin|
|~D-Link|(none)|(none)|
|~D-Link|admin|(none)|
|~D-Link|Admin|(none)|
|~D-Link|admin|year2000|
|~D-Link|admin|public|
|DEC|1|1|
|DEC|1|syslib|
|DEC|1|operator|
|DEC|1|manager|
|DEC|2|maintain|
|DEC|2|syslib|
|DEC|2|manager|
|DEC|2|operator|
|DEC|30|games|
|DEC|5|games|
|DEC|7|maintain|
|DEC|(none)|ACCESS|
|DEC|SYSTEM|SYSTEM|
|DEC|SYSTEM|MANAGER|
|DEC|(none)|SYSTEM|
|DEC|BATCH|BATCH|
|DEC|accounting|accounting|
|DEC|boss|boss|
|DEC|demo|demo|
|DEC|manager|manager|
|DEC|~PDP11|~PDP11|
|DEC|~PDP8|~PDP8|
|DEC|software|software|
|DEC|(none)komprie|
|Dell|(none)|admin|
|Dell|admin|admin|
|Dell|root|calvin|
|Ericsson|netman|netman|
|Gateway|admin|admin|
|IRC|(none)|FOOBAR|
|Juniper|netscreen|netscreen|
|Juniper|admin|netscreen|
|Linksys|admin|admin|
|Linksys|(none)|admin|
|~McAfee|admin|admin123|
|Microsoft|Administrator|Administrator|
|Microsoft|Administrator|(none)|
|Microsoft|sa|(none)|
|Microsoft|Guest|Guest|
|Microsoft|Guest|(none)|
|Microsoft|MSHOME|MSHOME|
|Microsoft|free user|user|
|~MySQL|root|(none)|
|Netgear|admin|password|
|Netgear|Admin|password|
|Netgear|admin|admin|
|Netgear|admin|setup|
|Netgear|admin|1234|
|Netgear|(none)|zebra|
|~NeXT|root|~NeXT|
|Nokia|root|rootme|
|Nokia|Telecom|Telecom|
|Nortell|ro|ro|
|Nortell|(none)|ro|
|Nortell|rw|rw|
|Nortell|(none)|rw|
|Nortell|rwa|rwa|
|Nortell|(none)|rwa|
|Nortell|l2|l2|
|Nortell|(none)|l2|
|Nortell|l3|l3|
|Nortell|(none)|l3|
|Nortell|admin|root|
|Nortell|user|user|
|Novell|servlet|manager|
|Novell|admin|novell|
|Novell|sadmin|(none)|
|Novell|ADMIN|admin|
|Novell|ADMIN|(none)|
|Novell|ARCHIVIST|ARCHIVIST|
|Novell|ARCHIVIST|(none)|
|Novell|BACKUP|BACKUP|
|Novell|BACKUP|(none)|
|Novell|~CHEY_ARCHSVR|~CHEY_ARCHSVR|
|Novell|~CHEY_ARCHSVR|(none)|
|Novell|FAX|FAX|
|Novell|FAX|(none)|
|Novell|FAXWORKS|FAXWORKS|
|Novell|FAXWORKS|(none)|
|Novell|GATEWAY|GATEWAY|
|Novell|GATEWAY|(none)|
|Novell|GUEST|GUESTGUEST|
|Novell|GUEST|GUESTGUE|
|Novell|GUEST|GUEST|
|Novell|GUEST|(none)|
|Oracle|oracle|oracle|
|Oracle|sys|sys|
|Oracle|ADMINISTRATOR|ADMINISTRATOR|
|Oracle|ADMINISTRATOR|admin|
|Oracle|sys|change_on_install|
|Oracle|weblogic|weblogic|
|Oracle|system|manager|
|Oracle|system|password|
|Oracle|internal|oracle|
|Oracle|Scott|Tiger|
|phpMyAdmin|root|(none)|
|rPath|admin|password|
|Sony|admin|admin|
|Sun|admin|admin|
|Sun|root|t00lk1t|
|Sun|root|changeme|
|Symantec|(none)|symantec|
|Symantec|admin|(none)|
|Toshiba|(none)|24Banc81|
|Toshiba|(none)|Toshiba|
|Toshiba|(none)|toshy99|
|Trend Micro|admin|admin|
|Tumbleweed|Admin|~SECRET123|
|UNIX|root|root|
|UNIX|root|(none)|
|UNIX|sys|system|
|UNIX|sys|sys|
|UNIX|sys|bin|
|UNIX|adm|adm|
|UNIX|admin|admin|
|UNIX|sysadmin|sysadmin|
|UNIX|sysadm|sysadm|
|UNIX|sysadm|admin|
|UNIX|sysbin|sysbin|
|UNIX|system_admin|system_admin|
|UNIX|system_admin|(none)|
|UNIX|administrator|administrator|
|UNIX|administrator|(none)|
|UNIX|anon|anon|
|UNIX|install|install|
|UNIX|setup|setup|
|UNIX|mountfs|mountfs|
|UNIX|mountfsys|mountfsys|
|UNIX|mountsys|mountsys|
|UNIX|www|www|
|UNIX|news|news|
|UNIX|nobody|nobody|
|UNIX|operator|operator|
|UNIX|operator|(none)|
|UNIX|oracle|(none)|
|U.S. Robotics|admin|(none)|
|U.S. Robotics|(none)|amber|
|Vonage|user|user|
|Westell|admin|admin|
|Westell|admin|password|
|Westell|admin|sysAdmin|
|Zyxel|(none)|1234|
# Save the following as {{{delete-pagefile.reg}}}: {{multiline{
{{{
REGEDIT5

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management] ClearPageFileAtShutdown="1"
}}}
}}}
# Open {{{delete-pagefile.reg}}}.
A free bookmark service.
!Resources
* [[Homepage|http://delicious.com/]]
* [[Bookmarklets|http://delicious.com/help/bookmarklets]]
{{{
$ file -bi FILE
}}}
Everything but the domain and top level domain (tld) are optional.
{{{
protocol://username:password@subdomain.domain.tld:port/path?parameter=value#fragment
}}}
!Source
[[Matt Cutts|http://www.mattcutts.com/blog/seo-glossary-url-definitions/]]
!Windows
* [[WinDirStat|http://windirstat.info/]]
* [[SpaceSniffer|http://www.uderzo.it/main_products/space_sniffer/]]
!Mac OS X
* [[Disk Inventory X|http://www.derlien.com/]]
!Linux
* [[KDirStat|http://kdirstat.sourceforge.net/]]
* [[BackTrack|http://www.backtrack-linux.org/]]
* [[Damn Small Linux|http://www.damnsmalllinux.org/]]
* [[Damn Vulnerable Linux|http://www.damnvulnerablelinux.org/]]
* [[Darik's Boot and Nuke|http://www.dban.org/]]
* [[Fedora|http://fedoraproject.org/]]
* [[FreeBSD|http://www.freebsd.org/]]
* [[FreeDOS|http://www.freedos.org/]]
* [[GeeXboX|http://www.geexbox.org/]]
* [[Gentoo|http://www.gentoo.org/]]
* [[GParted|http://gparted.sourceforge.net/]]
* [[Haiku|http://www.haiku-os.org/]]
* [[Knoppix|http://www.knoppix.net/]]
* [[MINIX|http://www.minix3.org/]]
* [[Offline NT Password & Registry Editor|http://pogostick.net/~pnh/ntpasswd/]]
* [[OpenBSD|http://www.openbsd.org/]]
* [[OpenSolaris|http://www.opensolaris.com/]]
* [[OpenSUSE|http://www.opensuse.org/en/]]
* [[PureDarwin|http://www.puredarwin.org/]]
* [[Slax|http://www.slax.org/]]
* [[SliTaz|http://www.slitaz.org/]]
* [[Tiny Core Linux|http://www.tinycorelinux.com/]]
* [[tomsrtbt|http://www.toms.net/rb/]]
* [[Ubuntu|http://www.ubuntu.com/]]
[[KeepVid|http://keepvid.com/]]
!Procedure
# Preparation. Print out any guides you intend to use. Record installation ~CDs at low speeds. Have a mouse ready, as neither Linux nor Windows will recognize two-finger gestures, Control+Clicking, touchpad scrolling, etc. at first.
# Install Leopard first. Triple booting can be done with Tiger, but Leopard includes Boot Camp, which makes this process much easier. Free tools such as Gparted do not apply here. {{{Gparted has a bug which causes NTFS partitions created with it to be unusable for Vista.}}}
# Run the Boot Camp Assistant to make space for Windows. Leave at least 10GB available for Mac and at least 15GB for Windows.
# Install Vista or 7. During the installation process, Windows will complain about the various partitions. Identify by size the partition that you created earlier in step 3. You may have to reformat that partition. Once the install process is over, update Windows.
# At this point, you can switch between Mac and Windows by holding the Option key while booting and choosing your Mac drive or your Windows drive. You can default to one or the other using the Startup Disk program, which is accessible in either OS.
# Install [[rEFIt|http://refit.sourceforge.net/]]. This is a graphical bootloader which will allow you to choose which operating system you want to use each time your turn on your computer. You may need to run /efi/refit/enable.sh  before it shows up. Examine the GPT and MBR tables carefully before syncing; by mistake you can erase your Vista/7 installation.
# Use the {{{diskutil}}} command in a Mac terminal to shrink the Mac partition and make space for Linux. Adjust the instructions to fit your hard drive: use more or less space between the two. E.g., your hard drive may hold 80GB or so. If you use up half of this for Windows, you will have 40GB for Mac and 40GB for Windows. To fit in Linux, you will shrink the Mac space even further. To give 5GB for Linux when you currently have 40GB for Mac, use something like {{{diskutil resizeVolume /dev/disk0s2 35G}}}. Replace {{{/dev/disk0s2}}} with your root device (run mount and you will see a device like {{{/dev/disk0s2 on / (hfs, local, journaled))}}}.
# Begin installing Linux. After the screens for language, time zone, and keyboard layout, choose to manually partition. Again, identify the partition to install Linux by size. It should be between the Mac and Windows partitions. There are limits to how many partitions there can be (4), so you may want to have only a root partition and not a swap partition. The installer may complain that there is no swap partition. Tell it to ignore this.
# When the installation settings are displayed and Linux is waiting to begin the installation, open the Advanced section and change where the boot manager is to be installed. {{{If you install GRUB on a partition other than the Linux root, Mac and Windows may no longer load. If you do not install GRUB, rEFIt will not show Linux as an option to boot. Instead, rEFIt will display a bland icon and the label "legacy OS".}}} The syntax starts drives and partitions at zero, thus the first GRUB hard drive is {{{hda0}}} and the first partition on the first hard drive is {{{(hda0,0)}}}, the second partition is {{{(hda0,1)}}}, the third partition is {{{(hda0,2)}}}  and so on. If you are installing Linux on {{{/dev/sda3}}}, install the boot manager at {{{(hda0,2)}}}. Don't use any spaces here.
# Because of the disconnect between the GPT and MBR tables, Ubuntu will fail to boot until you use rEFIt to sync the tables. Expect the first boot after the sync to fail. You will be staring at a penguin icon for a long time, so don't be afraid to forcefully reboot. After that, Linux will boot normally.
# Install drivers, etc. for Ubuntu as per the [[Community Docs|https://help.ubuntu.com/community/MacBook]].
!Fixes
* FixMacWindowsDrivers
* FixBootCampResize
!Resources
* [[Triple Booting Leopard, Vista, and/or Ubuntu Linux|http://mcandre.blogspot.com/2008/04/triple-booting-leopard-vista-ubuntu.html]]
* [[Further|http://delicious.com/mcandre/triple+boot]] reading.
[[Gmail|http://mail.google.com/]]

[[Hotmail|http://mail.live.com/]]

[[Spam.la|http://spam.la/]]

[[Yahoo Mail|http://mail.yahoo.com/]]
!Game Consoles
* [[Boycott Advance|http://boycottadvance.emuunlim.com/]]
* [[iPhone NES Emulator|http://code.google.com/p/iphonenes/]]
* [[KiGB|http://kigb.emuunlim.com/downloads.htm]]
* [[Nestopia|http://nestopia.sourceforge.net/]]
!Computers
* [[DOSBox|http://www.dosbox.com/]]
* [[Mini vMac|http://minivmac.sourceforge.net/]]
* [[Qemu|http://wiki.qemu.org/]]
* [[Q|http://www.kju-app.org/]]
* [[SPIM|http://pages.cs.wisc.edu/~larus/spim.html]]
* [[VirtualBox|http://www.virtualbox.org/]]
* [[VMware Workstation|http://www.vmware.com/products/workstation/]]
* [[VMware Fusion|http://www.vmware.com/products/fusion/]]
* [[VMware Player|http://www.vmware.com/products/player/]]
Microsoft's answer to GNUCommonLisp.
!Resources
* [[Homepage|http://msdn.microsoft.com/en-us/fsharp/default.aspx]]
* [[Programming F#|http://www.amazon.com/Programming-comprehensive-writing-complex-problems/dp/0596153643/]]
FalloutEnableAddons
!Addons
* [[100 Percent Repair Traders|http://www.fallout3nexus.com/downloads/file.php?id=11712]]
* [[999 Weight Limit|http://www.fallout3nexus.com/downloads/file.php?id=1730]]
* [[Blanket|http://www.fallout3nexus.com/downloads/file.php?id=5279]]
* [[Bobbleheads|http://www.fallout3nexus.com/downloads/file.php?id=7990]]
* [[Crowbar|http://www.fallout3nexus.com/downloads/file.php?id=1480]]
* [[Ice Cold Nuka Colas for Quantum Chemist|http://www.fallout3nexus.com/downloads/file.php?id=6139]]
* [[No Repair Needed|http://www.fallout3nexus.com/downloads/file.php?id=60]]
# Open {{{ Fallout -> Data }}}.
# Check all the checkboxes.
!Software
* [[7-Zip|http://www.7-zip.org/]]
* [[PeaZip|http://peazip.sourceforge.net/]]
* [[The Unarchiver|http://wakaba.c3.cx/s/apps/unarchiver.html]]
* [[UnRarX|http://www.unrarx.com/]]
!Filetypes
* [[ZIP|HandleZipFile]]
* [[TAR|HandleTarFile]]
* [[GZ|HandleGzFile]]
* [[BZ2|HandleBz2File]]
* [[TAR.GZ, TAR.Z|HandleTarGz]]
* [[TAR.BZ2|HandleTarBz2]]
* [[JAR|HandleJar]]
* [[RAR|HandleRar]]
* [[7Z|Handle7z]]
* [[ACE|HandleAce]]
[[Homepage|http://www.mozilla.com/firefox/]]
!Fixes
* InstallOldExtensions
* RemoveAVGSafeSearch
* RemoveDotNetFrameworkAssistant
!Extensions
* [[Add-ons Blocklist|http://www.mozilla.com/en-US/blocklist/]]
* [[Adblock Plus|https://addons.mozilla.org/en-US/firefox/addon/1865/]]
* [[Aging Tabs|http://rockyourfirefox.com/2010/05/aging-tabs/]]
* [[Bazzacuda|https://addons.mozilla.org/en-US/firefox/addon/2331/]]
* [[ChromaTabs|https://addons.mozilla.org/en-US/firefox/addon/3810/]]
* [[Closy|https://addons.mozilla.org/en-US/firefox/addon/1849/]]
* [[CustomizeGoogle|https://addons.mozilla.org/en-US/firefox/addon/743/]]
* [[DoD Configuration|https://addons.mozilla.org/en-US/firefox/addon/3182/]]
* [[Firebug|http://getfirebug.com/]]
* [[Firecookia|https://addons.mozilla.org/en-US/firefox/addon/6683/]]
* [[FireFTP|https://addons.mozilla.org/en-US/firefox/addon/684/]]
* [[FireGPG|http://getfiregpg.org/?page=home&lang=en]]
* [[FoxyProxy|http://getfoxyproxy.org/]]
* [[Greasemonkey|https://addons.mozilla.org/en-US/firefox/addon/748/]]
* [[Linkification|https://addons.mozilla.org/en-US/firefox/addon/190/]]
* [[Multi Links|https://addons.mozilla.org/en-US/firefox/addon/13494/]]
* [[Multiproxy Switch|http://multiproxyswitch.blogspot.com/]]
* [[Nightly Tester Tools|https://addons.mozilla.org/en-US/firefox/addon/6543/]]
* [[Organize Status Bar|http://yellow5.us/firefox/osb/]]
* [[Pornzilla|http://www.squarefree.com/pornzilla/]]
* [[Redirect Remover|https://addons.mozilla.org/en-US/firefox/addon/537/]]
* [[Rock Your Firefox|http://rockyourfirefox.com/]]
* [[Show MyIP|https://addons.mozilla.org/en-US/firefox/addon/4530/]]
* [[Show the Image|https://addons.mozilla.org/en-US/firefox/addon/1590/]]
* [[Snap Links Plus|https://addons.mozilla.org/en-US/firefox/addon/116390/]]
* [[TabRenamizer|https://addons.mozilla.org/en-US/firefox/addon/2987/]]
* [[Tab Catalog|https://addons.mozilla.org/en-US/firefox/addon/1937/]]
* [[Tabs Open Relative|https://addons.mozilla.org/en-US/firefox/addon/13626/]]
* [[Tiny Menu|https://addons.mozilla.org/en-US/firefox/addon/1455/]]
* [[TwitterBar|https://addons.mozilla.org/en-US/firefox/addon/4664/]]
* [[Torbutton|https://addons.mozilla.org/en-US/firefox/addon/2275/]]
* [[Uppity|https://addons.mozilla.org/en-US/firefox/addon/869/]]
* [[User Agent Switcher|https://addons.mozilla.org/en-US/firefox/addon/59/]]
* [[Xmarks|http://www.xmarks.com/]]
* [[Xmarks BYOS Edition|https://addons.mozilla.org/en-US/firefox/addon/13255/]]
* [[YSlow|https://addons.mozilla.org/en-US/firefox/addon/5369/]]
* [[Yub It!|https://addons.mozilla.org/en-US/firefox/addon/9768/]]
~AllInOneRuby and other Ruby scripts may complain about missing files.
{{{
$ sudo apt-get install libruby1.8 libzlib-ruby
$ sudo cp -r /usr/lib/ruby/1.8/i486-linux/ /usr/lib/ruby/1.8/i386-linux
}}}
If ~VMWare is unable to boot Windows after the partition has been resized, enter:
{{{
sudo rm ~/Library/Application Support/VMware Fusion/Virtual Machines/Boot Camp/BOOT_CAMP_DEVICE
}}}
Insert the Leopard install disc while using Windows. Run the setup file so that Windows will be able to use the Mac's hardware properly. If the drivers refuse to install, download [[Boot Camp Update 3.1|http://support.apple.com/kb/DL979]] and try again.
# Download [[Microsoft Office 2008 for Mac Service Pack 1 (12.1.0)|http://www.microsoft.com/mac/downloads.mspx?pid=Mactopia_Office2008&fid=58326DA2-EB75-4B42-B1BC-E70319DEFB58#viewer]]. You'll have to scroll down in the Details box to see it.
# Open the disk image. Copy the MPKG to the Desktop.
# Right click the MPKG and select Show Package Contents.
# {{{Contents -> Resources}}}
# Right click volume_updatable.
# Select {{{Open With -> Other... -> Text Edit.app -> Open}}}.
# Change {{{_kMinVersion}}} from {{{'12.1.0.0.0'}}} to {{{'0.0.0.0.0'}}}.
# Change {{{_kMaxVersion}}} from {{{'12.1.8.999999.999999'}}} to {{{'999999.999999.999999.999999.999999'}}}.
# Select {{{File -> Save -> Overwrite}}}.
# Right click {{{package_updatable}}}.
# Select {{{Open With -> Other... -> Text Edit.app -> Open}}}.
# Insert a line after {{{import os, sys, cPickle}}}.
# Add {{{sys.exit(0)}}}.
# Select {{{File -> Save -> Overwrite}}}.
# Quit Text Edit.
# Launch the MPKG.
Repeat the same steps with [[Microsoft Office 2008 for Mac 12.1.9 Update|http://www.microsoft.com/mac/downloads.mspx?pid=Mactopia_Office2008&fid=395D1487-A3A6-4106-A0F8-4D6E1D6D89D2#viewer]].

A side effect of bypassing the buggy version checks is that the installers run faster. 
A forkbomb spawns a copy of itself, which spawns a copy if //itself//, and so on.

Technically not viruses or worms, as they do not propogate to new devices, forkbombs nevertheless are considered malware.

Example:
{{{
#!/usr/bin/env perl
fork while fork
}}}
See others at [[assembla|http://subversion.assembla.com/svn/mcandre/forkbomb/]].
# Visit {{{ Login -> Administration }}}
# Enable {{{ Page not found }}}.
# Visit {{{Pages}}}.
# Create a page as a child to {{{Home}}} called {{{Page not found}}}. You can only have one page of this kind.
# Edit the body of the page.
# Under the main editing box, set the Layout to {{{inherit}}}, Page type to {{{Page not found}}}, and Status to {{{hidden}}}.
# Save.
A functional, extendable programming language.
!Resources
* [[GNU Common Lisp|http://www.gnu.org/software/gcl/]]
* [[The Common Lisp Cookbook|http://cl-cookbook.sourceforge.net/]]
* [[Practical Common Lisp|http://www.amazon.com/Practical-Common-Lisp-Peter-Seibel/dp/1590592395/]]
* [[Successful Lisp|http://www.psg.com/~dlamkins/sl/]]
{{{
cat /etc/lsb-release
}}}
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
* ColorPalette: Contains color information.
* StyleSheet: Contains style information.
* SiteUrl: Sets the URL.
You'll also need to enter your username, e.g. [[Merf]], for signing your edits: <<option txtUserName>>
Chrome is designed for stability and performance. It has a simple interface, a common complaint for some users/philistines.

Its innovative one-page-one-thread model promotes a high degree of reliability; should one tab crash, it does not affect the others.
!Resources
* [[Homepage|http://www.google.com/chrome]]
* [[Extensions page|https://chrome.google.com/extensions/]]
!Extensions
[[Google Quick Scroll|https://chrome.google.com/extensions/detail/okanipcmceoeemlbjnmnbdibhgpbllgc]]
[[My IP|https://chrome.google.com/extensions/detail/ngoobajnfjihppliahmnfpninhgokkcb]]
{{{
-heapsize 512000 -dxlevel 70 -width 1024 -height 768 -novid
}}}
!Compress
{{{
$ 7z a FILE.7z DIRECTORY/
}}}
!Expand
{{{
$ 7z x FILE.7z DIRECTORY/
}}}
!Expand
{{{
$ unace x FILE.ace
}}}
!Compress
{{{
$ bzip2 DIRECTORY/
}}}
!Expand
{{{
$ bunzip2 FILE.bz2
}}}
!Compress
{{{
$ gzip -r DIRECTORY/
}}}
!Expand
{{{
$ gunzip FILE.gz
}}}
!Archive
{{{
jar cmf MANIFEST FILE.jar OTHER_FILES
}}}
!Execute
{{{
java -jar FILE.jar
}}}
!Install
# Copy {{{FILE.jar}}} to a directory.
# Add that directory to the {{{CLASSPATH}}} [[environment variable|SetEnvironmentVariable]].
@@Warning: {{{CLASSPATH}}} cannot handle tilde ({{{~}}}) expansions.@@
!Compress
{{{
$ rar a FILE.rar DIRECTORY/
}}}
!Expand
{{{
$ unrar x FILE.rar
}}}
!Compress
{{{
$ tar cjvf FILE.tar.bz2 DIRECTORY/
}}}

!Expand
{{{
$ tar xjvf FILE.tar.bz2
}}}
!Archive
{{{
tar cvf FILE.tar DIRECTORY/
}}}
!Extract
{{{
tar xvf FILE.tar
}}}
!Compress
{{{
$ tar czvf FILE.tar.gz DIRECTORY/
}}}
!Expand
{{{
$ tar xzvf FILE.tar.gz
}}}
!Compress
{{{
$ zip -r FILE.zip DIRECTORY
}}}
!Expand
{{{
$ unzip FILE.zip
}}}
A pure functional, general-purpose programming language.

HaskellSyntaxIOError

HaskellLetSyntaxError

WindowsGHCIUnableToLoadGHCError

ParallelProcessingWithHaskell
!Resources
* [[Homepage|http://www.haskell.org/]]
* [[Haskell Prime|http://hackage.haskell.org/trac/haskell-prime/]]
* [[GHC|http://www.haskell.org/ghc/]]
* [[NHC|http://www.haskell.org/nhc98/]]
* [[UHC|http://www.cs.uu.nl/wiki/UHC]]
* [[YHC|http://www.haskell.org/haskellwiki/Yhc]]
* [[Hugs|http://www.haskell.org/hugs/]]
* [[Helium|http://www.cs.uu.nl/wiki/Helium]]
* [[HOC|http://hoc.sourceforge.net/]]
* [[Hoogle|http://haskell.org/hoogle/]]
* [[The Haskell 98 Language Report|http://www.haskell.org/onlinereport/]]
* [[Learn You a Haskell|http://learnyouahaskell.com/]]
* [[Haskell in 5 steps|http://haskell.org/haskellwiki/Haskell_in_5_steps]]
* [[Lisperati Haskell Tutorial|http://www.lisperati.com/haskell/]]
* [[There's a monster in my Haskell|http://www.haskell.org/pipermail/haskell-cafe/2006-November/019190.html]]
* [[Introduction to QuickCheck|http://www.haskell.org/haskellwiki/Introduction_to_QuickCheck]]
* [[Try Haskell|http://tryhaskell.org/]]
* [[Real World Haskell|http://book.realworldhaskell.org/]]
* [[A History of Haskell|http://research.microsoft.com/en-us/um/people/simonpj/papers/history-of-haskell/index.htm]]
!Problem
Haskell refuses to compile {{{let}}} blocks, especially with hard tabs.

Example:
{{{
main = let x = 1
		y = 2
		z = 3
	in x + y + z
}}}
!Solution
Don't line up {{{let}}} and {{{y}}}. Line up {{{x}}} and {{{y}}}.

Example:
{{{
main = let
		x = 1
		y = 2
		z = 3
	in x + y + z
}}}
!Error
{{{
Couldn't match expected type `Language.Haskell.TH.Syntax.Q a'
           against inferred type `IO ()'
}}}
!Solution
Wrap code inside a {{{main}}} function.
A simple ~XOR-based algorithm for encrypting Cisco router passwords.

Example code:
{{{
#!/usr/bin/env newlisp
(context 'IOS7)

(seed (date-value))

(setf *xlat* '(
	0x64 0x73 0x66 0x64 0x3b 0x6b 0x66 0x6f
	0x41 0x2c 0x2e 0x69 0x79 0x65 0x77 0x72
	0x6b 0x6c 0x64 0x4a 0x4b 0x44 0x48 0x53
	0x55 0x42 0x73 0x67 0x76 0x63 0x61 0x36
	0x39 0x38 0x33 0x34 0x6e 0x63 0x78 0x76
	0x39 0x38 0x37 0x33 0x32 0x35 0x34 0x6b
	0x3b 0x66 0x67 0x38 0x37))

(define (IOS7:encrypt password)
	(if (not password) ""
		(begin
			(setf s (rand 16))

			;; truncate
			(setf password (0 11 password))

			;; convert to ASCII values
			(setf password (map char (explode password)))

			;; XOR each password byte with a corresponding byte in the translation table
			(setf hash '())
			(for (i 0 (- (length password) 1))
				(setf hash (append hash (list (^ (*xlat* (% (+ s i) (length *xlat*))) (password i))))))

			;; format bytes in hexadecimal
			(format "%02d%s" s (join (map (lambda (e) (format "%02x" e)) hash) "")))))

(define (IOS7:decrypt hash)
	(if (not hash) ""
		(begin
			(setf s (0 2 hash))

			;; lisp doesn't like initial zero
			(if (= (s 0) "0") (setf s (s 1)))

			(setf s (int s))

			;; segment pure hash
			(setf hash (2 (- (length hash) 2) hash))

			;; remove odd ending
			(if (!= (% (length hash) 2) 0) (setf hash (chop hash)))

			;; split and parse hex pairs
			(setf hash (map (lambda (e) (int (append "0x" e))) (explode hash 2)))

			;; XOR each hash byte with a corresponding byte in the translation table
			(setf password '())
			(for (i 0 (- (length hash) 1))
				(setf password (append password (list (^ (*xlat* (% (+ s i) (length *xlat*))) (hash i))))))

			;; format bytes in ASCII
			(join (map char password) ""))))

(define (usage program)
	(println (append "Usage: " program " [options]"))
	(println "-e <password>")
	(println "-d <hash>")
	(exit))

(define (main)
	(setf program (main-args 1))

	(if (not (main-args 3)) (usage program)
	(case (main-args 2)
		("-e" (println (IOS7:encrypt (main-args 3))))
		("-d" (println (IOS7:decrypt (main-args 3))))
		(true (usage program))))

	(exit))

(if (find "ios7crypt" (main-args 1)) (main))

(context MAIN)
}}}
!Mac OS X
* Download and install [[Xcode|http://developer.apple.com/technologies/xcode.html]].
!Windows
* Download and install [[JDK6|http://java.sun.com/javase/downloads/widget/jdk6.jsp]].
!Mac OS X
# Open {{{Applications -> Utilities -> Java -> Java Preferences}}}.
# Drag {{{Java SE 6}}} to the top of both lists.
Source: [[Gephi|http://gephi.org/users/install-java-6-mac-os-x-leopard/]]
!Debian, Ubuntu
{{{
$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk
}}}
!Gentoo
{{{
$ su -
# emerge virtual/jdk
}}}
!Solaris
{{{
$ pfexec pkg install SUNWj6dev
}}}
[[Lua Distributions|http://lua-users.org/wiki/LuaDistributions]]
!Windows, Mac OS X
* Download and install [[YS Lua|http://www.yellosoft.us/lua]], [[Lua All In One|http://luaaio.luaforge.net/references.html]], or [[Lua for Windows|http://code.google.com/p/luaforwindows/]].
!Debian, Ubuntu
{{{
$ sudo apt-get install lua51
}}}
!Gentoo
{{{
$ su -
# emerge lua
}}}
!Mac OS X
* Download and install [[Xcode|http://developer.apple.com/technologies/xcode.html]].
Download and install [[Octave|http://www.gnu.org/software/octave/download.html]].

Mac OS X requires [[extra steps|MacInstallOctave]].
# Install [[Nightly Tester Tools|https://addons.mozilla.org/en-US/firefox/addon/6543/]].
# When the installation finishes, click {{{Override all compatibility}}}.
!Windows
* Download and install [[XAMPP|http://www.apachefriends.org/en/xampp-windows.html]], [[EasyPHP|http://www.easyphp.org/]], or [[Server2Go|http://www.server2go-web.de/]].
!Mac OS X
* Comes with PHP.
!Debian, Ubuntu
{{{
$ sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server
}}}
!Windows
* Download and install [[ActivePerl|http://www.activestate.com/activeperl/downloads]] or [[Strawberry Perl|http://strawberryperl.com/]].
!Mac OS X, Unix, Linux
* Comes with Perl.
!Windows, Other
* Download and install [[Python|http://python.org/download/]] or [[ActivePython|http://www.activestate.com/activepython]].
!Mac OS X, Debian, Ubuntu
* Comes with Python.
# Choose a [[download mirror|http://www.r-project.org/]].
# Choose your operating system.
# Download and install R.
{{{
gem install rails
}}}
!Windows
* Use [[RubyInstaller|http://rubyinstaller.org/]].
!Mac OS X
* Comes with Ruby.
!Debian, Ubuntu
{{{
$ sudo apt-get install build-essential ruby-full
}}}
!Gentoo
{{{
$ su -
# emerge ruby ruby-mode rubygems
}}}
!Windows
* Download and install [[MinGW|http://sourceforge.net/downloads/mingw]].
!Mac OS X, Unix, Linux
* Comes with {{{ash}}}, {{{bash}}}, {{{ksh}}}, {{{zsh}}}, or some other POSIX shell.
!Debian, Ubuntu
{{{
$ sudo apt-get install bfi
}}}
!Other
# Save the following as {{{bf.c}}}: {{multiline{
{{{
char m[9999],*n[99],*r=m,*p=m+5000,**s=n,d,c;main(){for(read(0,r,4000);c=*r;
r++)c-']'||(d>1||(r=*p?*s:(--s,r)),!d||d--),c-'['||d++||(*++s=r),d||(*p+=c==
'+',*p-=c=='-',p+=c=='>',p-=c=='<',c-'.'||write(2,p,1),c-','||read(2,p,1));}
}}}
}}}
# Compile. {{multiline{
{{{
$ gcc -O2 -o bf bf.c
}}}
}}}
# Copy {{{bf}}} to a directory in {{{PATH}}}.
!C/C++
Windows
* Download and install one of the following: {{multiline{
* [[MinGW|http://sourceforge.net/downloads/mingw/]]
* [[Cygwin|http://www.cygwin.com/]]
* [[Digital Mars C/C++ Compiler|http://www.digitalmars.com/download/freecompiler.html]]
* [[MS Visual C++ Express|http://www.microsoft.com/express/Downloads/#2010-Visual-CPP]]
}}}
Mac OS X
* Download and install [[Xcode|http://developer.apple.com/technologies/xcode.html]].
Debian, Ubuntu
{{{
$ sudo apt-get install build-essential
}}}
Fedora, Red Hat {{multiline{
{{{
$ sudo yum groupinstall "Development Tools"
}}}
SUSE
{{{
$ sudo zypper install devel_C_C++
}}}
Gentoo
* Comes with GCC by default.
# Install [[TeX Live|http://tug.org/texlive/]].
# Install [[TeXworks|http://tug.org/texworks/]].
{{{
# tlmgr install SOME_PACKAGE
}}}
[[Homepage|http://www.microsoft.com/windows/internet-explorer/default.aspx]]
A general-purpose, object-oriented language.

InstallJava
!Resources
* [[Homepage|http://java.sun.com/]]
* [[Java API|http://download.oracle.com/docs/cd/E17476_01/javase/1.4.2/docs/api/]]
* [[BeanShell|http://www.beanshell.org/]]
* [[The Java Tutorials|http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/]]
* [[Learning Java|http://www.amazon.com/Learning-Java-Patrick-Niemeyer/dp/0596008732/]]
* [[Groovy|http://groovy.codehaus.org/]]
* [[Groovy Quick Start|http://groovy.codehaus.org/Quick+Start]]
* [[Java Cookbook|http://www.amazon.com/Java-Cookbook-Second-Ian-Darwin/dp/0596007019/]]
* [[Java Security|http://www.amazon.com/Java-Security-2nd-Scott-Oaks/dp/0596001576/]]
* [[Java Pocket Guide|http://www.amazon.com/Java-Pocket-Guide-Guides/dp/0596514190/]]
A dynamic scripting language available in modern [[web browsers|WebBrowsers]].
!Resources
* [[jQuery|http://jquery.com/]]
* [[MooTools|http://mootools.net/]]
* [[Sizzle|http://sizzlejs.com/]]
* [[Sizzle tutorial|http://www.vijedi.net/2010/sizzle-a-standalone-css3-selector-library/]]
* [[JavaScript Pocket Reference|http://www.amazon.com/JavaScript-Pocket-Reference-David-Flanagan/dp/0596004117/]]
L: [[Linux|*nix]]
A: [[Apache]]
M: MySQL
P: [[PHP]]
L: [[Linux|*nix]]
A: [[Apache]]
S: SQLite
P: [[PHP]]
GNUCommonLisp

NewLISP

[[Racket]]
!Resources
* [[Arc|http://www.paulgraham.com/arc.html]]
* [[Clojure|http://clojure.org/]]
* [[F#|http://msdn.microsoft.com/en-us/fsharp/default.aspx]]
* [[Nu|http://programming.nu/]]
* [[Horns|http://code.google.com/p/horns/]]
* [[Lisperati|http://www.lisperati.com/]]
* [[Casting SPELs in LISP|http://www.lisperati.com/casting.html]]
* [[LISP Logos|http://www.lisperati.com/logo.html]]
* [[FringeDC|http://www.lisperati.com/fringedc.html]]
* [[Frequently Asked Questions for comp.lang.lisp|http://jcsu.jesus.cam.ac.uk/~csr21/lispfaq.html]]
InstallingLaTeX

InstallingLaTeXPackages

LaTeXUpdateFields
!Resources
* [[Homepage|http://www.latex-project.org/]]
* [[CTAN|http://www.ctan.org/]]
* [[Making TeX Work|http://www.amazon.com/Making-Tex-Work-Nutshell-handbook/dp/1565920511/]]
* [[Detexify|http://detexify.kirelabs.org/classify.html]]
* [[Principles of LaTeX formatting|http://mintaka.sdsu.edu/GF/bibliog/latex/principia.html]]
!Extensions
* LaTeXBeamer
* [[TeX4ht|http://www.tug.org/applications/tex4ht/]]
!Description
Beamer is a package for creating slides.
!Resources
* [[Homepage|http://ctan.org/tex-archive/macros/latex/contrib/beamer/]]
* [[Beamer Theme Matrix|http://www.hartwork.org/beamer-theme-matrix/]]
* [[beamer, hyperref conflict|http://groups.google.com/group/latexusersgroup/msg/a0f25b86d30e26d4]]
* [[Norm Matloff's Quick Tutorial|http://heather.cs.ucdavis.edu/~matloff/beamer.html]]
* [[Stack Overflow: How to Remove Footers of LaTeX Beamer Templates|http://stackoverflow.com/questions/1435837/1436498#1436498]]
* [[beamer sidebar no title no author|http://old.nabble.com/Re%3A-beamer-sidebar-no-title-no-author-p26564975.html]]
!Problem
Sometimes ~LaTeX fails to update page numbers, section titles, and table of contents.
!Solution
Compile three times.
Mac OS X 10.5's new /usr/libexec/path_helper is slow. For ~TextMate users, this means something as simple as creating a new file can take a full 60 seconds. Luckily, someone made a fix. To apply the fix, download the TAR.GZ from [[gist|http://gist.github.com/123525]], extract the path_helper.patch file, and run:
{{{
$ sudo patch /usr/libexec/path_helper path_helper.patch
}}}
/***
|''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);
}
//}}}
An embeddable scripting language.

InstallLua
!Resources
* [[Homepage|http://www.lua.org/]]
* [[Reference Manual|http://www.lua.org/manual/5.1/]]
* [[Programming in Lua|http://www.lua.org/pil/]]
* [[Lua Wiki|http://lua-users.org/wiki/LuaDirectory]]
* [[Lua Wiki: tutorials|http://lua-users.org/wiki/TutorialDirectory]]
* [[LuaSearch|http://math2.org/luasearch/]]
* [[Lua Uses|http://lua-users.org/wiki/LuaUses]]
* [[LuaRocks|http://www.luarocks.org/]]
* [[LuaDec|http://www.lua.inf.puc-rio.br/post/6]]
* [[Lua.NET|http://www.lua.inf.puc-rio.br/luanet/]]
* [[Kepler|http://www.keplerproject.org/]]
* [[Kahlua|http://code.google.com/p/kahlua/]]
* [[Penlight|http://penlight.luaforge.net/]]
* [[LÖVE|http://love2d.org/]]
* [[Try Lua|http://trylua.mamasam.com/]]
* [[Lua Player|http://www.luaplayer.org/]]
* [[Brain Damage|http://codetank.com/wiki/index.php/Brain_Damage]]
* [[Squish|http://matthewwild.co.uk/projects/squish/home]]
* [[Programming in Lua|http://www.amazon.com/Programming-Lua-Second-Roberto-Ierusalimschy/dp/8590379825/]]
A text browser, useful for browsing inside a terminal and for testing websites for accessibility.
!Resources
* [[Homepage|http://lynx.browser.org/]]
* [[Mac download|http://www.apple.com/downloads/macosx/unix_open_source/lynxtextwebbrowser.html]]
Octave is an open source implementation of the MATLAB programming language.

InstallOctave
!Resources
* [[Homepage|http://www.gnu.org/software/octave/]]
* [[Multidimensional Newton's Method|http://www.math.pitt.edu/~sussmanm/2070Fall06/lab_05/index.html#Modifications]]
# Run {{{sudo vi /etc/apache2/httpd.conf}}}.
# Uncomment {{{LoadModule php5_module}}}.
# Open {{{System Preferences -> Sharing}}}.
# Toggle {{{Web Sharing}}}.
!Requirements
* [[Xcode|http://developer.apple.com/technology/xcode.html]]
* Knowledge of source compilation: {{multiline{
{{{
$ tar xvf somepackage.tar.gz
$ cd somepackage/
$ ./configure
$ make
$ sudo make install
}}}
}}}
!Procedure
# [[Download|http://sourceforge.net/project/showfiles.php?group_id=2888&package_id=237839]] and open the Octave disk image.
# Copy Octave.app to the Applications folder.
# Add {{{/Applications/Octave.app/Contents/Resources/bin/}}} to {{{PATH}}} in {{{~/.profile}}}.
# Open the Extras folder.
# Open the Gnuplot disk image.
# Copy Gnuplot.app to the Applications folder.
# Add {{{/Applications/Gnuplot.app/Contents/Resources/bin/}}} to {{{PATH}}} in {{{~/.profile}}}.
# [[Download|http://www.ginac.de/CLN/]], extract, configure, compile, and install CLN.
# [[Download|http://www.ginac.de/Download.html]], extract, configure, compile, and install ~GiNaC.
# [[Download|http://octave.sourceforge.net/symbolic/index.html]] the Symbolic package.
# In the Terminal, CD to your Downloads folder, then run: {{multiline{
{{{
$ octave
octave> pkg install symbolic-your.version.here.tar.gz
}}}
}}}
# [[Download|http://octave.sourceforge.net/odepkg/index.html]] ~OdePkg.
# Enter: {{multiline{
{{{
octave> pkg install odepkg-your.version.here.tar.gz
}}}
}}}
# [[Download|http://sourceforge.net/project/showfiles.php?group_id=39915]] and open the ~AquaTerm disk image.
# Open ~AquaTerm.pkg and follow the instructions.
# Add the command {{{export GNUTERM=aqua}}} to {{{~/.profile}}}.
# Test Octave by entering {{{1+1}}}.
# Test Gnuplot by entering {{{x=-10:0.1:10;}}} and {{{plot(x, sin(x));}}}.
!Resources
* [[Octave vs MATLAB|http://mcandre.blogspot.com/2009/04/octave-vs-matlab.html]]
* [[Octave packages|http://octave.sourceforge.net/packages.html]]
Press Control+Option+Command+Eight.
* To update the keychain entries for the new software, select {{{Change All}}}.
* To prevent the keychain entries from working with the new software, select {{{Don't Change}}}.
[[MacPorts]]

[[Take a screenshot|MacTakeScreenshot]]

[[Reset root password|ResetMacOSXPassword]]

LeopardTextMateSlow

FixMicrosoftOfficeMacUpdate

[[Set default screenshot location|MacSetDefaultScreenshotLocation]]

[[Keychain confusion|MacKeychainConfusion]]

[[Optimize bootup|MacOptimizeBoot]]

[[Enable Debug mode in Safari|SafariEnableDebug]]

[[Invert screen colors|MacInvertColors]]

MacEnablePHP
# Press and hold {{{Command+Option+P+R}}} at bootup.
# Listen for a chime sound.
# Listen for a second chime sound.
# Release the keys and let Mac continue booting.
!Install
# Download and run the [[MacPorts installer|http://www.macports.org/install.php]].
# Add the following to {{{~/.profile}}}:
{{{
# MacPorts
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
}}}

!Uninstall
{{{
$ sudo rm -rf \
/opt/local \
/Applications/MacPorts \
/Applications/DarwinPorts \
/Library/Tcl/macports1.0 \
/Library/Tcl/darwinports1.0 \
/Library/LaunchDaemons/org.macports.* \
/Library/StartupItems/DarwinPortsStartup \
/Library/Receipts/MacPorts*.pkg \
/Library/Receipts/DarwinPorts*.pkg
}}}
{{{
$ defaults write com.apple.screencapture location PATH
}}}
From [[MacRumors|http://guides.macrumors.com/Taking_Screenshots_in_Mac_OS_X]]
* ~Command-Shift-3: Take a screenshot of the screen, and save it as a file on the desktop.
* ~Command-Shift-4, then select an area: Take a screenshot of an area and save it as a file on the desktop.
* ~Command-Shift-4, then space, then click a window: Take a screenshot of a window and save it as a file on the desktop.
* ~Command-Control-Shift-3: Take a screenshot of the screen, and save it to the clipboard.
* ~Command-Control-Shift-4, then select an area: Take a screenshot of an area and save it to the clipboard.
* ~Command-Control-Shift-4, then space, then click a window: Take a screenshot of a window and save it to the clipboard.
{{{
#!/usr/bin/env newlisp

(let ((magic '(0x09 0xf9 0x11 0x02 0x9d 0x74 0xe3 0x5b 0xd8 0x41 0x56 0xc5 0x63 0x56 0x88 0xbc)))
	(for (i 0 6)
		(setf (magic 15) (+ (magic 15) 1))

		(if (!= i 3)
			(println (join (map (lambda (e) (format "%02x" e)) magic) " "))
			(println "                 [ redacted ]"))))

(exit)
}}}
[[Start|GettingStarted]]
[[Welcome|WelcomeToTiddlyspot]]
TakeSnapshot

[[OS]]
[[Math]]
[[WWW]]

[[*nix]]
[[Mobile]]
MacOSX
[[Windows]]
[[Software]]

[[Proxies]]
[[Security]]
[[Networking]]
[[Passwords]]
[[Programming]]

[[Misc]]
# Save as {{{makefile}}}: {{multiline{
{{{
default: test

test: hello
   ./hello

hello: hello.c
   gcc -O2 -Wall -o hello hello.c

clean:
   -rm hello
}}}
}}}
# Run make. {{multiline{
{{{
$ make
gcc -O2 -Wall -o hello hello.c
./hello
Hello World
}}}
}}}

Windows users can use {{{nmake}}} instead of {{{make}}}. See VisualStudio for details.
[[UTM]]

[[MATLAB-Octave]]

[[R]]

[[Maxima|http://maxima.sourceforge.net/]]

[[Wolfram Alpha|http://www.wolframalpha.com/]]
!Power units
|Name|Abbr.|Exponent|h
|yotta| Y |10^24|
|zetta| Z |10^21|
|exa| E |10^18|
|peta| P |10^15|
|tera| T |10^12|
|giga| G |10^9|
|mega| M |10^6|
|kilo| k |10^3|
|hecto| h |10^2|
|deka| da |10^1|
|deci| d |10^-1|
|centi| c |10^-2|
|milli| m |10^-3|
|micro| &#0956; |10^-6|
|nano| n |10^-9|
|pico| p |10^-12|
|femto| f |10^-15|
|atto| a |10^-18|
|zepto| z |10^-21|
|yocto| y |10^-24|
Merf likes [[cheese|http://en.wikipedia.org/wiki/Cheese]] and [[open source software|http://www.opensource.org/]].

He exclaims, "Merf!" when things break.
BoardGamesWithoutBoards

[[Get rid of track changes once and for all|http://office.microsoft.com/en-us/word-help/get-rid-of-tracked-changes-and-comments-once-and-for-all-HA001098388.aspx]]

[[QDB|http://bash.org/]]

[[EasyBib|http://www.easybib.com/]]

EmailServices

[[iConvert|http://iconverticons.com/]]

[[ConvertIcon|http://www.converticon.com/]]

[[WikiLeaks|http://wikileaks.org/]]

[[Cryptome|http://cryptome.org/]]

SnapshotPlugin
[[NeoPwn|http://www.neopwn.com/]]
[[PCMag|http://www.pcmag.com/article2/0,2817,2113976,00.asp]]
# password
# 123456
# qwerty
# abc123
# letmein
# monkey
# myspace1
# password1
# link182
[[What's My Pass?|http://www.whatsmypass.com/the-top-500-worst-passwords-of-all-time]]
# 123456
# password
# 12345678
# 1234
# pussy
# 12345
# dragon
# qwerty
# 696969
# mustang
# letmein
# baseball
# master
# michael
# football
# shadow
# monkey
# abc123
# pass
# fuckme
[[Toms Hardware|http://www.tomshardware.com/news/imperva-rockyou-most-common-passwords,9486.html]]
# 123456
# 12345
# 123456789
# Password
# iloveyou
# princess
# rockyou
# 1234567
# 12345678
# abc123
# Nicole
# Daniel
# babygirl
# monkey
# Jessica
# Lovely
# michael
# Ashley
# 654321
# Qwerty
[[Modern Life|http://modernl.com/article/top-10-most-common-passwords]]
# 123
# password
# liverpool
# letmein
# 123456
# qwerty
# charlie
# monkey
# arsenal
# thomas
A popular open-source database.

The M in [[LAMP]].
!Resources
* [[Homepage|http://www.mysql.com/]]
* [[HeidiSQL|http://www.heidisql.com/]]
* [[Sequel Pro|http://code.google.com/p/sequel-pro/]]
* [[Learning MySQL|http://www.amazon.com/Learning-MySQL-Seyed-Saied-Tahaghoghi/dp/0596008643/]]
* [[MySQL Pocket Reference|http://www.amazon.com/MySQL-Pocket-Reference-Functions-Utilities/dp/0596514263/]]
# Set the channel to 11.
# Disable all WEP, WPA, ~WPA2, etc.
[[Proxies]]

[[Tools]]

BitTorrent

AccessingHotspots

NetGearFix
A functional, general-purpose scripting language.
!Resources
* [[Homepage|http://www.newlisp.org/]]
* [[Documentation|http://www.newlisp.org/index.cgi?Documentation]]
* [[Manual and Reference|http://www.newlisp.org/downloads/newlisp_manual.html]]
* [[newLISP — An Interactive Tutorial|http://www.newlisp.org/newLISP_in_21_minutes.html]]
* [[In defense of newLISP|http://www.artfulcode.net/articles/in-defense-newlisp/]]
!Example
{{{
#!/usr/bin/env newlisp
;; file: module.lsp
;; Calls main only if this script is being run by itself,
;; not if the script is being loaded by another.

(context 'MODULE)

(define (main)
   ;; KOPIMI
   (exit))

(if (find "module" (main-args 1)) (main))

(context MAIN)
}}}
[[Distros]]

[[*nix]]

MacOSX

[[Windows]]

[[Passwords]]

DualAndTripleBooting
InstallObjectiveC
!Resources
* [[Mac OS X Reference Library|http://developer.apple.com/mac/library/navigation/]]
* [[Nu|http://programming.nu/]]
* [[Sparkle|http://sparkle.andymatuschak.org/]]
[[Open Source Initiative|http://opensource.org/]]

[[osalt.com|http://www.osalt.com/]]

[[PortableApps|http://portableapps.com/]]

[[WHDb|http://whdb.com/2008/the-top-50-proprietary-programs-that-drive-you-crazy-and-their-open-source-alternatives/]]
!Windows

From the Start menu:
{{{
Start -> Run -> cmd -> OK
}}}
From a web browser:
{{{
Address bar -> file:///C:\WINDOWS\System32\cmd.exe
}}}
!Mac OS X

From Spotlight:
{{{
Spotlight -> Terminal
}}}
From Finder:
{{{
/Applications/Utilities/Terminal.app
}}}
!Unix, Linux
{{{
Wallpaper -> Right-click -> Open Terminal
}}}
!!Debian, Ubuntu, Gnome
{{{
Applications -> Accessories -> Terminal
}}}
!!Kubuntu, SUSE, Gentoo, KDE
{{{
KMenu -> System -> Konsole
}}}
{{{
KMenu -> Search -> Konsole
}}}
!!Lubuntu, LXDE
{{{
Applications -> System -> Terminal
}}}
!!Damn Small Linux
{{{
Desktop -> XTerminal
}}}
{{{
Desktop -> ATerminal
}}}
!Video Games
{{{
` (backtick)
}}}
[[Homepage|http://www.opera.com/]]

[[Opera Mini & Mobile|http://www.opera.com/mobile/]]
The Verizon Search Service automatically redirects nonexistent domains to a ~Verizon-Yahoo search page.

This service is passive and requires no installed software.

For more information, see [[Verizon Search Service|http://wwwz.websearch.verizon.net/search?sz=c&qh=fb&of=ii23&rn=IFx_bT_neTdRfL8&om=w&zz=2]].
!How to Disable
# Record the current DNS servers in your router configuration.
# Statically set these DNS servers.
# Replace the last octet with {{{.14}}}.
# Apply the changes.
A scripting language for web servers.

The P in [[LAMP]] and [[LASP]].

InstallPHP

ContentManagementSystems

MacEnablePHP

CurlPHPError
!Resources
* [[Homepage|http://php.net/]]
* [[Manual|http://www.php.net/manual/]]
* [[Programming PHP|http://www.amazon.com/Programming-PHP-Rasmus-Lerdorf/dp/0596006810/]]
* [[PHP Cookbook|http://www.amazon.com/PHP-Cookbook-Solutions-Examples-Programmers/dp/0596101015/]]
!Install for Windows
Requirements:
* VisualStudio
* [[ActivePerl|http://www.activestate.com/activeperl/downloads]]
Procedure:
{{{
C:\>ppm install --force http://www.bribes.org/perl/ppm/PAR.ppd
C:\>ppm install http://www.bribes.org/perl/ppm/PAR-Packer.ppd
}}}
!Install for Mac OS X
Requirements:
* [[Xcode|http://developer.apple.com/technologies/xcode.html]]
{{{
cpan
cpan> install PAR::Packer
}}}
!Install for Debian, Ubuntu
{{{
$ sudo apt-get install build-essential libperl-dev
$ cpan
cpan> install PAR::Packer
}}}
!Use in Windows
{{{
C:\>pp -o hello.exe hello.pl
C:\>hello.exe
}}}
!Use in Mac OS X, Unix, Linux
{{{
$ pp -o hello hello.pl
$ ./hello
}}}
!Code
{{{
import Text.Printf
import Control.Parallel

main = (a::Integer) `par` (b::Integer) `par` (c::Integer) `pseq`
	(printf "A = %d\nB = %d\nC = %d\n" a b c) where
	a = ack 3 10
	b = fac 42
	c = fib 34

fac 0 = 1
fac n = n * fac (n-1)

ack 0 n = n + 1
ack m 0 = ack (m-1) 1
ack m n = ack (m-1) (ack m (n-1))

fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
}}}
!Compile
{{{
$ ghc -O2 --make maths.hs -threaded
[1 of 1] Compiling Main             ( maths.hs, maths.o )
Linking maths ...
}}}
!Run
{{{
$ time ./maths +RTS -N2
A = 8189
B = 1405006117752879898543142606244511569936384000000000
C = 5702887

real	0m0.774s
user	0m1.201s
sys	0m0.014s
}}}
/***
|''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"
	});
*/
//}}}
IOS7Crypt

DefaultPasswords

MostCommonPasswords
!Reset passwords
* [[Windows|ResetWindowsPassword]]
* [[Mac OS X|ResetMacOSXPassword]]
* [[Unix/Linux|ResetLinuxPassword]]
A general-purpose scripting language.

InstallPerl
ParPacker
!Resources
* [[Homepage|http://www.perl.org/]]
* [[Documentation|http://perldoc.perl.org/]]
* [[CPAN|http://www.cpan.org/]]
* [[ActivePerl|http://www.activestate.com/activeperl]]
* [[Strawberry Perl|http://strawberryperl.com/]]
* [[JPerl|http://www.javainc.com/projects/jperl/]]
* [[WWW::Mechanize|http://search.cpan.org/dist/WWW-Mechanize/]]
* [[Learning Perl|http://www.amazon.com/Learning-Perl-5th-Randal-Schwartz/dp/0596520107/]]
* [[Programming Perl|http://www.amazon.com/Programming-Perl-3rd-Larry-Wall/dp/0596000278/]]
* [[Perl How To Program|http://www.amazon.com/Perl-How-Program-Part-book/dp/0130284181/]]
* [[Perl Pocket Reference|http://www.amazon.com/Perl-Pocket-Reference-Johan-Vromans/dp/0596003749/]]
* [[Higher-Order Perl|http://hop.perl.plover.com/]]
Type the text for 'PrimaryDark'
Type the text for 'PrimaryLight'
Type the text for 'PrimaryMid'
Type the text for 'PrimaryPale'
!Languages
* AppleScript
* [[Brainfuck]]
* [[C/C++|C-C++]]
* [[C#]]
* [[D]]
* [[F#]]
* [[Haskell]]
* [[Java]]
* JavaScript
* LaTeX
* [[LISP]]
* [[Lua]]
* [[MATLAB-Octave]]
* ObjectiveC
* [[Perl]]
* [[PHP]]
* [[Python]]
* [[R]]
* [[Ruby]]
* [[Shell]]
!Databases
* [[How fucked is my database?|http://howfuckedismydatabase.com/]]
* [[CouchDB|http://couchdb.apache.org/]]
* MySQL
* SQLite
!Version Control
* [[CVS|http://www.nongnu.org/cvs/]]
* [[Subversion|http://subversion.tigris.org/]]
* [[Git|http://git-scm.com/]]
* [[Darcs|http://darcs.net/]]
* [[Bazaar|http://bazaar.canonical.com/]]
* [[Mercurial|http://mercurial.selenic.com/]]

[[Regular-Expressions.info|http://www.regular-expressions.info/]]

[[Anti Patterns|http://c2.com/cgi/wiki?AntiPatternsCatalog]]

[[Oreilly|http://oreilly.com/]]

[[bc for Windows|http://gnuwin32.sourceforge.net/packages/bc.htm]]

[[How to Shoot Yourself In the Foot|http://www-users.cs.york.ac.uk/susan/joke/foot.htm]]

TextEditors

CommonTasks

MagicNumbers

ApacheInstallModule

VisualStudioStringConversion

VisualStudioGetOpt
!Test
* [[What Is My IP Address|http://www.whatismyip.com/]]
* [[Geo IP Tool|http://www.geoiptool.com/]]
!Software
* [[TheOnionRouter]]
* [[OpenSSH for Windows|http://sshwindows.sourceforge.net/]]
* [[Ping Tunnel|http://www.cs.uit.no/~daniels/PingTunnel/]]
* [[PuTTY Portable|http://portableapps.com/apps/internet/putty_portable]]
* [[Squid|http://www.squid-cache.org/]]
* [[Tinyproxy|https://www.banu.com/tinyproxy/]]
!HTTP CGI Proxies
* [[Coral CCDN|http://www.coralcdn.org/]]
* [[Google Translate|http://translate.google.com/]]
* [[Proxify|http://proxify.com/]]
* [[KProxy|http://www.kproxy.com/]]
* [[YouHide|http://www.youhide.com/]]
* [[Ninja Cloak|https://www.ninjacloak.com/]]
* [[php-web-proxy|http://code.google.com/p/php-web-proxy/]]
!SSH Accounts
* [[Devio.us|http://devio.us/]]
* [[Free Shells|http://www.freessh.net/]]
* [[rootshell.be|http://www.rootshell.be/]]
* [[SDF Public Access UNIX System|http://freeshell.org/]]
!!Connect to SSH proxy server
{{{
ssh -ND 1050 user@domain.tld
}}}
!Firefox
Avoid DNS leaks. Visit {{{about:config}}} and set {{{network.proxy.socks_remote_dns}}} to {{{true}}}.
!Proxy list
[[Aliveproxy|http://www.aliveproxy.com/fastest-proxies/]]

From [[Steganos proxy list|http://www.steganos.com/?area=updateproxylist]] (dead).
{{{
216.114.194.19:6588
77.72.71.4:8080
216.114.194.19:6588
218.11.212.251:808
77.72.71.4:8080
69.122.173.33:7212
194.57.157.28:8080
80.78.144.190:8081
82.101.14.27:3128
195.175.37.70:8080
165.228.129.10:3128
202.157.192.160:80
62.215.195.85:80
203.229.247.51:8080
83.91.240.154:8080
210.3.25.166:8080
210.212.248.103:3128
165.228.132.10:3128
165.228.130.10:3128
219.38.252.171:8080
218.44.246.219:80
165.228.131.10:3128
212.241.168.186:80
203.160.1.146:553
212.241.168.187:80
201.57.242.6:80
165.228.133.10:3128
83.223.83.98:3128
165.228.128.10:3128
125.46.36.223:808
195.55.133.76:8080
221.232.159.112:808
212.241.168.184:80
211.140.192.186:8080
60.190.223.77:808
220.249.114.134:3128
85.18.242.30:80
165.228.132.11:80
193.111.198.56:8080
210.231.90.112:8080
195.175.37.71:80
195.76.242.227:80
58.236.68.68:8080
202.53.13.158:3128
}}}
A general-purpose scripting language.

InstallPython

PythonNameError

PythonInputError

PythonObjCTypeError

ContentManagementSystems
!Resources
* [[Homepage|http://python.org/]]
* [[Documentation|http://docs.python.org/]]
* [[ActivePython|http://www.activestate.com/activepython]]
* [[Jython|http://www.jython.org/]]
* [[IronPython|http://ironpython.net/]]
* [[Portable Python|http://www.portablepython.com/]]
* [[Cython|http://cython.org/]]
* [[Try Python|http://www.trypython.org/]]
* [[Mechanize|http://wwwsearch.sourceforge.net/mechanize/]]
* [[Learning Python|http://www.amazon.com/Learning-Python-Powerful-Object-Oriented-Programming/dp/0596158068/]]
* [[Python Pocket Reference|http://www.amazon.com/Python-Pocket-Reference-Your-OReilly/dp/0596158084/]]
!Error
{{{
>>> correct = input("[y/n]? ")
[y/n]? y
NameError: name 'y' is not defined
}}}
!Solution
The correct code replaces {{{input}}} with {{{raw_input}}}, which accepts input strings but does not execute them as Python code.
{{{
>>> correct = raw_input("[y/n]? ")
[y/n]? y
>>> correct
"y"
}}}
!Problem Description
The {{{input}}} function treats user input strings as python code:
{{{
>>> x = input("X = ")
X = 2 + 2
>>> x
4
}}}
In the error-causing code, Python tries to execute {{{y}}}, which it interprets as a variable name. Yet, there is no {{{y}}} variable.
!Error
A function, {{{fib}}}, is defined in {{{fib.py}}}. The module imports without error, but the function cannot be accessed.
{{{
>>> import fib
>>> fib(5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'fib' is not defined
}}}
!Solution
The function is available, but must contain the module prefix:
{{{
>>> import fib
>>> fib.fib(5)
3
}}}
Alternatively, the {{{fib}}} function can be imported directly if it is the only function required from the {{{fib}}} module.
{{{
>>> from fib import fib
>>> fib(5)
3
}}}
!Error
{{{
TypeError: Use class methods to instantiate new Objective-C objects
}}}
!Solution
Custom ~ObjC classes must be created as follows:
{{{
from AppKit import *

class MyClass(NSObject):
	def init(self):
		self = super(MyClass, self).init()

		# ...

		return self

def main():
	myInstance=MyClass.new()
}}}
InstallR

RInstallPackage

RCouldNotFindFunctionWindows
!Resources
* [[R Online|http://user.cs.tu-berlin.de/~ulfi/cgi-bin/r-online/r-online.cgi]]
* [[An Introduction to R|http://cran.r-project.org/doc/manuals/R-intro.html]]
!Error
{{{
> windows(width=6, height=1.5)
Error: could not find function "windows"
}}}
!Solution
Use {{{quartz()}}} instead.
{{{
> quartz(width=6, height=1.5)
}}}
{{{
$ wget http://cran.r-project.org/bin/macosx/universal/contrib/r-release/plotrix_2.6-1.tgz
$ sudo R CMD INSTALL plotrix_2.6-1.tgz
}}}
Formerly PLT Scheme, formerly Dr. Scheme.

Racket is a multiplatform, funtional programming language.

SchemeRunScripts
!Resources
* [[Homepage|http://www.racket-lang.org/]]
* [[Try Scheme|http://tryscheme.sourceforge.net/]]
* [[The Little Schemer|http://www.amazon.com/Little-Schemer-Daniel-P-Friedman/dp/0262560992]]
@@Warning: The dispatcher will fail silently if the ~RAILS_APP directory has the wrong permissions.@@

{{{
$ RAILS_APP/script/process/spawner -i 3 -p PORT -e ENVIRONMENT
}}}
!Create a project
{{{
rails PROJECT_NAME
}}}
!Start the server
{{{
cd PROJECT_NAME
ruby script/server
}}}
Open a web browser to {{{http://localhost:3000}}}.
!Generate scaffolding for a Link class with a URL attribute
{{{
ruby script/generate scaffold Link url:string
}}}
!Update the database configuration
{{{
rake db:migrate
}}}
!Rollback to previous database configuration
{{{
rake db:rollback
}}}
!Remove default page
Delete or rename {{{public/index.html}}}.
{{{
rake log:clear
}}}
!Mac OS X, Unix, Linux
Modify the following line in {{{/usr/bin/rails}}}:
{{{
DATABASE="mysql"
}}}
{{{
rake db:migrate RAILS_ENV="production"
}}}
{{{
>> reload!
}}}
You may see the following error:

{{{
libsqlite3.so: cannot open shared object file: No such file or directory
}}}

Fix the error by creating this link:

{{{
$ ln -s /usr/lib/libsqlite3.so.0 /usr/lib/libsqlite3.so
}}}
!Error
{{{
uninitialized constant ApplicationController
}}}
!Solution
{{{
$ rake rails:update
}}}
!Problem
{{{
ruby script/server
/usr/local/lib/site_ruby/1.8/rubygems.rb:149:in `activate': can't
activate activesupport (= 2.2.2, runtime), already activated
activesupport-2.0.2 (Gem::Exception)
  from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:35:in
`require'
  from
/usr/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support.rb:28
  from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
  from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
  from /usr/lib/ruby/gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:1
  from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in
`gem_original_require'
  from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in
`require'
  from script/server:3
}}}
!Solution
{{{
$ gem rails -v=2.2.2
}}}
{{{
C:\>cd DOWNLOADS
C:\>avg_free*.exe /REMOVE_FEATURE fea_AVG_SafeSurf /REMOVE_FEATURE fea_AVG_SafeSearch
}}}
From [[Microsoft Support|http://support.microsoft.com/kb/963707]]:
# Close Firefox.
# Delete the registry keys: {{multiline{

For x86-based computers:
{{{
reg DELETE "HKLM\SOFTWARE\Mozilla\Firefox\Extensions" /v "{20a82645-c095-46ed-80e3-08825760534b}" /f
}}}
For x64-based computers:
{{{
reg DELETE "HKLM\SOFTWARE\Wow6432Node\Mozilla\Firefox\Extensions" /v "{20a82645-c095-46ed-80e3-08825760534b}" /f
}}}
}}}
# Start Firefox.
# {{{Address bar -> about:config}}}
# Scroll down or use Filter to find the following preference item: {{{general.useragent.extra.microsoftdotnet}}}
# Right-click this item, and then click Reset.
# Restart Firefox.
# Open Explorer to {{{%SYSTEMDRIVE%\Windows\Microsoft.NET\Framework\v3.5\Windows Presentation Foundation\}}}.
# Delete the {{{DotNetAssistantExtension}}} folder.
!With Grub Recovery Mode
# Restart and hold Escape.
# In Grub, choose {{{recovery mode -> root Drop to root shell prompt}}}.
# Enter: {{multiline{
{{{
# passwd USER
}}}
}}}
!Without Grub Recovery Mode
# Insert a Linux livecd such as [[Ubuntu|http://www.ubuntu.com/]].
# Mount the partition. {{multiline{
{{{
# mkdir /mnt/p
# mount /dev/sda1 /mnt/p
}}}
}}}
# Move into the partition. {{multiline{
{{{
# chroot /mnt/p
}}}
}}}
# Change the root password. {{multiline{
{{{
# passwd
}}}
}}}
# Move back and unmount. {{multiline{
{{{
# exit
# umount /mnt/p
}}}
}}}
# Turn on your Mac.
# Press and hold Command+S until you hear the chime sound.
# Release the keys when you see computer code on a black and white screen.
# Enter the following commands: {{multiline{
{{{
# /sbin/mount -uw /
# /var/db/.applesetupdone
}}}
}}}
# Restart.
# Create a new user and password with the installation wizard.
* Use Linux. {{multiline{
# Download [[Ubuntu|http://www.ubuntu.com/]].
# Burn the ISO to a CD.
# Insert the CD.
# Reboot.
# In a terminal, enter: {{multiline{
{{{
$ chntpw -i /MOUNT_POINT/Windows/System32/config/SAM
}}}
}}}
# Follow the instructions.

}}}
* Use Linux. {{multiline{
# Download [[Offline NT Password & Registry Editor|http://pogostick.net/~pnh/ntpasswd/]].
# Burn the ISO to a CD.
# Insert the CD.
# Reboot.
# Follow the instructions.
}}}
An object-oriented general-purpose scripting language.

InstallRuby

RubyOnRails

[[Generate a FreeBSD-style license|RubyFreeBSDLicense]]

[[Uninstall a gem|RubyGemsPurge]]

[[Fix slow RubyGems|RubyGemsSlow]]

[[Fix AllInOneRuby Linux error|FixAllInOneRubyError]]
!Gems
* [[Highline|http://highline.rubyforge.org/]]
* [[Hpricot|http://hpricot.com/]]
* [[JSON implementation for Ruby|http://flori.github.com/json/]]
* [[Mechanize|http://mechanize.rubyforge.org/mechanize/]]
!Resources
* [[Homepage|http://www.ruby-lang.org/]]
* [[Ruby Doc|http://ruby-doc.org/]]
* [[JRuby|http://jruby.org/]]
* [[IronRuby|http://ironruby.net/]]
* [[MacRuby|http://www.macruby.org/]]
* [[AllInOneRuby|http://www.erikveen.dds.nl/allinoneruby/]]
* [[Why's (Poignant) Guide to Ruby|http://mislav.uniqpath.com/poignant-guide/]]
* [[Gnome's Guide to WEBrick|http://microjet.ath.cx/webrickguide/html/]]
* [[Writing WEBrick Servlets|http://segment7.net/projects/ruby/WEBrick/servlets.html]]
* [[The Ruby Programming Language|http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177/]]
* [[Ruby Cookbook|http://www.amazon.com/Cookbook-Cookbooks-OReilly-Lucas-Carlson/dp/0596523696/]]
* [[Ruby Pocket Reference|http://www.amazon.com/Ruby-Pocket-Reference-OReilly/dp/0596514816/]]
Save as {{{license}}}:
{{{
#!/usr/bin/env ruby

# This tool is FreeBSD licensed.
# Run license Merf 2010

# == Synopsis
#
# license_gen_freebsd: Generates FreeBSD licenses based on The FreeBSD Copyright:
#
# http://www.freebsd.org/copyright/freebsd-license.html
#
# == Usage
#
# license_gen_freebsd owners year [margin]
#
# Owners:
#    The copyright owners.
# Year:
#    The copyright year.
# Margin:
#    The width of the copyright message.

require "time"

# From ttscoff's wrap_text()
# http://snipplr.com/view/1081/wrap-text/
class String
	def wrap(margin=80)
		gsub(/(.{1,#{margin}})( +|$\n?)|(.{1,#{margin}})/, "\\1\\3\n")
	end
end

def gen(owners="The FreeBSD Project", year=Time.now.year, margin=80)
	return "FreeBSD License

Copyright #{year} #{owners}. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.".wrap(margin)
end

def main
	owners="The FreeBSD Project"
	year="1994-2009"
	margin=80

	owners=ARGV[0] unless ARGV.length<1
	year=ARGV[1] unless ARGV.length<2
	margin=ARGV[2] unless ARGV.length<3

	puts gen(owners, year, margin)
end

if __FILE__==$0
	main
end
}}}
{{{
$ gem list PACKAGE --no-versions | xargs sudo gem uninstall -a -x
}}}
{{{
gem update --system
}}}
[[InstallRails]]

[[Basic commands|RailsBasicCommands]]

[[Set the default database|RailsDefaultDatabase]]

[[Clear log files|RailsClearLogs]]

[[Migrate a specific environment|RailsMigrateEnvironment]]

[[Force live environment to reload source code|RailsReloadSource]]

[[Fix SQLite error|RailsRubyGemSqliteFix]]

RailsUninitializedConstantError

RailsVersionError

[[Spawn background server|RailsBackgroundServer]]
!Resources
* [[Homepage|http://rubyonrails.org/]]
* [[Documentation|http://api.rubyonrails.org/]]
* [[Creating a weblog in 15 minutes with Rails 2|http://media.rubyonrails.org/video/rails_blog_2.mov]]
* [[Mongrel|http://rubygems.org/gems/mongrel]]
* [[will_paginate|http://wiki.github.com/mislav/will_paginate/]]
A lightweight, file-based database.

The S in [[LASP]].
!Resources
* [[Homepage|http://www.sqlite.org/]]
* [[SQLite Database Browser|http://sqlitebrowser.sourceforge.net/]]
* [[Using SQLite|http://www.amazon.com/Using-SQLite-Jay-Kreibich/dp/0596521189/]]
{{{
user@client$ ssh-keygen -t rsa -b 4096
Enter file in which to save the key (/home/username/.ssh/id_rsa): (Hit Enter)
Enter passphrase (empty for no passphrase): SOME_PASSPHRASE
Enter same passphrase again: SOME_PASSPHRASE

user@client$ scp ~/.ssh/id_rsa.pub user@server:~/.authorized_keys

user@server$ vi /etc/ssh/sshd_config

AuthorizedKeysFile %h/.ssh/authorized_keys

RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no

:wq

user@server$ sudo service ssh restart
}}}

You may need to regenerate the server's host RSA and DSA keys. If you do, remove the server key from the client's ~/.ssh/known_hosts file.
!Problem
SSL only works on some of the pages on your website.
!Solution
# Edit the offending pages.
# Modify external media (links, images, etc.) links so that they all use {{{https}}}.
Although Sabayon Linux is based on Gentoo, it does not use {{{emerge}}} as the default package manager.

Running {{{emerge}}} will result in errors. Use {{{equo}}} instead.
[[Homepage|http://www.apple.com/safari/]]

[[PimpMySafari|http://www.pimpmysafari.com/]]

[[Safari AdBlock|http://burgersoftware.com/en/safariadblock]]
{{{
$ defaults write com.apple.Safari IncludeDebugMenu 1
}}}
Download and run the [[U3 Launchpad Removal Tool|http://www.sandisk.com/Assets/u3/launchpadremoval.exe]].
{{{mzscheme script.lsp}}} will not work.

Use {{{mzscheme -r script.lsp}}} instead.
Type the text for 'SecondaryDark'
Type the text for 'SecondaryLight'
Type the text for 'SecondaryMid'
Type the text for 'SecondaryPale'
AOLSearchLogs

[[Tools]]

ForkBombs

AccessingHotspots

[[NSA Cisco Router Guides|http://www.nsa.gov/ia/guidance/security_configuration_guides/cisco_router_guides.shtml]]
!Windows
# {{{My Computer -> Right-click -> Properties -> Advanced -> Environment variables}}}
# Select a variable and click {{{Edit}}}.
# Separate values with semicolons ({{{;}}}) {{multiline{
{{{
PATH=C:\Windows\System32
}}}
{{{
PATH=C:\Windows\System32; C:\Lua51
}}}
}}}
!Mac OS X, Unix, Linux
# Edit {{{~/.profile}}}, {{{~.bashrc}}}, or another startup script.
# Separate values with colons ({{{:}}}) {{multiline{
{{{
export PATH=$PATH:"~/bin"
}}}
}}}
InstallShell
Add the following to the end of either {{{~/.profile}}} or {{{~/.bashrc}}}:
{{{
cd ~/Desktop
}}}
Add the following to {{{~/.profile}}}:
{{{
set +H
}}}
!Builtin
Windows
* Command Prompt
Mac OS X
* Terminal.app
Unix, Linux
* bash
* xterm
!SSH
[[OpenSSH for Windows|http://sshwindows.sourceforge.net/]]

[[PuTTY Portable|http://portableapps.com/apps/internet/putty_portable]]
!Web-based
[[Ajaxterm|http://antony.lesuisse.org/software/ajaxterm/]]
[[Ajaxterm patch for Firefox 3 and later|https://bugs.launchpad.net/silva/+bug/512236/comments/2]]

[[serFISH|https://www.serfish.com/console/]]
ShellSoftware

[[How to open shells|OpeningShells]]

[[Fix quotes handling|ShellQuotesFix]]

[[Set default directory|ShellDefaultDirectory]]
a compendium of technical spells
Merf's Grimoire
http://merfsgrimoire.tiddlyspot.com
{{{
$ sudo echo "UseDNS no" >> /etc/ssh/sshd_config
$ sudo service ssh restart
}}}
/***
|Name|SnapshotPlugin|
|Source|http://www.TiddlyTools.com/#SnapshotPlugin|
|Documentation|http://www.TiddlyTools.com/#SnapshotPluginInfo|
|Version|1.3.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|save or print HTML+CSS image of rendered document content|
This plugin provides a macro as well as tiddler toolbar commands to create a file or browser window containing the //rendered// CSS-and-HTML that is currently being displayed for selected elements of the current document.
!!!!!Documentation
>see [[SnapshotPluginInfo]]
!!!!!Configuration
<<<
<<option chkSnapshotHTMLOnly>> output HTML only (omit CSS)
<<<
!!!!!Revisions
<<<
2009.10.12 1.3.0 added multi-file story snapshot
|please see [[SnapshotPluginInfo]] for additional revision details|
2008.04.21 1.0.0 initial release - derived from [[NewDocumentPlugin]] with many improvements...
<<<
!!!!!Code
***/
//{{{
version.extensions.SnapshotPlugin= {major: 1, minor: 3, revision: 0, date: new Date(2009,10,12)};

if (config.options.chkSnapshotHTMLOnly===undefined)
	config.options.chkSnapshotHTMLOnly=false;

config.macros.snapshot = {
	snapLabel: "save a snapshot",
	printLabel: "print a snapshot",
	snapPrompt: "save an HTML image",
	printPrompt: "print an HTML image",
	hereID: "here",
	viewerID: "viewer",
	storyID: "story",
	allID: "all",
	askID: "ask",
	askTiddlerID: "askTiddler",
	askDOMID: "askDOM",
	askMsg: "select an element...",
	hereItem: "tiddler: '%0'",
	viewerItem: "tiddler: '%0' (content only)",
	storyItem: "story column (one file)",
	storyFilesItem: "story column (multiple files)",
	allItem: "entire document",
	tiddlerItem: "select a tiddler...",
	IDItem: "select a DOM element by ID...",
	HTMLItem: "[%0] output HTML only (omit CSS)",
	fileMsg: "select or enter a target path/filename",
	defaultFilename: "snapshot.html",
	okmsg: "snapshot written to %0",
	failmsg: "An error occurred while creating %0",
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var printing=params[0]&&params[0]=="print"; if (printing) params.shift();
		params = paramString.parseParams("anon",null,true,false,false);
		var id=getParam(params,"id","here");
		var label=getParam(params,"label",printing?this.printLabel:this.snapLabel);
		var prompt=getParam(params,"prompt",printing?this.printPrompt:this.snapPrompt);
		var btn=createTiddlyButton(place,label,prompt, function(ev){
			this.setAttribute("snapID",this.getAttribute("startID"));
			config.macros.snapshot.go(this,ev)
		});
		btn.setAttribute("startID",id);
		btn.setAttribute("snapID",id);
		btn.setAttribute("printing",printing?"true":"false");
		btn.setAttribute("HTMLOnly",config.options.chkSnapshotHTMLOnly?"true":"false");
	},
	go: function(here,ev) {
		var cms=config.macros.snapshot; // abbreviation
		var id=here.getAttribute("snapID");
		var printing=here.getAttribute("printing")=="true";
		var HTMLOnly=here.getAttribute("HTMLOnly")=="true";

		if (id==cms.askID||id==cms.askTiddlerID||id==cms.askDOMID) {
			cms.askForID(here,ev);
		} else if (id==cms.storyID) {
			story.forEachTiddler(function(t,e) {
				var out=cms.getsnap(e,e.id,printing,HTMLOnly);
				if (printing) cms.printsnap(out);
				else cms.savesnap(out,e.getAttribute('tiddler')+'.html');
			});
		} else {
			if (id==cms.allID) id="contentWrapper";
			var snapElem=document.getElementById(id);
			if (id==cms.hereID || id==cms.viewerID)
				var snapElem=story.findContainingTiddler(here);
			if (snapElem && hasClass(snapElem,"tiddler") && (id==cms.viewerID || HTMLOnly)) {
				// find viewer class element within tiddler element
				var nodes=snapElem.getElementsByTagName("*");
				for (var i=0; i<nodes.length; i++)
					if (hasClass(nodes[i],"viewer")) { snapElem=nodes[i]; break; }
			}
			if (!snapElem) // not in a tiddler or no viewer element or unknown ID
				{ e.cancelBubble=true; if(e.stopPropagation)e.stopPropagation(); return(false); }
			// write or print snapshot
			var out=cms.getsnap(snapElem,id,printing,HTMLOnly);
			if (printing) cms.printsnap(out); else cms.savesnap(out);
		}
		return false;
	},
	askForID: function(here,ev) {
		var ev = ev ? ev : window.event; 
		var cms=config.macros.snapshot; // abbreviation
		var id=here.getAttribute("snapID");
		var indent='\xa0\xa0\xa0\xa0';
		var p=Popup.create(here); if (!p) return false; p.className+=' sticky smallform';
		var s=createTiddlyElement(p,'select'); s.button=here;
		if (id==cms.askID) {
			s.options[s.length]=new Option(cms.askMsg,cms.askID);
			var tid=story.findContainingTiddler(here);
			if(tid) { 
				var title=tid.getAttribute("tiddler");
				if (here.getAttribute("HTMLOnly")!="true")
					s.options[s.length]=new Option(indent+cms.hereItem.format([title]),cms.hereID);
				s.options[s.length]=new Option(indent+cms.viewerItem.format([title]),cms.viewerID);
			}
			s.options[s.length]=new Option(indent+cms.tiddlerItem,cms.askTiddlerID);
			s.options[s.length]=new Option(indent+cms.IDItem,cms.askDOMID);
			s.options[s.length]=new Option(indent+cms.storyItem,"tiddlerDisplay");
			s.options[s.length]=new Option(indent+cms.storyFilesItem,cms.storyID);
			s.options[s.length]=new Option(indent+cms.allItem,"contentWrapper");
		}
		if (id==cms.askDOMID) {
			s.options[s.length]=new Option(cms.IDItem,cms.askDOMID);
			var elems=document.getElementsByTagName("*");
			var ids=[];
			for (var i=0;i<elems.length;i++)
				if (elems[i].id.length && elems[i].className!="animationContainer")
					ids.push(elems[i].id);
			ids.sort();
			for (var i=0;i<ids.length;i++) s.options[s.length]=new Option(indent+ids[i],ids[i]);
		}
		if (id==cms.askTiddlerID) {
			s.options[s.length]=new Option(cms.tiddlerItem,cms.askTiddlerID);
			var elems=document.getElementsByTagName("div");
			var ids=[];
			for (var i=0;i<elems.length;i++) { var id=elems[i].id;
				if (id.length && id.substr(0,story.idPrefix.length)==story.idPrefix && id!="tiddlerDisplay")
					ids.push(id);
			}
			ids.sort();
			for (var i=0;i<ids.length;i++) s.options[s.length]=new Option(indent+ids[i].substr(story.idPrefix.length),ids[i]);
		}
		s.options[s.length]=new Option(cms.HTMLItem.format([here.getAttribute("HTMLOnly")=="true"?"\u221a":"_"]),cms.HTMLItem);
		s.onchange=function(ev){
			var ev = ev ? ev : window.event; 
			var cms=config.macros.snapshot; // abbreviation
			var here=this.button;
			if (this.value==cms.HTMLItem) {
				config.options.chkSnapshotHTMLOnly=!config.options.chkSnapshotHTMLOnly;
				here.setAttribute("HTMLOnly",config.options.chkSnapshotHTMLOnly?"true":"false");
				config.macros.option.propagateOption("chkSnapshotHTMLOnly","checked",
					config.options.chkSnapshotHTMLOnly,"input");
			} else
				here.setAttribute("snapID",this.value);
			config.macros.snapshot.go(here,ev);
			return false;
		};
		Popup.show();
		ev.cancelBubble=true;
		if(ev.stopPropagation)ev.stopPropagation();
		return false;
	},
	getpath: function() {
		// get current path
		var path=getLocalPath(window.location.href);
		var slashpos=path.lastIndexOf("/");
		if (slashpos==-1) slashpos=path.lastIndexOf("\\"); 
		if (slashpos!=-1) path=path.substr(0,slashpos+1); // trim filename
		return path;
	},
	getsnap: function(snapElem,id,printing,HTMLOnly) {
		var cms=config.macros.snapshot; // abbreviation
		var out='<head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" />';
		if (printing)
			out+='<base href="file:///'+cms.getpath().replace(/\\/g,'/')+'"></base>\n';
		if (!HTMLOnly) {
			var styles=document.getElementsByTagName('style');
			var fmt='<style>\n/* stylesheet=%0 */\n%1\n\n</style>\n';
			for(var i=0; i < styles.length; i++)
				out+=fmt.format([styles[i].getAttribute('id'),styles[i].innerHTML]);
		}
		out+='</head>\n';

		var elems=snapElem.getElementsByTagName('input');
		for (var i=0; i<elems.length; i++) { var e=elems[i];
			if (e.type=='text')		e.defaultValue=e.value;
			if (e.type=='checkbox')	 	e.defaultChecked=e.checked;
			if (e.type=='radiobutton')	e.defaultChecked=e.checked;
		}
		var elems=snapElem.getElementsByTagName('textarea');
		for (var i=0; i<elems.length; i++)	elems[i].defaultValue=elems[i].value;

		var fmt='<body>\n\n<div class="%0">%1</div>\n\n</body>\n';
		out+=fmt.format([(id==cms.viewerID?'tiddler viewer':''),snapElem.innerHTML]);

		return '<html>\n'+out+'</html>';
	},
	printsnap: function(out) {
		var win=window.open("","_blank","");
		win.document.open();
		win.document.writeln(out);
		win.document.close();
		win.focus(); // bring to front
		win.print(); // trigger print dialog
	},
	savesnap: function(out,target) {
		var cms=config.macros.snapshot; // abbreviation
		// make sure we are local
		if (window.location.protocol!="file:")
			{ alert(config.messages.notFileUrlError); return; }
		var target=target||cms.askForFilename(cms.fileMsg,cms.getpath(),cms.defaultFilename);
		if (!target) return; // cancelled by user
		// if specified file does not include a path, assemble fully qualified path and filename
		var slashpos=target.lastIndexOf("/"); if (slashpos==-1) slashpos=target.lastIndexOf("\\");
		if (slashpos==-1) {
			var h=document.location.href;
			var cwd=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf('/')+1)));
			target=cwd+target;
		}
		var link="file:///"+target.replace(/\\/g,'/'); // link for message text
		var ok=saveFile(target,convertUnicodeToUTF8(out));
		var msg=ok?cms.okmsg.format([target]):cms.failmsg.format([target]);
		displayMessage(msg,link);
	},
	askForFilename: function(msg,path,file) {
		if(window.Components) { // moz
			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, nsIFilePicker.modeSave);
				var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
				thispath.initWithPath(path);
				picker.displayDirectory=thispath;
				picker.defaultExtension='html';
				picker.defaultString=file;
				picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
				if (picker.show()!=nsIFilePicker.returnCancel) var result=picker.file.persistentDescriptor;
			}
			catch(e) { alert('error during local file access: '+e.toString()) }
		}
		else { // IE
			try { // XP/Vista only
				var s = new ActiveXObject('UserAccounts.CommonDialog');
				s.Filter='All files|*.*|Text files|*.txt|HTML files|*.htm;*.html|';
				s.FilterIndex=3; // default to HTML files;
				s.InitialDir=path;
				s.FileName=file;
				if (s.showOpen()) var result=s.FileName;
			}
			catch(e) { var result=prompt(msg,path+file); } // fallback for non-XP IE
		}
		return result;
	}
};
//}}}

// // TOOLBAR DEFINITIONS
//{{{
config.commands.snapshotSave = {
	text: "snap",
	tooltip: config.macros.snapshot.snapPrompt,
	handler: function(ev,src,title) {
		src.setAttribute("snapID","ask");
		src.setAttribute("printing","false");
		src.setAttribute("HTMLOnly",config.options.chkSnapshotHTMLOnly?"true":"false");
		config.macros.snapshot.go(src,ev);
		return false;
	}
};
config.commands.snapshotPrint = {
	text: "print",
	tooltip: config.macros.snapshot.printPrompt,
	handler: function(ev,src,title) {
		src.setAttribute("snapID","ask");
		src.setAttribute("printing","true");
		src.setAttribute("HTMLOnly",config.options.chkSnapshotHTMLOnly?"true":"false");
		config.macros.snapshot.go(src,ev);
		return false;
	}
};
//}}}

// // COPIED FROM [[StickyPopupPlugin]] TO ELIMINATE PLUGIN DEPENDENCY
//{{{
if (config.options.chkStickyPopups==undefined) config.options.chkStickyPopups=false;
Popup.stickyPopup_onDocumentClick = function(ev)
{
	// if click is in a sticky popup, ignore it so popup will remain visible
	var e = ev ? ev : window.event; var target = resolveTarget(e);
	var p=target; while (p) {
		if (hasClass(p,"popup") && (hasClass(p,"sticky")||config.options.chkStickyPopups)) break;
		else p=p.parentNode;
	}
	if (!p) // not in sticky popup (or sticky popups disabled)... use normal click handling
		Popup.onDocumentClick(ev);
	return true;
};
try{removeEvent(document,"click",Popup.onDocumentClick);}catch(e){};
try{addEvent(document,"click",Popup.stickyPopup_onDocumentClick);}catch(e){};
//}}}
/***
|Name|SnapshotPluginInfo|
|Source|http://www.TiddlyTools.com/#SnapshotPlugin|
|Documentation|http://www.TiddlyTools.com/#SnapshotPluginInfo|
|Version|1.3.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|documentation|
|Description|Documentation for SnapshotPlugin|
This plugin provides a macro as well as tiddler toolbar commands that creates a file or opens a new browser window containing the //rendered// HTML and CSS style definitions that are being displayed for selected elements of the current document.
!!!!!Usage:
<<<
As a macro embedded in tiddler content:
{{{
<<snapshot print label:text prompt:text id:elementID|here|viewer|story|all|ask>
}}}
where:
*''print'' //(optional)//<br>when present, causes the snapshot output to be directed to a new browser tab/window instead of saving it to a file.  In addition, the print dialog for that tab/window is automatically invoked.
*''label'' //(optional)//<br>is the text to be displayed for the command link generated by the macro
*''prompt'' //(optional)//<br>is the 'tool tip' message displayed when you mouseover the command link
*''id:...'' //(optional)//<br>specifies the document element to be captured, and can be one of:
**''elementID''<br>is a specific DOM element ID, such as "displayArea", "mainMenu", "contentWrapper", etc.
**''here''<br>the containing tiddler in which the macro (or toolbar command) occurs, including the tiddler title and subtitle (date/time/author) information.
**''viewer''<br>same as ''here'', but omits the tiddler title, subtitle and toolbar elements (i.e., it includes //only// the content of the tiddler)
**''story''<br>selects all currently displayed tiddlers (i.e., the 'story column')
**''all''<br>selects the entire document contents, including page header, main menu and sidebar displays
**''ask''<br>when the snapshot command link is clicked, a droplist is displayed so you can choose from several pre-defined elements: "current tiddler", "story column", or "entire document", or "DOM element ID..."  When DOM element ID is chosen, the droplist is refreshed to show the individual ID's for all currently rendered DOM elements (at least, the ones that have ID's).  For any given DOM element ID, only the portions of the document that are contained //within// the specified DOM element will be transcribed to the resulting snapshot or print output.  
//''NOTE: when no parameters are specified, the macro creates a snapshot file using the containing tiddler as the default element.'' (e.g., equivalent to {{{<<snapshot id:here>>}}}//

The snapshot/print functions can also be embedded as tiddler toolbar commands in [[ViewTemplate]]:
{{{
<span class='toolbar' macro='toolbar snapshotSave'></span>
<span class='toolbar' macro='toolbar snapshotPrint'></span>
}}}
* when invoked via toolbar commands, the "id:ask" option is automatically applied, and a droplist of elements to choose from is displayed.

Please note that, although the snapshot/print that is created using the HTML+CSS of the displayed content, ''there is NO javascript code'' written into the snapshot.  As a result, the snapshot only ''reproduces the //appearance// of the displayed content, allowing you to //view// or //print// the result'', but does not permit you to interact with it in other ways.

For example, even simple processing (such as mouseover highlighting) will not function from the snapshot.  You can't click a TiddlyLink to open other tiddlers, because A) there is no code that handles the click and B) there is no underlying 'storeArea' (and core code) to retrieve and render anything!  You also can't use ANY command links, since these also require javascript code (and the core) to operate. 
<<<
!!!!!Examples:
<<<
{{{<<snapshot>>}}}: <<snapshot>>
{{{<<snapshot id:mainMenu>>}}}: <<snapshot id:mainMenu>>
{{{<<snapshot print id:story>>}}}: <<snapshot print id:story>>
{{{<<snapshot print id:ask>>}}}: <<snapshot print id:ask>>
{{{<<snapshot print noCSS id:viewer>>}}}: <<snapshot print noCSS id:viewer>>
<<<
!!!!!Configuration
<<<
<<option chkSnapshotHTMLOnly>> output HTML only (omit CSS)
<<<
!!!!!Revisions
<<<
2009.10.12 1.3.0 added multi-file story snapshot
2009.09.25 1.2.1 in getSnap(), added META tag to set UTF-8 encoding for I18N support
2009.06.04 1.2.0 added handling in getSnap() so current form input values are shown in snapshots
2008.05.16 1.1.1 added try..catch around addEvent/removeEvent calls to avoid error in Opera
2008.04.28 1.1.0 removed 'viewerHTML' from 'ask' droplist and replaced with toggle for "output HTML only".  Removed 'noCSS' parameter and replaced with config.options.chkSnapshotHTMLOnly global option.  Added "select a tiddler..." to 'ask' droplist
2008.04.24 1.0.1 in saveSnap(), convert output from Unicode to UTF before passing to saveFile().  Fixes "unknown name" error in IE's file.Write() function.
2008.04.21 1.0.0 initial release - derived from [[NewDocumentPlugin]] with many improvements, including: "ask for ID" using droplist of available DOM elements, use "<base href=...>" for correctly resolving image references, wrap 'viewer only' output in class="tiddler viewer" for proper application of inherited CSS styles, snapshotSave and snapshotPrint tiddler toolbar command definitions, and more...

__Excerpted revisions from [[NewDocumentPlugin]] (obsolete)__
2008.04.20 1.8.0 added support for 'noCSS' and 'viewer' params for alternative snapshot output
2007.03.30 1.7.0 added support for "print" param as alternative for "snap".  When "print" is used, the filename is ignored and ouput is directed to another browser tab/window, where the print dialog is then automatically triggered.
2007.03.30 1.6.1 added support for "here" keyword for current tiddler elementID and "prompt:text" param for specifying tooltip text
2006.10.18 1.5.0 new optional param for 'snap'... specify alternative DOM element ID (default is still "contentWrapper").  Based on a suggestion from Xavier Verges.
2006.03.09 1.2.0 added special "snap" filter parameter to generate and write "snapshot" files containing static HTML+CSS for currently rendered document.
2006.02.03 1.0.0 Created.
<<<
[[*nix|*nix]]

[[Mobile]]

MacOSX

[[Windows]]

AudioVideo

BitTorrent

[[Emulator]]

[[Networking Tools|Tools]]

OpenSourceSoftware

[[Proxies]]

[[USB]]

VideoGames

WebBrowsers

DiskSpace

[[Serials.ws|http://www.serialsws.org/]]
#mainMenu a { color: #f00; }
#mainMenu a:hover { color: #fff; background: #f00; }
<<snapshot save label:snap prompt:text id:all>>
!Problem
~TF2 has an empty server list.
!Solution
# Download [[MasterServers.vdf|https://support.steampowered.com/downloads/1452-HCVB-6984/MasterServers.vdf]].
# Place {{{MasterServers.vdf}}} in {{{C:\Program Files\Steam\config\}}} or {{{C:\Program Files (x86)\Steam\config\}}}.
# {{{ MasterServers.vdf -> Right click -> Properties -> General }}}
# Check {{{Read-only}}}.
# Click {{{OK}}}.
# Re-start Steam.
Type the text for 'TertiaryDark'
Type the text for 'TertiaryLight'
Type the text for 'TertiaryMid'
Type the text for 'TertiaryPale'
[[Emacs|http://www.gnu.org/software/emacs/]] / [[Aquamacs|http://aquamacs.org/]]

[[nano|http://www.nano-editor.org/]]

[[Notepad++|http://notepad-plus-plus.org/]] / [[Notepad++ Portable|http://portableapps.com/apps/development/notepadpp_portable]]

[[Smultron|http://smultron.sourceforge.net/]]

[[TextMate|http://macromates.com/]] / [[E TextEditor|http://www.e-texteditor.com/]]

[[TextPad|http://textpad.com/]]

ViWontCopyBetweenFiles

[[Vim|http://www.vim.org/]] / [[gVim Portable|http://portableapps.com/apps/development/gvim_portable]]

[[Visual Studio Express|http://www.microsoft.com/express/]]

[[Wikipedia: Comparison of text editors|http://en.wikipedia.org/wiki/Comparison_of_text_editors]]
[[Homepage|http://www.torproject.org/vidalia/]]
[[Tor Check|https://check.torproject.org/]]
[[Bridges|https://bridges.torproject.org/]]

TorVidaliaMacTLSError
WindowsUnableToStartTor
TorBlocked
!Clients
* [[TorK|http://www.anonymityanywhere.com/tork/]]
* [[Torbutton|https://addons.mozilla.org/en-US/firefox/addon/2275/]]
!Servers
* [[Core.onion|http://eqt5g4fuenphqinx.onion/]]
* [[FirstSale|http://voba3xuuqisvloqe.onion/]]
* [[For Dummies|http://am4wuhz3zifexz5u.onion/Library/English/For_Dummies/]]
[[Homepage|http://tiddlyspot.com/]]

A free, synchronized, password-protected host for [[TiddlyWikis|TiddlyWiki]].
[[Homepage|http://tiddlywiki.com/]]

[[Syntax|http://tiddlypocketbook.com/]]

~TiddlyWiki is a localized personal wiki.

Each ~TiddlyWiki exists as a single HTML file which can be uploaded, downloaded, shared, and backed up at will.

~TiddlyWikis are hosted at TiddlySpot.

TiddlyWikiAlwaysOpenTop
# Save the tiddlywiki.
# Search for {{{Story.prototype.positionTiddler}}}.
# Replace the function with the following code: {{multiline{
{{{
Story.prototype.positionTiddler = function(srcElement)
{
	var place = this.getContainer();
	var before = place.firstChild;
/*	var before = null;
	if(typeof srcElement == "string") {
		switch(srcElement) {
		case "top":
			before = place.firstChild;
			break;
		case "bottom":
			before = null;
			break;
		}
	} else {
		var after = this.findContainingTiddler(srcElement);
		if(after == null) {
			before = place.firstChild;
		} else if(after.nextSibling) {
			before = after.nextSibling;
			if(before.nodeType != 1)
				before = null;
		}
	}*/
	return before;
};
}}}
}}}
# Search for {{{Story.prototype.displayTiddler}}}.
# Replace the function with the following code: {{multiline{
{{{
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,unused,customFields,toggle,animationSrc)
{
	var title = (tiddler instanceof Tiddler) ? tiddler.title : tiddler;
	var tiddlerElem = this.getTiddler(title);
	if(tiddlerElem) {
		if(toggle)
			this.closeTiddler(title,true);
		else
			this.refreshTiddler(title,template,false,customFields);
	} else {
		var place = this.getContainer();
		var before = this.positionTiddler(srcElement);
		tiddlerElem = this.createTiddler(place,before,title,template,customFields);
	}
	if(animationSrc && typeof animationSrc !== "string") {
		srcElement = animationSrc;
	}
	if(srcElement && typeof srcElement !== "string") {
		window.scrollTo(0, 0);
		/*if(config.options.chkAnimate && (animate == undefined || animate == true) && anim && typeof Zoomer == "function" && typeof Scroller == "function")
			anim.startAnimating(new Zoomer(title,srcElement,tiddlerElem),new Scroller(tiddlerElem));
		else
			window.scrollTo(0, ensureVisible(tiddlerElem));*/
	}
	return tiddlerElem;
};
}}}
}}}
* [[Aircrack-ng|http://aircrack-ng.org/]]
* [[Macshift|http://devices.natetrue.com/macshift/]]
* [[NetStumbler|http://www.netstumbler.com/]] / [[iStumbler|http://www.istumbler.net/]]
* [[NeoPwn|http://www.neopwn.com/]]
* [[Nmap|http://nmap.org/]]
* [[Snort|http://www.snort.org/]] / [[AirSnort|http://airsnort.shmoo.com/]]
* [[Wireshark|http://www.wireshark.org/]]
* [[Ping.eu|http://ping.eu/]]
See [[Distros]] for more.
# Open {{{Settings -> Network}}}.
# Select {{{My ISP blocks connections to the Tor network
# Click {{{Find Bridges Now}}}.
# Restart Tor.
If {{{error TLS}}} occurs, perform the following steps:
# Download and install the latest [[Vidalia|http://www.torproject.org/vidalia/]].
# Download and install the latest [[Tor bundle|https://www.torproject.org/dist/osx/]].
# Relaunch Vidalia.
# Confirm with [[Check Tor|https://check.torproject.org/]].
/***
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 = 'merfsgrimoire';

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

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

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

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

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

});
//}}}
SanDiskRemoveU3Launcher

[[PortableApps|http://portableapps.com/]]
A Universal Turing Machine is proven to be able to perform any computation whatsoever, given enough memory and time.

Systems that satisfy this condition are called "Turing complete".

Many programming languages such as [[Brainfuck]] and LaTeX are Turing complete.

[[Rule 110|http://en.wikipedia.org/wiki/Rule_110]] is Turing complete.
{{{sudo apt-get install git-core}}}
{{{dpkg -L}}}

{{{dpkg --list}}}
!Error
{{{
The following packages have been kept back
}}}
!Solution
{{{
$ sudo aptitude dist-upgrade
}}}
{{{
ln -s oldfile linkynewfile
}}}
{{{
cd /var/log/
sudo rm mail*
sudo rm syslog*
}}}
{{{
$ du -h DIRECTORY | grep -v /
}}}
{{{
df -h
}}}
{{{
# kill -9 $( lsof -i:SOME_PORT -t )
}}}
{{{
sudo netstat -ap | grep PORT
}}}
From [[Atomic Spin|http://spin.atomicobject.com/2010/08/18/undelete?utm_source=reddit&utm_medium=social-media&utm_campaign=technical]]:
{{{
# grep -a -B 25 -A 100 'some string in the file' /dev/sda1 > results.txt
}}}
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 03/09/2010 23:47:07 | Merf | [[/|http://merfsgrimoire.tiddlyspot.com/]] | [[store.cgi|http://merfsgrimoire.tiddlyspot.com/store.cgi]] | . | [[index.html | http://merfsgrimoire.tiddlyspot.com/index.html]] | . |
| 04/09/2010 01:05:03 | Merf | [[/|http://merfsgrimoire.tiddlyspot.com/]] | [[store.cgi|http://merfsgrimoire.tiddlyspot.com/store.cgi]] | . | [[index.html | http://merfsgrimoire.tiddlyspot.com/index.html]] | . |
| 06/09/2010 14:23:18 | Merf | [[/|http://merfsgrimoire.tiddlyspot.com/]] | [[store.cgi|http://merfsgrimoire.tiddlyspot.com/store.cgi]] | . | [[index.html | http://merfsgrimoire.tiddlyspot.com/index.html]] | . |
| 08/09/2010 11:12:21 | Merf | [[/|http://merfsgrimoire.tiddlyspot.com/]] | [[store.cgi|http://merfsgrimoire.tiddlyspot.com/store.cgi]] | . | [[index.html | http://merfsgrimoire.tiddlyspot.com/index.html]] | . |
| 08/09/2010 17:09:12 | Merf | [[/|http://merfsgrimoire.tiddlyspot.com/]] | [[store.cgi|http://merfsgrimoire.tiddlyspot.com/store.cgi]] | . | [[index.html | http://merfsgrimoire.tiddlyspot.com/index.html]] | . |
| 14/09/2010 00:33:56 | Merf | [[/|http://merfsgrimoire.tiddlyspot.com/]] | [[store.cgi|http://merfsgrimoire.tiddlyspot.com/store.cgi]] | . | [[index.html | http://merfsgrimoire.tiddlyspot.com/index.html]] | . |
| 05/11/2010 19:28:54 | Merf | [[/|http://merfsgrimoire.tiddlyspot.com/]] | [[store.cgi|http://merfsgrimoire.tiddlyspot.com/store.cgi]] | . | [[index.html | http://merfsgrimoire.tiddlyspot.com/index.html]] | . |
| 05/11/2010 20:26:11 | Merf | [[merfsgrimoire.html|file:///Users/andrew/Downloads/merfsgrimoire.html]] | [[store.cgi|http://merfsgrimoire.tiddlyspot.com/store.cgi]] | . | [[index.html | http://merfsgrimoire.tiddlyspot.com/index.html]] | . |
| 05/11/2010 20:29:07 | Merf | [[/|http://merfsgrimoire.tiddlyspot.com/]] | [[store.cgi|http://merfsgrimoire.tiddlyspot.com/store.cgi]] | . | [[index.html | http://merfsgrimoire.tiddlyspot.com/index.html]] | . |
| 05/11/2010 20:47:45 | Merf | [[/|http://merfsgrimoire.tiddlyspot.com/]] | [[store.cgi|http://merfsgrimoire.tiddlyspot.com/store.cgi]] | . | [[index.html | http://merfsgrimoire.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");


//}}}

!Sources
* [[User-Agents.org|http://www.user-agents.org/]]
* [[QAInsight.net|http://www1.qainsight.net:8080/2007/05/18/Four+Links+To+UserAgent+List+And+An+Update+To+The+Useragent+Import.aspx]]
!All browsers
Replace your browser's useragent with one from [[UserAgentString.com|http://www.useragentstring.com/pages/useragentstring.php]].
!Firefox
# Install [[User Agent Switcher|https://addons.mozilla.org/en-US/firefox/addon/59/]].
# Save the following as {{{useragents.xml}}} and import into User Agent Switcher: {{multiline{
{{{
<useragentswitcher>
	<useragent description="Internet Explorer 6 (Windows XP)" useragent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" appname="Microsoft Internet Explorer" appversion="4.0 (compatible; MSIE 6.0; Windows NT 5.1)" platform="Win32" vendor="" vendorsub=""/>
	<useragent description="Netscape 4.8 (Windows XP)" useragent="Mozilla/4.8 [en] (Windows NT 5.1; U)" appname="Netscape" appversion="4.8 [en] (Windows NT 5.1; U)" platform="Win32" vendor="" vendorsub=""/>
	<useragent description="Opera 8.51 (Windows XP)" useragent="Opera/8.51 (Windows NT 5.1; U; en)" appname="Opera" appversion="8.51 (Windows NT 5.1; U; en)" platform="Win32" vendor="" vendorsub=""/>
	<useragent description="MegaUpload" useragent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Alexa Toolbar)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Google robot 66.249.64.XXX" useragent="Googlebot/2.1 ( http://www.google.com/bot.html)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Internet Explorer 7 (Windows Vista)" useragent="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" appname="Microsoft Internet Explorer App Version: 4.0 (compatible; MSIE 7.0; Windows NT 6.0)" appversion="" platform="Win32" vendor="" vendorsub=""/>
	<useragent description=":: BROWSERS - Windows ::" useragent="" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="MSIE 6 (Win XP)" useragent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" appname="Microsoft Internet Explorer" appversion="4.0 (Compatible; MSIE 6.0; Windows NT 5.1)" platform="" vendor="" vendorsub=""/>

	<useragent description="MSIE 5.5 (Win 2000)" useragent="Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0 )" appname="Microsoft Internet Explorer" appversion="4.0 (compatible; MSIE 5.5; Windows NT 5.0)" platform="" vendor="" vendorsub=""/>
	<useragent description="MSIE 5.5 (Win ME)" useragent="Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Netscape 4.8 (Win XP)" useragent="Mozilla/4.8 [en] (Windows NT 5.1; U)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Opera 8.0 (Win 2000)" useragent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; en) Opera 8.0" appname="Microsoft Internet Explorer" appversion="4.0 (compatible; MSIE 6.0; Windows NT 5.0; en)" platform="" vendor="" vendorsub=""/>
	<useragent description="Opera 7.51 (Win XP)" useragent="Opera/7.51 (Windows NT 5.1; U) [en]" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Opera 7.5 (Win XP)" useragent="Opera/7.50 (Windows XP; U)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Avant Browser" useragent="Avant Browser/1.2.789rel1 (http://www.avantbrowser.com)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Netscape 7.1 (Win 98)" useragent="Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.4) Gecko Netscape/7.1 (ax)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Multizilla (Win xp)" useragent="Mozilla/5.0 (Windows; U; Windows XP) Gecko MultiZilla/1.6.1.0a" appname="" appversion="" platform="" vendor="" vendorsub=""/>

	<useragent description="Opera 7.5 (Win ME)" useragent="Opera/7.50 (Windows ME; U) [en]" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Netscape 3.01 gold (Win 95)" useragent="Mozilla/3.01Gold (Win95; I)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Netscape 2.02 (Win 95)" useragent="Mozilla/2.02E (Win95; U)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description=":: SPIDERS - search ::" useragent="" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Googlebot 2.1 (New version)" useragent="Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Googlebot 2.1 (Older Version)" useragent="Googlebot/2.1 (+http://www.googlebot.com/bot.html)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Msnbot 1.0 (current version)" useragent="msnbot/1.0 (+http://search.msn.com/msnbot.htm)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Msnbot 0.11 (beta version)" useragent="msnbot/0.11 (+http://search.msn.com/msnbot.htm)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Yahoo Slurp" useragent="Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" appname="" appversion="" platform="" vendor="" vendorsub=""/>

	<useragent description="Ask Jeeves/Teoma" useragent="Mozilla/2.0 (compatible; Ask Jeeves/Teoma)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description=":: BROWSERS -  Mac ::" useragent="" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Safari 125.8 (Mac OSX)" useragent="Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/125.8" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Safari 85 (Mac OSX)" useragent="Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/125.2 (KHTML, like Gecko) Safari/85.8" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="MSIE 5.15 (Mac OS 9)" useragent="Mozilla/4.0 (compatible; MSIE 5.15; Mac_PowerPC)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Firefox 0.9 (Mac OSX )" useragent="Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7a) Gecko/20040614 Firefox/0.9.0+" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Omniweb563 (Mac OSX)" useragent="Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.15" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description=":: BROWSERS - linux/unix/beos ::" useragent="" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Mozilla 1.6 (Debian)" useragent="Mozilla/5.0 (X11; U; Linux; i686; en-US; rv:1.6) Gecko Debian/1.6-7" appname="" appversion="" platform="" vendor="" vendorsub=""/>

	<useragent description="Epiphany (Linux)" useragent="ozilla/5.0 (X11; U; Linux; i686; en-US; rv:1.6) Gecko Epiphany/1.2.5" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Epiphany (Ubuntu)" useragent="Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.3) Gecko/20040924 Epiphany/1.4.4 (Ubuntu)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Galeon 1.3.14 (Linux)" useragent="Mozilla/5.0 (X11; U; Linux; i686; en-US; rv:1.6) Gecko Galeon/1.3.14" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Konqueror 3 rc4 (Linux)" useragent="Konqueror/3.0-rc4; (Konqueror/3.0-rc4; i686 Linux;;datecode)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Konqueror (Gentoo)" useragent="Mozilla/5.0 (compatible; Konqueror/3.3; Linux 2.6.8-gentoo-r3; X11;" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Firefox 0.8 (Linux)" useragent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="ELinks 0.9.3 (Kanotix)" useragent="ELinks/0.9.3 (textmode; Linux 2.6.9-kanotix-8 i686; 127x41)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Elinks (Linux)" useragent="ELinks (0.4pre5; Linux 2.6.10-ac7 i686; 80x33)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Links 2.1 (Linux)" useragent="Links (2.1pre15; Linux 2.4.26 i686; 158x61)" appname="" appversion="" platform="" vendor="" vendorsub=""/>

	<useragent description="Links 0.9.1 (Linux)" useragent="Links/0.9.1 (Linux 2.4.24; i386;)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Opera 7.23 (Linux)" useragent="MSIE (MSIE 6.0; X11; Linux; i686) Opera 7.23" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Lynx 2.8.5rel.1 (Linux)" useragent="Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/0.8.12" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="w3m 0.5.1 (Linux)" useragent="w3m/0.5.1" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Links 2 (FreeBSD)" useragent="Links (2.1pre15; FreeBSD 5.3-RELEASE i386; 196x84)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Mozilla 1.7 (FreeBSD)" useragent="Mozilla/5.0 (X11; U; FreeBSD; i386; en-US; rv:1.7) Gecko" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Netscape 4.77 (Irix)" useragent="Mozilla/4.77 [en] (X11; I; IRIX;64 6.5 IP30)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Netscape 4.8 (SunOS)" useragent="Mozilla/4.8 [en] (X11; U; SunOS; 5.7 sun4u)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Net Positive (BeOS)" useragent="Mozilla/3.0 (compatible; NetPositive/2.1.1; BeOS)" appname="" appversion="" platform="" vendor="" vendorsub=""/>

	<useragent description=":: SPIDERS - misc ::" useragent="" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="gulperbot" useragent="Gulper Web Bot 0.2.4 (www.ecsl.cs.sunysb.edu/~maxim/cgi-bin/Link/GulperBot)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Email Wolf" useragent="EmailWolf 1.00" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="grub client" useragent="grub-client-1.5.3; (grub-client-1.5.3; Crawl your own stuff with http://grub.org)" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="download demon" useragent="Download Demon/3.5.0.11" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="omni web" useragent="OmniWeb/2.7-beta-3 OWF/1.0" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="winHTTP" useragent="SearchExpress" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="ms url control" useragent="Microsoft URL Control - 6.00.8862" appname="" appversion="" platform="" vendor="" vendorsub=""/>
	<useragent description="Wii" useragent="Opera/9.00 (Nintindo Wii; U; ; 103858; Wii Shop Channel/1.0; en)" appname="" appversion="" platform="" vendor="" vendorsub=""/></useragentswitcher>
}}}
}}}
See [[Lagmonster.org|http://www.lagmonster.org/docs/vi2.html]] for more.

The following apply to both {{{vi}}} and {{{vim}}}.

|!Command|!Keys|
|Save| :w |
|Quit| :q |
|Force Quit| :q! |
|Undo| u |
|Redo| Control+r |
|Insert mode| i |
|Visual mode| ESC |
|Copy lines| :N,My |
|Delete lines| :N,Md |
|Cut lines| :N,Md |
|Paste| p |
!Problem
vi will not copy text between files using {{{yy}}}.
!Solution
Install vim.
TeamFortressNoServerList

[[Fallout3]]

HalfLife2LaunchOptions
{{{Control + Scroll Up / Down}}}
# {{{Start -> Search -> Task Scheduler}}}
# Complete UAC authorization.
# Click {{{Create Task -> General -> YOUR_PROGRAM}}}.
# Select a user account that has Administrator privileges.
# Select {{{Run only when user is logged on}}}.
# Select {{{Run with highest privileges}}}.
# {{{Triggers -> New -> At logon}}}.
# Select {{{Any user}}}.
# Under {{{Advanced Settings}}}, select {{{Enabled}}}.
# {{{OK -> Actions -> New -> Browse -> Locate -> Add arguments -> /Startup}}}.
# Click {{{Settings}}}.
# Select {{{Run task as soon as possible after a scheduled start is missed}}}.
# Deselect {{{Stop the task if it runs longer than:}}}.
# Click {{{OK -> OK}}}.
# Launch {{{YOUR_PROGRAM}}}.
# Deselect any startup options.
# Reboot.
[[Homepage|http://www.microsoft.com/express/]]

[[Nmake standalone|http://support.microsoft.com/default.aspx?scid=kb;en-us;Q132084]]

Microsoft's premier IDE.
!~XGetopt.h
{{{
// XGetopt.h  Version 1.2
//
// Author:  Hans Dietrich
//          hdietrich2@hotmail.com
//
// This software is released into the public domain.
// You are free to use it in any way you like.
//
// This software is provided "as is" with no expressed
// or implied warranty.  I accept no liability for any
// damage or loss of business that this software may cause.
//
// http://www.codeproject.com/KB/cpp/xgetopt.aspx
//
///////////////////////////////////////////////////////////////////////////////

#ifndef XGETOPT_H
#define XGETOPT_H

extern int optind, opterr;
extern char *optarg;

int getopt(int argc, char *argv[], char *optstring);

#endif //XGETOPT_H
}}}
!~XGetopt.cpp
{{{
// XGetopt.cpp  Version 1.2
//
// Author:  Hans Dietrich
//          hdietrich2@hotmail.com
//
// Description:
//     XGetopt.cpp implements getopt(), a function to parse command lines.
//
// History
//     Version 1.2 - 2003 May 17
//     - Added Unicode support
//
//     Version 1.1 - 2002 March 10
//     - Added example to XGetopt.cpp module header
//
// This software is released into the public domain.
// You are free to use it in any way you like.
//
// This software is provided "as is" with no expressed
// or implied warranty.  I accept no liability for any
// damage or loss of business that this software may cause.
//
///////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <tchar.h>

#include "XGetopt.h"

///////////////////////////////////////////////////////////////////////////////
//
//  X G e t o p t . c p p
//
//
//  NAME
//       getopt -- parse command line options
//
//  SYNOPSIS
//       int getopt(int argc, char *argv[], char *optstring)
//
//       extern char *optarg;
//       extern int optind;
//
//  DESCRIPTION
//       The getopt() function parses the command line arguments. Its
//       arguments argc and argv are the argument count and array as
//       passed into the application on program invocation.  In the case
//       of Visual C++ programs, argc and argv are available via the
//       variables __argc and __argv (double underscores), respectively.
//       getopt returns the next option letter in argv that matches a
//       letter in optstring.  (Note:  Unicode programs should use
//       __targv instead of __argv.  Also, all character and string
//       literals should be enclosed in _T( ) ).
//
//       optstring is a string of recognized option letters;  if a letter
//       is followed by a colon, the option is expected to have an argument
//       that may or may not be separated from it by white space.  optarg
//       is set to point to the start of the option argument on return from
//       getopt.
//
//       Option letters may be combined, e.g., "-ab" is equivalent to
//       "-a -b".  Option letters are case sensitive.
//
//       getopt places in the external variable optind the argv index
//       of the next argument to be processed.  optind is initialized
//       to 0 before the first call to getopt.
//
//       When all options have been processed (i.e., up to the first
//       non-option argument), getopt returns EOF, optarg will point
//       to the argument, and optind will be set to the argv index of
//       the argument.  If there are no non-option arguments, optarg
//       will be set to NULL.
//
//       The special option "--" may be used to delimit the end of the
//       options;  EOF will be returned, and "--" (and everything after it)
//       will be skipped.
//
//  RETURN VALUE
//       For option letters contained in the string optstring, getopt
//       will return the option letter.  getopt returns a question mark (?)
//       when it encounters an option letter not included in optstring.
//       EOF is returned when processing is finished.
//
//  BUGS
//       1)  Long options are not supported.
//       2)  The GNU double-colon extension is not supported.
//       3)  The environment variable POSIXLY_CORRECT is not supported.
//       4)  The + syntax is not supported.
//       5)  The automatic permutation of arguments is not supported.
//       6)  This implementation of getopt() returns EOF if an error is
//           encountered, instead of -1 as the latest standard requires.
//
//  EXAMPLE
//       BOOL CMyApp::ProcessCommandLine(int argc, char *argv[]) {
//           int c;
//
//           while ((c = getopt(argc, argv, _T("aBn:"))) != EOF) {
//               switch (c) {
//                   case _T('a'):
//                       TRACE(_T("option a\n"));
//                       //
//                       // set some flag here
//                       //
//                       break;
//
//                   case _T('B'):
//                       TRACE( _T("option B\n"));
//                       //
//                       // set some other flag here
//                       //
//                       break;
//
//                   case _T('n'):
//                       TRACE(_T("option n: value=%d\n"), atoi(optarg));
//                       //
//                       // do something with value here
//                       //
//                       break;
//
//                   case _T('?'):
//                       TRACE(_T("ERROR: illegal option %s\n"), argv[optind-1]);
//                       return FALSE;
//                       break;
//
//                   default:
//                       TRACE(_T("WARNING: no handler for option %c\n"), c);
//                       return FALSE;
//                       break;
//               }
//           }
//           //
//           // check for non-option args here
//           //
//           return TRUE;
//       }
//
///////////////////////////////////////////////////////////////////////////////

char	*optarg;		// global argument pointer
int		optind = 0; 	// global argv index

int getopt(int argc, char *argv[], char *optstring) {
	static char *next = NULL;
	if (optind == 0)
		next = NULL;

	optarg = NULL;

	if (next == NULL || *next == _T('\0')) {
		if (optind == 0)
			optind++;

		if (optind >= argc || argv[optind][0] != _T('-') || argv[optind][1] == _T('\0')) {
			optarg = NULL;
			if (optind < argc)
				optarg = argv[optind];
			return EOF;
		}

		if (_tcscmp(argv[optind], _T("--")) == 0) {
			optind++;
			optarg = NULL;
			if (optind < argc)
				optarg = argv[optind];
			return EOF;
		}

		next = argv[optind];
		next++;		// skip past -
		optind++;
	}

	char c = *next++;
	char *cp = _tcschr(optstring, c);

	if (cp == NULL || c == _T(':'))
		return _T('?');

	cp++;
	if (*cp == _T(':')) {
		if (*next != _T('\0')) {
			optarg = next;
			next = NULL;
		}
		else if (optind < argc) {
			optarg = argv[optind];
			optind++;
		}
		else {
			return _T('?');
		}
	}

	return c;
}
}}}
!Muck.h
{{{
//#pragma once

#include "StdAfx.h"

#include <string>
using namespace std;

class Muck {
	public:
		static std::string Muck::SysToStd(System::String^ managed);
		static System::String^ Muck::StdToSys(std::string stl);
};
}}}
!Muck.cpp
{{{
// From http://www.cs.virginia.edu/~cs216/Fall2005/labs/helpdocs/system.string.html
// Included for all those who can't afford VisualStudio RichFuck Edition

#include "StdAfx.h"
#include "Muck.h"

#include "stdafx.h"

#include <iostream>
#include <string>
using namespace std;

#using <mscorlib.dll>
using namespace System;
using namespace System::Text;
using namespace System::Runtime::InteropServices;

//Converts a System::String to a std::string
//This code assumes that you have used the following namespace:
// using namespace System::Runtime::InteropServices;
std::string Muck::SysToStd(System::String^ managed) {
    //get a pointer to an array of ANSI chars
    char *chars = (char*) Marshal::StringToHGlobalAnsi(managed).ToPointer();

    //assign the array to an STL string
    std::string stl = chars;

    //free the memory used by the array
    //since the array is not managed, it will not be claimed by the garbage collector
    Marshal::FreeHGlobal(System::IntPtr(chars));

    return stl;
}

//Converts a std::string to a System::String
//This code assumes that you have used the following namespace:
// using namespace System::Runtime::InteropServices
System::String^ Muck::StdToSys(std::string stl) {
	//the c_str() function gets a char array from the STL string,
	//but the PtrToStringAnsi function wants a int array, so it gets casted

	return Marshal::PtrToStringAnsi(System::IntPtr((int*) stl.c_str()));
}
}}}
[[BuiltWith|http://builtwith.com/]]

[[W3C|http://www.w3.org/]]

[[W3Schools|http://www.w3schools.com/]]

[[Wayback Machine|http://www.archive.org/web/web.php]]

[[HTMLDog|http://www.htmldog.com/]]

[[TinyURL|http://tinyurl.com/]]

[[Browsershots|http://browsershots.org/]]

WebBrowsers

[[PHP]]

ContentManagementSystems

OptOutOfVerizonSearchService

ApacheHasNoVirtualHosts

ApacheModuleAlreadyLoaded

[[CSS]]

DisectURI

YubNub

DownloadYouTube

[[BitNami|http://bitnami.org/]]

[[Delicious]]

[[AnyClient|http://www.anyclient.com/applet.html]]

[[FTPLive|http://www.ftplive.com/ftp.html]]
[[Firefox]]

GoogleChrome

InternetExplorer

[[Lynx]]

[[Opera]]

[[Safari]]

UserAgents
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://merfsgrimoire.tiddlyspot.com/controlpanel]] (your control panel username is //merfsgrimoire//).
<<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.

TiddlySpot plugins: LoadRemoteFileThroughProxy, PasswordOptionsPlugin, TspotSetupPlugin, UploadLog, UploadPlugin
# Change {{{#include <winsparkle.h>}}} to {{{#include "winsparkle.h"}}}.
# Navigate to {{{Project Properties}}}.
# Set {{{Configuration}}} to {{{All Configurations}}}.
# Navigate to {{{Configuration Properties -> Linker -> Input}}}.
# Add {{{YOUR_LIB.lib}}} to {{{Additional Dependencies}}}.
# Navigate to {{{Configuration Properties -> General -> Common Language Runtime Support}}}.
# Change {{{Pure MSIL Common Language Runtime Support (/clr: pure)}}} to {{{Common Language Runtime Suport (/clr)}}}.
# Navigate to {{{Configuration Properties -> Linker -> Optimization}}}.
# Set {{{Link Time Code Generation}}} to {{{Default}}}.
ResetWindowsPassword

VistaUnblockStartupItems

WindowsEnableTaskManager

WindowsUpdateError

WindowsDeleteLockedFile

WindowsNotepadSaveAnyFileType

WindowsViewHiddenTaskbarFolder

VistaResizeDesktopIcons

DeletePageFileOnShutdown

[[Process Explorer|http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx]]

[[TweakUAC|http://www.tweak-uac.com/]]

[[The Windows Apps You Never Need To Install|http://www.dashes.com/anil/2006/08/the-windows-app.html]]
Download and run [[Unlocker|http://ccollomb.free.fr/unlocker/]] and [[WhoLockMe|http://www.dr-hoiby.com/WhoLockMe/]].
# Save the following as {{{enable-task-manager.reg}}}: {{multiline{
{{{
REGEDIT5

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System] DisableTaskMgr="0"
}}}
}}}
# Open {{{enable-task-manager.reg}}}.
{{{ghci}}} may yield an error {{{ghci: Unable to locate ghc.exe}}}.
!Solution
# Uninstall Haskell Platform.
# Download and install the latest [[Haskell Platform|http://hackage.haskell.org/platform/windows.html]].
Notepad can save a file as any file type or extension.

# Navigate to {{{ File -> Save As... -> File name: }}}
# Surround the file name with quotes, e.g. {{{"myscript.bat"}}} or {{{"records.dat"}}}.
# Click {{{Save}}}.
If you see an error {{{unable to start Tor}}}, you have the wrong components installed.
!Solution
# Uninstall Vidalia.
# Download and install [[Vidalia Bundle|http://www.torproject.org/download.html]].
[[Source|http://support.microsoft.com/kb/958047]]
# Save the following as {{{clear.bat}}} {{multiline{
{{{
net stop bits
net stop wuauserv
Ipconfig /flushdns
cd "Documents and Settings\All Users\Application Data\Microsoft\Network\Downloader"
del qmgr0.dat
del qmgr1.dat
net start bits
net start wuauserv
}}}
}}}
# Run {{{clear.bat}}}.
See [[SevenForums|http://www.sevenforums.com/general-discussion/5045-windows-7-shell-commands.html]] for more shell commands.

{{{Start -> Run -> shell:user pinned ->Enter}}}
[[Homepage|http://yubnub.org/]]

[[Installation|http://yubnub.org/documentation/describe_installation]]

~YubNub searches search engines by using keywords as commands.

Examples:
* [[g cats|http://yubnub.org/parser/parse?command=g+cats]]
* [[y dogs|http://yubnub.org/parser/parse?command=y+dogs]]
* [[fl cats and dogs|http://yubnub.org/parser/parse?command=fl+cats+and+dogs]]
Code to execute ~YubNub commands:
{{{
#!/usr/bin/env lua
parser="http://yubnub.org/parser/parse?command="
command=table.concat(arg, "+")
os.execute("open " .. parser .. command)
}}}