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

	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 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 class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<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 id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></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]]
To duplicate the "Press any key" behavior in bash use {{{read}}}.  Simply do:

{{{read -n 1 -p "Press any key to continue..."}}}
Video editing software.
Rather than having to relist all of a user's groups when you want to add them to one, just run:

{{{usermod -aG groupname username}}}
Cvars in cstrike/cfg/server.cfg:

*mp_friendlyfire 1
*mp_spawnprotectiontime 0
*mp_autokick 0
*mp_tkpunish 0
From http://www.debianadmin.com/install-and-configure-apache2-with-php5-and-ssl-support-in-debian-etch.html

''Generate A certificate''

Generating a certificate will provide to protect the traffic exchanged between clients and your server, however it will be unsigned by a trusted certificate authority so it will generate warnings.

If you want to avoid these warning messages you need to get a trusted certificate from SSL certificate vendors.If you want to Generating an SSL certificate for Apache2 you need to use the openssl. This will ask you questions interactively then generate the certificate file appropriately.

Note:-For generating certificate you might have used the apache2-ssl-certificate command in debian sarge but in debian etch this command not available.If you want to generate certificates you need to use openssl from you command prompt Use the following command to generate certificates

#openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/apache.pem -keyout /etc/apache2/apache.pem

Generating a 1024 bit RSA private key
writing new private key to ‘/etc/apache2/apache.pem’
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
Country Name (2 letter code) [AU]:GB
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:London
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Debian
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []:

This will complete the certificate now you need to make sure you have the correct permissions for .pem file if not use the

following command to set the correct permissions

#chmod 600 /etc/apache2/apache.pem

By default the server will listen for incoming HTTP requests on port 80 - and not SSL connections on port 443. So you need to enable SSL support by entering the following entry to the file /etc/apache2/ports.conf save and exit the file.

Listen 443

Enable SSL Support

If you want to enable SSL support for your apache web server you need to use the following comamnd

#a2enmod ssl
Module ssl installed; run /etc/init.d/apache2 force-reload to enable.

Now you need to restart the apache2 server using the following command

#/etc/init.d/apache2 restart

Configuring SSL Certificate to Virtual Hosts in Apache2

First you need to edit the /etc/apache2/sites-available/default file change

NameVirtualHost *

NameVirtualHost *:80
NameVirtualHost *:443

Now you need to configure Virtual hosts using port 80

ServerAdmin webmaster@localhost
configure Virtual hosts using port 443 the main difference is you need to use the following two lines for each SSL hosts.

SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem

ServerAdmin webmaster@localhost
SSLEngine on
SSLCertificateFile /etc/apache2/apache.pem

Restart Apache and you're all set.
Part of the ext2 filesystem tools that non/destructively checks a disk for bad blocks.
Remove duplicate entries from bash history file:
Add to ~/.bashrc:
{{{export HISTIGNORE="&"}}}
A table of battery voltages and the states associated with them:

12.6+ 100%
12.5  90%
12.42 80%
12.32 70%
12.20 60%
12.06 50%
11.9  40%
11.75 30%
11.58 20%
11.31 10%
10.5  0% 
If you get error messages such as the following in your CUPS error_log, it may mean that CUPS was upgraded but not restarted.  Restarting CUPS fixed the problem for me anyway.
E [10/Oct/2011:20:53:05 -0500] Unable to execute /usr/libexec/cups/filter/pstoraster: No such file or directory
E [10/Oct/2011:20:53:05 -0500] [Job 163] Unable to start filter "pstoraster" - No such file or directory.
These are the things that need to be done on a fresh install of the Coldest web server.

# Add regular user
# Add regular user to necessary groups (mostly for backups)
** {{{usermod -aG root cybertron}}}
** {{{usermod -aG crontab cybertron}}}
# Allow ssh tunneling to get around stupid port blocks
** Add these lines to /etc/ssh/sshd_config: 
*** {{{AllowTcpForwarding yes}}}
*** {{{GatewayPorts clientspecified}}}
*** {{{ListenAddress}}}
*** Add Torch root ssh key to coldestgame.com: {{{root@vps:~/.ssh# cat id_dsa.pub > authorized_keys2}}}
** Old method (doesn't work anymore): {{{ssh -f -N -g -4 cybertron@home.nemebean.com -L 25:home.nemebean.com:2555}}}
# {{{aptitude update}}} and {{{aptitude safe-upgrade}}}
# Remove unnecessary packages:
** {{{/etc/init.d/bind9 stop}}}
** Stop sendmail?
** {{{aptitude purge bind9 samba-common sendmail-base}}}
# Enable EPEL
# Install needed packages: {{{yum install php-pecl-apc mysql-server php-mysql fail2ban php-gd php-mbstring SDL_net}}}
# Install needed packages (Debian version): {{{aptitude install apache2 php-apc mysql-server mysql-client php5-mysql fail2ban psmisc php5-gd screen libsdl-net1.2 rsync exim4}}}
# Configure ssh keys
** From home system: {{{scp ~/.ssh/id_rsa.pub coldestgame.com:~/.ssh/id_rsa.vanguard}}}
** Build systems: {{{scp ~/.ssh/id_dsa.pub coldestgame.com:~/.ssh/id_dsa.build[32|64]}}}
** On coldestgame.com: {{{cat ~/.ssh/id_rsa.vanguard ~/.ssh/id_dsa.build* >> ~/.ssh/authorized_keys2}}}
** Ditto: {{{chmod 700 ~/.ssh}}}
** Ditto: {{{chmod 600 ~/.ssh/authorized_keys2}}}
# Copy backup files to system
** etc mysqlbackup sbin site smf robots.txt crontabs
# Restore MySQL files to /var/lib/mysql
** Fix permissions: {{{chown -R mysql:mysql drupal_coldest mysql smf}}}
# Restore configurations
** /etc/mysql/debian.cnf
** /etc/apache/sites-available/default
** /etc/network/interfaces
** {{{a2enmod rewrite}}}
** Fail2ban: /etc/fail2ban
** /root/.my.cnf
*** {{{[client]}}}
*** {{{password=**************}}}
*** {{{[mysqlhotcopy]}}}
*** {{{password=**************}}}
# Restart mysql
# Don't think this is necessary anymore - Fix exim4 permissions
** {{{chown Debian-exim:adm /var/log/exim4/mainlog}}}
** {{{chmod 777 /var/mail}}}
# Configure exim4
** {{{dpkg-reconfigure exim4-config}}} and make sure to allow sending to external domains.  IMPORTANT: Do not listen on external interfaces!  This is a security risk and we don't need to do it.  Trust me on this. ;-)
** {{{update-rc.d -f exim4 remove}}} (Exim won't actually work anyway since we forward port 25 through the ssh tunnel)
# Fix Drupal permissions
** chown -R www-data:www-data /var/www/site/sites/default/files
# --Configure crontab for root--
** Changed permissions so regular user can read crontabs, so this should be restored above
** Crontab file is stored in the root of /backup, it is only readable by root so it's awkward to backup automatically. 
** For future updates, the crontab file can be found at /var/spool/cront/crontabs/root
# Install master server
** Server is now 64-bits, so build in 64-bit Debian-based VM
# Optional: Install phpmyadmin
** Apparently it is necessary to uncomment the host and auth_type lines in /etc/phpmyadmin/config.inc.php to get this to work.  I don't remember having to do that before, so it's possible this was a one off problem.
Background: #000
Foreground: #0f0
PrimaryPale: #020
PrimaryLight: #080
PrimaryMid: #0c0
PrimaryDark: #0f0
SecondaryPale: #020
SecondaryLight: #080
SecondaryMid: #0c0
SecondaryDark: #0f0
TertiaryPale: #020
TertiaryLight: #080
TertiaryMid: #0c0
TertiaryDark: #0f0
Error: #f88
I've run into this a couple of times now, so I thought I'd write down the solution.  Otherwise I'll just waste a bunch more time the next time it happens. :-)

The problem is that when I try to build Wine directly from source on Gentoo using the standard ./configure; make flow, it fails on an issue with sfnt2fon and the courier.ttf file.  However, while investigating the problem I ran across this bug: https://bugzilla.redhat.com/show_bug.cgi?id=1303268 which suggests that the problem may be related to building a 32-bit version of it.

Sure enough, if I {{{./configure --enable-win64}}} then the build completes successfully.  In retrospect, I'm pretty sure this would have been necessary anyway because the stuff I'm trying to run is 64-bit and won't run in 32-bit wine.  {{--without-freetype}} is another option that got me around the build failure, but I seem to recall that it caused other issues when I tried to actually run things in wine.
Including any system configuration not involving a specific config file.
[[Bash History]]
[[Extra TTF Fonts]]
[[Filesystems Comparison]]
[[Firefox Tweaks]]
[[Wine Tricks]]
[[Doom 3 Tweaks]]
[[MythWeb Server]]
[[UT 2004 Server Mutators]]
[[Konqueror and Samba]]
[[GTK Theme Switcher]]
[[Partition Layout]]
[[Apache SSL Support]]
[[Swapped Channels]]
[[Flash in Konqueror]]
[[Allow TKing in CSS]]
[[KDevelop 4 Custom Makefile]]
[[Ubuntu Kernel Module Problems]]
[[MythTV Menu Customization]]
[[Coldest Web Server Config]]
[[Myth Box Configuration]]
[[Printer Options]]
[[Myth MPlayer Commands]]
[[Redirect Wine Output]]
[[Recursive Grep]]
[[Suspend Console Output]]
[[Reset Console]]
[["Press any key" in Bash]]
[[Rm Lots of Files]]
[[Add user to group]]
[[Install GCC on Debian]]
[[git-svn command]]
When your credit card expires, the following places need to be notified:
# Hosting
# Power
# Cell Phone
# Cable/Internet
#displayArea {
margin: 1em 17em 1em 15em;
border: 1px solid #0f0;

#mainMenu {
text-align: left;

.viewer {
border: 1px solid #0f0;
padding-left: 1em;

.externalLink {
text-decoration: none;
Reading Diagnostic LED’s

4 leds: cpu not detected
3 leds: cpu detected, ram not detected
2 leds: cpu detected, ram detected, vid card not detected
1 led: cpu detected, ram detected, vid card detected, booting
[[What is this Site?]]
Prices - 6 Day Park Hopper w/No Expiration: $301.50  IIRC the Disney site price was $330.

Avis - 20% off

Enterprise - 5% off weekly, 10% off daily

Hertz - One car class upgrade free, $25 off expensive weekly rentals, $20 off cheaper weekly rentals, 20 and 15 respectively for weekend rentals
Find these values in DoomConfig.cfg and set them to the following values:

{{{seta image_useCache "1"}}}
{{{seta image_cacheMegs "system ram / 2"}}}
{{{seta image_cacheMinK "20480"}}}

May work for Quake 4 as well.
[[Driver Link|http://www.fs-driver.org]]
To add a ttf font to the system just drop it in /usr/share/fonts/TTF.  May be necessary to restart X, probably necessary to restart any app you want to use it in.

Speaking of fonts, [[What the Font|www.myfont.com/WhatTheFont]] may help find a font you're looking for.
# Ripped from my Gentoo system - Wikification messes up the formatting pretty badly.  Will need to double-click to edit if you want to see it as intended.

# noatime turns off atimes for increased performance (atimes normally aren't
# needed; notail increases performance of ReiserFS (at the expense of storage
# efficiency).  It's safe to drop the noatime options if you want and to 
# switch between notail and tail freely.

# <fs>                  <mountpoint>    <type>          <opts>                  <dump/pass>

# NOTE: If your BOOT partition is ReiserFS, add the notail option to opts.
/dev/sda2               /               reiserfs        noatime,notail  0 1
/dev/sda1               none            swap            sw              0 0
/dev/sda3               /games          reiserfs        noatime,notail  0 0
/dev/cdrom              /mnt/dvdr       auto            noauto,ro,user,exec     0 0
/dev/cdrom1             /mnt/dvd        auto            noauto,ro,user,exec     0 0
/dev/fd0                /mnt/floppy     auto            noauto          0 0
#/dev/sda5              /mnt/mandrake   reiserfs        noauto,noatime,notail  0 0
#/dev/sda6              /mnt/oldgentoo  reiserfs        noatime,notail  0 0
#/dev/sda7              /mnt/oldshare   reiserfs        noatime,notail  0 0
/dev/sdb1               /share          reiserfs        noatime,notail  0 0
/dev/sdc1               /backup/fat     vfat            noauto,user     0 0
/dev/sdc2               /backup         reiserfs        noauto,noatime,notail,user      0 0
/dev/sdd1               /mnt/flash      vfat            noauto,user     0 0
/dev/sde1               /mnt/card       auto            noauto,user     0 0

# Network shares
# No longer valid, but an example of a Samba mount
#//students.luther.edu/nemebe01 /mnt/h  smbfs           noauto,user,uid=501,gid=501,username=nemebe01   0 0
tuxtop:/var/www         /mnt/www        nfs             defaults,rsize=8192,wsize=8192 0 0
tuxtop:/                /mnt/tuxtop     nfs             defaults,rsize=8192,wsize=8192 0 0

# NOTE: The next line is critical for boot!
none                    /proc           proc            defaults        0 0

# glibc 2.2 and above expects tmpfs to be mounted at /dev/shm for
# POSIX shared memory (shm_open, shm_unlink). 
# (tmpfs is a dynamically expandable/shrinkable ramdisk, and will
#  use almost no memory if not populated with files)
# Adding the following line to /etc/fstab should take care of this:

none                    /dev/shm        tmpfs           defaults        0 0
__Basic characteristics__
*''Ext2'' - Fast, not journalled.  Use for unimportant partitions (/tmp).
*''Ext3'' - Balanced, slight loss of disk space (some reserved for performance reasons, so not entirely bad, see Reiser comments for more), very stable, very good recovery tools, dir_index option may significantly improve performance, wastes space on small files.
*''Reiser'' - Painfully slow mounting (seems to have been fixed on more recent kernels), fast on many small files, may be worse than ext3 about wasting disk space for fs alone - different benchmarks seem to disagree on this, uncertain of the reason, definitely better than ext3 for not wasting space on small files.
*''XFS'' - Designed for large files/filesystems.  Good for storage drives.  Decent all-around performance as well.  Slightly obscure, so not as well supported.
*''JFS'' - A little too obscure for my tastes, very good on CPU usage, so maybe good for older file servers.  According to some benchmarks the best performing as well.

/home - ext3
/tmp - ext2
/usr/portage - reiser
/ - ext3/reiser - not clear which would have better performance in this situation, have seen conflicting data, probably a toss-up, may depend on which options are used with both, probably recommend ext3 for stability and reiser for (maybe) better performance.
/share - xfs

#[[Good comparison of filesystem performance|http://linuxgazette.net/122/TWDT.html#piszcz]]
#[[Small extension to the above (more real world examples = takes priority IMHO)|http://www.debian-administration.org/articles/388]]
[[Good list|http://element14.wordpress.com/2006/07/11/firefox-does-not-have-a-memory-bug-but-heres-how-you-improve-mem-usage/]], including some that I'm not sure are worth it.

Most important (IMHO):
{{{network.http.pipelining true}}}
{{{network.http.proxy.pipelining true}}}
{{{network.http.pipelining.maxrequests 4}}} - Make sure this is a small number, as it is bad netiquette to make it big (> 8 or so?) and it may get you banned from some sites.

{{{nglayout.initialpaint.delay 0}}} - Or a small number (in ms, so 1000 = 1 sec) to avoid flashing behavior.  Must be added as a new integer value.

{{{ui.submenuDelay 0}}}

{{{network.dns.disableIPv6}}} - Hardly necessary at this point in time, and apparently can have a very detrimental effect on Firefox's performance.
I'm unclear as to why exactly, but Konqueror refuses to recognize the Flash plugin on my system.  However, if I point it at the nswrapper plugin it works.  In Gentoo the path that needs to be added to the Scan Folders in Konqueror Settings->Plugins is /usr/lib64/nsbrowser/plugins.  Tell it to Scan for New Plugins and Flash should work.
Generates custom modelines for X where the resolution or refresh rate is non-standard.

Usage: {{{gtf width height refresh}}}

Generated modelines go in the Monitor section of xorg.conf
Use the program switch2 (the gtk-theme-switch package in Gentoo)
Intel Core 2 Quad Q6600 @ 3.2 Ghz
Thermalright Ultra Extreme 120
Gigabyte ~GA-EP35 ~DS3-R
4 GB G.Skill ~DDR2 800
EVGA 512 MB 8800 GT
Corsair HX 620 modular PSU
2x Seagate 500 GB 7200.11 in RAID 0
2x Seagate 750 GB 7200.11 in RAID 1
20x Samsung DVD burner

Gentoo/Windows XP
AMD Athlon 64 X2 5000
Gigabyte ~GA-MA74GM-S2
EVGA 256 MB 7600GT
2 GB OCZ Platinum ~DDR2 800
74 GB Raptor
OCZ ~GameXStream 600 W
NEC 3550 DVD Burner
Sony DVD Drive

__TuXP __
~Mythbuntu (sort of)
AMD Athlon XP 2500 @ 2.2 Ghz
Abit ~NF7-Sv.2
768 MB Kingston ~ValueRAM
Albatron Passive-cooled FX 5200
80 GB Samsung
320 GB Western Digital
NEC 3550 DVD Burner
Hauppauge PVR 150

Mandriva 2007.1
IBM T43 Thinkpad
Intel Pentium M @ 2 Ghz
512 MB RAM
80 GB 5400 RPM HD
15" 1400x1050 Screen

Debian Etch (Stable)
Dell Inspiron 2650
Intel Pentium 4 M @ 1.6 Ghz
256 MB RAM
Samsung 40 GB 5400 RPM HD
14" 1024x768 Screen + many dead pixels
Web/~E-Mail Server Running Apache and Exim4
To install GCC on a Debian-based distro, use {{{aptitude install build-essential}}}
In order to create a project in KDevelop 4 with a custom makefile, it is necessary to create the Makefile first, and then use the KDevelop import feature to create a project around it.  There is no longer a custom makefile project in the New Project dialog.
In Gentoo, to get Konqueror to support using smb: addresses, you need to compile kde-base/kdebase-kioslaves with the samba use flag enabled.
[[LED Shoppe|http://www.ledshoppe.com]] - Cheap ~LEDs in bulk.
[[Router Setup|https://www.nemebean.com:8080]]
[[QT Documentation|qt4doc/]]
[[QUI for MPlayer|http://qui4mplayer.sf.net]]

[[Best Case Scenario|http://www.thebestcasescenario.com]]
[[Mega LAN|http://www.megalan.info]]

[[The Register|http://www.theregister.co.uk]]

[[What is this Site?]]
[[Console Command Reference]]
[[Wiki Reference]]
[[cat /dev/urandom > /dev/dsp]]
This is mostly for my reference, but you never know what might come in handy for someone else.  I'm writing most of this after the fact, so I may have forgotten some steps, but I think this covers the main ones.

Pretty much all of the following needs to be run as root.
* {{{dnf install http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm}}}
* {{{dnf install mythtv}}}
* {{{dnf install ntp}}}
* Set /etc/ntp.conf server to Torch
* {{{systemctl start ntpd; systemctl enable ntpd}}}
* {{{systemctl start httpd; systemctl enable httpd}}}
* {{{dnf groupinstall "Xfce Desktop"}}}
* {{{dnf install kdm}}}
* Hopefully the above is enough to get a graphical environment going.  Set it to boot to the UI by default:
* {{{systemctl set-default graphical}}}
* I had to hard link /etc/mythtv/config.xml to ~/.mythtv/config.xml for the backend to start.
* Configure sane video settings in Grub.  Get the name of the output:
* {{{for p in /sys/class/drm/*/status; do con=${p%/status}; echo -n "${con#*/card?-}: "; cat $p; done}}}
* In {{{/etc/default/grub}}} (I'm not sure the vga line does anything with KMS, but it won't hurt either):
* {{{GRUB_CMDLINE_LINUX="rhgb quiet vga=0x3d9 splash video=HDMI-A-1:1920x1080"}}}
* {{{grub2-mkconfig -o /boot/grub2/grub.cfg}}}
* fstrim cron job.  In {{{/etc/cron.daily/fstrim}}}:
fstrim -a
* {{{chmod +x /etc/cron.daily/fstrim}}}
* Configure mythweb in {{{/etc/httpd/conf.d/mythweb.conf}}}.  Specifically the database and possibly hostname.
* {{{max_input_vars = 10000}}} in /etc/php.ini (allows editing of large channel lists via MythWeb)
* Apply ugly hack if X keeps losing the plot when you turn the tv off.  Create the following file in /usr/local/sbin/uglyhack:

export DISPLAY=:0
while :
   if ! xrandr --nograb --current | grep -q \*
      xrandr --output HDMI-0 --mode 1920x1080
   sleep 1
* {{{chmod +x /usr/local/sbin/uglyhack}}}
* Then create a systemd service to run it (probably in /etc/systemd/system):
Description=Ugly X Hack


* {{{systemctl start uglyhack; systemctl enable uglyhack}}}
* The default mythbackend unit file needs some tweaks or myth doesn't start right at boot time.  Put the following in /etc/systemd/system/mythbackend.service:
Description=MythTV backend service
After=network-online.target mariadb.service mysqld.service time-sync.target

ExecStart=/usr/bin/mythbackend --logpath /var/log/mythtv

To add another custom ~MPlayer command to the Myth box, copy one of the scripts in /home/mythtv/bin and then link that into /usr/bin.  Won't work straight from ~/bin.

Also, cannot add extra parameters from within Myth as the scripts just try to open the first argument to them.
Since MythTV seems to have forgotten the last two letters of its name and started putting "Watch TV" in a stupid location in the main menu, it is necessary for the sake of my sanity to edit the Myth main menu.  The file to be altered can be found at the following location:

To change the server that MythWeb points at, edit the .htaccess file.

Actually, in current versions (at least in Debian), the file to edit is found at /etc/apache2/conf.d/mythweb.conf.  Also, every time mythweb is updated, this file gets overwritten which resets everything.  This can lead to cryptic error messages or even just a blank screen when trying to use MythWeb.
<div class='header' macro='gradient vert #0f0 #000'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> 
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span> 
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<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 id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
/boot - 100 MB
/ - rest of drive
swap - 2 GB
/usr/portage - 10 GB
/extra - 10 GB
/extra1 - 10 GB
/tmp - 10 GB
man lpoptions - particularly the -l (lower case L) switch

To print an image scaled over four pages:  lp -o scaling=200 -o landscape [filename]
It's braindead so even if the image would fit on two pages it will split it to four, but at least it works
To find out how to print test pages for HP printers, go to their web site and search for "print internal test".

For the 3650, do the following:

#Turn the printer on.
#Press and hold down the POWER button.
#Open and close the top cover four times.
#Release the POWER button.

This is a Gimp plugin to extract a bump map from an image.  It implements a technique based on this tutorial: http://www.cgtextures.com/content.php?action=tutorial&name=normalmap

Note that the useoop flag in the script (which is not exposed to the Gimp GUI, so you'd have to edit the script itself to change it) is setup in a way that is specific to my system so it won't work unless your paths are the same and you have the helper script (which is not in the git repo).  It was an attempt to increase performance on multi-processor systems, but the benefit was very small and as you can see it complicated the setup quite a bit.

Also be aware that the only Method that will probably work correctly is 1 sample.  I found that the noise reduction option pretty much eliminates the need for the other methods and they made the calculations more complicated/slow so I just stopped using them.  At some point I will get around to removing that GUI option.

Unfortunately there's no way to do a live preview in a Python script, so I usually try out different parameters on a lower resolution copy of my image.  This plugin takes a long time on high res images, so lowering the resolution speeds things up considerably.

The script can be found here: https://github.com/cybertron/gimp-plugins/blob/master/createbump.py  Download it to your ~/.gimp-2.6/plug-ins directory and ''make it executable''.  It will show up as "Create Bumpmap" in the Map submenu of the Filters menu.
I found one plugin to do an inner glow in The Gimp, but it didn't work right for me so I wrote this simple one.  Basically it strokes the inside of the selection with a line of //Strength// width and then Gaussian blurs it by //Size// pixels.  The other options should be self-explanatory.

I've moved the actual script to github, and you can find it here: https://github.com/cybertron/gimp-plugins/blob/master/innerglow.py

To use it you can either download the file or copy and paste it into a file in your ~/.gimp-2.6/plug-ins directory.  ''Don't forget to make it executable.'' It should show up in the Decor menu of Filters.
This is a Gimp plugin to randomly paste the contents of the clipboard into a selection.  It allows you to randomly rotate each pasted item and was used to make a number of the terrain textures my game, [[Coldest|http://www.coldestgame.com]].  Note that to avoid hard lines between the pasted areas I recommend feathering the selection that you copy from.

The script can be found here: https://github.com/cybertron/gimp-plugins/blob/master/randompaste.py  Download the file to your ~/.gimp-2.6/plug-ins directory and ''make it executable''.  It will show up as "Random Paste" in the Map submenu of the Filters menu.
<a href="http://www.nemebean.com/Photos/Mountains%202005/100_0672.jpg"><img src="http://www.nemebean.com/Photos/Mountains%202005/100_0672.jpg" width="90%" height="90%"></a>

<a href="http://www.nemebean.com/Photos/Mountains%202005/100_0665.jpg"><img src="http://www.nemebean.com/Photos/Mountains%202005/100_0665.jpg" width="90%" height="90%"></a>

<a href="http://www.nemebean.com/Photos/Mountains%202005/100_0676.jpg"><img src="http://www.nemebean.com/Photos/Mountains%202005/100_0676.jpg" width="90%" height="90%"></a>

<a href="http://www.nemebean.com/Photos/Mountains%202004/100_0277.JPG"><img src="http://www.nemebean.com/Photos/Mountains%202004/100_0277.JPG" width="90%" height="90%"></a>

<a href="http://www.nemebean.com/Photos/Disney%202007%202/100_0345.jpg"><img src="http://www.nemebean.com/Photos/Disney%202007%202/100_0345.jpg" width="90%" height="90%"></a>

<a href="http://www.nemebean.com/Photos/Disney%202007%202/100_0346.jpg"><img src="http://www.nemebean.com/Photos/Disney%202007%202/100_0346.jpg" width="90%" height="90%"></a>

<a href="http://www.nemebean.com/Photos/Disney%202007%202/100_0347.jpg"><img src="http://www.nemebean.com/Photos/Disney%202007%202/100_0347.jpg" width="90%" height="90%"></a>

<a href="http://www.nemebean.com/Photos/Disney%202007%202/100_0348.jpg"><img src="http://www.nemebean.com/Photos/Disney%202007%202/100_0348.jpg" width="90%" height="90%"></a>

<a href="http://www.nemebean.com/Photos/Disney%202007%202/100_0199.jpg"><img src="http://www.nemebean.com/Photos/Disney%202007%202/100_0199.jpg" width="90%" height="90%"></a>

<a href="http://www.nemebean.com/Photos/Disney%202007%202/100e0376.jpg"><img src="http://www.nemebean.com/Photos/Disney%202007%202/100e0376.jpg" width="90%" height="90%"></a>

<a href="http://www.nemebean.com/Photos/Disney%202007%202/100_0287.jpg"><img src="http://www.nemebean.com/Photos/Disney%202007%202/100_0287.jpg" width="90%" height="90%"></a>

<a href="http://www.nemebean.com/Photos/Disney%202007%202/100_0335.jpg"><img src="http://www.nemebean.com/Photos/Disney%202007%202/100_0335.jpg" width="90%" height="90%"></a>

An alternate method of recursive grep for systems (such as AIX apparently) where grep does not have a -r parameter.

{{{find . | xargs grep <searchstring>}}}

Add -print0 parameter to find if filenames will have spaces.

{{{find -print0 . | xargs grep <searchstring>}}}
To redirect Wine output (and any other app that writes to stderr instead of stdout), just add 2>&1 to the end of your command.  So something like this:

{{{wine FEARSPDemo.exe > fearcrash 2>&1}}}
If the console gets corrupted and all you can get is random characters type "reset" and it should fix it.
Gentoo's revdep-rebuild command does not work if you have /var as a symlink.  I had this setup so that I could use a directory on a different filesystem as /var (/ is an SSD, and I didn't want the write load on /var wearing it out), and I don't know why it isn't allowed.  The solution I found is on a [[forum|http://www.linuxsir.org/bbs/thread355468.html]] I can't actually read, but there's enough that I can understand to fix the problem.

The solution is to not use a symlink but instead mount the directory using the bind option.  As mentioned in the link, I just added this line to my /etc/fstab:

{{{/storage/var            /var            none            bind            0 0}}}

That did the trick.
find . -name 'name' | xargs rm
Orange Juice
Pineapple Juice
Malibu banana
Malibu coconut
Bacardi Gold
Splash Grenadine
Float Bacardi 151
[[TiddlyWiki Export Script]]
[[Python Inner Glow Plugin for The Gimp]]
[[Python Bump Map Extractor Plugin for The Gimp]]
[[Python Random Paste Plugin for The Gimp]]
These are the files for my senior project at Luther (mostly here for Stu):

[[Project Files|http://www.nemebean.com/stuff/coldet.tar.gz]]
[[Paper|http://www.nemebean.com/stuff/Senior Paper.odt]]

The project itself requires ~OpenGL and SDL (including sdl-ttf and sdl-image).  In theory everything in it should be cross platform, so even you dirty Windows users can run it. ;-)

The controls are your pretty standard wasd with mouselook.  The ~ key brings up the console, although that may be broken.  sdl-ttf has a bug in some versions that causes it to fail rendering spaces, so if you type a space in the console it will crash.  There are a few other keys bound but they shouldn't be important.
The showfoto application is part of the digikam package in Gentoo.
What does King Steve have to do with this?
apache  ALL=(ALL) NOPASSWD:/home/cybertron/bin/apbandmaster
cybertron ALL=(ALL) ALL

Note: This config is no longer actually in use.  It's just here for my reference.
Pressing ctrl-s in most consoles will suspend the output.  To unsuspend it press ctrl-q.  This can be useful if you're on a slow terminal where scrolling text is lagging far behind what is actually going on.
Schedules Direct has a couple of channels swapped in their guide data.  Fortunately channels can be swapped by changing their freqid field in the MythWeb TV settings.  Here's a list of the swapped channels I've found:

@@Note: this is not a complete list at this time@@

7 and 20
Type the text for 'TiddlyWiki'
This is just a little Python script that I hacked together to export tiddlers into a more search engine-friendly format.  It simply exports each tiddler to a tiddly directory and creates an index page with links to all of them.  I am aware that there is a TiddlyWiki Export plugin, but it doesn't seem to do exactly the same thing and this was easy to add to my web server as a cron job every night to automatically keep the export up to date.

Note that everything is hardcoded (server address, output directory - which is relative to where you run the script, and so on) so if you want to use it for your site some changes will be needed.  It's also probably full of bugs so use at your own risk.  I'm not responsible for anything that happens as a result of using this script.

With that out of the way, here it is:
#!/usr/bin/env python

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
# Copyright 2009 Ben Nemec

import sys
import re
import os

def unhtml(s):
   retval = s.replace("/", "_")
   retval = retval.replace("&quot;", "_")
   retval = retval.replace("?", "_")
   retval = retval.replace("&gt;", ">")
   retval = retval.replace("&lt;", "<")
   return retval

def makeahref(matchobj):
   original = matchobj.group()
   if original[:2] != "[[":
      value = "<a href=\"tiddly/" + original + ".html\">" + original + "</a>"
      return value
   original = original[2:-2]
   if original.find("|") == -1:
      value = unhtml(original)
      value = "<a href=\"tiddly/" + value + ".html\">" + original + "</a>"
      return value
      values = original.split("|")
      value = "<a href=\"" + values[1] + "\">" + values[0] + "</a>"
      return value

if not os.path.exists("tiddly"):

tfile = open(sys.argv[1])
index = open("tiddly/index.html", 'w')
instore = False

# This was just for debugging, obviously
#linkify = re.compile("(?:(.*)\[\[(.*)\]\])*(.*)")
linkify = re.compile("\[\[(.*)\]\]|[A-Z][A-Z]+[a-z]+\w*|[A-Z]+[a-z]+[A-Z]+\w*")

index.write("<title>Nemebean.com TiddlyWiki Export</title>\n")
index.write("This is an index into the TiddlyWiki export for Nemebean.com.  Please <a href=\"/tiddly.html\">click here</a> for the actual site.<br />\n")

for i in tfile:
   currline = i.rstrip("\n")

   if currline.find("<!--POST-STOREAREA-->") != -1:
      instore = False

   if instore:
      if currline[:4] == "<div":
         currtitle = currline.split("\"")[1]
         filetitle = unhtml(currtitle)
         currfile = open("tiddly/" + filetitle + ".html", 'w')

         currfile.write("<base href=\"http://www.nemebean.com\"/>")
         currfile.write("<meta name=\"robots\" content=\"nofollow\"/>")
         currfile.write("<title>" + currtitle + "</title>\n")
         currfile.write("This is a search engine friendly export of a TiddlyWiki.  Please click <a href=\"/tiddly.html#[[" + currtitle + "]]\">here</a> for the actual site.<br />\n")
         currfile.write("<h2>" + currtitle + "</h2>\n")

         index.write("<a href=\"" + filetitle + ".html\">" + currtitle + "</a><br/>\n")
      elif not currfile.closed:
         if currline[:5] == "</div":
            results = linkify.sub(makeahref, currline)
            results = results.replace("<pre>", "")
            results = results.replace("</pre>", "")
            currfile.write(results + "<br/>\n")

   if currline.find("<div id=\"storeArea\">") != -1:
      instore = True


To make a mutator default for a given gametype (so you don't have to change them every time the map changes), go into Defaults->Voting GameConfig and edit the appropriate gametype.
When you have problems building modules on Ubuntu, install kernel source, untar kernel source (this is stupid - why don't they just install it when you ask them to?), run make prepare in kernel source, and run make scripts as well.  make oldconfig may be necessary as well.

Sigh.  It appears you may need to run a full make in the kernel source as well in some cases.  I keep asking myself why I put up with Ubuntu's crap and I keep not coming up with a good answer. :-(
This site is a dumping ground for any random information I come across that I want to be able to remember in a year.  A lot of people use a blog for this sort of thing, but I have chosen to use something called a [[Tiddly Wiki|http://ww.tiddlywiki.com]].  You can actually play around on this site to get a feel for how a Tiddly Wiki works if you like, but of course you won't be able to permanently save your changes.  Just double click on any main text (including this text) to begin editing, and see [[Wiki Reference]] for formatting information.

Just as a warning, some of the content here is more like personal notes so it may not make sense if you're not me.  However, like the internet as a whole there is also some useful stuff which may come in handy if you can find it.:-)
[[Markup Reference|http://www.tiddlywiki.org/wiki/TiddlyWiki_Markup]]

@@color:#0000ff;Highlight with CSS@@
<<gradient horiz #000 #00f>>Gradient>>
<<gradient vert #000f #00f>>@@color:#ffff00;Another Gradient@@>>
[[External Link (Sort of)|http://www.nemebean.com]]
{{{Monospace text, @@with visible markup@@}}}
   Preformatted text, which is the same syntax as
      monospace text, except the curly braces get a line of their own.
# Look ma!
# No list!
!Heading 1
!!Heading 2
!!!Heading 3
!!!!Heading 4
!!!!!Heading 5
Block Quote
* List
* List
* List
# List
# List
# List
Note: By default Wine wants string values in the registry unless otherwise noted
Note 2: Some of these are now the default.  [[Full Wine registry reference|http://wiki.winehq.org/UsefulRegistryKeys]].

Wine defaults your video memory to 64 MB regardless of what your card has.  To fix this regedit the key {{{HKCU->Software->Wine->Direct3D->VideoMemorySize}}}

For (hopefully) better compatibility with advanced shaders:
{{{HKCU->Software->Wine->Direct3D->UseGLSL}}} = {{{enabled}}}

Faster offscreen rendering:
{{{HKCU->Software->Wine->Direct3D->OffscreenRenderingMode}}} = {{{fbo}}}

Run individual apps in virtual desktops:
{{{wine explorer /desktop=name,1024x768 program.exe }}}

To force Wine to install the Gecko plugin:
{{{wine iexplore http://www.winehq.com}}}
In other words this is just random noise:
[[Hardware Specs]]
[[Senior Project]]
[[Ext2/3 Driver for Windows]]
[[Disney Ticket Discounts]]
[[Printing Test Pages]]
[[DFI Motherboard Diagnostic LED's]]
[[Random Nice Photos]]
[[Rum Runner Recipe]]
[[TiddlyWiki Export Script]]
[[Credit Card Updates]]
[[Battery Table]]
[[CUPS pstoraster problem]]
[[Revdep-rebuild with /var symlink]]
[[Compiling Wine with Freetype on Gentoo 64]]
Just a reminder of how I converted whee to use git.

{{{git svn clone http://torch/svn/whee --no-metadata -A authors whee.git}}}
Note: In order to run pwrstat it is first necessary to run pwrstatd.  This is currently in the /download directory (a more permanent home would be nice, but how often do I reboot anyway?).