Do un'ultima mano di arancio,
metto in ordine le tabelle,
controllo se l'archivio è ok.
Do una spazzata per terra
e vi apro il sito.

se hai un modem a criceti puoi sempre leggermi via feed (che è più veloce)

 CORAX  - un bliki
<!--{{{-->
<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 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[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>>
--Ho scoperto che non posso usare le parentesi, gli apostrofi e chissà cos'altro nei titoli dei miei post, pena la non commentabilità degli stessi.
O forse (peggio o meglio, non so) devo usare titoli corti.--

Probabilmente non v'interessa, ma sto cercando di capire perché non si riusciva a commentare il post del compleanno.
Siccome spero di aver risolto il problema (o meglio: penso di averlo capito) ve lo dico; che non si sa mai...
Per i commenti uso haloscan che, non me n'ero mai accorto, tronca i titoli lunghi.
Per qualche motivo che non voglio nemmeno sapere alcuni caratteri come virgole, parentesi o spazi vengono codificati in cose come ''%20'' o ''%2C'' (per di più mi pare che alcuni caratteri siano gestiti diversamente dai vari browser, ma potrei dire una fesseria).
Il problema (credo e spero) è che il troncamento del titolo dell'ultimo post è capitato a metà di uno di questi codici, in corrispondenza di uno spazio, e la cosa deve aver fatto incasinare il tutto.
Be', spero che la cosa non si ripeta; e se dovesse capitare di nuovo...portate pazienza.
<div class='toolbar2' macro='toolbar permalink closeTiddler'></div>
<div class='title' macro='view title'></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div> <div class='subtitle'>borborigmato da <span macro='view modifier link'></span>&ensp;il <span macro='view modified date [[0DD MMM YYYY]]' ></span></div><br>
<div class='viewer'><div macro='view text wikified'></div><br>
<div class='tagClear'></div> <div class='toolbar' macro='toolbar editTiddler'></div>
C'era una volta un povero orfano che ereditò un piccolo appezzamento di terreno. Deciso a farlo fruttare investì i suoi pochi risparmi in un sacco di sementi di granturco. Arò il campo, piantò i semi, innaffiò le piantine. All'improvviso il campo si riempì di erbacce spinose che soffocarono tutto il granturco.
Dalle due o tre piantine che si salvarono riuscì a malapena a recuperare qualche chicco per l'anno seguente.
Arò a fondo la terra, cercò tutte le radici delle erbacce, le bruciò. Piantò con attenzione i pochi semi salvati. Li innaffiò ad uno ad uno, tolse ogni filo d'erba che spuntava vicino alle piantine.
Un mattino andò al campo e trovò che i cardi, cresciuti nella notte, avevano ucciso tutte le piantine.
Stava per dare fuoco a quelle piantacce, probabilmente poco prima di morire di fame, quando passò un mercante.
Era un lanaiolo, vide quei cardi così grossi e robusti e intuì subito che sarebbero stati l'ideale per il suo laboratorio di lavorazione della lana.
Pagò al povero le piante a peso d'oro e si accordò per passare a ritirarne ancora più volte all'anno facendo guadagnare al proprietario del campo molto più di quanto avrebbe guadagnato con il granturco che aveva invano tentato di seminare.

Morale della favola: //meglio cardi che mais//. 
<html><div style="width:100px;text-align:right;"><a href="http://beta.zooomr.com/photos/corax/679770/" title="Zooomr Photo Sharing :: Photo Sharing"><img src="http://static.zooomr.com/images/679770_d242b7dc1c_t.jpg" width="100" height="100" alt="stone" border="0" style="border:1px solid #000;" /></a></div></html>
È finita la stagione invernale. In albergo cominciano a fare le grandi pulizie, si fa l'inventario di piatti, posate e bicchieri, si tirano giù le tende e le tovaglie, si chiude la cucina e si svuotano le camere. E in mezzo a un va e vieni continuo noi, tra ufficio e reception, andiamo avanti di piccolo cabotaggio. Archivia tutti i documenti relativi all'inverno, prepara i faldoni (quanti faldoni!) per l'estate, si imbustano millemila depliant da mandare per posta. Intanto si continuano a fare preventivi, a rispondere al telefono, a inserire prenotazioni.
Gli altri reparti piano piano si svuotano, oggi parte uno della cucina, due della sala, una dei piani. Domani ancora. E tempo uno-due giorni rimarremo in pochi: due per le pulizie, io e una collega per l'ufficio e i capi. Infine anche le pulizie saranno finite.
E poi, poi basta. Qua e là mi firmo con nome e cognome, arrivare su queste pagine non è difficile, fosse anche per vie traverse. Leggere qui che questo o quel collega sono antipatici, incompetenti o altro non è bello. Lamentarmi della direzione o sputtanare qualcuno di definito mi potrebbe compromettere.
Già le due volte che ho raccontato del mio lavoro ho evitato nomi e soprattutto ho evitato il nome dell'albergo. Però i racconti sono veri, o quantomeno verosimili...come dicevano in quel telefilm "solo i nomi sono stati cambiati per proteggere degli innocenti".

Ovviamente non tutto è raccontabile, nemmeno sotto copertura. E questo è un peccato perché non vi potrò mai raccontare del cartello sulla porta, della cena di Pasqua o di quella volta che, alle tre di notte...
Un salto veloce sul blog, solo per augurarvi buon anno e augurarMi che il prossimo sia migliore di quello che sta per finire.
* @@color:#aaa;font-size:12pt;[[Questo sito|Benvenuti]]:@@ cos'è, di cosa si parla, perchè si chiama così e altre amenit    
* @@color:#aaa;font-size:12pt;[[Gli Autori|CoraxGroup]]:@@ il pazzo (ora con un valido aiutante) che tiene in piedi la baracca
* @@color:#aaa;font-size:12pt;[[I Commenti|Commenti]]:@@ come commento? come leggo i commenti? commenti???''
La prendo larga, ché lì fuori sono tutti presi con faccialibro e magari altri servizi sono meno noti.

1. C'è un sito, [[last.fm|http://www.lastfm.it]], dove ci si può creare la propria discoteca. "Discoteca" come collezione ordinata di canzoni, non come untz-untz.
Questo sito (servizio, programma, accrocchio...fate voi) legge i dati delle canzoni che uno ascolta sul computer e crea una libreria che poi può essere condivisa con altri, si possono fare paragoni, trovare cantanti simili. Insomma tutte quelle cose più o meno (in)utili che fanno i social network. Tra le varie cose, ovviamente, si può votare una canzone come preferita.

2. C'è un altro coso, [[friendfeed|http://www.friendfeed.com]], dove si possono buttare tutte le informazioni che pubblichiamo sui vari siti (ad esempio, possiamo metterci le foto che pubblichiamo su flickr, i post del blog, lo status di gmail o, appunto, i preferiti di last.fm). Per essere più precisi: non buttiamo dentro tutto, ma diciamo a friendfeed dove andare a prendere tutte queste cose e le facciamo pubblicare in un'unica pagina. Il bello di questo servizio e il suo successo sono dati dal fatto che lì, in un unico posto, possiamo commentare una foto, una canzone ed un post. //Un giorno dirò anche perché non mi piace poi moltissimo, almeno non per tutto. Ma lo uso anch'io  e quindi...//

Tornando a bomba e finite le premesse tecniche: oggi leggo su friendfeed una di queste segnalazioni da parte del [[dottor Sofi|http://www.webgol.it]] (linko quello che reputo ancora il suo indirizzo principale) riguardo una canzone: [[Ballo in Fa diesis minore|http://friendfeed.com/e/330e4261-ea9c-ed81-e93b-03e6da816dfe/Angelo-Branduardi-Ballo-in-Fa-Diesis/]].
Grazie alla possibilità di commentare su friendfeed scrivo la nota: "//Mi piace vantarmi di avere il testo ispiratore di questa canzone a 500 metri da casa...//". Mi si chiede di spiegare, ed è appunto quello che faccio qui.

Partiamo da lontano, tipo dal 1500, quando sulla parete della chiesa di [[Pinzolo|http://maps.google.it/maps/mpl?moduleurl=http:%2F%2Fwww.google.com%2Fmapfiles%2Fmapplets%2Fpanoramio%2Fpanoramio.xml&mapclient=google&gl=it&hl=it&ie=UTF8&ll=46.164867,10.764713&spn=0.01122,0.019312&t=h&z=16]] viene fatto un grandioso affresco, una specie di //'a livella// ante litteram. Un'allegra processione di scheletri che accompagnano o trascinano uomini e donne di ogni classe sociale a guardare le margherite dalle radici. Il tutto tra un Cristo che invita al pentimento e una Morte in trono.
Sotto l'allegra brigata c'è un testo che accompagna ogni immagine e che comincia così
"Io sont la morte che porto corona
sonte signora di ognia persona
et cossì son fiera forte e dura
che trapasso le porte e ultra le mura.
Et son quela che fa tremare el mondo
revolgendo mia falze atondo atondo".

Swoosh, salto in avanti di un 4-500 anni.

Arriviamo a Branduardi che, avendo amici in zona, vede questa poesia e, chi se non lui, la mette in musica creando il Ballo in Fa diesis minore dal quale siamo partiti.
Anche Sclavi l'ha usata in almeno un paio di Dylan Dog, ma non so se partendo da Branduardi o dall'originale.

Fine della spiegazione; l'ultima cosa che devo aggiungere è che ho mentito: in linea d'aria saranno almeno 700 metri, quasi un chilometro a seguire le strade.

*aggiornamento: tempo fa avevo anche caricato un paio di [[fotografie|http://it.zooomr.com/photos/corax/3228324/]] su Zooomr.
<<forEachTiddler
 where
 'tiddler.tags.contains("*blog*")'
sortBy
 'tiddler.created'
 descending
 script
 '
 function getFirstLine(s) {
 var m = s.match(/\s*(.*)/);
 return m != null && m.length >= 1 ? m[1] : "";
 }
 '
 write
 '(index > 0 && index < 10) ? "* ("+tiddler.created.formatString("DD MMM")+") - [["+tiddler.title+"]] &rarr; "+getFirstLine(tiddler.text)+"[[(...)|"+tiddler.title+"]]\n----\n" : ""' 
>>
"Passata la festa, gabbato lo santo" diceva quello.
Però qui siamo ancora all'11 maggio, la festa non è passata e il santo non è gabbato. Ho già parlato, sia qui che sul [[tumblr|http://corax.tumblr.com]] di [[Surripedia|http://surripedia.tumblr.com]].
Pochi giorni fa questo consesso del quale mi vanto di far parte ha raggiunto i [[100 followers|http://corax.tumblr.com/post/102306251/mak-pi-100]] (i followers, per chi non lo sapesse, sono utenti di tumblr che hanno aggiunto Surripedia nella loro dashboard; adesso è chiaro, no?) quindi la gente che segue Surripedia è, si spera, più numerosa, ma il traguardo dei 100 è stato festeggiato a modino.
Oggi, e torniamo al santo, si festeggia un anno di Surripedia, in quest'anno i sodali di Surripedia hanno, tra una cosa e l'altra, tra alti e bassi, tra definizioni riuscite e meno, pubblicato un 1.300 post.
1.300 lemmi, in buona parte dei 7 cialtroni più prolifici, ma prodotti anche da altri soci, da amici, da amici degli amici e da semplici passanti.
Voi leggete, chessò
<<<
[[Tenero|http://surripedia.tumblr.com/post/103669168/tenero]]:
agg.s.m. morbida bevanda inglese. 
<<<
magari sorridete, magari vi piace, e morta lì...
e no! dietro le quinte (ma non ditelo a nessuno, che è un segreto che vi racconto solo perché è festa) ci sono proposte, migliorie, correzioni, scannamenti, lotte, faide, ordalie, complotti, participi, emendamenti, limature, abbellimenti, discussioni, tagli, cuciture, aggettivazioni, baruffe, improperi, scuse, bestemmie, modifiche...
insomma, una faticaccia, ma ne vale spesso la pena. soprattutto quando la definizione curata con tanto amore non riceve un segno di apprezzamento e la cazzata buttata lì tanto per viene citata in giro per il piccolo mondo dei tumblr . Succede, oh! se succede; più spesso di quanto non pensiate.

Ma in fondo non ci badiamo, né se i nostri lemmi piacciono nè se il contrario. Non ci badiamo anche perché, quando è nata questa cosa, abbiamo preso un'ottima decisione: i lemmi e le definizioni sono di Surripedia, non sono nostre (si può dare un nome ad ogni definizione, ma in pagina non sono firmate).

Insomma, e qui finisco, prima di "passare la festa", oggi voglio fare i miei complimenti e fare i migliori auguri per questo progetto, per i loro siti personali e per la loro vita //fuori di internet// a tutti i sodali, in attività e no; presenti, passati e futuri; in organigramma o semplici amici.
A tutti loro, e a voi lettori, il mio grazie e il mio saluto.


Be' tutti tutti no; te, ad esempio, sei stato [[squalificato|http://www.phonkmeister.com/post/106220557/un-anno-di-surripedia]]
<html><center>
|>|>|bgcolor(#666): @@font-size(12pt):''<<newTiddler template:EditTemplate>>''@@ |
|autore: <<option txtUserName>> |utente: <<option txtUploadUserName>> |password: <<option pasUploadPassword>> |
| <<upload http://corax.altervista.org/store.php index.html>> - [[ping|http://pingomatic.com/ping/?title=HUGINNogMUNINN&blogurl=http%3A%2F%2Fcorax.altervista.org&rssurl=http%3A%2F%2Fcorax.altervista.org%2Findex.xml&chk_weblogscom=on&chk_technorati=on&chk_feedburner=on]] | <<saveChanges>> - [[Salva|http://corax.altervista.org/index.html]] | [[Cerca]] - [[Formattazione|AiutoVeloce]] - [[Default|DefaultTiddlers]] |
<<slider chkSliderOptionsPanel OptionsPanel Opzioni 'Modifica le opzioni avanzate di interfaccia del TiddlyWiki'>></html>
Riprovo, di nuovo, e di nuovo, e di nuovo, a far leggere 'sto benedetto blog a technorati.
<html><a href="http://technorati.com/claim/irdfzts7kd" rel="me">Technorati Profile</a></html> 
Mi scuso se trovate robaccia che non volete in questa pagina o nel feed. Ma tanto è sabato sera, qua fino a lunedì non si vedrà nessuno.

Finalmente.
Finalmente il sole, il caldo, l'estate.
Finalmente, come le lumache, dopo la pioggia sono arrivati gli [[anziani|Canta tu]]. Il solito (quest'anno in ritardo) gruppo di apripista del polesine.
Finalmente, e dopo averli persi l'anno scorso, i bambini (e gli accompagnatori) dell'campus Inter.
Finalmente, dopo un lungo inverno in garage, i fantic smarmittati che rompono... i timpani.
Finalmente, in tempo per le prime hit dell'estate, la musica a palla dai finestrini delle auto.
Finalmente anche quest'anno posso cominciare a lamentarmi dell'estate. Era ora.
Edita 'New Tiddler'.
Un tempo in tv, prima d'andare a letto,
c'era un nerissimo pulcino da tutti negletto
ma un olandesina
lo mise in candeggina
mostrò ch'era bianco sotto ali, cosce e petto.
<HTML><CENTER>''<<search>>''

+++[ricerca avanzata]
<<tableOfContents>>
===
</HTML>
Viste le numerose (?) e-mail, sms, piccioni viaggiatori e telefonate con le quali mi chiedete che fine abbia fatto: eccomi qui.
Dopo il post sul "bello" (che ha ricevuto una buona accoglienza) e quello istituzionale del compleanno mi sono un po' lasciato andare. Non solo, qui ma anche sul tumblr, ho latitato non poco.
So che state morendo dalla voglia di sapere i motivi di questo silenzio.
Ho fatto, ho brigato, sono andato e tornato.
Be', poi c'è stata la solita grigliata di fine aprile al laga; della quale avrei un video, ma non me lo lasciano postare :) quindi s'è perso un po' di tempo per organizzare, un giorno al lago e il giorno dopo per...digerire!
Prima (e poi) il ponte del 25 e la fiera del 1° maggio.

E poi mi sono un po' perso con un paio di giochi. Ho ripreso in mano (mi capita spesso, ad intervalli irregolari) il gioco dei [[pentamini|http://www2.polito.it/didattica/polymath/htmlS/probegio/GAMEMATH/Polimini/Polimini.htm]] e il [[mancala|http://it.wikipedia.org/wiki/Mancala]] (in particolare il //Wari//).

E, a proposito di mancala, vi propongo un giochino.

Il tavoliere è composto da quattro buche contenenti due semi ciascuna e una buca vuota  

{{{
+-+ +-+ +-+ +-+ +---+
|2| |2| |2| |2| |   |
+-+ +-+ +-+ +-+ +---+
}}}

Dovete fare arrivare tutti i semi nell'ultima buca seguendo alcune semplici regole:
* Prendendo i semi di una buca si seminano, uno per uno, nelle buche alla destra; se si arriva all'ultima buca con ancora semi in mano si ricomincia dalla buca all'estrema sinistra.
* Se l'ultimo seme in mano cade nell'ultima buca si continua prendendo i semi dalla buca che si preferisce (esclusa l'ultima).
* Se l'ultimo seme cade in una buca che ne contiene altri si prendono tutti (compreso quello appena seminato) e si seminano nelle buche successive.
* Se l'ultimo seme cade in una buca che non ne conteneva...avete perso!

Ad esempio; comincio con la buca "C":
{{{
+-+ +-+ +-+ +-+ +---+
|2| |2| |2| |2| |   |
+-+ +-+ +-+ +-+ +---+
 A   B   C   D    X

+-+ +-+ +-+ +-+ +---+
|2| |2| |0| |3| | 1 |
+-+ +-+ +-+ +-+ +---+
 A   B   C   D    X
}}}

I semi cadono in "D" e "X". Posso ripartire da un'altra buca; ad esempio la "A"; che semina in "B" e "C"; in "C" non c'erano altri semi. Il gioco finisce.
{{{
+-+ +-+ +-+ +-+ +---+
|2| |2| | | |3| | 1 |
+-+ +-+ +-+ +-+ +---+
 A   B   C   D    X

+-+ +-+ +-+ +-+ +---+
| | |3| |1| |3| | 1 |
+-+ +-+ +-+ +-+ +---+
 A   B   C   D    X
}}}

Se invece avessi iniziato da "B", seminando in "C" e "D" avrei questa situazione:
{{{
+-+ +-+ +-+ +-+ +---+
|2| |2| |2| |2| |   |
+-+ +-+ +-+ +-+ +---+
 A   B   C   D    X

+-+ +-+ +-+ +-+ +---+
|2| | | |3| |3| |   |
+-+ +-+ +-+ +-+ +---+
 A   B   C   D    X
}}}

Finendo in "D" (dove ci sono altri semi) riparto da qui, seminando in "X", "A" e "B". In "B" non c'erano altri semi: il gioco finisce.
{{{
+-+ +-+ +-+ +-+ +---+
|2| | | |3| |3| |   |
+-+ +-+ +-+ +-+ +---+
 A   B   C   D    X

+-+ +-+ +-+ +-+ +---+
|3| |1| |3| | | | 1 |
+-+ +-+ +-+ +-+ +---+
 A   B   C   D    X
}}}

Io ho trovato una soluzione (non so se sia unica o meno) in dieci mosse. Qualche idea?
(Se volete scrivetemi le vostre soluzioni, per mail o nei commenti, scrivendomi l'ordine delle buche giocate)
''04.07.1914 - 26.10.2009''

// //''Name:'' Collapse plugin
// //''Author:'' Alan Hechts

// // __Macro for the toolbar button__ 
config.views.wikified.toolbarCollapse = {text: "collapse", tooltip: "Collapse this tiddler", toggleText: "expand", toggleTooltip: "Expand this tiddler"};

config.macros.toolbarCollapse = {};

config.macros.toolbarCollapse.handler = function(place,macroName,params)
{
 lingo = config.views.wikified;
 createTiddlyButton(place,lingo.toolbarCollapse.text,lingo.toolbarCollapse.tooltip,onClickToolbarCollapse);
}

// //__Event handler on toolbar button press__
function onClickToolbarCollapse(e)
{
 if (!e) var e = window.event;
 title = this.parentNode.id.substr(7);
 if(title)
 {
 var viewerStatus = document.getElementById("viewer" + title).style.display
 var displayStyle;
 var buttonText;
 var buttonTooltip;
 var lingo = config.views
 lingo = lingo.wikified;
 if(viewerStatus == "none")
 {
 displayStyle = "block";
 buttonText = lingo.toolbarCollapse.text;
 buttonTooltip = lingo.toolbarCollapse.tooltip;
 }
 else
 {
 displayStyle = "none";
 buttonText = lingo.toolbarCollapse.toggleText;
 buttonTooltip = lingo.toolbarCollapse.toggleTooltip;
 }
 document.getElementById("viewer" + title).style.display = displayStyle; 
 document.getElementById("footer" + title).style.display = displayStyle; 
 this.innerHTML = buttonText;
 this.title = buttonTooltip;
 }
}
Background: #eee
Foreground: #000
PrimaryPale: #ccc
PrimaryLight: #ddd
PrimaryMid: #f90
PrimaryDark: #f90
SecondaryPale: #ddd
SecondaryLight: #ddd
SecondaryMid: #333
SecondaryDark: #f90
TertiaryPale: #666
TertiaryLight: #666
TertiaryMid: #f90
TertiaryDark: #666
Error: #f00
"Sapevatelo! su rieduchescional channel!"

quelle notizie inutili, un po' "forse non tutti sanno che..." della //Settimana Enigmistica// un po' [[Miscellanea|http://www.anobii.com/books/Loriginale_miscellanea_di_Schott/9788845411991/01e251a219dcac5057/]], fan sempre la loro porca figura quando si deve scrivere un post e non si sa cosa scrivere.
(D'altra parte mi tocca, che c'era in home ancora un post dell'11 settembre)(che si sono accorti che non scrivo anche quelli che visitano il blog ogni morte di papa)(auguri Benny)
Bon, oggi parliamo di nomi commerciali: il brand, come dicono quelli che ne sanno (non quelli che pensano si tratti di una specie di cognac)(quello è il brandy)(o //Arzente// come lo tradusse il vate)(il vate, senza "r").
Lasciamo perdere la Fiat. Dai: Fabbrica Italiana Automobili Torino. Come se i tedeschi avessero l'Industria Motoristica Bavarese.([[come dici?|http://it.wikipedia.org/wiki/BMW]])
Potete però bullarvi nel sapere che la più grande catena di supermercati della Patagonia è anonima, o meglio //La An&oacute;nima// o , per amor di precisione, la Sociedad An&oacute;nima Importadora y Exportadora de la Patagonia.
O, tornando in Italia, un'altra chicca.
Domattina, a colazione, prendete la vostra confezione di Oro Saiwa, --date una carezza ai vostri biscotti e dite-- e con misurata nonchalance dite a chi vi sta di fronte: "ma lo sai che Saiwa è la sigla di //Società in Accomandita Industria Wafer e Affini//?"
Vedrete che figurone.

EDIT: mi dicono dalla [[regia|http://nikink.tumblr.com]] di citare pur'anche l'//Unico Prezzo Italiano Milano//.
Ok, non hai chiuso la pagina vedendo che ci metteva tanto  a caricarsi; e adesso? Non sembra uno dei soliti blog, no?

Allora, se questa è la prima volta che vieni qui ti interesser     sapere che questo in realt     è un bliki: ovvero una roba a met     tra un blog e un wiki. Forse il primo, sicuramente uno dei pochi, in Italia.

All'apertura della homepage trovi un riquadro arancione che contiene l'ultimo post pubblicato, Questi riquadri si chiamano frammenti (o tiddler) e sono gli elementi minimi di cui è composto questo bliki.

Qui a destra trovi, in cima alla prima colonna, una lista degli ultimi post, cliccaci pure, si apriranno qui sopra.
Come puoi vedere nell'angolo in alto a destra di ogni frammento c'è il pulsante per commentare. Nel frammento che appare all'apertura invece questo non è possibile (per i curiosi: il frammento è in questo caso sempre lo stesso; se lasciassi commentare direttamente ci sarebbe un unico calderone di commenti che si riferiscono ai vari post); ti basta cliccare in fondo al frammento, dove dice: "andate qui"; riapre il "vero" frammento del post e potete commentare tranquillamente.

Questo aiuto è un "work in progress". Se avete domande lasciatele pure nei commenti a questo tiddler e vedrò di aggiornare il pezzo man mano,
''ATTENZIONE !'' Dato che qui si "paciùga" parecchio, dato che devo essere sempre quello che va a cercare le robe complicate, dato che ''voi'' usate ancora internet explorer, dato tutto questo e altro...
* Il contatore dei commenti fa un po' quello che vuole; quindi potrebbero esserci più commenti di quelli che dice. Se aprite i commenti vedrete comunque tutti quelli che ci sono. (oppure, se sapete di cosa si tratta usate il feed xml nella colonna di sinistra)
* Nella colonna di destra potete trovare un collegamento agli ultimi commenti, potete controllare se vi ho risposto o se qualcuno ha aggiunto qualcosa. Funziona con ~FireFox...quante volte ve lo devo dire di mollare IE???
Per qualche giorno sarò senza cellulare.
Chi di voi mi dovesse contattare provi con e-mail o con il fisso (chi conosce il cellulare dovrebbe avere anche quello).

Grazie
* [img[http://16.media.tumblr.com/RRbAam8VOo46ydhg1nu4A1Ozo1_250.gif]]
* ATTTCCTGGGAGGGGAGAGGG
* Length: 29ft 3in - Height: 10ft 8in
* 15R-648484-3388605
: * ^^per solutori più che abili^^
<html><center><iframe frameborder="0" allowtransparency="true" width="360px" height="300px" src="http://www.retaggr.com/Embed/corax"></iframe></html>
gli autori di questo Blog:

[[Corax]]
[[Lorenzo]]
''Treviso''
Dopo una fantozziana corsa al posto allungo le gambe nella fila dell'uscita d'emergenza, pago pegno sentendo racconti di ex e ex di amiche.

''//Sulla strada//''
L'autista del transfer parla come il //clochard*// di Padova (questa la capiscono in 3).
E il loro accento, poi! facciano poco gli [[spiritosi|http://www.youtube.com/watch?v=JAFQFvSPhQ8]].
 *oddìo, ho scritto clochard

''San Francisco?''
Puerto Montt, Haifa e adesso La Valletta. Abito in montagna, ma il paese è pianeggiante. Vado al mare  e le strade sono tutto un su e giù. 
<html><a href="http://www.zooomr.com/photos/corax/9102780/" title="Photo Sharing"><img src="http://static.zooomr.com/images/9102780_219577cc26_t.jpg" width="75" height="100" alt="La scala" /></a></html>

''//I don't think we have any Nespa, sir//''
L'hotel (un covo di zanzare) è di quel vecchio che potrebbe tranquillamente avvenire un omicidio. E dalla camera di fianco uscirebbe Poirot.

''Absit iniuria verbis''
I maltesi: o tipo mediorientale (i vecchi sono gli stessi di Gerusalemme) o inglese con tanto di beer belly. Donne? Dio benedica il turismo.

''In maps we trust''
"//Saranno un paio di chilometri, faccio una passeggiata//" e "//visto che sono arrivato fin qui...//" sono frasi che hanno mietuto molte vittime.
<html><iframe width="200" height="150" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?hl=it&amp;ie=UTF8&amp;msa=0&amp;msid=111939227321676749101.00048496c4a238c44cea3&amp;ll=35.855666,14.408569&amp;spn=0.083478,0.138016&amp;z=11&amp;output=embed"></iframe><br /><small>Visualizza <a href="http://maps.google.com/maps/ms?hl=it&amp;ie=UTF8&amp;msa=0&amp;msid=111939227321676749101.00048496c4a238c44cea3&amp;ll=35.855666,14.408569&amp;spn=0.083478,0.138016&amp;z=11&amp;source=embed" style="color:#0000FF;text-align:left">Malta</a> in una mappa di dimensioni maggiori</small></html>

''N 35° 50.551 E 014° 23.926''
La mia seconda geocache, disperso nel bel mezzo del nulla, e arrivo al punto X in contemporanea con un finlandese. Una volta su un milione?
<html><a href="http://www.zooomr.com/photos/corax/9102812/" title="Photo Sharing"><img src="http://static.zooomr.com/images/9102812_c6f5220499_t.jpg" width="100" height="75" alt="Geocaching" /></a></html>

''Eyjafjallajokull''
Quattro giorni ad aspettare conferma della partenza e poi prendere un nuovo biglietto per Milano.
Ci sono cose che non si possono comprare.

''Benedittu''
Visto un solo 6x3 del papa ([[pulito|http://www.timesofmalta.com/articles/view/20100410/local/papal-billboard-vandalised]]). Bandiere giallobianche a iosa e cartelli su ogni sezione del partito laburista.
Lui ha potuto volare.

''Butcher''
Frank D. Camilleri, Vincent Azzopardi, Joseph E. Spiteri, Paul&Rocco garage, ...
Dalle insegne sembra di essere a Chicago negli anni '20.

''I colori del luzzu''
Arancio: i bus e i frutti del fico d'India.
Blu: il cielo e il mare.
Giallo: le mura, i palazzi, le case, la sabbia, i muretti, le chiese.
<html><a href="http://www.zooomr.com/photos/corax/9102853/" title="Photo Sharing"><img src="http://static.zooomr.com/images/9102853_c021819187_t.jpg" width="100" height="75" alt="Luzzu" /></a><a href="http://www.zooomr.com/photos/corax/9103369/" title="Photo Sharing"><img src="http://static.zooomr.com/images/9103369_2b0a4ed59a_t.jpg" width="100" height="75" alt="8 Valletta-Airport" /></a><a href="http://www.zooomr.com/photos/corax/9102851/" title="Photo Sharing"><img src="http://static.zooomr.com/images/9102851_b3204b4389_t.jpg" width="100" height="75" alt="Blue" /></a><a href="http://www.zooomr.com/photos/corax/9102860/" title="Photo Sharing"><img src="http://static.zooomr.com/images/9102860_e762817b21_t.jpg" width="100" height="75" alt="Sassi e fichi d'india" /></a></html>
La prima volta che mi sono sentito vecchio, tanti anni fa, è stato all'università. Un episodio che non sto lì a raccontare; vi basti sapere che la matita di [[Eriadan|http://www.shockdom.com/eriadan/]] lo racconta perfettamente.

[img[http://www.shockdom.com/eriadan/images/20040708.jpg][http://www.shockdom.com/eriadan/?m=200407&paged=8]]

Anni dopo, anni passati comunque a sentirmi dire che dimostro meno anni di quelli che ho (trentuno, mica settanta), ieri sera mi sono visto due rughe vicino agli occhi.
Ma si sa: questa settimana devo fare il turno di notte, non sono abituato come l'anno scorso, dormo poco.
E poi lo specchio in camera è illuminato male, magari si tratta di ombre.

Controllo in bagno, con lo specchio ben illuminato e forse è vero, non ci sono le rughe che vedevo in camera, o almeno non cosi nette.
Un sospiro di soll...oddio! E quello cos'è?

:''un.capello.bianco.''
La settimana scorsa una persona della quale tacerò il nome mi ha scritto che era contenta che avessi ripreso a scrivere.
 
Al suo segnale si é scatenato l'inferno.
 
A pochi giorni dall'apertura dell'hotel, con metà del personale non ancora arrivato, con i vari falegnami, imbianchini, tappezzieri e tecnici in giro per le ultime cose e con l'ordinaria amministrazione; sono iniziate le comiche. Richieste assurde, televisori da sistemare, chiavi, stampe, quadri, fiori, --picche e cuori--, telefoni, e-mail e molto altro.
Da ridere, se il protagonista non fossi io.
 
Non ho più avuto 5 minuti liberi, e tornato a casa non avevo tempo e voglio di vedere ancora uno schermo o un'e-mail.
Finalmente, nei ritagli di tempo, riesco a scrivere due righe per farmi vivo. In attesa delle cavallette vi racconterò le ultime cose.

:(continua ?)
/***
|Name|DatePlugin|
|Source|http://www.TiddlyTools.com/#DatePlugin|
|Version|2.2.1|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|formatted dates plus popup menu with 'journal' link, changes and (optional) reminders|

There are quite a few calendar generators, reminders, to-do lists, 'dated tiddlers' journals, blog-makers and GTD-like schedule managers that have been built around TW.  While they all have different purposes, and vary in format, interaction, and style, in one way or another each of these plugins displays and/or uses date-based information to make finding, accessing and managing relevant tiddlers easier.  This plugin provides a general approach to embedding dates and date-based links/menus within tiddler content.

This plugin display formatted dates, for the specified year, month, day using number values or mathematical expressions such as (Y+1) or (D+30).  Optionally, you can create a link from the formatted output to a 'dated tiddler' for quick blogging or create a popup menu that includes the dated tiddler link plus links to changes made on that date as well as links to any pending reminders for the coming 31 days (if the RemindersPlugin is installed).  This plugin also provides a public API for easily incorporating formatted date output (with or without the links/popups) into other plugins, such as calendar generators, etc.
!!!!!Usage
<<<
When installed, this plugin defines a macro: {{{<<date [mode] [date] [format] [linkformat]>>}}}.  All of the macro parameters are optional and, in it's simplest form, {{{<<date>>}}}, it is equivalent to the ~TiddlyWiki core macro, {{{<<today>>}}}.

However, where {{{<<today>>}}} simply inserts the current date/time in a predefined format (or custom format, using {{{<<today [format]>>}}}), the {{{<<date>>}}} macro's parameters take it much further than that:
* [mode] is either ''display'', ''link'' or ''popup''.  If omitted, it defaults to ''display''.  This param let's you select between simply displaying a formatted date, or creating a link to a specific 'date titled' tiddler or a popup menu containing a dated tiddler link, plus links to changes and reminders.
* [date] lets you enter ANY date (not just today) as ''year, month, and day values or simple mathematical expressions'' using pre-defined variables, Y, M, and D for the current year, month and day, repectively.  You can display the modification date of the current tiddler by using the keyword: ''tiddler'' in place of the year, month and day parameters.  Use ''tiddler://name-of-tiddler//'' to display the modification date of a specific tiddler.  You can also use keywords ''today'' or ''filedate'' to refer to these //dynamically changing// date/time values.  
* [format] and [linkformat] uses standard ~TiddlyWiki date formatting syntax.  The default is "YYYY.0MM.0DD"
>^^''DDD'' - day of week in full (eg, "Monday"), ''DD'' - day of month, ''0DD'' - adds leading zero^^
>^^''MMM'' - month in full (eg, "July"), ''MM'' - month number, ''0MM'' - adds leading zero^^
>^^''YYYY'' - full year, ''YY'' - two digit year, ''hh'' - hours, ''mm'' - minutes, ''ss'' - seconds^^
>^^//note: use of hh, mm or ss format codes is only supported with ''tiddler'', ''today'' or ''filedate'' values//^^
* [linkformat] - specify an alternative date format so that the title of a 'dated tiddler' link can have a format that differs from the date's displayed format

In addition to the macro syntax, DatePlugin also provides a public javascript API so that other plugins that work with dates (such as calendar generators, etc.) can quickly incorporate date formatted links or popups into their output:

''{{{showDate(place, date, mode, format, linkformat, autostyle, weekend)}}}'' 

Note that in addition to the parameters provided by the macro interface, the javascript API also supports two optional true/false parameters:
* [autostyle] - when true, the font/background styles of formatted dates are automatically adjusted to show the date's status:  'today' is boxed, 'changes' are bold, 'reminders' are underlined, while weekends and holidays (as well as changes and reminders) can each have a different background color to make them more visibly distinct from each other.
* [weekend] - true indicates a weekend, false indicates a weekday.  When this parameter is omitted, the plugin uses internal defaults to automatically determine when a given date falls on a weekend.
<<<
!!!!!Examples
<<<
The current date: <<date>>
The current time: <<date today "0hh:0mm:0ss">>
Today's blog: <<date link today "DDD, MMM DDth, YYYY">>
Recent blogs/changes/reminders: <<date popup Y M D-1 "yesterday">> <<date popup today "today">> <<date popup Y M D+1 "tomorrow">>
The first day of next month will be a <<date Y M+1 1 "DDD">>
This tiddler (DatePlugin) was last updated on: <<date tiddler "DDD, MMM DDth, YYYY">>
The SiteUrl was last updated on: <<date tiddler:SiteUrl "DDD, MMM DDth, YYYY">>
This document was last saved on <<date filedate "DDD, MMM DDth, YYYY at 0hh:0mm:0ss">>
<<date 2006 07 24 "MMM DDth, YYYY">> will be a <<date 2006 07 24 "DDD">>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''DatePlugin'' (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2006.05.09 [2.2.1]'' added "todaybg" handling to set background color of current date.  Also, honor excludeLists tag when getting lists of tiddlers.  Based on suggestions by Mark Hulme.
''2006.05.05 [2.2.0]'' added "linkedbg" handling to set background color when a 'dated tiddler' exists.  Based on a suggestion by Mark Hulme.
''2006.03.08 [2.1.2]'' add 'override leadtime' flag param in call to findTiddlersWithReminders(), and add "Enter a title" default text to new reminder handler.  Thanks to Jeremy Sheeley for these additional tweaks.
''2006.03.06 [2.1.0]'' hasReminders() nows uses window.reminderCacheForCalendar[] when present.  If calendar cache is not present, indexReminders() now uses findTiddlersWithReminders() with a 90-day look ahead to check for reminders.  Also, switched default background colors for autostyled dates: reminders are now greenish ("c0ffee") and holidays are now reddish ("ffaace").
''2006.02.14 [2.0.5]'' when readOnly is set (by TW core), omit "new reminders..." popup menu item and, if a "dated tiddler" does not already exist, display the date as simple text instead of a link.
''2006.02.05 [2.0.4]'' added var to variables that were unintentionally global.  Avoids FireFox 1.5.0.1 crash bug when referencing global variables
''2006.01.18 [2.0.3]'' In 1.2.x the tiddler editor's text area control was given an element ID=("tiddlerBody"+title), so that it was easy to locate this field and programmatically modify its content.  With the addition of configuration templates in 2.x, the textarea no longer has an ID assigned.  To find this control we now look through all the child nodes of the tiddler editor to locate a "textarea" control where attribute("edit") equals "text", and then append the new reminder to the contents of that control.
''2006.01.11 [2.0.2]'' correct 'weekend' override detection logic in showDate()
''2006.01.10 [2.0.1]'' allow custom-defined weekend days (default defined in config.macros.date.weekend[] array)
added flag param to showDate() API to override internal weekend[] array
''2005.12.27 [2.0.0]'' Update for TW2.0
Added parameter handling for 'linkformat'
''2005.12.21 [1.2.2]'' FF's date.getYear() function returns 105 (for the current year, 2005).  When calculating a date value from Y M and D expressions, the plugin adds 1900 to the returned year value get the current year number.  But IE's date.getYear() already returns 2005.  As a result, plugin calculated date values on IE were incorrect (e.g., 3905 instead of 2005).  Adding +1900 is now conditional so the values will be correct on both browsers.
''2005.11.07 [1.2.1]'' added support for "tiddler" dynamic date parameter
''2005.11.06 [1.2.0]'' added support for "tiddler:title" dynamic date parameter
''2005.11.03 [1.1.2]'' when a reminder doesn't have a specified title parameter, use the title of the tiddler that contains the reminder as "fallback" text in the popup menu.  Based on a suggestion from BenjaminKudria.
''2005.11.03 [1.1.1]'' Temporarily bypass hasReminders() logic to avoid excessive overhead from generating the indexReminders() cache.  While reminders can still appear in the popup menu, they just won't be indicated by auto-styling the date number that is displayed.  This single change saves approx. 60% overhead (5 second delay reduced to under 2 seconds).
''2005.11.01 [1.1.0]'' corrected logic in hasModifieds() and hasReminders() so caching of indexed modifieds and reminders is done just once, as intended.  This should hopefully speed up calendar generators and other plugins that render multiple dates...
''2005.10.31 [1.0.1]'' documentation and code cleanup
''2005.10.31 [1.0.0]'' initial public release
''2005.10.30 [0.9.0]'' pre-release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].
<<<
!!!!!Code
***/
//{{{
version.extensions.date = {major: 2, minor: 2, revision: 1, date: new Date(2006,5,9)};
//}}}

//{{{
config.macros.date = {
	format: "YYYY.0MM.0DD", // default date display format
	linkformat: "YYYY.0MM.0DD", // 'dated tiddler' link format
	linkedbg: "#babb1e", // "babble"
	todaybg: "#ffab1e", // "fable"
	weekendbg: "#c0c0c0", // "cocoa"
	holidaybg: "#ffaace", // "face"
	modifiedsbg: "#bbeeff", // "beef"
	remindersbg: "#c0ffee", // "coffee"
	holidays: [ "01/01", "07/04", "07/24", "11/24" ], // NewYearsDay, IndependenceDay(US), Eric's Birthday (hooray!), Thanksgiving(US)
	weekend: [ 1,0,0,0,0,0,1 ] // [ day index values: sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6 ]
};
//}}}

//{{{
config.macros.date.handler = function(place,macroName,params)
{
	// do we want to see a link, a popup, or just a formatted date?
	var mode="display";
	if (params[0]=="display") { mode=params[0]; params.shift(); }
	if (params[0]=="popup") { mode=params[0]; params.shift(); }
	if (params[0]=="link") { mode=params[0]; params.shift(); }
	// get the date
	var now = new Date();
	var date = now;
	if (!params[0] || params[0]=="today")
		{ params.shift(); }
	else if (params[0]=="filedate")
		{ date=new Date(document.lastModified); params.shift(); }
	else if (params[0]=="tiddler")
		{ date=store.getTiddler(story.findContainingTiddler(place).id.substr(7)).modified; params.shift(); }
	else if (params[0].substr(0,8)=="tiddler:")
		{ var t; if ((t=store.getTiddler(params[0].substr(8)))) date=t.modified; params.shift(); }
	else {
		var y = eval(params.shift().replace(/Y/ig,(now.getYear()<1900)?now.getYear()+1900:now.getYear()));
		var m = eval(params.shift().replace(/M/ig,now.getMonth()+1));
		var d = eval(params.shift().replace(/D/ig,now.getDate()+0));
		date = new Date(y,m-1,d);
	}
	// date format with optional custom override
	var format=this.format; if (params[0]) format=params.shift();
	var linkformat=this.linkformat; if (params[0]) linkformat=params.shift();
	showDate(place,date,mode,format,linkformat);
}
//}}}

//{{{
window.showDate=showDate;
function showDate(place,date,mode,format,linkformat,autostyle,weekend)
{
	if (!mode) mode="display";
	if (!format) format=config.macros.date.format;
	if (!linkformat) linkformat=config.macros.date.linkformat;
	if (!autostyle) autostyle=false;

	// format the date output
	var title = date.formatString(format);
	var linkto = date.formatString(linkformat);

	// just show the formatted output
	if (mode=="display") { place.appendChild(document.createTextNode(title)); return; }

	// link to a 'dated tiddler'
	var link = createTiddlyLink(place, linkto, false);
	link.appendChild(document.createTextNode(title));
	link.title = linkto;
	link.date = date;
	link.format = format;
	link.linkformat = linkformat;

	// if using a popup menu, replace click handler for dated tiddler link
	// with handler for popup and make link text non-italic (i.e., an 'existing link' look)
	if (mode=="popup") {
		link.onclick = onClickDatePopup;
		link.style.fontStyle="normal";
	}

	// format the popup link to show what kind of info it contains (for use with calendar generators)
	if (!autostyle) return;
	if (hasModifieds(date))
		{ link.style.fontStyle="normal"; link.style.fontWeight="bold"; }
	if (hasReminders(date))
		{ link.style.textDecoration="underline"; }
	if(isToday(date))
		{ link.style.border="1px solid black"; }

	if( (weekend!=undefined?weekend:isWeekend(date)) && (config.macros.date.weekendbg!="") )
		{ place.style.background = config.macros.date.weekendbg; }
	if(isHoliday(date)&&(config.macros.date.holidaybg!=""))
		{ place.style.background = config.macros.date.holidaybg; }
	if (hasModifieds(date)&&(config.macros.date.modifiedsbg!=""))
		{ place.style.background = config.macros.date.modifiedsbg; }
	if (store.tiddlerExists(linkto)&&(config.macros.date.linkedbg!=""))
		{ place.style.background = config.macros.date.linkedbg; }
	if (hasReminders(date)&&(config.macros.date.remindersbg!=""))
		{ place.style.background = config.macros.date.remindersbg; }
	if(isToday(date)&&(config.macros.date.todaybg!=""))
		{ place.style.background = config.macros.date.todaybg; }
}
//}}}

//{{{
function isToday(date) // returns true if date is today
	{ var now=new Date(); return ((now-date>=0) && (now-date<86400000)); }

function isWeekend(date) // returns true if date is a weekend
	{ return (config.macros.date.weekend[date.getDay()]); }

function isHoliday(date) // returns true if date is a holiday
{
	var longHoliday = date.formatString("0MM/0DD/YYYY");
	var shortHoliday = date.formatString("0MM/0DD");
	for(var i = 0; i < config.macros.date.holidays.length; i++) {
		var holiday=config.macros.date.holidays[i];
		if (holiday==longHoliday||holiday==shortHoliday) return true;
	}
	return false;
}
//}}}

//{{{
// Event handler for clicking on a day popup
function onClickDatePopup(e)
{
	if (!e) var e = window.event;
	var theTarget = resolveTarget(e);
	var popup = createTiddlerPopup(this);
	if(popup) {
		// always show dated tiddler link (or just date, if readOnly) at the top...
		if (!readOnly || store.tiddlerExists(this.date.formatString(this.linkformat)))
			createTiddlyLink(popup,this.date.formatString(this.linkformat),true);
		else
			createTiddlyText(popup,this.date.formatString(this.linkformat));
		addModifiedsToPopup(popup,this.date,this.format);
		addRemindersToPopup(popup,this.date,this.linkformat);
	}
	scrollToTiddlerPopup(popup,false);
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	return(false);
}
//}}}

//{{{
function indexModifieds() // build list of tiddlers, hash indexed by modification date
{
	var modifieds= { };
	var tiddlers = store.getTiddlers("title","excludeLists");
	for (var t = 0; t < tiddlers.length; t++) {
		var date = tiddlers[t].modified.formatString("YYYY0MM0DD")
		if (!modifieds[date])
			modifieds[date]=new Array();
		modifieds[date].push(tiddlers[t].title);
	}
	return modifieds;
}
function hasModifieds(date) // returns true if date has modified tiddlers
{
	if (!config.macros.date.modifieds) config.macros.date.modifieds = indexModifieds();
	return (config.macros.date.modifieds[date.formatString("YYYY0MM0DD")]!=undefined);
}

function addModifiedsToPopup(popup,when,format)
{
	if (!config.macros.date.modifieds) config.macros.date.modifieds = indexModifieds();
	var indent=String.fromCharCode(160)+String.fromCharCode(160);
	var mods = config.macros.date.modifieds[when.formatString("YYYY0MM0DD")];
	if (mods) {
		mods.sort();
		var e=createTiddlyElement(popup,"div",null,null,"changes:");
		for(var t=0; t<mods.length; t++) {
			var link=createTiddlyLink(popup,mods[t],false);
			link.appendChild(document.createTextNode(indent+mods[t]));
			createTiddlyElement(popup,"br",null,null,null);
		}
	}
}
//}}}

//{{{
function indexReminders(date,leadtime) // build list of tiddlers with reminders, hash indexed by reminder date
{
	var reminders = { };
	if(window.findTiddlersWithReminders!=undefined) { // reminder plugin is installed
		// DEBUG var starttime=new Date();
		var t = findTiddlersWithReminders(date, [0,leadtime], null, null, 1);
		for(var i=0; i<t.length; i++) reminders[t[i].matchedDate]=true;
		// DEBUG var out="Found "+t.length+" reminders in "+((new Date())-starttime+1)+"ms\n";
		// DEBUG out+="startdate: "+date.toLocaleDateString()+"\n"+"leadtime: "+leadtime+" days\n\n";
		// DEBUG for(var i=0; i<t.length; i++) { out+=t[i].matchedDate.toLocaleDateString()+" "+t[i].params.title+"\n"; }
		// DEBUG alert(out);
	}
	return reminders;
}

function hasReminders(date) // returns true if date has reminders
{
	if (window.reminderCacheForCalendar)
		return window.reminderCacheForCalendar[date]; // use calendar cache
	if (!config.macros.date.reminders)
		config.macros.date.reminders = indexReminders(date,90); // create a 90-day leadtime reminder cache
	return (config.macros.date.reminders[date]);
}

function addRemindersToPopup(popup,when,format)
{
	if(window.findTiddlersWithReminders==undefined) return; // reminder plugin not installed

	var indent = String.fromCharCode(160)+String.fromCharCode(160);
	var reminders=findTiddlersWithReminders(when, [0,31],null,null,1);
	var e=createTiddlyElement(popup,"div",null,null,"reminders:"+(!reminders.length?" none":""));
	for(var t=0; t<reminders.length; t++) {
		link = createTiddlyLink(popup,reminders[t].tiddler,false);
		var diff=reminders[t].diff;
		diff=(diff<1)?"Today":((diff==1)?"Tomorrow":diff+" days");
		var txt=(reminders[t].params["title"])?reminders[t].params["title"]:reminders[t].tiddler;
		link.appendChild(document.createTextNode(indent+diff+" - "+txt));
		createTiddlyElement(popup,"br",null,null,null);
	}
	if (readOnly) return;	// omit "new reminder..." link
	var link = createTiddlyLink(popup,indent+"new reminder...",true); createTiddlyElement(popup,"br");
	var title = when.formatString(format);
	link.title="add a reminder to '"+title+"'";
	link.onclick = function() {
		// show tiddler editor
		story.displayTiddler(null, title, 2, null, null, false, false);
		// find body 'textarea'
		var c =document.getElementById("tiddler" + title).getElementsByTagName("*");
		for (var i=0; i<c.length; i++) if ((c[i].tagName.toLowerCase()=="textarea") && (c[i].getAttribute("edit")=="text")) break;
		// append reminder macro to tiddler content
		if (i<c.length) {
			if (store.tiddlerExists(title)) c[i].value+="\n"; else c[i].value="";
			c[i].value += "<<reminder";
			c[i].value += " day:"+when.getDate();
			c[i].value += " month:"+(when.getMonth()+1);
			c[i].value += " year:"+when.getFullYear();
			c[i].value += ' title:"Enter a title" >>';
		}
	};
}
//}}}
HUGINNogMUNINN
/***
|''Name''|DeprecatedFunctionsPlugin|
|''Description''|Provides support for functions removed from the TiddlyWiki core|
|''Version''|1.0.0|
|''Status''|stable|
|''Source''|http://www.tiddlywiki.com/plugins.html#DeprecatedFunctionsPlugin|
|''~CodeRepository:''|http://svn.tiddlywiki.org/Trunk/association/plugins/DeprecatedFunctionsPlugin/DeprecatedFunctionsPlugin.js |
|''License''|[[BSD open source license]]|
|''~CoreVersion''|2.3.0|
|''Feedback''|[[TiddlyWiki community|http://groups.google.com/group/TiddlyWiki]] |
|''Keywords''|legacySupport|
!Code
***/
//{{{
if(!version.extensions.DeprecatedFunctionsPlugin) {
version.extensions.DeprecatedFunctionsPlugin = {installed:true};

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

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

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

// @Deprecated: Use <br> or <br /> instead of <<br>>
config.macros.br = {};
config.macros.br.handler = function(place)
{
	createTiddlyElement(place,"br");
};

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

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

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

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

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

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

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

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

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

}
//}}}
Non voglio rubare il lavoro agli amici del [[Carnevale della Matematica|http://www.ilpost.it/mauriziocodogno/2010/07/14/carnevale-della-matematica-27/]], e quindi riporto poche proprietà matematiche del numero ''33'', per il resto sono curiosità non matematiche:

# è un numero difettivo
# è un numero semiprimo
# è il più piccolo numero intero che non possa essere espresso come somma di numeri triangolari differenti
# è un numero di Strømer
# è uguale alla somma dei fattoriali di 1,2,3 e 4      (//finito con la matematica//)
# è il numero atomico dell’arsenico
# è il numero di vertebre del corpo umano
# sono gli anni di regno di re David
# è la temperatura di ebollizione dell’acqua secondo la scala Newton
# è il più alto grado della massoneria
# sono i phyla del regno animale
# è il numero di consonanti dell’Hindi
# sono i giri al minuto dei 33 giri (mai sentiti nominare?)
# sono gli stati del Messico
# sono le citazioni di Dio nella Genesi
# è il prefisso internazionale della Francia
# è il numero di caratteri dell’alfabeto cirillico
# è l’età della crocifissione di Gesù
# sono i suoni della lingua italiana
# sono i trentini che entrano a Trento trotterellando
# è il titolo dell'episodio pilota di Battlestar Galactica
# è il titolo di una canzone degli Smashing Pumpkins
# era il numero di maglia di Larry Bird
# sono le variazioni nella ~Diabelli-Variationen di Beethoven
# è il numero di simboli dell’alfabeto copto
# sono gli anni che hanno i morti in paradiso secondo l'islam
# è l'età alla quale gli hobbit diventano maggiorenni
# sono i canti per ogni cantica della Divina Commedia
# è il titolo non-ufficiale dell’inno delle Truppe Alpine
# era il numero di maglia di Kareem ~Abdul-Jabbar
# sono le regioni della Cina
# è il numero di corridori della 500 miglia di Indianapolis
# è il numero degli anni che compio oggi
Vediamo se google fa il suo dovere, che qua i lettori latitano.
No, è che l'anno scorso c'era stato qualcuno arrivato qui dai motori di ricerca, ma non aveva trovato quello che cercava. Ma quest'anno mi metto d'impegno e quattro informazioni sull'//official summer training camp// della Juve ve le do.

Dunque: oggi (ieri, ormai) a Pinzolo (e così anche gli ultimi miei due lettori sanno dove abito) è arrivata in ritiro la Juventus.
La Juve resterà in ritiro in Trentino dal 5 al 16 luglio. Gli allenamenti (allo stadio [[Pineta|http://maps.google.it/maps?f=q&hl=it&geocode=&q=pinzolo&sll=41.442726,12.392578&sspn=11.67199,19.160156&ie=UTF8&ll=46.152784,10.759048&spn=0.010539,0.018711&t=h&z=16]]) saranno tutti i giorni, esclusi i giorni delle amichevoli. Non ho gli orari, ma dovrebbero fare un allenamento la mattina e uno il pomeriggio. Volete anche i costi dell'ingresso agli allenamenti? 5 euro gli adulti, 3 i ragazzi e gratis i bambini (non tentate di entrare a ufa, che l'anno scorso uno c'ha rimesso un dito..).
Il 9 luglio alle 21, sempre a Pinzolo, ci sarà la presentazione ufficiale della squadra. Mi auguro che non la faccia, come l'ultima volta, il figlio della mamma di Brosio.
L'11 e il 16 luglio due partite amichevoli della Juventus contro, rispettivamente, il Mezzocorona a Pinzolo e il Piacenza a Trento. Prezzi dai 15 ai 40-50 euro.
L'11 luglio festa bianconera per le vie del paese, musica, animazione (yeah) e pasta party.
Come l'anno scorso lo sponsor è il ramo trattori della Fiat: la New Holland. 

Per il resto chiedete all'[[azienda per il turismo|http://www.pinzolo.to]]; che quelli li pagano, per darvi 'ste informazioni.
Dopo il romantico [[tête-à-tête|Vivere per raccontarla]] con un guardrail, quest'estate sono stato costretto a cambiare macchina. Adesso ho una Rover 25 di seconda mano che uso praticamente solo nei 15 km casa-lavoro e lavoro-casa.
Di macchine come la mia, di colore azzurro, immagino ne abbiano vendute un centinaio in tutta Italia. La cosa é comoda per i miei amici: se ne vedono una parcheggiata nei dintorni dell'hotel sanno che sono al lavoro, se mi incrociano lungo la strada possono salutare senza troppi dubbi. Se la vedono parcheggiata in altri posti sanno che mi troveranno lì attorno.
Questo, almeno, pensavo fino all'altro giorno. Salendo a Campiglio ho visto una macchina uguale uguale che scendeva. Stesso modello, stesso colore.
Adesso gli amici sono obbligati a imparare la targa.

Lo so, schifo di post, ma avevo [[promesso|Unionized]], e in questo modo ho scritto il pezzo sull'hapax legomenon.
<div class='title' macro='view title'></div>
<br>
<div class="editor" macro='edit title'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
~~''Disclaimer:'' post ad alto contenuto splatter; se siete di quelli a cui vengono i brividi solo al nominare, che so, //siringa// passate tra un paio di giorni.................................~~''SIRINGA!''
>//quando ero bambino mi accorsi che non avevo la linea della fortuna sulla mano,//
>//e allora presi il rasoio di mio padre e zac... me ne feci una come volevo.//
>&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;^^(Hugo Pratt - Una ballata del mare salato)^^
Non ho un buon rapporto con le mie mani. Le mie mani non hanno un buon rapporto con forbici, coltelli e roba tagliente. Credo di non avere un dito al quale non manchi una fetta, del quale mi sia spaccato o tagliato un unghia o sul quale non ci sia una cicatrice.
Sul polso ho la cicatrice lasciatami da piccolo da un cane che mi ha morsicato la mano. Sull'indice sinistro un altro segno del quale non ricordo la storia. Mi sono "affettato" più di una volta un pezzo di pollice (una volta riuscendo a re-incollarlo con diversi cerotti).Mi sono spaccato le unghie (un dolore, quando si alzano dal loro posto!); mi sono infilato non so quante volte spine, sempre sotto le unghie o sulle nocche (!).
Poi, con un vetro, mi sono fatto un simpatico squarcio sulla parte cicciosa sotto il pollice; vicino a quella che credo sia la linea della vita (non per niente se mi chiedono lumi, uso la frase di Corto Maltese che ho messo in apertura...)
Non so come faccia ad avere ancora tutte le falangi.
Penserete che sia imbranato, ma non è così. A me viene più in mente una [[cosa del genere|http://en.wikipedia.org/wiki/The_Hands_of_Orlac]]. Non so.
Inoltrescusaae scappok chhemisiè incastrasto un ditotras i tastui g eb
A quanto pare ho sistemato il problema che avevo con l'aggiornamento del blog; in compenso non mi arrivano più le notifiche dei vostri (numerosi) commenti.
Se non rispondo subito sapete il perché.
[[Poi|Brontolo]] c'è [[anche|Gongolo]] l'allergia.
Sul Post, qualche giorno fa, è stato pubblicato un interessante articolo di .mau. sulle dimensioni dei 750 miliardi di euro stanziati dall'Unione Europea.
In soldoni (!) se questi 750 miliardi fossero cartamoneta, in banconote da 50€ quanto spazio occuperebbero? (o in alternative: quanto peserebbero?).

Questo tipo di problemi non vuole arrivare ad una risposta esatta, ma ad una risposta congruente (indovinare l'ordine di grandezza: poco importa se risulta 10 invece di 15, diverso se risulta 100 invece di 10 ) Questi problemi, dicevo, si chiamano problemi di Fermi (quello di via Panisperna) perché il fisico amava proporli ed utilizzarli (//dicunt// che con alcuni pezzetti di carta lasciati cadere a terra calcolò la potenza della bomba atomica, riuscendoci abbastanza bene).

Girovagando per la rete ho trovato un altro problema curioso: il petrolio è detto "oro nero", ma un barile //da// petrolio pieno d'oro vero quanto vale? 

Come sapranno alcuni dei miei lettori con la matematica non ci andavo molto d'accordo a scuola. Eppure sono soddisfatto per essere riuscito a risolvere questo quesito e quello di .mau. (anche se, in quel caso, ho perso una virgola nel numero di piscine olimpiche: sono solo 6 e mezza ovvero... quante cupole di San Pietro?)

La risposta? a pag. 46.


* il [[post|http://www.ilpost.it/mauriziocodogno/2010/05/14/750-miliardi-in-biglietti-di-piccolo-taglio/]] del [[Post|http://www.ilpost.it/]] - [[Fermi|http://en.wikipedia.org/wiki/Fermi_problem]] e [[l'atomica|http://www2.vo.lu/homepages/geko/atom/report.htm]] - [[oro nero|http://talklikeaphysicist.com/2008/friday-fermi-problem-how-much-does-a-barrel-of-gold-cost-1m-10m-100m/]]
Mi piace giocare con le parole.
Non sarò bravo, ma mi piace comunque. Non per niente qui sul blog, appena sotto il titolo, c'è un "Bartezzaghi".
Il "Bartezzaghi" sarebbe quel giochino ('ccipicchia, non c'ho più il tiddler con le spiegazioni) [[codificato|http://www.bol.it/libri/scheda/ea978880615025.html]] da (appunto) Stefano Bartezzaghi e da me scoperto nel[[l'Elenco Telefonico di Atlantide|http://www.bol.it/libri/scheda/ea978880617339.html]].

://<<QOTD Random>>//

Poi ho partecipato con quattro cazzate al grande gioco del [[Fincipit|http://fincipit.it/]], del quale credo non si debba dire niente, se non ringraziare [[Eio|http://eiochemipensavo.diludovico.it/]] e [[Stark|http://stark.diludovico.it/]] per il duro lavoro di cernita delle centimillaia di proposte e per la loro costanza nel portare avanti il progetto del libro (e del sito, che non si è fermato).
I romanzi in sei parole, purtroppo, non hanno avuto lo stesso appeal del fincipit. Io ne ho scritti [[un paio|i draghi locopei]] (e ne ho uno fresco fresco di addirittura solo 5 parole: //Morì innumerevoli volte, quel giorno//.)
Dopodiché c'è stata e c'è ancora [[Surripedia|http://surripedia.tumblr.com/]]; un dizionario dell'assurdo, una raccolta di definizioni strambe, al quale sono onorato di partecipare (le definizioni che non fanno ridere sono le mie). Dagli altri due sodali attivi ([[Nikink|http://nikink.tumblr.com/]] e [[PuScic|http://puscic.tumblr.com/]]) è nata l'idea, infine, di [[Surripendance|http://surripendance.tumblr.com/]]. Tutto quello che è gioco di parole, ma non si tratta di una definizione da Surripedia lo mettiamo, lo metteremo, lì. Dai cartelli strani alle traduzioni maccheroniche (noodlish translations); dai neologismi ai calembour; dagli altri sette nani ai lapsus linguæ e quelli calami.
Una //dependance// di Surripedia che, ci auguriamo e già vediamo, andrà avanti anche da sola, ma sempre facendo da //pendant// alla prima. E una //danza surreale// tra siti, parole e immagini.
Però siamo pochi, se volete segnalare qualunque cosa pensiate possa entrare in ballo fatelo. Seguite i link nella pagina di [[Surripendance|http://surripendance.tumblr.com/]] o scrivete a me.
/***
|''Name:''|ForEachTiddlerPlugin|
|''Version:''|1.0.8 (2007-04-12)|
|''Source:''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|''Copyright:''|&copy; 2005-2007 [[abego Software|http://www.abego-software.de]]|
|''TiddlyWiki:''|1.2.38+, 2.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
!Description

Create customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.

''Syntax:'' 
|>|{{{<<}}}''forEachTiddler'' [''in'' //tiddlyWikiPath//] [''where'' //whereCondition//] [''sortBy'' //sortExpression// [''ascending'' //or// ''descending'']] [''script'' //scriptText//] [//action// [//actionParameters//]]{{{>>}}}|
|//tiddlyWikiPath//|The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.|
|//whereCondition//|(quoted) JavaScript boolean expression. May refer to the build-in variables {{{tiddler}}} and  {{{context}}}.|
|//sortExpression//|(quoted) JavaScript expression returning "comparable" objects (using '{{{<}}}','{{{>}}}','{{{==}}}'. May refer to the build-in variables {{{tiddler}}} and  {{{context}}}.|
|//scriptText//|(quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)|
|//action//|The action that should be performed on every selected tiddler, in the given order. By default the actions [[addToList|AddToListAction]] and [[write|WriteAction]] are supported. When no action is specified [[addToList|AddToListAction]]  is used.|
|//actionParameters//|(action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). <<tiddler [[JavaScript in actionParameters]]>>|
|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|

See details see [[ForEachTiddlerMacro]] and [[ForEachTiddlerExamples]].

!Revision history
* v1.0.8 (2007-04-12)
** Adapted to latest TiddlyWiki 2.2 Beta importTiddlyWiki API (introduced with changeset 2004). TiddlyWiki 2.2 Beta builds prior to changeset 2004 are no longer supported (but TiddlyWiki 2.1 and earlier, of cause)
* v1.0.7 (2007-03-28)
** Also support "pre" formatted TiddlyWikis (introduced with TW 2.2) (when using "in" clause to work on external tiddlers)
* v1.0.6 (2006-09-16)
** Context provides "viewerTiddler", i.e. the tiddler used to view the macro. Most times this is equal to the "inTiddler", but when using the "tiddler" macro both may be different.
** Support "begin", "end" and "none" expressions in "write" action
* v1.0.5 (2006-02-05)
** Pass tiddler containing the macro with wikify, context object also holds reference to tiddler containing the macro ("inTiddler"). Thanks to SimonBaird.
** Support Firefox 1.5.0.1
** Internal
*** Make "JSLint" conform
*** "Only install once"
* v1.0.4 (2006-01-06)
** Support TiddlyWiki 2.0
* v1.0.3 (2005-12-22)
** Features: 
*** Write output to a file supports multi-byte environments (Thanks to Bram Chen) 
*** Provide API to access the forEachTiddler functionality directly through JavaScript (see getTiddlers and performMacro)
** Enhancements:
*** Improved error messages on InternetExplorer.
* v1.0.2 (2005-12-10)
** Features: 
*** context object also holds reference to store (TiddlyWiki)
** Fixed Bugs: 
*** ForEachTiddler 1.0.1 has broken support on win32 Opera 8.51 (Thanks to BrunoSabin for reporting)
* v1.0.1 (2005-12-08)
** Features: 
*** Access tiddlers stored in separated TiddlyWikis through the "in" option. I.e. you are no longer limited to only work on the "current TiddlyWiki".
*** Write output to an external file using the "toFile" option of the "write" action. With this option you may write your customized tiddler exports.
*** Use the "script" section to define "helper" JavaScript functions etc. to be used in the various JavaScript expressions (whereClause, sortClause, action arguments,...).
*** Access and store context information for the current forEachTiddler invocation (through the build-in "context" object) .
*** Improved script evaluation (for where/sort clause and write scripts).
* v1.0.0 (2005-11-20)
** initial version

!Code
***/
//{{{

	
//============================================================================
//============================================================================
//		   ForEachTiddlerPlugin
//============================================================================
//============================================================================

// Only install once
if (!version.extensions.ForEachTiddlerPlugin) {

if (!window.abego) window.abego = {};

version.extensions.ForEachTiddlerPlugin = {
	major: 1, minor: 0, revision: 8, 
	date: new Date(2007,3,12), 
	source: "http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin",
	licence: "[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",
	copyright: "Copyright (c) abego Software GmbH, 2005-2007 (www.abego-software.de)"
};

// For backward compatibility with TW 1.2.x
//
if (!TiddlyWiki.prototype.forEachTiddler) {
	TiddlyWiki.prototype.forEachTiddler = function(callback) {
		for(var t in this.tiddlers) {
			callback.call(this,t,this.tiddlers[t]);
		}
	};
}

//============================================================================
// forEachTiddler Macro
//============================================================================

version.extensions.forEachTiddler = {
	major: 1, minor: 0, revision: 8, date: new Date(2007,3,12), provider: "http://tiddlywiki.abego-software.de"};

// ---------------------------------------------------------------------------
// Configurations and constants 
// ---------------------------------------------------------------------------

config.macros.forEachTiddler = {
	 // Standard Properties
	 label: "forEachTiddler",
	 prompt: "Perform actions on a (sorted) selection of tiddlers",

	 // actions
	 actions: {
		 addToList: {},
		 write: {}
	 }
};

// ---------------------------------------------------------------------------
//  The forEachTiddler Macro Handler 
// ---------------------------------------------------------------------------

config.macros.forEachTiddler.getContainingTiddler = function(e) {
	while(e && !hasClass(e,"tiddler"))
		e = e.parentNode;
	var title = e ? e.getAttribute("tiddler") : null; 
	return title ? store.getTiddler(title) : null;
};

config.macros.forEachTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	// config.macros.forEachTiddler.traceMacroCall(place,macroName,params,wikifier,paramString,tiddler);

	if (!tiddler) tiddler = config.macros.forEachTiddler.getContainingTiddler(place);
	// --- Parsing ------------------------------------------

	var i = 0; // index running over the params
	// Parse the "in" clause
	var tiddlyWikiPath = undefined;
	if ((i < params.length) && params[i] == "in") {
		i++;
		if (i >= params.length) {
			this.handleError(place, "TiddlyWiki path expected behind 'in'.");
			return;
		}
		tiddlyWikiPath = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the where clause
	var whereClause ="true";
	if ((i < params.length) && params[i] == "where") {
		i++;
		whereClause = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the sort stuff
	var sortClause = null;
	var sortAscending = true; 
	if ((i < params.length) && params[i] == "sortBy") {
		i++;
		if (i >= params.length) {
			this.handleError(place, "sortClause missing behind 'sortBy'.");
			return;
		}
		sortClause = this.paramEncode(params[i]);
		i++;

		if ((i < params.length) && (params[i] == "ascending" || params[i] == "descending")) {
			 sortAscending = params[i] == "ascending";
			 i++;
		}
	}

	// Parse the script
	var scriptText = null;
	if ((i < params.length) && params[i] == "script") {
		i++;
		scriptText = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the action. 
	// When we are already at the end use the default action
	var actionName = "addToList";
	if (i < params.length) {
	   if (!config.macros.forEachTiddler.actions[params[i]]) {
			this.handleError(place, "Unknown action '"+params[i]+"'.");
			return;
		} else {
			actionName = params[i]; 
			i++;
		}
	} 
	
	// Get the action parameter
	// (the parsing is done inside the individual action implementation.)
	var actionParameter = params.slice(i);


	// --- Processing ------------------------------------------
	try {
		this.performMacro({
				place: place, 
				inTiddler: tiddler,
				whereClause: whereClause, 
				sortClause: sortClause, 
				sortAscending: sortAscending, 
				actionName: actionName, 
				actionParameter: actionParameter, 
				scriptText: scriptText, 
				tiddlyWikiPath: tiddlyWikiPath});

	} catch (e) {
		this.handleError(place, e);
	}
};

// Returns an object with properties "tiddlers" and "context".
// tiddlers holds the (sorted) tiddlers selected by the parameter,
// context the context of the execution of the macro.
//
// The action is not yet performed.
//
// @parameter see performMacro
//
config.macros.forEachTiddler.getTiddlersAndContext = function(parameter) {

	var context = config.macros.forEachTiddler.createContext(parameter.place, parameter.whereClause, parameter.sortClause, parameter.sortAscending, parameter.actionName, parameter.actionParameter, parameter.scriptText, parameter.tiddlyWikiPath, parameter.inTiddler);

	var tiddlyWiki = parameter.tiddlyWikiPath ? this.loadTiddlyWiki(parameter.tiddlyWikiPath) : store;
	context["tiddlyWiki"] = tiddlyWiki;
	
	// Get the tiddlers, as defined by the whereClause
	var tiddlers = this.findTiddlers(parameter.whereClause, context, tiddlyWiki);
	context["tiddlers"] = tiddlers;

	// Sort the tiddlers, when sorting is required.
	if (parameter.sortClause) {
		this.sortTiddlers(tiddlers, parameter.sortClause, parameter.sortAscending, context);
	}

	return {tiddlers: tiddlers, context: context};
};

// Returns the (sorted) tiddlers selected by the parameter.
//
// The action is not yet performed.
//
// @parameter see performMacro
//
config.macros.forEachTiddler.getTiddlers = function(parameter) {
	return this.getTiddlersAndContext(parameter).tiddlers;
};

// Performs the macros with the given parameter.
//
// @param parameter holds the parameter of the macro as separate properties.
//				  The following properties are supported:
//
//						place
//						whereClause
//						sortClause
//						sortAscending
//						actionName
//						actionParameter
//						scriptText
//						tiddlyWikiPath
//
//					All properties are optional. 
//					For most actions the place property must be defined.
//
config.macros.forEachTiddler.performMacro = function(parameter) {
	var tiddlersAndContext = this.getTiddlersAndContext(parameter);

	// Perform the action
	var actionName = parameter.actionName ? parameter.actionName : "addToList";
	var action = config.macros.forEachTiddler.actions[actionName];
	if (!action) {
		this.handleError(parameter.place, "Unknown action '"+actionName+"'.");
		return;
	}

	var actionHandler = action.handler;
	actionHandler(parameter.place, tiddlersAndContext.tiddlers, parameter.actionParameter, tiddlersAndContext.context);
};

// ---------------------------------------------------------------------------
//  The actions 
// ---------------------------------------------------------------------------

// Internal.
//
// --- The addToList Action -----------------------------------------------
//
config.macros.forEachTiddler.actions.addToList.handler = function(place, tiddlers, parameter, context) {
	// Parse the parameter
	var p = 0;

	// Check for extra parameters
	if (parameter.length > p) {
		config.macros.forEachTiddler.createExtraParameterErrorElement(place, "addToList", parameter, p);
		return;
	}

	// Perform the action.
	var list = document.createElement("ul");
	place.appendChild(list);
	for (var i = 0; i < tiddlers.length; i++) {
		var tiddler = tiddlers[i];
		var listItem = document.createElement("li");
		list.appendChild(listItem);
		createTiddlyLink(listItem, tiddler.title, true);
	}
};

abego.parseNamedParameter = function(name, parameter, i) {
	var beginExpression = null;
	if ((i < parameter.length) && parameter[i] == name) {
		i++;
		if (i >= parameter.length) {
			throw "Missing text behind '%0'".format([name]);
		}
		
		return config.macros.forEachTiddler.paramEncode(parameter[i]);
	}
	return null;
}

// Internal.
//
// --- The write Action ---------------------------------------------------
//
config.macros.forEachTiddler.actions.write.handler = function(place, tiddlers, parameter, context) {
	// Parse the parameter
	var p = 0;
	if (p >= parameter.length) {
		this.handleError(place, "Missing expression behind 'write'.");
		return;
	}

	var textExpression = config.macros.forEachTiddler.paramEncode(parameter[p]);
	p++;

	// Parse the "begin" option
	var beginExpression = abego.parseNamedParameter("begin", parameter, p);
	if (beginExpression !== null) 
		p += 2;
	var endExpression = abego.parseNamedParameter("end", parameter, p);
	if (endExpression !== null) 
		p += 2;
	var noneExpression = abego.parseNamedParameter("none", parameter, p);
	if (noneExpression !== null) 
		p += 2;

	// Parse the "toFile" option
	var filename = null;
	var lineSeparator = undefined;
	if ((p < parameter.length) && parameter[p] == "toFile") {
		p++;
		if (p >= parameter.length) {
			this.handleError(place, "Filename expected behind 'toFile' of 'write' action.");
			return;
		}
		
		filename = config.macros.forEachTiddler.getLocalPath(config.macros.forEachTiddler.paramEncode(parameter[p]));
		p++;
		if ((p < parameter.length) && parameter[p] == "withLineSeparator") {
			p++;
			if (p >= parameter.length) {
				this.handleError(place, "Line separator text expected behind 'withLineSeparator' of 'write' action.");
				return;
			}
			lineSeparator = config.macros.forEachTiddler.paramEncode(parameter[p]);
			p++;
		}
	}
	
	// Check for extra parameters
	if (parameter.length > p) {
		config.macros.forEachTiddler.createExtraParameterErrorElement(place, "write", parameter, p);
		return;
	}

	// Perform the action.
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(textExpression, context);
	var count = tiddlers.length;
	var text = "";
	if (count > 0 && beginExpression)
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(beginExpression, context)(undefined, context, count, undefined);
	
	for (var i = 0; i < count; i++) {
		var tiddler = tiddlers[i];
		text += func(tiddler, context, count, i);
	}
	
	if (count > 0 && endExpression)
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(endExpression, context)(undefined, context, count, undefined);

	if (count == 0 && noneExpression) 
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(noneExpression, context)(undefined, context, count, undefined);
		

	if (filename) {
		if (lineSeparator !== undefined) {
			lineSeparator = lineSeparator.replace(/\\n/mg, "\n").replace(/\\r/mg, "\r");
			text = text.replace(/\n/mg,lineSeparator);
		}
		saveFile(filename, convertUnicodeToUTF8(text));
	} else {
		var wrapper = createTiddlyElement(place, "span");
		wikify(text, wrapper, null/* highlightRegExp */, context.inTiddler);
	}
};


// ---------------------------------------------------------------------------
//  Helpers
// ---------------------------------------------------------------------------

// Internal.
//
config.macros.forEachTiddler.createContext = function(placeParam, whereClauseParam, sortClauseParam, sortAscendingParam, actionNameParam, actionParameterParam, scriptText, tiddlyWikiPathParam, inTiddlerParam) {
	return {
		place : placeParam, 
		whereClause : whereClauseParam, 
		sortClause : sortClauseParam, 
		sortAscending : sortAscendingParam, 
		script : scriptText,
		actionName : actionNameParam, 
		actionParameter : actionParameterParam,
		tiddlyWikiPath : tiddlyWikiPathParam,
		inTiddler : inTiddlerParam, // the tiddler containing the <<forEachTiddler ...>> macro call.
		viewerTiddler : config.macros.forEachTiddler.getContainingTiddler(placeParam) // the tiddler showing the forEachTiddler result
	};
};

// Internal.
//
// Returns a TiddlyWiki with the tiddlers loaded from the TiddlyWiki of 
// the given path.
//
config.macros.forEachTiddler.loadTiddlyWiki = function(path, idPrefix) {
	if (!idPrefix) {
		idPrefix = "store";
	}
	var lenPrefix = idPrefix.length;
	
	// Read the content of the given file
	var content = loadFile(this.getLocalPath(path));
	if(content === null) {
		throw "TiddlyWiki '"+path+"' not found.";
	}
	
	var tiddlyWiki = new TiddlyWiki();

	// Starting with TW 2.2 there is a helper function to import the tiddlers
	if (tiddlyWiki.importTiddlyWiki) {
		if (!tiddlyWiki.importTiddlyWiki(content))
			throw "File '"+path+"' is not a TiddlyWiki.";
		tiddlyWiki.dirty = false;
		return tiddlyWiki;
	}
	
	// The legacy code, for TW < 2.2
	
	// Locate the storeArea div's
	var posOpeningDiv = content.indexOf(startSaveArea);
	var posClosingDiv = content.lastIndexOf(endSaveArea);
	if((posOpeningDiv == -1) || (posClosingDiv == -1)) {
		throw "File '"+path+"' is not a TiddlyWiki.";
	}
	var storageText = content.substr(posOpeningDiv + startSaveArea.length, posClosingDiv);
	
	// Create a "div" element that contains the storage text
	var myStorageDiv = document.createElement("div");
	myStorageDiv.innerHTML = storageText;
	myStorageDiv.normalize();
	
	// Create all tiddlers in a new TiddlyWiki
	// (following code is modified copy of TiddlyWiki.prototype.loadFromDiv)
	var store = myStorageDiv.childNodes;
	for(var t = 0; t < store.length; t++) {
		var e = store[t];
		var title = null;
		if(e.getAttribute)
			title = e.getAttribute("tiddler");
		if(!title && e.id && e.id.substr(0,lenPrefix) == idPrefix)
			title = e.id.substr(lenPrefix);
		if(title && title !== "") {
			var tiddler = tiddlyWiki.createTiddler(title);
			tiddler.loadFromDiv(e,title);
		}
	}
	tiddlyWiki.dirty = false;

	return tiddlyWiki;
};


	
// Internal.
//
// Returns a function that has a function body returning the given javaScriptExpression.
// The function has the parameters:
// 
//	 (tiddler, context, count, index)
//
config.macros.forEachTiddler.getEvalTiddlerFunction = function (javaScriptExpression, context) {
	var script = context["script"];
	var functionText = "var theFunction = function(tiddler, context, count, index) { return "+javaScriptExpression+"}";
	var fullText = (script ? script+";" : "")+functionText+";theFunction;";
	return eval(fullText);
};

// Internal.
//
config.macros.forEachTiddler.findTiddlers = function(whereClause, context, tiddlyWiki) {
	var result = [];
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(whereClause, context);
	tiddlyWiki.forEachTiddler(function(title,tiddler) {
		if (func(tiddler, context, undefined, undefined)) {
			result.push(tiddler);
		}
	});
	return result;
};

// Internal.
//
config.macros.forEachTiddler.createExtraParameterErrorElement = function(place, actionName, parameter, firstUnusedIndex) {
	var message = "Extra parameter behind '"+actionName+"':";
	for (var i = firstUnusedIndex; i < parameter.length; i++) {
		message += " "+parameter[i];
	}
	this.handleError(place, message);
};

// Internal.
//
config.macros.forEachTiddler.sortAscending = function(tiddlerA, tiddlerB) {
	var result = 
		(tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) 
			? 0
			: (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
			   ? -1 
			   : +1; 
	return result;
};

// Internal.
//
config.macros.forEachTiddler.sortDescending = function(tiddlerA, tiddlerB) {
	var result = 
		(tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) 
			? 0
			: (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
			   ? +1 
			   : -1; 
	return result;
};

// Internal.
//
config.macros.forEachTiddler.sortTiddlers = function(tiddlers, sortClause, ascending, context) {
	// To avoid evaluating the sortClause whenever two items are compared 
	// we pre-calculate the sortValue for every item in the array and store it in a 
	// temporary property ("forEachTiddlerSortValue") of the tiddlers.
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(sortClause, context);
	var count = tiddlers.length;
	var i;
	for (i = 0; i < count; i++) {
		var tiddler = tiddlers[i];
		tiddler.forEachTiddlerSortValue = func(tiddler,context, undefined, undefined);
	}

	// Do the sorting
	tiddlers.sort(ascending ? this.sortAscending : this.sortDescending);

	// Delete the temporary property that holds the sortValue.	
	for (i = 0; i < tiddlers.length; i++) {
		delete tiddlers[i].forEachTiddlerSortValue;
	}
};


// Internal.
//
config.macros.forEachTiddler.trace = function(message) {
	displayMessage(message);
};

// Internal.
//
config.macros.forEachTiddler.traceMacroCall = function(place,macroName,params) {
	var message ="<<"+macroName;
	for (var i = 0; i < params.length; i++) {
		message += " "+params[i];
	}
	message += ">>";
	displayMessage(message);
};


// Internal.
//
// Creates an element that holds an error message
// 
config.macros.forEachTiddler.createErrorElement = function(place, exception) {
	var message = (exception.description) ? exception.description : exception.toString();
	return createTiddlyElement(place,"span",null,"forEachTiddlerError","<<forEachTiddler ...>>: "+message);
};

// Internal.
//
// @param place [may be null]
//
config.macros.forEachTiddler.handleError = function(place, exception) {
	if (place) {
		this.createErrorElement(place, exception);
	} else {
		throw exception;
	}
};

// Internal.
//
// Encodes the given string.
//
// Replaces 
//	 "$))" to ">>"
//	 "$)" to ">"
//
config.macros.forEachTiddler.paramEncode = function(s) {
	var reGTGT = new RegExp("\\$\\)\\)","mg");
	var reGT = new RegExp("\\$\\)","mg");
	return s.replace(reGTGT, ">>").replace(reGT, ">");
};

// Internal.
//
// Returns the given original path (that is a file path, starting with "file:")
// as a path to a local file, in the systems native file format.
//
// Location information in the originalPath (i.e. the "#" and stuff following)
// is stripped.
// 
config.macros.forEachTiddler.getLocalPath = function(originalPath) {
	// Remove any location part of the URL
	var hashPos = originalPath.indexOf("#");
	if(hashPos != -1)
		originalPath = originalPath.substr(0,hashPos);
	// Convert to a native file format assuming
	// "file:///x:/path/path/path..." - pc local file --> "x:\path\path\path..."
	// "file://///server/share/path/path/path..." - FireFox pc network file --> "\\server\share\path\path\path..."
	// "file:///path/path/path..." - mac/unix local file --> "/path/path/path..."
	// "file://server/share/path/path/path..." - pc network file --> "\\server\share\path\path\path..."
	var localPath;
	if(originalPath.charAt(9) == ":") // pc local file
		localPath = unescape(originalPath.substr(8)).replace(new RegExp("/","g"),"\\");
	else if(originalPath.indexOf("file://///") === 0) // FireFox pc network file
		localPath = "\\\\" + unescape(originalPath.substr(10)).replace(new RegExp("/","g"),"\\");
	else if(originalPath.indexOf("file:///") === 0) // mac/unix local file
		localPath = unescape(originalPath.substr(7));
	else if(originalPath.indexOf("file:/") === 0) // mac/unix local file
		localPath = unescape(originalPath.substr(5));
	else // pc network file
		localPath = "\\\\" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\\");	
	return localPath;
};

// ---------------------------------------------------------------------------
// Stylesheet Extensions (may be overridden by local StyleSheet)
// ---------------------------------------------------------------------------
//
setStylesheet(
	".forEachTiddlerError{color: #ffffff;background-color: #880000;}",
	"forEachTiddler");

//============================================================================
// End of forEachTiddler Macro
//============================================================================


//============================================================================
// String.startsWith Function
//============================================================================
//
// Returns true if the string starts with the given prefix, false otherwise.
//
version.extensions["String.startsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.startsWith = function(prefix) {
	var n =  prefix.length;
	return (this.length >= n) && (this.slice(0, n) == prefix);
};



//============================================================================
// String.endsWith Function
//============================================================================
//
// Returns true if the string ends with the given suffix, false otherwise.
//
version.extensions["String.endsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.endsWith = function(suffix) {
	var n = suffix.length;
	return (this.length >= n) && (this.right(n) == suffix);
};


//============================================================================
// String.contains Function
//============================================================================
//
// Returns true when the string contains the given substring, false otherwise.
//
version.extensions["String.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.contains = function(substring) {
	return this.indexOf(substring) >= 0;
};

//============================================================================
// Array.indexOf Function
//============================================================================
//
// Returns the index of the first occurance of the given item in the array or 
// -1 when no such item exists.
//
// @param item [may be null]
//
version.extensions["Array.indexOf"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.indexOf = function(item) {
	for (var i = 0; i < this.length; i++) {
		if (this[i] == item) {
			return i;
		}
	}
	return -1;
};

//============================================================================
// Array.contains Function
//============================================================================
//
// Returns true when the array contains the given item, otherwise false. 
//
// @param item [may be null]
//
version.extensions["Array.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.contains = function(item) {
	return (this.indexOf(item) >= 0);
};

//============================================================================
// Array.containsAny Function
//============================================================================
//
// Returns true when the array contains at least one of the elements 
// of the item. Otherwise (or when items contains no elements) false is returned.
//
version.extensions["Array.containsAny"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.containsAny = function(items) {
	for(var i = 0; i < items.length; i++) {
		if (this.contains(items[i])) {
			return true;
		}
	}
	return false;
};


//============================================================================
// Array.containsAll Function
//============================================================================
//
// Returns true when the array contains all the items, otherwise false.
// 
// When items is null false is returned (even if the array contains a null).
//
// @param items [may be null] 
//
version.extensions["Array.containsAll"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.containsAll = function(items) {
	for(var i = 0; i < items.length; i++) {
		if (!this.contains(items[i])) {
			return false;
		}
	}
	return true;
};


} // of "install only once"

// Used Globals (for JSLint) ==============
// ... DOM
/*global 	document */
// ... TiddlyWiki Core
/*global 	convertUnicodeToUTF8, createTiddlyElement, createTiddlyLink, 
			displayMessage, endSaveArea, hasClass, loadFile, saveFile, 
			startSaveArea, store, wikify */
//}}}


/***
!Licence and Copyright
Copyright (c) abego Software ~GmbH, 2005 ([[www.abego-software.de|http://www.abego-software.de]])

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.

Neither the name of abego Software nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
***/
/***
|''Name:''|GenerateRssByTagPlugin|
|''Description:''|Only tiddlers with a specific tag are inluded in the RSSFeed. If no tiddlers are selected then works as before. (see ticket #270: http://trac.tiddlywiki.org/tiddlywiki/ticket/270). <br>RssTag: <<option txtRssTag>>|
|''Version:''|1.0.2|
|''Date:''|Apr 20, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#GenerateRssByTagPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''[[License]]:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.GenerateRssByTagPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 20, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0 (Beta 5)'
};

if (!window.bidix) window.bidix = {}; // bidix namespace

bidix.generateRssByTag = function()
{
	var s = [];
	var d = new Date();
	var u = store.getTiddlerText("SiteUrl");
	// Assemble the header
	s.push("<" + "?xml version=\"1.0\"" + " encoding='UTF-8' " + "?" + ">");
	s.push("<rss version=\"2.0\">");
	s.push("<channel>");
	s.push("<title" + ">" + wikifyPlain("SiteTitle").htmlEncode() + "</title" + ">");
	if(u)
		s.push("<link>" + u.htmlEncode() + "</link>");
	s.push("<description>" + wikifyPlain("SiteSubtitle").htmlEncode() + "</description>");
	s.push("<language>en-us</language>");
	s.push("<copyright>Copyright " + d.getFullYear() + " " + config.options.txtUserName.htmlEncode() + "</copyright>");
	s.push("<pubDate>" + d.toGMTString() + "</pubDate>");
	s.push("<lastBuildDate>" + d.toGMTString() + "</lastBuildDate>");
	s.push("<docs>http://blogs.law.harvard.edu/tech/rss</docs>");
	s.push("<generator>TiddlyWiki " + version.major + "." + version.minor + "." + version.revision + "</generator>");
	// The body
	var tiddlers;
	if (config.options.txtRssTag && store.getTaggedTiddlers(config.options.txtRssTag).length > 0)
		tiddlers = store.getTaggedTiddlers(config.options.txtRssTag,"modified");
	else
		tiddlers = store.getTiddlers("modified","[[excludeLists]]");
	var n = config.numRssItems > tiddlers.length ? 0 : tiddlers.length-config.numRssItems;
	for (var t=tiddlers.length-1; t>=n; t--)
		s.push(tiddlers[t].saveToRss(u));
	// And footer
	s.push("</channel>");
	s.push("</rss>");
	// Save it all
	return s.join("\n");
};

//
// Initializations
//
bidix.generateRss = generateRss; // backup core version
generateRss = bidix.generateRssByTag; // install new one
config.options.txtRssTag = "*blog*"; // default RssTag. use <<option txtRssTag>> to overwritte
merge(config.optionsDesc,{txtRssTag: "Only tiddlers with this tag will be included in the RSS Feed."});
//}}}
<html><center>
Qui si chiude. Questa volta per davvero.

Ma non pensate di esservi liberati di me.

Mi sono solo trasferito [[QUI|http://www.corax.me]].

Vi aspetto, se volete passare a trovarmi.

</html>
<<forEachTiddler 
where 'tiddler.tags.contains("*blog*") '
sortBy 'tiddler.created' descending 
script
 '
 function getFirstLine(s) {
 var m = s.match(/\s*(.*)/);
 return m != null && m.length >= 1 ? m[1] : "";
 }
 '
write '(index > 0 && index < 31) ? 
"@@font-size(10pt):("+tiddler.created.formatString("DD/MM")+") - [["+tiddler.title+"]] - "+getFirstLine(tiddler.text)+"(...)@@\n" : ""' >>
È arrivata l'estate. Speriamo che rimanga per un po'.
Ma intanto si può dire: "finalmente".
Finalmente c'è il sole e, finché non inizio a lavorare di [[notte|Tenera è la notte]], posso approfittarne per togliermi di dosso un po' di biancume.
Finalmente è caldo; si può mangiare il gelato...mmmhhh...gelatooo!
Finalmente è estate: le ragazze mettono i vestiti leggeri.

Lo vedete che non sono [[così|Brontolo]] brontolone?
/***
|''Name:''|HTMLFormattingPlugin|
|''Source:''|http://www.TiddlyTools.com/#HTMLFormattingPlugin|
|''Author:''|Eric Shulman - ELS Design Studios|
|''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|''~CoreVersion:''|2.0.10|

The shorthand Wiki-style formatting syntax of ~TiddlyWiki is very convenient and enables most content to be reasonably well presented. However, there are times when tried-and-true HTML formatting syntax allows more more precise control of the content display.

When HTML formatting syntax is embedded within a tiddler (in between {{{<}}}{{{html>}}} and {{{<}}}{{{/html>}}} markers) TiddlyWiki passes this content to the browser for processing as 'native' HTML. However, TiddlyWiki does not also process the HTML source content for any embedded wiki-formatting syntax it may contain. This means that while you can use HTML formatted content, you cannot mix wiki-formatted content within the HTML formatting.
!!!!!Usage
<<<
The ~HTMLFormatting plugin allows you to freely ''mix wiki-style formatting syntax within HTML formatted content'' by extending the action of the standard TiddlyWiki formatting handler.

When a tiddler is about to be displayed, ~TiddlyWiki looks for tiddler content contained within ''<{{{html}}}>'' and ''<{{{/html}}}>'' HTML tags. This content (if any) is passed directly to the browser's internal "rendering engine" to process as ~HTML-formatted content. Once the HTML formatting has been processed, all the pieces of text occuring in between the HTML formatting are then processed by the ~TiddlyWiki rendering engine, one piece at a time, so that normal wiki-style formatting can be applied to the individual text pieces.
<<<
!!!!!Line breaks
<<<
One major difference between Wiki formatting and HTML formatting is how "line breaks" are processed. Wiki formatting treats all line breaks as literal content to be displayed //as-is//. However, because HTML normally ignores line breaks and actually processes them as simple "word separators" instead, many people who write HTML include extra line breaks in their documents, just to make the "source code" easier to read.

Even though you can use HTML tags within your tiddler content, the default treatment for line breaks still follows the Wiki-style rule (i.e., all new lines are displayed as-is). When adding HTML content to a tiddler (especially if you cut-and-paste it from another web page), you should take care to avoid adding extra line breaks to the text.

If removing all the extra line breaks from your HTML content would be a big hassle, you can quickly //override the default Wiki-style line break rule// so that the line breaks use the standard HTML rules instead. Placing a ''<{{{hide linebreaks}}}>'' tag within the tiddler's HTML content changes all line breaks to spaces before rendering the content, so that the literal line breaks will be processed as simple word-breaks instead.

Note: this does //not// alter the actual tiddler content that is stored in the document, just the manner in which it is displayed. Any line breaks contained in the tiddler will still be there when you edit its content. Also, to include a literal line break when the ''<{{{hide linebreaks}}}>'' tag is present, you will need to use a ''<{{{br}}}>'' or ''<{{{p}}}>'' HTML tag instead of simply typing a line break.
<<<
!!!!!How it works
<<<
The TW core support for HTML does not let you put ANY wiki-style syntax (including TW macros) *inside* the {{{<html>...</html>}}} block. Everything between {{{<html>}}} and {{{</html>}}} is handed to the browser for processing and that is it. Fortunately, this plugin ADDS the ability to let you put wiki-syntax (including macros) inside the html. It does this by first giving the tiddler source content to the browser to process the HTML, and then handling any wiki-based syntax that remains afterward.

However, not all wiki syntax can be safely passed through the browser's parser. Specifically, any TW macros inside the HTML will get 'eaten' by the browser since the macro brackets, {{{<<...>>}}} use the "<" and ">" that normally delimit the HTML/XML syntax recognized by the browser's parser.

Similarly, you can't use InlineJavascript within the HTML because the {{{<script>...</script>}}} syntax will also be consumed by the browser and there will be nothing left to process afterward. Note: unfortunately, even though the browser removes the {{{<script>...</script>}}} sequence, it doesn't actually execute the embedded javascript code that it removes, so any scripts contained inside of <html> blocks in TW are currently being ignored. :-(

As a work-around to allow TW *macros* (but not inline scripts) to exist inside of <html> formatted blocks of content, the plugin first converts the {{{<<}}} and {{{>>}}} into "%%(" and ")%%", making them "indigestible" so they can pass unchanged through the belly of the beast (the browser's HTML parser).

After the browser has done its job, the wiki syntax sequences (including the "undigested" macros) are contained in #text nodes in the browser-generated DOM elements. The plugin then recursively locates and processes each #text node, converts the %%( and )%% back into {{{<<}}} and {{{>>}}}, passes the result to wikify() for further rendering of the wiki-formatted syntax into a containing SPAN that replaces the previous #text node. At the end of this process, none of the encoded %%( and )%% sequences remain in the rendered tiddler output.
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''HTMLFormattingPlugin'' (tagged with <<tag systemConfig>>)
^^documentation and javascript for HTMLFormatting handling^^
<<<
!!!!!Revision History
<<<
''2006.09.10 [2.1.4]'' update formatter for 2.1 compatibility (use this.lookaheadRegExp instead of temp variable)
''2006.05.28 [2.1.3]'' in wikifyTextNodes(), decode the *value* of TEXTAREA nodes, but don't wikify() its children. (thanks to "ayj" for bug report)
''2006.02.19 [2.1.2]'' in wikifyTextNodes(), put SPAN element into tiddler DOM (replacing text node), BEFORE wikifying the text content. This ensures that the 'place' passed to any macros is correctly defined when the macro is evaluated, so that calls to story.findContainingTiddler(place) will work as expected. (Thanks for bug report from GeoffSlocock)
''2006.02.05 [2.1.1]'' wrapped wikifier hijack in init function to eliminate globals and avoid FireFox 1.5.0.1 crash bug when referencing globals
''2005.12.01 [2.1.0]'' don't wikify #TEXT nodes inside SELECT and TEXTAREA elements
''2005.11.06 [2.0.1]'' code cleanup
''2005.10.31 [2.0.0]'' replaced hijack wikify() with hijack config.formatters["html"] and simplified recursive WikifyTextNodes() code
''2005.10.09 [1.0.2]'' combined documentation and code into a single tiddler
''2005.08.05 [1.0.1]'' moved HTML and CSS definitions into plugin code instead of using separate tiddlers
''2005.07.26 [1.0.1]'' Re-released as a plugin. Added <{{{html}}}>...</{{{nohtml}}}> and <{{{hide newlines}}}> handling
''2005.07.20 [1.0.0]'' Initial Release (as code adaptation)
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.HTMLFormatting = {major: 2, minor: 1, revision: 4, date: new Date(2006,9,10)};

// find the formatter for HTML and replace the handler
initHTMLFormatter();
function initHTMLFormatter()
{
 for (var i=0; i<config.formatters.length && config.formatters[i].name!="html"; i++);
 if (i<config.formatters.length) config.formatters[i].handler=function(w) {
 if (!this.lookaheadRegExp) // fixup for TW2.0.x
 this.lookaheadRegExp = new RegExp(this.lookahead,"mg");
 this.lookaheadRegExp.lastIndex = w.matchStart;
 var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
 if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
 var html=lookaheadMatch[1];
 // optionally suppress wiki-style literal handling of newlines
 // strip any carriage returns added by Internet Explorer's textarea edit field
 // encode newlines as \n so Internet Explorer's HTML parser won't eat them
 // encode macro brackets (<< and >>) so HTML parser won't eat them
 if (html.indexOf('<hide linebreaks>')!=-1) html=html.replace(regexpNewLine,' ');
 html=html.replace(regexpCarriageReturn,'');
 html=html.replace(regexpNewLine,'\\n');
 html=html.replace(/<</g,'%%(').replace(/>>/g,')%%');
 // create span to hold HTML
 // parse HTML and normalize the results
 // walk node tree and call wikify() on each text node
 var e = createTiddlyElement(w.output,"span");
 e.innerHTML=html;
 e.normalize(); 
 wikifyTextNodes(e);
 // advance to next parse position
 w.nextMatch = this.lookaheadRegExp.lastIndex;
 }
 }
}

// wikify text nodes remaining after HTML content is processed (pre-order recursion)
function wikifyTextNodes(theNode)
{
 // textarea node doesn't get wikified, just decoded... 
 if (theNode.nodeName.toLowerCase()=='textarea')
 theNode.value=theNode.value.replace(/\%%\(/g,'<<').replace(/\)\%%/g,'>>').replace(regexpBackSlashEn,'\n');
 else for (var i=0;i<theNode.childNodes.length;i++) {
 var theChild=theNode.childNodes.item(i);
 if (theChild.nodeName.toLowerCase()=='option') continue;
 if (theChild.nodeName.toLowerCase()=='select') continue;
 wikifyTextNodes(theChild);
 if (theChild.nodeName=='#text') {
 var txt=theChild.nodeValue;
 // decode macro brackets and newlines
 txt=txt.replace(/\%%\(/g,'<<').replace(/\)\%%/g,'>>').replace(regexpBackSlashEn,'\n');
 // replace text node with wikified() span
 var newNode=createTiddlyElement(null,"span");
 theNode.replaceChild(newNode,theChild);
 wikify(txt,newNode);
 }
 }
}
//}}}
|bgcolor(#eee):<<forEachTiddler where 'tiddler.tags.contains("*blog*")' sortBy 'tiddler.created' descending script ' function getFirstLines(s, count) {var m = s.match(/\s*(.*)/g); var output = ""; if(m) { if(m.length < count)  count = m.length;  for(var i = 0; i < count; i++) output +="\r"+m[i];} return output; } 'write '(index < 1) ? "@@color(#999):font-size(10pt):L&#39;ultimo post borborigmato da [["+tiddler.modifier+"]] il "+tiddler.modified.formatString("DD MMM")+":@@\n*@@font-size(20pt):font-weight(bold):[["+tiddler.title+"|"+tiddler.title+"]]@@\n@@font-size(10pt):"+getFirstLines(tiddler.text,200)+"@@\n\n:@@font-size(10pt):font-weight(bold):[[commenta]]@@\n" : ""'>>|| @@color(#f90):font-size(14pt):''Fermat un moment''@@ |
|~|~|<html><center>//Dispongo di //meravigliosi// argomenti dei quali//<br>//parlare che non possono essere contenuti//<br>//nel margine troppo stretto della pagina.//<br><br><iframe frameborder="0" allowtransparency="true" width="360px" height="300px" src="http://www.retaggr.com/Embed/corax"></iframe></html> |
|>|>|!gli ultimi post<br><<forEachTiddler where 'tiddler.tags.contains("*blog*") 'sortBy 'tiddler.created' descending write '(index >= 1 && index < 6) ? "("+tiddler.created.formatString("0DD/0MM")+") - [["+tiddler.title+"]]\n" : ""' >>@@<br>@@''<<search>>''&emsp;&bull;&emsp;''[[info|Notizie]]''&emsp;&bull;&emsp;''[[RSS|http://feeds.feedburner.com/HuginnOgMuninn]]''|
|borderless|k
[[Meta|AreaAutori]]
[[Come diavolo ci si muove qui?]]
Tredici chilometri da cancello a cancello. Non sono poi molti per andare al lavoro, conosco gente che ne fa molti di più. Non sono molti neppure se si tratta di tredici chilometri di strada di montagna, tutta curve e tornanti. Questi tredici chilometri (tredici all'andata e altrettanti al ritorno) sono poi quindici minuti, il tempo di 4-5 canzoni; eppure questi chilometri, questi minuti, sono un momento di preparazione prima e di rilassamento poi rispetto al lavoro.
Capita che una sera d'inverno, arrabbiato col mondo per una giornata storta al lavoro, scendendo per questa strada vedi le montagne bianche di neve illuminate a giorno dalla luna piena e un capriolo che, incurante del freddo, ti attraversa la strada a pochi metri. Magari gli bestemmi contro perché quasi lo investi, ma poi ti passa. E passa anche l'incazzatura del lavoro perché lo spettacolo, già visto mille volte, è sempre nuovo e ti cambia, ti rilassa.
Certo il più delle volte non è così bello. Quasi ogni giorno che Dio manda in terra tocca fare questa strada su e giù. Come un postino statunitense né la pioggia né la neve, né l'oscurità mi fermano. E fare attenzione al tornante 7, dove l'acqua scorre e si ghiaccia, e al tornante 5, liscio per la gomma degli pneumatici dei camion. E appunto attenzione ai camion, alle corriere, ad autotreni, autoarticolati e autoblindo. Attenzione a trattori, ape cross, spargisale e spartineve. A padani col "terror vacui" che viaggiano in mezzo alla strada e gipponi che sorpassano anche in curva, non potendoti passare sopra.
Tredici chilometri durante i quali faccio un personale training per arrivare pronto al lavoro, sapendo già che appena entrato dalla porta ci sarà un imprevisto ad attendermi.
Quindici minuti durante i quali cerco di dimenticare, fino a domani, tutto quello che è successo, bello o brutto, sapendo già che uscendo con gli amici ci sarà da raccontare ogni aneddoto per filo e per segno.
Non è niente, in una giornata è un quarto d'ora, ma è il mio quarto d'ora e me lo godo.
//tutto quello che segue è vero. ma non è tutto.//

[...] si avvicinò con un sorriso alla mappa del paese attaccata muro. "Avete fatto un buon lavoro trovando il paese e due dei tre 'sigilli'. Questo con la puntina gialla è il primo punto che avete trovato, la chiesa di san Vigilio; la verde indica la chiesa di san Gerolamo e questo" disse piantando sulla mappa una puntina rossa "questo è il terzo punto che cercate, san Giacomo."
"Ma qui dice che si tratta della chiesa di san Lorenzo"
"Giacomo travestito da Lorenzo." disse il professore "Questa chiesa è la più nuova delle tre; dedicata a san Lorenzo, sebbene il primo patrono del paese fosse san Giacomo; anche adesso rappresentato in una statua ed un affresco. Costruita su una precedente cappella, sicuramente dedicata al nostro Giacomo. Curioso. Giacomo, capo della chiesa di Gerusalemme, sostituito da Lorenzo, uomo di fiducia del papa di Roma."
"Volete dire..."
"Niente, ho solo detto che è 'curioso', come curiosa è la scelta di Gerolamo. Visse in Palestina, condivide il nome con Gerusalemme, studiò l'ebraico e fu uno dei pochi a poter leggere i veri vangeli in lingua originale per poterli tradurre in latino su ordine del papa. Un santo poco alpino, fuori luogo da queste parti."
"Se ancora non siete convinti" disse battendo sulla puntina rossa "che questo sia il terzo sigillo che cerchiamo guardate. &Egrave; in linea retta con san Gerolamo e con l'intersezione dei fiumi, quel punto che vi ha portato ad individuare il paese. Crea un angolo di esattamente 90 gradi con gli altri punti e guardate" prese un righello "la distanza tra giallo e rosso è il doppio di quella tra rosso e verde. I lati del triangolo sono in rapporto tra loro come 1, 2 e &radic;5. Vi dicono niente questi numeri?"
"Veramente..."
"Lo immaginavo. Sono le cifre che compongono la formula della 'sezione aurea', nota anche come 'la divina proporzione'. Un caso anche questo, vero?"
"Fantastico! Ma ora che abbiamo trovato i tre sigilli indicati nel codice?"
"State attenti" si diresse alla lavagna e scrisse:
//Iacobus//, "questo è il nome latino di Giacomo..."
//Hieronymus//, "...questo è Gerolamo ed infine..."
//Vigilius//, "...Vigilio."

Poi cerchiò le iniziali dei tre nomi: "I, H, V. le prime tre lettere del tetragrammaton, il nome nascosto di Dio. Il codice serviva per risalire a tre sigilli. Con l'aiuto di questi, adesso dovrete trovare il quarto. Trovate la quarta lettera del nome e troverete la risposta. O un altro enigma." 

[img[http://static.zooomr.com/images/9228144_8de5b1a80e_o.jpg]]

&copy; //a differenza del resto del blog, questo articolo è protetto da copyright. Se qualcuno dovesse un giorno fare soldi con un best seller alla Dan Brown, sfruttando queste idee, quel qualcuno sarò io.//
La scorsa notte ho fatto un sogno, non succedeva [[da un po'|L%27interpretazione%20dei%20sogni]].
Scendevo in bicicletta da ripidi e stretti vicoli di paese. Ero piccolo, diec'anni, e con un amico, non so chi. Passavamo davanti a porte di legno, scalini di pietra, su un pavè nero e scivoloso. Non so dove fossi; il posto in sogno mi era famigliare, ma non saprei dire se sia vero o meno. Il mio paese è quasi tutto in piano e da noi si usa il granito, non altro.

Ad un certo punto appaiamo (nel senso di apparire, non che uniamo cose a due a due) in una libreria. Anche qui è tutto vecchio, una grande stanza rettangolare, lunga e stretta. La porta con la vernice scrostata, la parete lunga coperta da scaffali di legno pieni di libri, la parete opposta all'entrata è un unico finestrone impolverato. Il pavimento di legno grezzo. Alla sinistra della porta d'ingresso un muretto che funge da bancone e cassa; coperto di fogli e pile di libri.

In fondo alla stanza, dando le spalle alla finestra, seduto in poltrona c'è il libraio. Un vecchietto alto e magro, con camicia chiara e gilet, baffi pepe e sale, pochi capelli. Sembra in bianco e nero, come un vecchio film. Ci avviciniamo, sta leggendo un libro, vecchio anche questo, di quelli con la carta ingiallita e cotta dall'aria e dal tempo. Secca, con i bordi che si spaccano invece di strapparsi. La sovracopertina di carta leggera, bianca, con una cornice a motivi triangolari neri. È un romanzo russo, come gli altri vicini alla poltrona. In sogno so che l'ultima volta che ero stato lì (adesso sono solo, l'amico sconosciuto non c'è più, o forse è solo defilato) gli autori erano sudamericani.

So che spesso vado in quella libreria, il vecchio mi racconta di questo e quello scrittore, mi presta un libro che non mi posso permettere, noi ragazzi del paese andiamo a trovarlo.

Entra una signora che sembra un giallo nella brughiera inglese. Mantellina corta, stivali di gomma, si toglie il cappuccio entrando. Potrebbe essere la governante dei Baskerville. Mancano fulmine e tuono. La riconosco: è, nella realtà, del mio paese; cosa ci fa nel MIO sogno?
Chiede al libraio "Quanti?" le risponde "uno." schifata gli dice "solo uno?" il libraio fa una faccia (rivolta più a me che a lei) come a dire "cosa t'aspettavi?".
A quanto pare aveva portato dei libri, religiosi, immagino, conoscendo la persona, da rivendere e il risultato, grasso che cola, è stato di un libro venduto. Lei se ne va bonfonchiando e il libraio si rimette a leggere il suo romanzo russo.
 
Poi niente, mi sono svegliato. Mica devono avere una logica o una morale, i sogni.
+++[PLAY >]
<<player http://corax.altervista.org/immagini/Bumblebee.mp3 100 20>>
===


Secondo gli studiosi di aerodinamica il [[bombo|http://it.wikipedia.org/wiki/Bombus]] sarebbe incapace di volare, in quanto non avrebbe il giusto rapporto tra peso, dimensioni delle ali e numero di battiti al secondo.

Evidentemente nessuno si è mai preoccupato di avvertirlo, e lui continua indisturbato a volare.
<<include "http://corax.altervista.org/2006.html">>
<<include "http://corax.altervista.org/2007.html">>
<<include "http://corax.altervista.org/2008.html">>
/***
|''Name:''|abego.IncludePlugin|
|''Version:''|1.0.0 (2007-02-08)|
|''Type:''|plugin|
|''Source:''|http://tiddlywiki.abego-software.de/#IncludePlugin|
|''Author:''|Udo Borkowski (ub [at] abego-software [dot] de)|
|''Documentation:''|[[IncludePlugin Documentation|http://tiddlywiki.abego-software.de/#%5B%5BIncludePlugin%20Documentation%5D%5D]]|
|''Community:''|([[del.icio.us|http://del.icio.us/post?url=http://tiddlywiki.abego-software.de/index.html%23IncludePlugin]]) ([[Support|http://groups.google.com/group/TiddlyWiki]])|
|''Copyright:''|&copy; 2007 [[abego Software|http://www.abego-software.de]]|
|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|''~CoreVersion:''|2.1.3|
|''Browser:''|Firefox 1.5.0.9 or better; Internet Explorer 6.0|
***/
/***
This plugin's source code is compressed (and hidden). Use this [[link|http://tiddlywiki.abego-software.de/archive/IncludePlugin/Plugin-Include-src.1.0.0.js]] to get the readable source code.
***/
///%
if(!window.abego){window.abego={};}var invokeLater=function(_1,_2,_3){return abego.invokeLater?abego.invokeLater(_1,_2,_3):setTimeout(_1,_2);};abego.loadFile=function(_4,_5,_6){var _7=function(_8,_9,_a,_b,_c){return _8?_5(_a,_b,_9):_5(undefined,_b,_9,"Error loading %0".format([_b]));};if(_4.search(/^((http(s)?)|(file)):/)!=0){if(_4.search(/^((.\:\\)|(\\\\)|(\/))/)==0){_4="file://"+_4;}else{var _d=document.location.toString();var i=_d.lastIndexOf("/");_4=_d.substr(0,i+1)+_4;}_4=_4.replace(/\\/mg,"/");}loadRemoteFile(_4,_7,_6);};abego.loadTiddlyWikiStore=function(_f,_10,_11,_12){var _13=function(_14,_15){if(_12){_12(_14,"abego.loadTiddlyWikiStore",_15,_f,_11);}};var _16=function(_17,_18){var _19=_18.indexOf(startSaveArea);var _1a=_18.indexOf("<!--POST-BODY-END--"+">");var _1b=_18.lastIndexOf(endSaveArea,_1a==-1?_18.length:_1a);if((_19==-1)||(_1b==-1)){return config.messages.invalidFileError.format([_f]);}var _1c="<html><body>"+_18.substring(_19,_1b+endSaveArea.length)+"</body></html>";var _1d=document.createElement("iframe");_1d.style.display="none";document.body.appendChild(_1d);var doc=_1d.document;if(_1d.contentDocument){doc=_1d.contentDocument;}else{if(_1d.contentWindow){doc=_1d.contentWindow.document;}}doc.open();doc.writeln(_1c);doc.close();var _1f=doc.getElementById("storeArea");_17.loadFromDiv(_1f,"store");_1d.parentNode.removeChild(_1d);return null;};var _20=function(_21){_13("Error when loading %0".format([_f]),"Failed");_10(undefined,_f,_11,_21);return _21;};var _22=function(_23){_13("Loaded %0".format([_f]),"Done");_10(_23,_f,_11);return null;};var _24=function(_25,_26,_27,_28){if(_25===undefined){_20(_28);return;}_13("Processing %0".format([_f]),"Processing");var _29=config.messages.invalidFileError;config.messages.invalidFileError="The file '%0' does not appear to be a valid TiddlyWiki file";try{var _2a=new TiddlyWiki();var _2b=_16(_2a,_25);if(_2b){_20(_2b);}else{_22(_2a);}}catch(ex){_20(exceptionText(ex));}finally{config.messages.invalidFileError=_29;}};_13("Start loading %0".format([_f]),"Started");abego.loadFile(_f,_24,_11);};(function(){if(abego.TiddlyWikiIncluder){return;}var _2c="waiting";var _2d="loading";var _2e=1000;var _2f=-200;var _30=-100;var _31=-300;var _32;var _33=[];var _34={};var _35=[];var _36;var _37=[];var _38;var _39=function(){if(_32===undefined){_32=config.options.chkUseInclude===undefined||config.options.chkUseInclude;}return _32;};var _3a=function(url){return "No include specified for %0".format([url]);};var _3c=function(){var _3d=_35;_35=[];if(_3d.length){for(var i=0;i<_37.length;i++){_37[i](_3d);}}};var _3f;var _40=function(){if(_36!==undefined){clearInterval(_36);}_3f=0;var _41=function(){abego.TiddlyWikiIncluder.sendProgress("","","Done");};_36=setInterval(function(){_3f++;if(_3f<=10){return;}clearInterval(_36);_36=undefined;abego.TiddlyWikiIncluder.sendProgress("Refreshing...","","");refreshDisplay();invokeLater(_41,0,_2f);},0);};var _42=function(_43){var _44;for(var i=0;i<_33.length;i++){var _46=abego.TiddlyWikiIncluder.getStore(_33[i]);if(_46&&(_44=_43(_46,_33[i]))){return _44;}}};var _47=function(){if(!window.store){return invokeLater(_47,100);}var _48=store.fetchTiddler;store.fetchTiddler=function(_49){var t=_48.apply(this,arguments);if(t){return t;}if(config.shadowTiddlers[_49]!==undefined){return undefined;}if(_49==config.macros.newTiddler.title){return undefined;}return _42(function(_4b,url){var t=_4b.fetchTiddler(_49);if(t){t.includeURL=url;}return t;});};if(_33.length){_40();}};var _4e=function(){if(!window.store){return invokeLater(_4e,100);}var _4f=store.getTiddlerText("IncludeList");if(_4f){wikify(_4f,document.createElement("div"));}};var _50=function(_51){var _52=function(){var _53=store.forEachTiddler;var _54=function(_55){var _56={};var _57;var _58=function(_59,_5a){if(_56[_59]){return;}_56[_59]=1;if(_57){_5a.includeURL=_57;}_55.apply(this,arguments);};_53.call(store,_58);for(var n in config.shadowTiddlers){_56[n]=1;}_56[config.macros.newTiddler.title]=1;_42(function(_5c,url){_57=url;_5c.forEachTiddler(_58);});};store.forEachTiddler=_54;try{return _51.apply(this,arguments);}finally{store.forEachTiddler=_53;}};return _52;};var _5e=function(_5f,_60){return _5f[_60]=_50(_5f[_60]);};abego.TiddlyWikiIncluder={};abego.TiddlyWikiIncluder.setProgressFunction=function(_61){_38=_61;};abego.TiddlyWikiIncluder.getProgressFunction=function(_62){return _38;};abego.TiddlyWikiIncluder.sendProgress=function(_63,_64,_65){if(_38){_38.apply(this,arguments);}};abego.TiddlyWikiIncluder.onError=function(url,_67){displayMessage("Error when including '%0':\n%1".format([url,_67]));};abego.TiddlyWikiIncluder.hasPendingIncludes=function(){for(var i=0;i<_33.length;i++){var _69=abego.TiddlyWikiIncluder.getState(_33[i]);if(_69==_2c||_69==_2d){return true;}}return false;};abego.TiddlyWikiIncluder.getIncludes=function(){return _33.slice();};abego.TiddlyWikiIncluder.getState=function(url){var s=_34[url];if(!s){return _3a(url);}return typeof s=="string"?s:null;};abego.TiddlyWikiIncluder.getStore=function(url){var s=_34[url];if(!s){return _3a(url);}return s instanceof TiddlyWiki?s:null;};abego.TiddlyWikiIncluder.include=function(url,_6f){if(!_39()||_34[url]){return;}var _70=this;_33.push(url);_34[url]=_2c;var _71=function(_72,_73,_74,_75){if(_72===undefined){_34[url]=_75;_70.onError(url,_75);return;}_34[url]=_72;_35.push(url);invokeLater(_3c);};var _76=function(){_34[url]=_2d;abego.loadTiddlyWikiStore(url,_71,null,_38);};if(_6f){invokeLater(_76,_6f);}else{_76();}};abego.TiddlyWikiIncluder.forReallyEachTiddler=function(_77){var _78=function(){store.forEachTiddler(_77);};_50(_78).call(store);};abego.TiddlyWikiIncluder.getFunctionUsingForReallyEachTiddler=_50;abego.TiddlyWikiIncluder.useForReallyEachTiddler=_5e;abego.TiddlyWikiIncluder.addListener=function(_79){_37.push(_79);};abego.TiddlyWikiIncluder.addListener(_40);if(config.options.chkUseInclude===undefined){config.options.chkUseInclude=true;}config.shadowTiddlers.AdvancedOptions+="\n<<option chkUseInclude>> Include ~TiddlyWikis (IncludeList | IncludeState | [[help|http://tiddlywiki.abego-software.de/#%5B%5BIncludePlugin%20Documentation%5D%5D]])\n^^(Reload this ~TiddlyWiki to make changes become effective)^^";config.shadowTiddlers.IncludeState="<<includeState>>";var _7a=function(e,_7c,_7d){if(!anim||!abego.ShowAnimation){e.style.display=_7c?"block":"none";return;}anim.startAnimating(new abego.ShowAnimation(e,_7c,_7d));};abego.TiddlyWikiIncluder.getDefaultProgressFunction=function(){setStylesheet(".includeProgressState{\n"+"background-color:#FFCC00;\n"+"position:absolute;\n"+"right:0.2em;\n"+"top:0.2em;\n"+"width:7em;\n"+"padding-left:0.2em;\n"+"padding-right:0.2em\n"+"}\n","abegoInclude");var _7e=function(){var e=document.createElement("div");e.className="includeProgressState";e.style.display="none";document.body.appendChild(e);return e;};var _80=_7e();var _81=function(_82){removeChildren(_80);createTiddlyText(_80,_82);_7a(_80,true,0);};var _83=function(){invokeLater(function(){_7a(_80,false,_2e);},100,_30);};var _84=function(_85,_86,_87,url,_89){if(_87=="Done"||_87=="Failed"){_83();return;}if(_86=="abego.loadTiddlyWikiStore"){_3f=0;if(_87=="Processing"){_81("Including...");}}else{_81(_85);}};return _84;};abego.TiddlyWikiIncluder.setProgressFunction(abego.TiddlyWikiIncluder.getDefaultProgressFunction());config.macros.include={};config.macros.include.handler=function(_8a,_8b,_8c,_8d,_8e,_8f){_8c=_8e.parseParams("url",null,true,false,true);var _90=parseInt(getParam(_8c,"delay","0"));var _91=_8c[0]["url"];var _92=getFlag(_8c,"hide",false);if(!_92){createTiddlyText(createTiddlyElement(_8a,"code"),_8d.source.substring(_8d.matchStart,_8d.nextMatch));}for(var i=0;_91&&i<_91.length;i++){abego.TiddlyWikiIncluder.include(_91[i],_90);}};config.macros.includeState={};config.macros.includeState.handler=function(_94,_95,_96,_97,_98,_99){var _9a=function(){var s="";var _9c=abego.TiddlyWikiIncluder.getIncludes();if(!_9c.length){return "{{noIncludes{\nNo includes or 'include' is disabled (see AdvancedOptions)\n}}}\n";}s+="|!Address|!State|\n";for(var i=0;i<_9c.length;i++){var inc=_9c[i];s+="|{{{"+inc+"}}}|";var t=abego.TiddlyWikiIncluder.getState(inc);s+=t?"{{{"+t+"}}}":"included";s+="|\n";}s+="|includeState|k\n";return s;};var _a0=function(){removeChildren(div);wikify(_9a(),div);if(abego.TiddlyWikiIncluder.hasPendingIncludes()){invokeLater(_a0,500,_31);}};var div=createTiddlyElement(_94,"div");invokeLater(_a0,0,_31);};var _a2=Tiddler.prototype.isReadOnly;Tiddler.prototype.isReadOnly=function(){return _a2.apply(this,arguments)||this.isIncluded();};Tiddler.prototype.isIncluded=function(){return this.includeURL!=undefined;};Tiddler.prototype.getIncludeURL=function(){return this.includeURL;};var _a3={getMissingLinks:1,getOrphans:1,getTags:1,reverseLookup:1,updateTiddlers:1};for(var n in _a3){_5e(TiddlyWiki.prototype,n);}var _a5=function(){if(abego.IntelliTagger){_5e(abego.IntelliTagger,"assistTagging");}};_47();invokeLater(_4e,100);invokeLater(_a5,100);})();
//%/
Informazioni varie su questo sito
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Version|1.6.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Insert Javascript executable code directly into your tiddler content.|

''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Usage
<<<
When installed, this plugin adds new wiki syntax for surrounding tiddler content with {{{<script>}}} and {{{</script>}}} markers, so that it can be treated as embedded javascript and executed each time the tiddler is rendered.

''Deferred execution from an 'onClick' link''
By including a {{{label="..."}}} parameter in the initial {{{<script>}}} marker, the plugin will create a link to an 'onclick' script that will only be executed when that specific link is clicked, rather than running the script each time the tiddler is rendered.  You may also include a {{{title="..."}}} parameter to specify the 'tooltip' text that will appear whenever the mouse is moved over the onClick link text

''External script source files:''
You can also load javascript from an external source URL, by including a src="..." parameter in the initial {{{<script>}}} marker (e.g., {{{<script src="demo.js"></script>}}}).  This is particularly useful when incorporating third-party javascript libraries for use in custom extensions and plugins.  The 'foreign' javascript code remains isolated in a separate file that can be easily replaced whenever an updated library file becomes available.

''Display script source in tiddler output''
By including the keyword parameter "show", in the initial {{{<script>}}} marker, the plugin will include the script source code in the output that it displays in the tiddler.

''Defining javascript functions and libraries:''
Although the external javascript file is loaded while the tiddler content is being rendered, any functions it defines will not be available for use until //after// the rendering has been completed.  Thus, you cannot load a library and //immediately// use it's functions within the same tiddler.  However, once that tiddler has been loaded, the library functions can be freely used in any tiddler (even the one in which it was initially loaded).

To ensure that your javascript functions are always available when needed, you should load the libraries from a tiddler that will be rendered as soon as your TiddlyWiki document is opened.  For example, you could put your {{{<script src="..."></script>}}} syntax into a tiddler called LoadScripts, and then add {{{<<tiddler LoadScripts>>}}} in your MainMenu tiddler.

Since the MainMenu is always rendered immediately upon opening your document, the library will always be loaded before any other tiddlers that rely upon the functions it defines.  Loading an external javascript library does not produce any direct output in the tiddler, so these definitions should have no impact on the appearance of your MainMenu.

''Creating dynamic tiddler content''
An important difference between this implementation of embedded scripting and conventional embedded javascript techniques for web pages is the method used to produce output that is dynamically inserted into the document:
* In a typical web document, you use the document.write() function to output text sequences (often containing HTML tags) that are then rendered when the entire document is first loaded into the browser window.
* However, in a ~TiddlyWiki document, tiddlers (and other DOM elements) are created, deleted, and rendered "on-the-fly", so writing directly to the global 'document' object does not produce the results you want (i.e., replacing the embedded script within the tiddler content), and completely replaces the entire ~TiddlyWiki document in your browser window.
* To allow these scripts to work unmodified, the plugin automatically converts all occurences of document.write() so that the output is inserted into the tiddler content instead of replacing the entire ~TiddlyWiki document.

If your script does not use document.write() to create dynamically embedded content within a tiddler, your javascript can, as an alternative, explicitly return a text value that the plugin can then pass through the wikify() rendering engine to insert into the tiddler display.  For example, using {{{return "thistext"}}} will produce the same output as {{{document.write("thistext")}}}.

//Note: your script code is automatically 'wrapped' inside a function, {{{_out()}}}, so that any return value you provide can be correctly handled by the plugin and inserted into the tiddler.  To avoid unpredictable results (and possibly fatal execution errors), this function should never be redefined or called from ''within'' your script code.//

''Accessing the ~TiddlyWiki DOM''
The plugin provides one pre-defined variable, 'place', that is passed in to your javascript code so that it can have direct access to the containing DOM element into which the tiddler output is currently being rendered.

Access to this DOM element allows you to create scripts that can:
* vary their actions based upon the specific location in which they are embedded
* access 'tiddler-relative' information (use findContainingTiddler(place))
* perform direct DOM manipulations (when returning wikified text is not enough)
<<<
!!!!!Examples
<<<
an "alert" message box:
><script show>
	alert('InlineJavascriptPlugin: this is a demonstration message');
</script>
dynamic output:
><script show>
	return (new Date()).toString();
</script>
wikified dynamic output:
><script show>
	return "link to current user: [["+config.options.txtUserName+"]]";
</script>
dynamic output using 'place' to get size information for current tiddler:
><script show>
   if (!window.story) window.story=window;
   var title=story.findContainingTiddler(place).id.substr(7);
   return title+" is using "+store.getTiddlerText(title).length+" bytes";
</script>
creating an 'onclick' button/link that runs a script:
><script label="click here" title="clicking this link will show an 'alert' box" show>
   if (!window.story) window.story=window;
   alert("Hello World!\nlinktext='"+place.firstChild.data+"'\ntiddler='"+story.findContainingTiddler(place).id.substr(7)+"'");
</script>
loading a script from a source url:
>http://www.TiddlyTools.com/demo.js contains:
>>{{{function demo() { alert('this output is from demo(), defined in demo.js') } }}}
>>{{{alert('InlineJavascriptPlugin: demo.js has been loaded'); }}}
><script src="demo.js" show>
	return "loading demo.js..."
</script>
><script label="click to execute demo() function" show>
	demo()
</script>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''InlineJavascriptPlugin'' (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2007.02.19 [1.6.0]'' added support for title="..." to specify mouseover tooltip when using an onclick (label="...") script
''2006.10.16 [1.5.2]'' add newline before closing '}' in 'function out_' wrapper.  Fixes error caused when last line of script is a comment.
''2006.06.01 [1.5.1]'' when calling wikify() on script return value, pass hightlightRegExp and tiddler params so macros that rely on these values can render properly
''2006.04.19 [1.5.0]'' added 'show' parameter to force display of javascript source code in tiddler output
''2006.01.05 [1.4.0]'' added support 'onclick' scripts.  When label="..." param is present, a button/link is created using the indicated label text, and the script is only executed when the button/link is clicked.  'place' value is set to match the clicked button/link element.
''2005.12.13 [1.3.1]'' when catching eval error in IE, e.description contains the error text, instead of e.toString().  Fixed error reporting so IE shows the correct response text.  Based on a suggestion by UdoBorkowski
''2005.11.09 [1.3.0]'' for 'inline' scripts (i.e., not scripts loaded with src="..."), automatically replace calls to 'document.write()' with 'place.innerHTML+=' so script output is directed into tiddler content.  Based on a suggestion by BradleyMeck
''2005.11.08 [1.2.0]'' handle loading of javascript from an external URL via src="..." syntax
''2005.11.08 [1.1.0]'' pass 'place' param into scripts to provide direct DOM access 
''2005.11.08 [1.0.0]'' initial release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.inlineJavascript= {major: 1, minor: 6, revision: 0, date: new Date(2007,2,19)};

config.formatters.push( {
	name: "inlineJavascript",
	match: "\\<script",
	lookahead: "\\<script(?: src=\\\"((?:.|\\n)*?)\\\")?(?: label=\\\"((?:.|\\n)*?)\\\")?(?: title=\\\"((?:.|\\n)*?)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",

	handler: function(w) {
		var lookaheadRegExp = new RegExp(this.lookahead,"mg");
		lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			if (lookaheadMatch[1]) { // load a script library
				// make script tag, set src, add to body to execute, then remove for cleanup
				var script = document.createElement("script"); script.src = lookaheadMatch[1];
				document.body.appendChild(script); document.body.removeChild(script);
			}
			if (lookaheadMatch[5]) { // there is script code
				if (lookaheadMatch[4]) // show inline script code in tiddler output
					wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
				if (lookaheadMatch[2]) { // create a link to an 'onclick' script
					// add a link, define click handler, save code in link (pass 'place'), set link attributes
					var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",lookaheadMatch[2]);
					link.onclick=function(){try{return(eval(this.code))}catch(e){alert(e.description?e.description:e.toString())}}
					link.code="function _out(place){"+lookaheadMatch[5]+"\n};_out(this);"
					link.setAttribute("title",lookaheadMatch[3]?lookaheadMatch[3]:"");
					link.setAttribute("href","javascript:;");
					link.style.cursor="pointer";
				}
				else { // run inline script code
					var code="function _out(place){"+lookaheadMatch[5]+"\n};_out(w.output);"
					code=code.replace(/document.write\(/gi,'place.innerHTML+=(');
					try { var out = eval(code); } catch(e) { out = e.description?e.description:e.toString(); }
					if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
				}
			}
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
	}
} )
//}}}
<html><center>@@font-size(20pt):[[il grande gioco dell'estate|Pronostico]]@@</html>
//TW Italian Plugin by Mathew Warburton 2.0.1 release

config.commands.closeTiddler.text = "Chiudi";
config.commands.closeTiddler.tooltip = "Chiude questo frammento";
config.commands.closeOthers.text = "Chiude altri ";
config.commands.closeOthers.tooltip = "Chiude gli altri frammenti";
config.commands.editTiddler.text = "Modifica";
config.commands.editTiddler.tooltip = "Edita il frammento";
config.commands.saveTiddler.text = "Salva";
config.commands.saveTiddler.tooltip = "Salva le modifiche";
config.commands.cancelTiddler.text = "Annulla";
config.commands.cancelTiddler.tooltip = "Annulla le modifiche";
config.commands.deleteTiddler.text = "Elimina";
config.commands.deleteTiddler.tooltip = "Elimina questo frammento";
config.commands.deleteTiddler.warning = "Sicuro di voler eliminare '%0'?";
config.commands.permalink.text = "Permalink";
config.commands.permalink.tooltip = "Indica sulla barra l'indirizzo di questo frammento";
config.commands.references.text = "Post collegati";
config.commands.references.tooltip = "Elenca i frammenti che puntano qui";
config.commands.references.popupNone = "Nessun frammento punta qui";
config.commands.jump.text = "Vai a ";
config.commands.jump.tooltip = "Vai ad un altro frammento aperto";

config.macros.allTags.noTags = "Non ci sono frammenti categorizzati";
config.macros.allTags.tooltip = "Mostra i frammenti del tipo ";
config.macros.closeAll.label = "Chiudi tutti";
config.macros.closeAll.prompt = "Chiude tutti i frammenti aperti(esclusi quelli in modifica)";
config.macros.list.all.prompt = "Elenca tutti i frammenti in ordine alfabetico";
config.macros.list.missing.prompt = "Elenca frammenti collegati tra loro non ancora definiti";
config.macros.list.orphans.prompt = "Elenca i frammenti non collegati";

config.macros.list.shadowed.prompt = "Frammenti nascosti contenenti le impostazioni del programma";

config.macros.newJournal.label = "nuovo diario";
config.macros.newJournal.months = ["gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre","dicembre"];
config.macros.newJournal.prompt = "Crea un nuovo frammento con data e ora corrente";
config.macros.newTiddler.label = "nuovo frammento";
config.macros.newTiddler.prompt = "Crea un nuovo frammento";
config.macros.permaview.label = "Indirizzo di Pagina";
config.macros.permaview.prompt = "Indica sulla barra l'indirizzo della pagina e dei frammenti aperti";
config.macros.saveChanges.label = "Salva modifiche";
config.macros.saveChanges.prompt = "Salva tutti i frammenti per creare un nuovo TiddlyWiki";
config.macros.search.label = "cerca:";
config.macros.search.prompt = "Cerca in questo TiddlyWiki";
config.macros.search.successMsg = " Trovati frammenti contenenti ";
config.macros.search.failureMsg = "Nessun frammento contiene: ";
config.macros.timeline.dateFormat = "DD MMM YYYY";
config.macros.tagging.label = "Etichettato:";
config.macros.tagging.labelNotTag = "Categoria:";
config.macros.tagging.tooltip = "Frammenti di Tipo '%0'";

config.messages.backupFailed = "Salvataggio file di backup non riuscito";
config.messages.backupSaved = "Backup riuscito";
config.messages.cantSaveError = "Non si possono salvare le modifiche con questo browser. Se puoi usa Firefox";
config.messages.customConfigError = "Errore in customConfig - '%0' ";
config.messages.emptyFailed = "Salvataggio file modello vuoto non riuscito";
config.messages.emptySaved = "Modello vuoto salvato";
config.messages.externalLinkTooltip = "Collegamento a %0";
config.messages.invalidFileError = "Il file originale non sembra di tipo TiddlyWiki: ";
config.messages.macroError = "Errore nella macro <<%0>>";
config.messages.macroErrorDetails = "Errore in esecuzione della macro <<%0>>:\n%1";
config.messages.missingMacro = "La macro non esiste";
config.messages.mainFailed = "File TiddlyWiki principale non salvato. Le tue modifiche non sono state salvate";
config.messages.mainSaved = "File TiddlyWiki primario salvato ";
config.messages.noTags = "Non ci sono frammenti del tipo ";
config.messages.notFileUrlError = "Devi esportare questo TiddlyWiki prima di poterlo salvare";
config.messages.overwriteWarning = "Il frammento '%0' esiste gi     . OK per sostituirlo";
config.messages.rssFailed = "Salvataggio RSS feed file non riuscito";
config.messages.rssSaved = "RSS feed salvato come";
config.messages.savedSnapshotError = "Sembra che questo TiddlyWiki sia stato salvato scorrettamente. Per informazioni vai a http://www.tiddlywiki.com/#DownloadSoftware";
config.messages.subtitleUnknown = "( sconosciuto )";
config.messages.undefinedTiddlerToolTip = "Il frammento '%0'non esiste ";
config.messages.shadowedTiddlerToolTip = "Il frammento '%0' non esiste, è un modello predefinito ";
config.messages.unsavedChangesWarning = "ATTENZIONE non sono state ancora salvate le modifiche in TiddlyWiki\n\nOK per salvare\nANNULLA per annullarle";
config.messages.messageClose.text = "Chiudi";
config.messages.messageClose.tooltip = "Chiudi l'area di messaggio";


config.messages.dates.months = ["gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre","dicembre"];
config.messages.dates.days = ["domenica", "lunedì","martedì", "mercoledì", "giovedì", "venerdì", "sabato"];

config.views.editor.defaultText = "Edita '%0'.";
config.views.editor.tagChooser.popupNone = "Nessuna categoria è definita";
config.views.editor.tagChooser.tagTooltip = "Aggiungi la categoria ";
config.views.editor.tagChooser.text = "Esistenti";
config.views.editor.tagChooser.tooltip = "Seleziona la categoria tra quelle gi      presenti";
config.views.editor.tagPrompt = "Aggiungi le categorie separate da spazio, [[se il titolo è di più di una parola va tra due parentesi quadre]] o scegli tra quelle ";

config.shadowTiddlers.OptionsPanel = "'Queste OpzioniInterfaccia per personalizzare il tuo TiddlyWiky vengono salvate nel browser\n\nDigita un nome utente per firmare le tue modifiche. Usa un formato di parola Wiki (es PincoPallino)\n\n <<option txtUserName>>\n<<option chkSaveBackups>> SalvaBackups\n<<option chkAutoSave>> SalvataggioAutomatico\n<<option chkGenerateAnRssFeed>> GeneraUnArchivioRSS\n<<option chkRegExpSearch>> RicercaEstesa\n<<option chkCaseSensitiveSearch>> ConsideraCaratteriInRicerca\n<<option chkAnimate>> AbilitaAnimazioni\n\n Apri OpzioniAvanzate";

config.shadowTiddlers.SideBarOptions = "<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel Opzioni 'Modifica le opzioni avanzate di interfaccia del TiddlyWiki'>>";

config.shadowTiddlers.SideBarTabs = "<<tabs txtMainTab 'Data' 'Elenca i frammenti cronologicamente' TabTimeline Tutti 'Tutti i frammenti in ordine alfabetico' TabAll 'Categorie' 'Elenca i frammenti per tipo' TabTags 'Altro' 'Altri Elenchi' TabMore>>";
config.shadowTiddlers.TabMore = "<<tabs txtMoreTab 'Mancanti' 'Frammenti non ancora editati' TabMoreMissing 'Orfani' 'Frammenti non collegati tra loro' TabMoreOrphans 'Nascosti' 'Frammenti Nascosti' TabMoreShadowed >>";


config.shadowTiddlers.OpzioniAvanzate = "<<option chkOpenInNewWindow>> ApriCollegamentiInNuovaFinestra\n<<option chkSaveEmptyTemplate>> SalvaModelloVuoto\n<<option chkToggleLinks>> Cliccando su un collegamento ad un frammento gi     aperto lo chiude\n^^(evita con Control o altro tasto modificabile)^^ \n<<option chkHttpReadOnly>> Non rendere editabile dal web\n<<option chkForceMinorUpdate>> Tratta le modifiche minori e mantieni data ed ora precedenti\n^^(disattiva con Shift in modifica o con la combinazione Ctrl-Shift-Enter)^^\n<<option chkConfirmDelete>> Richiedi Conferma prima di eliminare il frammento\n <<option txtMaxEditRows>>Numero massimo di righe per ciascun frammento: \n <<option txtBackupFolder>>Percorso della directory di backup: \n";

config.shadowTiddlers.GettingStarted = "Per iniziare ad usare questo documento vuoto, comincia ad editare i seguenti frammenti:\n* SiteTitle e SiteSubtitle: Il titolo ed il sottotitolo della pagina visibili nella barra del browser\n* MainMenu: Il menù principale di TW\n* DefaultTiddlers: Inserisci i collegamenti ai frammenti che desideri compaiono all'apertura di questo TiddlyWiki.\n Inserisci anche un tuo nome utente che ti permetter     di firmare le tue modifiche: <<option txtUserName>>";


config.views.wikified.defaultText = "!Tutte le volte che fai una vaccata saltano le valvole!\nLo sapevo...hai fatto il danno, e adesso?\nNo dai, scherzo. &Egrave; che un plugin per velocizzare il caricamento della pagina ha di fatto reso inutilizzabili tutti i link dall'esterno a post archiviati.\n\nTi propongo, se non hai voglia di andare via indispettito, alcune soluzioni - prova se almeno una di queste ti è utile:\n\n1. La prima soluzione, lo ammetto, è la più facile, ed è quella di ripartire dall'[[home page|http://corax.altervista.org]].\n\n2. Puoi utilizzare questo [[motore di ricerca interno|Cerca]] per ricercare per data, categoria o autore.\n\n3. Nel malaugurato caso, poi, niente di tutto questo funzioni, puoi sempre scrivermi una mail a coraxgroup[at]gmail[dot]com. Farò del mio meglio per aiutarti.\n\nBuona giornata,\nOscar aka Corax\n\n^^(un ringraziamento ad Antonio Sofi di [[Webgol|http://www.webgol.it]] per avermi permesso di utilizzare e modificare la sua pagina di errore.)^^";
config.views.wikified.tag.labelTags = "Categorie : ";
config.views.wikified.tag.openTag = "Apri la categoria '%0'";
config.views.wikified.tag.labelNoTags = "Nessuna categoria.";
config.views.wikified.tag.openAllText = "Apri tutti i tiddler di questa categoria ";
config.views.wikified.tag.openAllTooltip = "Apri tutti ";
config.views.wikified.tag.popupNone = "Non ci sono altri frammenti del tipo '%0'";
config.views.wikified.tag.tooltip = "Mostra frammenti del tipo '%0' ";
Ho un nokia 5800, una specie di iphone dei poveri, o di quelli che non vogliono un iphone.
L'altro ieri m' arrivato l'avviso che c'era il firmware nuovo con //milioni di strabilianti novità// e ho fatto l'aggiornamento.
Lo uso anche come sveglia, questo telefono.
Con la nuova versione non pigi il tasto "stop"; devi strisciare il dito da sinistra a destra.
Non l'ho letto da nessuna parte.
Avevo la sveglia puntata alle 6 di mattina.

Ho tolto due volte la batteria per riuscire a spegnerla.

//Il Foglio// era uscito in edicola con la testata cambiata in //Il Taglio//.
E il titolone a nove colonne (avrà nove colonne il Foglio?), a caratteri cubitali e tutto in maiuscolo che diceva:
:''LA GIULIANA FERRARA''.
Sembrò l'inizio della fine.

Il fondo del direttore parlava di "scelta sofferta ma inevitabile", di "sentimento mai sopito" e di "ragioni che vanno al di là del piano politico e ancor più di quello fisico".
Attaccava la natura "matrigna e ria" e le istituzioni "cieche e sorde al grido di molti, non solo al mio grido".
Citava storici e scienziati per dimostrare che non si trattava di un capriccio.

La stampa era andata in panico: nelle redazioni riunioni-fiume per capire come affrontare la questione. Sondaggi, salotti televisivi, editoriali pro e contro.
Nella stessa redazione del Foglio le cose non erano andate lisce: Crippa, Maria Rosa Mancuso e Vincino se n'erano andati (si diceva) sbattendo la porta. Altri appoggiavano l'iniziativa.
Un problema si era presentato subito per come simboleggiare la nuova campagna: le spillette con la scritta "ANCH'IO GIULIANA" sembravano poco; altre proposte erano, oggettivamente, troppo.

Si erano spaccate maggioranza e opposizione; non c'erano ordini di partito che tenessero: plaudivano i favorevoli e i contrari annunciavano manifestazioni di protesta. Napolitano aveva cercato, inutilmente, di riappacificare gli animi.
Oltretevere ci fu chi giurò di aver sentito uscire dal Palazzo Apostolico una serie di termini dei quali l'unico ripetibile era //belìn!//; neppure Bertone e Bagnasco l'avevano presa bene.
Fior di cosituzionalisti vennero intervistati: c'erano i favorevoli e i contrari.

Finalmente tutto finì in una bolla di sapone quando la Corte Costituzionale annunciò l'impossibilità per Trieste di annettersi la provincia estense.
Io non sogno mai.
Non venitemi a dire che è impossibile non sognare, perché non è vero. Io non sogno mai.
Non venitemi a raccontare (mi ricordo 'sta storia di quand'ero piccolo) di quel soldato israeliano, o libanese o vattelapesca (ma mediorientale) che gli avevano sparato in testa e avevano preso non so che pezzo di cervello e non sognava più. E lui stava bene, ma tutti quelli che avevano avuto problemi a quel pezzo di cervello e non sognavano poi impazzivano. Perché, dicono, se non si sogna il cervello non si riposa e non si ricarica e si riempie di roba e scoppia (be', non letteralmente).
Io non sogno e sto bene.

--Il mattino ha l'oro in bocca, il mattino ha l'oro in bocca, il mattino ha l'oro in bocca, il mattino ha l'oro in bocca, il mattino ha l'oro in bocca, il mattino ha l'oro in bocca, il mattino--

Ehm...dicevo. Io non sogno mai. Praticamente.
Gli unici sogni che faccio sono degli [[incubi|http://surripedia.tumblr.com/post/36117519/incubo]]. Non mostri, morti e inseguimenti. Incubi veri, nel senso dell'incubus latino (anche se preferirei di gran lunga una "succuba").
Insomma se sento un peso addosso (banalmente, la coperta che per un motivo o per l'altro mi blocca un po' le gambe) sogno di camminare in salita, una leggera salita, ma di fare una fatica mostruosa a muovermi. Sento proprio la gamba che riesce ad alzarsi di un solo centimetro, sento la fatica fisica e mi sveglio più stanco di quando sono andato a letto.
Ma altri sogni no. Mai. Fino ad un paio di settimane fa. D'improvviso ho cominciato a sognare; quasi tutte le notti.
Spesso mi sveglio e nel momento stesso nel quale cerco di afferrare i ricordi del sogno rimangono solo alcuni particolari, alcune idee e poi dimentico tutto.
Di alcuni, invece, mi ricordo a grandi linee lo svolgimento, qualche particolare e qualche frase detta o sentita.
Però lo so che se mi metto a raccontarveli salta fuori qualcuno che mi dice che sono dei chiari simboli del fatto che ho una personalità multipla, qualche roba latente o che sono un probabile assassino seriale.
Quindi niente, non ve li racconto, ché già con l'incubo di cui sopra chissà che idee vi siete fatti.

Ah, per la cronaca: il nome dell'autore del libro che dà il titolo al post si scrive "//Froid//", ma si pronuncia {{{Fruà}}}.
Ho detto non so quante volte che questo blog ha pochi lettori e, ormai, sarete tutti e tre stufi di leggere sempre questa considerazione.
Ma a fronte del gruppo di pochi ma buoni c'è uno sparuto numero di persone che arriva qui dai motori di ricerca. Immagino che spesso non lascino nemmeno caricare l'avviso in apertura. Se anche dovessero arrivare alla pagina che (mi auguro) state leggendo non troverebbero nulla di quello che cercano, perché google li manda alla pagina iniziale del blog, e non ad un post in particolare. Inoltre, le parole chiave che hanno cercato possono essere in post(i) anche molto lontani tra loro, o addirittura tra le righe del codice.

Diverse volte ho postato (qui o sul tumblr) alcune simpatiche ricerche che hanno portato visitatori a queste pagine tipo [[occhi impallati di mara garfagna|http://placidiappunti.tumblr.com/post/38639386/catastrofe-catastrofe-delivers-a-roma-i-ragazzi]] o [[che cos'è in francia quel rettangolo di 6,6 cm * 3 cm?|http://search.live.com/results.aspx?q=che+cos%27%C3%A8+in+francia+quel+rettangolo+di+6%2C6+cm+*+3+cm%3F&form=QBLH]].

Mi sono sempre chiesto chi può fare una ricerca del genere (e soprattutto arrivare qui, quando il collegamento è a metà della dodicesima pagina dei risultati di google).
Oggi però sono, forse, riuscito a darmi una risposta. Ed è più inquietante della domanda.
La cosa chiara è che ci sono in giro dei pazzi. E la cosa pericolosa è che non sanno di esserlo.
Da qui in avanti posso solo esporre le mie teorie:
1. si tratta di [[googlewhack|http://it.wikipedia.org/wiki/Googlewhack]], in pratica si cercano con google due termini e si deve ottenere un unico risultato (tecnicamente dovrebbe trattarsi di un //Hapax Legomenon//).
2. si tratta di una qualche cosa a metà tra il [[flash mob|http://en.wikipedia.org/wiki/Flash_mob]] e le performances artistiche come "Frozen MI". In poche parole la gente si mette d'accordo per arrivare sul mio sito tramite le richieste più strane (al contrario del punto 1 qui è deciso l'obiettivo, probabilmente vince quello con la richiesta più strana).
3. sono obiettivo di una setta di rettiliani (o di Illuminati) che mi vuol fare dar di matto (e ci sta riuscendo).
Oggi però, chiunque essi siano, si sono traditi. Ho visto due chiavi di ricerca che hanno portato al mio sito da posti diversi, nello stesso periodo di tempo e che non possono essere una coincidenza.
Non può essere un caso che, in un paio d'ore, le uniche due visite da google siano state ''GIF+clip art+Cappelli COLBACCO'' e ''differenza tra kippa e borsalino''.
Devo solo capire cosa mi vogliono dire, forse complimentarsi con me con un //Chapeau//. 
[<img[http://lh5.ggpht.com/_-CetuSG4znU/TDGjlOYj2dI/AAAAAAAAEus/xxLwYKIq3JY/homer%20grasso.jpg]]È cominciato anche  quest'anno il ritiro estivo della Juve (più correttamente e più pomposamente l'//official summer training camp//).
Un po' perché metà giocatori non ci sono, un po' perché metà di quelli che ci sono non ci saranno in campionato, un po' perché ultimamente non hanno brillato; fatto sta che questa volta i tifosi sono meno dell'anno scorso, e persino meno del primo anno, quando si erano ritrovati in serie B.

Ma è in questi momenti che si vede il vero tifoso. Chi ama la Vecchia Signora trova, sempre e comunque, il tempo per venire a supportarla. E noi indigeni troviamo, sempre e comunque, il tempo per sopportarli.

Sono una persona orribile (cit.); a prendere in giro gente che, lombrosianamente, si vede non essere completamante a piombo sono capaci tutti. Però questo tale sovrappeso, con una specie di maglia xxxxxl della Juve, con un megafono al collo, che si dirige lungo il viale verso l'hotel dei giocatori (quando questi sono al campo di allenamento), avvisando chi è nei bar che "andiamo, è arrivata la Juve!"; questo tipo a me fa (allo stesso tempo) ridere, ribrezzo e una tristezza amara. Poi sono bastardo dentro e la derisione prende il sopravvento.

Comunque sono i momenti in cui sono felice di non essere tifoso sfegatato di alcuna squadra. Vedo che, a separare il tifoso dal folle c'è solo una sottile linea rossa.

Nell'ultimo fine settimana c'è stato anche un ritrovo di Ferrari. Avere tutti quei soldi sotto il culo e fare 18 manovre per uscire da un parcheggio, ecco, secondo me siamo ai livelli dell'uomo col megafono.
Ieri son passato davanti alla TV mentre trasmetteva l'arrivo di una tappa del Tour de France.
Sapete quando, all'improvviso, vi viene in mente una canzone e non riuscite a togliervela dalla testa? E avete presente quando, pensandoci e ripensandoci, non riuscite a capire PERCHÉ proprio quella canzone?
Magari è stata una frase sentita distrattamente, o una parola letta di sfuggita; e da lì, a valanga, un'associazione di idee che vi ha inchiodato nel cervello quella canzone.
Perché va bene: era il Tour, si parlava di ciclismo, ma tappe del Giro e del Tour ne ho seguite diverse. E l'arrivo era in volata, classico.
Eppure, sia come sia, m'è venuto in mente (e non riesco a schiodarlo di lì) non una canzone, ma un filmato.
Un filmato di repertorio visto durante un Giro d'Italia, un vecchio filmato del "Processo alla Tappa". Si trattava di un intervista, ho scoperto poi, del '66.
Io so solo che c'era Zavoli, a bordo di una moto, che faceva un'intervista ad un corridore in fuga. All'epoca si faceva anche questo, le interviste ai corridori in fuga.
E questo corridore, //triste come una salita//, diceva che l'avrebbero ripreso, che non sarebbe arrivato. E Zavoli ad incoraggiarlo, che questo era un gregario, mica un Gimondi o un Anquetil.
Cerco nelle teche rai e su youtube, ma niente. Questo filmato non lo trovo. Cerco su Google "Zavoli" e "Processo alla Tappa" e trovo la pagina di Wikipedia.

E trovo il nome: Lucillo Lievore.

Cerco ancora, ora che ho il nome, ma del filmato nessuna traccia. Trovo però altre informazioni su questo fatto: è il Giro, appunto, del '66. La tappa è la Belluno - Vittorio Veneto.
E Lievore aveva ragione e torto. Non fu raggiunto dal gruppo, ma arrivò secondo.
Quello che Zavoli non sapeva, infatti, è che la fuga era stata a due. Quando la moto arriva su Lievore, Scandelli è già partito lasciandolo indietro.
L'intervista, a sapere le cose, è quasi paradossale: Zavoli, convinto che sia in testa, gli dice che ha 17 minuti di vantaggio sul gruppo, non lo possono prendere. Lievore, che sa di non essere primo, dice di sapere che non può vincere.
Eppure, sapendo di essere secondo non aspetta il gruppo e continua imperterrito la sua fuga solitaria di 183 km.

Ecco, magari tutti sapevano questa storia, magari solo i più ferrati in ciclismo come, tra i blogger che leggo, [[Farfintadiesseresani|http://farfintadiesseresani.blog-city.com/i_buoni_propositi_di_capodanno_del_ciclista_calmo4.htm]].

Insomma, non trovo il filmato, e mi spiace moltissimo, ma su un blog, Em Bycicleta (purtroppo raggiungibile solo tramite la [[cache|http://74.125.39.104/search?q=cache:3h-MruFZt78J:www.bloggers.it/embycicleta/index.cfm%3Fblogaction%3Darticle_detail%26idBlogStorie%3DDBD5B535-F061-A4F9-4C908544DE70FA33+zavoli+lievore&hl=it&ct=clnk&cd=5&gl=it]] di Google), trovo un pezzo dell'intervista. Ve la riporto:

<<<
"Come va?" 
"Sono in crisi." 
"Ha mangiato?" 
"Poco." 
"Ha fame?"
"Sì." 
"Perché non mangia allora?" 
"Non riesco a mandare giù niente ...ho un po' di emosione." 
"È il suo primo Giro?" 
"Sì." 
"Che mestiere faceva prima?" 
"Il muratore." 
"Pensa di guadagnarsi da vivere con il ciclismo?" 
"Spero. Intanto cerco di finire questo Giro, poi si vedrà." 
"Cosa pensa un corridore quando è in fuga?" 
"Sempre di pedalare." 
"Ha paura?" 
"Sì." 
"Di che cosa ha paura?" 
"Di voltarmi indietro: quando ci si volta indietro non si pedala più."
<<<
[[Qui|Nec aspera, nec ardua]], due anni fa, scrivevo del "mio" sbarco di una calda giornata di luglio. 
[[Qui|http://corax.tumblr.com/post/42864231/il-destino-ha-voluto-che-gli-uomini-che-sono]] raccontavo la storia mai successa.
[[Qui|Ottomila sigarette, tremila caffè]] (pochi post fa, tanti giorni fa) parlavo di una storica lite, partendo da tutt'altro.

Oggi son quarant'anni.
Prima che i miei compaesani comincino^^1^^, armati di vanga e piccone, a cercare questo fantomatico quarto [[sigillo|Il sigillo]] sarà meglio che spieghi alcune cose.
Tutto nasce da una vecchia discussione riguardante "il codice Da Vinci" e "Angeli e Demoni"; in particolare la verosimiglianza, se non la verità, delle prove "artistiche" e "architettoniche" alla base dei due romanzi (e di altri dello stesso genere).
Premetto che sono piacevoli letture d'evasione e che le dimostrazioni hanno una loro logica interna.
Appunto per questo ci si chiedeva come si potessero trovare tante e tali corrispondenze tra finzione e realtà.
Ho provato allora, un po' di fretta in realtà, a creare una teoria vicino casa, senza scomodare città come Roma, Parigi o Londra.
Sono partito cercando qualche punto interessante, storico o geografico, e sono capitato quasi subito sulle chiese del paese. In fondo non c'è molto altro, e fanno la loro porca figura in un romanzo di questo tipo.
Il passo successivo è //arrotondare// qualche misura. L'angolo non è esattamente di 90° e i lati non sono uno il doppio dell'altro. Si avvicinano e tanto basta.
Arrotondate le misure a 1, 2 e &radic;5 ho nominato la sezione aurea (divina proporzione, Fibonacci, Leonardo... solo con questa ci si possono fare un paio di capitoli). Fossero state altre le misure, avrei potuto "scoprire" terne pitagoriche, pi greco o chissà cosa. Inoltre le misure che mi sono capitate non sono in proporzione aurea, ma sono semplicemente i valori utilizzati nel calcolo di detta proporzione. Ma basta sorvolare su questo particolare.
San Lorenzo mi ha dato del filo da torcere. Una volta trovati H e V mi servivano un'altra H o una I. Ecco saltare fuori Giacomo/Iacobus.
&Egrave; vero che il primo partono del mio paese era san Giacomo (la piazza accanto alla chiesa porta ancora il suo nome) ed è vero che è raffigurato nella chiesa. Cosa ci fosse prima della chiesa attuale, invece, è un'invenzione. Ma non essendoci testimonianze potrebbe esserci stato di tutto.
Due tre notizie vere ma inutili (e una disonesta) sulla vita di Gerolamo e una presunta lotta tra chiesa di Gerusalemme e chiesa di Roma hanno dato un po' di 'colore' a questa storiella.

Insomma: la teoria sembra reggere, ed è compito di altri il dimostrare che non sia vera. E, come la teoria della montagna di merda insegna... buon lavoro.

:^^1^^ certo, certo, l'avesse letto qualcuno
fatto per gli [[uni|lista della spesa]] facciam per gli altri:

Ministri con portafoglio
Esteri: Franco Frattini; praticamente, di nuovo, l'interim al Cav.
Interno: Roberto Maroni; direi bene (aspettiamo che istituiscano le ronde, prima di lamentarci)
Giustizia: Angelino Alfano; chi?
Economia Giulio Tremonti; ma va? chi l'avrebbe mai detto. L'altra volta ho detto ottimo a TPS e insomma... stavolta mi lamento, che magari si comporta bene
Difesa: Ignazio La Russa; non ricordo chi ha detto "a La Russa il ministero della difesa, che per l'occasione si chiamerà ministero dell'attacco". Forse uno dei pochi con il Physique Du Rôle per passere in rassegna le truppe.
Sviluppo economico: Claudio Scajola; ma lo sviluppo economico, esattamente, cos'è?
Pubblica istruzione: Maria Stella Gelmini; chi?
Politiche agricole: Luca Zaia; ho già chiesto chi?
Ambiente: Stefania Prestigiacomo; addirittura l'ambiente? Secondo me stupirà
Iinfrastrutture: Altero Matteoli; senza infamia e senza lode
Welfare: Maurizio Sacconi; per come l'ho sentito parlare mi fido di più di lui che di Tremonti
Beni culturali: Sandro Bondi. e dopo Rutelli...Bondi!

Ministri senza portafoglio Riforme: Umberto Bossi; alla fine scommetto che non romperà le balle più di tanto (se si ricorderà di prendere la pillola arancio)
Semplificazione: Roberto Calderoli; se dovesse davvero semplificare le leggi potrei cambiare idea su di lui
Attuazione Programma: Gianfranco Rotondi; ministero inutile a persona inutile
Politiche Comunitarie: Andrea Ronchi; ci sta
Pari Opportunità: Mara Carfagna; errore di stampa, vero?
Affari regionali: Raffaele Fitto; bho
Politiche giovanili: Giorgia Meloni; ok
Rapporti con parlamento: Elio Vito; èunministerochevoinonavetevolutoèunministerochevoinonavetevoluto!
Innovazione: Renato Brunetta. Uh, l'insopportabile Brunetta...
.mau. [[citava|http://mau.tumblr.com/post/81669050/sindrome-da-preghiera-compulsiva-lultima-malattia-di]] un articolo del Corriere che, a sua volta, tra le varie cose, nominava la Sindrome di Gerusalemme. Leggendo m'è venuto in mente che, quando ero [[stato|Una settimana da Dio /1]] da [[Alberto|http://oltreconfine.blogspot.com]], sull'autobus per Gerusalemme, avevo letto sulla Lonely Planet un riquadro relativo alla cosiddetta Sindrome di Gerusalemme.
Una variante della sindrome di Stendhal o della sindrome di Parigi; per la quale i pellegrini (ebrei, cristiani e musulmani) in visita nella Città Santa, sono presi da crisi mistiche e si credono Sansone, la Madonna o qualche profeta.
Tra i casi che citava, oltre ad un paio di tristi episodi di gente che aveva tentato una strage di fedeli e l'incendio della Cupola della Roccia, segnalava la storia di una signora inglese negli anni '30.
Questa signora, spinta da una crisi mistica, si portava tutti i giorni sul monte Scopus (appena fuori città) e, con una tazza di tè in mano, aspettava Cristo per la sua seconda venuta.
Questa cara signora inglese di mezza età (o oltre) con al collo il cammeo del marito morto in guerra, la cuffietta di pizzo, in cima a questa collina con un cestino di vimini, un tavolino pieghevole e una tazza di porcellana colma di Earl Grey; questa gentile e sorridente signora che è pronta a offrire una tazza di tè a Gesù che torna; questa signora tutta "honey" e "darling" me la vedo un po' come [[zia Abby e zia Martha|http://it.wikipedia.org/wiki/Arsenico_e_vecchi_merletti]].

E se lassù guardano i film di Frank Capra forse è per quello che la seconda venuta del messia ancora non c'è stata: Gesù non si fida del tè della signora.
Si avvicinano al bancone con cartina in mano e chiedono "...e domani cosa possiamo fare di bello?".
Allora gli consigli quel sentiero che t'hanno detto essere bello e facile; quel rifugio dove sei stato quando avevi dodici anni; quell escursione carpita all'operatore del Parco (sperando d'avere capito bene).
Oppure cerchi sulla cartina dei nomi famigliari, sbirci la legenda cercando il colore dei sentieri per famiglie. Improvvisi, menti e millanti.

Sì, sono nato e ho sempre vissuto qui, ma proprio perché lavoro nel turismo non ho praticamente mai occasione di fare un'escursione, una gita in montagna, non dico scalare il Campanil Basso o la parete nord della Presanella; ma nemmeno un giro di un paio d'ore; gite da turista, appunto.
Quest'anno però mi sono deciso. complice un luglio come non si vedeva dal '54 e un orario di lavoro particolare, ne ho approfittato e ho fatto 3/4 uscite nei dintorni; prima di tutto per me, per farmi un giro in montagna; e poi anche per poter avere qualche consiglio aggiornato e di prima mano da dare ai clienti.

Così sabato scorso sono andato in Val Genova, salito alle cascate del Lares, disceso, percorso un pezzo del "sentiero delle cascate" fino alle località di Ragada e Todesca*, ancora su fino alla cascata di Casina Muta, e ritorno all'auto. Niente di che, una sgambata tanto per (ri)vedere la difficoltà del percorso e per avere un idea dei tempi di percorrenza.

Domenica mattina, invece, partito a piedi da casa sono andato ancora verso la Val Genova, ma passando dalla località dell'Antica Vetreria e da Santo Stefano. Invece di imboccare la valle sono salito nel bosco (in un tratto abbastanza verticale) fino ad incrociare il sentiero che porta all'Eremo di San Martino, una chiesetta a metà montagna con una vista su Val Genova e Val Rendena. Una cosa veloce, che dopo pranzo dovevo lavorare.
<html><embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="288" height="192" flashvars="host=picasaweb.google.com&captions=1&hl=en_US&feat=flashalbum&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Foscar.collini%2Falbumid%2F5497450714529759713%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></html>
[[foto|http://picasaweb.google.com/oscar.collini/ValGenova?feat=directlink]]

Lunedì a Campiglio (Madonna di Campiglio per i //foresti//; "Madonna" e basta per i milanesi); lasciata l'auto a Vallesinella (dal gruppo dell'~Adamello-Presanella alle Dolomiti di Brenta) una quarantina di minuti per arrivare al rifugio Casinei, e un'ora e venti per raggiungere i rifugi Tucket e Sella**. Un'occhiata alle cime che alpinisti (non escursionisti come me) affrontano partendo dai vari rifugi del Brenta e ritorno per un diverso sentiero verso il rifugio Casinei. Lasciato il tuckett mi attraversa il sentiero una marmotta; ok, nelle poche gite che ho fatto marmotte, camosci e altri animali li ho visti. Ma questa è stata per 5 minuti a fissarmi da un masso alto 3 metri, senza muoversi. E quando mi sono avvicinato m'ha fatto un fischio talmente forte che quasi perdo l'equilibrio, non sapevo avessero tutto questo fiato!
arrivato al Casinei ho seguito poi il sentiero che fa il giro più lungo fino alle cascate alte di Vallesinella e infine sono tornato alla macchina. A casa e poi di nuovo verso Campiglio per andare al lavoro.
<html><embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="288" height="192" flashvars="host=picasaweb.google.com&captions=1&hl=en_US&feat=flashalbum&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Foscar.collini%2Falbumid%2F5498196878560172225%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></html>
[[foto|http://picasaweb.google.com/oscar.collini/Brenta?feat=directlink]]
Lavoro, lavoro, lavoro fino ad oggi. Torno dalle parti della Presanella, verso il rifugio Segantini in Val d'Amola, lungo il sentiero 211 dedicato ad un certo Oscar Collini, mio nonno, guida alpina (che indegno nipote!) e gestore di rifugi. Porto con me la mia prima [[Geocache|http://www.geocaching.com/profile/default.aspx?guid=5464108a-5005-4594-8922-f46d9b3cfc7b]] da nascondere su questo sentiero; dopo averne trovate ben due è il momento di posizionarne una io. In realtà cercavo un punto particolare, che però non sono riuscito a trovare. I protagonisti sono tutti morti e non avevo nessuno a cui chiedere indicazioni. Cercavo, per nascondere la Cache il "//Sass del Gino//"; il sasso che nel 1938 aveva quasi ammazzato il fratello di mio nono, lo "zio Gino", appunto. Stavano modificando il tracciato del sentiero proprio perché pericoloso  per cadute di sassi quando, mentre si fumavano in pace una sigaretta, il sasso alle spalle del Gino cadde schiacciandolo a terra tutto ranicchiato e lasciando ben pochi centimetri. Più morto che vivo venne estratto da sotto il sasso e dopo pochi mesi era di nuovo in montagna, seppure non poteva più arrampcare, ma doveva limitarsi a gestire anche lui i rifugi. Purtroppo questo sasso non so dove sia. La storia sentita raccontare mille volte, ma il sasso mai visto. Quindi ho dovuto trovare un altro posto per nascondere la cache, ma una citazione dell'episodio ci voleva ugualmente. Raggiunto comunque il rifugio sono salito fino alla bocca dell'Om e sceso al rifugio Cornisello, da li al parcheggio e infine a casa.
<html><embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="288" height="192" flashvars="host=picasaweb.google.com&captions=1&hl=en_US&feat=flashalbum&RGB=0x000000&feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Foscar.collini%2Falbumid%2F5500156492849626721%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></html>
[[foto|http://picasaweb.google.com/oscar.collini/Segantini?feat=directlink]]

Ho inviato da poco i dati per la cache, che mi auguro autorizzino presto; caricato alcune foto di oggi e scritto queste righe come diario delle mie escursioni estive.
Con domani, temo, il lavoro non mi permetterà altre gite. A settembre spero il tempo sia clemente per darmi occasione di fare ancora qualcosa. Sempre sperando, un giorno, di poter fare anche qualcosa di più lungo. L'idea di fare il [[Sentiero di San Vili|Un viaggio di mille miglia]] non l'ho ancora abbandonata.

: * Località detta Todesca da quando una donna tedesca (appunto) vi si trasferì e comincio a produrre il distillato di genziana, santa donna!
: ** Due rifugi, uno dell'Alpenverein Tedesca e Austriaca e uno della Società Alpinisti Tridentini e dedicato a Quintino Sella, costruiti ad un anno e a venti metri di distanza la dicono lunga sui rapporti italo-austriaci all'inizio del secolo scorso.
giusto oggi ho definitivamente cancellato windows dal pc di casa (dopo abbondanti discussioni con la famiglia) è ho caricato ubuntu.
Di là dicevo che mi sarebbe servito esercizio per scrivere. Dicevo: cerco di incastrare una frase nei 140 caratteri di twitter. Dicevo: cambio le parole, le elimino, ribalto le frasi; sta a vedere che imparo a scrivere.
Dicevo anche che magari non imparavo a scrivere, ma potrebbe diventare una cosa che ti rilassa. Tipo giardino zen, dicevo.

Poi mi dicono: perché non scrivi? Perché non scrivi? Ehi, è un bel po' che non scrivi sul blog.
Allora scrivo di getto, in mona il giardino zen e tutto il resto.

Scrivo della prima nevicata e di quell'amica che al sole di Brescia mi percula coi fotomontaggi; scrivo di mia nonna, che a novantacinque anni ha avuto la forza di andarsene a morire dove voleva; scrivo dei libri che sto leggendo e di quelli ordinati oggi; scrivo della paura che mi fa un raffreddore, Dio non voglia che lo attacchi a mio papà; scrivo dei film visti in compagnia; scrivo dell'aperitivo dell'altra sera; scrivo delle cose belle e delle cose brutte; scrivo della vita.

Scrivo di getto. Scrivo e rileggo. Visto si stampi. Scrivo e cancello.

Scrivo.
In albergo siamo //in the middle// della "settimana degli inglesi". Sto //improving// piano piano (molto piano) le mie capacità di capire e parlare la lingua di Albione.
Certo gli equivoci non mancano: dopo tre giorni che i bambini ci chiedono "//sweeties//" arriva un soldo di cacio che si appende al banco come una vecchia pubblicità di ~McDonald's e chiede "//sisis//" ripetutamente. Io //obviously// gli do una caramella, ma questa continua "//sisis, sissis//" (fischiando su tutte le ''s''). Poi ho capito: "//scissors//"!
Però le caramelle mica le ha lasciate lì.

Io sono d'accordo che l'inglese sia lingua franca; che, soprattutto in certi lavori, lo si debba conoscere e tutto quel che volete; ma anche te, caro il mio //british citizen//, puoi ben provare a scandire un po' di più le parole, e mangiarti qualche vocale in meno.

Comunque l'uso intensivo dell'inglese mi permette di migliorarlo; la grammatica è sempre claudicante, ma il vocabolario aumenta parecchio.
E finora non ci sono state grosse //misunderstanding//: i clienti sono stati portati dove volevano (e sono stati recuperati e riportati in hotel); le lezione e le gite sono state prenotate; le cene e i taxi sono stati regolari.

Credo che per il giorno della partenza potrò sfoggiare un magnifico "//Thank you!//" senza che mi guardino strano. Per "//Have a safe trip home//" aspettiamo l'anno prossimo.
Giorno di riposo passato a fare Florence Nightingale, vabbe' lasciamo stare.
[[Dicevamo|Da poterci scrivere un libro]] al riguardo delle varie cose capitate al lavoro.
In questi giorni, tra tutto il resto, si sono messi metà dei clienti a cambiare le loro prenotazioni.
Chi slitta di una settimana.
Chi aggiunge un bambino e chi toglie il cane.
Chi arriva un giorno prima e parte un giorno dopo.
Chi arriva, per i primi due giorni sono in tre e poi si aggiunge un bambino e si toglie un adulto, parte prima ma chiede il late check out.
Chi sono in quattro, con due camere, o con una sola grande, però forse si aggiunge la nonna e allora servirebbe una singola in più, me la può opzionare.
Chi sale al capolinea, alla prima fermata scende la metà dei passeggeri e salgono due persone, alla seconda scende un terzo dei passeggeri e sale la metà degli scesi, di che colore sono i pantaloni dell'autista?
Chi dice che non gli abbiamo ritirato la disponibilità.
Chi sbaglia a vendere e chiede a noi un aiuto.
Chi non ci dà una mano che abbiamo sbagliato noi.
Chi non manda le caparre.
Chi le manda ad --penem-- mentula segugium.
Chi chiede disponibilità, non c'è, ma quanto costerebbe se ci fosse?
Chi ancora non sa come a fatto a non mandare a fanculo nessuno.

<script type="text/javascript">
lloogg_clientid = "83002109f17c9d8";
</script>
<script type="text/javascript" src="http://lloogg.com/l.js?c=83002109f17c9d8">
</script>
<script src="http://feeds.feedburner.com/~s/HuginnOgMuninn" type="text/javascript" charset="utf-8"></script>
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-476815-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<style type="text/css">#contentWrapper {display:none;}</style><div id="SplashScreen" style="border: 2px solid #ccc; display: block; text-align: center; width: 300px; margin: 100px auto; padding: 20px; color:#000; font-size: 16px; font-family:Tahoma; background-color:#f90;">
Do un'ultima mano di arancio,<br>metto in ordine le tabelle,<br>controllo se l'archivio è ok.<br>Do una spazzata per terra<br>e vi apro il sito.<br><br>se hai un modem <i>a criceti</i> puoi sempre leggermi <a href='http://feeds.feedburner.com/HuginnOgMuninn'>via feed</a> (che è più veloce)<br><br>
<a href="http://m.mofuse.com/mcorax"><img src="http://m.mofuse.com/images/public/chicklet_1.png" border="0" /></a></div>
Dicevo nell'ultimo post che scrivo, in realtà quel post  del due novembre, fate voi i conti ma non è che scriva granché.
Però ci penso a cosa scrivere, a dove scrivere e a chi scrivere. E provo anche a buttare giù due righe per mettere ordine a questi pensieri.

''Per chi scrivere''

Scrivo queste righe sul blog perché è ancora il luogo principale (anche se non il più in vista) della mia presenza in rete; ma i lettori ai quali mi riferisco sono i lettori delle varie "facce" che mostro su internet.

Prima di tutto, non fosse altro che sono stati i primi a sapere del blog, sono gli "amici del bar". Amici di lunga data; gente che può avere o non avere a sua volta un blog; che il commento non lo posta, me lo dice a voce la prima volta che mi vede; persone che possono capire le allusioni di certi pezzi. Sono quelli che, a intervalli più o meno dilatati, pensano "vediamo cos'ha scritto Oscar sul suo sito". Ragazzi: grazie delle visite, dei commenti, del fatto che ogni tanto parlate ad amici di amici di questo piccolo blog. Se andata avanti a leggere questo pezzo magari scoprirete che scrivo anche da altre parti; se vi capita passate anche di là.

Ci sono poi quelli che, bontà loro, mi hanno conosciuto per i più svariati motivi, e hanno deciso di darmi un'opportunità: mi hanno messo tra i loro feed e quando scrivo danno un'occhiata anche qui. Uno conosce il blog (o più facilmente, ormai, il tumblr), iscrizione reciproca al feed, poi ci si trova su mille altre piattaforme (friendfeed, anobii, twitter...) e ci si aggiunge come amici. 

Molti, dicevo, forse la maggior parte, non mi ha conosciuto per il blog (forse non sa nemmeno che ci sia anche il blog). Ho più gente che mi segue in tumblr che sul blog (pochi vs pochissimi).

Poi ci sono quelli arrivati cercando Lucillo Lievore, ma questa è un'altra storia.

Per chi scrivo? Per tutti e per nessuno. So che alcune cose non interessano ai primi e altre non possono essere comprese dai secondi. Mi barcameno e cerco di accontentare ora gli uni, ora gli altri.

''Dove scrivere''

Blog, tumblr, friendfeed,... e basta, se mi limito allo scrivere-scrivere.
Post di-tutto-un-po' sul blog. Frasette, immagini, reblog e citazioni sul tumblr, poco o niente su friendfeed (del suo stato d'abbandono parlerò un'altra volta).
Se per "scrivere" invece intendiamo comunicare qualsiasi informazione allora aggiungo anche zooomr, anobii, last.fm, persino lo status di google talk.

Alcuni di questi social network sono collegati, altri no. Potete facilmente essere arrivati qui da un link su tumblr, difficilmente da 2spaghi. Forse solo oggi avete scoperto questo blog (e probabilmente ho perso già diversi punti stima).

''Vengo io o venite voi?''

Ormai il pezzo è venuto lungo, pur senza aver detto niente. Allora aggiungo qui quello che non mi piace di friendfeed e dove vi invito a seguirmi.
Friendfeed, non sto qui a spiegarlo, raggruppa in un solo luogo tutto quello che postiamo in rete: il blog, il tumblr, le foto su flickr, i cinguettii di twitter. Ecco. Io vi posso anche voler bene, ma vedere dei tweet di risposta non-so-a-chi o leggere mezza riga del tumblr (già letto per intero in dashboard) non ne ho voglia (e immagino lo stesso si possa dire nei miei confronti).
Preferisco pubblicare dove posso il mio "biglietto da visita" di retaggr. Ne ho già parlato, lo trovate in home sul blog e sul tumblr (extra dashboard). Lo metto anche qui, che male non fa.
<html><iframe frameborder="0" allowtransparency="true" width="360px" height="300px" src="http://www.retaggr.com/Embed/corax"></iframe></html>
C'è tumblr, c'è anobii, c'è 2spaghi, c'era last.fm e ora ci sono (in attesa di trovare di meglio) meemix, jamendo e amiestreet, c'è friendfeed (!) ci sono gli shared items di google reader e c'è il blog. Ma siete VOI a dover cliccare per vedere uno o l'altro. Il badge sta lì, non è invasivo, non spinge per farvi vedere l'ultimo libro che ho messo in libreria.

Quindi, tornando a bomba, e chiudo, mi rivolgo ancora agli "amici del bar" citati prima: non leggete solo, ogni tanto, il blog. Fate un giro anche dalle altre parti.
Oppure no, non fatelo. Così ho qualcosa da raccontare la prossima volta che ci si incontra.
config.options.chkSaveBackups=false;
config.options.chkGenerateAnRssFeed=true;
config.numRssItems = 7;
readOnly = false;
Mi hanno augurato "due di questi [[giorni|Almanacco]]".
/***
''NestedSlidersPlugin for TiddlyWiki version 1.2.x and 2.0''
^^author: Eric Shulman
source: http://www.elsdesign.com/tiddlywiki/#NestedSlidersPlugin
license: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^

Quickly make any tiddler content into an expandable 'slider' panel, without needing to create a separate tiddler to contain the slider content. Optional syntax allows ''default to open'', ''custom button label/tooltip'' and ''automatic blockquote formatting.''

You can also 'nest' these sliders as deep as you like (see complex nesting example below), so that expandable 'tree-like' hierarchical displays can be created. This is most useful when converting existing in-line text content to create in-line annotations, footnotes, context-sensitive help, or other subordinate information displays.

For more details, please click on a section headline below:
++++!!!!![Configuration]>
Debugging messages for 'lazy sliders' deferred rendering:
<<option chkDebugLazySliderDefer>> show debugging alert when deferring slider rendering
<<option chkDebugLazySliderRender>> show debugging alert when deferred slider is actually rendered
===
++++!!!!![Usage]>
When installed, this plugin adds new wiki syntax for embedding 'slider' panels directly into tiddler content. Use {{{+++}}} and {{{===}}} to delimit the slider content. Additional optional syntax elements let you specify
*default to open
*cookiename
*heading level
*floater
*rollover
*custom label/tooltip
*automatic blockquote
*deferred rendering
The complete syntax, using all options, is:
//{{{
++++(cookiename)!!!!!^*[label|tooltip]>...
content goes here
===
//}}}
where:
* {{{+++}}} (or {{{++++}}}) and {{{===}}}^^
marks the start and end of the slider definition, respectively. When the extra {{{+}}} is used, the slider will be open when initially displayed.^^
* {{{(cookiename)}}}^^
saves the slider opened/closed state, and restores this state whenever the slider is re-rendered.^^
* {{{!}}} through {{{!!!!!}}}^^
displays the slider label using a formatted headline (Hn) style instead of a button/link style^^
* {{{"^"}}} //(without the quotes)//^^
makes the slider 'float' on top of other content rather than shifting that content downward^^
* {{{"*"}}} //(without the quotes)//^^
automatically opens/closes slider on "rollover" as well as when clicked^^
* {{{[label]}}} or {{{[label|tooltip]}}}^^
uses custom label/tooltip. (defaults are: ">" (more) and "<" (less)^^
* {{{">"}}} //(without the quotes)//^^
automatically adds blockquote formatting to slider content^^
* {{{"..."}}} //(without the quotes)//^^
defers rendering of closed sliders until the first time they are opened. //Note: deferred rendering may produce unexpected results in some cases. Use with care.//^^

//Note: to make slider definitions easier to read and recognize when editing a tiddler, newlines immediately following the {{{+++}}} 'start slider' or preceding the {{{===}}} 'end slider' sequence are automatically supressed so that excess whitespace is eliminated from the output.//
===
++++!!!!![Examples]>
simple in-line slider: 
{{{
+++
 content
===
}}}
+++
 content
===
----
use a custom label and tooltip: 
{{{
+++[label|tooltip]
 content
===
}}}
+++[label|tooltip]
 content
===
----
content automatically blockquoted: 
{{{
+++>
 content
===
}}}
+++>
 content
===
----
all options combined //(default open, cookie, heading, floater, rollover, label/tooltip, blockquoted, deferred)//
{{{
++++(testcookie)!!!^*[label|tooltip]>...
 content
===
}}}
++++(testcookie)!!!^*[label|tooltip]>...
 content
===
----
complex nesting example:
{{{
+++^[get info...|click for information]
 put some general information here, plus a floating slider with more specific info:
 +++^[view details...|click for details]
 put some detail here, which could include a rollover with a +++^*[glossary definition]explaining technical terms===
 ===
===
}}}
+++^[get info...|click for information]
 put some general information here, plus a floating slider with more specific info:
 +++^[view details...|click for details]
 put some detail here, which could include a rollover with a +++^*[glossary definition]explaining technical terms===
 ===
===
----
nested floaters
>menu: <<tiddler NestedSlidersExample>>
(see [[NestedSlidersExample]] for definition)
----
===
+++!!!!![Installation]>
import (or copy/paste) the following tiddlers into your document:
''NestedSlidersPlugin'' (tagged with <<tag systemConfig>>)
===
+++!!!!![Revision History]>

++++[2006.01.18 - 1.7.4]
only define adjustSliderPos() function if it has not already been provided by another plugin. This lets other plugins 'hijack' the function even when they are loaded first.
===

++++[2006.01.16 - 1.7.3]
added adjustSliderPos(place,btn,panel,panelClass) function to permit specialized logic for placement of floating panels. While it provides improved placement for many uses of floating panels, it exhibits a relative offset positioning error when used within *nested* floating panels. Short-term workaround is to only adjust the position for 'top-level' floaters.
===

++++[2006.01.16 - 1.7.2]
added button property to slider panel elements so that slider panel can tell which button it belongs to. Also, re-activated and corrected animation handling so that nested sliders aren't clipped by hijacking Slider.prototype.stop so that "overflow:hidden" can be reset to "overflow:visible" after animation ends
===

++++[2006.01.14 - 1.7.1]
added optional "^" syntax for floating panels. Defines new CSS class, ".floatingPanel", as an alternative for standard in-line ".sliderPanel" styles.
===

++++[2006.01.14 - 1.7.0]
added optional "*" syntax for rollover handling to show/hide slider without requiring a click (Based on a suggestion by tw4efl)
===

+++[2006.01.03 - 1.6.2]
When using optional "!" heading style, instead of creating a clickable "Hn" element, create an "A" element inside the "Hn" element. (allows click-through in SlideShowPlugin, which captures nearly all click events, except for hyperlinks)
===

+++[2005.12.15 - 1.6.1]
added optional "..." syntax to invoke deferred ('lazy') rendering for initially hidden sliders
removed checkbox option for 'global' application of lazy sliders
===

+++[2005.11.25 - 1.6.0]
added optional handling for 'lazy sliders' (deferred rendering for initially hidden sliders)
===

+++[2005.11.21 - 1.5.1]
revised regular expressions: if present, a single newline //preceding// and/or //following// a slider definition will be suppressed so start/end syntax can be place on separate lines in the tiddler 'source' for improved readability. Similarly, any whitespace (newlines, tabs, spaces, etc.) trailing the 'start slider' syntax or preceding the 'end slider' syntax is also suppressed.
===

+++[2005.11.20 - 1.5.0]
 added (cookiename) syntax for optional tracking and restoring of slider open/close state
===

+++[2005.11.11 - 1.4.0]
 added !!!!! syntax to render slider label as a header (Hn) style instead of a button/link style
===

+++[2005.11.07 - 1.3.0]
 removed alternative syntax {{{(((}}} and {{{)))}}} (so they can be used by other
 formatting extensions) and simplified/improved regular expressions to trim multiple excess newlines
===

+++[2005.11.05 - 1.2.1]
 changed name to NestedSlidersPlugin
 more documentation
===

+++[2005.11.04 - 1.2.0]
 added alternative character-mode syntax {{{(((}}} and {{{)))}}}
 tweaked "eat newlines" logic for line-mode {{{+++}}} and {{{===}}} syntax
===

+++[2005.11.03 - 1.1.1]
 fixed toggling of default tooltips ("more..." and "less...") when a non-default button label is used
 code cleanup, added documentation
===

+++[2005.11.03 - 1.1.0]
 changed delimiter syntax from {{{(((}}} and {{{)))}}} to {{{+++}}} and {{{===}}}
 changed name to EasySlidersPlugin
===

+++[2005.11.03 - 1.0.0]
 initial public release
===

===
+++!!!!![Credits]>
This feature was implemented by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]] with research, programming and suggestions from RodneyGomes, GeoffSlocock, and PaulPetterson
===
***/
// //+++!!!!![Code]
//{{{
version.extensions.nestedSliders = {major: 1, minor: 7, revision: 4, date: new Date(2006,1,18)};
//}}}

//{{{
// options for deferred rendering of sliders that are not initially displayed
if (config.options.chkDebugLazySliderDefer==undefined) config.options.chkDebugLazySliderDefer=false;
if (config.options.chkDebugLazySliderRender==undefined) config.options.chkDebugLazySliderRender=false;

// default styles for 'floating' class
setStylesheet(".floatingPanel { position:absolute; z-index:10; padding:0.5em; margin:0em; \
 background-color:#eee; color:#000; border:1px solid #000; text-align:left; }","floatingPanelStylesheet");
//}}}

//{{{
config.formatters.push( {
 name: "nestedSliders",
 match: "\\n?\\+{3}",
 terminator: "\\s*\\={3}\\n?",
 lookahead: "\\n?\\+{3}(\\+)?(\\([^\\)]*\\))?(\\!*)?(\\^)?(\\*)?(\\[[^\\]]*\\])?(\\>)?(\\.\\.\\.)?\\s*",
 handler: function(w)
 {
 var lookaheadRegExp = new RegExp(this.lookahead,"mg");
 lookaheadRegExp.lastIndex = w.matchStart;
 var lookaheadMatch = lookaheadRegExp.exec(w.source)
 if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
 {
 // location for rendering button and panel
 var place=w.output;

 // default to closed, no cookie
 var show="none"; var title=">"; var tooltip="show"; var cookie="";

 // extra "+", default to open
 if (lookaheadMatch[1])
 { show="block"; title="<"; tooltip="hide"; }

 // cookie, use saved open/closed state
 if (lookaheadMatch[2]) {
 cookie=lookaheadMatch[2].trim().substr(1,lookaheadMatch[2].length-2);
 cookie="chkSlider"+cookie;
 if (config.options[cookie]==undefined)
 { config.options[cookie] = (show=="block") }
 if (config.options[cookie])
 { show="block"; title="<"; tooltip="hide"; }
 else
 { show="none"; title=">"; tooltip="show"; }
 }

 // custom label/tooltip
 if (lookaheadMatch[6]) {
 title = lookaheadMatch[6].trim().substr(1,lookaheadMatch[6].length-2);
 if ((pos=title.indexOf("|")) != -1)
 { tooltip = title.substr(pos+1,title.length); title = title.substr(0,pos); }
 else
 { tooltip += " "+title; }
 }

 // create the button
 if (lookaheadMatch[3]) { // use "Hn" header format instead of button/link
 var lvl=(lookaheadMatch[3].length>6)?6:lookaheadMatch[3].length;
 var btn = createTiddlyElement(createTiddlyElement(place,"h"+lvl,null,null,null),"a",null,null,title);
 btn.onclick=onClickNestedSlider;
 btn.setAttribute("href","javascript:;");
 btn.setAttribute("title",tooltip);
 }
 else
 var btn = createTiddlyButton(place,title,tooltip,onClickNestedSlider);
 btn.sliderCookie = cookie; // save the cookiename (if any) in the button object

 // "non-click" MouseOver open/close slider
 if (lookaheadMatch[5]) btn.onmouseover=onClickNestedSlider;

 // create slider panel
 var panelClass=lookaheadMatch[4]?"floatingPanel":"sliderPanel";
 var panel=createTiddlyElement(place,"div",null,panelClass,null);
 panel.style.display = show;
 panel.button = btn; // so the slider panel know which button it belongs to
 btn.sliderPanel=panel;

 // render slider (or defer until shown) 
 w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
 if (lookaheadMatch[1]||!lookaheadMatch[8]) {
 // render now if "++++" (init open) or NOT "..." (deferred render)
 w.subWikify(lookaheadMatch[7]?createTiddlyElement(panel,"blockquote"):panel,this.terminator);
 // align slider/floater position with button
 adjustSliderPos(place,btn,panel,panelClass);
 }
 else {
 var src = w.source.substr(w.nextMatch);
 var endpos=findMatchingDelimiter(src,"+++","===");
 panel.setAttribute("raw",src.substr(0,endpos));
 panel.setAttribute("blockquote",lookaheadMatch[7]?"true":"false");
 panel.setAttribute("rendered","false");
 w.nextMatch += endpos+3;
 if (w.source.substr(w.nextMatch,1)=="\n") w.nextMatch++;
 if (config.options.chkDebugLazySliderDefer) alert("deferred '"+title+"':\n\n"+panel.getAttribute("raw"));
 }
 }
 }
 }
)

// TBD: ignore 'quoted' delimiters (e.g., "{{{+++foo===}}}" isn't really a slider)
function findMatchingDelimiter(src,starttext,endtext) {
 var startpos = 0;
 var endpos = src.indexOf(endtext);
 // check for nested delimiters
 while (src.substring(startpos,endpos-1).indexOf(starttext)!=-1) {
 // count number of nested 'starts'
 var startcount=0;
 var temp = src.substring(startpos,endpos-1);
 var pos=temp.indexOf(starttext);
 while (pos!=-1) { startcount++; pos=temp.indexOf(starttext,pos+starttext.length); }
 // set up to check for additional 'starts' after adjusting endpos
 startpos=endpos+endtext.length;
 // find endpos for corresponding number of matching 'ends'
 while (startcount && endpos!=-1) {
 endpos = src.indexOf(endtext,endpos+endtext.length);
 startcount--;
 }
 }
 return (endpos==-1)?src.length:endpos;
}
//}}}

//{{{
function onClickNestedSlider(e)
{
 if (!e) var e = window.event;
 var theTarget = resolveTarget(e);
 var theLabel = theTarget.firstChild.data;
 var theSlider = theTarget.sliderPanel
 var isOpen = theSlider.style.display!="none";
 // if using default button labels, toggle labels
 if (theLabel==">") theTarget.firstChild.data = "<";
 else if (theLabel=="<") theTarget.firstChild.data = ">";
 // if using default tooltips, toggle tooltips
 if (theTarget.getAttribute("title")=="show")
 theTarget.setAttribute("title","hide");
 else if (theTarget.getAttribute("title")=="hide")
 theTarget.setAttribute("title","show");
 if (theTarget.getAttribute("title")=="show "+theLabel)
 theTarget.setAttribute("title","hide "+theLabel);
 else if (theTarget.getAttribute("title")=="hide "+theLabel)
 theTarget.setAttribute("title","show "+theLabel);
 // deferred rendering (if needed)
 if (theSlider.getAttribute("rendered")=="false") {
 if (config.options.chkDebugLazySliderRender)
 alert("rendering '"+theLabel+"':\n\n"+theSlider.getAttribute("raw"));
 var place=theSlider;
 if (theSlider.getAttribute("blockquote")=="true")
 place=createTiddlyElement(place,"blockquote");
 wikify(theSlider.getAttribute("raw"),place);
 theSlider.setAttribute("rendered","true");
 }
 // show/hide the slider
 if(config.options.chkAnimate)
 anim.startAnimating(new Slider(theSlider,!isOpen,e.shiftKey || e.altKey,"none"));
 else
 theSlider.style.display = isOpen ? "none" : "block";
 if (this.sliderCookie && this.sliderCookie.length)
 { config.options[this.sliderCookie]=!isOpen; saveOptionCookie(this.sliderCookie); }
 // align slider/floater position with target button
 adjustSliderPos(theSlider.parentNode,theTarget,theSlider,theSlider.className);
 return false;
}

// hijack animation handler 'stop' handler so overflow is visible after animation has completed
Slider.prototype.coreStop = Slider.prototype.stop;
Slider.prototype.stop = function() { this.coreStop(); this.element.style.overflow = "visible"; }

// adjust panel position based on button position
if (window.adjustSliderPos==undefined) window.adjustSliderPos=function(place,btn,panel,panelClass) {
 ///////////////////////////////////////////////////////////////////////////////
 /// EXPERIMENTAL HACK - WORKS IN SOME CASES, NOT IN OTHERS
 ///////////////////////////////////////////////////////////////////////////////
 // "if this panel is floating and the parent is not also a floating panel"...
 if (panelClass=="floatingPanel" && place.className!="floatingPanel") {
 var left=0; var top=btn.offsetHeight;
 if (place.style.position!="relative") { left+=findPosX(btn); top+=findPosY(btn); }
 panel.style.left=left+"px"; panel.style.top=top+"px";
 }
}
//}}}
// //===
Qualche giorno fa vedo [[questo|http://puscic.tumblr.com/post/72027735/kika13-craig-kosak-paintings]] quadro sul tumblr di puScic.
Corvo? Arancione?
Insomma, sembra il mio blog :-)

Mando un'e-mail all'autore per chiedere il permesso di usarne una "fetta" da mettere in cima a questo blog, o al tumblr. Purtroppo (ma giustamente) mi dice che no, non è possibile, che il quadro è fatto per essere visto tutto intero. Allora niente; riapro pian pianino il blog, ma senza grossi cambiamenti d'immagine.
Mi sarebbe piaciuto avere un bell'header, l'ho anche chiesto ai miei quattro lettori tempo fa, mi piacerebbe avere un logo, un'immagine che caratterizzi un po' il blog (e il tumblr, e chissà cos'altro).

Nel frattempo, riguardo i corvi, ho trovato un estratto di un bel [[libro|http://www.anobii.com/books/American_Gods/9788804520832/0101b6f8ba426fc04b/]] che magari un giorno metterò a fianco del titolo, per adesso lo copio qui:
<<<
&laquo;Ehi, Hugin o Munin o chiunque tu sia!&raquo;
Il corvo si voltò, piegò la testa sospettosamente e lo fissò con i suoi occhi lucidi.
&laquo;Di': &ldquo;Mai più&rdquo;&raquo;.
&laquo;Vaffanculo&raquo; rispose l'uccello. Poi, mentre attraversavano insieme il bosco, non disse più niente.
<<<
La parte che odio di più: spiegare il come e il perché di questo bliki.
Nasce come "Huginn og Muninn", dal nome dei due corvi di Odino ma, visto il nome impronuciabile, viene da tutti ribattezzato "Corax", che è poi il nome col quale mi firmo in giro per la rete. Mi adeguo e un giorno decido di cambiare ufficialmente il nome al blog, sperando non porti male come con le barche.
Dopo un paio d'anni di attività, sconfortato dallo scarso appeal che sembra avere, decido di interrompere l'avventura.
Il bliki resta un po' di tempo lì, tra color che son sospesi. Non lo aggiorno, ma non lo cancello nemmeno.
Poi un giorno, anche per non far scadere l'account, lo riapro, cambio due cose, poi ancora una modifica, e un giorno decido di sciverci di nuovo.
Non ho costanza nemmeno nell'abbandonare le cose.
<HTML>''<CENTER> * * * ''</HTML>
Ai bei tempi qualcuno ne aveva pure parlato bene (almeno spero) e qualche recensione l'avevo sistemata a rotazione in apertura, ad imitazione delle fascette da "Settimana enigmistica" (il blog che non vanta tentativi di imitazione?) eccoli, forse raccontano meglio di me questo sito:

*[...] blog tecnicamente diverso dalla norma e un po' disorientante la mattina del primo dell'anno. ([[Gattostanco|http://gattostanco.diludovico.it]])
*[...] un blog, parlando in termini di struttura, diversissimo da ogni altro che leggo ([[Eiochemipensavo|http://eiochemipensavo.diludovico.it]])
*[...] credo di non aver mai visto in giro il CMS [usato], ogni tanto mi ci perdevo, ma una volta presa confidenza è molto carino ma soprattutto originale. ([[DeathLord|http://www.deathlord.it/court]])
*Lontano dai vari Wordpress e Movable Type è infatti realizzato con Tiddlywiki, un programmino davvero molto interessante. Innovativo. ([[Kurai|http://www.kurai.eu]])
*E' la prima volta che mi trovo di fronte ad un blog veramente wiki. [...] Questo è un blog del tutto particolare [...]. ([[Gloutchov|http://gloutchov.ilcannocchiale.it/]])
*[...] others use it [Tiddlywiki] as blogging software (e qui c'è un link a questo sito, ~NdC). ([[Carson's Post|http://carsonspost.wordpress.com/]])
*[...] poi vai a vedere il suo blog e non ci capisci NIENTE. Spetta spetta! questo solo i primi secondi. [...]. Da lui invece è tutto ben diverso ma mi è piaciuto subito ([[Adamo|http://adamo.splinder.com]])
<HTML>''<CENTER> * * * ''</HTML>
Avrete poi sicuramente notato (se non altro per l'attesa del caricamento) che questo sito non è esattamente "normale". Infatti, a differenza dei soliti blog basati su piattaforme classiche, questo sito usa un sistema particolare. In effetti è basato su TiddlyWiki, un wiki (se non sapete di cosa si parli potete fare un giro su wikipedia, che è a sua volta un wiki) costituito da una sola pagina che, in un singolo file html, contiene sia quello che voi leggete, sia i codici per dire al vostro browser come "disegnare" la pagina sul vostro schermo sia altre cosette per un buon funzionamento del sito (questo è il motivo della "pesantezza", pur con tutti gli accorgimenti e i trucchi che utilizzo).



<HTML><CENTER>

''<a href = "mailto:%6F%73%63%61%72%2E%63%6F%6C%6C%69%6E%69%40%67%6D%61%69%6C%2E%63%6F%6D">&#x6F;&#x73;&#x63;&#x61;&#x72;&#x2E;&#x63;&#x6F;&#x6C;&#x6C;&#x69;&#x6E;&#x69;&#x40;&#x67;&#x6D;&#x61;&#x69;&#x6C;&#x2E;&#x63;&#x6F;&#x6D;</a>''
Basato su [[TiddlyWiki|http://www.tiddlywiki.com]] <<version>>
<a href="http://creativecommons.org/licenses/by-sa/2.5/it/"><img src="immagini/somerights20.png"></a>

</center>
</html>
Ok, parlo di un film che non ha di sicuro fatto la storia del cinema; non so nemmeno quanti di voi l'abbiamo visto; non ricordo bene nemmeno perché IO l'abbia visto.
Classico film da domenica pomeriggio d'estate su retequattro (però non l'ho visto in estate su retequattro). Il titolo, non so quanto vi possa dire, è "//Mickey occhi blu//".
Magari non vi dice niente. Sicuramente vi dicono di più titoli come "//Rocky//" o "//C'era una volta in America//" o un telefilm come "//I Soprano//".
In questi film è apparso comunque il tipo di cui voglio parlare, ma non me lo ricordo, come invece lo ricordo il "//Mickey occhi blu//".
Questo attore, nonostante il nome inglese, fa praticamente sempre l'italo-americano, e quidi il mafioso.
In "//Mickey occhi blu//", ad esempio, Burt Young impersona il boss Vito Graziosi.
//Zio Vito// è un tipetto anziano, piccolo e magro; con degli occhiali dalla montatura spessa e nera, delle bianche basette vistose e la coppola.
O almeno credo; io, che il film l'ho visto una sola volta e con scarsa attenzione, me lo ricordo così. Magari mi sbaglio (anzi: sicuramente mi sbaglio).
Torniamo a bomba: il mio paese è piccolo, si vedono sempre le stesse persone e si conoscono un po' tutti. Eppure solo dopo aver visto quel film ho notato un tale, che poi ho visto passare davanti casa mia quasi tutti i giorni, che è uguale a Vito Graziosi. O almeno, è uguale allo //zio Vito// che ho in mente io. Che poi, incidentalmente, assomiglia ad uno dei miei vicini di casa di quando studiavo a Padova.
Adesso, cercando su imbd delle foto di [[Burt Young|http://www.imdb.com/name/nm0949350/]] nel film, mi sembra che non ci assomigli poi molto (a parte, ma poco, la foto nell'angolo). Fare questo post, in fondo, mi ha fatto capire che l'idea di //zio Vito// che avevo in mente non era quella vera, ma non capisco come il notare questo signore ''dopo'' il film me li abbia fatti confondere. E soprattutto, anche adesso che ho appena visto una foto vera dell'attore, ancora adesso per me sono identici e niente mi potrà fare cambiare idea.
Avevo deciso di scrivere qualcosa su questo tale un paio di giorni fa, dopo averlo incrociato per strada. Nel frattempo, sempre per i misteri della serendipity, ho letto un passo di Julio Cortazar che parlava della con-fusione tra le immagini che ci creiamo durante un racconto e quello che, in seguito, vediamo dal vivo; e di come, comunque, il ricordo falso possa essere più forte di quello vero e sostituirlo nella nostra mente.

Volevo raccontare semplicemente di avere vicino casa un "personaggio da film" e sono andato ad incasinarmi nei misteri della psiche; 'sto blog mica mi fa tanto bene.
Ho cambiato il nome del Tumblr: ora si chiama //[[cor@x|http://corax.tumblr.com]]// e ho un nuovo account twitter: //[[corax140|http://www.twitter.com/corax140]]//.
Se va come vorrei mi piacerebbe mettere un po' d'ordine in giro per le mie cose in rete.
A grandi linee: il blog per le cose lunghe. Il tumblr per segnalazioni, reblog e citazioni (con massimo una riga di commento). Twitter per cose brevi (com'è d'obbligo).

Poi farò il solito casino. Ma intanto ci provo...
{{{
<<gradient vert #f93 #fd6 #f93 #000>>&nbsp;>>
<<forEachTiddler
where
'tiddler.tags.contains("*blog*")' sortBy 'tiddler.created' descending
 script ' 
         function getFirstLines(s, count) { 
             var m = s.match(/\s*(.*)/g);
             var output = ""; 
             if(m) { 
                 if(m.length < count) 
                     count = m.length; 
                 for(var i = 0; i < count; i++) 
                     output +="\r"+m[i];
} 
             return output; 
         } 
     '
write '(index < 1) ? "@@color(#666):font-size(11pt):L&#39;ultimo post borborigmato da [["+tiddler.modifier+"]] il "+tiddler.created.formatString("DD MMM")+":@@ @@color(#f90):font-size(26pt):font-weight(bold):[["+tiddler.title+"|"+tiddler.title+"]]@@\n\n@@font-size(11pt):"+getFirstLines(tiddler.text,6)+" [[(...)|"+tiddler.title+"]]@@\n\n@@font-size(11pt):color(#666):continua e si commenta [[qui|"+tiddler.title+"]].@@\n" : ""'>>
<<gradient vert #f93 #fd6 #f93 #000>>&nbsp;>>
| @@color(#f90):font-size(14pt):''Io che non vivo<br>più di un'ora senza te''@@ | @@color(#f90):font-size(14pt):''Cinque pezzi facili''@@ |>| @@color(#f90):font-size(14pt):''Fermat un moment''@@ |
| Se cercate notizie, link ed altro su di me<br>provate:<br><br><html><a href="http://corax.altervista.org/hcard.htm" class="badge" style="font: 9px Geneva, Verdana, sans-serif; padding: 0 3px 0 0; border: 1px solid #000; background: #31757B; color: #fff; text-decoration: none;" title=""><span style="background: #000; border-right: 1px solid #000; color: #FFF; padding: 1px 0.75em; margin-right: 0.1em;">&#8250;&#8250;&#8250;</span> hCard</a></html><br><br><html><a href="http://www.retaggr.com/Card/corax" target="_blank" class="badge" style="font: 9px Geneva, Verdana, sans-serif; padding: 0 3px 0 0; border: 1px solid #069; background: #006699; color: #FFF; text-decoration: none;" title=""><span style="background: #FFF; border-right: 1px solid #069; color: #000; padding: 1px 0.75em; margin-right: 0.1em;">my</span>retaggr</a></html> |Gli ultimi cinque articoli pubblicati:<br><br><<forEachTiddler where 'tiddler.tags.contains("*blog*") 'sortBy 'tiddler.created' descending write '(index >= 1 && index < 6) ? "@@font-size(10pt):color(#f90):("+tiddler.created.formatString("0DD/0MM")+") - [["+tiddler.title+"]]@@\n" : ""' >><br><<search>><br> |<html><iframe src="http://corax.tumblr.com/mobile" width="350" height="250" align="right"></iframe></html> |Dispongo di<br>meravigliosi<br>argomenti<br>dei quali parlare<br>che non possono<br>essere contenuti<br>nel margine<br>troppo stretto<br>della pagina.<br><br>Il tumblr<br>originale<br>lo trovate [[qui|http://corax.tumblr.com]]|
|~| @@color(#f90):font-size(14pt):''La stanza dei bottoni''@@ |~|~|
|~| [img[info|immagini/info.png][Notizie]]&nbsp;[img[rss|/immagini/rssicon.png][FeedRSS]]&nbsp;[img[rss|immagini/iconrss.png][http://www.haloscan.com/members/rss.php?user=coraxgroup]] |~|~|
|borderless|k
[img[Autori|immagini/autori.png][AreaAutori]]
}}}
'Queste OpzioniInterfaccia per personalizzare il tuo TiddlyWiky vengono salvate nel browser

GeneraUnArchivioRSS <<option chkGenerateAnRssFeed>>
AbilitaAnimazioni <<option chkAnimate>>
SalvaBackups <<option chkSaveBackups>>
SalvataggioAutomatico <<option chkAutoSave>>

 Apri OpzioniAvanzate
<<options>>
----
<<option chkOpenInNewWindow>> ApriCollegamentiInNuovaFinestra
<<option chkSaveEmptyTemplate>> SalvaModelloVuoto
<<option chkToggleLinks>> Cliccando su un collegamento ad un frammento gi     aperto lo chiude
^^(evita con Control o altro tasto modificabile)^^ 
<<option chkHttpReadOnly>> Non rendere editabile dal web
<<option chkForceMinorUpdate>> Tratta le modifiche minori e mantieni data ed ora precedenti
^^(disattiva con Shift in modifica o con la combinazione Ctrl-Shift-Enter)^^
<<option chkConfirmDelete>> Richiedi Conferma prima di eliminare il frammento
 <<option txtMaxEditRows>>Numero massimo di righe per ciascun frammento: 
 <<option txtBackupFolder>>Percorso della directory di backup: 
Questo blog, ormai se ne saranno accorti anche i più distratti tra voi, è un'accozzaglia di pensieri slegati. Non ha ovviamente uno straccio di //linea editoriale// né una logica che unisce i vari post.
Anzi.
Spesso la logica non c'è nemmeno all'interno di un singolo post. Anche perché, oltre che scritti pressoché di getto e pubblicati senza rileggerli, nascono magari da un singolo //quid// che poi "elaboro" (per modo di dire). Su queste pagine la serendipity la fa da padrone, ma grazie a giri di sito in sito spesso si trovano anche cose interessanti.

Per dire; è già capitato con gli illuminati, la biston betularia e dio solo sa cos'altro. Un sabato al bar, due chiacchiere davanti a una birra, discorsi che prendono strade strane.

L'altra sera, ad esempio, si siede vicino a noi un gruppo di //giovinastri// ''*'' e i miei amici, notando uno di loro con una montatura di occhiali spessa, mi dicono che anch'io dovrei cambiare occhiali. "Già!" - dico io - "Poi sembro un giornalista degli anni '70 che dà la notizia della morte di Moro".

Il giorno dopo cazzeggio su Wikipedia, arrivo per qualche motivo su una pagina riguardante l'Apollo 11 (sì, [[ogni tanto|http://corax.tumblr.com/post/42864231/il-destino-ha-voluto-che-gli-uomini-che-sono]] ci capito) e scatta il flash con il giornalista della sera prima: Tito Stagno!

Cerco, trovo e condivido per quelli, come me, che non erano ancora nati uno spezzone della storica diretta del primo uomo sulla luna. Con l'altrettanto stroico bisticcio tra Tito Stagno e Ruggero Orlando "Ha toccato" "No" "Sì" "No, ha toccato adesso" ...

<html><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/NuSL-_HPcg4&hl=it&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/NuSL-_HPcg4&hl=it&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></html>

Poi, ovviamente, l'omino del cervello va per conto suo e il ricordo successivo è Fiorello a Viva radio2 che, nei panni di Vespa, presente gli ospiti di Porta a Porta: oltre, appunto, a Tito Stagno ci sono:
Dario Argento,
Tiziano Ferro,
Franca Rame,
Piero Ottone,
Daniele Piombi,
Platinette,
...




''*'' questo epiteto perché allo stesso tempo ad un altro gruppetto è stata controllata, //incredibile dictu//, dalla polizia l'età (ovviamente erano minori di 16 anni) e c'è stata una divertente discussione. Divertente per noi che seguivamo la scena, ma a quanto pare anche per loro: un'animata discussione tra ragazzi e forze dell'ordine finita con uno che prende il cappello del poliziotto, apre la portiera della volante e ci infila dentro la testa. Giovinastri perché io, se mai ai miei tempi ci fosse stato e applicato questo divieto, io mi sarei cagato sotto, altro che rispondere per le rime ai poliziotti. E giovinastri anche perché in quel momento ho realizzato che, alla mia età, potrei bere il doppio di loro.
<!--{{{-->
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div></div>
<!--}}}-->
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'
};

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			config.macros.option.genericCreate(place,'pas',opt,className,desc);
			// checkbox linked with this password "save this password on this computer"
			config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);			
			// text savePasswordCheckboxLabel
			place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
		},
		onChange: config.macros.option.genericOnChange
	}
});

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
			saveOptionCookie(opt);
		return config.options[name] ? "true" : "false";
	}
});

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
			}
		},
		set: function(name,value) {config.options[name] = decodeCookie(value);}
	}
});

// need to reload options to load passwordOptions
loadOptionsCookie();

/*
if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

merge(config.optionsDesc,{
		pasPassword: "Test password"
	});
*/
//}}}
/***
<<tiddler PasswordTweakDoc>>
!Code
***/
//{{{
version.extensions.PasswordTweak = {
 major: 1, minor: 0, revision: 2, date: new Date(2006,3,12),
 type: 'tweak',
 source: 'http://tiddlywiki.bidix.info/#PasswordTweak',
 docs: 'http://tiddlywiki.bidix.info/#PasswordTweakDoc'
};
//}}}
/***
!!config.macros.option
***/
//{{{
config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordType = "password"; // password | text

config.macros.option.onChangeOption = function(e)
{
 var opt = this.getAttribute("option");
 var elementType,valueField;
 if(opt) {
 switch(opt.substr(0,3)) {
 case "txt":
 elementType = "input";
 valueField = "value";
 break;
 case "pas":
 elementType = "input";
 valueField = "value";
 break;
 case "chk":
 elementType = "input";
 valueField = "checked";
 break;
 }
 config.options[opt] = this[valueField];
 saveOptionCookie(opt);
 var nodes = document.getElementsByTagName(elementType);
 for(var t=0; t<nodes.length; t++) {
 var optNode = nodes[t].getAttribute("option");
 if (opt == optNode) 
 nodes[t][valueField] = this[valueField];
 }
 }
 return(true);
};

config.macros.option.handler = function(place,macroName,params)
{
 var opt = params[0];
 var size = 15;
 if (params[1])
 size = params[1];
 if(config.options[opt] === undefined) {
 return;}
 var c;
 switch(opt.substr(0,3)) {
 case "txt":
 c = document.createElement("input");
 c.onkeyup = this.onChangeOption;
 c.setAttribute ("option",opt);
 c.size = size;
 c.value = config.options[opt];
 place.appendChild(c);
 break;
 case "pas":
 // input password
 c = document.createElement ("input");
 c.setAttribute("type",config.macros.option.passwordType);
 c.onkeyup = this.onChangeOption;
 c.setAttribute("option",opt);
 c.size = size;
 c.value = config.options[opt];
 place.appendChild(c);
 // checkbox link with this password "save this password on this computer"
 c = document.createElement("input");
 c.setAttribute("type","checkbox");
 c.onclick = this.onChangeOption;
 c.setAttribute("option","chk"+opt);
 place.appendChild(c);
 c.checked = config.options["chk"+opt];
 // text savePasswordCheckboxLabel
 place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
 break;
 case "chk":
 c = document.createElement("input");
 c.setAttribute("type","checkbox");
 c.onclick = this.onChangeOption;
 c.setAttribute("option",opt);
 place.appendChild(c);
 c.checked = config.options[opt];
 break;
 }
};
//}}}
/***
!! Option cookie stuff
***/
//{{{
window.loadOptionsCookie_orig_PasswordTweak = window.loadOptionsCookie;
window.loadOptionsCookie = function()
{
 var cookies = document.cookie.split(";");
 for(var c=0; c<cookies.length; c++) {
 var p = cookies[c].indexOf("=");
 if(p != -1) {
 var name = cookies[c].substr(0,p).trim();
 var value = cookies[c].substr(p+1).trim();
 switch(name.substr(0,3)) {
 case "txt":
 config.options[name] = unescape(value);
 break;
 case "pas":
 config.options[name] = unescape(value);
 break;
 case "chk":
 config.options[name] = value == "true";
 break;
 }
 }
 }
};

window.saveOptionCookie_orig_PasswordTweak = window.saveOptionCookie;
window.saveOptionCookie = function(name)
{
 var c = name + "=";
 switch(name.substr(0,3)) {
 case "txt":
 c += escape(config.options[name].toString());
 break;
 case "chk":
 c += config.options[name] ? "true" : "false";
 // is there an option link with this chk ?
 if (config.options[name.substr(3)]) {
 saveOptionCookie(name.substr(3));
 }
 break;
 case "pas":
 if (config.options["chk"+name]) {
 c += escape(config.options[name].toString());
 } else {
 c += "";
 }
 break;
 }
 c += "; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";
 document.cookie = c;
};
//}}}
/***
!! Initializations
***/
//{{{
config.shadowTiddlers.PasswordTweakDoc = "[[Full Documentation|http://tiddlywiki.bidix.info/l#PasswordTweakDoc]]\n"; 

// define config.options.pasPassword
if (!config.options.pasPassword) {
 config.options.pasPassword = 'defaultPassword';
 window.saveOptionCookie('pasPassword');
}
// since loadCookies is first called befor password definition
// we need to reload cookies
window.loadOptionsCookie();
//}}}
Il blog va in letargo, che mentre voi siete in piena gozzoviglia natalizio-festaiola noi siamo nel marasma generale, invasi da turisti come se piovesse (in effetti piove). Non prometto post per i prossimi giorni.
Quindi auguri anticipati a tutti e se non ci si dovesse sentire più... be', spero sia per colpa vostra.
/***
|''Name:''|PlayerPlugin|
|''Source:''|http://www.TiddlyTools.com/#PlayerPlugin|
|''Author:''|Eric Shulman - ELS Design Studios|
|''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|''~CoreVersion:''|2.0.10|

Embed a media player in a tiddler. 

!!!!!Usage
<<<
{{{<<player [type] [URL] [width] [height] [hidecontrols]>>}}}

where ''type'' is optional, and is one of the following: ''windows'', ''realone'', ''quicktime'', or ''flash''. If the media type is not specified, the plugin automatically renders Windows, Real, QuickTime or Flash player by matching known file extensions and/or specialized streaming-media transfer protocols (such as RTSP:). For unrecognized media types, the plugin assumes WindowsMedia (the player with the most users... *sigh*)
<<<
!!!!!Configuration
<<<
Default player size:
width: <<option txtPlayerDefaultWidth>> height: <<option txtPlayerDefaultHeight>>
<<<
!!!!!Examples
<<<
+++[Windows Media]...
Times Square Live Webcam
{{{<<player id=1 http://www.earthcam.com/usa/newyork/timessquare/asx/tsq_stream.asx>>}}}
<<player id=1 http://www.earthcam.com/usa/newyork/timessquare/asx/tsq_stream.asx>>
===
+++[RealOne]...
BBC London: Live and Recorded news
{{{<<player id=2 http://www.bbc.co.uk/london/realmedia/news/tvnews.ram>>}}}
<<player id=2 http://www.bbc.co.uk/london/realmedia/news/tvnews.ram>>
===
+++[Quicktime]...
America Free TV: Classic Comedy
{{{<<player id=3 http://www.americafree.tv/unicast_mov/AmericaFreeTVComedy.mov>>}}}
<<player id=3 http://www.americafree.tv/unicast_mov/AmericaFreeTVComedy.mov>>
===
+++[Flash]...
Asteroids arcade game
{{{<<player id=4 http://www.80smusiclyrics.com/games/asteroids/asteroids.swf 400 300>>}}}
<<player id=4 http://www.80smusiclyrics.com/games/asteroids/asteroids.swf 400 300>>
Google Video
{{{<<player id=5 flash http://video.google.com/googleplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DoQAAAIVnUNP6GYRY8YnIRNPe4Uk5-j1q1MVpJIW4uyEFpq5Si0hcSDuig_JZcB9nNpAhbScm9W_8y_vDJQBw1DRdCVbXl-wwm5dyUiiStl_rXt0ATlstVzrUNC4fkgK_j7nmse7kxojRj1M3eo3jXKm2V8pQjWk97GcksMFFwg7BRAXmRSERexR210Amar5LYzlo9_k2AGUWPLyRhMJS4v5KtDSvNK0neL83ZjlHlSECYXyk%26sigh%3Dmpt2EOr86OAUNnPQ3b9Tr0wnDms%26begin%3D0%26len%3D429700%26docid%3D-914679554478687740&thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer%3Fcontentid%3De7e77162deb04c42%26second%3D5%26itag%3Dw320%26urlcreated%3D1144620753%26sigh%3DC3fqXPPS1tFiUqLzmkX3pdgYc2Y&playerId=-91467955447868774 400 326>>}}}
<<player id=5 flash http://video.google.com/googleplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DoQAAAIVnUNP6GYRY8YnIRNPe4Uk5-j1q1MVpJIW4uyEFpq5Si0hcSDuig_JZcB9nNpAhbScm9W_8y_vDJQBw1DRdCVbXl-wwm5dyUiiStl_rXt0ATlstVzrUNC4fkgK_j7nmse7kxojRj1M3eo3jXKm2V8pQjWk97GcksMFFwg7BRAXmRSERexR210Amar5LYzlo9_k2AGUWPLyRhMJS4v5KtDSvNK0neL83ZjlHlSECYXyk%26sigh%3Dmpt2EOr86OAUNnPQ3b9Tr0wnDms%26begin%3D0%26len%3D429700%26docid%3D-914679554478687740&thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer%3Fcontentid%3De7e77162deb04c42%26second%3D5%26itag%3Dw320%26urlcreated%3D1144620753%26sigh%3DC3fqXPPS1tFiUqLzmkX3pdgYc2Y&playerId=-91467955447868774 400 326>>
YouTube Video
{{{<<player id=6 flash http://www.youtube.com/v/OdT9z-JjtJk 400 300>>}}}
<<player id=6 flash http://www.youtube.com/v/OdT9z-JjtJk 400 300>>
===
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''PlayerPlugin '' (tagged with <<tag systemConfig>>)
^^documentation and javascript for macro handling^^
<<<
!!!!!Revision History
<<<
''2006.02.26 [0.7.0]''
major re-write. handles default params better. create/recreate player objects via loadURL() API for use with interactive forms and scripts.
''2006.01.27 [0.6.0]''
added support for 'extra' macro params to pass through to object parameters
''2006.01.19 [0.5.0]''
Initial ALPHA release
''2005.12.23 [0.0.0]''
Started
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].
<<<
!!!!!Code
***/

// // macro definition

//{{{
version.extensions.player = {major: 0, minor: 8, revision: 0, date: new Date(2006,3,7)};

config.macros.player = {};
config.macros.player.html = {};
config.macros.player.handler= function(place,macroName,params) {
 var id=null;
 if (params[0].substr(0,3)=="id=") id=params.shift().substr(3);
 var type="";
 if ((params[0]=="windows")||(params[0]=="realone")||(params[0]=="quicktime")||(params[0]=="flash")) type=params.shift();
 var url=params.shift(); if (!url || !url.trim().length) url="";
 var width=params.shift();
 var height=params.shift();
 var show=(params.shift()=='hidecontrols')?"0":"1"; 
 var extras=""; while (params[0]!=undefined) extras+="<param name='"+params.shift()+"' value='"+params.shift()+"'> ";
 this.loadURL(place,id,type,url,width,height,show,extras);
}

if (config.options.txtPlayerDefaultWidth==undefined) config.options.txtPlayerDefaultWidth="100%";
if (config.options.txtPlayerDefaultHeight==undefined) config.options.txtPlayerDefaultHeight="480"; // can't use "100%"... player height doesn't stretch right :-(

config.macros.player.loadURL=function(place,id,type,url,width,height,show,extras) {

 if (id==undefined) id="tiddlyPlayer";
 if (!width) var width=config.options.txtPlayerDefaultWidth;
 if (!height) var height=config.options.txtPlayerDefaultHeight;
 if (url && (!type || !type.length)) {
 if ((url.indexOf('mms')!=-1)||(url.indexOf('.asx')!=-1)||(url.indexOf('.wvx')!=-1)||(url.indexOf('.wmv')!=-1)||(url.indexOf('.mp3')!=-1))
 var type="windows";
 else if ((url.indexOf('rtsp')!=-1)||(url.indexOf('.ram')!=-1)||(url.indexOf('.rpm')!=-1)||(url.indexOf('.rm' )!=-1)||(url.indexOf('.ra' )!=-1))
 var type="realone";
 else if ((url.indexOf('.mov')!=-1)||(url.indexOf('.qt' )!=-1))
 var type="quicktime";
 else if ((url.indexOf('.swf')!=-1)||(url.indexOf('.flv')!=-1))
 var type="flash";
 }
 if (!type) var type="none";
 if (!url) var url="";
 if (show===undefined) var show=true;
 if (!extras) var extras="";
 if (type=="none" && url.trim().length) url="<br>unrecognized media type:<br>"+url;
 if (type=="realone") height-=show?60:0; // leave room for controls
 if (type=="windows") show=show?"1":"0"; // player-specific param value
 if (type=="realone") show=show?"block":"none";
 if (type=="quicktime") show=show?"true":"false";

 // create containing div for player HTML
 // and add or replace player in TW DOM structure
 var newplayer = document.createElement("div");
 newplayer.playerType=type;
 newplayer.setAttribute("id",id+"_div");
 var existing = document.getElementById(id+"_div");
 if (existing && !place) place=existing.parentNode;
 if (!existing)
 place.appendChild(newplayer);
 else {
 if (place==existing.parentNode) place.replaceChild(newplayer,existing)
 else { existing.parentNode.removeChild(existing); place.appendChild(newplayer); }
 }

 var html=config.macros.player.html[type];
 html=html.replace(/%i%/mg,id);
 html=html.replace(/%w%/mg,width);
 html=html.replace(/%h%/mg,height);
 html=html.replace(/%u%/mg,url);
 html=html.replace(/%s%/mg,show);
 html=html.replace(/%x%/mg,extras);
 newplayer.innerHTML=html;
}
//}}}

// // Player-specific API functions: isReady(id), isPlaying(id), toggleControls(id), showControls(id,flag)

//{{{
// status values:
// Windows: 0=Undefined, 1=Stopped, 2=Paused, 3=Playing, 4=ScanForward, 5=ScanReverse
// 6=Buffering, 7=Waiting, 8=MediaEnded, 9=Transitioning, 10=Ready, 11=Reconnecting
// RealOne: 0=Stopped, 1=Contacting, 2=Buffering, 3=Playing, 4=Paused, 5=Seeking
// QuickTime: 'Waiting', 'Loading', 'Playable', 'Complete', 'Error:###'
// Flash: 0=Loading, 1=Uninitialized, 2=Loaded, 3=Interactive, 4=Complete
config.macros.player.isReady=function(id)
{
 var d=document.getElementById(id+"_div"); if (!d) return false;
 var p=document.getElementById(id); if (!p) return false;
 if (d.playerType=='windows') return !((p.playState==0)||(p.playState==7)||(p.playState==9)||(p.playState==11));
 if (d.playerType=='realone') return (p.GetPlayState()>1);
 if (d.playerType=='quicktime') return !((p.getPluginStatus()=='Waiting')||(p.getPluginStatus()=='Loading'));
 if (d.playerType=='flash') return (p.ReadyState>2);
 return true;
}
config.macros.player.isPlaying=function(id)
{
 var d=document.getElementById(id+"_div"); if (!d) return false;
 var p=document.getElementById(id); if (!p) return false;
 if (d.playerType=='windows') return (p.playState==3);
 if (d.playerType=='realone') return (p.GetPlayState()==3);
 if (d.playerType=='quicktime') return (p.getPluginStatus()=='Complete');
 if (d.playerType=='flash') return (p.ReadyState<4);
 return false;
}
config.macros.player.showControls=function(id,flag) {
 var d=document.getElementById(id+"_div"); if (!d) return false;
 var p=document.getElementById(id); if (!p) return false;
 if (d.playerType=='windows') { p.ShowControls=flag; p.ShowStatusBar=flag; }
 if (d.playerType=='realone') { alert('show/hide controls not available'); }
 if (d.playerType=='quicktime') // if player not ready, retry in one second
 { if (this.isReady(id)) p.setControllerVisible(flag); else setTimeout('config.macros.player.showControls("'+id+'",'+flag+')',1000); }
 if (d.playerType=='flash') { alert('show/hide controls not available'); }
}
config.macros.player.toggleControls=function(id) {
 var d=document.getElementById(id+"_div"); if (!d) return false;
 var p=document.getElementById(id); if (!p) return false;
 if (d.playerType=='windows') var flag=!p.ShowControls;
 if (d.playerType=='realone') var flag=true; // TBD
 if (d.playerType=='quicktime') var flag=!p.getControllerVisible();
 if (d.playerType=='flash') var flag=true; // TBD
 this.showControls(id,flag);
}
config.macros.player.fullScreen=function(id) {
 var d=document.getElementById(id+"_div"); if (!d) return false;
 var p=document.getElementById(id); if (!p) return false;
 if (d.playerType=='windows') p.DisplaySize=3;
 if (d.playerType=='realone') p.SetFullScreen();
 if (d.playerType=='quicktime') { alert('full screen not available'); }
 if (d.playerType=='flash') { alert('full screen not available'); }
}
//}}}

// // Player HTML

//{{{
// placeholder (no player)
config.macros.player.html.none=' \
 <table id="%i%" width="%w%" height="%h%" style="background-color:#111;border:0;margin:0;padding:0;"> \
 <tr style="background-color:#111;border:0;margin:0;padding:0;"> \
 <td width="%w%" height="%h%" style="background-color:#111;color:#ccc;border:0;margin:0;padding:0;text-align:center;"> \
 &nbsp; \
 %u% \
 &nbsp; \
 </td></tr></table>';
//}}}

//{{{
// Windows Media Player
// v7.1 ID: classid=CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6
// v9 ID: classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95
config.macros.player.html.windows=' \
 <object id="%i%" width="%w%" height="%h%" style="margin:0;padding:0;" \
 classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" \
 codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" \
 align="baseline" border="0" \
 standby="Loading Microsoft Windows Media Player components..." \
 type="application/x-oleobject"> \
 <param name="FileName" value="%u%"> <param name="ShowControls" value="%s%"> \
 <param name="ShowPositionControls" value="1"> <param name="ShowAudioControls" value="1"> \
 <param name="ShowTracker" value="1"> <param name="ShowDisplay" value="0"> \
 <param name="ShowStatusBar" value="1"> <param name="AutoSize" value="1"> \
 <param name="ShowGotoBar" value="0"> <param name="ShowCaptioning" value="0"> \
 <param name="AutoStart" value="1"> <param name="AnimationAtStart" value="1"> \
 <param name="TransparentAtStart" value="0"> <param name="AllowScan" value="1"> \
 <param name="EnableContextMenu" value="1"> <param name="ClickToPlay" value="1"> \
 <param name="InvokeURLs" value="1"> <param name="DefaultFrame" value="datawindow"> \
 %x% \
 <embed src="%u%" style="margin:0;padding:0;" \
 align="baseline" border="0" width="%w%" height="%h%" \
 type="application/x-mplayer2" \
 pluginspage="http://www.microsoft.com/windows/windowsmedia/download/default.asp" \
 name="%i%" showcontrols="%s%" showpositioncontrols="1" \
 showaudiocontrols="1" showtracker="1" showdisplay="0" \
 showstatusbar="%s%" autosize="1" showgotobar="0" showcaptioning="0" \
 autostart="1" autorewind="0" animationatstart="1" transparentatstart="0" \
 allowscan="1" enablecontextmenu="1" clicktoplay="0" invokeurls="1" \
 defaultframe="datawindow"> \
 </embed> \
 </object>';
//}}}

//{{{
// RealNetworks' RealOne Player
config.macros.player.html.realone=' \
 <table width="%w%" style="border:0;margin:0;padding:0;"><tr style="border:0;margin:0;padding:0;"><td style="border:0;margin:0;padding:0;"> \
 <object id="%i%" width="%w%" height="%h%" style="margin:0;padding:0;" \
 CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> \
 <PARAM NAME="CONSOLE" VALUE="player"> \
 <PARAM NAME="CONTROLS" VALUE="ImageWindow"> \
 <PARAM NAME="AUTOSTART" Value="true"> \
 <PARAM NAME="MAINTAINASPECT" Value="true"> \
 <PARAM NAME="NOLOGO" Value="true"> \
 <PARAM name="BACKGROUNDCOLOR" VALUE="#333333"> \
 <PARAM NAME="SRC" VALUE="%u%"> \
 %x% \
 <EMBED width="%w%" height="%h%" controls="ImageWindow" type="audio/x-pn-realaudio-plugin" style="margin:0;padding:0;" \
 name="%i%" \
 src="%u%" \
 console=player \
 maintainaspect=true \
 nologo=true \
 backgroundcolor=#333333 \
 autostart=true> \
 </OBJECT> \
 </td></tr><tr style="border:0;margin:0;padding:0;"><td style="border:0;margin:0;padding:0;"> \
 <object id="%i%_controls" width="%w%" height="60" style="margin:0;padding:0;display:%s%" \
 CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> \
 <PARAM NAME="CONSOLE" VALUE="player"> \
 <PARAM NAME="CONTROLS" VALUE="All"> \
 <PARAM NAME="NOJAVA" Value="true"> \
 <PARAM NAME="MAINTAINASPECT" Value="true"> \
 <PARAM NAME="NOLOGO" Value="true"> \
 <PARAM name="BACKGROUNDCOLOR" VALUE="#333333"> \
 <PARAM NAME="SRC" VALUE="%u%"> \
 %x% \
 <EMBED WIDTH="%w%" HEIGHT="60" NOJAVA="true" type="audio/x-pn-realaudio-plugin" style="margin:0;padding:0;display:%s%" \
 controls="All" \
 name="%i%_controls" \
 src="%u%" \
 console=player \
 maintainaspect=true \
 nologo=true \
 backgroundcolor=#333333> \
 </OBJECT> \
 </td></tr></table>';
//}}}

//{{{
// QuickTime Player
config.macros.player.html.quicktime=' \
 <OBJECT ID="%i%" WIDTH="%w%" HEIGHT="%h%" style="margin:0;padding:0;" \
 CLASSID="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" \
 CODEBASE="http://www.apple.com/qtactivex/qtplugin.cab"> \
 <PARAM name="SRC" VALUE="%u%"> \
 <PARAM name="AUTOPLAY" VALUE="true"> \
 <PARAM name="CONTROLLER" VALUE="%s%"> \
 <PARAM name="BGCOLOR" VALUE="#333333"> \
 <PARAM name="SCALE" VALUE="aspect"> \
 <PARAM name="SAVEEMBEDTAGS" VALUE="true"> \
 %x% \
 <EMBED name="%i%" WIDTH="%w%" HEIGHT="%h%" style="margin:0;padding:0;" \
 SRC="%u%" \
 AUTOPLAY="true" \
 SCALE="aspect" \
 CONTROLLER="%s%" \
 BGCOLOR="#333333" \
 EnableJavaSript="true" \
 PLUGINSPAGE="http://www.apple.com/quicktime/download/"> \
 </EMBED> \
 </OBJECT>';
//}}}

//{{{
// Flash Player
config.macros.player.html.flash='\
 <object id="%i%" width="%w%" height="%h%" style="margin:0;padding:0;" \
 classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" \
 codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"> \
 <param name="movie" value="%u%"> \
 <param name="quality" value="high"> \
 <param name="SCALE" value="exactfit"> \
 <param name="bgcolor" value="333333"> \
 %x% \
 <embed name="%i%" src="%u%" style="margin:0;padding:0;" \
 height="%h%" width="%w%" quality="high" \
 pluginspage="http://www.macromedia.com/go/getflashplayer" \
 type="application/x-shockwave-flash" scale="exactfit"> \
 </embed> \
 </object>';
//}}}
E' stato un triste Natale, quello dell'anno scorso.

Il più triste, sicuramente, da quello del 2009; quello noto come "Natale in amuchina" quando una recrudescenza, attorno al 12 dicembre, di notizie allarmanti su tg e quotidiani aveva portato allo scambio di auguri senza strette di mano, con un semplice cenno del capo da dietro la mascherina, a regali inzuppati del disinfettante e all'eliminazione fisica di maiali, pecore, buoi e asini da tutti i presepi.

L'anno scorso le predizioni dei maya si erano rivelate sbagliate, la mattina del 22 dicembre.
Ormai era tardi e il 25 le persone si scambiavano scatole di fagioli, torce elettriche e altri beni accumulati nei mesi precedenti; tutti belli infiocchettati con lacci da scarpe e bende mediche. Se li scambiavano davanti all'abete, ben stagionato e tagliato in comodi ciocchi; impilato con cura per quando sarebbero venuti a mancare luce e gas.
Calendari per l'anno nuovo non erano stati stampati. Banche, assicurazioni e fornitori non avevano regalato le  agende.
La Messa di mezzanotte andò deserta dappertutto, ma in fondo c'era stato il pienone solo tre giorni prima.
Erano tutti talmente delusi dal fatto che il mondo non fosse finito, in fondo ormai si era tutti pronti, che nessuno aveva una gran voglia di festeggiare; men che meno quei gruppi di invasati che si erano suicidati in massa ancora la sera del 20, in attesa di astronavi betelgeusiane e corpi astrali.
Anche quelli che avevano venduto tutto per comprarsi una barca, pur abitando a Belluno, non avevano molto da festeggiare.

Pian piano (ma nemmeno tanto) tutto tornò alla normalità. Bertolaso, richiamato in servizio per l'ultima catastrofe, ri-diede le dimissioni. Il governo si accollò il merito della salvezza del mondo. L'opposizione attaccò dicendo che non avrebbe potuto, senza l'aiuto della mafia. Insomma, si torno davvero alla normalità.
Nei giorni successivi ci sarebbero stati ancora il messaggio del Presidente, il concerto da Vienna, i morti sparati, Frizzi, Magalli e Adriana Volpe a reti unificate (sebbene il loro speciale del 21 dicembre fosse stato battuto sia da Porta a Porta che da //Cassandra Crossing// su rete4).
Tutte cose che ai maya gli fischiarono le orecchie.

:° i veri Post sotto l'albero, quelli belli, li trovate da [[Sir Squonk|http://www.blogsquonk.it/]].
Cosa dire di Praga che già non sappiate? Tutti voi sarete stati a Praga millemila volte e prima di me (ovvio, sono tornato ieri dalla mia prima visita). Ci sarete stati in tutte le stagioni, ci sarete stati una settimana. Io, purtroppo, solo tre giorni; e tre giorni di vento e, di tanto in tanto, pioggia. Quindi cosa vi posso raccontare che non sappiate già? Credo niente. Non certo i monumenti, le piazze, i ponti e le birrerie. Non la storia, antica e recente, o i volti delle persone. Non vi parlo del fatto che gli è toccato l'alfabeto solo dalla "k" in avanti, e di quelle lettere si sono dovuti accontentare. Non delle scale mobili (della metro) più ripide che abbia mai visto. Neppure della difficoltà a visitare qualunque cosa perché è chiusa proprio il martedì, o è aperta fino alle 16 o nelle notti di plenilunio degli anni bisestili. Non dell'abnorme numero di concerti di Mozart, Dvorak, Vivaldi o Smetana in ogni singola chiesa di Praga. Né del fatto che hanno accolto fin troppo bene il capitalismo, prova ne sono le cervellotiche combinazioni di biglietti per visitare il castello o le sinagoghe.
Magari vi posso parlare del //Molly Malone's//, un pub irlandese dietro Sant'Agnese. Caratterizzato da sedie tutte diverse, tavoli tutti diversi, avventori locali (nel senso di irlandesi) che seguono tornei di freccette il lunedì pomeriggio e da un'ampia scelta di birra. "Kilkenny?" "No, gli ultimi fusti li abbiamo restituiti perché erano pessimi" "Allora Strongbow." "Ehm, no." "Guinness?" "Good Choice". Ecco, forse questo sulle guide non lo trovate.
//(poco oltre il confine ~Germania-Repubblica Ceca, e subito dopo aver letto la guida che riportava come fosse illegale (immorale e ingrassante) per i pedoni attraversare col rosso)//
> Va' piano che qua ci sono i limiti di 130, mica come i tedeschi; popolo senza regole
> ...

//(da King Solomon, ristorante kosher del ghetto)//
> I wurstel sono kosher?
> Mica sono fatti col maiale; be' nemmeno con la carne, probabilmente.
Le Olimpiadi di Pechino si avvicinano.
La questione tibetana sembra risolta, accantonata o dimenticata. Pochi ne stanno ancora parlando.
Ma io non demordo e sono pronto a...
:''il grande gioco dell'estate''
//(musica, applausi registrati, spettacolo di luci)//

Come funziona? Semplice.
Indovinate se, chi e quando manifesterà durante le gare a favore del Tibet e verrà (presumibilmente) rinchiuso in qualche carcere cinese (se non peggio) e quale governo sarà costretto a --minacciare--, --trattare--, scusarsi con la Cina e chiedere il rilascio immediato (o dopo un paio di nerbate, via, che non hanno mai ucciso nessuno).

Lasciate un commento a questo post entro l'inizio della cerimonia inaugurale dei giochi (8 agosto).
Potete scegliere di scommettere su una o più delle seguenti domande:
*  ci sarà una manifestazione? (e ne verremo a conoscenza?)
*  da parte di un atleta o di un "civile"?
*  di quale nazionalità o entità politica non riconosciuta?
*  durante quale gara o cerimonia?
*  quale sarà la reazione del governo cinese?
ovviamente non si vince niente, come ([[non|http://it.wikiquote.org/wiki/Pierre_de_Coubertin]]) diceva quello: "l'importante è partecipare".
Sto lavorando un po' sull'estetica del blog.
Se avete voglia di fare un giro da queste parti, toccare qualcosa (senza rompere niente, mi raccomando!) e lasciarmi le vostre impressioni ve ne sarei grato.
Ascolto suggerimenti e proposte molto volentieri; se poi le metto in pratica non lo so.

No, il rampicante lì non ce lo metto!
/***
''QuoteOfTheDayPlugin for TiddlyWiki version 1.2.x and 2.0''
^^author: Eric Shulman - ELS Design Studios
source: http://www.elsdesign.com/tiddlywiki/#QuoteOfTheDayPlugin
license: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^

Display a randomly selected "quote of the day"

!!!!!Usage
<<<
{{{<<QOTD //tiddlername//>>}}}
Put your quotations into a tiddler (called //tiddlername//). Separate each quote by a horizontal rule (use "----" on a line by itself). Each time the macro is rendered it will display a different quotation, selected at random from the specified tiddler.
<<<
!!!!!Example
<<<
{{{<<QOTD Quotations>>}}}
<<QOTD Quotations>>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''QuoteOfTheDayPlugin'' (tagged with <<tag systemConfig>>)
^^documentation and javascript for QuoteOfTheDay handling^^
<<<
!!!!!Revision History
<<<
''2005.10.21 [1.0.0]''
Initial Release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].
Based on a suggestion by M.Russula
<<<
!!!!!Code
***/
//{{{
version.extensions.QOTD = {major: 1, minor: 0, revision: 0, date: new Date(2005,10,21)};
config.macros.QOTD = {};
config.macros.QOTD.handler= function(place,macroName,params) {
 var txt=store.getTiddlerText(params[0]); if (!txt) return;
 var quotes=txt.split("\n----\n");
 // then, get a random index number between 0 and N-1 and wikify that text
 wikify(quotes[Math.floor(Math.random()*quotes.length)],place);
}
//}}}
Il direttore, il cassiere ed un cliente (con un'animale al guinzaglio)
----
sco...
----
Film sul primo miracolo di Gesù
----
Gli scemi del villaggio
----
Film con Marylin Monroe, Yul Brinner e Telly Savalas
----
Un vecchio pezzo di formaggio in fondo al frigo...ricordo delle vacanze in Grecia
----
La stanza del cocainomane
----
Delitto al maneggio
----
Il primo film sottotitolato, dopo l'epoca del bianco e nero
----
Storia di un amore impossibile all'epoca del terrorismo suicida
----
Quel lunghissimo treno carico di rifiuti tossici
----
Sottana salvata dalla moda "vintage"
----
Fine-settimana dedicato alla lotta alle malattie veneree
----
Il giocatore che fece 21 punti da fuori area
----
Biografia di un famoso cavallo degli anni '50
----
Sovrano alcolista
----
Conflitto generazionale tra un ecologista e il padre industriale
----
Il sindaco promise che i nuovi argini avrebbero impedito un'altra tracimazione della Senna
----
Un roano vede il cavallo rossiccio già dall'altra parte dell'ostacolo naturale
----
Un miliardario in incognito prepara cocktail in un locale
----
Tra Genova e La Spezia si aggira un personaggio che parla sottovoce ai portuali
----
Fine settimana rovinato dall'influenza
----
Sullo sfondo, il Taj Mahal
----
Gourmet geneticamente modificati
----
Una giornalista segue l'intera missione dell'Apollo 11 con una maratona televisiva non-stop
----
Un nano viene ingannato da "Numero 5"
----
Una divinità poco nota lascia cadere sulla Terra alcune pagine del proprio libro sacro
----
A La Valletta si apre un maxiprocesso con molti atti
----
I Monty Python si interrogano sull'essenza della vendemmia
----
Una zuccherosa Levi Montalcini gira in Vespa per Roma negli anni '50
----
Dopo pranzo vennero tutti assaliti da un forte mal di testa
----
Alcuni gesuiti in Paraguay scoprono una misteriosa fonte di energia nucleare
----
Splendida cucciolata irlandese
----
È tanto tempo che non presento accrocchi duepuntozero.
È un po' che cerco un servizio per raccogliere i link alle mie varie cose che ho in rete: questo blog, il tumblr, ma anche le mie foto su Zooomr o le mie pagine su Jamendo e Amiestreet.
Però non ho mai trovato niente che mi piacesse. Mi sembra che tutti i servizi che ho esaminato siano troppo "social" per i miei gusti da orso.
Avevo trovato un servizio interessante in profil.es di [[profilebuilder|http://www.profilebuilder.com]], ma poco dopo la mia iscrizione hanno chiuso tutto in attesa di modifiche che, da quel che si può capire, trasformeranno il servizio in qualcosa di diverso, che non mi ispira.
Stufo, mi ero creato una pagina con la mia [[hcard|http://corax.altervista.org/hcard.htm]], basandomi su [[Microformats|http://microformats.org/wiki/Main_Page]].
Poi ho trovato un nuovo servizio, [[Retaggr|http://www.retaggr.com]] che, seppur con tutti i suoi limiti, si avvicina a quello che vorrei.
La mia pagina, in costruzione, è questa:
<html><iframe frameborder="0" allowtransparency="true" width="360px" height="300px" src="http://www.retaggr.com/Embed/corax"></iframe></html>
Nella pagina di apertura del blog, e presto anche sul tumblr, metterò un bottone come questo: <html><a href="http://www.retaggr.com/Card/corax" target="_blank">''My retaggr card''</a></html>, o magari anche più bellino, se riesco a farlo.

La personalizzazione è abbastanza elevata, riconosce diversi servizi, molti dei quali non conosco, e permette comunque di aggiungere link a qualsiasi pagina.
Potete contattarmi, se sono disponibile, su Gtalk, Meebo, Skype e presto MSN; potete mandarmi un'email direttamente da questa finestrella.
Potete leggere i feed del blog e , forse, quelli del tumblr.
Potete cliccare un po' in giro, anche i vari bottoni in basso che portano ai vari servizi o alle varie pagine. --Alcuni bottoni (alcuni dei siti non previsti dal servizio) non hanno icona, ma possono comunque essere cliccati e visitati--.

Un servizio utile, secondo me, per raccogliere in un solo posto tutte le nostre identità online.
Ci sono servizi forse migliori, ma la semplicità e la fondamentale //unilateralità// (voi non potete commentare, taggare o altro; al massimo mi potete scrivere, in diretta o in differita) mi fanno preferire questo servizio rispetto a molti altri.

E voi, usate altri servizi? Quali? E come vi trovate?
Alla fine lui muore
Alla fine lei muore
Alla fine lui muore, ma l'altro no
Alla fine lui muore?
Alla fine tutti muoiono
Alla fine lui non muore
Alla fine tutti muoiono, tranne lui
All'inizio lui muore
/***
''SearchOptionsPlugin for TiddlyWiki version 2.0''
^^author: Eric Shulman - ELS Design Studios
source: http://www.elsdesign.com/tiddlywiki/#SearchOptionsPlugin
license: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^

The TiddlyWiki search function normally looks in both tiddler titles and tiddler body content ('text'). However, narrowing the search so that it examines only titles or only text, or expanding the search to include text contained in tiddler tags can be very helpful, especially when searching on common words or phrases. In addition, it is often useful for the search results to show tiddlers with matching titles before tiddlers that contain matching text or tags.

!!!!!Usage
<<<
This plugin adds checkboxes (see below and in AdvancedOptions) to let you selectively configure the TiddlyWiki search function to just examine any combination of tiddler titles, text, or tags. It also provides an option to switch the search results order between 'titles mixed in' (default) and 'titles shown first', as well as an option display the search results as a list of links (in an auto-generated "SearchResults" tiddler), rather than actually displaying all matching tiddlers. You can also enable/disable the "incremental search" (key-by-key searching), so that a search is only initiated when you press the ENTER key or click on the "search:" prompt text.
<<<
!!!!!Configuration
<<<
In additional to the checkboxes in AdvancedOptions, a self-contained control panel is included here for your convenience:
<<option chkSearchTitles>> Search tiddler titles
<<option chkSearchText>> Search tiddler text
<<option chkSearchTags>> Search in tiddler tags
<<option chkSearchTitlesFirst>> Show title matches first
<<option chkSearchList>> Show list of matching tiddlers
<<option chkSearchIncremental>> Incremental searching
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''SearchOptionsPlugin'' (tagged with <<tag systemConfig>>)
^^documentation and javascript for SearchOptionsPlugin handling^^

When installed, this plugin automatically adds checkboxes in the AdvancedOptions shadow tiddler so you can enable/disable the extended search behavior. However, if you have customized your AdvancedOptions, you will need to manually add {{{<<option chkSearchTitles>>}}}, {{{<<option chkSearchText>>}}} and {{{<<option chkSearchTitlesFirst>>}}} (with suitable prompt text) to your customized tiddler.
<<<
!!!!!Revision History
<<<
''2006.01.20 [2.1.7]''
fixed setting of config.macros.search.reportTitle so that Tweaks can override it.
''2006.01.19 [2.1.6]''
improved SearchResults formatting, added a "search again" form to the report (based on a suggestion from MorrisGray)
define results report title using config.macros.search.reportTitle instead of hard-coding the tiddler title
''2006.01.18 [2.1.5]''
Created separate functions for reportSearchResults(text,matches) and discardSearchResults(), so that other developers can create alternative report generators.
''2006.01.17 [2.1.4]''
Use regExp.search() instead of regExp.test() to scan for matches. Correctd the problem where only half the matching tiddlers (the odd-numbered ones) were being reported.
''2006.01.15 [2.1.3]''
Added information (date/time, username, search options used) to SearchResults output
''2006.01.10 [2.1.2]''
use displayTiddlers() to render matched tiddlers. This lets you display multiple matching tiddlers, even if SinglePageModePlugin is enabled.
''2006.01.08 [2.1.1]''
corrected invalid variable reference, "txt.value" to "text" in story.search()
''2006.01.08 [2.1.0]''
re-write to match new store.search(), store.search.handler() and story.search() functions.
''2005.12.30 [2.0.0]''
Upgraded to TW2.0
when rendering SearchResults tiddler, closeTiddler() first to ensure display is refreshed.
''2005.12.26 [1.4.0]''
added option to search for matching text in tiddler tags
''2005.12.21 [1.3.7]''
use \\ to 'escape' single quotes in tiddler titles when generating "Open all matching tiddlers" link. Also, added access key: "O", to trigger "open all" link.
Based on a suggestion by UdoBorkowski.
''2005.12.18 [1.3.6]''
call displayMessage() AFTER showing matching tiddlers so message is not cleared too soon
''2005.12.17 [1.3.5]''
if no matches found, just display message and delete any existing SearchResults tiddler.
''2005.12.17 [1.3.4]''
use """{{{""" and """}}}""" to 'escape' display text in SearchResults tiddler to ensure that formatting contained in search string is not rendered 
Based on a suggestion by UdoBorkowski.
''2005.12.14 [1.3.3]''
tag SearchResults tiddler with 'excludeSearch' so it won't list itself in subsequent searches
Based on a suggestion by UdoBorkowski.
''2005.12.14 [1.3.2]''
added "open all matching tiddlers..." link to search results output.
Based on a suggestion by UdoBorkowski.
''2005.12.10 [1.3.1]''
added "discard search results" link to end of search list tiddler output for quick self-removal of 'SearchResults' tiddler.
''2005.12.01 [1.3.0]''
added chkSearchIncremental to enable/disable 'incremental' searching (i.e., search after each keystroke) (default is ENABLED).
added handling for Enter key so it can be used to start a search.
Based on a suggestion by LyallPearce
''2005.11.25 [1.2.1]''
renamed from SearchTitleOrTextPlugin to SearchOptionsPlugin
''2005.11.25 [1.2.0]''
added chkSearchList option
Based on a suggestion by RodneyGomes
''2005.10.19 [1.1.0]''
added chkSearchTitlesFirst option.
Based on a suggestion by ChristianHauck
''2005.10.18 [1.0.0]''
Initial Release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].
Based on a suggestion by LyallPearce.
<<<
!!!!!Code
***/
//{{{
version.extensions.SearchTitleOrText = {major: 2, minor: 1, revision: 6, date: new Date(2006,1,19)};
//}}}

//{{{
if (config.options.chkSearchTitles==undefined) config.options.chkSearchTitles=true;
if (config.options.chkSearchText==undefined) config.options.chkSearchText=true;
if (config.options.chkSearchTags==undefined) config.options.chkSearchTags=true;
if (config.options.chkSearchTitlesFirst==undefined) config.options.chkSearchTitlesFirst=true;
if (config.options.chkSearchList==undefined) config.options.chkSearchList=true;
if (config.options.chkSearchIncremental==undefined) config.options.chkSearchIncremental=false;

config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchTitles>> Search in tiddler titles";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchText>> Search in tiddler text";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchTags>> Search in tiddler tags";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchTitlesFirst>> Search results show title matches first";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchList>> Search results show list of matching tiddlers";
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSearchIncremental>> Incremental searching";
//}}}

//{{{
if (config.macros.search.reportTitle==undefined)
 config.macros.search.reportTitle="SearchResults";
//}}}

//{{{
config.macros.search.handler = function(place,macroName,params)
{
 var lastSearchText = "";
 var searchTimeout = null;
 var doSearch = function(txt)
 {
 story.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch);
 lastSearchText = txt.value;
 };
 var clickHandler = function(e)
 {
 doSearch(this.nextSibling);
 return false;
 };
 var keyHandler = function(e)
 {
 if (!e) var e = window.event;
 switch(e.keyCode)
 {
 case 13: // ELS: handle enter key
 doSearch(this);
 break;
 case 27:
 this.value = "";
 clearMessage();
 break;
 }
 if (config.options.chkSearchIncremental)
 if((this.value.length > 2) && (this.value != lastSearchText))
 {
 if(searchTimeout)
 clearTimeout(searchTimeout);
 var txt = this;
 searchTimeout = setTimeout(function() {doSearch(txt);},500);
 }
 };
 var focusHandler = function(e)
 {
 this.select();
 };
 var btn = createTiddlyButton(place,this.label,this.prompt,clickHandler);
 var txt = createTiddlyElement(place,"input",null,null,null);
 if(params[0])
 txt.value = params[0];
 txt.onkeyup = keyHandler;
 txt.onfocus = focusHandler;
 txt.setAttribute("size",this.sizeTextbox);
 txt.setAttribute("accessKey",this.accessKey);
 txt.setAttribute("autocomplete","off");
 if(config.browser.isSafari)
 {
 txt.setAttribute("type","search");
 txt.setAttribute("results","5");
 }
 else
 txt.setAttribute("type","text");
}
//}}}

//{{{
Story.prototype.search = function(text,useCaseSensitive,useRegExp)
{
 highlightHack = new RegExp(useRegExp ? text.escapeRegExp() : text,useCaseSensitive ? "mg" : "img");
 var matches = store.search(highlightHack,"title","excludeSearch");
 var q = useRegExp ? "/" : "'";
 clearMessage();
 if (!matches.length) {
 if (config.options.chkSearchList) discardSearchResults();
 displayMessage(config.macros.search.failureMsg.format([q+text+q]));
 } else {
 if (config.options.chkSearchList) 
 reportSearchResults(text,matches);
 else {
 var titles = []; for(var t=0; t<matches.length; t++) titles.push(matches[t].title);
 this.closeAllTiddlers(); story.displayTiddlers(null,titles);
 displayMessage(config.macros.search.successMsg.format([matches.length, q+text+q]));
 }
 }
 highlightHack = null;
}
//}}}

//{{{
TiddlyWiki.prototype.search = function(searchRegExp,sortField,excludeTag)
{
 var candidates = this.reverseLookup("tags",excludeTag,false,sortField);

 // scan for matching titles
 var title_results = [];
 if (config.options.chkSearchTitles)
 for(var t=0; t<candidates.length; t++)
 if(candidates[t].title.search(searchRegExp)!=-1)
 title_results.push(candidates[t]);

 // scan for matching text
 var text_results = [];
 if (config.options.chkSearchText)
 for(var t=0; t<candidates.length; t++)
 if(candidates[t].text.search(searchRegExp)!=-1)
 text_results.push(candidates[t]);

 // scan for matching tags
 var tag_results = [];
 if (config.options.chkSearchTags)
 for(var t=0; t<candidates.length; t++)
 if(candidates[t].tags.join(" ").search(searchRegExp)!=-1)
 tag_results.push(candidates[t]);

 // merge the results, eliminating redundant matches
 var results = [];
 for(var t=0; t<title_results.length; t++) results.pushUnique(title_results[t]);
 for(var t=0; t<text_results.length; t++) results.pushUnique(text_results[t]);
 for(var t=0; t<tag_results.length; t++) results.pushUnique(tag_results[t]);

 // if not 'titles first', re-sort results to so titles, text and tag matches are mixed together
 if(!sortField) sortField = "title";
 var bySortField=function (a,b) {if(a[sortField] == b[sortField]) return(0); else return (a[sortField] < b[sortField]) ? -1 : +1; }
 if (!config.options.chkSearchTitlesFirst) results.sort(bySortField);
 return results;
}
//}}}

// // ''REPORT GENERATOR''
//{{{
if (!window.reportSearchResults) window.reportSearchResults=function(text,matches)
{
 var title=config.macros.search.reportTitle
 var q = config.options.chkRegExpSearch ? "/" : "'";
 var body="";

 // summary: nn tiddlers found matching '...', options used
 body+="''"+config.macros.search.successMsg.format([matches.length,q+"{{{"+text+"}}}"+q])+"''\n";
 body+="^^//searched in:// ";
 body+=(config.options.chkSearchTitles?"''titles'' ":"");
 body+=(config.options.chkSearchText?"''text'' ":"");
 body+=(config.options.chkSearchTags?"''tags'' ":"");
 if (config.options.chkCaseSensitiveSearch||config.options.chkRegExpSearch) {
 body+=" //with options:// ";
 body+=(config.options.chkCaseSensitiveSearch?"''case sensitive'' ":"");
 body+=(config.options.chkRegExpSearch?"''text patterns'' ":"");
 }
 body+="^^";

 // numbered list of links to matching tiddlers
 body+="\n<<<";
 for(var t=0;t<matches.length;t++) body+="\n# [["+matches[t].title+"]]";
 body+="\n<<<\n";

 // open all matches button
 body+="<html><input type=\"button\" href=\"javascript:;\" ";
 body+="onclick=\"story.displayTiddlers(null,["
 for(var t=0;t<matches.length;t++)
 body+="'"+matches[t].title.replace(/\'/mg,"\\'")+"'"+((t<matches.length-1)?", ":"");
 body+="],1);\" ";
 body+="accesskey=\"O\" ";
 body+="value=\"open all matching tiddlers\"></html> ";

 // discard search results button
 body+="<html><input type=\"button\" href=\"javascript:;\" ";
 body+="onclick=\"story.closeTiddler('"+title+"'); store.deleteTiddler('"+title+"');\" ";
 body+="value=\"discard "+title+"\"></html>";

 // search again
 body+="\n\n----\n";
 body+="<<search \""+text+"\">> ";
 body+="<<option chkSearchTitles>>titles ";
 body+="<<option chkSearchText>>text ";
 body+="<<option chkSearchTags>>tags";
 body+="<<option chkCaseSensitiveSearch>>case-sensitive ";
 body+="<<option chkRegExpSearch>>text patterns";

 // create/update the tiddler
 var tiddler=store.getTiddler(title); if (!tiddler) tiddler=new Tiddler();
 tiddler.set(title,body,config.options.txtUserName,(new Date()),"excludeLists excludeSearch");
 store.addTiddler(tiddler); story.closeTiddler(title);

 // use alternate "search again" label in <<search>> macro
 var oldprompt=config.macros.search.label;
 config.macros.search.label="search again";

 // render tiddler
 story.displayTiddler(null,title,1); // force refresh

 // restore standard search label
 config.macros.search.label=oldprompt;

}

if (!window.discardSearchResults) window.discardSearchResults=function()
{
 // remove the tiddler
 story.closeTiddler(config.macros.search.reportTitle);
 store.deleteTiddler(config.macros.search.reportTitle);
}
//}}}
'' Trovati frammenti contenenti ''
^^//searched in:// ''titles'' ''text'' ''tags'' ^^
<<<
# [[-]]
# [[Gli "zii" che si ritroverà; pör fiol]]
# [[Like a rolling stone]]
# [[Sancipit /2]]
<<<
<html><input type="button" href="javascript:;" onclick="story.displayTiddlers(null,['-', 'Gli "zii" che si ritroverà; pör fiol', 'Like a rolling stone', 'Sancipit /2'],1);" accesskey="O" value="open all matching tiddlers"></html> <html><input type="button" href="javascript:;" onclick="story.closeTiddler('SearchResults'); store.deleteTiddler('SearchResults');" value="discard SearchResults"></html>

----
<<search "papà">> <<option chkSearchTitles>>titles <<option chkSearchText>>text <<option chkSearchTags>>tags<<option chkCaseSensitiveSearch>>case-sensitive <<option chkRegExpSearch>>text patterns

@@color(#000):font-size(16pt):un bliki
&nbsp;@@color(#f90):font-size(32pt):font-family(helvetica):''[[CORAX|HUGINNogMUNINN]]''@@&nbsp;
http://corax.altervista.org
// //''Name:'' InsertSmiley
// //''Version:'' <<getversion smiley>> (<<getversiondate  smiley "DD MMM YYYY">>)
// //''Author:'' AlanHecht
// //''Type:'' [[Macro|Macros]]

// //''Description:'' Inserts a small smiley graphic at the location of the macro and does not require any external graphics.  The method used should work on most current browser platforms.

// //''Syntax:'' << {{{smiley ;-)}}}>>
// //Examples: <<smiley>> <<smiley :-(>> <<smiley ;-)>> <<smiley :-|>> <<smiley :-D>>

// //''Directions:'' <<tiddler MacroDirections>>

// //''Notes:'' A regular smiley <<smiley>> will be displayed if no smiley string is provided.  Most smileys will work with or without the "nose" -- e.g. {{{;-)}}} is the same as {{{;)}}}

// //''Revision History:''
// // v0.1.0 (20 July 2005): initial release
// // v0.1.1 (20 July 2005): << {{{smiley}}}>> with no parameter displays a standard smiley

// //''Code section:''
version.extensions.smiley = {major: 0, minor: 1, revision: 1, date: new Date("Jul 20, 2005")};
config.macros.smiley = {}
config.macros.smiley.handler = function(place,macroName,params)
{
	var palette = ["transparent","#000000","#1a1507","#352e18","#464646","#666666","#a3141e","#b06b63","#cc9900","#dd9030","#dddddd","#e89d00","#edc32a","#f3cb3c","#fdf201","#fdf526","#ff3149","#ffac00","#ffbf06","#ffc846","#ffcc66","#ffd758","#ffdd01","#ffea7b","#ffed55","#ffffff"];
	var data = params;
	var imageMap = null;
	if(!data[0] || data[0] == ":-)" || data[0] == ":)")
		imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyffyffuujbaadyyyeeyeetttdabppppddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwboooowwwbllbbwwwboooowbrllbacwwwbbbbbrllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
	else if(data[0] == ":-(" || data[0] == ":(")
		imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyyyyyyuujbaadyyyeeyeetttdabppppddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwoooooowwrllbbwwwwbbbbbsrllbacwwbwwwwsbllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
	else if(data[0] == ";-)" || data[0] == ";)")
		imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyxxxxxuujbaadyyyxxxeetttdabppphddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwboooowwwbllbbwwwboooowbrllbacwwwbbbbbrllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
	else if(data[0] == ":-|" || data[0] == ":|")
		imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyffyffuujbaadyyyeeyeetttdabppppddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwoooooowwrllbbwwwwbbbbbsrllbacwwwwwwwsrllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
	else if(data[0] == ":-D" || data[0] == ":D")
		imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyeeyeeuujbaadyyyeeyeetttdabppppyyyyypmmlbbwbbbbbbbbbbblbbwbkzzzzzzzkbwbbwbfzzzzzzzfbwbbwbkzzzzzzzkbwbacwbkzzzzzkblcaablsbkzzzkblibaaablsbbbbblibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
	else
		createTiddlyElement(place,"span",null,"errorNoSuchMacro","unknown smiley");
	if(imageMap)
		{
		var box = createTiddlyElement(place,"span",null,"smiley",String.fromCharCode(160));
		box.style.position = "relative";
		box.style.width = "15px";
		box.style.height = "15px";
		box.style.marginLeft = "1px";
		box.style.marginRight = "1px";
		box.style.paddingRight = "12px";
		box.style.verticalAlign = "top";

		//now divide into 15x15 grid and create each pixel
		// rows
		for(r=0; r<15; r++)
			{
			// columns
			for(c=0; c<15; c++)
				{
				//create each pixel with the correct background
				var pix = document.createElement("img");
				pix.className = "smileyPixel";
				pix.style.position = "absolute";
				pix.border = 0;
				pix.style.top = r + "px";
				pix.style.left = c + "px";
				pix.style.width = "1px";
				pix.style.height = "1px";
				pix.style.backgroundColor = palette[imageMap.charCodeAt((r*15)+c)-97];
				pix.src = "data:image/gif,GIF89a%01%00%01%00%91%FF%00%FF%FF%FF%00%00%00%C0%C0%C0%00%00%00!%F9%04%01%00%00%02%00%2C%00%00%00%00%01%00%01%00%40%02%02T%01%00%3B";
				box.appendChild(pix);
				}
			}
		}
}
Ok, non riesco ad inserire seriamente i commenti qui dentro.
Ok, quello che ho fatto è ancora affetto da qualche problema (tipo il gigantismo).
Ok, devo trovare il sistema di collegare il commento al post.
Ma mi potete almeno mandare un e-mail.

Se volete.
/***

''Inspired by [[TiddlyPom|http://www.warwick.ac.uk/~tuspam/tiddlypom.html]]''

|Name|SplashScreenPlugin|
|Created by|SaqImtiaz|
|Location|http://lewcid.googlepages.com/lewcid.html#SplashScreenPlugin|
|Version|0.21 |
|Requires|~TW2.08+|
!Description:
Provides a simple splash screen that is visible while the TW is loading.

!Installation
Copy the source text of this tiddler to your TW in a new tiddler, tag it with systemConfig and save and reload. The SplashScreen will now be installed and will be visible the next time you reload your TW.

!Customizing
Once the SplashScreen has been installed and you have reloaded your TW, the splash screen html will be present in the MarkupPreHead tiddler. You can edit it and customize to your needs.

!History
* 20-07-06 : version 0.21, modified to hide contentWrapper while SplashScreen is displayed.
* 26-06-06 : version 0.2, first release

!Code
***/
//{{{
var old_lewcid_splash_restart=restart;

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


var oldText = store.getTiddlerText("MarkupPreHead");
if (oldText.indexOf("SplashScreen")==-1)
 {var siteTitle = store.getTiddlerText("SiteTitle");
 var splasher='\n\n<style type="text/css">#contentWrapper {display:none;}</style><div id="SplashScreen" style="border: 3px solid #ccc; display: block; text-align: center; width: 320px; margin: 100px auto; padding: 50px; color:#000; font-size: 28px; font-family:Tahoma; background-color:#eee;"><b>'+siteTitle +'</b> is loading<blink> ...</blink><br><br><span style="font-size: 14px; color:red;">Requires Javascript.</span></div>';
 if (! store.tiddlerExists("MarkupPreHead"))
 {var myTiddler = store.createTiddler("MarkupPreHead");}
 else
 {var myTiddler = store.getTiddler("MarkupPreHead");}
 myTiddler.set(myTiddler.title,oldText+splasher,config.options.txtUserName,null,null);
 store.setDirty(true);
 var splashScreenInstall = true;
}
//}}}
/***
!Sections in this Tiddler:
*Generic rules
**Links styles
**Link Exceptions
*Header
*Main menu
*Sidebar
**Sidebar options
**Sidebar tabs
*Message area
*Popup
*Tabs
*Tiddler display
**Viewer
**Editor
*Misc. rules
!Generic Rules /%==============================================%/
***/
/*{{{*/
body {
 font-size: 10pt;
 font-family: helvetica,arial;
 position: relative;
 margin: 0;
 padding: 0;
}

h1,h2,h3,h4,h5 {
 font-weight: bold;
 text-decoration: none;
 text-align: center;
}


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

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 }
/*}}}*/
/***
''General Link Styles'' /%-----------------------------------------------------------------------------%/
***/
/*{{{*/
.externalLink {
 text-decoration: underline;
}

.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;
}
/*}}}*/
/***
''Exceptions to common link styles'' /%------------------------------------------------------------------%/
***/
/*{{{*/

#mainMenu .tiddlyLinkExisting, 
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkExisting,
#sidebarTabs .tiddlyLinkNonExisting{
 font-weight: normal;
 font-style: normal;
}
 .header .tiddlyLink { 
         font-weight: bold !important; 
         font-style: normal !important;
         color: #f90 !important; 
     }



/*}}}*/
/***
!Header /%==================================================%/
***/
/*{{{*/

.header {
 border-bottom: 0px solid #F90;
} 

.headerForeground { 
 position: relative; 
 padding: 0.5em 0em 0.2em 0.2em; 
 left: 0px; 
 top: 0px; 
 background-attachment: absolute; 
 background-image: none; 
 background-repeat: no-repeat; 
 background-position:right 75%;
} 

.headerShadow {
 position: absolute; 
 padding: 0.5em 0em 0.2em 0.2em; 
 left: 0px; 
 top: 0px; 
}

.siteTitle {
 font-size: 28pt;
font-family: monospace,helvetica,arial,helvetica;
}


.siteSubtitle {
 font-size: 16pt;
 font-weight: bold;
}


/*}}}*/
/***
!Message area /%==================================================%/
***/
/*{{{*/
#messageArea {
position:absolute; left:1;top: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 /%==================================================%/
***/
/*{{{*/
.popup {
 font-size: .7em;
 padding: 0.2em;
 list-style: none;
 margin: 0;
}

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

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

.popup li a{
 display: block;
 padding: 0.2em;
}
/*}}}*/
/***
!Tabs /%==================================================%/
***/
/*{{{*/
.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;
}
/*}}}*/
/***
!Tiddler display rules /%==================================================%/
***/
/*{{{*/
#displayArea {
 width:100%;
}


.toolbar {
 text-align: right;
 font-size: .9em;
 visibility: hidden;
}
.toolbar2 {
 text-align: right;
 font-size: .9em;
 visibility: visible;
}
.toolbar3{
 text-align: right;
 font-size: 12pt;
 font-weight: bold !important; 
 visibility: visible;
}

.selected .toolbar {
 visibility: visible;
}

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

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

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

.missing .subtitle {
 display: none;
}

.subtitle {
 font-size: 1em;
}

/* I'm not a fan of how button looks in tiddlers... */
.tiddler .button {
 padding: 0.2em 0.4em;
 border: none;
color:#f90;
}

.tagging {
margin: 0.5em 0.5em 0.5em 0;
float: left;
display: none;
}

.isTag .tagging {
display: inline;
}

.tagged {
margin: 0.5em;
float:right;
}

.tagging, .tagged {
font-size: 0.8em;
padding-bottom: 2px;
background-color: #eee;
border-top: 1px solid #ccc;
border-left: 1px solid #ccc;
border-bottom: 2px solid #ccc;
border-right: 2px solid #ccc;
}

.tagging ul, .tagged ul {
list-style: none;margin: 0.25em;
padding: 0;
}

.tagClear {
clear: both;
}

.footer {
 font-size: .9em;
}

.footer li {
display: inline;
}
/***
''The viewer is where the tiddler content is displayed'' /%------------------------------------------------%/
***/
/*{{{*/
* html .viewer pre {
 width: 99%;
 padding: 0 0 1em 0;
}

.viewer {
 font-size: 10pt;
 line-height: 1.3em;
 padding-top: 0em;
}

.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 pre {
 padding: 0.5em;
 margin-left: 0.5em;
 font-size: .9em;
 line-height: 1.2em;
 overflow: auto;
}

.viewer code {
 font-size: 1.2em;
 line-height: 1.5em;
}
/*}}}*/
/***
''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/
***/
/*{{{*/
.editor {
font-size: 10pt;
color: #3f6;
bg-color: #000;
}

.editor input, .editor textarea {
 display: block;
 width: 100%;
 color: #3f6;
 background: #000;
}

.editorFooter {
 padding: 0.25em 0em;
 font-size: .8em;
}

.editorFooter .button {
padding-top: 0px; padding-bottom: 0px;}

.fieldsetFix {border: 0;
padding: 0;
margin: 1px 0px 1px 0px;
}
/*}}}*/
/***
!Misc rules /%==================================================%/
***/
/*{{{*/
.sparkline {
 line-height: 1em;
}

.sparktick {
 outline: 0;
}

.zoomer {
 font-size: 1em;
 position: absolute;
 padding: 1em;
}

.cascade {
 font-size: 1.1em;
 position: absolute;
 overflow: hidden;
}

#tiddlerHUGINNogMUNINN .subtitle{display:none;}
#tiddlerHUGINNogMUNINN .title{display:none;}
[id="tiddlerHUGINNogMUNINN"] .subtitle{display:none;}
#tiddlerHUGINNogMUNINN .toolbar2{display:none;}
[id="tiddlerHUGINNogMUNINN"] .toolbar2{display:none;}
#tiddlerHUGINNogMUNINN .toolbar3{display:none;}
[id="tiddlerHUGINNogMUNINN"] .toolbar3{display:none;}
#tiddlerHUGINNogMUNINN .tagged{display:none;}
[id="tiddlerHUGINNogMUNINN"] .tagged{display:none;}

#tiddlerInoltre .subtitle{display:none;}
#tiddlerInoltre .title{display:none;}
[id="tiddlerInoltre"] .subtitle{display:none;}
#tiddlerInoltre .tagged{display:none;}
[id="tiddlerInoltre"] .tagged{display:none;}

#tiddlerAreaAutori .subtitle{display:none;}
#tiddlerAreaAutori .title{display:none;}
[id="tiddlerAreaAutori"] .subtitle{display:none;}
#tiddlerAreaAutori .toolbar3{display:none;}
[id="tiddlerAreaAutori"] .toolbar3{display:none;}
#tiddlerAreaAutori .tagged{display:none;}
[id="tiddlerAreaAutori"] .tagged{display:none;}
div[tags~="formatting"] .tagged {display:none;} 
div[tags~="plugin"] .tagged {display:none;} 
div[tags~="systemConfig"] .tagged {display:none;} 
div[tags~="systemTiddler"] .tagged {display:none;} 
div[tags~="stile"] .tagged {display:none;} 
div[tags~="tag"] .tagged {display:none;} 
div[tags~="giochi"] .tagged {display:none;} 
div[tags~="info"] .tagged {display:none;} 
div[tags~="etichette"] .tagged {display:none;}
div[tags~="formatting"] .subtitle {display:none;} 
div[tags~="plugin"] .subtitle {display:none;} 
div[tags~="systemConfig"] .subtitle {display:none;} 
div[tags~="systemTiddler"] .subtitle {display:none;} 
div[tags~="stile"] .subtitle {display:none;} 
div[tags~="tag"] .subtitle {display:none;} 
div[tags~="giochi"] .subtitle {display:none;} 
div[tags~="info"] .subtitle {display:none;} 
div[tags~="etichette"] .subtitle {display:none;}

.tabSelected{
padding-top: 0.0em;
padding-left: 1em;
padding-right: 1em;
-moz-border-radius-topleft: 0.5em;
-moz-border-radius-topright: 0.5em;}

.tabUnselected {
padding-top: 0.0em;
padding-left: 1em;
padding-right: 1em;
-moz-border-radius-topleft: 0.5em;
-moz-border-radius-topright: 0.5em;}

.tabContents {
margin: 0px;
padding-top: 0px;
padding-bottom: 0px;
padding-left: 2px;
padding-right: 2px;
-moz-border-radius: 1em; }

.tiddler {
margin: 20px;
padding: 20px;
border: 1px solid #fff;}


.borderless, .borderless table, .borderless td, .borderless tr, 
.borderless th, .borderless tbody 
        { border:0 !important; margin:10px !important; padding:10px !important; } 

img { margin:.2em; } 

/*}}}*/
 per molti, ma non per tutti
----
 che non sa dove andare a parare
----
, e che bliki!
----
.
----
 in evoluzione
----
 che ti sta osservando
----
 nato per uccidere
----
 mai noioso (?)
----
 à la page
----
 che cambia
----
, e sai cosa bevi
----
 tira l'altro
----
 che avercene...
----
, se non ci fosse bisognerebbe inventarlo
----
 in toni d'arancio
----
 che scala le classifiche
----
 rutilante
----
TEMA: La musica — diceva Aristotele (filosofo greco del IV sec. a.C.) — non va praticata per un unico tipo di beneficio
che da essa può derivare, ma per usi molteplici, poiché può servire per l’educazione, per procurare la catarsi e in
terzo luogo per la ricreazione, il sollievo e il riposo dallo sforzo.
Il candidato si soffermi sulla funzione, sugli scopi e sugli usi della musica nella società contemporanea.
Se lo ritiene opportuno, può fare riferimento anche a sue personali esperienze di pratica e/o di ascolto musicale.

SVOLGIMENTO: Non posso ascoltare troppo Wagner, sento subito l'impulso ad occupare la Polonia.
/***
''Table of Contents Plugin for TiddlyWiki version 1.2.x and 2.0''
^^author: Eric Shulman - ELS Design Studios
source: http://www.elsdesign.com/tiddlywiki/#TableOfContentsPlugin
license: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^

When there are many tiddlers in a document, the standard 'tabbed list of tiddlers' in the right-hand sidebar can become very long, occupying a lot of page space and requiring a lot scrolling in order to locate and select a tiddler.

The TableOfContentsPlugin addresses this problem by replacing the standard tabbed list display with a single listbox/droplist control that uses a very small amount of page space, regardless of the number of tiddlers in the document.

!!!!!Usage
<<<
To view a tiddler, simply select (or double-click) its title from the listbox and it will automatically be displayed on the page. The listbox also includes special 'command' items that determine the order and type of tiddlers that are shown in the list:

''[by title]'' displays all tiddlers in the document.
''[by date/author/tags]'' displays indented sections, sorted accordingly, with headings (indicated by a '+') that can be expanded, one at a time, to view the list of tiddlers in that section.
''[missing]'' displays tiddlers that have been referenced within the document but do not yet exist.
''[orphans]'' displays tiddlers that do exist in the document but have not been referenced by a link from anywhere else within the document.
''[system]'' displays special tiddlers that are used by TiddlyWiki to configure built-in features and add-on macros/extensions. The list includes all tiddlers tagged with <<tag systemTiddlers>> ("templates") or <<tag systemConfig>> (plug-in extensions), plus any 'shadow tiddlers' (built-in default systemTiddlers) that have not been over-ridden by custom tiddler definitions.

The current list ''display setting is indicated by an arrow (">")'' symbol to the left of command item. Selecting a command item causes the listbox to be reloaded with the appropriate contents and sort order.

When you are viewing a list of tiddlers by date/author/tags, ''shift-clicking'' on a section heading or command item causes the listbox display to ''toggle between "show-one-section-at-a-time" and "expand-all-sections"'' display options, allowing you to quickly see all tiddler titles at once without having to view individual indented sections one at a time.

The ''size of the listbox can be adjusted'' so you can view more (or less) tiddler titles at one time. Select ''[-]'' to reduce the size by one line, ''[+]'' to increase the size by one line, or ''[=]'' to autosize the list to fit the current contents (toggles on/off). //Note: If the listbox is reduced to a single line, it displayed as a droplist instead of a fixed-sized listbox.// You can ''show/hide the entire listbox'' by selecting the "contents" label that appears above the listbox.
<<<
!!!!!Control Panel
<<<
By default, tiddlers tagged with <<tag excludeLists>>, are omitted from the TableOfContents so that 'system' tiddlers (e.g. MainMenu, SiteTitle, StyleSheet, etc.) can be hidden, reducing "information overload" and making it easier to select relevant tiddlers when reading your document. However, when //editing// your document, including these hidden tiddlers in the list can be more helpful, so that changes to the menus, titles, styles, etc. can be more quickly accomplished.
----
''To include hidden tiddlers in the TableOfContents display, select the following option:''
<<option chkTOCIncludeHidden>> include hidden tiddlers in TableOfContents(ignores <<tag excludeLists>> tag)
^^note: this setting is ignored when ''<<option chkHttpReadOnly>> HideEditingFeatures when viewed over HTTP'' is enabled^^
<<<
!!!!!Parameters
<<<
The macro accepts optional parameters to control various features and functions:
* ''label:text''
Replace the default text ("contents") that appears above the TableOfContents listbox. //Note: to include spaces in the label text, you must enclose the entire parameter in quotes// (e.g., {{{"label:my list of tiddlers"}}})
* ''sort:fieldtype''
Sets the initial display order for items in the listbox. 'fieldtype' is one of the following pre-defined keywords: ''title'', ''modified'' //(date)//, ''modifier'' //(author)//, ''tags'', ''missing'', ''orphans'', or ''system''
* ''date:format''
Controls the formatting of dates in TableOfContents display. 'format' is a text-substitution template containing one or more of the following special notations.
** DDD - day of week in full (eg, "Monday")
** DD - day of month, 0DD - adds leading zero
** MMM - month in full (eg, "July")
** MM - month number, 0MM - adds leading zero
** YYYY - full year, YY - two digit year
** hh - hours
** mm - minutes
** ss - seconds
//Note: to include spaces in the formatting template, you must enclose the entire parameter in quotes// (e.g., {{{"date:DDD, DD/MM/YY"}}})
* ''size:nnn''
Sets the initial number of lines to display in the listbox. If this parameter is omitted or "size:1" is specified, a single-line droplist is created. When a size > 1 is provided, a standard, fixed-size scrollable listbox is created. You can use "size:0" or "size:auto" to display a varible-height listbox that automatically adjusts to fit the current list contents without scrolling.
* ''width:nnn[cm|px|em|%]''
Sets the width of the listbox control. Overrides the built-in CSS width declaration (=100%). Use standard CSS width units (cm=centimeters, px=pixels, em=M-space, %=proportional to containing area). You can also use a ".TOCList" custom CSS class definition to override the built-in CSS declarations for the listbox.
* ''hidelist''
Hides the listbox when the TableOfContents is first displayed. Initially, only the listbox label and size controls will appear. Clicking on the listbox label text will alternately show/hide the listbox display. //Note: this setting does not affect the content of the listbox, only whether or not it is initially visible.//
* ''prompt''
Sets the non-selectable prompt text that is displayed as the first line of the listbox //(note: this feature is not supported by the listbox control on all browsers)//. Let's you include a short text message (such as "select a tiddler"), even when displaying a compact single-line droplist.
* ''padding:nnn[cm|px|em|%]''
Overrides default listbox control padding. Sets the CSS padding style.
* ''margin:nnn[cm|px|em|%]''
Overrides default listbox control spacing. Sets the CSS margin style.
* ''inline''
Normally, the TableOfContents plugin is contained inside a {{{<div>}}} element. This setting causes the plugin to use a {{{<span>}}} instead, allowing for more flexible 'inline' placement when embedded within other content.
<<<
!!!!!Examples
<<<
<<tableOfContents "label:all tiddlers" sort:title width:40% size:1>>
<<tableOfContents "label:by date" sort:modified size:1 width:40%>>
<<tableOfContents "label:tagged tiddlers" sort:tags size:1 width:40%>>
<<tableOfContents "label:system tiddlers" sort:system size:1 width:40%>>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''TableOfContentsPlugin'' (tagged with <<tag systemConfig>>)
^^documentation and javascript for TableOfContents handling^^

create/edit ''SideBarOptions'': (sidebar menu items) 
^^Add {{{<<tableOfContents>>}}} macro^^

<<<
!!!!!Revision History
<<<
''2005.12.21 [2.2.2]''
in onClickTOCList() and onDblClickTOCList(), prevent mouse events from 'bubbling' up to other handlers
''2005.10.30 [2.2.1]''
in refreshTOCList(), fixed calculation of "showHidden" to check for 'readOnly' (i.e., "via HTTP") flag
based on a report from LyallPearce
''2005.10.30 [2.2.0]''
hide tiddlers tagged with 'excludeLists' (with option to override, i.e., "include hidden tiddlers")
''2005.10.09 [2.1.0]''
combined documentation and code in a single tiddler
added click toggle for expand-all vs. show-one-branch
''2005.08.07 [2.0.0]''
major re-write to not use static ID values for listbox controls, so that multiple macro instances can exist without corrupting each other or the DOM. Moved HTML and CSS definitions into plugin code instead of using separate tiddlers. Added macro parameters for label, sort, date, size, width, hidelist and showtabs
''2005.08.03 [1.0.3]''
added "showtabs" optional parameter
''2005.07.27 [1.0.2]''
core update 1.2.29: custom overlayStyleSheet() replaced with new core setStylesheet(). Added show/hide toggle (click on 'contents' link)
''2005.07.23 [1.0.1]''
added parameter checks and corrected addNotification() usage
''2005.07.20 [1.0.0]''
Initial Release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]]
<<<
!!!!!Code
***/
//{{{
version.extensions.tableOfContents = {major: 2, minor: 2, revision: 3, date: new Date(2006,1,4)};
//}}}

// // 1.2.x compatibility
//{{{
if (!window.story) window.story=window;
if (!store.getTiddler) store.getTiddler=function(title){return store.tiddlers[title]}
if (!store.addTiddler) store.addTiddler=function(tiddler){store.tiddlers[tiddler.title]=tiddler}
if (!store.deleteTiddler) store.deleteTiddler=function(title){delete store.tiddlers[title]}
//}}}

//{{{
// define defaults for cookie-based option values
if (config.options.txtTOCSortBy==undefined) config.options.txtTOCSortBy="modified";
if (config.options.txtTOCListSize==undefined) config.options.txtTOCListSize=12;
if (config.options.chkTOCShow==undefined) config.options.chkTOCShow=true;
if (config.options.chkTOCIncludeHidden==undefined) config.options.chkTOCIncludeHidden=false;

config.shadowTiddlers.AdvancedOptions += "\n<<option chkTOCIncludeHidden>> include hidden tiddlers in TableOfContents";

// define macro "tableOfContents" to render controls
config.macros.tableOfContents = { label: "tiddler" };

config.macros.tableOfContents.css = '\
.TOC { padding:0.5em 1em 0.5em 1em; }\
.TOC a { padding:0em 0.25em 0em 0.25em; color:inherit; }\
.TOCList { width: 100%; font-size:8pt; margin:0em; }\
';

config.macros.tableOfContents.html = '\
<div style="text-align:right">\
 <span style="float:left">\
 <a href="JavaScript:;" id="TOCMenu" style="padding: 0em;"\
 onclick="onClickTOCMenu(this)" title="show/hide table of contents">%label%</a>\
 </span>\
 <a href="JavaScript:;" id="TOCSmaller" style="display:inline"\
 onclick="resizeTOC(this)" title="riduci grandezza lista">&#150;</a>\
 <a href="JavaScript:;" id="TOCLarger"style="display:inline"\
 onclick="resizeTOC(this)" title="aumenta grandezza lista">+</a>\
 <a href="JavaScript:;" id="TOCMaximize"style="display:inline"\
 onclick="resizeTOC(this)" title="ottimizza grandezza lista">=</a>\
</div>\
';

config.macros.tableOfContents.handler = function(place,macroName,params) { 
 var parsedParams = new Array();
 parsedParams['label']=this.label;
 parsedParams['inline']=false;
 while (params.length>0) {
 if (params[0]=="label:none")
 parsedParams['label']="";
 else if (params[0].substr(0,6)=="label:")
 parsedParams['label']=params[0].substr(6);
 if (params[0].substr(0,7)=="prompt:")
 parsedParams['prompt']=params[0].substr(7);
 if (params[0].substr(0,8)=="padding:")
 parsedParams['padding']=params[0].substr(8);
 if (params[0].substr(0,7)=="margin:")
 parsedParams['margin']=params[0].substr(7);
 if (params[0].substr(0,5)=="sort:")
 parsedParams['sortby']=params[0].substr(5);
 if (params[0].substr(0,5)=="date:")
 parsedParams['date']=params[0].substr(5);
 if ((params[0]=="size:auto")||(params[0]=="size:0"))
 parsedParams['autosize']=true;
 else if (params[0] && (params[0].substr(0,5)=="size:"))
 parsedParams['requestedSize']=params[0].substr(5);
 if (params[0].substr(0,6)=="width:")
 parsedParams['width']=params[0].substr(6);
 if (params[0]=="hidelist")
 parsedParams['hidelist']=true;
 if (params[0]=="inline")
 parsedParams['inline']=true;
 params.shift(); 
 }
 setStylesheet(config.macros.tableOfContents.css,"tableOfContents");
 var newTOC=createTiddlyElement(place,parsedParams['inline']?"span":"div",null,"TOC",null)
 if (parsedParams['margin']) { newTOC.style.margin=parsedParams['margin']; }
 if (parsedParams['padding']) { newTOC.style.padding=parsedParams['padding']; }
 if (parsedParams['label']!="") newTOC.innerHTML=config.macros.tableOfContents.html.replace(/%label%/,parsedParams['label']);
 var newTOCList=createTOCList(newTOC,parsedParams)
 refreshTOCList(newTOCList);
 store.addNotification(null,reloadTOCLists); // reload listbox after every tiddler change
}

// IE needs explicit global scoping for functions/vars called from browser events
window.onChangeTOCList=onChangeTOCList;
window.onClickTOCList=onClickTOCList;
window.onDblClickTOCList=onDblClickTOCList;
window.reloadTOCLists=reloadTOCLists;
window.refreshTOCList=refreshTOCList;
window.onClickTOCMenu=onClickTOCMenu;
window.resizeTOC=resizeTOC;
 
function createTOCList(place,params)
{
 var theList = createTiddlyElement(place,"select",null,"TOCList",params['prompt'])
 theList.onchange=onChangeTOCList;
 theList.onclick=onClickTOCList;
 theList.ondblclick=onDblClickTOCList;
 theList.style.display=config.options.chkTOCShow ? "block" : "none" ;
 theList.sortBy=config.options.txtTOCSortBy;
 theList.dateFormat="DD MMM YYYY";
 theList.requestedSize=config.options.txtTOCListSize;
 theList.expandall=false;
 if (params['sortby'])
 { theList.sortBy=params['sortby']; theList.noSortCookie=true; }
 if (params['date'])
 { theList.dateFormat=params['date']; }
 if (params['autosize'])
 { theList.autosize=true; theList.noSizeCookie=true; }
 if (params['requestedSize'])
 { theList.requestedSize=params['requestedSize']; theList.noSizeCookie=true; }
 if (params['width'])
 { theList.style.width=params['width']; }
 if (params['hidelist'])
 { theList.style.display ="none" ; theList.noShowCookie=true; }
 if (params['expandall'])
 { theList.expandall=true; }
 return theList;
}

function onChangeTOCList()
{
 var thisTiddler=this.options[this.selectedIndex].value;
 if ((this.size==1)&&(thisTiddler!='')) story.displayTiddler(null,thisTiddler,1);
 refreshTOCList(this);
 return false;
}

function onClickTOCList(e)
{

 if (!e) var e = window.event;
 if (this.size==1)
 return; // don't toggle display for droplist
 if (e.shiftKey)
 { this.expandall=!this.expandall; refreshTOCList(this);}
 e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation();
 return true;
}

function onDblClickTOCList(e)
{
 if (!e) var e = window.event;
 var thisTiddler=this.options[this.selectedIndex].value;
 if (thisTiddler!='') story.displayTiddler(null,thisTiddler,1);
 e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation();
 return false;
}

function reloadTOCLists()
{
 var all=document.all? document.all : document.getElementsByTagName("*");
 for (var i=0; i<all.length; i++)
 if (all[i].className=="TOCList")
 { all[i].selectedIndex=-1; refreshTOCList(all[i]); }
}

var TOCCmdMax=7;
function refreshTOCList(theList)
{
 // DEBUG var starttime=new Date();
 var selectedIndex = theList.selectedIndex;
 if (selectedIndex==-1) selectedIndex=0;
 var sortBy = theList.sortBy;
 var showHidden = config.options.chkTOCIncludeHidden
 && !(config.options.chkHttpReadOnly && readOnly);

 if (selectedIndex==0) sortBy=theList.sortBy; // "nnn tiddlers" heading
 if (selectedIndex==1) sortBy='title';
 if (selectedIndex==2) sortBy='modified';
 if (selectedIndex==3) sortBy='modifier';
 if (selectedIndex==4) sortBy='tags';
 if (selectedIndex==5) sortBy='missing';
 if (selectedIndex==6) sortBy='orphans';
 if (selectedIndex==7) sortBy='system';
 if (selectedIndex>TOCCmdMax)
 {
 if (theList.options[theList.selectedIndex].value=='')
 expandTOC(theList);
 return;
 }
 theList.sortBy = sortBy;
 if (!theList.noSortCookie)
 { config.options.txtTOCSortBy=sortBy; saveOptionCookie("txtTOCSortBy"); }

 // get the list of tiddlers and filter out 'hidden' tiddlers (i.e., tagged with "excludeLists")
 var tiddlers = [];
 switch (sortBy) {
 case "missing":
 tiddlers = store.getMissingLinks();
 break;
 case "tags":
 tiddlers = store.getTags();
 break;
 case "orphans":
 var titles = store.getOrphans();
 for (var t = 0; t < titles.length; t++)
 if (showHidden || store.getTiddler(titles[t]).tags.find("excludeLists")==null)
 tiddlers.push(titles[t]);
 break;
 case "system":
 var temp = store.getTaggedTiddlers("systemTiddlers");
 for (var t = 0; t < temp.length; t++)
 if (showHidden || temp[t].tags.find("excludeLists")==null)
 tiddlers.pushUnique(temp[t].title,true);
 var temp = store.getTaggedTiddlers("systemConfig");
 for (var t = 0; t < temp.length; t++)
 if (showHidden || temp[t].tags.find("excludeLists")==null)
 tiddlers.pushUnique(temp[t].title,true);
 for (var t in config.shadowTiddlers) tiddlers.pushUnique(t,true);
 tiddlers.sort();
 break;
 default:
 var temp = store.getTiddlers(sortBy);
 for (var t = 0; t < temp.length; t++)
 if (showHidden || temp[t].tags.find("excludeLists")==null)
 tiddlers.push(temp[t]);
 }

 // clear current list contents
 while (theList.length > 0) { theList.options[0] = null; }
 theList.saved=null;

 // add heading and control items to list
 var i=0;
 var theHeading=tiddlers.length+' tiddlers:';
 if (sortBy=='missing') theHeading=tiddlers.length+' missing tiddlers:';
 if (sortBy=='orphans') theHeading=tiddlers.length+' orphaned tiddlers:';
 if (sortBy=='tags') theHeading=tiddlers.length+' tags:';
 if (sortBy=='system') theHeading=tiddlers.length+' system tiddlers:';
 var indent=String.fromCharCode(160)+String.fromCharCode(160);
 var sel=">";
 theList.options[i++]=new Option(theHeading,'',false,false);
 theList.options[i++]=new Option(((sortBy=="title")?sel:indent)+' [per titolo]','',false,false);
 theList.options[i++]=new Option(((sortBy=="modified")?sel:indent)+' [per data]','',false,false);
 theList.options[i++]=new Option(((sortBy=="modifier")?sel:indent)+' [per autore]','',false,false);
 theList.options[i++]=new Option(((sortBy=="tags")?sel:indent)+' [per categoria]','',false,false);
 theList.options[i++]=new Option(((sortBy=="missing")?sel:indent)+' [mancanti]','',false,false);
 theList.options[i++]=new Option(((sortBy=="orphans")?sel:indent)+' [orfani]','',false,false);
 theList.options[i++]=new Option(((sortBy=="system")?sel:indent)+' [system]','',false,false);
 // output the tiddler list
 switch(sortBy)
 {
 case "title":
 for (var t = 0; t < tiddlers.length; t++)
 theList.options[i++] = new Option(tiddlers[t].title,tiddlers[t].title,false,false);
 break;
 case "modified":
 // sort descending for newest date first
 tiddlers.sort(function (a,b) {if(a['modified'] == b['modified']) return(0); else return (a['modified'] > b['modified']) ? -1 : +1; });
 // continue with same logic as for 'modifier'...
 case "modifier":
 var lastSection = "";
 for (var t = 0; t < tiddlers.length; t++)
 {
 var tiddler = tiddlers[t];
 var theSection = "";
 if (sortBy=="modified") theSection = tiddler.modified.formatString(theList.dateFormat);
 if (sortBy=="modifier") theSection = tiddler.modifier;
 if (theSection != lastSection)
 {
 theList.options[i++] = new Option('+ '+theSection,"",false,false);
 lastSection = theSection;
 }
 theList.options[i++] = new Option(indent+indent+tiddler.title,tiddler.title,false,false);
 }
 expandTOC(theList);
 break;
 case "tags":
 // tagged tiddlers, by tag
 var tagcount=0;
 var lastTag = null;
 for (var t = 0; t < tiddlers.length; t++) // actually a list of tags, not tiddlers...
 {
 var theTag = tiddlers[t][0];
 var tagged = new Array();
 var temp = store.getTaggedTiddlers(theTag);
 for(r=0; r<temp.length; r++)
 if (showHidden || temp[r].tags.find("excludeLists")==null)
 tagged.push(temp[r]);
 if (tagged.length)
 {
 tagcount++;
 theList.options[i++]= new
 Option('+ '+theTag+" ("+tagged.length+")","",false,false);
 for(r=0; r<tagged.length; r++)
 theList.options[i++] = new
 Option(indent+indent+tagged[r].title,tagged[r].title,false,false);
 }
 }
 // count untagged tiddlers
 var temp = store.getTiddlers("title");
 var c=0; for (r=0; r<temp.length;r++) if (!temp[r].tags.length) c++;
 // create 'pseudo-tag' listing untagged tiddlers (if any)
 if (c>0)
 {
 theList.options[i++] = new Option("+ untagged ("+c+")","",false,false);
 for (r=0; r<temp.length;r++) if (!temp[r].tags.length)
 theList.options[i++] = new
 Option(indent+indent+temp[r].title,temp[r].title,false,false);
 }
 theList.options[0].text=tagcount+' tags:';
 expandTOC(theList);
 break;
 case "missing":
 case "orphans":
 case "system":
 for (var t = 0; t < tiddlers.length; t++)
 theList.options[i++] = new Option(tiddlers[t],tiddlers[t],false,false);
 break;
 }
 theList.selectedIndex=selectedIndex; // select current control item
 theList.size = (theList.autosize)?theList.options.length:theList.requestedSize;
 // DEBUG var endtime=new Date();
 // DEBUG alert("refreshTOC() elapsed time: "+(endtime-starttime)+" msec");
}

// show/hide branch of TOCList based on current selection
function expandTOC(theList)
{
 var selectedIndex = theList.selectedIndex;
 if (selectedIndex==-1) selectedIndex=0;
 var sortBy = theList.sortBy;

 // don't collapse/expand list for alpha-sorted "flatlist" TOC contents
 if ((sortBy=="title")||(sortBy=="missing")||(sortBy=="orphans")||(sortBy=="system"))
 return;
 // or list control items
 if ((selectedIndex>0)&&(selectedIndex<=TOCCmdMax))
 return;

 var theText = theList.options[selectedIndex].text;
 var theValue = theList.options[selectedIndex].value;
 // save fully expanded list contents (if not already saved)
 if (!theList.saved)
 {
 theList.saved = new Array();
 for (var i=0; i < theList.length; i++)
 {
 opt = theList.options[i];
 theList.saved[i] = new Option(opt.text, opt.value, opt.defaultSelected, opt.selected);
 }
 }
 // clear current list contents
 while (theList.length > 0) { theList.options[0] = null; }

 // put back all items 
 if (theList.expandall)
 {
 var i=0;
 for (var t=0; t<theList.saved.length; t++)
 {
 opt=theList.saved[t];
 theList.options[i++] = new Option(opt.text,opt.value,opt.defaultSelected,opt.selected);
 if (opt.text==theText) selectedIndex=i-1;
 }
 theList.selectedIndex = selectedIndex;
 theList.size = (theList.autosize)?theList.options.length:theList.requestedSize;
 return;
 }

 // put back heading items until item text matches current selected heading
 var i=0;
 for (var t=0; t<theList.saved.length; t++)
 {
 opt=theList.saved[t];
 if (opt.value=='')
 theList.options[i++] = new Option(opt.text,opt.value,opt.defaultSelected,opt.selected);
 if (opt.text==theText)
 break;
 }
 selectedIndex=i-1; // this is the NEW index of the current selected heading
 // put back items with value!='' until value==''
 for ( t++; t<theList.saved.length; t++)
 {
 opt=theList.saved[t];
 if (opt.value!='')
 theList.options[i++] = new Option(opt.text,opt.value,opt.defaultSelected,opt.selected);
 if (opt.value=='')
 break;
 }
 // put back remaining items with value==''
 for ( ; t<theList.saved.length; t++)
 {
 opt=theList.saved[t];
 if (opt.value=='')
 theList.options[i++] = new Option(opt.text,opt.value,opt.defaultSelected,opt.selected);
 }
 theList.selectedIndex = selectedIndex;
 theList.size = (theList.autosize)?theList.options.length:theList.requestedSize;
}

// these functions process clicks on the 'control links' that are displayed above the listbox
function getTOCListFromButton(which)
{
 var theList = null;
 switch (which.id)
 {
 case 'TOCMenu':
 var theSiblings = which.parentNode.parentNode.parentNode.childNodes;
 var thePlace=which.parentNode.parentNode.parentNode.parentNode.parentNode.id;
 break;
 case 'TOCSmaller':
 case 'TOCLarger':
 case 'TOCMaximize':
 var theSiblings = which.parentNode.parentNode.childNodes;
 var thePlace=which.parentNode.parentNode.parentNode.parentNode.id;
 break;
 }
 for (k=0; k<theSiblings.length; k++)
 if (theSiblings[k].className=="TOCList") { theList=theSiblings[k]; break; }
 // DEBUG if (theList) alert('found '+theList.className+' for '+which.id+' button in '+thePlace);
 return theList;
}

function onClickTOCMenu(which)
{
 var theList=getTOCListFromButton(which);
 if (!theList) return;
 var opening = theList.style.display=="none";
 if(config.options.chkAnimate)
 anim.startAnimating(new Slider(theList,opening,false,"none"));
 else
 theList.style.display = opening ? "block" : "none" ;
 if (!theList.noShowCookie)
 { config.options.chkTOCShow = opening; saveOptionCookie("chkTOCShow"); }
 return(false);
}

function resizeTOC(which)
{
 var theList=getTOCListFromButton(which);
 if (!theList) return;

 var size = theList.size;
 if (theList.style.display=="none") // make sure list is visible
 if(config.options.chkAnimate)
 anim.startAnimating(new Slider(theList,true,false,"none"));
 else
 theList.style.display = "block" ;
 switch (which.id)
 {
 case 'TOCSmaller': // decrease current listbox size
 if (theList.autosize) { theList.autosize=false; size=config.options.txtTOCListSize; }
 if (size==1) break;
 size -= 1; // shrink by one line
 theList.requestedSize = theList.size = size;
 break;
 case 'TOCLarger': // increase current listbox size
 if (theList.autosize) { theList.autosize=false; size=config.options.txtTOCListSize; }
 if (size>=theList.options.length) break;
 size += 1; // grow by one line
 theList.requestedSize = theList.size = size;
 break;
 case 'TOCMaximize': // toggle autosize
 theList.autosize = (theList.size!=theList.options.length);
 theList.size = (theList.autosize)?theList.options.length:theList.requestedSize;
 break;
 }
 if (!theList.noSizeCookie && !theList.autosize)
 { config.options.txtTOCListSize=size; saveOptionCookie("txtTOCListSize"); }
}
//}}}
/***
|Name|TaggedTemplateTweak|
|Source|http://www.TiddlyTools.com/#TaggedTemplateTweak|
|Version|1.1.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.chooseTemplateForTiddler()|
|Description|use alternative ViewTemplate/EditTemplate for tiddler's tagged with specific tag values|
The core function, "story.chooseTemplateForTiddler(title,template)" is essentially a "pass-thru" that returns the same template it was given, and is provided by the core so that plugins can customize the template selection logic to select alternative templates, based on whatever programmatic criteria is appropriate.  This tweak extends story.chooseTemplateForTiddler() so that ''whenever a tiddler is marked with a specific tag value, it can be viewed and/or edited using alternatives to the standard tiddler templates.'' 
!!!!!Usage
<<<
Each alternative template is associated with a specific tiddler tag value by using that tag value as a prefix added to the standard TiddlyWiki template titles, [[ViewTemplate]] and [[EditTemplate]].

For example, any tiddlers that are tagged with ''<<tag media>>'' will look for alternative templates named [[mediaViewTemplate]] and [[mediaEditTemplate]].  Additionally, in order to find templates that have proper WikiWord tiddler titles (e.g., [[MediaViewTemplate]] and [[MediaEditTemplate]]), the plugin will also attempt to use a capitalized form of the tag value (e.g., ''Media'') as a prefix.  //This capitalization is for comparison purposes only and will not alter the actual tag values that are stored in the tiddler.//

If no matching alternative template can be found by using //any// of the tiddler's tags (either "as-is" or capitalized), the tiddler defaults to using the appropriate standard [[ViewTemplate]] or [[EditTemplate]] definition.

''To add your own custom templates:''
>First, decide upon a suitable tag keyword to uniquely identify your custom templates and create custom view and/or edit templates using that keyword as a prefix (e.g., "KeywordViewTemplate" and "KeywordEditTemplate").  Then, simply create a tiddler and tag it with your chosen keyword... that's it!  As long as the tiddler is tagged with your keyword, it will be displayed using the corresponding alternative templates.  If you remove the tag or rename/delete the alternative templates, the tiddler will revert to using the standard viewing and editing templates.
<<<
!!!!!Examples
<<<
|Sample tiddler| tag | view template | edit template |
|[[MediaSample - QuickTime]]| <<tag media>> | [[MediaViewTemplate]] | [[MediaEditTemplate]] |
|[[MediaSample - Windows]]| <<tag media>> | [[MediaViewTemplate]] | [[MediaEditTemplate]] |
|[[CDSample]]| <<tag CD>> | [[CDViewTemplate]] | [[CDEditTemplate]] |
|<<newTiddler label:"create new task..." title:SampleTask tag:task text:"Type some text and then press DONE to view the task controls">> | <<tag task>> | [[TaskViewTemplate]] | [[EditTemplate]] |

//(note: if these samples are not present in your document, please visit// http://www.TiddlyTools.com/ //to view these sample tiddlers on-line)//
<<<
!!!!!Revision History
<<<
2007.06.23 [1.1.0] re-written to use automatic 'tag prefix' search instead of hard coded check for each tag.  Allows new custom tags to be used without requiring code changes to this plugin.
2007.06.11 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.taggedTemplate= {major: 1, minor: 1, revision: 0, date: new Date(2007,6,18)};
Story.prototype.taggedTemplate_chooseTemplateForTiddler = Story.prototype.chooseTemplateForTiddler
Story.prototype.chooseTemplateForTiddler = function(title,template)
{
	// get default template from core
	var template=this.taggedTemplate_chooseTemplateForTiddler.apply(this,arguments);

	// if the tiddler to be rendered doesn't exist yet, just return core result
	var tiddler=store.getTiddler(title); if (!tiddler) return template;

	// look for template whose prefix matches a tag on this tiddler
	for (t=0; t<tiddler.tags.length; t++) {
		var tag=tiddler.tags[t];
		if (store.tiddlerExists(tag+template)) { template=tag+template; break; }
		// try capitalized tag (to match WikiWord template titles)
		var cap=tag.substr(0,1).toUpperCase()+tag.substr(1);
		if (store.tiddlerExists(cap+template)) { template=cap+template; break; }
	}

	return template;
}
//}}}

<HTML><CENTER>@@font-size(10pt):color(#000):''Dicono di noi:'' //<<QOTD Recensioni>>//@@</HTML>
È inutile dire "scrivo per il piacere di scrivere". Balle. Si scrive per il piacere di essere letti.
E se quello che scrivo non viene letto praticamente da nessuno (i manzoniani venticinque lettori pagherei per averli) sembra inutile continuare a scriverlo.
Se ci sono più bot che lettori iscritti al feed forse vuol dire qualcosa.
Se nemmeno ai miei amici di lunga data frega qualcosa non sarà certo colpa loro, ma colpa mia che non mi so far leggere.
E sebbene dicano che in internet lo spazio è infinito, io il mio spazio lo lascio volentieri ad altri più portati di me.

Peccato, perché questo coso mi piaceva e mi piace; sia nel lavorarci dentro a livello di codice, sia per quello che ho scritto.
Peccato perché avevo in mente altre cose da scrivere. Le userò per qualche conversazione davanti ad una birra.
Peccato perché era un passatempo piacevole e una cosa bella senza essere né illegale, né immorale, né che fa ingrassare.

Oh be', farò altro; leggerò, continuerò a leggere, i blog. Leggerò più libri e guarderò più film. Farò quello che ho sempre fatto, ad eccezione del pensare cosa scrivere e dello scrivere su queste pagine.

Questo blog, o bliki, non mancherà a molti. E a quei pochi ai quali mancherà posso dire che mi spiace, ma che non si preoccupino: presto lo avranno dimenticato.
Non voglio chiuderlo; non voglio cancellare quello che ho fatto in questi, boh, 2 anni e mezzo di blog; però ho deciso di prendere una bella pausa.
Peccato aver usato la frase di Douglas Adams in un post di chiusura "farlocco". Adesso sì che sarebbe stato bene "So long, and thanks for all the fish". Oh be'...mica è morto nessuno, ho solo spento il blog.

Tengo ancora in vita il tumblr, per ora.
E, se volete, ho sempre l'e-mail.
Dalla definizione di Jeremy Ruston, l'inventore di TiddlyWiki
<<<
A TiddlyWiki is like a blog because it's divided up into neat little chunks, but it encourages you to read it by hyperlinking rather than sequentially: if you like, a non-linear blog analogue that binds the individual microcontent items into a cohesive whole. I think that TiddlyWiki represents a novel medium for writing, and will promote its own distinctive WritingStyle.
<<<
!!Description
TiddlyWiki namespace defines tiddler attributes as elements in an RSS item. Therefore a RSS item represents a tiddler.

!!Declaration
{{{xmlns:content="http://tiddlywiki.bidix.info/#TiddlyWikiNamespace"}}}

!!TiddlyWiki item elements
see http://www.tiddlywiki.com/dev for a full description of tiddler attributes
*<tiddlywiki:title>
*<tiddlywiki:wikitext> : the tiddler text in source format
*<tiddlywiki:modifier> 
*<tiddlywiki:modified>
*<tiddlywiki:created>
*<tiddlywiki:tags>

!!Other useful item elements
<description> : for compatibility, the tiddler text in source format.
<content:encoded> : the tiddler text wikified. For portability, all tiddlylinks should have an absolute http href attribute.

!!Exemple
{{{
<?xml version="1.0" encoding='UTF-8'?>
<rss version="2.0" 
 xmlns:tiddlywiki="http://tiddlywiki.bidix.info/rss/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
>
 <channel>
 <title>BidiXTW</title>
 <link>http://TiddlyWiki.bidix.info/</link>
 <description>&quot;an IDE for the thoughts&quot;</description>
 <language>en-us</language>
 <copyright>Copyright 2006 BidiX</copyright>
 <pubDate>Wed, 19 Apr 2006 17:08:20 GMT</pubDate>
 <lastBuildDate>Wed, 19 Apr 2006 17:08:20 GMT</lastBuildDate>
 <docs>http://blogs.law.harvard.edu/tech/rss</docs>
 <generator>TiddlyWiki 2.0.9</generator>
 <item>
 <title>CurrentWorks</title>
 <description>*[[EmptyUploadTW|http://TiddlyHost.bidix.info/emptyupload.html]] : an empty TiddlyWiki with only tiddlers tagged &lt;&lt;tag Upload&gt;&gt; added.&lt;br /&gt;*TiddlyHost: BidiX's TiddlyWiki hosting infrastructure&lt;br /&gt;*GenerateRssTweak beta add [[BidiXTW.xml|http://tiddlywiki.bidix.info/BidiXTW.xml]] to your RssReader or use RssNewsMacro in TiddlyWiki.&lt;br /&gt;*&lt;&lt;tag RSSFeeds&gt;&gt; access when TiddlyWiki is accessed by HTTP.&lt;br /&gt;*Some experiments in [[BidiXLab|http://TiddlyWiki.bidix.info/BidiXLab.html]]&lt;br /&gt;*Extensions to Clint's [[allTagsExceptMacro|config.macros.allTagsExcept]]&lt;br /&gt;</description>
 <content:encoded><![CDATA[ <ul><li><a target="_blank" title="External link to http://TiddlyHost.bidix.info/emptyupload.html" href="http://TiddlyHost.bidix.info/emptyupload.html" class="externalLink">EmptyUploadTW</a> : an empty <a tiddlylink="TiddlyWiki" refresh="link" title="TiddlyWiki - BidiX, samedi 25 février 2006 11:42:00" href="http://TiddlyWiki.bidix.info/#TiddlyWiki" class="tiddlyLink tiddlyLinkExisting">TiddlyWiki</a> with only tiddlers tagged <span class="quickopentag"><a tiddlylink="Upload" refresh="link" title="Upload - BidiX, mercredi 15 février 2006 00:35:00" href="http://TiddlyWiki.bidix.info/#Upload" class="tiddlyLink tiddlyLinkExisting">Upload</a><a tag="Upload" title="Show tiddlers tagged with 'Upload'" href="javascript:;" class="button">?</a></span> added.</li><li><a tiddlylink="TiddlyHost" refresh="link" title="TiddlyHost - BidiX, lundi 27 mars 2006 19:07:00" href="http://TiddlyWiki.bidix.info/#TiddlyHost" class="tiddlyLink tiddlyLinkExisting">TiddlyHost</a>: <a tiddlylink="BidiX" refresh="link" title="BidiX - BidiX, dimanche 29 janvier 2006 12:12:00" href="http://TiddlyWiki.bidix.info/#BidiX" class="tiddlyLink tiddlyLinkExisting">BidiX</a>'s <a tiddlylink="TiddlyWiki" refresh="link" title="TiddlyWiki - BidiX, samedi 25 février 2006 11:42:00" href="http://TiddlyWiki.bidix.info/#TiddlyWiki" class="tiddlyLink tiddlyLinkExisting">TiddlyWiki</a> hosting infrastructure</li><li><a tiddlylink="GenerateRssTweak" refresh="link" title="GenerateRssTweak - BidiX, lundi 10 avril 2006 15:25:00" href="http://TiddlyWiki.bidix.info/#GenerateRssTweak" class="tiddlyLink tiddlyLinkExisting">GenerateRssTweak</a> beta add <a target="_blank" title="External link to http://tiddlywiki.bidix.info/BidiXTW.xml" href="http://tiddlywiki.bidix.info/BidiXTW.xml" class="externalLink">BidiXTW.xml</a> to your <a tiddlylink="RssReader" refresh="link" title="The tiddler 'RssReader' doesn't yet exist" href="http://TiddlyWiki.bidix.info/#RssReader" class="tiddlyLink tiddlyLinkNonExisting">RssReader</a> or use <a tiddlylink="RssNewsMacro" refresh="link" title="RssNewsMacro - BidiX, jeudi 30 mars 2006 12:26:00" href="http://TiddlyWiki.bidix.info/#RssNewsMacro" class="tiddlyLink tiddlyLinkExisting">RssNewsMacro</a> in <a tiddlylink="TiddlyWiki" refresh="link" title="TiddlyWiki - BidiX, samedi 25 février 2006 11:42:00" href="http://TiddlyWiki.bidix.info/#TiddlyWiki" class="tiddlyLink tiddlyLinkExisting">TiddlyWiki</a>.</li><li><span class="quickopentag"><a tiddlylink="RSSFeeds" refresh="link" title="RSSFeeds - BidiX, lundi 27 mars 2006 18:50:00" href="http://TiddlyWiki.bidix.info/#RSSFeeds" class="tiddlyLink tiddlyLinkExisting">RSSFeeds</a><a tag="RSSFeeds" title="Show tiddlers tagged with 'RSSFeeds'" href="javascript:;" class="button">?</a></span> access when <a tiddlylink="TiddlyWiki" refresh="link" title="TiddlyWiki - BidiX, samedi 25 février 2006 11:42:00" href="http://TiddlyWiki.bidix.info/#TiddlyWiki" class="tiddlyLink tiddlyLinkExisting">TiddlyWiki</a> is accessed by HTTP.</li><li>Some experiments in <a target="_blank" title="External link to http://TiddlyWiki.bidix.info/BidiXLab.html" href="http://TiddlyWiki.bidix.info/BidiXLab.html" class="externalLink">BidiXLab</a></li><li>Extensions to Clint's <a tiddlylink="config.macros.allTagsExcept" refresh="link" title="config.macros.allTagsExcept - BidiX, samedi 18 mars 2006 18:00:00" href="http://TiddlyWiki.bidix.info/#config.macros.allTagsExcept" class="tiddlyLink tiddlyLinkExisting">allTagsExceptMacro</a></li></ul>]]></content:encoded>
 <tiddlywiki:title>CurrentWorks</tiddlywiki:title>
 <tiddlywiki:wikitext>*[[EmptyUploadTW|http://TiddlyHost.bidix.info/emptyupload.html]] : an empty TiddlyWiki with only tiddlers tagged &lt;&lt;tag Upload&gt;&gt; added.
*TiddlyHost: BidiX's TiddlyWiki hosting infrastructure
*GenerateRssTweak beta add [[BidiXTW.xml|http://tiddlywiki.bidix.info/BidiXTW.xml]] to your RssReader or use RssNewsMacro in TiddlyWiki.
*&lt;&lt;tag RSSFeeds&gt;&gt; access when TiddlyWiki is accessed by HTTP.
*Some experiments in [[BidiXLab|http://TiddlyWiki.bidix.info/BidiXLab.html]]
*Extensions to Clint's [[allTagsExceptMacro|config.macros.allTagsExcept]]
 </tiddlywiki:wikitext>
 <tiddlywiki:modifier>BidiX</tiddlywiki:modifier>
 <tiddlywiki:modified>200604021748</tiddlywiki:modified>
 <tiddlywiki:created>200603301435</tiddlywiki:created>
 <tiddlywiki:tags>News toRSS</tiddlywiki:tags>
 <category>News</category>
 <category>toRSS</category>
 <link>http://TiddlyWiki.bidix.info/#CurrentWorks</link>
 <pubDate>Sun, 02 Apr 2006 17:48:00 GMT</pubDate>
 </item>
 <item>
 ...
 </item>
 ...
 </channel>
</rss>
}}}
Io, in camera, dev'esserci un cassetto che mi spariscono le robe.
Qua dalle mie parti tanti nonni e bisnonni sono emigrati in America  a cercar fortuna e qualcuno avrà pur visto degli indiani.
In tempi più recenti tanti da qui sono andati a fare spedizioni in Himalaya, anche lì indiani ne avranno visti.

Ma che gli indiani (questi o quelli) fossero venuti qui non lo sapevo.

Men che meno che il mio posto di lavoro sorgesse su un loro cimitero.

^^No, non ci sono altre spiegazioni allo stillicidio di sfighe che sta colpendo un po' tutti, dipendenti e ospiti.^^
<div class='header' macro='gradient vert #eee #ffbe96 #e1874b #c85000 #783200 #501e00 #666 #999 #ccc #eee'>
<span class='Testata' refresh='content' tiddler='Testata'></span>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span><br>
<span class='TopMenu' refresh='content' tiddler='TopMenu'></span></div></div>
</div>
<HTML><CENTER>@@font-size(12pt):font-weight(bold):[[Bartezzaghi:|ComeBartezzaghi]]@@ @@color(#000):<<QOTD Random>>@@</HTML>
come disse Godot.
Edita 'New Tiddler'.
<<forEachTiddler
 where
 'tiddler.tags.contains("*blog*")'
sortBy
 'tiddler.created'
 descending
 write
 '(index < 1) ? "* [["+tiddler.title+"]] \n "+tiddler.text+"\n\n----\nPer commentare andate [[qui|"+tiddler.title+"]].\n" : ""'
>>
Sono molti i viaggi che vorrei fare. E che non farò.
Non li farò per il tempo, non li farò per i soldi, non li farò per mille motivi.

Vorrei visitare gli spigoli del mondo: Gibilterra, la Terra del Fuoco, Finisterre, Città del Capo, Terranova, Capo Nord o Vladivostok.

Vorrei fare la panamericana, la Transiberiana o la via della Seta. Il camino di Santiago o la via Francigena. Seguire il percorso dell'Orient Express. Fare il percorso di Annibale come Paolo Rumiz.

Vorrei fare molto, e non riesco a far niente; nemmeno, come in un romanzo di Avoledo o di Calvino (?), percorrere attorno a casa i chilometri del pellegrinaggio.

Anche la cosa più semplice e vicina che ho trovato, quattro tappe che non farei nemmeno tutte di fila, mi risulta complicato da organizzare.
Me questa,che voglio fare, che devo fare, ve la racconterò.


 
:E i Galaaditi intercettarono i guadi del Giordano agli Efraimiti; e quando uno de' fuggiaschi d'Efraim diceva: "Lasciatemi passare", gli uomini di Galaad gli chiedevano: "Sei tu un Efraimita?" Se quello rispondeva: "No", i Galaaditi gli dicevano:  "Ebbene, di' Scibboleth"; e quello diceva "Sibboleth", senza fare attenzione a pronunziar bene; allora lo pigliavano e lo scannavano presso i guadi del Giordano. E perirono in quel tempo quarantaduemila uomini d'Efraim.

Può darsi che anche voi abbiate avuto un professore di storia amante degli aneddoti. In questo caso potreste aver sentito raccontare l'episodio dei "ciciri".
Durante i //vespri siciliani// i sospetti francesi venivano obbligati a pronunciare la parola "ciciri" (ceci); la pronuncia della "c" come "sc" e della "r" alla francese (appunto) faceva tradire gli infiltrati.
Questo trucco, ho scoperto non molto tempo fa, ha un nome: shibboleth. Nome che deriva dall'episodio biblico riportato all'inizio. Probabilmente una delle più antiche testimonianze scritte dell'utilizzo di questo semplice sistema di riconoscimento. Oltre tutto gli israeliani utilizzarono anche in tempi più receti lo shibboleth; molte parole d'ordine utilizzate dai militari contengono il suono "p", inesistente nelle lingue arabe.
//Nota a magine: il mio prof sarebbe stato squartato e gettato nel Giordano, visti i suoi problemi a pronunciare "sc", "gn" e "gl".//
Tutti i dialetti hanno degli shibboleth, magari non vi accorgete nemmeno che dei suoni sono propri del vostro dialetto; magari nemmeno lo parlate, il vostro dialetto. Eppure lo avete sentito, quel tale che prova a parlare in dialetto. Può conoscere anche più parole di voi; eppure nella pronuncia c'è qualcosa che lo tradisce. Questo è lo shibboleth.

Wikipedia dice che shibboleth viene usato anche per altro diverso da fonemi particolari; ad esempio, se avete visto "Bastardi senza gloria" (se no non andate avanti a leggere) (io vi ho avvertiti) ricorderete la scena dello smascheramento di una spia per il modo nel quale indica il tre con le dita (indice-medio-anulare anziché pollice-medio-indice).
Un altro metodo, dicono, usato dalle spie americane per farsi sgamare come dei polli, era quello di tagliare tutta la bistecca a pezzetti con coltello e forchetta, posare il coltello e mangiare boccone a boccone con la forchetta. Incivili!

Immagino che a questo punto dovrei tirare fuori la conclusione; ma non c'è. &Eacute; solo che ho notato che i russi non ce la fanno a pronunciare il "th", ma pronunciano sempre "z".
Be', poi vi posso dire che il titolo viene da questa cosa di Asimov: se una persone legge "unionized"  (senza contesto) come "un-ionized" probabilmente è un chimico, se legge union-ized --è una persona normale-- non lo è. È uno shibboleth anche questo.


Prossimamente: l'//hapax legomenon// e il //portmanteau//
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 14/07/2010 21:53:59 | Corax | [[/|http://corax.altervista.org/]] | [[store.php|http://corax.altervista.org/store.php]] | . | [[index.html | http://corax.altervista.org/index.html]] |  |
| 15/07/2010 06:46:23 | Corax | [[/|http://corax.altervista.org/]] | [[store.php|http://corax.altervista.org/store.php]] | . | [[index.html | http://corax.altervista.org/index.html]] |  |
| 16/07/2010 10:18:14 | Corax | [[/|http://corax.altervista.org/]] | [[store.php|http://corax.altervista.org/store.php]] | . | [[index.html | http://corax.altervista.org/index.html]] |  |
| 31/07/2010 18:26:11 | Corax | [[/|http://corax.altervista.org/]] | [[store.php|http://corax.altervista.org/store.php]] | . | [[index.html | http://corax.altervista.org/index.html]] |  |
| 31/07/2010 18:32:50 | Corax | [[/|http://corax.altervista.org/]] | [[store.php|http://corax.altervista.org/store.php]] | . | [[index.html | http://corax.altervista.org/index.html]] |  |
| 31/07/2010 18:44:54 | Corax | [[/|http://corax.altervista.org/]] | [[store.php|http://corax.altervista.org/store.php]] | . | [[index.html | http://corax.altervista.org/index.html]] |  |
| 31/07/2010 22:13:47 | Corax | [[/|http://corax.altervista.org/]] | [[store.php|http://corax.altervista.org/store.php]] | . | [[index.html | http://corax.altervista.org/index.html]] |  |
| 19/08/2010 13:42:41 | Corax | [[/|http://corax.altervista.org/]] | [[store.php|http://corax.altervista.org/store.php]] | . | [[index.html | http://corax.altervista.org/index.html]] |  |
| 05/09/2010 12:55:54 | Corax | [[/|http://corax.altervista.org/]] | [[store.php|http://corax.altervista.org/store.php]] | . | [[index.html | http://corax.altervista.org/index.html]] |  |
| 16/10/2010 21:59:05 | Corax | [[/|http://corax.altervista.org/]] | [[store.php|http://corax.altervista.org/store.php]] | . | [[index.html | http://corax.altervista.org/index.html]] |  |
UploadPlugin uses the following sequence for finding parameters :
#''macro'' parameters
#''Options'' saved in cookies
#''Plugin'' default values
!Options used by UploadPlugin
| Option | Value | Default |
|Upload Username: |<<option txtUploadUserName>>| |
|Upload Password: |<<option pasUploadPassword>>| |
|Url of the UploadService script: |<<option txtUploadStoreUrl urlInput>>| store.php |
|Relative Directory where to store the file: |<<option txtUploadDir urlInput>>| . (the script directory) |
|Filename of the uploaded file: |<<option txtUploadFilename urlInput>>| index.html |
|Directory to backup file on webserver^^(1)^^: |<<option txtUploadBackupDir urlInput>>| //null// (none/no backup) |
|Log in UploadLog |<<option chkUploadLog>> Trace Upload| true |
|Maximum of lines in UploadLog |<<option txtUploadLogMaxLine>>| 10 |

^^(1)^^No backup if Backup Directory is empty, the previous file will be overwritten. Use a '.' to backup in the script directory.

<<upload>> with these options.

!Upload Macro parameters
{{{
<<upload [storeUrl [toFilename [backupDir [uploadDir [username]]]]]>>
 Optional positional parameters can be passed to overwrite UploadOptions. 
}}}

!UploadToFile Macro Macro parameters
{{{
<<uploadTofile [filename [tiddlerTitle]]>>
 tiddlerTitle, filename: if omitted the title of the current tiddler
}}}

<<uploadToFile allowedsites.txt allowedsites.txt>>
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.4|
|''Date:''|2008-08-11|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 4,
	date: new Date("2008-08-11"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'
};

//
// Environment
//

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
	
//
// Upload Macro
//

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
};
	
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload"	
};

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"
};

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
		return;
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
	else
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	}
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};

config.macros.upload.action = function(params)
{
		// for missing macro parameter set value from options
		if (!params) params = {};
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			alert(config.macros.upload.messages.noStoreUrl);
			clearMessage();
			return false;
		}
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			alert(config.macros.upload.messages.usernameOrPasswordMissing);
			clearMessage();
			return false;
		}
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 
};

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
{
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;
};

//
// uploadOptions Macro
//

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		wizard.createWizard(place,this.wizardTitle);
		wizard.addStep(this.step1Title,this.step1Html);
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		markList.parentNode.insertBefore(listWrapper,markList);
		wizard.setValue("listWrapper",listWrapper);
		this.refreshOptions(listWrapper,false);
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
		else
			uploadCaption = config.macros.upload.label.uploadLabel;
		
		wizard.setButtons([
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
				
			]);
	},
	options: [
		"txtUploadUserName",
		"pasUploadPassword",
		"txtUploadStoreUrl",
		"txtUploadDir",
		"txtUploadFilename",
		"txtUploadBackupDir",
		"chkUploadLog",
		"txtUploadLogMaxLine"		
	],
	refreshOptions: function(listWrapper) {
		var opts = [];
		for(i=0; i<this.options.length; i++) {
			var opt = {};
			opts.push();
			opt.option = "";
			n = this.options[i];
			opt.name = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
			opts.push(opt);
		}
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
				h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
			}
		}
		
	},
	onCancel: function(e)
	{
		backstage.switchTab(null);
		return false;
	},
	
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 
			]}
};

//
// upload functions
//

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved",
	backupFailed: "Failed to upload backup file",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."
};

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
			displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
			return;
		}
		if (bidix.debugMode) 
			alert(original.substr(0,500)+"\n...");
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
			alert(config.messages.invalidFileError.format([localPath]));
			return;
		}
		bidix.upload.uploadRss(uploadParams,original,posDiv);
	};
	
	if(onlyIfDirty && !store.isDirty())
		return;
	clearMessage();
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
		saveChanges();
	}
	// get original
	var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
			bidix.upload.uploadMain(params[0],params[1],params[2]);
		} else {
			displayMessage(bidix.upload.messages.rssFailed);			
		}
	};
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		var rssString = generateRss();
		// no UnicodeToUTF8 conversion needed when location is "file" !!!
		if (document.location.toString().substr(0,4) != "file")
			rssString = convertUnicodeToUTF8(rssString);	
		bidix.upload.httpUpload(rssUploadParams,rssString,callback,Array(uploadParams,original,posDiv));
	} else {
		bidix.upload.uploadMain(uploadParams,original,posDiv);
	}
};

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
				displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
			}
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
			store.setDirty(false);
			log.endUpload("ok");
		} else {
			alert(bidix.upload.messages.mainFailed);
			displayMessage(bidix.upload.messages.mainFailed);
			log.endUpload("failed");			
		}
	};
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);
	bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == 404)
			alert(bidix.upload.messages.storePhpNotFound.format([url]));
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			alert(responseText);
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
			alert(responseText);
		if (responseText.charAt(0) != '0')
			status = null;
		callback(status,params,responseText,url,xhr);
	};
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
		alert(config.messages.invalidFileError.format([localPath]));
		return;
	}
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
				original.substr(posDiv[1]);
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;
};

//
// UploadLog
// 
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
		store.addTiddler(this.tiddler);
	}
	return this;
};

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
		return;
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			textArray.splice(1,textArray.length-1-maxLine);
			this.tiddler.text = textArray.join('\n');		
	}
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	store.addTiddler(this.tiddler);
	// refresh and notifiy for immediate update
	story.refreshTiddler(this.tiddler.title);
	store.notify(this.tiddler.title, true);
};

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
		return;
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";
	this.addText(text);
};

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
		return;
	this.addText(" "+status+" |");
};

//
// Utilities
// 

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
	}
};

bidix.dirname = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));
	}
};

bidix.basename = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);
};

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;
};

//
// Initializations
//

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

//optionsDesc
merge(config.optionsDesc,{
	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});

// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');


// Backstage
merge(config.tasks,{
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");


//}}}

/***
|''Name:''|UploadPluginLingoEN|
|''Description:''|English Translation|
|''Version:''|4.1.0|
|''Date:''|May 8, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPluginLingoEN|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''CoreVersion:''|2.2.0|
|''Requires:''|UploadPlugin UploadToHomeMacro|
***/
//{{{
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload" 
};

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"
};

merge(config.macros.uploadOptions, {
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 
			]}
	});


bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved on web",
	backupFailed: "Failed to save backup file on web",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."
};

merge(config.optionsDesc,{
	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});

merge(config.tasks,{
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});

//}}}

//{{{
/*
 * UploadToHomeMacro Lingo
 */
if (config.macros.uploadToHome) {
	merge(config.macros.uploadToHome,{messages: {
			homeParamsTiddler: "HomeParameters",
			prompt: "Save and Upload this TiddlyWiki using parameters in  '%0' tiddler",
			tiddlerNotFound: "Tiddler %0 not found"
		}});
	merge(config.tasks,{
				uploadToHome: {text: "uploadToHome", tooltip: "Upload using '" + config.macros.uploadToHome.messages.homeParamsTiddler + "' tiddler",
				action: config.macros.uploadToHome.action}
		});
}

//}}}
Mica mi metterò a scrivere di sabato, no?
Ci si vede la settimana prossima, ormai...

Oh, nel frattempo c'è sempre [[Coraxil Compresse|http://corax.tumblr.com]] e, da qualche giorno, pure [[Surripedia|http://surripedia.tumblr.com]].
Non sapete cosa sia Surripedia? Ma dove vivete?
Dai! Visitate e patecipate, che come diceva quello:
{{{
Vénghino signori! Più gente entra, più bestie si vedono!
}}}
<div class='toolbar2' macro='toolbar permalink closeTiddler '></div>
<div class='title' macro='view title'></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='subtitle'>borborigmato da <span macro='view modifier link'></span>&ensp;il <span macro='view modified date [[0DD MMM YYYY]]' ></span></div><br>
<div class='viewer' macro='view text wikified'></div><br>
<div class='tagClear'></div>
<div class='toolbar' macro='toolbar editTiddler'></div>
"Siamo soli?" si sarà chiesto quell'Homo Sapiens che, guardando il cielo notturno, lo vide per la prima volta con occhi differenti.
"Siamo soli?" si sarà chiesto Galileo, inquadrando nel cannocchiale i pianeti Medicei.
"Siamo soli?" si chiedeva Kant, riempito di meraviglia guardando, sopra di lui, il cielo stellato.
"Siamo soli?" si chiedono astrofisici ed esobiologi oggi.

L'astronomo Drake era così convinto che creò un'equazione per approssimare il numero di civiltà extraterrestri esistenti. Fermi rispose con un secco "E allora dove sono?"

Cerchiamo prima di tutto di capire: ci chiediamo se esista la vita o se esista la vita intelligente, al di fuori del nostro pianeta?
Che esista la vita, cellule, batteri, amebe, forme elementari che si riproducono, si nutrono, nascono e muoiono è probabile. Ma difficile da dimostrare. O noi andiamo su un altro pianeta e le troviamo, o loro vengono da noi in un meteorite che cade sulla Terra. Forse esistono forme di vita più evolute, simili a pesci, dinosauri, topi o scimmie. Impossibile trovarle nel meteorite; va scoperto il pianeta ed esplorato.

E le forme di vita intelligenti, le civiltà extraterrestri? Poniamo che esistano. Sono abbastanza evolute da chiedersi a loro volta "siamo soli?". Sono tecnologicamente avanzate da poter cercare di mettersi in contatto con noi? Lo fanno da abbastanza tempo per arrivare a qualche risultato?
Se prendiamo come esempio una società evoluta che conosciamo bene, la razza umana, vediamo che da sempre si chiede "siamo soli" ma solo da pochi anni ha raggiunto le conoscenze tecniche per tentare un contatto. E in questo tempo è quasi riuscita ad autodistruggersi, cosa che potrebbe succedere ad altre civiltà aliene. Sembra, basandoci sull'unico esempio disponibile, che il raggiungimento di capacità tali da ipotizzare un contatto porta con sé un germe di autodistruzione. Forse miriadi di civiltà si sono chieste "siamo soli?", ma se e quando riceveremo il loro messaggio nella bottiglia queste civiltà non ci saranno più.
E se anche, come nei film di fantascienza, si trattasse di civiltà pacifiche, che non conoscono uso di armi  e destinate a durare per molto più tempo di noi umani; anche in questo caso le distanze da coprire sarebbero insormontabili. Il segnale della prima trasmissione RAI è arrivato a 50 anni luce dalla terra, nulla in confronto non diciamo all'universo, ma alla nostra galassia. Quando raggiungerà un pianeta abitato da una forma di vita intelligente che riceverà il messaggio (e che, dopo aver visto i messaggi dei cinquant'anni successivi, deciderà di distruggerci) la Terra probabilmente sarà abitata da forme di vita meno "intelligenti" ma più pratiche, ad esempio gli scarafaggi.

L'uomo è stato scacciato da Galileo dal centro del cosmo, il sistema solare è finito in un angolo della Via Lattea, la Via Lattea è una di miriadi di galassie. L'egocentrismo dell'uomo si può aggrappare ancora al fatto di essere l'unica forma di vita intelligente nell'universo. Ma personalmente lo dubito. Personalmente dubito anche che noi ci possiamo considerare, sempre e comunque, "vita intelligente".

Siamo soli? Probabilmente no. 
La vita qui è talmente piatta* che un incidente in macchina si merita un post tutto suo.
Tanto per cominciare tranquillizzo i quattro che mi leggono, non mi sono fatto niente (altrimenti non sarei qui a scrivere il post, no?).
Poi ringrazio qui in pubblico i soci dell'"anonima" (di più non posso dire) che si sono subito premurati di darmi il loro supporto morale.

E ora via, con la fredda cronaca di un idiota che esce di strada da solo.
Tornavo bel bello dal lavoro (piccolo inciso: l'albergo di Campiglio dove lavoro non è quello che ha cacciato la mamma allattante. Ma vi pare che mandi via delle tette al vento?) quando, dopo una curva l'auto mi va via di culo (scusate il tecnicismo) cerco di riprenderla, vedo che dall'altra parte sale una macchina, sterzo, vedo il muro, risterzo e colpisco l'altra macchina sull'angolo posteriore. Lì faccio perno, prendo il guardrail della corsia opposta, a questo punto, credo, esplode l'airbag e mi trovo girato in direzione opposta a quella che stavo seguendo con una puzza di petardo (l'airbag), un casino d'inferno (clacson, 4 frecce e tergicristalli) e un polso (diciamo) gonfio.

Grazie a Dio o chi ne fa le veci non ci siamo fatti male, né io né gli occupanti dell'altra macchina (a parte un bello spavento); non sono arrivate altre macchine nel mezzo della [[carambola|http://surripedia.tumblr.com/post/153765573/carambola]] e, come diceva quello, tutto bene quel che finisce bene.


: * invece che passarmi la vita davanti come un film ho visto i trailer di un'altra, per dire quanto la mia sia interessante.
Nessuno sapeva come funzionasse un blog.
Alcuni studiosi che avevano percorso in lungo e in largo la blogosfera dicevano che i blog non si possono incasellare in una definizione  rigida.
Altri, che forse non li avevano mai visti, ma solo studiati da lontano, dicevano che neppure esistessero, ma vi posso dire che questi si sbagliavano.
Altri ancora, tacciati quasi di eresia, dicevano che ogni blog era //il blog// e il blog era ogni blog. Ogni blog esistente portava una caratteristica all'idea di blog, ed ogni blog aveva almeno une delle carattistiche dell'idea di blog. Forse, benché ritenuti pazzi, questi si avvicinarono più di tutti alla definizione di blog, o alla sua non definizione.
Altri più autorevoli di me hanno trattato questi argomenti, e non vi tedierò oltre.
Più interessante di ciò che era un blog e di come era definito dai blogger stessi fu l'idea del blog da parte di chi si trovava più lontano. Chi subiva passivamente un blog era il più lontano dall'idea di blog, e se ne creava una propria.
Come un tempo i sacerdoti recitavano le loro liturgie in latino o in greco e il popolo inventava ed interpretava quello che udiva, creandosi proprie preghiere, propri santi e proprie credenze. Pensando, gli uni e gli altri, di credere le stesse cose.
Eppure un tempo, quando anch'io avevo un blog, se blog fu, ebbi a che fare con questi lettori. E la scarsa fama dei miei scritti, se da un lato mi rimaneva incomprensibile dall'altro mi permetteva di studiare alcuni miei lettori, come un entomologo può studiare le farfalle. Non attaccandole con spilli ad un cartone, ma seguendole nel loro volare.
Ricordo un tale (all'epoca poteva essere definito "troll" dai //sacerdoti//, il //popolo// avrebbe usato termini ben più rozzi) che amava intervenire nei miei scritti parlando delle cose più disparate, la maggior parte senza senso, ma comunque il più lontano possibile dal tema trattato.
Una persona, ritenendomi molto più seguìto del vero, mi chiese una benevola pubblicità. Non devo aver avuto sèguito se dopo di allora non la sentii più.
Casi, non i soli, di gente lontana dal blog, che del blog aveva un'immagine distorta; ma che nè io nè nessuno avrebbero potuto fare cambiare. Per il semplice fatto che avremmo potuto dire che la loro idea era sbagliata, ma non avremmo saputo presentare quella giusta.
D'altro canto anche Agostino d'Ippona, parlando di altro, diceva: "//lo so cos'è, finché qualcuno non me lo chiede//".

Ma ricevere la richiesta di auguri di compleanno, be', questo è troppo! 
/***
|Name|WikifyPlugin|
|Source|http://www.TiddlyTools.com/#WikifyPlugin|
|Version|1.0.1|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|substitute fields, slices, or computed values into wiki-syntax source and render results dynamically|

The "wikify" macro allows you to easily retrieve values from custom tiddler fields, tiddler slices, computed values (using javascript) or just plain old literals, and assemble them into small bits of generated wiki-syntax content that can be rendered directly into a tiddler, or used in the ViewTemplate or EditTemplate to add dynamically-generated content to each tiddler.
!!!!!Usage
<<<
The syntax for use in tiddlers:
{{{
<<wikify source value value value value ...>>
}}}
The syntax for use in templates:
{{{
<span macro='wikify source value value value value ...'></span>
}}}
where ''source'' specifies the wiki-syntax source,
followed by zero or more space-separated ''value'' parameters, specified using any of:
* ''"tiddlername::slicename"'' - a tiddler slice reference
* ''"fieldname@tiddlername"'' - a tiddler custom field reference
* ''"""{{config.options.txtUserName}}"""'' - evaluated javascript
* ''"none of the above"'' - literal text
When the initial ''source'' parameter contains //substitution markers// (using "%0" through "%9" character sequences), each value parameter is retrieved and embedded into the source content, replacing its corresponding marker.  If the ''source'' parameter does //not// contain any substitution markers, then all parameters are simply joined together for output.  Once the source and values have been assembled, the resulting content is then passed to the core wikify() parser to render and display it.

Notes:
* If a parameter is not recognized as fitting any of the above syntax, or if the slice/field referred to cannot be located, the reference will be inserted as literal text into the output
* When working with custom tiddler fields or tiddler slices, you can enter a special psuedo-tiddler name, ''@here'' (e.g., "fieldname@here") or ''here::'' (e.g., "here::slicename") to access custom fields and slices associated with the //current// tiddler.  This //relative// reference syntax can be particularly helpful when placed directly into a ViewTemplate and/or EditTemplate definition, where it can be applied automatically to each tiddler that is displayed.   Note: if you omit the ''@here'' portion of a field reference (e.g., just using "fieldname"), it is assumed to be a reference to a field in the current tiddler (i.e., it is treated as if you specified ''fieldname@here'').
<<<
!!!!!Examples
<<<
{{{
<<wikify [[This tiddler is: %0 using %1 bytes (last author: %2)]] title {{tiddler.text.length}} modifier>>
<<wikify [[The source of this plugin is: %0]] 'here::Source'>>
<<wikify [[The tiddler has been changed %0 times]] changecount@here>>
<<wikify [[The Primary Mid color is: @@background:%0;%0@@]] 'ColorPalette::PrimaryMid'>>
<<wikify [[This current user is: %0]] {{config.options.txtUserName}}>>
}}}
<<wikify [[This tiddler is: %0 using %1 bytes (last author: %2)]] title {{tiddler.text.length}} modifier>>
<<wikify [[The source of this plugin is: %0]] 'here::Source'>>
<<wikify [[The tiddler has been changed %0 times]] changecount@here>>
<<wikify [[The Primary Mid color is: @@background:%0;%0@@]] 'ColorPalette::PrimaryMid'>>
<<wikify [[This current user is: %0]] {{config.options.txtUserName}}>>
<<<
!!!!!Revision History
<<<
2007.11.11 [1.0.1] in handler(), fixed problem where a trailing space was created when no substitution markers were present in the source param.
2007.06.22 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.wikify= {major: 1, minor: 0, revision: 1, date: new Date(2007,11,11)};

config.macros.wikify={
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var source=params.shift();
		var values=[];
		var out="";
		if (!source.match(/\%[0-9]/g) && params.length) // source has no markers, just join all params with spaces
			out=source+" "+params.join(" ");
		else { // source param has markers, get values and perform substitution
			while (p=params.shift()) values.push(this.getFieldReference(place,p));
			out=source.format(values);
		}
		wikify(out,place);
	},
	getFieldReference: function(place,p) { // where p is "slicename::tiddlername" or "fieldname@tiddlername" or "fieldname"
		if (typeof p != "string") return p; // literal non-string value... just return it...
		var parts=p.split(config.textPrimitives.sliceSeparator);
		if (parts.length==2) {// maybe a slice reference?
			var tid=parts[0]; var slice=parts[1];
			if (!tid || !tid.length || tid=="here") { // no target specified (or "here" placeholder), use containing tiddler
				tid=story.findContainingTiddler(place);
				if (tid) tid=tid.getAttribute("tiddler")
				else tid="SiteSlices"; // fallback for references from 'non-tiddler' areas (e.g, header, sidebar, etc.)
			}
			var val=store.getTiddlerSlice(tid,slice);  // get tiddler slice value
		}
		if (val==undefined) {// not a slice reference, or slice not found, maybe a field reference?
			var parts=p.split("@");
			var field=parts[0];
			if (!field || !field.length) field="checked"; // fallback for missing fieldname (e.g., "@tiddlername")
			var tid=parts[1];
			if (!tid || !tid.length || tid=="here") { // no target specified (or "here" placeholder), use containing tiddler
				tid=story.findContainingTiddler(place);
				if (tid) tid=tid.getAttribute("tiddler")
				else tid="SiteFields"; // fallback for references from 'non-tiddler' areas (e.g, header, sidebar, etc.)
			}
			var val=store.getValue(tid,field);
		}
		// not a slice, not a field, or slice/field not found... use original param value
		return val===undefined?p:val;
	}
}
//}}}
Come al solito la prendo larga.
Qua alcuni anni fa hanno deciso di rifare un po' di "arredo urbano". Tra le varie cose, sul marciapiede parallelo al viale principale, hanno messo una serie di piastre in granito. Su queste piastre ci sono i nomi delle varie città dove, negli anni, sono emigrati i celebri //moléti rendenèri//.
Si parte dalle città italiane, poi europee, poi tutte le altre. Vabbe' poi un paio le hanno anche sbagliate, tipo [[Zurick|http://it.wikipedia.org/wiki/Zurigo]].
La maggior parte era andata in Inghilterra e negli USA e le piastre con i nomi delle varie città inglesi e americane sono tante.

Tutti gli anni, questo è l'ottavo, qualcuno mette sulla lapide di New York un lumino, un fiore, una bandiera americana.
A me piacerebbe sapere chi è che lo fa, nè per complimentarmi nè per percularlo; ma così, tanto per sapere.

<html><a href="http://www.zooomr.com/photos/corax/8137743/" title="Photo Sharing"><img src="http://static.zooomr.com/images/8137743_e2f7320128.jpg" width="375" height="500" alt="11092009" /></a></html>


L'altra piastra dice "Toronto".
Ma lo sapevate che le arachidi (spagnolette, noccioline americane, //bagìge//, o come le volete chiamare) sono più parenti dei piselli che delle nocciole (nonostante uno dei nomi più comuni)?
E lo sapevate che a differenza di fagioli, piselli e altro che hanno piante rampicanti crescono a cespuglio?
E lo sapevate che i baccelli, dopo l'impollinazione si fanno strada sottoterra dove maturano? 
//Questa, in effetti, è la cosa che non sapevo e che tempo fa ha dato la stura a tutta una discussione di botanica. Ah, le serate oziose dei tempi dell'università.//

E, dunque, lo sapevate che le arachidi che danno i poteri a Superpippo sono acerbe?

Mi tocca togliere i commenti. Non per spam o altro, ma solo perché haloscan, il servizio che usavo, mi obbliga a passare ad un altro (che ha comprato haloscan) e diventa a pagamento.
Io, che voi commentiate sono contento, ma spendere 10 dollari non ce n'ho voglia.
Per ora cancello la possibilità di commentare. Quando avrò un attimo di tempo vedrò se riesco a utilizzare qualche altro servizio per abilitare i commenti.
Nel frattempo, se proprio sentite l'impellente necessità di commentare, mi potete scrivere per e-mail.

<html>
<form method="post" action="http://www.emailmeform.com/fid.php?formid=713145" enctype="multipart/form-data" accept-charset="UTF-8"><table  bgcolor="#FF9900"><td><font face="Verdana" size="2" color="#5A5A5A">Questo sito non supporta i commenti. Questo non vuol dire che non sia interessato a quello che ne pensi. Con questo formulario mi puoi inviare un commento. Li leggo tutti. Se decidessi di pubblicarlo ti verrà chiesto il permesso.</font><div style="" id="mainmsg"></div></td></table>
<table><tr valign="top"><td><font face="Verdana" size="2" color="#5A5A5A">il tuo nome </font></td><td><input type="text" name="FieldData0" size="30"></td></tr>
<tr valign="top"><td><font face="Verdana" size="2" color="#5A5A5A">la tua e-mail </font></td><td><input type="text" name="FieldData1" size="30"> </td></tr>
<tr valign="top"><td><font face="Verdana" size="2" color="#5A5A5A">il tuo sito </font></td><td><input type="text" name="FieldData2" size="30"> </td></tr>
<tr valign="top"><td><font face="Verdana" size="2" color="#5A5A5A">Il tuo commento </font></td><td><textarea name="FieldData3" cols="60" rows="10"></textarea><br></td>
<td><table id="captcha_table" cellpadding=5 cellspacing=0 bgcolor="#E4F8E4" width="95%"><tr id="captcha_table_header_tr" bgcolor="#AAD6AA"><td id="captcha_table_header_td"class="label" colspan="2"><font color="#FFFFFF" face="Verdana" size="2"><b>Image Verification</b></font></td></tr><tr><td id="captcha_table_img_td" class="captcha" style="padding: 2px;" width="10"><img src="http://www.emailmeform.com/turing.php" id="captcha" alt="captcha"></td><td class="field" valign="top"><div><font color="#000000">Please enter the text from the image</font>:<input type="text" name="Turing" value="" maxlength="100" size="10"><br> [ <a href="#" onclick=" document.getElementById('captcha').src = document.getElementById('captcha').src + '?' + (new Date()).getMilliseconds()">Refresh Image</a> ] [ <a href="http://www.emailmeform.com/?v=turing&pt=popup" onClick="window.open('http://www.emailmeform.com/?v=turing&pt=popup','_blank','width=400, height=500, left=' + (screen.width-450) + ', top=100');return false;">What's This?</a> ]</div></td></tr></table></td></tr>
<tr><td></td><td></td><td align="right"><input type="text" name="hida2" value="" maxlength="100" size="3" style="display : none;"><input type="submit" class="btn" value="Invia commento" name="Submit">&nbsp; &nbsp; <input type="reset" class="btn" value="  Cancella tutto  " name="Clear"></td></tr></table></form><div><p><font size="1" face="Verdana" >Powered by<span style="position: relative; padding-left: 3px; bottom: -5px;"><img src="http://www.emailmeform.com/images/footer-logo.png" /></span>EMF <a style="text-decoration:none;" href="http://www.emailmeform.com">PHP Forms</a></font></div></html>
[img[http://lh3.ggpht.com/_-CetuSG4znU/TEAU2ZJpUQI/AAAAAAAAEu8/iW81nDLx4QM/tumbleweed_ani_lblue.gif]]
Edita 'excludeSearch'.
Tiddler che riguardano il modo in cui si scrive su questo sito


Plugin che rendono il sito più bello o più comodo...''non toccare !''



<?php
/***
! User settings
Edit these lines according to your need
***/
//{{{
$AUTHENTICATE_USER = true; // true | false
$USER = array(
 'Username1'=>'Password1', 
 'Username2'=>'Password2', 
 'UserName3'=>'Password3');
$DEBUG = false; // true | false
//}}}
/***
!Code
No change needed under
***/
//{{{

/***
 * store.php - upload a file in this directory
 * version :1.2 - 12/02/2006 - BidiX@BidiX.info
 * 
 * see : 
 * http://tiddlywiki.bidi.info/#UploadPlugin for usage
 * http://www.php.net/manual/en/features.file-upload.php 
 * for détails on uploading files
 * usage : 
 * POST 
 * UploadPlugin[backupDir=<backupdir>;user=<user>;password=<password>;]
 * userfile <file>
 * GET
 *
 * Revision history
 * v 1.2 - 12/02/2006 : 
 * POST 
 * UploadPlugin[backupDir=<backupdir>;user=<user>;password=<password>;]
 * userfile <file>
* if $AUTHENTICATE_USER
 * presence and value of user and password are checked with 
 * $USER and $PASSWORD
 * v 1.1 - 23/12/2005 : 
 * POST UploadPlugin[backupDir=<backupdir>] userfile <file>
 * v 1.0 - 12/12/2005 : 
 * POST userfile <file>
 *
 * Copyright (c) BidiX@BidiX.info 2005-2006
 ***/
//}}}

//{{{

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
 <title>BidiX.info - TiddlyWiki UploadPlugin - Store script</title>
 </head>
 <body>
 <p>
 <p>store.php V 1.2
 <p>BidiX@BidiX.info
 <p>&nbsp;</p>
 <p>&nbsp;</p>
 <p>&nbsp;</p>
 <p align="center">This page is designed to upload a <a href="http://www.tiddlywiki.com/">TiddlyWiki<a>.</p>
 <p align="center">for details see : <a href="http://www.bidix.info/TiddlyWiki/BidiXTW.html#HowToUpload">www.bidix.info/TiddlyWiki/BidiXTW.html#HowToUpload<a>.</p> 
 </body>
</html>
<?php
}
else {
 $uploaddir = './';
 $backuperror = false;
 $optionStr = $_POST['UploadPlugin'];
 $optionArr=explode(';',$optionStr);
 $options = array();
 $backupFilename = '';
 foreach($optionArr as $o) {
 list($key, $value) = split('=', $o);
 $options[$key] = $value;
 }
 if ((!$AUTHENTICATE_USER) 
 || (($options['user']) && ($options['user'] == $USER) && ($options['password']) && ($options['password'] == $PASSWORD))) {
 if (file_exists($uploaddir . $_FILES['userfile']['name']) && ($options['backupDir'] != '')) {
 if (! file_exists($options['backupDir'])) {
 mkdir($options['backupDir']) or ($backuperror = "mkdir error");
 }
 $filename = $_FILES['userfile']['name'];
 $backupFilename = $options['backupDir'].'/'.substr($filename, 0, strpos($filename, '.'))
 .date('.Ymd.His').substr($filename,strpos($filename,'.'));
 rename($filename, $backupFilename) or ($backuperror = "rename error");
 }
 if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
 if (!$backuperror) {
 if($DEBUG) {
 echo "debug mode \n\n";
 }
 echo "0 - File successfully loaded in " .$uploaddir . $_FILES['userfile']['name']. "\n";
 if ($backupFilename)
 echo "backupFile=$backupFilename;\n";
 } else {
 echo "BackupError : $backuperror - File successfully loaded in " .$uploaddir . $_FILES['userfile']['name']. "\n";
 }
 } 
 else {
 echo "Error : " . $_FILES['error']." - File NOT uploaded !\n";
 }
 }
 else {
 echo "Error : UserName or Password do not match \n";
 echo "UserName : [".$options['user']. "] Password : [". $options['password'] . "]\n";
 }
 if ($DEBUG) {
 echo '\nHere is some more debugging info : \n';
 print ("\$_FILES : \n");
 print_r($_FILES);
 print ("\$options : \n");
 print_r($options);
 }
}
//}}}
?> 
Configurazioni di sistema.
''Chi tocca muore!''
Configurazioni di sistema.
''Chi tocca muore!''
Qui potete trovare tutti i ''tag'' (cioè le etichette) utilizzati in questo sito, e per ciascuna di questi potete trovare una lista delle pagine "taggate"....più semplice provare che cercare di capire quello che ho scritto!
[[Poi|Ma il cielo è sempre più blu]] c'è stato il "passaggio al digitale terrestre". A casa mia deve ancora passare l'antennista e vedo solo metà del pacchetto Rai e basta. Ma in hotel non si può, lì dev'essere tutto a modino per l'arrivo dei clienti.
Qui in zona ci sono più alberghi che alberi; credere di poter avere un'assistenza completa è pia illusione. Ringraziare Dio o chi ne fa le veci che i televisori nuovi sono arrivati in tempo e che il tecnico ha avuto la bontà di spiegarti come funziona il tutto.
Poi, just do it. Per fortuna le camere sono poche.

Montare il piedistallo ad ogni TV, attaccare la corrente a TV e decoder Sky, scart da decoder a televisore, impostare (per fortuna copiando i dati con una penna USB) volume, ordine dei canali e messaggio di benvenuto, seguire l'agile procedura per poter utilizzare un solo telecomando per TV e Sky.
Questo nelle camere semplici.

Secondo passo: le suite con DVD.
Come prima e, in più, cambiare il cavo nonsocomesichiama con pirulini rosso giallo e bianco con un cavo scart. No, c'è una sola presa. Allora collegare una scart da TV a decoder e una da lettore DVD a decoder. Telecomandi? Due.

Sempre più difficile. Si hanno a disposizione:
* 1 televisore grande con digitale terrestre incorporato, 1 entrata scart 1 entrata "pirulini"
* 1 decoder Sky con 1 entrata scart e 1 uscita scart
* 1 trasmettitore radio scart
* 1 ricevitore radio scart
* 1 lettore DVD con 1 uscita scart e 1 1 uscita "pirulini"
* 1 televisore piccolo con 1 entrata scart e 1 entrata "pirulini"
* 1 decoder digitale terrestre con uscita "pirulini"
* 1 telecomando TV grande
* 1 telecomando TV piccola
* 1 telecomando DVD
* 2 telecomandi Sky
* 1 telecomando per digitale terrestre
* cavi q.b.
Il candidato connetta tutti gli apparecchi, rendendo possibile la visione di almeno due sorgenti (digitale e Sky) su entrambe le TV; riducendo al minimo il numero di telecomandi; semplificando le istruzioni per l'utilizzatore finale ed evitando di strozzarsi con una prolunga scart.

E poi mi chiedono perché non guardo la tv...
Edita 'video'.
Edita 'New Tiddler'.
"È  tardi!" Si alza imprecando; e impreca ancora di più andando in bagno, quando sbatte il piede nudo contro lo stipite della porta.
Niente colazione, basta un caffè veloce; poi di nuovo in camera a scegliere il vestito adatto. Apre l'armadio e comincia a scorrere le camicie e poi le giacche; ne sceglie alcune, ma non vanno bene. Le butta a terra, le sistemerà Marianna quando verrà a pulire la casa, poi trova quelle giuste. Infine  sceglie la cravatta, quella con i semi delle carte, quella portafortuna;  si veste ed  esce.
"È tardi!" Prendere  l'auto nemmeno a  parlarne; la città è  più intasata del solito e  c'è pure il derby. Meglio la metropolitana.
"È  tardi!" Scende in  stazione schivando una vecchia, poi una mamma con la carrozzina e anche il venditore di rose. Sale proprio mentre le porte si stanno chiudendo.
Si siede, guarda per l'ennesima volta l'orologio e sbuffa "È tardi! È tardi!". Mille cose da fare, mille appuntamenti; e tutti oggi.
Ha giusto mezz'ora libera per bere qualcosa con lei prima di cominciare la serie di appuntamenti di lavoro. Una mezz'ora che nel proporla gli si era seccata la bocca. Una mezz'ora analizzata minuto per minuto per non fare figuracce. E si era addormentato. Stupido!
"È tardi!" Le fermate passano; gente scende dal treno e gente sale. Hanno tutti fretta, ma gli sembra che ci mettano troppo ad entrare, che le porte ci mettano troppo a chiudersi, gli sembra di perdere minuti su minuti. Guarda ancora l'orologio.
Finalmente la sua fermata; "È tardi!" Ma si ferma comunque davanti ad una vetrina per sistemarsi la cravatta e controllare i capelli.
Si  avvia verso  le scale;  sbucare  dal  sottosuolo in mezzo alla piazza gli fa sempre un certo effetto, non sembra certo un entrata trionfale. Pensandoci, sorride.
Eccola. Sta leggendo un libro all'ombra di una pianta; sembra quasi sul punto di addormentarsi. Mentre lei alza gli occhi dal libro lui la chiama: "Alice!"

^^Lavorassi in [[Telecom|http://xmau.com/notiziole/arch/200803/004099.html]]...^^
Uff! In tutto il mese di maggio cinque miseri post; passato anche metà giugno senza scrivere niente.
C'erano ragnatele nella casella della password.
È che io, spesso, per i pezzi che voglio scrivere ho in mente il titolo, o una frase, o poco più.
E questa frase, questo titolo, cerco di allargarli e di crearci intorno un pezzo.
Però mica sempre è facile.
Tipo, --l'altro giorno-- il mese scorso, il post sui sogni doveva essere la descrizione di un sogno, ma ricordavo poco, e inventarlo non mi sarebbe piaciuto. Poi ho pensato di scrivere i (brevi) ricordi di due o tre sogni.
Ma anche così non mi piaceva. Allora ho scritto il post sul fatto che non sognavo mai, e poi ho cominciato a sognare.
E questo pezzo doveve essere un'introduzione, avrei dovuto far seguire i post con i dettagli dei sogni.
Ma il tempo intanto passava, e i sogni che volevo raccontare; dei quali avevo una frase da espandere, questi sogni non mi sembravano più così interessanti, e questa frase non era più così //tranchant//.
E allora prendo tempo e cambio la frase e penso a qualcos'altro e intanto non scrivo niente e così arriva la metà di giugno, e i giorni tra un po' si accorciano e poi piove ed è tutto bigio --e le cavalletteee--.
Insomma, niente, meno scrivo e meno ho idee e meno scrivo.
E allora per non far passare altro tempo, che poi viene la muffa anche sul feed, scrivo 'ste baggianate di scuse.

Però su [[surripedia|http://surripedia.tumblr.com]] scrivo, ma non so se la leggete. Se non lo fate, fatelo.

''Edit:'' ma pensa te: pubblicata questa robaccia ho letto da [[Eìo|http://eiochemipensavo.diludovico.it/2008/06/16/il-ponologo-di-molly/]] che oggi sarebbe il Bloomsday. Io le virgole (seppur a caso) le ho messe; ma per fare un monologo non potevo scegliere un giorno migliore. --Che culo.-- Vedi te, alle volte.
Lavorare (e usare il pc) quando gli altri dormono e dormire quando gli altri sono svegli ha i suoi vantaggi, ma crea anche qualche problema.
Nel mondo di oggi dove tra cellulare, sms, e-mail e instant messenger sei sempre raggiungibile, anzi DEVI essere sempre raggiungibile, lasciare passare più di tot tempo prima di rispondere ti fa sentire strano.
Dico strano perché le reazioni sono molte: c'è chi sta male quasi fisicamente, chi si vergogna come se avesse commesso chissà quale maleducazione, chi se ne frega (o almeno dice così).
A me capita spesso con gli sms: mi arrivano mentre dormo e, anche se sono da parte persone che sanno che lavoro la notte, quando rispondo mi scuso sempre per non averlo fatto subito.
Molti di voi, da bambini, avranno avuto un amico di penna. Le lettere (stavo per scrivere le mail) ci mettevano giorni ad arrivare.
Se qualche amico passava da casa o telefonava per cercarvi lo scoprivate solo al vostro ritorno (se qualcuno si ricordava di avvisarvi).
Ecco; mi sembra di essere tornato a quei tempi. Ma dopo aver provato la risposta immediata è difficile abituarsi a questa lentezza.
Ad esempio l'altro giorno (forse è meglio mettere date e ore, per capirsi meglio) il 20 luglio, poco dopo mezzanotte, ho postato sul tumblr un pezzo che riguardava lo sbarco sulla luna. La mattina del 20 l'amico [[Nikink|http://nikink.tumblr.com/]] commenta con un "grazie"; commento che leggo solo nel pomeriggio, e al quale non rispondo subito. La sera, do un'occhiata alle mie cose, vedo di nuovo il commento, vedo che quel post non è stato utilizzato in qualche modo da Nikink e lascio un commento di risposta al suo grazie chiedendo lumi.
Magari è una cosa che cercava da tempo, forse gli era venuto in mente che poteva utilizzarla per qualcosa, non so...insomma, chiedo il perché del suo ringraziamento. Ieri mattina, il 21, mentre sto per andare a letto Nik scrive la risposta; io non la leggo, di nuovo, fino al pomeriggio e adesso (le 2 di mattina del 22) scrivo queste righe, che sono anche un'ulteriore risposta a Nik.

Tutto qui. È solo che finché non si prova, a certe cose non pensi nemmeno.

Spero che si riesca a commentare nonostante il titolo, sempre se qualcuno vuole commentare.
<html><a href="http://www.zooomr.com/photos/corax/3782304/" title="Photo Sharing"><img src="http://static.zooomr.com/images/3782304_4d4f9881b1_b.jpg" width="180" height="240" alt="HPIM0272" align="left"></a></html>
“This memorial commemorates the Jewish communities destroyed by Nazi Germany and its collaborators, and the few which suffered but survived in the shadow of the Holocaust. For more than one thousand years, Jews lived in Europe, organizing communities to preserve their distinct identity. In periods of relative tranquility, Jewish culture flourished, but in periods of unrest, Jews were forced to flee. Wherever they settled, they endowed the people amongst whom they lived with their talents. Here their stories will be told..”


Gerusalemme.
Yad Vashem,<br>(The Holocaust Martyrs' and Heroes' Remembrance Authority).

Valle delle Comunità.
Muro italiano.