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

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

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

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

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

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

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

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

#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 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 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
<<importTiddlers>>
|preferred linux dist.|	[[gentoo]]|
|preferred wm	|[[evilwm]], [[compiz]] with [[xbindkeys]]|
|preferred a/v player|	mplayer, audacious|
|preferred database client|	[[sqsh]] |
|preferred modeller|	[[zbrush]]|
|preferrred programming languages|	c++ (stroustrup, josuttis, alexandrescu, meyers, vandevoorde, karlsson, boost docs, gof, alexander); perl; javascript; ruby; haskell|
|preferred debuggers|	[[gdb]], stlfilt|
|preferred terminal emulator|	[[mrxvt]]|
|preferred terminal font|	[[profont]]|
|preferred no. of monitors|	1|
|preferred editor|	[[vim]]|
|recommended graphics devs.|	shirley, foley, angel, wright, eberly, robbins, akeley, shemanarev, debevec|
|preferred scm|	git|
|preferred binary news approach|	nzbperl/binsearch|
|preferred coding style|	allman, lowercase with underscores for spaces|
|preferred open source license|	wtfpl|
|preferred wiki|	tiddlywiki|
|preferred regex library|	pcrecpp|
|recommended boost libraries|	smart_ptr, filesystem, fusion, variant|
|recommended rss aggregator|	beta.bloglines.com |
|recommend c2ps arguments|c2ps -b -2 -t 2 -C ~Helvetica-Oblique -d 0.0 -p Letter *.h *.cpp|
/***
|''Name:''|CryptoFunctionsPlugin|
|''Description:''|Support for cryptographic functions|
***/
//{{{
if(!version.extensions.CryptoFunctionsPlugin) {
version.extensions.CryptoFunctionsPlugin = {installed:true};

//--
//-- Crypto functions and associated conversion routines
//--

// Crypto "namespace"
function Crypto() {}

// Convert a string to an array of big-endian 32-bit words
Crypto.strToBe32s = function(str)
{
	var be = Array();
	var len = Math.floor(str.length/4);
	var i, j;
	for(i=0, j=0; i<len; i++, j+=4) {
		be[i] = ((str.charCodeAt(j)&0xff) << 24)|((str.charCodeAt(j+1)&0xff) << 16)|((str.charCodeAt(j+2)&0xff) << 8)|(str.charCodeAt(j+3)&0xff);
	}
	while (j<str.length) {
		be[j>>2] |= (str.charCodeAt(j)&0xff)<<(24-(j*8)%32);
		j++;
	}
	return be;
};

// Convert an array of big-endian 32-bit words to a string
Crypto.be32sToStr = function(be)
{
	var str = "";
	for(var i=0;i<be.length*32;i+=8)
		str += String.fromCharCode((be[i>>5]>>>(24-i%32)) & 0xff);
	return str;
};

// Convert an array of big-endian 32-bit words to a hex string
Crypto.be32sToHex = function(be)
{
	var hex = "0123456789ABCDEF";
	var str = "";
	for(var i=0;i<be.length*4;i++)
		str += hex.charAt((be[i>>2]>>((3-i%4)*8+4))&0xF) + hex.charAt((be[i>>2]>>((3-i%4)*8))&0xF);
	return str;
};

// Return, in hex, the SHA-1 hash of a string
Crypto.hexSha1Str = function(str)
{
	return Crypto.be32sToHex(Crypto.sha1Str(str));
};

// Return the SHA-1 hash of a string
Crypto.sha1Str = function(str)
{
	return Crypto.sha1(Crypto.strToBe32s(str),str.length);
};

// Calculate the SHA-1 hash of an array of blen bytes of big-endian 32-bit words
Crypto.sha1 = function(x,blen)
{
	// Add 32-bit integers, wrapping at 32 bits
	add32 = function(a,b)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF);
		var msw = (a>>16)+(b>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Add five 32-bit integers, wrapping at 32 bits
	add32x5 = function(a,b,c,d,e)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF)+(c&0xFFFF)+(d&0xFFFF)+(e&0xFFFF);
		var msw = (a>>16)+(b>>16)+(c>>16)+(d>>16)+(e>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Bitwise rotate left a 32-bit integer by 1 bit
	rol32 = function(n)
	{
		return (n>>>31)|(n<<1);
	};

	var len = blen*8;
	// Append padding so length in bits is 448 mod 512
	x[len>>5] |= 0x80 << (24-len%32);
	// Append length
	x[((len+64>>9)<<4)+15] = len;
	var w = Array(80);

	var k1 = 0x5A827999;
	var k2 = 0x6ED9EBA1;
	var k3 = 0x8F1BBCDC;
	var k4 = 0xCA62C1D6;

	var h0 = 0x67452301;
	var h1 = 0xEFCDAB89;
	var h2 = 0x98BADCFE;
	var h3 = 0x10325476;
	var h4 = 0xC3D2E1F0;

	for(var i=0;i<x.length;i+=16) {
		var j,t;
		var a = h0;
		var b = h1;
		var c = h2;
		var d = h3;
		var e = h4;
		for(j = 0;j<16;j++) {
			w[j] = x[i+j];
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=16;j<20;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=20;j<40;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k2);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=40;j<60;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),(b&c)|(d&(b|c)),w[j],k3);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=60;j<80;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k4);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}

		h0 = add32(h0,a);
		h1 = add32(h1,b);
		h2 = add32(h2,c);
		h3 = add32(h3,d);
		h4 = add32(h4,e);
	}
	return Array(h0,h1,h2,h3,h4);
};


}
//}}}
|reading|	kristin lavransdatter ([[library thing|http://www.librarything.com/catalog/tmharada]])|
|work|	software engineer/manager at [[breakwater capital, llc|http://www.breakwater.com/]]|
|enjoy	|running, working out, poker|
|goals|	antigravity research, photorealistic virtual reality, better world|
[[Code Prefs./Recs.]]
/***
|''Name:''|DeprecatedFunctionsPlugin|
|''Description:''|Support for deprecated functions removed from core|
***/
//{{{
if(!version.extensions.DeprecatedFunctionsPlugin) {
version.extensions.DeprecatedFunctionsPlugin = {installed:true};

//--
//-- Deprecated code
//--

// @Deprecated: Use createElementAndWikify and this.termRegExp instead
config.formatterHelpers.charFormatHelper = function(w)
{
	w.subWikify(createTiddlyElement(w.output,this.element),this.terminator);
};

// @Deprecated: Use enclosedTextHelper and this.lookaheadRegExp instead
config.formatterHelpers.monospacedByLineHelper = function(w)
{
	var lookaheadRegExp = new RegExp(this.lookahead,"mg");
	lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = lookaheadRegExp.exec(w.source);
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var text = lookaheadMatch[1];
		if(config.browser.isIE)
			text = text.replace(/\n/g,"\r");
		createTiddlyElement(w.output,"pre",null,null,text);
		w.nextMatch = lookaheadRegExp.lastIndex;
	}
};

// @Deprecated: Use <br> or <br /> instead of <<br>>

config.macros.br = {};
config.macros.br.handler = function(place)
{
	createTiddlyElement(place,"br");
};

// Find an entry in an array. Returns the array index or null
// @Deprecated: Use indexOf instead
Array.prototype.find = function(item)
{
	var i = this.indexOf(item);
	return i == -1 ? null : i;
};

// Load a tiddler from an HTML DIV. The caller should make sure to later call Tiddler.changed()
// @Deprecated: Use store.getLoader().internalizeTiddler instead
Tiddler.prototype.loadFromDiv = function(divRef,title)
{
	return store.getLoader().internalizeTiddler(store,this,title,divRef);
};

// Format the text for storage in an HTML DIV
// @Deprecated Use store.getSaver().externalizeTiddler instead.
Tiddler.prototype.saveToDiv = function()
{
	return store.getSaver().externalizeTiddler(store,this);
};

// @Deprecated: Use store.allTiddlersAsHtml() instead
function allTiddlersAsHtml()
{
	return store.allTiddlersAsHtml();
}

// @Deprecated: Use refreshPageTemplate instead
function applyPageTemplate(title)
{
	refreshPageTemplate(title);
}

// @Deprecated: Use story.displayTiddlers instead
function displayTiddlers(srcElement,titles,template,unused1,unused2,animate,unused3)
{
	story.displayTiddlers(srcElement,titles,template,animate);
}

// @Deprecated: Use story.displayTiddler instead
function displayTiddler(srcElement,title,template,unused1,unused2,animate,unused3)
{
	story.displayTiddler(srcElement,title,template,animate);
}

// @Deprecated: Use functions on right hand side directly instead
var createTiddlerPopup = Popup.create;
var scrollToTiddlerPopup = Popup.show;
var hideTiddlerPopup = Popup.remove;

// @Deprecated: Use right hand side directly instead
var regexpBackSlashEn = new RegExp("\\\\n","mg");
var regexpBackSlash = new RegExp("\\\\","mg");
var regexpBackSlashEss = new RegExp("\\\\s","mg");
var regexpNewLine = new RegExp("\n","mg");
var regexpCarriageReturn = new RegExp("\r","mg");

}
//}}}
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>>
|1982-83| new york |
|1983-87  |  long island |
|1987-99 |   berkeley |
|2000-04|    chicago/amherst |
|2004-|        chicago |
/***
|''Name:''|LegacyStrikeThroughPlugin|
|''Description:''|Support for legacy (pre 2.1) strike through formatting|
|''Version:''|1.0.2|
|''Date:''|Jul 21, 2006|
|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|
|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|
|''License:''|[[BSD open source license]]|
|''CoreVersion:''|2.1.0|
***/

//{{{
// Ensure that the LegacyStrikeThrough Plugin is only installed once.
if(!version.extensions.LegacyStrikeThroughPlugin) {
version.extensions.LegacyStrikeThroughPlugin = {installed:true};

config.formatters.push(
{
	name: "legacyStrikeByChar",
	match: "==",
	termRegExp: /(==)/mg,
	element: "strike",
	handler: config.formatterHelpers.createElementAndWikify
});

} //# end of "install only once"
//}}}
|[[Chris Rock was in this movie|http://rogerebert.suntimes.com/apps/pbcs.dll/article?AID=/19910501/REVIEWS/50714002/1023]]|6 Apr 2008|Curious Revaluations|
|[[Lil' Weezee is in this song|http://www.youtube.com/watch?v=7PxBGHjABnU&feature=related]]|6 Apr 2008|Curious Revaluations|
|[[bluetooth with trendnet tbw 500 dongle to macbook air works|http://www.gentoo.org/doc/en/bluetooth-guide.xml]]|6 Apr 2008|Stuff That Works|
|[[Dis Is Yo Grandiddy|http://www.youtube.com/watch?v=gxOxHT_n8kQ]]|6 Apr 2008|Songs|
|[[Wanna be Startin' Somethin' - Akon and Michael Jackson]]|5 Apr 2008|Songs|
|[[Blu Cantrell Feat Sean Paul - Breath|http://www.youtube.com/watch?v=lYkoQDatK0w]]|4 Apr 2008|Songs|
|[[Ida Engberg - Disco Volante|http://www.youtube.com/watch?v=av3qMO21S40]]|3 Apr 2008|Songs|
|[[Love in This Club - Piano Cover|http://www.youtube.com/watch?v=ColTSe6-SHs]]|2 Apr 2008|Songs|
[[Code Prefs./Recs.]]
<div class='header' macro='gradient vert #390108 #900'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu'>
<div refresh='content' tiddler='MainMenu'></div>
</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>
(tom harada's dev notes)
p10q
/***
|''Name:''|SparklinePlugin|
|''Description:''|Sparklines macro|
***/
//{{{
if(!version.extensions.SparklinePlugin) {
version.extensions.SparklinePlugin = {installed:true};

//--
//-- Sparklines
//--

config.macros.sparkline = {};
config.macros.sparkline.handler = function(place,macroName,params)
{
	var data = [];
	var min = 0;
	var max = 0;
	var v;
	for(var t=0; t<params.length; t++) {
		v = parseInt(params[t]);
		if(v < min)
			min = v;
		if(v > max)
			max = v;
		data.push(v);
	}
	if(data.length < 1)
		return;
	var box = createTiddlyElement(place,"span",null,"sparkline",String.fromCharCode(160));
	box.title = data.join(",");
	var w = box.offsetWidth;
	var h = box.offsetHeight;
	box.style.paddingRight = (data.length * 2 - w) + "px";
	box.style.position = "relative";
	for(var d=0; d<data.length; d++) {
		var tick = document.createElement("img");
		tick.border = 0;
		tick.className = "sparktick";
		tick.style.position = "absolute";
		tick.src = "data:image/gif,GIF89a%01%00%01%00%91%FF%00%FF%FF%FF%00%00%00%C0%C0%C0%00%00%00!%F9%04%01%00%00%02%00%2C%00%00%00%00%01%00%01%00%40%02%02T%01%00%3B";
		tick.style.left = d*2 + "px";
		tick.style.width = "2px";
		v = Math.floor(((data[d] - min)/(max-min)) * h);
		tick.style.top = (h-v) + "px";
		tick.style.height = v + "px";
		box.appendChild(tick);
	}
};


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

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

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

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

.headerForeground a {
 color: #fff;
}

.header a:hover {
 border-bottom: 1px dashed #fff;
}
/*}}}*/
/***
!Main menu styles /% ============================================================= %/
***/
/*{{{*/
#mainMenu {color: #fff;}
#mainMenu h1{
 font-size: 1.1em;
}
#mainMenu li,#mainMenu ul{
 list-style: none;
 margin: 0;
 padding: 0;
}
/*}}}*/
/***
!Sidebar styles /% ============================================================= %/
***/
/*{{{*/
#sidebar {
 right: 0;
 color: #fff;
 border: 2px solid #ffbf00;
 border-width: 0 0 2px 2px;
}
#sidebarOptions {
 background-color: #4c4c4c;
 padding: 0;
}

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

}

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

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

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

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

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

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

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

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

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

.subtitle{
 color: #666;
}

.viewer {color: #fff; }

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

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

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

.viewer hr {color: #666;}

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

.toolbar {
 color: #4c4c4c;
}

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

.footer {
 color: #ddd;
}

.selected .footer {
 color: #888;
}

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

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

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

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

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

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

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

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

.cascade {
 background: #4c4c4c;
 color: #ddd;
 border: 1px solid #ffbf00;
}
/*}}}*/
Here's Akon bringing it back:

http://www.youtube.com/watch?v=gczwKhLQiu8

But what is that bridge? What does it mean?

'Gonna sail to the sound of Microsoft.'
'Gonna save on the sound of monkey slot.' [???]

http://www.amiright.com/misheard/song/wannabestartingsomething.shtml

Those are all jewels of misunderstanding. But yeah, it comes from the Cameroonian word for 'dance':

http://en.wikipedia.org/wiki/Soul_Makossa
don't forget to emerge xine-lib. otherwise alsa doesn't show up in the xine-engine of the amarok config...
running compiz 6.2

/apps/compiz/plugins/resize/allscreens

{{{
border_color: #000000
fill_color: #2f2f4f4f
mode: 2
}}}
usual startup script:

{{{
#!/bin/bash
xclock -digital -padding 2 -g -0+0 -bg black -fg white &
xsetroot -solid \#000000 &
/usr/bin/xbindkeys &
/opt/libs/COMPIZ/current/bin/compiz --replace gconf
}}}


ultimately, i find that compiz is too slow though. and not just for opengl-rendered windows inside compiz. firefox (esp. scrolling) slows down. loading terminals slows down. resize slows down (even with the above fix). and most annoyingly, you can't move rdesktop windows. so i'm writing my own. word. 
/usr/bin/start_evilwm:

{{{
#!/bin/bash
xclock -digital -padding 2 -g -0+0 -bg black -fg white &
xsetroot -solid \#000000 &
/usr/bin/xbindkeys &
/usr/bin/evilwm
}}}

/etc/X11/xinit/xinitrc:

{{{
#!/bin/sh
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
xinitdir=/etc/X11
sysresources=$xinitdir/Xresources
sysmodmap=$xinitdir/Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
    xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi

# First try ~/.xinitrc
if [ -f "$HOME/.xinitrc" ]; then
  XINITRC="$HOME/.xinitrc"
  if [ -x $XINITRC ]; then
    # if the x bit is set on .xinitrc
    # it means the xinitrc is not a
    # shell script but something else
    exec $XINITRC
  else
    exec /bin/sh "$HOME/.xinitrc"
  fi
# If not present, try the system default
elif [ -n "`/etc/X11/chooser.sh`" ]; then
  exec "`/etc/X11/chooser.sh`"
# Failsafe
else
  # start some nice programs
  #twm &
  #xclock -geometry 50x50-1+1 &
  #xterm -geometry 80x50+494+51 &
  #xterm -geometry 80x20+494-0 &
  #exec xterm -geometry 80x66+0+0 -name login
  start_evilwm
fi

}}}

N.B. Real programmers use ghetto ('light-weight') wms and are still waiting for the time to write their own ([[link|http://www.informit.com/articles/printerfriendly.aspx?p=1193856]]).
For loading libraries with a large number of symbols like Qt:

http://kdemonkey.blogspot.com/2007/12/memory-efficient-kde-4-debugging.html

For printing std containers:

http://www.stanford.edu/~afn/gdb_stl_utils/


Note, the key to debugging is really good logging (for a _DEBUG build). At least that's how I got about it...
unorganized notes:

sort out with actual .config copies later


machines

work	dell precision 480
home	dell precision something

general notes

global USE variable (in /etc/make.conf)	accessibility berkdb crypt cups gif jpeg mad mpeg ncurses oggvorbis opengl png qt qt4 quicktime readline truetype X xml2 zlib nsplugin divx realmedia wmp alsa faad aac win32codecs mp3 mp3lib foomaticdb curl freetype Xaw3d

|!Location|!Machine|!xorg.conf|!kernel .config|!more|
|Home|dell xps 410 intel core 2 q6600 quad-core 2.4ghz|[[xorg.conf|/pub_configs/home/xorg.conf]]|[[.config|/pub_configs/home/.config]]|[[notes|home_notes]]|
|Work|dell precision 480 xeon dual-core 3.4ghz|[[xorg.conf|/pub_configs/work/xorg.conf]]|[[.config|/pub_configs/work/.config]]|
|Home|ps3 60gb|||[[notes|ps3_notes]]||
|Mobile|macbook air|[[xorg.conf|/pub_configs/mobile/xorg.conf]]||[[notes|kubuntu]]|

make.conf:

{{{
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /etc/make.conf.example for a more detailed example.
CFLAGS="-O2 -march=i686 -pipe"
CXXFLAGS="${CFLAGS}"
# This should not be changed unless you know exactly what you are doing.  You
# should probably be using a different stage, instead.
CHOST="i686-pc-linux-gnu"
USE="accessibility berkdb crypt cups gif jpeg mad mpeg ncurses oggvorbis opengl png quicktime readline truetype X xml2 zlib nsplugin divx realmedia wmp alsa faad aac win32codecs mp3 mp3lib foomaticdb curl freetype Xaw3d flash sdl-mixer libxml2 gtk a52 ithreads theora"
INPUT_DEVICES="keyboard mouse"
VIDEO_CARDS="nvidia"
}}}
[[.config|/kernel_configs/home/.config]]
had an issue with burning cds. using nero or cdrecord tools, i have to burn at 8x or lower (cd only seems to work). anything faster and it doesn't work. 
still have update this for gentoo. finally switched over -- wasn't that hard with the full live cd (2008.0). do a basic install. then copy the linux kernel sources and patches to a usb key, copy them over. make the patch for asix (google for macbook air and ubuntu). recompile and you're good to starting emerging... 






|!Location|!Machine|!xorg.conf|
|Mobile|macbook air|[[xorg.conf|/pub_configs/mobile/xorg.conf]]|

!general

you need to download the broadcom drivers from hp. ubuntu has a really good bunch of tutorials on setting it up. read the one for the macbook air, the macbook santa rosa or santa barbara or whatever and the macbook in general. in fact they're so much better than the gentoo ones, that, until more gentoo documenters get going, it's probably easiest to go with k*ubuntu.

also these scripts might come in handy:

http://p10q.com/pub_configs/mobile/scripts/
 

!to map apple key -> alt; alt/option to right mouse click

/etc/sysctl.conf :

{{{
dev.mac_hid.mouse_button_emulation=1
dev.mac_hid.mouse_button2_keycode=56
}}}

/home/tom/.xmodmap

{{{
keycode 115 = Alt_L
keycode 64 =
}}}


!internet via blackberry

http://www.artficial.com/2008/01/howto_tether_a_blackberry_8830.html


{{{
howto: tether a blackberry 8830 as a modem via bluetooth on a thinkpad t43/ubuntu (sprint/nextel only)

after tinkering around with XmBlackBerry, i came to the conclusion that usb tethering for the 8830 model is a dead end (for the time being). there seems to be a mismatch of product ID buried in the source somewhere as i gathered from various forums. instead, i was able to successfully tether the 8830 using bluetooth. in the end, i think i prefer this method anyway (less wires, the better!). here's how (assuming that bluetooth is already enabled):

1) obtain the MAC address for your phone as well as the channel number for your phone's DUN service:

user:~$ sdptool search DUN
  Inquiring ...
  Searching for DUN on 00:1C:CC:36:8C:0F ...
  Service Name: Dialup Networking
  Service RecHandle: 0x10002
  Service Class ID List:
     "Dialup Networking" (0x1103)
     "Generic Networking" (0x1201)
  Protocol Descriptor List:
     "L2CAP" (0x0100)
     "RFCOMM" (0x0003)
     Channel: 3
  Profile Descriptor List:
     "Dialup Networking" (0x1103)
     Version: 0x0100

this tells us that the DUN service is binded to channel 3. in order to bind this to a serial port, edit /etc/bluetooth/rfcomm.conf and modify the following entry to match your result (MAC and channel).

rfcomm0 {
  bind yes;
  device 00:1C:CC:36:8C:0F
  channel 3;
  comment "Blackberry";
}

2) restart the bluetooth service

user:~$ sudo /etc/init.d/bluetooth restart

3) check that it bound the phone to the correct channel

user:~$ rfcomm
rfcomm0: 00:1C:CC:36:8C:0F channel 3 clean

** if the rfcomm0 isn't bound to the right channel, you might have to release it and manually bind it. **

user:~$ sudo rfcomm release 0
user:~$ sudo rfcomm bind 0 00:1C:CC:36:8C:0F 3

5) run the following script to connect!
bb-wifi-connect
#!/bin/bash
if [ "`whoami`" != "root" ] ; then
echo Usage sudo $0 bb-wifi
exit 1
fi

echo [+] Releasing channel on rfcomm0...
sudo rfcomm release 0
sudo rfcomm bind 0 00:1C:CC:36:8C:0F 3

echo [+] Checking rfcomm status...
sudo rfcomm

echo [+] Sleeping for 5 seconds...
sleep 5

echo [+] Attempting ppp connection over bluetooth...
cd
sudo pppd call blackberry_bt
-------------------------------------
/etc/ppp/peers/blackberry_bt
debug debug debug
/dev/rfcomm0 115200
connect "/usr/sbin/chat -v -f /etc/chatscripts/blackberry_sprint"
crtscts
modem -detach
noccp
defaultroute
usepeerdns
noauth
ipcp-accept-remote
ipcp-accept-local
noipdefault
-------------------------------------
/etc/chatscripts/blackberry_sprint
TIMEOUT 10
ABORT 'BUSY'
ABORT 'NO ANSWER'
ABORT 'ERROR'
SAY 'Starting Sprint...\n'

# Get the modem's attention and reset it.
"" 'ATZ'
# E0=No echo, V1=English result codes
OK 'ATE0V1'

# List signal quality
'OK' 'AT+CSQ'

'OK' 'ATDT#777'
CONNECT
}}}

also, in /etc/bluetooth/hcid.conf, you may have to change the pairing mode to 'pairing multi' and put in a passkey. 

finally, if your hciconfig -a gets in a bad state (i.e., there is an error like it can't find the name or something), then turn off bluetooth or turn off your phone, and do an hciconfig reset hci0. wait. whatever. the goal is to get hciconfig -a back online without an error. then you should be good to go with connecting again. 
you ever notice how boost and the std use underscores and lower case? you ever think they might know something more than everyone else who uses camel case?

it turns out they do. maximum understanding of code with camel case has a fluidity factor of maybe 99.5%. which is good enough for most things. but you can only really know exactly what you're doing if there are no bumps.
http://www.monkey.org/openbsd/archive/misc/0401/msg00587.html

division also works.

$ madplay -R 37669 *.mp3 
...
...
output: resampling 44100 Hz to 37669 Hz
.mrxvt:

{{{
Mrxvt.macro.Ctrl+t: NewTab
#Mrxvt.macro.Ctrl+w: Close 0
Mrxvt.holdExit: 0
Mrxvt.hideButtons: True
Mrxvt.scrollBar: False
Mrxvt.background: #d3d3d3
Mrxvt.itabBackground: #d3d3d3
Mrxvt.font: -*-profont-*-*-*-*-22-*
Mrxvt*color0: #000000
Mrxvt*color1: #b21818
Mrxvt*color2: #18b218
Mrxvt*color3: #b26818
Mrxvt*color4: #1818b2
Mrxvt*color5: #b218b2
Mrxvt*color6: #18b2b2
Mrxvt*color7: #b2b2b2
Mrxvt*color8: #686868
Mrxvt*color9: #FF5454
Mrxvt*color10: #54FF54
Mrxvt*color11: #FFFF54
Mrxvt*color12: #5454FF
Mrxvt*color13: #FF54FF
Mrxvt*color14: #54FFFF
Mrxvt*color15: #FFFFFF
Mrxvt*saveLines: 10000
}}}
http://forums.remote-exploit.org/showthread.php?p=25149
http://forums.remote-exploit.org/showthread.php?p=25149
also a fan of boost xpressive. pcre (and pcrecpp) is just so much faster to compile though.
to add pcf font (truetype fonts are easier, just extract into your ~/.fonts directory and maybe run fc-cache or add it to your xorg.conf or something):
{{{
extract pcf profonts to /usr/share/fonts/profont/
mkfontscale /usr/share/fonts/profont/
mkfontdir /usr/share/fonts/profont/
xset +fp /usr/share/fonts/profont/
fc-cache
}}}

via
http://www.xfree86.org/current/fonts2.html
~  
basically do this:

http://overlays.gentoo.org/proj/cell/wiki/InstallGentooOnPS3

note, if you want to playback video (e.g., avi files), the graphics hardware can't keep up with a dell 3007wfp. at least not with mplayer. i suppose it must be possible b/c you can playback bluray dvds and everything in sony's os. perhaps there is a way to tweak it to display to the framebuffer directly. wasn't able to peronsally though.
if you want to fiddle with it from source:

{{{
tom@chiwwd011:~/compare/sqsh-2.1.5$ diff -u configure ~/sqsh-2.1.5/configure
--- configure   2004-11-08 06:57:17.000000000 -0600
+++ /home/tom/sqsh-2.1.5/configure      2008-05-12 12:50:02.000000000 -0500
@@ -2909,25 +2909,26 @@

                SYBASE_LIBS=

-               for i in blk cs ct tcl comn intl
-               do
-                       x=
-                       if test -f $SYBASE_LIBDIR/lib${i}.a; then
-                               x="-l${i}"
-                       else if test -f $SYBASE_LIBDIR/lib${i}64.a; then
-                               x="-l${i}64"
-                       else if test -f $SYBASE_LIBDIR/libsyb${i}.a; then
-                               x="-lsyb${i}"
-                       else if test -f $SYBASE_LIBDIR/libsyb${i}64.a; then
-                               x="-lsyb${i}64"
-                       fi
-                       fi
-                       fi
-                       fi
-                       if test -n $x ; then
-                               SYBASE_LIBS="$SYBASE_LIBS $x"
-                       fi
-               done
+               #for i in cs ct tcl comn intl
+               #do
+               #       x=
+               ##      if test -f $SYBASE_LIBDIR/lib${i}_r.a; then
+               #               x="-l${i}_r"
+               ##      #else if test -f $SYBASE_LIBDIR/lib${i}64.a; then
+               #       #       x="-l${i}64"
+               #       else if test -f $SYBASE_LIBDIR/libsyb${i}_r.a; then
+               #               x="-lsyb${i}"
+               #       #else if test -f $SYBASE_LIBDIR/libsyb${i}64.a; then
+               #       #       x="-lsyb${i}64"
+               #       fi
+               #       fi
+               #       #fi
+               #       #fi
+               #       if test -n $x ; then
+               #               SYBASE_LIBS="$SYBASE_LIBS $x"
+               #       fi
+               #done
+               SYBASE_LIBS="-lblk_r -lct_r -lcs_r -lcomn_r -lintl_r -lsybtcl_r"
                #
                # Check for -ltds (FreeTDS project)
                #
@@ -2972,7 +2973,7 @@
 echo $ECHO_N "checking Open Client OS libraries... $ECHO_C" >&6
                case "${host_os}" in
                        linux*)
-                               SYBASE_OS="-ldl -lm";;
+                               SYBASE_OS="-ldl -lm -lpthread";;
                        irix*)
                                SYBASE_OS="-lnsl -lm";;
                        ncr*)
}}}

and then i ran something like:

{{{
./configure --prefix=/opt/apps/SQSH --with-readline
}}}

the /etc/sqshrc from standard distros (redhat, gentoo) is good.
~/.vimrc:

{{{
set syntax=enable
syntax on
set tabstop=2
set shiftwidth=2
set hlsearch
set splitright
set splitbelow
set tags=tags
"toggle taglist
nnoremap <silent> <F3> :TlistToggle<CR>
"repeat command-line command
nnoremap <silent> <F4> :@:<CR>
au BufWinLeave *.* mkview
au BufWinEnter *.* silent loadview
"so that we set the foldmethod to marker after
"all plugins (particularly taglist.vim) are loaded
au BufWinEnter *.* set fdm=marker

fu! Create_function_fold()
 execute "normal A" . "/*{{{*/" . "^["
 execute "normal /" . "{" . "^M"
 norm %
 execute "normal A" . "/*}}}*/" . "^["
 execute "normal /" . "{" . "^M"
 execute "normal k"
endf
}}}
work setup notes

SATA support in 'make menuconfig', in addition to this, remember that in order to see 'Device Drivers -> Serial ATA (prod) and Parallel ATA (experimental) drivers', you must select 'Bus Options -> PCI support' first.
other kernel options loadable modules, experimental drivers, cdrom support, ext2/ext3 support, SMP, high-resolution timer (for audio apps), EHCI HCD, OHCI HCD, UCHI HCD, device driver network support (ethernet 1000 -> intel drivers), network support (tcp, udp multicast, unix sockets). and remember. to f-ing mount the boot partition before copying the kernel there. faaaaaaa...

for alsa, mute is [[backwards|http://forums.gentoo.org/viewtopic-p-4204516.html?sid=2abafd5195721c4a87f03425028fa556]].

[[.config|/kernel_configs/work/.config]]
.xbindkeysrc (avoid ctrl-alt, so as not to conflict with rdesktop):
{{{
"mrxvt"
  Shift+Alt+Mod2 + Return
"firefox"
  alt + shift + f
}}}
.Xresources (for color and scrolling):
{{{
XTerm*color0: #000000
XTerm*color1: #b21818
XTerm*color2: #18b218
XTerm*color3: #b26818
XTerm*color4: #1818b2
XTerm*color5: #b218b2
XTerm*color6: #18b2b2
XTerm*color7: #b2b2b2
XTerm*color8: #686868
XTerm*color9: #FF5454
XTerm*color10: #54FF54
XTerm*color11: #FFFF54
XTerm*color12: #5454FF
XTerm*color13: #FF54FF
XTerm*color14: #54FFFF
XTerm*color15: #FFFFFF
XTerm*saveLines: 10000

!# Scrolling on wheel mouse: half a page normally, line per line with shift
XTerm.vt100.translations: #override\n\
Shift<Btn4Down>,<Btn4Up>:scroll-back(1,line)\n\
Shift<Btn5Down>,<Btn5Up>:scroll-forw(1,line)\n\
Ctrl<Btn4Down>,<Btn4Up>:scroll-back(1,page)\n\
Ctrl<Btn5Down>,<Btn5Up>:scroll-forw(1,page)\n\
<Btn4Down>,<Btn4Up>:scroll-back(1,halfpage)\n\
<Btn5Down>,<Btn5Up>:scroll-forw(1,halfpage)\n\

!# In the scrollbar we map buttons 5 & 4 to 1 and 2 otherwise, core dump
!# This will move proportionnaly to cursor position but we dont know how to
!# program the same exact behavior as in the text widget.
XTerm.vt100.Scrollbar.translations: #override\n\
<Btn5Down>: StartScroll(Forward)\n\
<Btn4Down>: StartScroll(Backward)\n\
}}}

also, to avoid the periodic non-clearing issue after running vim. it's suggested you actually emulate rxvt. e.g., in .bashrc:

{{{
export TERM=rxvt
}}}

[via http://ubuntuforums.org/showthread.php?p=4505100 ]

steps to install zbrush on linux

1. create an ms installer project in visual studio 2005 (on windows), selecting the crt dlls for all architectures. using the modules or something. have the project not actually install anything other than these c-runtime modules. save this; it will be used to by anything compiled with vs2005/2008 (i.e., using the dlls and manifest files in the ~WinSxS directory).
2. emerge wine (you don't need 1.0-rc1 for zbrush)
3. wine this_installer_from_step_one.exe
4. get zbrush3.
5. wine the_installer...exe
6. follow the winetricks thing here: http://appdb.winehq.org/objectManager.php?sClass=version&iId=8023&iTestingId=17058
7. but don't enter a serial number. some of the winhttp functions are not implemented, it will work if you just don't enter a serial number (press cancel).
8. start sculpting.