HowTos is loading ...

Requires Javascript.
HowTos - An unthemed collection of instructions.
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]];}

#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]];}

#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 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 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:0em 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 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

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

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

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

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

.fieldsetFix {border:0; padding:0; margin:1px 0px 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 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 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 use a logographic writing system and 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;}

.htmlarea .toolbarHA table {border:1px solid ButtonFace; margin:0em 0em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<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 closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></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 +saveTiddler -cancelTiddler deleteTiddler'></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'></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
~~(This HowTo first appeared at [[irRegular Expressions|http://laus-deo.net/ie/index.php?entry=entry060330-195911]].)~~

#Decide you want to change mobile phone providers, but keep your same number.
#Walk into a shop and buy a pre-paid starter kit. They normally cost about $20, and come with a SIM card. If you also want a new phone, you can buy a starter kit + phone.
#Phone up the mobile phone company to "activate" your phone. During the process tell the person (or press the right buttons) to get your old phone number ported to the new system.
#Wait a few hours. Eventually your old SIM card will stop working. At that point, remove your old SIM card and insert your new one.
#Your done.

This process is really easy, you don't have to go to a special shop - you can buy starter kits from most supermarkets and corner stores.

You may have some trouble if your mobile phone is currently bundled with your home phone. To get around this, call up your current provider and get a magic number that identifies your mobile phone in their system. Otherwise, like us it may take a week to transfer the number, not a few hours.
[[Welcome]]
HowTos
This is a list of all the HowTos:
<<tagging howto>>
There seems to be a slight problem when printing on landscape orientated paper under Linux.  I've observed this problem using both [[Abiword|http://www.abisource.com]] and [[OpenOffice.org Writer|http://www.openoffice.org]] under [[Gnome|http://www.gnome.org]].  I'm also unsure if this problem is only for my particular printer - an HP LaserJet 5L.
Unfortunately the solution to this problem doesn't help situations where the document includes both landscape and portrait pages.

!HowTo Print on Landscape Paper
#Create a document in OpenOffice.org Writer or Abiword
#Set the page format to Landscape.  (In OO.org Writer, this is found in the //Format// menu.)
#Select //File->Print//
#After selecting the correct printer, click the //Properites// button.
#Select //Landscape// as the orientation for the paper.
#Press //OK// to close the //Properties// dialog, and then //OK// to print.
[img[Creative Commons License|http://creativecommons.org/images/public/somerights20.png]]
This work is licensed under a [[Creative Commons Attribution, NonCommercial, NoDerivs 2.1 Australia License|http://creativecommons.org/licenses/by-nc-nd/2.1/au/]].
[[Home|http://daniel.saunders.googlepages.com]]
[[Welcome]]
HowTos
^^[[Edit Menu|MainMenu]]^^
<link rel='alternate' type='application/rss+xml' title='RSS' href='howto.xml'>

<div id="SplashScreen" style="border: 3px solid #ccc; display: block; text-align: center; width: 320px; margin: 100px auto; padding: 50px; color:#000; font-size: 28px; font-family:Tahoma; background-color:#eee;"><b>HowTos</b> is loading<blink> ...</blink><br><br><span style="font-size: 14px; color:red;">Requires Javascript.</span></div>
(Disclaimer: I did this a long time ago and this HowTo is written from memory.  Please don't follow these instructions on a //live// version of either [[SimplePHPBlog|http://www.simplephpblog.com]] or [[WordPress|http://www.wordpress.org]] and send me an email if there are improvements to be made.)

#Get a copy of your [[SimplePHPBlog|http://www.simplephpblog.com]] ''content'' directory onto a machine where you can run ruby.
#Download [[this script|http://daniel.saunders.googlepages.com/import.rb]] copy it into the same directory as your ''content'' directory.  (e.g. if you ''content'' directory is inside a directory called ''blog'', then also put import.rb in this directory.)
#Run the script //ruby import.rb > mysql.txt//.
#The file //mysql.txt// contains all the commands required to build a new [[WordPress|http://www.wordpress.org]] database with all your old posts and comments.
#With a freshly installed [[Wordpress|http://www.wordpress.org]] blog use [[MyPHPAdmin|http://www.phpmyadmin.net/]] to run the commands contained in //MySQL.txt//.
**You do this buy selecting the appropriate database from the drop-down list in the left hand menu.
**Then click the "SQL" tab and copy and paste all the information from //mysql.txt// into this page and run the imported queries.

This howto is based extensively on work done by [[The ByteClub Wiki|http://www.byteclub.net/wiki/Sphpblog_to_wordpress]].
If you are using Windows XP and an LCD monitor and have unreadable text, right-click on your desktop, select //"Properties"// and then click on the //"Appearance"// tab. Click the //"Effects"// button and select //"ClearType"// from the dropdown list below the label //"Use the following method to smooth the edges of screen fonts"//.

(I don't know why the allegedly user-friendly Windows OS doesn't do this automatically when it detects an LCD monitor. I'm pretty sure most modern Linux distro's prompt you to use a similar setting during the installation process.)
*Get two teams lined up facing each other.
*Choose a card (or cards) to be the "scoring card"
*Throw the pack of cards in the air, and let the teams "at it".
*The team that gets the card back to their line wins.
*The only other rule is //be careful and don't hurt anyone//!

It was absolutely insane. Lots of fun and yet no-one was seriously hurt.

(I learnt this game from [[Clay|http://morsel.blog.com]].)
An unthemed collection of instructions.
HowTos
http://daniel.saunders.googlepages.com/howto.html
var old_lewcid_splash_restart=restart;

restart = function()
{   if (document.getElementById("SplashScreen"))
        document.getElementById("SplashScreen").style.display = "none";
    
    old_lewcid_splash_restart();
   
    if (splashScreenInstall)
       {if(config.options.chkAutoSave)
			{saveChanges();}
        displayMessage("TW SplashScreen has been installed, please save and refresh your TW.");
        }
}


var oldText = store.getTiddlerText("MarkupPreHead");
if (oldText.indexOf("SplashScreen")==-1)
   {var siteTitle = store.getTiddlerText("SiteTitle");
   var splasher='\n\n<div id="SplashScreen" style="border: 3px solid #ccc; display: block; text-align: center; width: 320px; margin: 100px auto; padding: 50px; color:#000; font-size: 28px; font-family:Tahoma; background-color:#eee;"><b>'+siteTitle +'</b> is loading<blink> ...</blink><br><br><span style="font-size: 14px; color:red;">Requires Javascript.</span></div>';
   if (! store.tiddlerExists("MarkupPreHead"))
       {var myTiddler = store.createTiddler("MarkupPreHead");}
   else
      {var myTiddler = store.getTiddler("MarkupPreHead");}
      myTiddler.set(myTiddler.title,oldText+splasher,config.options.txtUserName,null,null);
      store.setDirty(true);
      var splashScreenInstall = true;
}
/***

***/
/*{{{*/
Place custom CSS here.
/*}}}*/
This is actually a pretty straight-forward operation and it's a pity that the Ubuntu developers released [[Dapper|http://www.ubuntu.com/news/606released]] with this bug.

This solution works for my [[D-Link DWL-G650+|http://www.dlink.com.sg/products/support.asp?pid=307]] on my laptop, connecting to a [[Netcomm router|http://www.netcomm.com.au/Wireless/eleveng.php#NB9W]], YMMV.

To get this card working (and many other cards that use the [[ACX driver|http://acx100.sf.net]]) open a terminal window and type
{{{
sudo gedit /etc/modprobe.d/options
}}}

At the end of this file, add the following line
{{{
options acx firmware_ver=1.2.1.34
}}}

Then put the card in and it should work as it did under Breezy - that is, with 64 and 128 bit WEP support and no WPA support.

(Please note that I haven't tried using the new [[network-manager|http://www.gnome.org/projects/NetworkManager/]] tool, and am continuing to use the gnome networking tools to configure the network interfaces.  If you network-manager works for you, please [[drop me a line|mailto:daniel.saunders<at>laus-deo.net]].
[[e-Sword|http://www.e-sword.net/]] hasn't worked properly on Linux using [[Wine|http://winehq.org]] since version 0.9.12.  However it's easy to get it work.

#Visit [[dll-files.com|http://www.dll-files.com/dllindex/dll-files.shtml?riched20]] and download riched20.dll.  (If you have a copy of Windows, you could also find this file in the windows/system32 directory.)
#Copy the file riched20.dll into the //system32// directory that Wine uses (probably ~/.wine/drive_c/windows/system32).
#Run //'winecfg'//.
#Select the //Applications// tab.
#Click //Add Application// and browse to the e-Sword executable (probably drive_c/Program Files/e-Sword/e-Sword.exe).
#Check that the new entry for e-Sword is selected in the Applications list. [img[e-Sword Selected|http://daniel.saunders.googlepages.com/e-Sword_selected.png]]
#Select the //Libraries// tab.
#Select //riched20// from the "New Override for library" drop down box and click "add".  
#Run e-Sword using wine and you should now be able to read the bible and commentary text.


!!Links
*[[e-Sword|http://www.e-sword.net/]] 
*[[WineHQ Application Database for e-Sword|http://appdb.winehq.org/appview.php?iVersionId=4786]]
This HowTo wiki is a collection of useful HowTos for things I work out.  ~~(There probable won't be too much content here.)~~  The main audience for this information is myself, but it's on the Internet just in case it helps someone else.  The content will be varied, including anything I want to keep recorded, but will probably lean towards solutions for problems on computers - both for [[Linux|http://www.linux.org]] and [[Windows|http://www.microsoft.com]].

To see the current list of HowTos, click HowTos.

This site is based on [[TiddlyWiki|http://www.tiddlywiki.com]] version <<version>>.  Click [[here|License]] to read the copyright notice.
<<<
''Note: It seems that with release R5F27 of [[KnoppMyth|http://mysettopbox.tv/knoppmyth.html]] the patching of the kernel is no longer needed!''  Just scroll down to "test that it worked" and go from there.
<<<
This ~HowTo outlines how to get the [[WinFast DTV-1000 T's|http://www.leadtek.com.tw/eng/tv_tuner/overview.asp?lineid=6&pronameid=220]] IR port working with [[MythTV|http://mythtv.org]] on a recent debian based distros.  I've used [[KnoppMyth|http://www.mysettopbox.tv/knoppmyth.html]] but this should also work with [[Ubuntu|http://www.ubuntu.com]] and pure [[Debian|http://www.debian.org]].  It may be of use with other Linux distributions as well.

The information in this howto is offered freely to you, but I don't guarantee that it'll be successful and won't completely destroy your Myth box or cause global warming.

I'm assuming that your [[MythTV|http://mythtv.org]] box is working well.  The [[DTV1000|http://www.leadtek.com.tw/eng/tv_tuner/overview.asp?lineid=6&pronameid=220]] should work "out of the box" with [[KnoppMyth R5E50 and R5F1|http://mysettopbox.tv/]] and allow you to watch/record digital TV.  

!Getting the ~DTV1000's IR port to work.
Currently, there is a bug in the cx88 modules in the v4l source tree which means that the IR port is not recognised.  To get your remote control to work, you just need to edit a few lines of code from the latest v4l-dvb source tree.  (Don't be scared, this isn't too hard - it's less scarey than partitioning your hard drive.)

(All these instructions are stolen from http://www.acaciaclose.co.uk/16253/138855.html)

--First, you need to install [[mercurial|http://www.selenic.com/mercurial/wiki/]] and the kernel-headers for your current kernel.
{{{sudo aptitude install mercurial linux-headers-$(uname -r)}}}
If you haven't already, you'll also need to install a C compiler, it's easiest to do this with the build-essential package.
{{{sudo aptitude install build-essential}}}
Now, you need to download the latest version of the v4l-dvb drivers.  From the command line, make your current directory the place where you want to download source code.  For me
{{{cd ~/Downloads}}}
Then run
{{{hg clone http://linuxtv.org/hg/v4l-dvb}}}.
This might take a few minutes based on the speed of your internet connection.--

''I can't get the newest version of v4l-dvb to work'', so instead i downloaded an old snapshot from http://linuxtv.org ({{{wget http://www.linuxtv.org/downloads/snapshots/v4l-dvb-20061209.tar.gz}}}), unzipped and patched.

!!Patch the source code.
Next, we need to make a few minor adjustments to the source code.
Open the file {{{v4l-dvb/linux/drivers/media/video/cx88/cx88-cards.c}}} in your favourite text editor (mine is [[vim|http://www.vim.org]].
Find the entry for {{{CX88_BOARD_WINFAST_DTV1000}}} and add the following lines after .vmux = 0,
{{{
.gpio0 = 0x00F5e700,
.gpio1 = 0x00003004,
.gpio2 = 0x00F5e700,
.gpio3 = 0x02000000,
}}}
So that the full entry reads:
{{{
[CX88_BOARD_WINFAST_DTV1000] = {
  .name = "WinFast DTV1000-T",
  .tuner_type = TUNER_ABSENT,
  .radio_type = UNSET,
  .tuner_addr = ADDR_UNSET,
  .radio_addr = ADDR_UNSET,
  .input = {{
                .type = CX88_VMUX_DVB,
                .vmux = 0,
                .gpio0 = 0x00F5e700,
                .gpio1 = 0x00003004,
                .gpio2 = 0x00F5e700,
                .gpio3 = 0x02000000,
              }},
  .mpeg = CX88_MPEG_DVB,
  },
}}}

Next, open the file {{{v4l-dvb/linux/drivers/media/video/cx88/cx88-input.c}}} in your editor.
Find the entry that says {{{case CX88_BOARD_WINFAST2000XP_EXPERT:}}} and immediately after it add the line
{{{
case CX88_BOARD_WINFAST_DTV1000:
}}}
So the entry reads:
{{{
case CX88_BOARD_WINFAST2000XP_EXPERT:
case CX88_BOARD_WINFAST_DTV1000:
  ir_codes = ir_codes_winfast;
  ir->gpio_addr = MO_GP0_IO;
  ir->mask_keycode = 0x8f8;
  ir->mask_keyup = 0x100;
  ir->polling = 1; /* ms */
  break;
}}}

Finally, open the file {{{v4l-dvb/linux/drivers/media/common/ir-keymaps.c}}}
Find the entry that reads {{{IR_KEYTAB_TYPE ir_codes_winfast[IR_KEYTAB_SIZE] = {}}}
the codes should read as follows (there are only 2 lines to edit):
{{{
IR_KEYTAB_TYPE ir_codes_winfast[IR_KEYTAB_SIZE] = {
  /* Keys 0 to 9 */
  [ 0x12 ] = KEY_0,
  [ 0x05 ] = KEY_1,
  [ 0x06 ] = KEY_2,
  [ 0x07 ] = KEY_3,
  [ 0x09 ] = KEY_4,
  [ 0x0a ] = KEY_5,
  [ 0x0b ] = KEY_6,
  [ 0x0d ] = KEY_7,
  [ 0x0e ] = KEY_8,
  [ 0x0f ] = KEY_9,

  [ 0x15 ] = KEY_BACK, /* THIS NEEDS INSERTING */
  [ 0x00 ] = KEY_POWER,
  [ 0x1b ] = KEY_AUDIO, /* Audio Source */
  [ 0x02 ] = KEY_TUNER, /* TV/FM, not on Y0400052 */
  [ 0x1e ] = KEY_VIDEO, /* Video Source */
  [ 0x16 ] = KEY_INFO, /* Display information */
  [ 0x04 ] = KEY_VOLUMEUP,
  [ 0x08 ] = KEY_VOLUMEDOWN,
  [ 0x0c ] = KEY_CHANNELUP,
  [ 0x10 ] = KEY_CHANNELDOWN,
  [ 0x03 ] = KEY_ZOOM, /* fullscreen */
  [ 0x1f ] = KEY_TEXT, /* closed caption/teletext */
  [ 0x20 ] = KEY_SLEEP,
  [ 0x29 ] = KEY_CLEAR, /* boss key */
  [ 0x14 ] = KEY_MUTE,
  [ 0x2b ] = KEY_RED,
  [ 0x2c ] = KEY_GREEN,
  [ 0x2d ] = KEY_YELLOW,
  [ 0x2e ] = KEY_BLUE,
  [ 0x18 ] = KEY_KPPLUS, /* fine tune + , not on Y040052 */
  [ 0x19 ] = KEY_KPMINUS, /* fine tune - , not on Y040052 */
  [ 0x2a ] = KEY_MEDIA, /* PIP (Picture in picture */
  [ 0x21 ] = KEY_DOT,
  [ 0x13 ] = KEY_ENTER,
  [ 0x11 ] = KEY_LAST, /* Recall (last channel */
  [ 0x22 ] = KEY_PREVIOUS,
  [ 0x23 ] = KEY_PLAYPAUSE,
  [ 0x24 ] = KEY_NEXT,
  [ 0x25 ] = KEY_ARCHIVE, /* Time Shifting */
  [ 0x26 ] = KEY_STOP,
  [ 0x27 ] = KEY_RECORD,
  [ 0x28 ] = KEY_SHUFFLE, /* Screenshot */ /* THIS HAS CHANGED */
  [ 0x2f ] = KEY_MENU,
  [ 0x30 ] = KEY_CANCEL,
  [ 0x31 ] = KEY_CHANNEL, /* Channel Surf */
  [ 0x32 ] = KEY_SUBTITLE,
  [ 0x33 ] = KEY_LANGUAGE,
  [ 0x34 ] = KEY_REWIND,
  [ 0x35 ] = KEY_FASTFORWARD,
  [ 0x36 ] = KEY_TV,
  [ 0x37 ] = KEY_RADIO, /* FM */
  [ 0x38 ] = KEY_DVD
};
}}}
Now you just need to go to the {{{v4l-dvb}}} directory, and from the command prompt run
{{{make}}}
then
{{{sudo make install}}}
(If for any reason you need to rebuild these modules (like when you upgrade your kernel), just run {{{make distclean}}} before running {{{make && sudo make install}}} to remove old kernel specific configurations.)
''REBOOT''
!Test that it worked.
Odds are you can no longer watch TV on your system.  In this case, you will need to run {{{modprobe cx88_dvb}}} to get you card to work (and restart mythtv-backend).  To make this change permanent put the line
{{{cx88_dvb}}}
at the end of your system's {{{/etc/modules}}} file.
<<<
''IMPORTANT''
In ~KnoppMyth ~R5E50 there's a bug that stops the modules in /etc/modules from being loaded.  To fix this bug open /etc/init.d/modutils in a text editor as su.
In the line near the top of the file:
{{{[ -f /proc/ksyms ] || exit 0}}}
it should be:
{{{[ -f /proc/kallsyms ] || exit 0}}}
(Thanks to gwirth - http://mysettopbox.tv/phpBB2/viewtopic.php?t=14107&highlight=modules)
<<<
If your patching and installing of new modules worked, there should now be a new entry in {{{/dev/input/}}}, {{{/dev/input/eventX}}}.  To check which of the {{{/dev/input/eventX}}} is your IR port, run
{{{evtest /dev/input/eventX}}} (where X is the numbers 0, 1, 2, ...)
until you find an entry that starts with
{{{
Input driver version is 1.0.0
Input device ID: bus 0x1 vendor 0x107d product 0x665f version 0x1
Input device name: "cx88 IR (WinFast DTV1000-T)"
}}}
''Take note of the /dev/input/eventX that this occurs on''.  (For my system it is /dev/input/event0.)

For another test open to terminal windows.  In the first one run
{{{/usr/sbin/lircd -H dev/input -d /dev/input/eventX -n}}}
and in the other one run
{{{irw}}}
Then press some buttons on your remote, and some random data should show up.
!Configure lircd
If this worked, then we'll need to alter a few files to configure lircd.
First {{{gksu gedit /etc/lirc/hardware.conf}}}.
There are only two lines you should need to edit here
{{{DRIVER="dev/input"}}}
and
{{{DEVICE="/dev/input/event0"}}}
so that the whole file looks like [[this|http://daniel.saunders.googlepages.com/hardware.conf|]]
Next, we need to create {{{/etc/lirc/lircd.conf}}}.  You could just [[download mine|http://daniel.saunders.googlepages.com/lircd.conf]], but it's really easy to make your own using {{{irrecord}}}.

As you run {{{irrecord -H dev/input -d /dev/input/event0  /etc/lircd.conf}}} it will first ask you to press and hold a key, so that it can determine how fast repeated keys are sent.  Then, you will need to enter the names of the various keys and press the key to configure it.  NB - spelling and case is really important to get right here.  These are the key names that I programmed in:
{{{POWER, TV, RADIO, DVD, RED, GREEN, BLUE, SLEEP, MUTE, CLEAR, CANCEL, CHANNELUP, ZOOM, VOLUMEDOWN, ENTER, VOLUMEUP, MENU, CHANNELDOWN, CHANNEL, PREVIOUS, PLAYPAUSE, NEXT, SUBTITLE, REWIND, STOP, FASTFOWRAD, LANGUAGE, 1, 2, 3, VIDEO, 4, 5, 6, AUDIO, 7, 8, 9, INFO, DOT, 0, LAST, SHUFFLE, MEDIA, STOP, RECORD, ARCHIVE}}}

Now that you have a working hardware.conf and lircd.conf file, you can start/restart lircd {{{/etc/init.d/lircd/restart}}}.

Finally, we need to create the lircrc files that mythtv (and xine/mplayer) will use to understand the remote control buttons.
Download the [[lircrc generation|http://daniel.saunders.googlepages.com/lircrc_generate]] script and the [[lircrc template|http://daniel.saunders.googlepages.com/lircrc_template]] file into the home directory of your mythtv user.
Make the lircrc_generate file executable {{{chmod +x lircrc_generate}}} and run it {{{./lircrc_generate}}}.  Then copy the resulting lircrc file to {{{~/.mythtv/lircrc}}} and maybe also {{{~/.lircrc}}}*, restart your mythtv frontend, and away you go!
(lircrc_generate scripts taken from http://forums.whirlpool.net.au/forum-replies-archive.cfm/566843.html)
*In [[KnoppMyth R5E50|http://mysettopbox.tv/CHANGELOG.txt]] {{{~/.lircrc}}} is a symbolic link to {{{~/.mythtv/lircrc}}}
!Extra Information
Allegedly, some uses of other Linux distributions have had difficulty with button presses not being received consistently by the ~DTV-1000's IR port.

Neil Bryden has given an solution [[here|http://forums.whirlpool.net.au/forum-replies.cfm?t=566843&p=3]] which I'll reproduce
<<<
For those with this remote working intermittently, I've discovered a solution which works for me.

The kernel driver polls the card for IR keypresses, using a 1 ms timer. Unfortunately, the default Fedora (and others presumably) kernel configuration uses a jiffies tick of 250 Hz (4ms) so the card doesn't get polled often enough, and some keypresses are missed. This explains why some distro's can get this card working and others can't with the same patches.

You need to change your kernel settings to a timer frequency of 1000Hz.
Processor type and features -> Timer frequency (1000 HZ)

I also enabled 'pre-emptable kernel' setting, not sure if this is required or not.

My setup is:
Latest v4l-dvb, plus patches from Daniel: http://daniel.saunders.googlepages.com/howto.html#WinFastDTV1000RemoteControlWithMythTV
Kernel 2.6.15.7
Leadtek Winfast ~DTV1000

While I was trying to fix this I also found a recent proposed patch to v4l here: lists.zerezo.com/video4linux/msg18601.html

This patch DOES NOT work for me - it breaks 'key up' behaviour resulting in keys 'stuck down' (at least in combination with the patches from Daniel above). Daniel's patches work fine.
<<<