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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

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

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
!whois:
''Given name'' Mattia
''Family name'' Landoni
''Net alias'' The Web President
''Born'' 12 May 1982 in Milano, Italy
''Mailing address'' 560 Riverside Dr Apt 4O, New York, NY

Please download my  [[CV|/files/CV.pdf]]
This is the Web President's New --Deal-- Website.

!History
I used to work as a web designer and administrator during college, and at some point a machine bestowed upon me the title of "Web Master". I thought that was cool, but somewhat autocratic. I changed that to "Web President", in line with my college major, Public Administration.

This website started as a diary of my adventures in China, to replace annoying mass emails. Then the website started to act as a repository of things I had done that were worth publishing somehow.

The header is a mashup of photos of me, my wife Yi, our son Leonardo and my father-in-law Maochang. It replaces a mashup of worn-out political symbols that was judged too inappropriate by one of my elders. Also, it's nice.

!Colophon
After some trial and error, I found TiddlyWiki. As you can see, it's a really fast browsing experience because all the website is contained in one HTML file, and it's friendly to Google and other indexing websites. The problem is that there is no possibility of leaving comments, but you can always mail them to me and have them published. If I figure a way to enable comments, I will reopen them of course. Also, if you hate CamelCase words, I'm sorry but that's how TiddlyWiki works; can't do without. Still, a small price to pay.

This website is typeset in [[Libre Baskerville|http://www.impallari.com/projects/update/86]]; if you are seeing a typewriter font, the website should still be pretty, but Libre Baskerville is not installed. Download it and install it now! It's the best font in the world.

Pictures you might find are either from the reported author, or mine. Cameras:
* --Casio Exilim-- retired
* --Canon Powershot A430-- lost, together with the pictures of me on top of a volcano
* Canon Powershot SX110

!Copyright
Basically if you copy something from here without my permission the curse of the Pharaoh will be upon you. (However, I do give permission rather easily, so go ahead and email me at himself at web president dot org).
<html><a href='http://www.myfreecopyright.com/registered_mcn/WQG1X-Y93GG-36E67' title='MyFreeCopyright.com Registered & Protected' ><img src='http://storage.myfreecopyright.com/mfc_protected.png' alt='MyFreeCopyright.com Registered & Protected' title='MyFreeCopyright.com Registered & Protected' width='145px' height='38px' border='0'/></a></html>
//''Note'': Neither "Aztec" nor "Muffins" have anything to do with Italy, but hey, chocolate. Uncle Guido would approve. This recipe is an improvement upon a very good recipe, [[Mexican Chocolate Banana Muffins|http://www.foodnetwork.com/recipes/marcela-valladolid/mexican-chocolate-banana-muffins-recipe/index.html]] by Marcela Valladolid on Food Network. I translated the measure units, changed the Mexican (?) chocolate with chili chocolate, sugar with cane sugar, reduced both sugar and fat, and rewrote some passages that I found either wordy or unclear. I also optimized the procedure from the point of view of one who washes his own dishes.//

I am adopting an experimental technique, which is normal for US recipes but unknown in Italy, to measure powdered ingredients (sugar, flour, etc.) by volume. This helps people like me who have no room in the kitchen for a scale.

''Necessary for 12 muffins (~214 cal/muffin)''

    240ml (1.5 cups) white flour [600 cal]
    80ml (.5 cups) cane sugar [360 cal]
    7.5ml (1.5 teaspoons) baking powder
    1.25ml (.25 teaspoons) salt
    2 large ripe bananas [240 cal]
    1 egg [85 cal]
    90g (3oz, or 3/4 stick) unsalted butter [600 cal]
    40ml (.25 cups) whole milk [146 cal]
    100g (3.5oz) chili chocolate (e.g. Lindt) [544 cal]

To bake the muffins you'll need cupcake tins ("cakecups"?) and possibly a pan to put them in. I use 6-cup disposable tin to hold the cups.

''Preparation''

Preheat the oven to 180 &deg;C (350 &deg;F).

In a medium-sized bowl, mix the flour, sugar, baking powder and salt.

In a large bowl (this will be your main bowl), melt the butter in the microwave oven. Add egg and milk. Mash in the bananas until relatively homogeneous.

Throw in the dry ingredients and stir just until blended (and no longer, or your muffins may get tough). Add the chopped chocolate, mix a little more, and distribute among the 12 cups.

Bake the muffins about 30 minutes. They are ready if a toothpick comes out with no crumbs attached. The muffins can be stored in a ziploc box for up to 4 days.

//&copy; Mattia Landoni 1-Jan-2012.//
''Necessary''
1 onion
1 stem celery
1 carrot
red wine
1/3 lb (150g) ground beef
1/3 lb (150g) ground pork
2 cans tomato sauce
2 cans diced tomatoes, drained
olive oil

''Preparation''
Finely chop the onion, celery and carrot and fry them in olive oil. When the onion is golden, mix together and add the ground meat. Mix the meat with a spoon until it's uniformly cooked, add a glass of red wine and let it evaporate. Add the tomato and let cook with low fire and a lid. Make sure nothing burns by stirring periodically and checking it does not get too dry. You may add more red wine or water to lengthen the cooking time (tomatoes should cook as long as possible). When satisfied, serve with pasta, use to make [[Lasagne]], or freeze portions for when you don't want to cook.

//&copy; Mattia Landoni 15-Jan-2010.//
''Necessary''
(for one wrap)

1 branzino gutted and cleaned
salt, pepper
olive oil
cherry tomatoes
potatoes
capers
pitted olives, black or green
brandy or white wine or beer
balsamic vinegar
oven

''Warning''
Branzino used to be called "sea bass". In fact, many perch-like species are called "bass", and they are all delicious, and in general every perch-like fish will do well with this recipe, even trout. Then came the marketing people, they took a cod, and they called it "Chilean seabass", commanding a 150% premium on honest cod. Fuck them. Join me and other 2 people in a nationwide boycott of [[Chilean seabass|http://en.wikipedia.org/wiki/Chilean_sea_bass]] and [[Malaysian Oak|http://en.wikipedia.org/wiki/Rubberwood]].

''Preparation''
Lay a large aluminum foil on the table and raise its edges so no liquid can leak out. Cut the potatoes into very thin slices, lay them on the bottom, and add a little bit of oil, salt, pepper, olives, chopped cherry tomatoes, capers, brandy and a few drops of vinegar. Lay the fish on top of all that, and stuff it with the same seasonings. Finally, cover the fish with a layer of potatoes and everything else. Close the wrap, //paying attention that the fishbones do not pierce the foil, or you are SCREWED//. Oven bake for 15-20 minutes according to the size of the fish. A 25cm fish needs about 20 minutes.

//&copy; Mattia Landoni 14-Jan-2010.//
For 3 people

''Necessary''
300 g orecchiette pasta (2/3 of a pound - err on the side of too much...)
3 anchovy fillets in oil
2 cloves of garlic
olive oil
2 large broccoli branches
champagne! (or white wine, or beer)
salt
a wooden spoon

''Broccoli''
Boil the broccoli, including the stem if you like - more stuff, but harder to digest - for 15-20 minutes or until very soft. Drain them and //don't forget to rinse the colander//. Chop the garlic into large pieces and fry it in olive oil together with the anchovies. Remove the garlic when blackened. The anchovies will "melt" with the help of a spoon. Then add the soft broccoli and mix. Fry as needed, curbing excessive heat with a glass of wine or beer, and smash the broccoli with the wooden spoon until they are beaten to a tasty pulp. Keep it warm until you have the...

''Orecchiette''
The most professional orecchiette pasta do not have a cooking time written on the packaging, so you'll have to taste it, but it's about 15 minutes. Therefore, it's hard to synchronize the preparation of broccoli and orecchiette, and I recommend to give the broccoli a head start. Pasta can't wait when it's ready, broccoli can. You probably want to throw the pasta into the boiling, salted water when you throw the cooked broccoli into the frying pan. When orecchiette is ready, drain it and throw it into the frying pan where the broccoli is waiting. Saute&eacute; at will.

Serve the dish with generous sprinkling of Parmesan (possibly Grana Padano).

//&copy; Mattia Landoni 14-Jan-2010.//
New Year greetings for a friend. I joke on the fact that the lobby of party supplies multinationals bribed an Italian Nobel prize winner to convince the people that the century began in 2000 and not 2001, then performed an abrupt about-turn the next year, provoking a double millennium celebration.
//Auguri di capodanno per un'amica. Ironizza sul fatto che la lobby delle multinazionali del party abbia pagato un premio nobel italiano per convincere la gente che il secolo iniziava nel 2000 e non nel 2001, per poi voltare faccia l'anno successivo e, di fatto, provocando un doppio party mondiale.//
-------
Bellissima! Buon anno, buon duemila!
Un secolo è iniziato, a quanto pare...
Or gli anni tutti dietro, tutti in fila,
Non resta che brindare e festeggiare

Ancora festa fia tra solo un anno
Nell'anno del signor duemilaeuno!
Nel caso tratti fossimo in inganno...
Ormai non glie ne importa più a nessuno.

Sebbene a me e a pochi altri ne cale,
Intanto nel tripudio ci sto anch'io:
Mica che (non sai mai) finisca il mondo...

Orsù brindiamo a Bacco rubicondo!
Ne approfitto per mandarti questo mio
Augurio, un augurio VERTICALE.
''Necessary''
butter 100g (3 oz)
cane sugar 150g (1/3 lb)
3 eggs
plain cocoa powder 50g (2 oz)
Bahlsen Leibniz cookies 300g (1.5 packages, 2/3 lb)
Marsala or other sweet, strong wine - one shot (to taste)

''Preparation''
Break all the cookies into crumbs. Separate the egg whites from the yolks, and whip the whites with an electric whip. Melt the butter without having it boil. Add the sugar to it and mix. Then add the yolks and the cocoa, and always keep mixing. Add the egg white. When the mix reaches a uniform texture, add the cookie crumbs and finally the shot of Marsala. Mix with your hands until the cookies are uniformly distributed. Wrap up in aluminum and try to give it a salami-like shape. Put in the freezer for a couple of hours and let condense. Then keep in the fridge for storage and serving. Typically, an overnight rest in the fridge will be optimal so the cookies can get soaked with everything else.

//&copy; Mattia Landoni 14-Jan-2010.//
This one is a translation of someone else's recipe that is too well-written to change anything ([[the original has pictures|http://www.cookaround.com/yabbse1/showthread.php?t=8490&s=028f2b4da0743cd1f9d6eaeb5fc2da89]]).

It could be made more user friendly, but the substance is all there, so I'll just try to keep the verve of the original alive in my translation and add some footnotes. //Just read the whole thing one day before starting//, it's more important than usual.

Note that you need live clams, not frozen. Also, I do this in a wok and heat the living hell out of those poor clams. This imparts the distinctive [[wok hei|http://en.wikipedia.org/wiki/Wok_hei#Wok_hei]] that some people are crazy about. But that's because my wife is Chinese and so we kind of do a little fusion sometimes. You can just use a steel pan and keep fire low-ish so you'll have more juice at the end. Nonstick is OK but it might get scratched by the shells, your call.

''The recipe''

//Guys, it's so obvious, it's kind of like beating a dead horse, but for me it's one of the tastiest classics of seafood cuisine. I am putting down both versions, red and white; I prefer the second, but with tomato it ain't bad, either.

Look, if instead of veraci clams you have lupini,[1] even better, they are sweeter and less aggressive, too bad they are getting harder and harder to find.

First thing, put the clams in the pan without any odor [2] and let them open up on a low fire. As soon as they open and release their water, turn off.

Keep the clams in water and salt for 3-4 hours hoping that they purge the sand if any. Look, you gotta eliminate those that have a broken shell and those that don't open up.

Shuck the clams and pass their water through a paper towel.[3]

Prepare a seasoning out of garlic, extra oil, and crumbled dry chili peppers.

Now, don't put too much oil and here it's not a matter of diet, in my opinion there's nothing worse than these spaghetti swimming in an oil puddle at the bottom of the dish, the sauce must be for the most part made up of the mollusks' water which by the way gives the true taste.

Stir fry the seasoning taking care not to burn the garlic, then add the clams and let it get flavor for a few minutes.

Finally add the clams' water, heat up, blur in the dry white wine, reduce, a dash of fresh parsley, usually no need for salt, and that's it.

For the red sauce, the procedure is identical but when the sauce is reducing add raw tomato passata (possibly fresh). [4]

Further reduce, and the two sauces are ready.

Drain the spaghetti al dente and sautee them in the pan together with the sauce. Serve hot.[5]//

''Footnotes''
[1] Any clams will do, just don't get those Asian giant clams on steroids. For the geeks: "veraci" clams are //Venerupis decussata//, commonly known as the cross-cut carpet shell. "Lupini" are //Dosinia exoleta//.
[2] "Seasoning".
[3] Shells look awesome when you serve them to your guests, but they also occupy a lot of space, so you keep some for presentation. The paper towel step is to filter the sand residue.
[4] "Passata" is just tomato puree without any seasonings. Every supermarket has it, and it usually says "passata" on the label. If you can't find it, you can make it yourself by beating the crap out of tomatoes and filtering, or just use any crushed tomatoes. Or any tomatoes cut in any way. Just don't use the pre-seasoned "sauce" that has a ton of garlic and preservatives and tastes like horse piss.
[5] All recipes that require sauteeing pasta in the sauce pan call for an early ("al dente") draining of spaghetti, because the spaghetti will continue cooking all the way until they are served. So don't worry if they feel a little bit hard just before you drain them. Worst case, you can sautee them longer. Bon appetit.

//&copy; Mattia Landoni 1-Jan-2012.//
''Necessary''
(for 4 people)
250ml (1 cup) heavy cream
60g (1/3 cup) fine cane sugar (pay attention: actual amount of sugar is to taste)
2 egg yolks
1/2 teaspoon vanilla extract
torch
saucepan
oven-safe cups or disposable aluminum cups
baking pan, possibly
oven

''Preparation''
In a saucepan heat up the cream and 1/3 of the sugar, stirring every now and then until small bubbles appear on the sides of the pan, about 5 minutes. Set aside. 

In a bowl, mix well egg yolks and vanilla, then gradually stir in the hot cream. Make sure there are no lumps. Pour the mixture into the cups, and bake: if possible, put the oven-safe cups into a baking pan that is half full of water, and cover the whole thing with aluminum foil. This will distribute heat as evenly as possible. Otherwise just bake, hey, we are no French chefs here. After about 25 minutes, the custard should be set. Remove and chill for 2-3 hours.

Using a sieve, sprinkle the remaining sugar on the custard, then burn it using the torch. When the sugar becomes brown-black, it's done. Let cool and serve.

//&copy; Mattia Landoni 14-Jan-2010.//
This page has some datasets that are either hard to find, or that I'd like to highlight. Data are usually in rectangular text format (tab-separated) with a do-file to import them into Stata. Data come from diverse sources and all I did was to aggregate them. The day I go and [[dig an ice core at the North Pole|http://www.ncdc.noaa.gov/paleo/icecore/antarctica/vostok/vostok.html]] or [[count a billion people|http://censusindia.gov.in/]], that will be clearly stated. Finally, either data are in the public domain, or I received authorization to publish them.
!Demographic and economic data
* [[Macroeconomic and population time series by professor Trevor John Orme Dick]]. The data span about 1776-1935 and complete more recent series for Sweden, Germany, France, United States and United Kingdom.
!Climate data
Should we worry about global warming? You tell me!
* [[Vostok ice core temperature data]], reporting the surface temperature at the North Pole for the last 400,000 years
* [[Vostok and Mauna Loa atmospheric CO2 series]]. The two series span, again, about 400,000 years and the latter goes on until the present year.
Welcome
My best poem. Inspired by, and describing, a muse. //La mia poesia migliore. Ispirata da, e descrive, una musa.//
------
//Le rime sono più noiose delle
dame di San Vincenzo: battono alla porta
e insistono. Respingerle è impossibile
e purchè stiano fuori si sopportano.
Il poeta decente le allontana
(le rime), le nasconde, bara, tenta
il contrabbando//
Montale, //Le rime//, da //Satura//
------

Un caso, come sempre, l'incontrarti
Ti vidi il primo dì, duemila ore
sprecai senza notarti, non ho naso
per l'amore. Ti coccolo e sorridi...

I bei capelli biondi sparpagliati
Il viso abbandonato sul cuscino
Gli occhioni spalancati blu profondi
Il mattino oggi è nato col sorriso!

Sorriso che in un attimo si spezza
eliso dalla consapevolezza
che a giorni tornerò tra la mia gente.

Ma a te un po' di dolcezza è sufficiente!
Ignori ciò che ho dentro, una carezza
&Egrave; un decimo di un decimo di un niente.
Ingredients to fill a standard baking pan

''Necessary''
1 eggplant the size of an adult head, or equivalent weight of smaller ones;
5 cans of diced tomatoes, without any seasoning!!!
three cloves garlic
a handful of parsley leaves
salt, pepper
red wine, not too strong taste, or beer
mozzarella cheese, possibly hand-pulled
Parmesan cheese
olive oil
butter
baking pan
oven

''Tomato sauce''
Chop the garlic, fry it in olive oil until golden, then add the tomato. Note: drain the water from the can before adding! Add parsley, salt, pepper as needed, then let it cook until dry. The longer it cooks, the better, so begin with sufficient advance and add wine or beer to the sauce to prevent it from burning while adding taste.

''Eggplant''
Ideally, you'll have one big-ass eggplant. Cut it up into 1cm-thick (that's half inch) steaks. If you have a lot of time, salt the "steaks" a few hours in advance to soak their water, then clean away the excess salt.
Grill the eggplants with a brushed coating of olive oil. A reader suggests a coating of olive oil, crushed garlic and basil, which turned out to be quite good. In fact you can add pretty much anything to olive oil, as long as it sticks to the "steaks" and you like it. If you can't grill, fry the "steaks" in olive oil. If you think it's too expensive, use canola oil, an inexperienced palate won't know the difference in this case. You can also use a mix of oil and water, it will be cheaper and the eggplant will cook anyway. (Beware though, mixing hot oil and water is dangerous; use little oil in this case or BOOM). Make sure the "steaks" don't break during cooking.

''Finishing''
Smear the baking pan with butter. Lay a first layer of eggplant. Cover it with tomato sauce. Cover with cubed mozzarella and parmesan. BE A DEMAGOGUE, pander to the People, don't spare on cheese. Repeat the eggplant-sauce-cheese scheme until you run out of ingredients. Ideally, you'll finish with a layer of eggplant and sprinkle it with the remaining cheese to give it the classic "au gratin" looks.
Oven bake at 150 °C for 30-40 minutes, and serve to your astonished guests.

//&copy; Mattia Landoni 14-Jan-2010.//


!You ain't writing Italian no more? Dov'&egrave; l'italiano?
Eh s&igrave;, mi son messo a scrivere in inglese. Non sai l'inglese? Chiamami e ci facciamo una chiacchierata. C'&egrave;, in ogni caso, una sezione di [[ricette italiane|ItalianRecipes]].

!Where are all of your old posts? the pictures?
I am sorry for all those who liked browsing my archives - I will try to exhume them as soon as I have some time. But I got'em.
Here is where I put ideas that aren't fully developed, but that I don't want to forget. It is an unstructured junk yard so you shouldn't be looking into it with a critical eye. But you are free to send comments.

!Fun stuff
* [[Torchy]]
!Scientific ideas that I don't have the time or the skills to develop
* What is actually the effect of distance on migration? make a long-term study using census data.
* How did my forecasts do compared to the 2010 Chinese Census?
* Find a mathematical description for graph traversal yield (or graph exploration)
* Bureau of transportation has a 10% quarterly sample of tickets sold ("origin and destination" survey -> "db1b" table -> "tickets")
* [[Long-term determinants of house prices]]
<<importTiddlers>>
The recipes that keep Italian expatriates alive, and some non Italian ones that I learned along the way. These are written in a language that approximates the way I speak when I am cooking, so they may not be suitable for work.

''Make from Scratch''
* [[Pasta]]
* [[Sundried Tomatoes in Oil]]
''First Courses''
* [[Broccoli Orecchiette Pasta]]
* [[Clam Spaghetti]]
* [[Sundried Tomato Orecchiette]]
* [[Shrimp Risotto]]
* [[Quasi-Tuscan Soup]]
* [[Tomato Sauce]] for Pasta
* [[Bolognese Sauce]] for Pasta or [[Lasagne]]
* [[Other Pasta Sauces]]
''Second Courses''
* [[Eggplant Parmesan]]
* [[Pepper Stew (Peperonata)]]
* [[Onion Cream Pork Roast]]
* [[Zampone or Sausage with Lentils]]
* [[Stewed Octopus and Potato Salad]]
* [[Branzino in a Foil Wrap]]
* [[Stewed Squid with Peas and Polenta]]
* [[Sole in Tomato Sauce]]
''Desserts''
* [[Tiramisu]]
* [[Chocolate Salami]]
* [[Creme Brulee]]
* [[Aztec Muffins]]

''Notes to all recipes''
* All recipes calling for Parmesan cheese: there is a variety of it called "Grana Padano". It is by far the best and usually costs a little less than the one called "Parmigiano Reggiano".
* SafetyInstructions.
* //Read carefully the WHOLE recipe before starting//. I don't want you to be in the middle and realize you needed a pressure cooker that you don't have. Especially given how hard it is to find a damn pressure cooker in America.
* These recipes have been collected, test-driven and translated into English by me. They are the fruit of the sweat of my brow, and I like to retain the exclusive right of publication. In short: //&copy; Mattia Landoni 2010.// [[Also see this page for more copyright info|AboutThis]].
Published on the 2007 edition of the [[Princeton Journal of Public and International Affairs|http://www.princeton.edu/~jpia/]], a journal for MPP students issued by the homonymous school of Public Policy. Hastily put together, could be improved.
!!!Abstract
This paper examines the current situation of delay in the Federal District Courts, and proposes ways to reduce it. District Courts are increasingly overwhelmed by the demand of judicial services, and the trend is likely to continue in the future in absence of action because none of the underlying causes will cease to exist. A quantitative analysis of the main determinants of demand is followed by an overview of the options to increase supply: changing the method to assess the need for judges is worth considering; modifying the procedure – the strategy adopted so far – seems to offer little marginal benefit; finally, introduction of good management practices and digital information management seems to be an innovative and promising approach.
!!!Data
The database is probably the most valuable thing in this article. Since data never come broken down by federal judicial district, all variables had to be put together starting from county data. Moreover, many counties changed name and territory during the 1992-2005 period and this has been accounted for. The dataset therefore contains:
* The Federal Court Management Statistics (picked year by year in an odd format and aggregated into one dataset);
* A consistent series of federal district population elaborated from the county data of the Census Bureau
* A consistent series of district Personal Disposable Income (a good proxy for GDP or production), aggregated from county data of the BEA;
* District surface in square miles, available on the Dept. of Justice website together with the list of counties of each district.
!!!Material
* [[The article|/workingpapers/JusticeManagement.pdf]]
* [[The data and script, Stata format|/workingpapers/JusticeManagement.zip]]
<!--{{{-->
<div class='header'>
 <div class='titleLine'>
 <span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
 <span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
 </div>
</div>
<div id='sidebar'>
 <div id='sidebarSearch' macro='search'></div>
 <div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
 <div id='sidebarOptions' refresh='content' tiddler='KubrickSidebar'></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 id='contentFooter'><p>TiddlyWiki was created by <a href='http://tiddlywiki.com'>Jeremy Ruston</a> and TiddlyKubrick was created by <a href='http://checkettsweb.com'>Clint Checketts</a></p></div>
<!--}}}-->
!Categories
<<allTags>>
!Blog!
*<<newTiddler>>
*<<newJournal 'DD MMM YYYY' journal>>

!Meta
*<<closeAll>>
*<<permaview>>
*<<saveChanges>>
*<<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
/***
http://tiddlystyles.com/#theme:Kubrick

!General Rules
***/
/*{{{*/
a,
.button{
 color: #06c;
 text-decoration: none;
 background: transparent;
}

a:hover,
.button:hover{
 background: transparent;
 text-decoration: underline;
 color: #147;
}

body {
 font-size: 62.5%; /* Resets 1em to 10px */
 font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
 background-color: #d5d6d7;
 color: #666;
 background: #e7e7e7;
 margin: 0 auto;
}

#contentWrapper{
 background: transparent url("kubrickbg.jpg") repeat-y 0px 0px;
 border: 0;
 margin: 0 auto;
 width: 760px;
}

/*}}}*/
/***
!Header Rules
***/
/*{{{*/
.titleLine{
 margin: 80px auto 0em;
 padding: 0;
 width: 745px;
 text-align: center;
 color: #fff;
}

.siteTitle{
 font-weight: bold;
}

.siteTitle a, .siteSubtitle a{
 color: #fff;
}

.siteTitle a:hover, .siteSubtitle a:hover{
 text-decoration: underline;
}

.siteSubtitle{
 display: block;
 margin: .5em auto 1em;
}

.header {
 background: url("kubrickheader.jpg") no-repeat bottom center; 
 margin: 0;
 padding: 1px;
 height: 198px;
 width: 758px;

}
/*}}}*/
/***
!Footer Styles
***/
/*{{{*/
#contentFooter {
 text-align: center;
 clear: both;
 background: url("kubrickfooter.jpg") no-repeat bottom;
 border: none;
 padding: 2em;
 height: 3em;
}
/*}}}*/


/***
!Sidebar styles /% ============================================== %/
***/
/*{{{*/
#sidebar{
 margin: 1em 2em 0 0;
 position: static;
 float: right;
}

#sidebar a,
#sidebar a:hover{
 border: 0;
}

#sidebar h1{
 font-size: 1.4em;
 font-weight: bold;
 margin: 0;
 background: transparent;
 color: #000;
}

#sidebar ul{
 padding: 0;
 margin: 0 0 0 1em;
}

#sidebar li{
 list-style: none;
}

#sidebar li:before{
 color: #000;
 content: "\00BB \0020";
}

#sidebar, #mainMenu, #sideBarOptions{
 width: 200px;
 text-align: left;
}

#mainMenu{
 position: static;
}
/*}}}*/
/***
!Sidebar search styles /% ======================================== %/
***/
/*{{{*/
#sidebarSearch{
 margin: 0 0 0 10px;
 width: 145px;
}

#sidebarSearch input{
 font-size: .9em;
 width: 100px;
}

#sidebarSearch .button{
 float: right;
 margin-top: 1px;
}
/*}}}*/
/***
!Sidebar option styles
***/
/*{{{*/
#sidebarOptions{
 margin-left: .75em;
}

#sidebarOptions h1{
 font-size: 1.3em;
}

#sidebarOptions a{
 display: inline;
 border: 0;
}

#sidebarOptions .sliderPanel{
 background-color: transparent;
 font-size: 1em;
 margin: 0;
}

#sidebarOptions .sliderPanel a:before,
#sidebarTabs li:before{
 content: "";
}
/*}}}*/
/***
!Sidebar tab styles
***/
/*{{{*/

#sidebarTabs .tab,
#sidebarTabs .tab:hover{
 border: 1px solid #ccc;
 text-decoration: none;
}

#sidebarTabs .tabSelected{
 background: #ccc;
 color: #333;
}

#sidebarTabs .tabUnselected{
 background: #e6e6e6;
 color: #333;
}

#sidebarTabs .tabContents{
 background: #ccc;
 color: #333;
 border: 1px solid #ccc;
 width: 95%;
}

#sidebarTabs .tabContents a{
 color: #06c;
}

#sidebarTabs .tabContents a:hover{
 color: #147;

}

#sidebarTabs a.tabSelected:hover{
 cursor: default;
}

#sidebarTabs .txtMoreTab .tab{
 border: 1px solid #aaa;
 color: #333;
}

#sidebarTabs .txtMoreTab .tabSelected{
 background: #aaa;
 color: #333;
}

#sidebarTabs .txtMoreTab .tabSelected:hover{
 background: #aaa;
 color: #333
}

#sidebarTabs .txtMoreTab .tabUnselected{
 background: #ccc;
 color: #333;
}

#contentWrapper #sidebar .txtMoreTab .tabUnselected:hover,#contentWrapper #displayArea .txtMoreTab .tabUnselected:hover{
 color: #333;
}

#contentWrapper .txtMoreTab .tabContents{
 background: #aaa;
 color: #333;
 border: 1px solid #aaa;
}
/*}}}*/
/***
!Message area styles /% ========================================== %/
***/
/*{{{*/
#messageArea {
background-color: #eee;
 border: 1px solid #ccc;
 color: #bbb;
 margin: 0 1em;
 font-size: .8em;
}

#messageArea a:link{
 color: #aaa;
}
#messageArea a:hover{
 color: #06c;
}

#messageArea .messageToolbar .button{
 border: 1px solid #ccc;
 color: #aaa;
 text-decoration: none;
}
#messageArea .messageToolbar .button:hover{
 border: 1px solid #777;
 color: #777;
}
/*}}}*/
/***
!Popup styles /% ================================================ %/
***/
/*{{{*/
#popup{
 padding: 0;
 background: #eee;
 border: 1px solid #ccc;
 color: #333;
}

#popup a{
 color: #06c;
 font-weight: normal;
}

#popup a:hover{
 color: #fff;
 background: #aaa;
 text-decoration: none;
}
/*}}}*/
/***
!Tiddler display styles /% ====================================== %/
***/
/*{{{*/
#displayArea{
 margin: 1em 18em 1em 1em;
 text-align: left;
 font-size: 1.2em;
}

h1, h2, h3, h4, h5, .title{
 font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
color: #333;
padding: 0;
}

.viewer h1,.viewer h2,.viewer h3,.viewer h4,.viewer h5,.viewer h6{
 background: transparent;
 border-bottom: 1px dotted #ccc;
}

.title{
 font-size: 1.6em; 
}

.subtitle{
 color: #777;
 font-size: .9em;
}

.toolbar{
 font-size: .8em;
}

.toolbar a:link,.toolbar a:visited{
 background: #e6e6e6;
 border: 1px solid #ccc;
 color: #aaa;
 padding: 1px 3px;
 margin: 0 .5em 0 0;
}

.toolbar a.button:hover{
 background: #ccc;
 border-color: #bbb;
 color: #06c;
 text-decoration: none;
}

.viewer a.tiddlyLinkNonExisting:link{
 color: #b85b5a;
 font-style: normal;
}

.viewer a.tiddlyLinkNonExisting:hover{
 text-decoration: underline; 
}

.viewer a.tiddlyLinkExisting:link,#displayArea .viewer a.externalLink{
 font-weight: normal;
 color: #06c;
}

.viewer a.tiddlyLinkExisting:hover,.viewer a.externalLink:hover{
 color: #147;
 text-decoration: underline; 
}

.viewer .button{
 border: 0;
}

.editor {
 font-size: 8pt;
 color: #402c74;
 font-weight: normal;
}

.editor input, .editor textarea {
 display: block;
 font: 11px/110% "Andale Mono", "Monaco", "Lucida Console", "Courier New", monospace;
 margin: 0 0 10px 0;
 border: 1px inset #333;
 padding: 2px 0;
}

.footer, .footer a.button,.editorFooter, .footer a.button{
 color: #aaa;
}

.selected .footer,.selected .footer a{
 color: #777;
}

.selected .footer a.button,.selected .editorFooter a.button{
 color: #06c;
}

.footer a.button:hover,.editorFooter a.button:hover{
 color: #147;
 background: transparent;
} 

.tagClear{
 clear: none; 
}
/*}}}*/
I wrote this in my second year of high school (1996/1997), during a particularly boring class in which the blackboard was victim of abuse by the teacher. I have tinkered with it later, but for the most part, including the rhymes, it's the original thing.
//Scritta in seconda liceo, A.A. 1996/97, durante una lezione particolarmente noiosa in cui la lavagna veniva abusata. Con ritocchini al ritmo, di data successiva - ma il grosso, incluse le rime, è originale.//
------
Sta appesa sopra il muro una lavagna
si lagna della vita vilipesa
quell'eterno passar da nera a bianca
la stanca, è peggio di un inferno.

Il motivo si chiede ogni mattino
del destino, che a lei tanto è nocivo:
non vede ch’esser utile a qualcosa
noiosa non la rende come crede

Si picca che l’eterno cambiar volto
è stolto, e nel frattempo si lambicca
il cervello (ce l’ha piuttosto duro),

un futuro, lei vuole, un po’ più bello.
Tra l’acqua stagna e i rifiuti, vedrai!
Rimpiangerai quand’eri una lavagna.
The result of half an hour spent contemplating a rhino in the Cologne Zoo (Germany).
//Scritta dopo aver passato mezz'ora in contemplazione di un rinoceronte allo Zoo di Colonia (Germania).//
------
Natura ti creò rinoceronte,
un corno sulla fronte, pelle dura
come mica, un nome che è imperfetto:
s'infila in un sonetto con fatica.

E il nome proprio ho letto e l'ho scordato,
tant'ero affascinato dall'addome
tuo perfetto, dal passo da signora,
dall'occhio che m'implora un po' d'affetto.

Ti stringo a me vicina, ti accarezzo,
vorrei levar la gabbia che disprezzo,
regina fatta schiava chissadove,

il regno devastato da quell'essere
perverso, che disserta di benessere,
ma muove l'universo alla rovina.
''Necessary''
plenty of [[Bolognese Sauce]]
"lasagna" or "lasagne" pasta, one pack.
Parmesan cheese
1 carton [[bechamel|http://en.wikipedia.org/wiki/Bechamel]] sauce
baking pan
oven

''Important''
There are two kinds of lasagne pasta: automatic (the ones that cook in the oven as long as they are covered with sauce) and manual (the ones that you have to pre-cook in water). You never, ever wanna go manual. It's a needless complication. Go Barilla automatic, you'll be fine.

''Preparation''
In a baking pan, build successive layers of pasta, then Bolognese sauce, then Parmesan cheese and bechamel. For the top layer omit the bechamel and just add the Parmesan to give it the nice "au gratin" look you are used to. Bake for 30 minutes or until it looks cooked.

''Tip''
If you are desperate for lasagna and you don't find bechamel, here's what you can replace it with:
* Alfredo sauce: choose one that isn't too salty and do not use cheese for the inner layers; just sprinkle it on top.
* Plain old cheese: make a mix of Parmesan, mozzarella and perhaps Swiss.
* Make your own bechamel: see the Wikipedia link above for a recipe. Ideal, but a pain in the ****.

//&copy; Mattia Landoni 15-Jan-2010.//

/***
|''Name:''|LegacyStrikeThroughPlugin|
|''Description:''|Support for  legacy (pre 2.1) strike through formatting|
|''Version:''|1.0.1|
|''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|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|

***/

//{{{

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

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

} // end of "install only once"
//}}}
<html>
<a class='button' href='javascript:void(eval(decodeURIComponent("(function()%250A%257B%250Avar%2520script%253Ddocument.createElement(%2522script%2522)%253B%250Ascript.src%253D%2522http%253A%252F%252Ftrac.tiddlywiki.org%252Fbrowser%252FTrunk%252Fcontributors%252FXavierVerges%252Fplugins%252FFirefoxPrivilegesPlugin.js%253Fformat%253Draw%2522%253B%250Ascript.onload%253Dfunction()%257Bvar%2520b%253Dbackstage%253B%2520var%2520fp%253D%2522firefoxPrivileges%2522%253B%250Avar%2520bt%253DcreateTiddlyButton(b.toolbar%252C%2522security%2522%252Bglyph(%2522downTriangle%2522)%252C%2522%2522%252Cb.onClickTab%252C%2522backstageTab%2522)%253B%250Abt.setAttribute(%2522task%2522%252Cfp)%253Bb.switchTab(fp)%253B%257D%253B%250Adocument.getElementsByTagName(%2522head%2522)%255B0%255D.appendChild(script)%253B%250A%257D)()")))'>
Load the FirefoxPrivileges from tiddywiki.org</a>
</html>
Kinda ambitious, but probably the most interesting thing in the world.
''Literature''
# US Census of Housing (Census Bureau, 1940-present)
# A long run house price index: the Herengracht index, 1628-1973
# Should read "Is there a housing bubble?" http://www.nber.org/digest/apr06/w11643.html
# Find historical house transaction data
The .zip file below (also available as a tarball) reports a large number of historical time series of macroeconomic data for Sweden, Germany, France, United States and United Kingdom. The series cover population and immigration, a huge quantity of production, price, and monetary variables [I bet you don't know what some of them are... I don't ;-)] and run variously between 1776 and 1935. The series can be completed with more recent data of ready availability, e.g. those of the [[NBER Macrohistory database|http://www.nber.org/databases/macrohistory/contents/]].

The data are all nicely referenced and have been collected by the late Trevor John Orme Dick, and [[the website of his colleague John Floyd|http://www.economics.utoronto.ca/floyd/dick.html]],  where I found the data, reports interesting biographical and bibliographic information.

The do-file reports the complete labels, including the original source of each series. Unfortunately, Stata will cut each label at the 80th character, so the do-file is also a catalog. For those who do not use Stata, the data are in five tab-separated text files (one for each country) that you can easily open with Excel or import into any statistical package. The original website reports the data in Lotus .wk1 and RATS format.

Download [[trevordick_stata.zip|http://www.emet.it/webpresident/data/trevordick_stata.zip]]
Download [[trevordick_stata.tar|http://www.emet.it/webpresident/data/trevordick_stata.tar]]
[[Welcome]]
AboutThis
AboutMe

WorkingPapers
[[Data]]
ItalianRecipes
MyPoems
SoftwareTips
IdeaBazaar
WebConsulting

MyFriends
MineSweeper

[[FAQ|FrequentlyAskedQuestions]]

<<minesweeper>>
/***
|''Name:''|Minesweeper|
|''Version:''|0.72 (12 Oct 2005)|
|''Source:''|Tiddly W;nks (http://www.bur.st/~blazeoz/tiddlywinks/)|
|''Author:''|[[Daniel Baird]]|
|''Type:''|Macro|
!Description
It's minesweeper!

!Syntax/Example usage
{{{<<minesweeper>>}}} or {{{<<minesweeper [width] [height] [bombs]>>}}}
<<minesweeper>>

!Notes
* Let me know if you want graphics, or that MSWindows Minesweeper thing where you can click with both buttons on a numbered square, and it does the thinking for you..

!Revision History
* 0.5.0 (2-Oct-05)
** original version (Daniel)
* 0.5.1 (3-Oct-05)
** added the css styles via set~StyleSheet (Simon)
* 0.5.2 (3-Oct-05)
** added parameters to macro and fixed bug preventing detection of win (Simon)
* 0.6 (5-Oct-05)
** Fixed the problem with multiple games on screen at once.
** Cleaned up the JavaScript warning generated when you clicked anywhere but on a square.
* 0.7 (6-Oct-05)
** Integrated sweet additions from Genesis_mage (genisis329 at gmail dot com) that:
*** allows winning by having all non-mines clicked (without having to mark every mine)
*** added a mark button to mark and unmark mines without the keyboard
** Win time now shows tenths of a second.
* 0.71 (10-Oct-05)
** tweaked a style to make the mark button work better in IE
* 0.72 (12-Oct-05)
** worked out how to use a closure as a event handler, which means that the code added in 0.6 could be made a lot simpler.

***/
/*{{{*/

version.extensions.minesweeper = {major: 0, minor: 7, revision: 2};

config.macros.minesweeper = {};

config.macros.minesweeper.handler = function(place,macroName,params) {
    var width = params[0];
    var height = params[1];
    var bombs = params[2];

    if (width == undefined) width = 9;
    if (height == undefined) height = width;
    if (bombs == undefined) bombs = Math.round(width * height /  8)
    if (bombs > width * height) bombs = width * height;

    var aGame = new MinesweeperGame();

    createTiddlyElement(place,'div',aGame.id,null,'If you see this, Minesweeper is broken.  Let Daniel know (DanielBaird at gmail dot com).');
    aGame.newGame(width, height, bombs);
}
// =======================================================================
function MinesweeperGame() {
    this.idprefix = 'mines';
    this.version = '0.72 beta';
    this.id = this.idprefix + MinesweeperGame.prototype.nextid;
    MinesweeperGame.prototype.nextid++;
    return this;
}
// -----------------------------------------------------------------------
MinesweeperGame.prototype.nextid = 0;
// -----------------------------------------------------------------------
MinesweeperGame.prototype.newGame = function(height, width, mines) {
    this.height = height;
    this.width = width;
    this.mines = mines;
    this.total = height * width;
    this.markMode = false;

    this.startGame();
}
// -----------------------------------------------------------------------
MinesweeperGame.prototype.startGame = function() {

    this.gamestate = 'ready';
    this.clicks = 0;
    this.marks = 0;
    this.message = 'click on the board to begin';

    this.starttime = null;
    this.wintime = null;
    this.board = new Array();

    // create the squares
    for (var x = 0; x < this.height; x++) {
        var row = new Array();
        for (var y = 0; y < this.width; y++) {
            row.push( {count: 0, mine: false, clicked: false, marked: false} );
        }
        this.board.push(row);
    }

    // add mines
    for (var m = 0; m < this.mines; m++) {
        var mx = Math.round((this.height-1)*Math.random());
        var my = Math.round((this.width-1)*Math.random());
        if (this.board[mx][my].mine) {
            m--;
        } else {
            this.board[mx][my].mine = true;
        }
    }

    // work out counts
    for (var cx = 0; cx < this.height; cx++) {
        for (var cy = 0; cy < this.width; cy++) {
            var count = 0;
            for (var dx = -1; dx < 2; dx++) {
                for (var dy = -1; dy < 2; dy++) {
                    var nx = cx + dx;
                    var ny = cy + dy;
                    if ( (!(dx==0 && dy==0))
                            && (nx >= 0) && (nx < this.height)
                            && (ny >= 0) && (ny < this.width)
                            && this.board[nx][ny].mine) {
                        count++;
                    }
                }
            }
            this.board[cx][cy].count = count;
        }
    }
    this.showBoard();
}
// -----------------------------------------------------------------------
MinesweeperGame.prototype.showBoard = function() {
    var node = document.getElementById(this.id);
    var html = new Array();
    html.push('<table class="minefield" cellspacing="2">');
    html.push('<tr><td class="info" colspan="'+this.width+'">');
    html.push('Minesweeper '+this.version+'<br /><b>'+this.gamestate+'</b>');
    if (this.gamestate == 'playing') {
        this.message = (this.mines - this.marks)+' mines unmarked';
    }
    html.push('</td></tr>');
    for (var x = 0; x < this.height; x++) {
        html.push('<tr>');
        for (var y = 0; y < this.width; y++) {
            html.push( this.makeSquare(x,y) );
        }
        html.push('</tr>');
    }
    var cls = 'un';
    if (this.markMode) cls = '';
    html.push('<tr><td id="'+this.id+'_markbtn" class="'+cls+'clicked widebtn" colspan="'+this.width+'">mark / unmark mines</td></tr>');
    html.push('<tr><td class="info" colspan="'+this.width+'">'+this.message);
    html.push('<small>');
    html.push('<br /><span class="minesweeper' + cls + 'show">ctrl- shift- or alt-</span>click to reveal a square');
    html.push('<br /><span class="minesweeper' + cls + 'hide">ctrl- shift- or alt-</span>click to mark a mine');
    html.push('</small>');
    html.push('</td></tr>');
    html.push('</table>');
    node.innerHTML = html.join('');
    node.onclick = this.getClickHandler();
}
// -----------------------------------------------------------------------
MinesweeperGame.prototype.makeSquare = function(x,y) {
    var sq = this.board[x][y];
    var reveal = (this.gamestate != 'playing' && this.gamestate != 'ready');
    var html = new Array();
    if (sq.clicked) {
        html.push('<td class="clicked" id="'+this.id+'_x-'+x+'_y-'+y+'">');
        if (!sq.marked && reveal && sq.mine) {
            html.push('B!');
        } else if (!sq.marked && reveal && sq.mine) {
            html.push('B!');
        } else if (sq.count > 0){
            html.push(sq.count);
        } else {
            html.push('&nbsp;');
        }
    } else {
        html.push('<td class="unclicked" id="'+this.id+'_x-'+x+'_y-'+y+'">');
        if (sq.marked && !reveal) {
            html.push('B?');
        } else if (sq.marked && sq.mine && reveal) {
            html.push('B');
        } else if (sq.marked && !sq.mine && reveal) {
            html.push('X');
        } else if (sq.mine && reveal) {
            html.push('B!');
        } else {
            html.push('&nbsp;');
        }
    }
    html.push('</td>');
    return html.join('');
}
// -------------------------------------------------------------------
MinesweeperGame.prototype.clickSquare = function(cx,cy,modifier) {
    if (this.gamestate == 'ready') {
        this.starttime = new Date();
        this.gamestate = 'playing';
    }
    if (this.gamestate == 'playing') {
        if (!this.board[cx][cy].clicked) {
            if ( (modifier && !this.markMode) || (!modifier && this.markMode) ) {
                if (this.board[cx][cy].marked) {
                    this.marks--;
                    this.board[cx][cy].marked = false;
                } else {
                    this.marks++;
                    this.board[cx][cy].marked = true;
                }
            } else if (!this.board[cx][cy].clicked && !this.board[cx][cy].marked) {
                this.revealSquare(cx,cy);
            }
            this.markMode = false;
        }
        this.checkWin();
        this.showBoard();
    } else {
        // clicked when we're not playing..
        this.startGame();
    }
}
// -------------------------------------------------------------------
MinesweeperGame.prototype.revealSquare = function(x,y) {
    if (this.board[x][y].clicked == false && this.board[x][y].marked == false) {
        this.board[x][y].clicked = true;
        this.clicks++;
        if (this.board[x][y].mine) {
            this.gamestate = 'boom!';
            this.message = 'click board to play again';
        } else if (this.board[x][y].count == 0) {
            // if it's a zero, we might have to reveal some other squares..
            for (var dx = -1; dx < 2; dx++) {
                for (var dy = -1; dy < 2; dy++) {
                    var nx = x + dx;
                    var ny = y + dy;
                    if ( (!(dx==0 && dy==0)) && (nx >= 0) && (nx < this.height) && (ny >= 0) && (ny < this.width) ) {
                        this.revealSquare(nx,ny);
                    }
                }
            }
        }
    }
}
// -------------------------------------------------------------------
MinesweeperGame.prototype.handleClick = function(e) {
    // work out which cell was clicked
    if (!e) var e = window.event;
    var str = resolveTarget(e).id;
    if (str && str != undefined) {
        if (str == this.id + '_markbtn') {
            this.markMode = !this.markMode;
            this.showBoard();
        } else {
            var cx = parseInt(str.substr( str.indexOf('x-')+2 ));
            var cy = parseInt(str.substr( str.indexOf('y-')+2 ));
            if ( !isNaN(cx) && !isNaN(cy) ) {
                this.clickSquare(cx,cy,(e.altKey || e.shiftKey || e.ctrlKey));
            }
        }
    }
}
// -------------------------------------------------------------------
MinesweeperGame.prototype.getClickHandler = function() {
    var thisGame = this;
    return function(e) {
        thisGame.handleClick(e);
    }
}
// -------------------------------------------------------------------
MinesweeperGame.prototype.checkWin = function() {
    if (this.clicks == this.total - this.mines && this.gamestate !='boom!') {
        this.gamestate = 'win';
        this.wintime = new Date();
        this.message = 'You won in '+Math.round(((this.wintime - this.starttime)/100))/10+' seconds';
        this.message = this.message + '<br />click board to play again';
    }
}
// -----------------------------------------------------------------------

setStylesheet(
	".viewer .minefield { "+
		"background: #ddd; "+
		"border: double 3px black; "+
		"border-collapse: separate; "+
		"border-spacing: 2px; "+
	"} \n"+

	".viewer .minefield td { "+
		"cursor: default; "+
		"width: 1.3em; "+
		"height: 1.1em; "+
		"text-align: center; "+
		"vertical-align: center; "+
		"background: #ddd; "+
		"border: 1px solid #ccc; "+
	"} \n"+

	".viewer .minefield td.info, .viewer .minefield td.widebtn { "+
		"width: auto; "+
	"} \n"+

	".minesweeperhide, .minesweeperunshow { "+
		"display: none; "+
	"} \n"+

	".viewer .minefield td.unclicked { "+
		"cursor: pointer; "+
		"border-color: #fff; "+
		"border-right-color: #999; "+
		"border-bottom-color: #999; "+
	"} \n"+
	"",
	"MinesweeperGame");

/*}}}*/
Here are the links to a few of my friends whose website are not lost, dead or forgotten:
* [[b0sh|http://www.b0sh.net/]]
* [[Catastrofe|http://catastrofe.tumblr.com/]]
Believe it or not, I used to write poetry in Italian. Now I think in a bad English so I haven't been able to produce good poetry in either language for many years, except some limerick. But here's what I did in the past, and hopefully in the future I'll add something.
!Poems written by me
* NonAmoChiMiAma (Jan 2007)
* LaReginaDelloZoo (Feb 2003)
* DueQuarti (Jan 2003)
* PizzoEmet (Summer 2002?)
* RaccoglieteLaPolvereDiStelle (Apr 2002)
* BuonAnno (01 Jan 2000)
* LaLavagna (1996/1997)
* UBoot (1995)
Recent! Here I was probably disappointed that after one and a half year in the U.S. my Italian friends were growing more and more distant. Luckily, the trend stopped and I have kept all the friends I cared about.
//Recente! Probabilmente mi stavo lamentando che dopo un anno e mezzo negli U.S.A. i miei amici italiani stavano diventando sempre pi&ugrave; distanti. Fortunatamente, il trend si &egrave; interrotto e ho tenuto tutti gli amici di cui m'importava.//
-----
Riamo chi non m'ama,
non amo chi mi ama
il giorno sto in pigiama,
nessuno chiama mai.

immagino Sciangai,
i sette samurai,
il dolce del Tocai,
un altro panorama.

la vita non ha trama,
nient'altro che una brama
di affetto soldi e fama
e stare via dai guai

lo dice anche la RAI
gli annunci sul tranvai
è pubblico oramai
la radio lo dirama.

Eppure

l'amico mio m'affama
mi vuole bene, esclama,
ma dopo non mi chiama
mi scrive casomai.
''Necessary''
1 pork loin or tenderloin
2 medium-sized onions, finely chopped. Err on the side of too many onions
70g (2 oz) butter
1 tbsp all-purpose wheat flour
1/4 liter (1 cup) milk (warm up before use)
bay leaves
salt, pepper
pressure cooker (compulsory! and, //dangerous!// do this recipe only if you know what you are doing)
electric whip, mixer, or even blender

''Preparation''
Melt a meaningful piece of butter (about 40g) in the open pressure cooker. Add the onion. When the onion is golden, add the meat. If the loin is too long, you can cut it into two parts and lay them one on top of the other. A standard pressure cooker should be able to contain up to two tenderloins. Sear the meat evenly, by flipping it as needed, then add salt, pepper, bay leaves and warm milk. Pressurize. Cook under pressure for 30 minutes. Open the pot, take out the meat and store it in a warm place. Blend whatever is left in the pot into a homogeneous white cream, then put it back in the pot together with 30g of pre-melted butter and the flour. Mix until it reaches the desired texture, in case add more flour, but make sure you don't have lumps of flour because they can ruin the whole dish! If you have the whip you don't have this problem.

Cut the roast pork into thick slices and cover them with the cream. Bon appetit!

//&copy; Mattia Landoni 14-Jan-2010.//
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

----
AdvancedOptions
PluginManager
ImportTiddlers
Quick and dirty pasta sauces to save the day!

!Bricklayer's Pasta (Pasta alla Muratora)
//This recipe was invented by my father. The ''real'' Pasta alla Muratora recipe is: throw in whatever you've got in the fridge. This one was good enough to write it down.//
Drain the pasta, then add a mix of mayonnaise sauce, split pitted black olives, split cherry tomatoes, and roast chicken breast leftovers torn into small pieces. No Parmesan needed.

!Garlic, oil, and chili
Chop the garlic into big pieces. Fry garlic and chili pepper in olive oil. Drain the pasta and throw it in the pan, sautee', done! No Parmesan needed.

!Coalminer's Pasta (Pasta alla Carbonara)
This is a classic. Beat an egg for every three people in a bowl. Add black pepper in the mixture. Fry bacon (possibly pancetta, as usual) and when it's done add the pasta you just drained (pay attention to the timing, bacon and pasta should be ready together. Start bacon after pasta). Sautee' it for some time, then stir in the egg slowly. The egg will cook as you stir. Serve garnished with Parmesan cheese and a shitload of black pepper, that's why it's called coalminer's pasta after all.

//&copy; Mattia Landoni 15-Jan-2010.//
<!--{{{-->
<div class='header'>
<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>
<!--}}}-->
''Necessary''
flour, water, salt (approximately a full teacup of water for every pound of flour)
a rolling pin or a pasta machine
olive oil (if using a pasta machine)
a clean table

''Preparation''
Tagliatelle are easiest. Other shapes need molds or a lot of skill, so try tagliatelle first. Make a little volcano with the flour in some container, pour in the water slowly and mix with your hands. Add water until you made a dough ball that is malleable but not sticky. Model the ball into thin sheets and cut the sheets into strips. All along, keep smearing the dough with flour so it does not stick to the table or to itself. If you have time, let dry for a day, otherwise just throw in the water and cook until al dente.

If using a pasta machine (beware of cheap ones! I use Imperia), add half teaspoon of oil per 1Kg (2 lb) of mixture to make it easier on you and the machine. Also, smear with durum flour all the parts of the machine that are in contact with the dough, and make sure they stay smeared, otherwise you'll have an EPIC FAIL. Ideally your pasta should be 1mm thick (4/100 of an inch). However, to get to that thickness you need to pass it through the machine at least twice. The machine can be tweaked so that the first time your doughball will be flattened to about 3mm (12/100") and the second time to 1mm.

''Which flour?''
Top Italian chefs suggest to use durum wheat flour, which is also used by every Italian brand of dry pasta, including Barilla. Typical durum wheat flour is yellowish color. Some suggest a 75% durum / 25% white flour blend. You can also experiment with whole wheat flour for a heartier taste, or even with buckwheat flour for soba-like tagliatelle (they are made in the Alps, and they are called Pizzoccheri). Always use at least 50% durum or white flour.

''What about egg?''
You can add some egg to the mix, that will make pasta yellower and tastier, and easier to work with because it sticks less to your fingers and tools. On the other hand, it will have a higher calory, fat and protein content and it will taste of egg which clearly is not //always// a welcome feature. If you are making lasagna for oven use, it's probably //best// to use egg because it cooks more easily and a hint of egg taste makes sense.

//&copy; Mattia Landoni 15-Jan-2010.//
''Necessary''
1 onion, chopped fine
olive oil
peppers, peppers, peppers!
some diced tomatoes, fresh or canned
basil
salt
chili peppers
a pot with a lid

''Preparation''
Fry the onion in oil. When golden, add the peppers, which you will have washed, cleaned of seeds and top, and cut into strips. When the peppers are sufficiently soft, add tomatoes and some basil, salt, chili pepper. Cook everything on low fire for about 40 minutes with closed lid, then lift the lid, let the water dry and serve when reached the desired consistency.

''Tip''
If you are in a civilized country where people have pressure cookers, replace the 40 minutes of closed-lid cooking with 20-30 minutes of pressure cooking. //Do not kill yourself with the pressure cooker, I won't be held responsible//.

//&copy; Mattia Landoni 14-Jan-2010.//
Pizzo Emet (2700m high) is a peak of the Italian Alps. This poem could be improved, but I like to keep it to remember the breathtaking view.
//Il pizzo Emet (2700m) è una cima delle Alpi. Questa poesia potrebbe essere un po' migliorata, ma mi piace averla per ricordare.//
------

Svuotando la mia vecchia scarpa verde
dai sassi che ho raccolti sul sentiero,
un attimo, m'appare per intero
la valle di Madesimo, e si perde

il miope sguardo mio nella distanza:
 nevi aria e roccia, nuvole iraconde
come sbuffi di vulcano; e confonde
la gamma di colori in lontananza.

Qualche capra, campanelle, il torrente
invia di quando in quando il suo sussurro.
Immagine che adoro, dolce e mesta:

i monti del presepio in cartapesta,
cartapesta che sfuma nell'azzurro,
azzurro sciolto nel bianco, nel niente.
''Necessary''
(4 people)
200g (.5 lb) [[pearled|http://en.wikipedia.org/wiki/Barley#Food]] barley
30g (1 oz) butter
50g (2 oz) minced pancetta (or bacon)
olive oil, possibly with a strong taste, possibly from Tuscany
chopped together: 2 cloves garlic, 1/2 onion, 1 stem celery, some rosemary
cubed: 1 carrot, 1 leek, 2 potatoes
100g (3oz) dried beans
1 small cabbage (small!)
1 tbsp of tomato paste
1.25 l (5.5 cups) stock
Parmesan cheese
optional: bread croutons or pita chips

''Preparation''
Keep barley and beans in cold water for 12 hours, then drain. Heat up the butter, oil and bacon, then add the chopped and cubed vegetables, then the barley, beans and tomato paste. Add the stock, bring to a boil, and cook for about an hour. Then, cut up the cabbage leaves into strips and add them, cook for 20 more minutes. Serve, adding salt and pepper as needed and garnishing with Parmesan cheese and raw olive oil.

For best results, the soup can be made with a ''pressure cooker''. In this case, halve the cooking times. Cook the vegetables for 30 minutes, then remove from fire, depressurize, add the cabbage, repressurize and cook for 10 minutes. //If you can't use the pressure cooker, don't - I don't want to be sued by your angry estate//.

//&copy; Mattia Landoni 14-Jan-2010.//
This poem is for all those who think they can no longer feel desire after a love disappointment. I dedicate it nonetheless to the person who made me feel this way, because we are still very good friends.
//Questa poesia è rivolta a tutti coloro che non sentono di avere pi&ugrave; alcun desiderio dopo una delusione d'amore. La dedico tuttavia alla persona a causa della quale l'ho scritta, a cui voglio molto bene tutt'ora.//
------
Ridi di giorno, ma piangi di notte...
Le stelle si sono oramai tutte rotte,
cadute nel calmo cielo d'Europa.
C'è una signora laggiù con la scopa,

pulisce giardino tetto e balconi,
riempiendo canestri sacchi bidoni.
Un ricco dice solo alle sue ancelle:
"Raccogliete la polvere di stelle." 

Purtroppo questa notte non mi piace...
la passo come tutti, molto spesso,
lo sguardo mio rivolto all'altroieri,

non ho nemmeno espressi i desideri.
Vi prego, stelle, spegnetevi adesso:
datemi un po' di blu scuro e di pace.
!Pressure Cookery
Many recipes require a pressure cooker. Although reports of pressure-cooker-related deaths are only anecdotal, it is true that they have been known to clog and explode, releasing an inferno of stainless steel shrapnel and burning fluids. Modern pressure cookers are very safe, but you have to keep them clean and never overstuff them. They also come with good instructions that //you shall read//. It's best the first time to be under the supervision of an experienced user. If you don't feel comfortable using one, you can't find one, or you are simply not willing to buy one, most of the times you can do without.
* Most recipes allow you to do without by doubling the pressure-cooking times and using a simple pot with a lid. Pay attention, however, that it's not exactly the same thing. A pot with a lid will leak a lot more steam than a pressure cooker. Therefore, your food will get dry faster, //and it will stay on the fire twice as long//, so the risk of burning your food is higher. You'll have to pay attention and add liquids (water, wine, stock) as needed.
* Pressure cooking keeps everything but a tiny amount of water inside the pot. Food will have a slightly better nutritional content and will be significantly juicier.
!General Cookery
Cooking is not the most dangerous of jobs, but professional cooker have very thick skin on their fingers. Not only am I warning you that you may get burned or cut; //sooner or later you will//. But, as far as I am concerned, it was worth it! There is also a trade-off between speed and amount of pain. But, as you try and try, you'll get faster and better and you'll get hurt less and less. So you'll be emboldened and will try to cut faster and stir more powerfully. And you'll get burned and cut. As I said, pros get hurt too.

//&copy; Mattia Landoni 16-Jan-2010. You copy this, I will clog your pressure cooker.//
/***

''This plugin was previously called StyleChooser.''

|Name|SelectThemePlugin|
|Created by|SimonBaird and SaqImtiaz|
|Location|http://lewcid.googlepages.com/lewcid.html#SelectThemePlugin|
|Version|1.2.5|
|Requires|~TW2.x|
!Description
*An alternative style switcher, can be used to switch just stylesheets and/or pagetemplates, or a combination of both (a theme)
*you can add your own stylesheets and pagetemplates, or use a ThemePack, like BigThemePack.

!Usage
* You have to have fetch or create some styleSheets and pageTemplates to use this plugin.
**You can either get a ThemePack like BigThemePack which automatically adds themes to ThemeSelect.
**or create tiddlers with styleSheets and pageTemplates and tag them styleSheets and pageTemplates respectively.
* Put {{{<<themeSelect style 'Select theme'>>}}} in your SideBarOptions.

!Creating Theme Packs
*You can create your own theme pack if you like. Instructions can be found [[here.|CreateThemePack]]

!History
*20-Dec-06, v 1.2.5, fixed horizontal rules for IE (thanks Clint), compatibility fix with HoverMenuPlugin
* 08-Sept-06, v1.2.4, fixed bug with TW2.1
* 15-May-06, v1.2.3, added paramifier so you can put theme on url, eg http://www.somewhere.com/twfile.html#theme:Berry2, thanks Clint (Simon).
* 28-Apr-o6, v1.2.2, fixed bug with opening TW after deleting themepacks. (Saq)
* 26-Apr-06, v1.2.1, more code optimization, dropdowns now updated on the fly. (Saq)
* 25-Apr-06, v1.2.0, added 3rd party ThemePack support, and made various other improvements.(Simon & Saq)
* 24-Apr-06, v1.1.0, added: no styles and default styles options,<<br>>support for ThemePack, support for tag variations(Saq)
* 21-Apr-06, v1.0.0, Reworked dropdowns to include option for pagetemplates (Saq)
* 21-Apr-06, v0.9.0, Rewrote and added Saq's lovely dropdown select (Simon)
* 20-Apr-06, v0.0.1, Basic switcher working (Simon)

!Examples
|!Source|!Output|h
|{{{<<themeSelect style>>}}} for a dropdown with StyleSheets|<<themeSelect style>>|
|{{{<<themeSelect pagetemplate>>}}} for a dropdown with PageTemplates|<<themeSelect pagetemplate>>|
|{{{<<themeSelect style customlabel>>}}} to use a customlabel|<<themeSelect style customlabel>>|
* When applying a stylesheet or template, it also looks for a template or stylesheet respectively based on naming convention, eg MyFunkyStyleSheet and MyFunkyPageTemplate.

!Notes
* See also http://www.tiddlytools.com/#SelectStyleSheetPlugin for a more feature-rich style sheet switcher

! Ideas
* do ViewTemplate also?
* Pretty up the [x] bit

!Code
***/
//{{{
// for compatibility with TW <2.0.9
if (!Array.prototype.contains)
   Array.prototype.contains = function(item)
   {
    return this.find(item) != null;
    };

// for compatibility with TW <2.0.9
if (!Array.prototype.containsAny)
   Array.prototype.containsAny = function(items)
   {
    for(var i=0; i<items.length; i++)
        if (this.contains(items[i]))
            return true;
    return false;
    };
//}}}

//{{{
version.extensions.SelectTheme = { major: 1, minor: 2, revision: 5, date: new Date(2006,12,20),
	source: "http://lewcid.googlepages.com/lewcid.html#SelectTheme"
};

config.SelectTheme = {
	things: {
		style: {
			tag:        ["StyleSheets","StyleSheet","styleSheet","styleSheets","stylesheet","stylesheets"],
			theDefault: "StyleSheet",
			suffix:     "StyleSheet",
			notify:     refreshStyles,
			cookie:     "txtStyleSheet",
			otherThing: "pagetemplate",
			label:      "Choose StyleSheet: ",
			tooltip:     "Choose a StyleSheet",
			caseNone: { text:"None", title:"NoStyleSheet"},
                        caseDefault: { text:"Default", title:"StyleSheet" }

		},
		pagetemplate: {
			tag:        ["PageTemplates","PageTemplate","pageTemplates","pageTemplate","pagetemplate","pagetemplates"],
			theDefault: "PageTemplate",
			suffix:     "PageTemplate",
			notify:     refreshPageTemplate,
			cookie:     "txtPageTemplate",
			otherThing: "style",
			label: "Choose PageTemplate: ",
			tooltip:    "Choose a PageTemplate",
			caseNone: { text:"None", title:"NoPageTemplate"},
                        caseDefault: { text:"Default", title:"PageTemplate" }
		}

	},

                         specialCases: ["caseNone","caseDefault"]

};

TiddlyWiki.prototype.removeNotification = function(title,fn) {
	for (var i=0;i<this.namedNotifications.length;i++)
		if((this.namedNotifications[i].name == title) && (this.namedNotifications[i].notify == fn))
			this.namedNotifications.splice(i,1); // counting on it only being there once
}


var things = config.SelectTheme.things;
var specialCases=config.SelectTheme.specialCases;

for (var zz in things) {
	// make sure we have a value
	if (!config.options[things[zz].cookie])
		config.options[things[zz].cookie] = things[zz].theDefault;

	// remove core notify
	store.removeNotification(things[zz].theDefault,things[zz].notify);

	// and add our one
	store.addNotification(config.options[things[zz].cookie],things[zz].notify);

}

//checks to see if a tiddler exists in store or as a shadow.
TiddlyWiki.prototype.isTiddler= function (title)
        {return store.tiddlerExists(title) || store.isShadowTiddler(title)}

//hijack core function & make sure template exists
window.applyPageTemplate_themeSelect=window.applyPageTemplate;
window.applyPageTemplate=function(title){
           if(!store.isTiddler(title))
                       {title = things.pagetemplate.theDefault;}
           applyPageTemplate_themeSelect(title);
 }

TiddlyWiki.prototype.makeActiveTheme = function(what,title,alsoCheckOtherThing) {

	var thing = things[what];
        if (!store.isTiddler(title))
		title = thing.theDefault;

	var oldTitle = config.options[thing.cookie];

	if (what == "style") {
		// remove old style element from DOM
		var oldStyleElement = document.getElementById(oldTitle);
		oldStyleElement.parentNode.removeChild(oldStyleElement);
	}

	store.removeNotification(oldTitle,thing.notify);
	store.addNotification(title,thing.notify);
	store.notify(title);

	config.options[thing.cookie] = title;
	saveOptionCookie(thing.cookie);
	if (alsoCheckOtherThing)
		this.makeActiveTheme(thing.otherThing,
				title.replace(new RegExp(thing.suffix+"$"),"") + things[thing.otherThing].suffix,
						false);
};

if (config.hoverMenu)
    {
    old_hovermenu_makeActiveTheme = TiddlyWiki.prototype.makeActiveTheme;
    TiddlyWiki.prototype.makeActiveTheme = function(what,title,alsoCheckOtherThing)
        {
         old_hovermenu_makeActiveTheme.apply(this,arguments);
         if (!alsoCheckOtherThing)
                    config.hoverMenu.handler();
        };
    }

config.shadowTiddlers.NoStyleSheet = "";
config.shadowTiddlers.NoPageTemplate = config.shadowTiddlers.PageTemplate;


function switchTheme(e){
         if (!e) var e = window.event;
         var theTarget = resolveTarget(e);
         var theLink = theTarget;
         var switchTo= theLink.getAttribute("switchTo");
         var mode = theLink.getAttribute("mode");
         if ((config.options[things[mode].cookie])!=switchTo)
               {store.makeActiveTheme(mode,switchTo,true);};
         return(false);
}


config.macros.themeSelect={};
config.macros.themeSelect.dropdownchar = (document.all?"▼":"▾");
config.macros.themeSelect.handler = function(place,macroName,params,wikifier,paramString,tiddler){
         var arrow = config.macros.themeSelect.dropdownchar;
         var mode = params[0];
         var label = (params[1]?params[1]:things[mode].label) + arrow;
         var cookie = (config.options[things[mode].cookie]);

         var onclick = function(e)
             { if (!e) var e = window.event;
             var popup = Popup.create(this);

             var tagged=[];

	     store.forEachTiddler(function(title,tiddler) {
                  if ((tiddler.tags).containsAny(things[mode].tag)){
					tagged.push(tiddler.title);}
	     });

             //integrate ThemePacks
	     if (config.themes) {
		     // see what themes have been loaded...
		     for (var i=0;i<config.themes.length;i++) {
			    // see if there is one
			    var lookForThis = config.themes[i] + things[mode].suffix;
			    if (store.isShadowTiddler(lookForThis)) {
				   tagged.pushUnique(lookForThis);
			    }
		    }
		     tagged = tagged.sort();
             }

             //this function used later to create buttons
             var createThemeButton = function(switchTo){
                        var theButton = createTiddlyButton(createTiddlyElement(popup,"li"),text,null,switchTheme,useClass);
                        theButton.setAttribute("switchTo",switchTo);
                        theButton.setAttribute("mode",mode);};

            //create Buttons for None(shadow styles) & Default (StyleSheet)
                     // Default button is not created if StyleSheet doesnt exist.
             for(var t=0; t<specialCases.length; t++){
             var special = specialCases[t];
             var text = things[mode][special].text;
             var useClass = "tiddlyLinkExisting";   //redundant, optimize!
             if ((things[mode][special].title==cookie)||(special=="caseNone"&&!store.isTiddler(cookie)))
                      {text+= " [x]";
                      useClass = "currentlySelected";}
             if (!((special=="caseDefault")&&(!store.getTiddler(things[mode][special].title))))
             createThemeButton(things[mode][special].title);     }

             //insert horizontal rule
             //createTiddlyElement(createTiddlyElement(popup,"li"),"hr");
             createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");

             //create buttons for all other stylesheet tiddlers
             for(var t=0; t<tagged.length; t++)
                     { var useClass = "tiddlyLinkExisting";
                       var text = (tagged[t]).replace((things[mode].suffix),"");
                     if (tagged[t]==(cookie) )
                           {text+=" [x]"; useClass="currentlySelected";}
                     if ((tagged[t]!= (things[mode].theDefault))&&tagged[t]!= (things[mode].none))
                        {createThemeButton(tagged[t]);}}
             Popup.show(popup,false);
             e.cancelBubble = true;
             if (e.stopPropagation)
                e.stopPropagation();
             return(false);
             };

        var createdropperButton = function(place){
           var sp = createTiddlyElement(place,"span",null,"ThemeChooserButton");
           var theDropDownBtn = createTiddlyButton(sp,label,things[mode].tooltip,onclick);
        };

        createdropperButton(place);
};


setStylesheet(".popup li a.currentlySelected {background:#ccc;color:black;font-weight:bold;}","currentlySelectedStyle"); // could do better probably...

config.macros.layoutChooser=config.macros.themeSelect;

//shadow tiddler to hold instructions for creating ThemePacks
config.shadowTiddlers.ThemePack='See http://simonbaird.com/mptw/#CreateThemePack'; 

config.macros.applyTheme = {handler: function (place,macroName,params,wikifier,paramString,tiddler) {
	var theme = params[0];
	var label = params[1]?params[1]:'Apply theme "' + theme + '"';
        var tooltip = 'Apply the "'+theme+'" theme to this TiddlyWiki';
	createTiddlyButton(place,label,tooltip,function() {
		store.makeActiveTheme("style",theme+things.style.suffix,true);
	});
}};


// this means you can put #theme:ThemeName in url. suggested by Clint
config.paramifiers.theme = {
	onstart: function(themeName) {
		store.makeActiveTheme("style",themeName+config.SelectTheme.things.style.suffix,true);
	}
};

//}}}

// This recipe is an attempt to reproduce a delicious risotto eaten in a fake Italian restaurant in Durham, NC (USA). North Carolina is famous for its shrimp. The recipe, with a few variations, can be adapted to make any kind of risotto (see "Variations" below).//

''Necessary (3-4 people)''
0.75 onions
2-3 spring onions
8 fistfuls of rice SEE NOTE BELOW!
butter
lots of stock (fish stock, possibly, because you'll have shrimp cook in it)
white wine
salt, pepper
a bunch of shrimp (how much do you want to eat?)
"pancetta" bacon, or lacking that, just bacon

''Which rice?''
It has to be a rice with fat grains that are full of starch. That's how risotto gets creamy. Use indian rice and you'll fail miserably. Sushi rice works fine for me. Ideally, "carnaroli" rice from Italy is the one. But it's expensive, like, gold.

''Risotto''
Fry the bacon in butter (YEAH! you'll be using little butter and little pancetta, so the total amount of fat is not huge after all; enough to fry what comes next). Soon enough, add the onion. When the onion becomes golden, add rice //dry// and let it toast for 5 minutes. It takes courage, but trust me, you'll be OK. Note that rice doesn't burn, but onion and bacon do, so keep mixing it. When the first rice grains start becoming black, it's time to add liquids. First add the wine, then add the stock, ladle after ladle. Rice must always be wet but never floating around. Add just enough.

''Shrimp''
Sautee' the shrimp in a pan with a mix of oil and butter. Make sure they get ready when the risotto is! If they are pre-cooked and thawed, you'll just need 2 minutes. If you have fresh shrimp, you'll have to see for yourself when it's cooked (the meat is white all the way through). In doubt, better one minute too long than one minute too short. While cooking, season with wine, salt and pepper. Add to the risotto and mix.

Garnish with cut up spring onions and serve. Since it's a fish dish, you shouldn't add parmesan, but it's your call.

''Variations''
Usually risotto is cooked with some complement (mushrooms, sausage, mixed seafood, octopus, arugula, even strawberries), and typically these are not cooked aside. For a sausage risotto, you'd add the sausage to the initial mix and throw in the rice only after the sausage is cooked. The reason to cook the shrimp apart is that it releases a lot of water. The stock to use should always be matched with the complement. So don't use chicken broth for strawberry risotto. Also, the color of the stock matters. To have a perfectly white risotto you could use an enormous quantity of white wine ("champagne risotto") instead of the stock; or, if you are OK with that, pure MSG stock. Crystal MSG (or Mono Sodium Glutammate) is sold in every respectable Asian market. To have a yellow risotto you should add saffron, but pay attention, use the red dust collected from the pistil which is sold in tiny yellow bags; do not use the whole flowers or you'll make a mess.

//&copy; Mattia Landoni 14-Jan-2010.//
a.k.a. the Web President
Mattia Landoni
Technology and globalization have changed the world. My father sat in front of the TV with a Coke and potato chips. I sit in front of my laptop with a diet Sunkist and tortilla chips. He had a car. So, let's get up to speed with the rapid pace of technological change. This section talks about the software I am currently using. Because it took me a long time to find //the right program// to do something, perhaps I can save some people some time.
!Writing documents
Open Office is not bad, but the sharing and collaboration features still trail Microsoft Office ($250?). Excellent, however, the extendedPDF library which. together with Ghostscript, allows Open Office to save PDF files with advanced features, including 128-bit encryption (an expensive dream with Microsoft software). So eventually it's good to have both. One final reason why you need MS Office: once I was requested to make my footnotes into endnotes. With MS Word? one click. With Open Office? [[Fuhgeddaboudit|http://www.bridgeandtunnelclub.com/bigmap/brooklyn/fuhgeddaboudit.jpg]].
!Programming
A long story. I'll make it short. I use Notepad++. An excellent, lightweight program with good regular expressions support. Yes, I said "regular expression". Learn them, they will change your life. For all-purpose programming I use the Enthought Python Distribution, but Python is not good for science (see Data Analysis below).
!Graphics
Irfanview is the most miraculous program on earth. I do every basic image manipulation tasks with it (rotate, crop, etc.). Its batch operations are a great time saver if you shoot a lot of photos. Also, see its "JPEG lossless operations" and you'll never be able to go back. For real graphic work, such as my yearly Winter Holiday greetings, I use GNU GIMP (not quite as good as Photoshop, but still pretty good and costs 100% less) and Macromedia Flash (also pretty miraculous, but not free). For vector graphics, if you don't need animations, you can use Inkscape which is a free substitute for Adobe Illustrator. I use it for many of the figures in my papers.
!Database
MySQL is the database of choice (free, world-class speed, and reliable). MySQL Administrator allows to browse databases quickly and efficiently. For small needs, you can consider SQLite. For really big things, call for help, or call Oracle and try to convince them to give you a test license. Note that as far as data analysis is concerned, SAS can handle industrial-grade volumes of data with its internal database system (see below).
!Internet
''Basic'': GMail allows me not to use a mail client anymore, but from time to time I download the mail into Mozilla Thunderbird to have a local copy. Mozilla Firefox is simply great and the extensions make it perfect for all purposes. For FTP, Filezilla is great for interactive use but WinSCP is best to include in command-line applications.
''Voice'': Skype is more expensive than other VoIP programs but it works smooth, it gets through firewalls like a ninja, and offers top voice quality. VoipStunt and other Betamax programs are cheap, but hit and miss. When they work (only on Windows) you can get almost-free calling. However, if something goes wrong, you are on your own. Once I paid $10 and I had my account frozen, I never got my money back, and there's no way to contact Betamax. 
!Security
For those poor people who have Windows (like me), Avira AntiVir is a neat, free piece of software that catches many more viruses than Norton Antivirus, in my opinion, and does not slow down your computer too much. Norton, and Kaspersky Antivirus, are too heavy for some computers, so I don't use them (although they say that Kaspersky is the best. Norton just sucks. In any case, having one of them is worse than having a virus, except if you store your credit card number on your computer...). Spybot defends you from unwanted spyware. I encrypt the actually important stuff that I keep on my computer with TrueCrypt (check out its "plausible deniability" feature if you are into these things). Yawcam turns your computer in a security camera with motion sensing.
!Utilities
7-zip is free, opens any kind of common archives, and is incredibly faster than Windows' own zip utility for large files. Bulk Rename Utility allows you to rename millions of little files automatically in a breeze. CCleaner keeps your Windows installation clean. 
!Media
I am able to see most video files using the CCCP (Combined Community Codec Pack). As a general thing, those files that do not open immediately are probably movies that you don't want to see, or worse. In any case, GSpot allows you to recognize which encoding a media file has. As a player I use the Windows Media Player or the Media Player Classic that comes with the above-mentioned libraries.
!Operating System
I tried Linux, then I went back to Windows. I currently use and love Windows 8. The people who run the Internet on Linux servers will tell you otherwise, but Microsoft does provide some customer value. Making something work on Linux can be time-consuming, and if you use the same computer to watch movies, edit graphics, analyze data, process text, surf the web, create documents in collaboration with others, and other lawful pursuits, making //all of those// work can be so time-consuming that you are going to give up... sigh.
!Data Analysis
Stata! Stata! Stata! Stata is just fantastic, though expensive (hey but here is where my income comes from so I am a lot less stingy than in the other categories). In terms of workflow, Stata is a chainsaw and other programs are a manual saw. There are some things that Stata does not do, though.

For really large data SAS still rules, in spite of its awkward syntax and high price. Note that Stata is aimed at scientists, while SAS is aimed at business people who need to make decisions, you'll see what I mean.

To program your own custom software (e.g., a new statistical estimation procedure) Matlab is very good (friendly learning curve, lots of functions, and ''fast''). If you don't have the money for Matlab, Scilab is almost as good and it's free.  Python is a good all purpose language (e.g. useful to import strange data formats prior to analysis) and with the Numpy/Scipy libraries it can do what Matlab can do, and more; note, however, that (1) Python is not made on purpose for that, and sometimes it can be awkward to work with vectors and matrices, and (2) it has strong implicit typing, which is jargon to say that:
{{{
a = 2
b = 3
a / b
}}}
will output "0". That is a ''very, very dangerous thing''. On the other hand, its LISP-like syntax (before sending hate mail, give me a chance to explain this) allows some very agile constructs that are useful in functional analysis.
''Necessary''
(2 people)
A large sole fillet
some white flour
beer or tequila
olive oil
1 clove garlic
1/2 onion, chopped
1/2 small can of tomato paste and three fresh tomatoes
pitted olives, green or black
chili pepper
a large pan

''Preparation''
Massage the sole with salt and marinade it in beer or tequila for ten minutes. Dip it in flour. Leave it there. Fry the garlic and the chili pepper in the large pan, then add the diced tomato, the tomato paste, and the olives. Cook for 5-7 minutes, adding beer as needed to keep the sauce moist. Add the sole, continue adding beer to keep the temperature in check. Turn around the sole once if possible without breaking it. Cook it for a total of 7-8 minutes, then serve. You'll wow your guests.

''Tip''
Sole is fantastically good but it is expensive. You can use tilapia or catfish if you feel cheap.

//&copy; Mattia Landoni 14-Jan-2010.//
Thesis for a Master of Public Policy - Terry Sanford Institute of Public Policy, Duke University. Completed in May 2007. Currently improving for publication.
!Abstract
The last twenty years produced a steady stream of literature on the migration effects of the US welfare state. While each of the published studies
has used a different methodology, they share (1) a focus on cash welfare benefits and (2) a focus on some variant of the “poor single mother” group, the most likely to show welfare migration behavior. While the latter characteristic is warranted by the impossibility of finding trace of welfare migration in other groups, there is no reason to focus on cash welfare, when Medicaid served over 60 million people in 2004. This study shows, using data of the 2000 Census and an enhanced gravity model, that Medicaid generosity has a significant effect on the migration choices of poor single mothers with young children – especially in terms of further reducing their propensity to move – but that this effect has the potential to increase state Medicaid outlays by just 0.1% in a conservative estimate.
!Material
* [[The article|/workingpapers/medicaid.pdf]]
* Materials on request (over 1Gb of Census data)
''Necessary''
a 1.5 Kg (3 lb) octopus*
1 Kg (2 lb) potatoes
1 clove garlic
salt
parsley
pepper, possibly in whole grains
olive oil
pressure cooker, possibly, if you promise you won't kill yourself with it

[*] According to my father, the real octopus has two arrays of suction cups on each tentacle, and a beak. If the animal you got ain't got a beak, or too few suction cups, they have cheated you. But you'll be fine.

''Preparation''
Gut the octopus and remove the beak (hahaha but not the suction cups). Put it in the open pressure cooker. Cover it with water, add in the garlic and four whole grains of pepper and some salt. Pressure cook for 40 minutes (less for smaller octopi). Depressurize and open the pot. If the "meat" looks like you'd wanna eat it, you are done, otherwise do another 10 minutes of pressure cooking. Let it cool down, water and all. Do not drain the precious liquid in the pot!

Meanwhile, cook the potatoes until they are soft but still in shape (I appeal to your taste and your common sense). Cut them into cubes. Extract the octopus from the broth and cut it into cubes as well. Mix. Season with raw oil, pepper, salt, parsley,  and further cool in the fridge. Serve cold.

If you don't have a pressure cooker or you don't feel like using one, cook the octopus in a common pot with the lid on for twice as long (about 1h 20'). Make sure you are not losing water and the octopus is always covered by water! Do not be afraid to add water if necessary.

The octopus broth can be used to make a delicious fish risotto alone or with shrimp as in [[this recipe|Shrimp Risotto]]!

//&copy; Mattia Landoni 14-Jan-2010.//
''Necessary for squid''
olive oil
1 clove garlic, chopped
parsley
chili pepper (optional)
squid, clean and cut into strips
canned tomatoes
white wine
frozen peas
possibly, a pressure cooker and a person who can safely use it

''Squid''
Put the chopped garlic, the parsley, a touch of chili pepper, and the squid in the open pressure cooker with some cold olive oil. Bring to temperature and stir-fry for 3-4 minutes. Add half glass of white wine and let evaporate. Add the tomato and pressurize for 15 minutes. Depressurize, add the frozen peas, repressurize for another 5 minutes. Depressurize and, if too much water is present, cook on low fire until evaporated. 

If you prefer to use canned peas instead of frozen peas (ewww! but it's your call) do the 20 minutes of cooking all at once and add them only at the end. If you are using fresh peas (yum! but rare and expensive) then do everything as above.

If you don't want to use a pressure cooker, double the cooking times above and use a lid. Pay attention that things don't burn.

''Necessary for polenta''
1 clove garlic, whole
instant polenta flour
salt

''Polenta''
The instant polenta package will have instructions detailing how much water to use for a given amount of flour. Put the water in a pot with the garlic and bring to a boil. When it's boiling, remove the garlic, and add a little salt (half as much as you'd use for pasta, perhaps 2tsp per gallon or so). Start adding the flour gradually by sprinkling it into the water and furiously stirring with a fork or a manual whip. Danger! you are stirring boiling water. You may want to use a long wooden fork or spoon if you don't feel safe. Don't use an electric whip or the coroner won't know what exactly killed you. Once you are done, cook for the time indicated on the package and longer: ideally you want polenta dry enough that doesn't stick to the spoon but still soft. But polenta can cook for really long and still be edible. It's a personal taste matter.

Shape polenta into a "volcano" and serve it with piping hot squid soup in the middle.

Wine pairing: some happy and light rosee'.
/*{{{*/

body {
	font-family: "Libre Baskerville", "Courier New", Courier, monospace;
}

h1,h2,h3,h4,h5 {
	color: [[ColorPalette::TertiaryPale]];
	background: [[ColorPalette::PrimaryDark]];
	padding: 2px
}

div.tiddler {
	font-size: 12pt
}

div.tiddler pre {
	font-size: 11pt
}

div#mainMenu a {
	font-size: 12pt
}

div#sidebarOptions a {
	font-size: 12pt
}

.title {
	color: [[ColorPalette::PrimaryDark]];
}

/*}}}*/
/*{{{*/
body {
	background: [[ColorPalette::Background]];
	color: [[ColorPalette::Foreground]];
}

a{
	color: [[ColorPalette::PrimaryMid]];
}

a:hover{
	background: [[ColorPalette::PrimaryMid]];
	color: [[ColorPalette::Background]];
}

a img{
	border: 0;
}

h1,h2,h3,h4,h5 {
	color: [[ColorPalette::SecondaryDark]];
	background: [[ColorPalette::PrimaryPale]];
}

.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: url(header.jpg) top right no-repeat;
}

.headerShadow {
	color: #cccccc;
}

.headerShadow a {
	font-weight: normal;
	color: [[ColorPalette::Foreground]];
}

.headerForeground {
	color:[[ColorPalette::Foreground]];
}

.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::SecondaryLight]];
	border-top: 1px solid [[ColorPalette::SecondaryMid]];
	border-left: 1px solid [[ColorPalette::SecondaryMid]];
}

.wizard h1 {
	color: [[ColorPalette::SecondaryDark]];
}

.wizard h2 {
	color: [[ColorPalette::Foreground]];
}

.wizardStep {
	background: [[ColorPalette::Background]];
	border-top: 1px solid [[ColorPalette::SecondaryMid]];
	border-bottom: 1px solid [[ColorPalette::SecondaryMid]];
	border-left: 1px solid [[ColorPalette::SecondaryMid]];
}

.wizard .button {
	color: [[ColorPalette::Background]];
	background: [[ColorPalette::PrimaryMid]];
	border-top: 1px solid [[ColorPalette::PrimaryLight]];
	border-right: 1px solid [[ColorPalette::PrimaryDark]];
	border-bottom: 1px solid [[ColorPalette::PrimaryDark]];
	border-left: 1px solid [[ColorPalette::PrimaryLight]];
}

.wizard .button:hover {
	color: [[ColorPalette::PrimaryLight]];
	background: [[ColorPalette::PrimaryDark]];
	border-color: [[ColorPalette::PrimaryLight]];
}

.wizard .button:active {
	color: [[ColorPalette::Background]];
	background: [[ColorPalette::PrimaryMid]];
	border-top: 1px solid [[ColorPalette::PrimaryLight]];
	border-right: 1px solid [[ColorPalette::PrimaryDark]];
	border-bottom: 1px solid [[ColorPalette::PrimaryDark]];
	border-left: 1px solid [[ColorPalette::PrimaryLight]];
}

#messageArea {
	border: 1px solid [[ColorPalette::SecondaryDark]];
	background: [[ColorPalette::SecondaryMid]];
	color: [[ColorPalette::PrimaryDark]];
}

#messageArea .button {
	padding: 0.2em 0.2em 0.2em 0.2em;
	color: [[ColorPalette::PrimaryDark]];
	background: [[ColorPalette::Background]];
}

.popup {
	background: [[ColorPalette::PrimaryLight]];
	border: 1px solid [[ColorPalette::PrimaryMid]];
}

.popup hr {
	color: [[ColorPalette::PrimaryDark]];
	background: [[ColorPalette::PrimaryDark]];
	border-bottom: 1px;
}

.listBreak div{
	border-bottom: 1px solid [[ColorPalette::PrimaryDark]];
}

.popup li.disabled {
	color: [[ColorPalette::PrimaryMid]];
}

.popup li a, .popup li a:visited {
	color: [[ColorPalette::TertiaryPale]];
	border: none;
}

.popup li a:hover {
	background: [[ColorPalette::PrimaryDark]];
	color: [[ColorPalette::Background]];
	border: none;
}

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

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

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

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

.toolbar {
	color: [[ColorPalette::PrimaryMid]];
}

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

.cascade {
	background: [[ColorPalette::TertiaryPale]];
	color: [[ColorPalette::TertiaryMid]];
	border: 1px solid [[ColorPalette::TertiaryMid]];
}

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

.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 {
	border: 2px solid [[ColorPalette::TertiaryDark]];
}

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

.viewer td, .viewer 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]];
}

/*}}}*/
/*{{{*/
* html .tiddler {
    height: 1%;
}

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

h1,h2,h3,h4,h5 {
	font-weight: bold;
	text-decoration: none;
	padding-left: 0.4em;
}

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 a 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;
                border-bottom: 2px dotted black;
}

.header a:hover {
	background: transparent;
}

.headerShadow {
	position: relative;
	padding: 6.6em 0em 1em 1em;
	left: -1px;
	top: -1px;
}

.headerForeground {
	position: absolute;
	padding: 6.6em 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 0em 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.2em 0em 0.2em 0em;
}

.wizardStep {
	padding: 1em 1em 1em 1em;
}

.wizard .button {
	margin: 0.5em 0em 0em 0em;
	font-size: 1.2em;
}

#messageArea {
position:absolute; top:0; right:0; margin: 0.5em; padding: 0.5em;
}

*[id='messageArea'] {
position:fixed !important; z-index:99;}

.messageToolbar {
display: block;
text-align: right;
}

#messageArea a{
	text-decoration: underline;
}

.popup {
	font-size: .9em;
	padding: 0.2em;
	list-style: none;
	margin: 0;
}

.popup hr {
	display: block;
	height: 1px;
	width: auto;
	padding: 0;
	margin: 0.2em 0em;
}

.listBreak {
	font-size: 1px;
	line-height: 1px;
}

.listBreak div {
	margin: 2px 0;
}

.popup li.disabled {
	padding: 0.2em;
}

.popup li a{
	display: block;
	padding: 0.2em;
}

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

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


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

.selected .toolbar {
	visibility: visible;
}

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

* 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 {
	border-collapse: collapse;
	margin: 0.8em 1.0em;
}

.viewer th, .viewer td, .viewer tr,.viewer caption{
	padding: 3px;
}

.viewer table.listView {
	font-size: 0.85em;
	margin: 0.8em 1.0em;
}

.viewer table.listView th, .viewer table.listView td, .viewer 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;
	padding: 1em;
}

.cascade {
	font-size: 1.1em;
	position: absolute;
	overflow: hidden;
}
/*}}}*/
''Necessary''
(4 people)
400g (almost 1lb) orecchiette, possibly fresh (as opposed to dried);
2 o 3 shallots, finely minced;
1 red pepper and 1 yellow pepper, in small cubes;
2 generous tablespoons of minced and smashed sundried tomatos in oil (you can buy it, if you find it, or make it yourself);
olive oil as needed

''Preparation''
Let the water boil. In a pan, fry the finely minced shallots and then the small pepper cubes. Add the two spoons of sundried tomato and cook for some time. Pepper should be still crunchy, not too soft. Meanwhile, throw the pasta in the water. If fresh, it will cook for about 4 minutes, otherwise longer (about 15 for the average orecchiette). Drain it when still al dente and add to the pan with the sauce, mix; if the sauce is too dry, add a spoon of cooking water before draining. Sautee' at will.

Wine pairing: Arneis Roero or a less rare dry white. But dry, please, not grape juice. Ahem.

//&copy; Mattia Landoni 14-Jan-2010.//
''Sundried Tomatoes...''
First of all, you need to buy sun-dried tomatoes. You can sun-dry your own tomatoes, but you have to be careful. Cut them open, remove seeds and water, cut into 2-4 wedges (depending on size) and put them on a rack in the sun. In about a week they will be either rotten, covered with mold, or ready. Troubleshooting: they are called //sun-dried// because they need to be in the //sun//. Maybe I didn't say that forcefully enough? U.S. Supreme Court Justice Louis Brandeis once wrote "Sunlight is said to be the best of disinfectants; electric light the most efficient policeman." (It is in a book titled "Other People's Money" which I warmly recommend). Since policemen cannot fight mold, your tomatoes need __direct, plentiful sunlight__.

''...in Oil''
Put all your sun-dried tomatoes in a bath of white wine. They must be completely covered! After 24 to 48 hours, throw out the wine (sorry, eh) and clean them with a clean cloth (probaby kitchen paper is good, as long as it is good quality and does not have paper lint). In a glass jar put a drop of good olive oil, a pinch of salt, a dash of fresh parsley, a //thin// slice of garlic. Lay the tomato fillets on top, then cover with oil and repeat until the jar is full. Or you run out of tomatoes. Press down the stack of tomatoes and cover well with oil. You should not be using more than one clove of garlic for a 4-inch tall jar.

Let your jar(s) rest for at least one month. That requires discipline the first time, but the second time you can just start making them when you have one full jar left, so you can keep pigging away as the new batch gets properly seasoned.
The content management system this website is based upon. See the author's [[website|http://www.tiddlywiki.com]].
//Note: every decent supermarket, and by "every" I mean even Kroger in Durham, NC, has the following ingredients. Believe it or not.//

''Necessary''
(for 6-8 people)
36 Ladyfinger biscuits (the fat kind, they should be about as thick as a male thumb; if you got the smaller ones, make sure you have 300g or 2/3 lb)
450g (1 lb) of mascarpone cheese
5 egg yolks
2 whipped egg whites
cane sugar, to taste
12 espresso cups of sugarless coffee
1 shot glass of sweet liquor such as Marsala
powdered plain cocoa
a 28x23cm (11x9 in) baking pan or other container
sieve to sprinkle cocoa powder
electric whip to whip the egg whites

''Preparation''
Beat the egg yolks together with the sugar in a bowl, until you obtain a homogeneous mixture that isn't too sweet for your taste. Add the cheese and mix carefully (make sure there are no cheese lumps left). Add the whipped egg whites, then the liquor. When you have a homogeneous cream, spread a layer at the bottom of the pan. Pour some coffee into another pan or plate and dip the ladyfingers in it. Make sure they don't get too soaked or they will break, but do soak them well on both sides. Make a layer of soaked ladyfingers in the pan, then cover with another layer of cream; repeat; finally, cover everything with the remaining cream. Make it as smooth as possible, then with a sieve sprinkle the cocoa on top of it. Leave to rest in the refrigerator for at least two hours and possibly overnight.

Bon appetit!

//&copy; Mattia Landoni 14-Jan-2010.//
//Note: it is useful to read this recipe even if you do not plan to make your own tomato sauce. The wisdom embodied in it is essential to all italian cuisine.//

''Necessary''
(for 4 hungry people, or 5 normal people)
1 onion (yes, a whole fat onion)
3 cans of diced tomatoes
1 clove of garlic, if desired
1-2 tablespoons of extra-virgin olive oil
white wine or beer, if desired

''Preparation''
Chop the onion as fine as your patience and time allow. Fry it in the oil, together with the garlic if have. When the onion gets golden, add the tomato. Simmer over low fire for as long as you have time, adding wine or beer to keep it from burning and adding flavor. Add to pasta and enjoy.

''Tricks''
* You can make a whole load of this and freeze it in portions. That's how Italian single males survive.
* You can add anything you want in it. Add it after the onion is golden (or the onion will not cook properly) and before the tomato (or else your additional ingredient will not cook properly). Very popular additions are canned tuna in oil (drain the oil!) or meaty veggies such as bell peppers, eggplant or zucchini. If you want to be extra refined, burn the skin off them veggies before chopping them in. Add only one thing, maybe two if you feel artistic. By the Law of Large Numbers, if you add any 5 ingredients, no matter what they are, the final taste will be the same.
* Most importantly, the tomato. Ideally you'd do this with six fresh plum tomatoes. I mentioned three cans of diced tomatoes because peeling tomatoes is a pain in the ****. If you have to do it fresh, dip them in boiling water for 15 seconds with a cut and they'll be very easy to peel. If you choose canned tomato, this should be just tomato with no bullshit "seasonings". Del Monte has good clean diced tomatoes. BUT, in the name of practicality: [[anything goes|http://en.wikipedia.org/wiki/Anything_Goes_%28disambiguation%29]]. Even conceptual horrors such as Ragu' canned sauce can be made to taste decently according to the above procedure. The point is that canned tomato products are way too sour for human consumption, that's why you need all that alkaline onion to counter the effect.

''Which pasta?''
Barilla Rigatoni. Not a must, but the shape allows you to scoop up sauce as you eat. Barilla is relatively cheap and yet really high quality, believe it or not. I even had engineer friends inspect their factory in Parma and they were impressed.

//&copy; Mattia Landoni 14-Jan-2010.//
//Idea for a television commercial. It would be nice to have a camera and put it together over a weekend.//

SCRIPT

[Corporate Manager in grey suit]
"We need a new product! Quick!"

[Mad Scientist in white dress, pointing at a periodic table]
"But sir, we ran out of elements!" 

[Window crashes and a guy with a funny red costume breaks in]
"That's not true! Have you tried... FIRE?"

[Collective]
"Ooooohh!"

[Strong male voice over different scenes]
"Torchy, with the power of high-energy oxygen! [Torchy is just a torch]
For the toughest dirt! [Show burning away some really bad stuff from the floor]
Use it in the kitchen! [Show torching sugar for creme brulee or something similar]
Tough on grease... gentle on food [Show burning fat away from some fatty meat]
Remove stains from fabric! [Show shirt with a burn hole]

[Housewife with innocent smile and voice full of wonder]
"Torchy changed my life! When I wield Torchy... my husband and children
suddenly become tidy and respectful!"
!Abstract
Migration between Chinese provinces is changing the face of the country. We present the results of a set of multiregional projections for the Chinese population according to the model of A. Rogers (1995). The population is divided by age, gender and province, based on data of the 1990 and 2000 censuses. Some imputation had to take place to make up for birth underreporting and for missing cross-tabulations. We develop two scenarios covering the 2000-2020 time span: in the first, migration rates are constant; in the second, they double throughout 20 years. The second scenario is not unlikely, given the government’s growing tolerance of migrant workers, and given that propensity to interprovincial migration could be much higher (such as, for example, in the USA). In Scenario 1, migration peaks in 2005 and then slows down because of population aging. In Scenario 2, migration increases at a slower and slower pace across the whole projection horizon. Migration has important effects at the provincial level. In most provinces, the effect of migration is as large or larger than that of natural growth. In the three independent metropolises (Shanghai, Beijing and Tianjin) migration is by far the largest factor of population growth, making up for a very low fertility and reducing the dependency ratio; rural provinces like Hunan, on the other hand, lose working-age population to outmigration. 
!Material
The paper is available [[here|/workingpapers/ChineseMigration.pdf]].
The projections were computed using a series of ad-hoc Excel VBScript macros (back then, I could use only Excel). The macros are available upon request, but the data are, unfortunately, covered by copyright. They are of course available to those who want to have a look at my paper, but in order to obtain a copy of 2000 Chinese Census data, one can buy the book:

//Tabulation on the 2000 population census of the People's Republic of China//, compiled by the Population Census Office under the PRC State Council & Department of Population, Social, Science and Technology Statistics, Beijing: China National Bureau of Statistics Press, 2002;

or, for some tables, see the website of the [[National Bureau of Statistics of China|http://www.stats.gov.cn/english/]].
This is a parody of “La nebbia” by Pascoli, a famous Italian poet who wrote volumes about bucolic topics such as youngsters and bells. I wrote this in a fit of boredom during Italian class. It is an ode to the Nazi U-boots. Hey, I was //twelve//. Thinking I fit all those words in this very constrained metric is mind-blowing. I musta been smart back then.
//Parodia de “La nebbia” di Pascoli, risultato di ore di torture a base di fanciulletti e campane. Scritta di getto alle medie, quando ero ancora intelligente.//
------
Affonda le navi alleate
U-boot invisibile e scaltro,
tu nave che vivi di morte
dell’altro
con lunghi siluri e con corte,
potenti bordate.

Affonda le navi alleate,
affondale quando fa scuro!
Che un’ombra soltanto si noti
dal muro
in cui l’acqua entra da’ vuoti
d’artiglierïate!

Affonda le navi alleate
Le navi son ebbre di cargo!
Che sian da te viste con occhi
di Argo,
ché portan a oceanici sbocchi
nutrienti derrate.

Affonda le navi alleate,
che vogliono aprire la pista!
Che il reich veda bianco il futuro
nazista,
che un giorno ha da esser tra duro
//bang// di cannonate.

Affonda le navi alleate,
affondale via dallo schermo
dei radar! Che spaia il puntino
là, ermo,
qui solo rottami e vicino
galleggian le orate.
''Vostok''
These data report the concentration of CO2 trapped in the ice of the North Pole ice core called "Vostok". Digging over 3 km deep, the researchers were able to analyze 420,000 year-old ice, capturing the atmospheric CO2 concentration of four glaciation-warming cycles.
Before using the data, read all the [[documentation and the conditions for use|http://www.ncdc.noaa.gov/paleo/icecore/antarctica/vostok/vostok_co2.html]].
* Download [[vostok-co2.tab|http://www.emet.it/webpresident/data/vostok-co2.tab]]
''Mauna Loa''
Today, CO2 is measured month-by-month at the Mauna Loa station in Hawaii. You can download a yearly series of the last 50 years, or get the whole thing [[here|http://cdiac.ornl.gov/trends/co2/sio-mlo.htm]]
* Download [[maunaloa-co2.tab|http://www.emet.it/webpresident/data/maunaloa-co2.tab]]
Both sheets can be easily read with Excel or imported into any statistical software. For Stata, the command is
{{{
insheet filename.tab, tab clear
}}}
Using these data and the [[Vostok ice core temperature data]], you will be able to see by yourself the best evidence we have about the relationship between atmospheric CO2 and temperature.
These data report the concentration of deuterium isotope in the ice of the North Pole ice core called "Vostok". This in turn allowed to estimate the surface temperature at the time of ice formation. Digging over 3 km deep, the researchers were able to analyze 420,000 year-old ice, capturing the temperature of four glaciation-warming cycles.
Before using the data, read all the [[documentation|http://www.ncdc.noaa.gov/paleo/icecore/antarctica/vostok/vostok_isotope.html]] and the conditions for use.
* Download [[vostok-temp.tab|http://www.emet.it/webpresident/data/vostok-temp.tab]]
The sheet can be easily read with Excel or imported into any statistical software. For Stata, the command is
{{{
insheet vostok-temp.tab, tab clear
}}}
Using these data and the [[Vostok and Mauna Loa atmospheric CO2 series]], you will be able to see by yourself the best evidence we have about the relationship between atmospheric CO2 and temperature.
''Important'': I don't do this anymore, and I quit doing this because I kinda hate doing this. So if you need something it must be something fun :-) Also, I do //consulting//, i.e. I tell you how to do what you can do, or how to solve a particularly itchy problem. Everyday work on a website can be exciting only if you have ownership of the thing, such as this very website you are reading, //and yet I update it, like, once a year//. Otherwise it's very close to what Marx described as [[Alienation|http://en.wikipedia.org/wiki/Marx%27s_theory_of_alienation]]
!What I can do, in a non-technical way
I am mostly an engineer. I can do "simple and decent" graphics like this website and no more. But I can work so that adding graphics later is easy and painless. I can make websites that are readable and intuitive and do not break down easily.
* Generic personal websites with image galleries or other kinds of galleries
* Complicated portals with user subscription and multiuser content management
* In theory I can add e-commerce capabilities although I never did anything more complicated than Pay Pal.
!More technically
* Every programming language starting with P, plus Javascript (awesome: [[jQuery|http://jquery.com/]]) and Javascript-like (including Flash)
* //Efficient// SQL of every flavor
* Complex text processing (with regular expressions)
The Web President is the owner of the domain webpresident.org and does not, in fact, claim to be president of anything. Just in case. If you want some information, please see the CurriculumVitae.
This is Mattia Landoni's, a.k.a. the Web President's, website. Welcome and feel free to click around. There is all you need: cuisine, finance, poetry.

[[Mail me|mailto:himselfATwebpresidentDOTorg]] if you need something, or if you are really cool [[Skype me|callto:m.landoni]].

!How to navigate
Here's what you need to know to browse the website
* On the left [<-], there is a classic navigation menu.
* If you came here because of a Google search, what you are looking for is probably here. This is a search-engine-friendly website.
* The search box works even better than Google! try typing "recip".

I don't update this page as often as I update my [[academic home page|http://www8.gsb.columbia.edu/phd_profiles/gsb_profile/ml3070]]. Please refer to that for the latest version of my working papers.

!Portfolio choice and public finance
''[[Capital gains taxes and optimal trading|http://www8.gsb.columbia.edu/phd_profiles/sites/phd_profiles/files/publications/Mattia%20Landoni%20Job%20Market%20Paper.pdf]]'' (2013)
Upon the sale of an appreciated asset, the seller not only pays a capital gains tax, but also establishes a higher basis. If the asset's tax regime includes a depreciation or amortization benefit, the present value of a higher basis may exceed the cost of the tax paid, resulting in a net tax incentive to realize gains.

''Why are municipal bonds issued at a premium?'' (work in progress)
The tax regime applicable to tax-exempt bonds in the U.S. creates a tax option to realize losses for tax purposes, but only if the bond is issued at a premium. The tax option theory also explains why longer-term bonds are issued at higher premia, and why nontaxable municipal bonds are issued at par.

!Tail risk
''[[Quantifying Tail Risk in Hedge Funds|http://www8.gsb.columbia.edu/phd_profiles/sites/phd_profiles/files/publications/Landoni%20Sastry%20Tail%20Risk.pdf]]'' (2013) //with Ravi Sastry//
Realized tail risk is a downward-biased estimator of true tail risk. We propose a simple, efficient parametric estimator that needs only short return histories as input and predicts the future tail event distribution with surprising precision. The same technique can be used to improve estimation of the Sharpe ratio and other measures based on volatility for any return distribution.

!Old stuff
[[State-level Medicaid benefits and interstate migration choice]] (my masters' thesis)
[[Two scenarios on Chinese population dynamics based on a multiregional projection model]] (my undergraduate thesis)
[[Justice Delayed, Is Justice Denied - an Overview of the Options to Speed up Federal Justice]] (''Published'' on the 2007 edition of the [[Princeton Journal of Public and International Affairs|http://www.princeton.edu/~jpia/]], a journal for MPP students issued by the homonymous school of Public Policy).

//Note: this is a traditional dish to have on New Year's Eve at midnight. Lentils are supposed to bring money. If that doesn't work, at least you've eaten well. But if you are curious, you don't have to wait until then. Just go and get some!//

9-10 people

''Necessary''
1 "cotechino" or "zampone" sausage (Your usual sausage won't do)
1 Kg (2 lb) lentils, bathed in cold water for at least 12 hours and drained
3 l (3 qt) stock
1/2 onion
2 stems celery
1 large carrot
1 clove garlic
100g (4 oz) pancetta or bacon
1 can of diced tomatoes, no seasoning!
40g (1 oz) butter
olive oil
1 bay leaf
salt, pepper

''Lentils''
Chop together the onion, celery, carrot, garlic and bacon and fry them in oil and butter. Join the lentils, the bay leaf, salt and pepper and let it soak the flavor for a few minutes. Add the diced tomato and a first ladle of stock. Over the next 45 minutes, add the remaining stock ladle after ladle, making sure the lentils are always moist; then let it dry up until the stock becomes creamy. Ready!

''Cotechino'' or ''zampone''
The sausage comes in packaging and is usually partially processed. It will come with instructions, too. Usually the packaging contains a plastic wrap that you boil for about 15 minutes and then cut open. If you manage to get fresh cotechino or zampone (you must be a genius), just boil it until cooked through. Slice and serve with the lentils.

//&copy; Mattia Landoni 14-Jan-2010.//