Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

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

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which use a logographic writing system and 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;}

.htmlarea .toolbarHA table {border:1px solid ButtonFace; margin:0em 0em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These InterfaceOptions for customising TiddlyWiki are saved in your browser

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

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

----
Also see AdvancedOptions
|''Type:''|file|
|''URL:''|http://trueaustralia.tiddlyspot.com/|
|''Workspace:''|(default)|

This tiddler was automatically created to record the details of this server
[<img[http://www.winesurf.it/img_notizia/220/passionfruit2.jpg]] 
@@font-style:italic; “Our white wines distinguish themselves for the intensity of the fruit flavours. We strive to get to preserve in the finished wine all the characteristics of the ripe grapes. We achieve this result through an innovative vinification method that makes use of inert gases. Must preparation happens in total absence of oxygen. Pressing occurs under controlled temperature and in total absence of oxygen”.@@

This sentence was taken at random from the website of an Italian wine producer.
The vinification of white wines moved, in the latter years, towards the extensive use of inert gases (such as carbon dioxide and nitrogen) and cold temperatures. The hyper-reductive vinification is carried out thanks to a deliberate and insisted absence of contact between the must (thus between the wine) and oxygen. How do you achieve that?[>img[http://www.winesurf.it/img_notizia/220/carbonica.gif]] 
From the moment that the grapes are detached from the vines, begins the action of the so called oxidase enzymes, which tend to oxidise first the berries and then the must.

With some particular attention it is possible to stop their action, preserving the primary (or “varietal”) aromas of the fruit to their best.

These  “particular attentions” translate as:
#Using antioxidant substances (potassium metabisulphite, ascorbic acid, tannins…) directly on the grapes, right after picking them;
#Using dry ice or carbon dioxide on the grapes to cool them down and to create a protective blanket:
#Using pneumatic presses saturated with nitrogen and/or carbon dioxide;
#“Washing” the must with nitrogen to eliminate any eventual trace of dissolved oxygen;[>img[http://www.winesurf.it/img_notizia/220/azoto.jpg]]
#Fermenting in modified atmosphere without any racking or oxygenation, using selected yeasts and appropriate nutrients; 
#Racking or moving the wine after the fermentation, in complete absence of oxygen. That is specially true for the operations of bottling;
#Implementing air tight closures such as ''synthetic corks or screw top''.
All these processes bring to a remarkable preservation of the primary and secondary aromas but the smallest mistake could compromise the whole production. Furthermore, the wines produced with this method, have a much shorter life once their bottle has been opened: oxygen has a bursting effect on these wines.
The fact that many Italian wines in the latter years seem to taste more and more like New World wines is due to these technologies, that lately became economically accessible even to smaller estates. And Italian estates are normally quite small if compared to a big one like New Zealander Montana, that has been using this technology for years.
This is globalisation of technology…

!!!!Mister (y) Winemaker [[winesurf.it|http://www.winesurf.it/index.php?file=onenews&form_id_notizia=220&lang=en]]

<<tiddler HideTiddlerTags>> 
// //''Name:'' Blog
// //''Version:'' 0.1
// //''Author:'' [[Anshul Nigham|http://yavin4.anshul.info]] (adapted from an earlier plugin by [[ClintChecketts|http://www.checkettsweb.com/]]) 
// //''Type:'' Plugin
// //''Description:'' Posts the most recently edited tiddlers when the TiddlyWiki is opened, similar to a blog.
// //''Syntax:'' Change the daysOrPosts and numOfDaysOrPosts variables below
// // If daysOrPosts variable is "days", tiddlers from the past numOfDaysOrPosts dates will be displayed
// // If daysOrPosts variable is "posts", the past numOfDaysOrPosts tiddlers will be displayed 

// // ''Tested against:'' Tiddlywiki 2.1.3

// // ''HOWTO:'' Simply copy this entire tiddler and paste it into a new tiddler in your own tiddlywiki.
// // Tag it with systemConfig, and also with systemTiddlers if you don't want it to appear within the blog views. Name it anything you like

var daysOrPosts = "posts";
var numOfDaysOrPosts = "10";

function displayTopTiddlers()
{
	if(window.location.hash) daysOrPosts = "";
	if(daysOrPosts == "posts")
	{
		var tiddlerNames = store.reverseLookup("tags","post",true,"modified");
		if (tiddlerNames.length < numOfDaysOrPosts)
			numOfDaysOrPosts = tiddlerNames.length;
		for(var t = tiddlerNames.length-numOfDaysOrPosts;t<=tiddlerNames.length-1;t++)
		story.displayTiddler("top",tiddlerNames[t].title,DEFAULT_VIEW_TEMPLATE,false,false);
	}
	if (daysOrPosts == "days"){
		var lastDay = "";
		var tiddlerNames = store.reverseLookup("tags","systemTiddlers",false,"modified");
		var t = tiddlerNames.length -1;
		var tFollower = 0;
		for(t;t>=0;t--) if(numOfDaysOrPosts >= 0){
			var theDay = tiddlerNames[t].modified.convertToYYYYMMDDHHMM().substr(0,8);
			if(theDay != lastDay){
				numOfDaysOrPosts = numOfDaysOrPosts -1;
				lastDay = theDay;
				tFollower = t;
			}
		}

		for(tFollower = tFollower+1; tFollower < tiddlerNames.length;tFollower++){
			displayTiddler("top",tiddlerNames[tFollower].title,DEFAULT_VIEW_TEMPLATE,false,false);
		}

	}
}

window.original_restart = window.restart;
window.restart = function()
{
	window.original_restart();
	displayTopTiddlers();
}
DocumentBackground: #bbccaa
DocumentForeground: #cceedd

TitleColor: #ffffff
SubTitleColor: #ffffff
TitleImage: 'http://www.knosso.net/public/BlogTitleImage.jpg'

PostBackground: #446666
PostColor: #cceedd
PostBorderColor: #443333
PostTitleColor: #ffffff
PostSubTitleColor: #ccff44
PostOutFocus: #443333

SideBarBackground: #99bb55
SideBarColor: #cceedd

SidebarTimelineBackground:#ffffff
SidebarTimelineColor:#000000
SidebarTimelineLink:#446666
SidebarTimelineLinkHover:#ccff44

Link: #ffffff
LinkHover: #ccff44 

FooterBackground: #447766

ButtonBackground: #e6ffa2
ViewerButtonActive: #ffffff !important
ViewerButtonActiveBackground: #ccff44
Hello mate!

if you are a beautiful Australian girl, a rich person who want to cover me with money because I'm so funny or just if you'd like to insult me, you can contact me here:

''info at daniele dot niero dot name''

[img[http://www.daniele.niero.name/BlogStuff/QualityMarkDan.jpg]]


<html>
<iframe src="http://www.beppegrillo.it/countdown.html" width="180" height="121" scrolling="No" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" style="overflow:visible;  "></iframe>
</html>
/***
|Name|HaloscanMacro|
|Created by|JimSpeth|
|Location|http://end.com/~speth/HaloscanMacro.html|
|Version|1.1.0|
|Requires|~TW2.x|

!Description
Comment and trackback support for TiddlyWiki (via Haloscan).

!History
* 16-Feb-06, version 1.1.0, drastic changes, now uses settings from haloscan account config
* 31-Jan-06, version 1.0.1, fixed display of counts for default tiddlers
* 30-Jan-06, version 1.0, initial release

!Examples
|!Source|!Output|h
|{{{<<haloscan comments>>}}}|<<haloscan comments>>|
|{{{<<haloscan trackbacks>>}}}|<<haloscan trackbacks>>|

!Installation
Register for a [[Haloscan|http://www.haloscan.com]] account.  It's free and painless.
Install the HaloscanMacro in a new tiddler with a tag of systemConfig (save and reload to activate).
In the macro configuration code (below), change //YourName// to your Haloscan account name.
Use the macro somewhere in a tiddler (see ViewTemplate for an example).

!Settings
You can adjust various options for your account in the member configuration area of Haloscan's web site.  The macro will use these settings when formatting the links.

!Code
***/
//{{{

/* change "YourName" to your Haloscan account name */
config.macros.haloscan = {account: "trueaustralia", baseURL: "http://www.haloscan.com/load/"};

var haloscanLoaded = 0;
config.macros.haloscan.load = function ()
{
    if (haloscanLoaded == 1)
        return;
    
    account = config.macros.haloscan.account;
    if (!account || (account == "YourName"))
        account = store.getTiddlerText("SiteTitle");
    
    var el = document.createElement('script');
    el.language = 'JavaScript'; 
    el.type = 'text/javascript'; 
    el.src = config.macros.haloscan.baseURL + account;
    document.documentElement.childNodes[0].appendChild(el);
    
    haloscanLoaded = 1;
}
config.macros.haloscan.load();

/* this totally clobbers document.write, i hope that's ok */
var safeWrite = function(s)
{
    document.written = s;
    return s;
};
document.write = safeWrite;

config.macros.haloscan.refreshDefaultTiddlers = function ()
{
    var start = store.reverseLookup("tags","post",true,"modified");
    for(var t = 0;t<start.length;t++)
    {
		story.refreshTiddler(start[t].title,DEFAULT_VIEW_TEMPLATE,1);
    }
}

config.macros.haloscan.handler = function (place, macroName, params, wikifier, paramString, tiddler)
{
    if (typeof HaloScan == 'undefined')
    {

        setTimeout("config.macros.haloscan.refreshDefaultTiddlers()", 1);
        haloscanRefreshed = 1;
        return;
    }
    
    var id = story.findContainingTiddler(place).id.substr(7);
    var hs_search = new RegExp('\\W','gi');
    id = id.replace(hs_search,"_");
    
    account = config.macros.haloscan.account;
    if (!account || (account == "YourName"))
        account = store.getTiddlerText("SiteTitle");
    
    var haloscanError = function (msg)
    {
        createTiddlyError(place, config.messages.macroError.format(["HaloscanMacro"]), config.messages.macroErrorDetails.format(["HaloscanMacro", msg]));
    }
    
    if (params.length == 1)
    {
        if (params[0] == "comments")
        {
            postCount(id);
            commentsLabel = document.written;
            commentsPrompt = "Comments on this tiddler";
            var commentsHandler = function(e) { HaloScan(id); return false; };
            var commentsButton = createTiddlyButton(place, commentsLabel, commentsPrompt, commentsHandler);
        }
        else if (params[0] == "trackbacks")
        {
            postCountTB(id);
            trackbacksLabel = document.written;
            trackbacksPrompt = "Trackbacks for this tiddler";
            var trackbacksHandler = function(e) { HaloScanTB(id); return false; };
            var trackbackButton = createTiddlyButton(place, trackbacksLabel, trackbacksPrompt, trackbacksHandler);
        }
        else
            haloscanError("unknown parameter: " + params[0]);
    }
    else if (params.length == 0)
        haloscanError("missing parameter");
    else
        haloscanError("bad parameter count");
}

//}}}
/%
|Name|HideTiddlerTags|
|Source|http://www.TiddlyTools.com/#HideTiddlerTags|
|Version|0.0.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|script|
|Requires|InlineJavascriptPlugin|
|Overrides||
|Description|hide a tiddler's tagged/tagging display elements|

Usage: <<tiddler HideTiddlerTags>>

%/<script>
	var t=story.findContainingTiddler(place);
	if (!t || t.id=="tiddlerHideTiddlerTags") return;
	var nodes=t.getElementsByTagName("div");
	for (var i=0; i<nodes.length; i++)
		if (hasClass(nodes[i],"tagging")||hasClass(nodes[i],"tagged"))
			nodes[i].style.display="none";
</script>
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Version|1.8.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, and a {{{key="X"}}} parameter to specify an //access key// (which must be a //single// letter or numeric digit only)

''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" key="H" show>
	if (!window.story) window.story=window;
	alert("Hello World!\nlinktext='"+place.firstChild.data+"'\ntiddler='"+story.findContainingTiddler(place).id.substr(7)+"'");
	return false;
</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" key="D" show>
	demo();
	return false;
</script>
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''InlineJavascriptPlugin'' (tagged with <<tag systemConfig>>)
<<<
!!!!!Revision History
<<<
''2007.12.28 [1.8.0]'' added support for key="X" syntax to specify custom access key definitions
''2007.12.15 [1.7.0]'' autogenerate URI encoded HREF on links for onclick scripts.  Drag links to browser toolbar to create bookmarklets.  IMPORTANT NOTE: ''place'' is NOT defined when scripts are used as bookmarklets.  In addition, double-quotes will cause syntax errors.  Thanks to PaulReiber for debugging and brainstorming.
''2007.11.26 [1.6.2]'' when converting "document.write()" function calls in inline code, allow whitespace between "write" and "(" so that "document.write ( foobar )" is properly converted.
''2007.11.16 [1.6.1]'' when rendering "onclick scripts", pass label text through wikifyPlainText() to parse any embedded wiki-syntax to enable use of HTML entities or even TW macros to generate dynamic label text.
''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: 8, revision: 0, date: new Date(2007,12,28)};

config.formatters.push( {
	name: "inlineJavascript",
	match: "\\<script",
	lookahead: "\\<script(?: src=\\\"((?:.|\\n)*?)\\\")?(?: label=\\\"((?:.|\\n)*?)\\\")?(?: title=\\\"((?:.|\\n)*?)\\\")?(?: key=\\\"((?:.|\\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) {
			var src=lookaheadMatch[1];
			var label=lookaheadMatch[2];
			var tip=lookaheadMatch[3];
			var key=lookaheadMatch[4];
			var show=lookaheadMatch[5];
			var code=lookaheadMatch[6];
			if (src) { // 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 = src;
				document.body.appendChild(script); document.body.removeChild(script);
			}
			if (code) { // there is script code
				if (show) // show inline script code in tiddler output
					wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
				if (label) { // 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",wikifyPlainText(label));
					link.onclick=function(){try{return(eval(this.code))}catch(e){alert(e.description||e.toString())}}
					var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
					link.code="function _out(place){"+fixup+"\n};_out(this);"
					link.setAttribute("title",tip||"");
					var URIcode='javascript:void(eval(decodeURIComponent(%22(function(){try{';
					URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g,' ')));
					URIcode+='}catch(e){alert(e.description||e.toString())}})()%22)))';
					link.setAttribute("href",URIcode);
					link.style.cursor="pointer";
					if (key) link.accessKey=key.substr(0,1); // single character only
				}
				else { // run inline script code
					var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
					var code="function _out(place){"+fixup+"\n};_out(w.output);"
					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;
		}
	}
} )
//}}}
test
/***
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Version:''|1.1.0|
|''Date:''|mar 17, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#LoadRemoteFileHijack|
|''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|
***/
//{{{
version.extensions.LoadRemoteFileThroughProxy = {
 major: 1, minor: 1, revision: 0, 
 date: new Date("mar 17, 2007"), 
 source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};

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

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
  url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 }
 return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
[[What's matter with you guys?]] <<tag galleries>> [[Wines that had a boob-job done!]]
The<<slider chkGallerySlider [[The Rock. Sunset new year eve]] "sunset light on the Rock" "see the gallery">>was just amazing like it usually is here in Sydney.
Everything was going well and unbelievable but true I felt happy and relaxed at the same time; Sydney was full of joy and life,<<slider chkGallerySlider [[People. New Year Eve]] "people" "see the gallery">>was smiling to their future.
What a great evening there was in front of me! New Year Eve in Sydney! 
And it definitely was: Great dinner and great spot where admire the famous Fireworks Show on the Harbour.

So you could say: "See Dan? Life is not so bad after all, and Sydney is a great place! You can't complain this time, right?"

WRONG!

The second of January I was back to my job and all the people was talking about what they did during the Christmas break. Off course, even if I tried to avoid the fatal question, somebody found the way to ask me: "How was your break!?". Damn people... I was in trapped in a corner... "Well, really relaxing, I discovered Sydney, since I didn't have the chance to do it yet, and the new years eve I went to the The Rocks where I saw the fireworks show...". 
Big mistake Dan, big mistake, to many informations...
"OOhhh, aren't they AMAZING? They are the BEST IN THE WORLD, there is no place in the world where you can admire such a glorious show! bla bla bla bla"... 

Here we are, typical reaction of Australian people in front something they do, I have to admit, quite well: It immediately becomes the ''BEST IN THE WORLD...'' 

WHY? why! please somebody tell me why for Australians they are always the best in the world or they do always the best wine in the world, the best fireworks, the best innovative food, they have the best beaches, they are the strongest in every sports, why!!!!!

Do you know they seriously thought to win the soccer World Cup and they got pissed off with Italians when they lost against the "pasta eating" team?
Do you know they think the summer in Europe is cold as the coldest winter in Australia? (Rome is about 10 degrees in winter and about 40 in summer, Sydney has pretty much the same temperature in the winter and in the summer)

Anyway all these will be the subject of the next posts... 

<<tiddler HideTiddlerTags>>
<<tiddler TspotOptions>>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
<div class='header'>              
    <div class='titleLine' >
        <span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
		<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
    </div>
</div>

<div id='bodywrapper'>
	<div id='topMenu' refresh='content' tiddler='MainMenu'></div>
    <div id='sidebar'>
         <div id='sidebarOptions' refresh='content' tiddler='Final Countdown'></div>
         <div id='sidebarOptions' refresh='content' force='true' tiddler='The funny guys behind this blog'></div>
	<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
	<div id='sidebarTimeline' refresh='content' tiddler='Timeline'></div>
        <div id='sidebarOptions' refresh='content' tiddler='RecentComments'></div>
    </div>
    <div id='displayArea'>
        <div id='tiddlerDisplay'></div>
    </div>
</div>

<div id='displayFooter'>
    <div id='footerMessage' refresh='content' tiddler='SiteFooter'></div>
</div>
<html>
    <img class="tidImg" src="http://www.daniele.niero.name/BlogStuff/images/nye/peopleNewYearEve00.jpg" />
    <img class="tidImg" src="http://www.daniele.niero.name/BlogStuff/images/nye/peopleNewYearEve01.jpg" />
    <img class="tidImg" src="http://www.daniele.niero.name/BlogStuff/images/nye/peopleNewYearEve02.jpg" />
    <img class="tidImg" src="http://www.daniele.niero.name/BlogStuff/images/nye/peopleNewYearEve03.jpg" />
    <img class="tidImg" src="http://www.daniele.niero.name/BlogStuff/images/nye/peopleNewYearEve04.jpg" />
</html>
<<tiddler HideTiddlerTags>>
/***
!Code
***/
//{{{
config.macros.posttimeline = {dateFormat: "DD MMM YYYY"};
config.macros.posttimeline.handler = function(place,macroName,params, wikifier, paramString, tiddler)
{
	var field = params[0] ? params[0] : "created";
	var tiddlers = store.reverseLookup("tags","post",true,field);
	var lastDay = "";
	var last = params[1] ? tiddlers.length-Math.min(tiddlers.length,parseInt(params[1])) : 0;
	var dateFormat = params[2] ? params[2] : this.dateFormat;
	for(var t=tiddlers.length-1; t>=last; t--) {
		var tiddler = tiddlers[t];
		var theDay = tiddler[field].convertToLocalYYYYMMDDHHMM().substr(0,8);
		if(theDay != lastDay) {
			var ul = document.createElement("ul");
			place.appendChild(ul);
			createTiddlyElement(ul,"h3",null,"listTitle",tiddler[field].formatString(dateFormat));
			lastDay = theDay;
		}
		createTiddlyElement(ul,"li",null,"listLink").appendChild(createTiddlyLink(place,tiddler.title,true));
	}
}
//}}}
@@color:#000000;font-size:1.2em;font-weight:bold;Recent Comments@@
----
<html>
<iframe style="border:none; background-color:[[CustomColors::PostBackground]];border:none;" width="200" scrolling="no" "src="http://www.daniele.niero.name/BlogStuff/RecentComments.html"></iframe>
</html>
<<search>>
<<closeAll>>[[Recent Comments|RecentComments]]
Administrative Tools
<<newTiddler>><<tiddler TspotSidebar>> OptionsPanel MainMenu SideBarTabs
<<tabs txtMainTab "Timeline" "Timeline" TabTimeline "All" "All tiddlers" TabAll "Tags" "All tags" TabTags "More" "More lists" TabMore>>
Powered by [[TiddlyWiki|http://www.tiddlywiki.com]] and [[TiddlySpot|http://www.TiddlySpot.com]], comments powered by [[Haloscan|http://www.haloscan.com]]; stupid posts powered by [[Dan]]
Everything you should know about Australia but they never told you!
The Hidden Truth About Australia
img{
        border:1px solid #000000;
        margin:0px 3px 0px 3px;
        max-width: 150px;
}
.tidImg{
        border:1px solid #000000;
        margin-left:10%;
        margin-top:1%;
        max-width: 450px;
}

/***
Inspired by k2

!General
***/
/*{{{*/
body {
    background: [[CustomColors::DocumentBackground]];
}

h1,h2,h3,h4,h5,h6 {
	color:[[CustomColors::PostTitleColor]]; 
	background:transparent;
	margin:0px 0px 0px 0px;
}
h1 {border-bottom:2px solid [[CustomColors::PostColor]];}
h2,h3 {border-bottom:1px solid [[CustomColors::PostColor]];}


.searchBar input{
    border: 1px inset [[CustomColors::DocumentForeground]]; 
    background:[[CustomColors::DocumentBackground]];
}

.searchBar input:focus {
    border: 1px inset #3371a3; 
    background:#fff;
}

#contentWrapper {
    background: [[CustomColors::DocumentBackground]];
    border:none;
    margin: 0 auto;
    width: 750px;
    padding:0;
}
/*}}}*/
 
/***
!Links
***/
/*{{{*/
a,
a.tiddlyLink,
a.button,
a.externalLink,
#sidebarOptions .sliderPanel a {
    color: [[CustomColors::Link]];
    text-decoration: none;
    background: transparent;
    border: 0;
}

a:hover,
a.tiddlyLink:hover,
a.button:hover,
a.externalLink:hover,
#sidebarOptions .sliderPanel a:hover {
    border: 0;
    color: [[CustomColors::LinkHover]];
    text-decoration: none;
    background:transparent;
}

.button:active {
    background:[[CustomColors::ButtonBackground]]; 
    border:0;
}

.viewer .button:active, 
.viewer .marked, 
.viewer .highlight {
    color: [[CustomColors::ViewerBottonActive]];
    background: [[CustomColors::ViewerBottonActiveBackground]];
    border: 0;
}
/*}}}*/

/***
!Header
***/
/*{{{*/
.header{
    margin-top:20px; 
    background:[[CustomColors::DocumentBackground]];
    background-image: url([[CustomColors::TitleImage]]);
    height: 150px;
    border-style:solid; 
    border-width: 1px;
}

.titleLine {
    padding: 60px 40px 0px 40px;
}

.siteTitle {
    font-size: 2.5em;
    font-weight: bold;
    color:[[CustomColors::TitleColor]];
}

.siteSubtitle {
    font-size: 1.0em;
    display: block;
    margin: .3em auto 1em;
    color:[[CustomColors::SubTitleColor]];
}
/*}}}*/

/***
!Footer
***/
/*{{{*/
#horizontalSeparator { 
    background:[[CustomColors::DocumentBackground]]; 
    padding:15px 0px 15px 0px; 
}

#displayFooter {
	clear: both;
	height: 50px;
	width: 750px;
	background:[[CustomColors::FooterBackground]];
	color:[[CustomColors::PostColor]];
	border-style:solid;
    -moz-border-radius:1em; 
    border-width: 0px;
}

#footerMessage {
	padding: 15px 15px 15px 15px;
}
/*}}}*/

/***
!TopMenu
***/
/*{{{*/
#topMenu br {
    display:none;  
}

#topMenu { 
    background:[[CustomColors::DocumentBackground]]; 
    font-size:1em; 
    padding:5px 32px 5px 32px; 
}

#topMenu .button, 
#topMenu .tiddlyLink {
    margin-left:0.1em; margin-right:0.1em;
    padding:0.5em;
    color:[[CustomColors::PostBackground]]; 
    font-weight:normal;
}

#topMenu a.button:hover, 
#topMenu a.tiddlyLink:hover { 
    color:#333; 
    text-decoration:none;
}
/*}}}*/

/***
!Display
***/
/***
!!!Display General
***/
/*{{{*/
#displayArea { 
    width:500px;
	margin: 0em 15.7em 0em 0em;
	background:[[CustomColors::DocumentBackground]];
}

#tiddlerDisplay {
	padding-top:0em;
}
/*}}}*/

/***
!!!Tiddler
***/
/*{{{*/
.tiddler {
	color: [[CustomColors::PostColor]];
	background:[[CustomColors::PostBackground]];
	margin-bottom:5px; 
	padding-bottom:2em;
	padding-left:2em;
	padding-right:2em;
	border:0px solid;
    -moz-border-radius:1em; 
}



.subtitle { 
	font-size:90%; 
	color:[[CustomColors::PostSubTitleColor]];  
	margin-top:0.1em; 
}

.title {
	color: [[CustomColors::PostTitleColor]]; 
	font-size:1.5em;  
	padding-bottom:0.3px;
	margin-right:8em;
}

.shadow .title {
	color: [[CustomColors::PostTitleColor]];
}

* html .viewer pre {
	margin-left: 2em;
}

.viewer {
	padding: 1em 0em 0em 1.5em
}

.viewer hr {
	border: 1;
	border-top: solid 1px #333;
	margin: 0 8em;
	color: #333;
}

.viewer a.button {
	color:[[CustomColors::Link]]; 
	border:0px ;
	font-weight:bold;
}

.viewer a.button:hover{
	color:[[CustomColors::Link]]; 
	background:[[CustomColors::LinkHover]]; 
	text-decoration:none;
}

.viewer pre, 
.viewer code {
	border:1px solid [[CustomColors::PostBorderColor]];
	background: [[CustomColors::PostBackground]];
} 

.toolbar .button,
.selected .toolbar .button {
	color:[[CustomColors::Link]]; 
	border:none;
}

.selected .toolbar .button:hover,
.selected .toolbar .highlight, 
.selected .toolbar .marked, 
.selected .toolbar a.button:active {
	background:transparent; 
	color:[[CustomColors::LinkHover]]; 
	border:none; 
	text-decoration:none;
}

.tagClear {
	clear:none;
}

.tagging, 
.tagged,
.selected .tagging, 
.selected .tagged {
	background-color: [[CustomColors::PostBackground]];
	border: 1px solid [[CustomColors::PostBorderColor]];
}

.tagging .listTitle, 
.tagged .listTitle,
selected .tagging .listTitle, 
selected .tagged .listTitle {
	color: [[CustomColors::PostTitleColor]];
}

.selected .tagging .button:hover, 
.selected .tagged .button:hover {
	border: none; 
	background:transparent; 
	text-decoration:none; 
	color: [[CustomColors::LinkHover]];
}
.tagging .button, 
.tagged .button,
.selected .tagging .button, 
.selected .tagged .button {
	border: none; 
	background:transparent; 
	text-decoration:none; 
	color: [[CustomColors::Link]];
}

.tagged .highlight, 
.tagged .marked, 
.tagged a.button:active {
	text-decoration:underline; 
	background:transparent; 
	color:[[CustomColors::LinkHover]];
}

.viewer blockquote {
	border-left:7px solid #ebeef1;
}

.viewer table {
	border: 1px solid #3371a3;
}

.viewer th, thead td {
	background: #3371a3;
	border: 1px solid #3371a3;
	color: #fff;
}

.viewer td, .viewer tr {
	border: 1px solid #3371a3;
}

/*}}}*/
/***
!!!Editor
***/
/*{{{*/

* html .editor textarea, 
* html .editor input {
	color:#000;
	width: 98%;
}
.editor input, 
.editor textarea {
	color:#000;
	border: 1px solid #1d65bc; 
	background:#ebeef1;
}

.editor {
	padding-top:0.3em;
}

.editor textarea:focus, 
.editor input:focus {
	border: 1px inset #3371a3; 
	background:#fff;
	color:#000;
}
/*}}}*/


/***
!Sidebar
***/
/*{{{*/
#sidebar{
	background:[[CustomColors::DocumentBackground]];
	position:relative;
	float:right;
	display:inline;
	width: 230px;
}

#sidebarOptions {
	padding:0.5em 1em 0.5em 1em;
	background:[[CustomColors::SideBarBackground]];
	color:[[CustomColors::SideBarColor]];
	margin-bottom:5px;
	border:0px solid;
    -moz-border-radius:1em;
    font-weight:bold;
    font-size:1.1em;
}

#sidebarTimeline {
	background:[[CustomColors::SidebarTimelineBackground]];
	color:[[CustomColors::SidebarTimelineColor]];
	font-weight:bold;
	-moz-border-radius:1em;
	padding:0.1em 1em 0.5em 1em;
	margin-bottom:5px;
}
#sidebarTimeline h1,
#sidebarTimeline h2,
#sidebarTimeline h3,
#sidebarTimeline h4,
#sidebarTimeline h5,
#sidebarTimeline h6 {
	color: #000000;
}
#sidebarTimeline .button {
	color:[[CustomColors::SidebarTimelineColor]];
	font-weight:bold;
	font-size:1.2em;
}
#sidebarTimeline a.button:hover {
	background:[[CustomColors::SidebarTimelineLinkHover]];
}
#sidebarTimeline .tiddlyLink {
	color:[[CustomColors::SidebarTimelineLink]];
	font-weight:normal;
}
#sidebarTimeline .tiddlyLink:hover {
	color:[[CustomColors::SidebarTimelineLinkHover]];
	font-weight:normal;
}

#sidebar .tabSelected, 
#sidebar .tabSelected:hover {
	color: #000;
	border-top: solid 1px #B2B6BE;
	border-left: solid 1px #B2B6BE;
	border-right: solid 1px #B2B6BE;
	border-bottom:solid 1px #dbdee3 !important;
	padding-bottom:1px;
	text-decoration:none;
}

 
#sidebarTabs {
	background:[[CustomColors::SideBarBackground]];
	color:[[CustomColors::SideBarColor]];
}

#sidebar .tabUnselected, 
#sidebar .tabUnselected:hover {
	color: #F0F3F5;
	border: solid 1px #B2B6BE ;
	padding-bottom:1px;
}

#sidebarTabs .tabContents {border:none; background:#DBDEE3; }

#sidebarTabs .tabContents {border-top:1px solid #B2B6BE;}

#sidebarTabs .tabContents .tabContents {border-left:1px solid #b2b6be;}

#sidebarOptions .sliderPanel {
	background: #EBEEF1; border:none;
}

#sidebarOptions input {
	border: 1px solid #1d65bc;
}

#sidebarOptions input:hover, #sidebarOptions input:active,  #sidebarOptions input:focus {
	border: 1px inset #3371a3;
}

#sidebar .button:active, #sidebar .marked, #sidebar .highlight {color:#014; background:transparent;text-decoration:none}
/*}}}*/

/***
!!Popups
***/
/*{{{*/
.popup {
	background: #3371a3;
	border: 1px solid #333;
}

.popup hr {
	color: #333;
	background: #333;
	border-bottom: 1px;
}

.popup li.disabled {
	color: #333;
}

.popup li a, .popup li a:visited {
	color: #eee;
	border: none;
}

.popup li a:hover {
	background: #3371a3;
	color: #fff;
	border: none;
        text-decoration:underline;
}
/*}}}*/




/***
!!Message Area
***/
/*{{{*/

#messageArea {
	border: 2px dashed #3371a3;
	background: #dbdee3;
	color: #fff;
        font-size:90%;
}

#messageArea .button {
	color: #1d65bc;
	background: #ebeef1;
        text-decoration:none;
        font-weight:bold;
        border:none; 
}

#messageArea a.button {color:#1d65bc;}

#messageArea .button:hover {text-decoration:underline;}
/*}}}*/
/***
!!Tabs
***/
/*{{{*/
.viewer .tabSelected, 
.viewer .tabSelected:hover,
.viewer .tabUnselected, 
.viewer .tabUnselected:hover{
	color: [[CustomColors::PostLinkHover]];
	background: [[CustomColors::PostBackground]];
	border-left: 1px solid [[CustomColors::PostBorderColor]];
	border-top: 1px solid [[CustomColors::PostBorderColor]];
	border-right: 1px solid [[CustomColors::PostBorderColor]];
}

.viewer .tabContents {
	color: [[CustomColors::PostColor]];;
	background: [[CustomColors::PostBackground]];;
	border: 1px solid [[CustomColors::PostBorderColor]];;
}
/*}}}*/
<<allTags excludeLists>>
<html>
    <img class="tidImg" src="http://www.daniele.niero.name/BlogStuff/images/nye/theRock_sunset001.jpg" />
    <img class="tidImg" src="http://www.daniele.niero.name/BlogStuff/images/nye/theRock_sunset000.jpg" />
    <img class="tidImg" src="http://www.daniele.niero.name/BlogStuff/images/nye/harborBridge_sunset000.jpg" />
    <img class="tidImg" src="http://www.daniele.niero.name/BlogStuff/images/nye/harborBridge_sunset001.jpg" />
    <img class="tidImg" src="http://www.daniele.niero.name/BlogStuff/images/nye/operaHouse_sunset000.jpg" />
</html>
<<tiddler HideTiddlerTags>>
@@color:#000000;font-size:1.2em;font-weight:bold;The Funny Guys Behind This Blog@@
----
[[Dan]] [[Knosso]]
!Timeline
<<posttimeline>>
/***
Contains the stuff you need to use Tiddlyspot
Note you must also have UploadPlugin installed
***/
//{{{

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'trueaustralia';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)

// disable autosave in d3
if (window.location.protocol != "file:")
	config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
	SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
	SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
	OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
	DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");
}

// create some shadow tiddler content
merge(config.shadowTiddlers,{

'WelcomeToTiddlyspot':[
 "This document is a ~TiddlyWiki from tiddlyspot.com.  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),

'TspotControls':[
 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<<br>>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
 "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),

'TspotSidebar':[
 "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n"),

'TspotOptions':[
 "tiddlyspot password:",
 "<<option pasUploadPassword>>",
 ""
].join("\n")

});
//}}}
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 03/01/2008 00:27:46 | Dan | [[/|http://trueaustralia.tiddlyspot.com/]] | [[store.cgi|http://trueaustralia.tiddlyspot.com/store.cgi]] | . | [[index.html | http://trueaustralia.tiddlyspot.com/index.html]] | . |
| 03/01/2008 00:45:15 | Dan | [[/|http://trueaustralia.tiddlyspot.com/]] | [[store.cgi|http://trueaustralia.tiddlyspot.com/store.cgi]] | . | [[index.html | http://trueaustralia.tiddlyspot.com/index.html]] | . |
| 03/01/2008 01:04:29 | Dan | [[/|http://trueaustralia.tiddlyspot.com/]] | [[store.cgi|http://trueaustralia.tiddlyspot.com/store.cgi]] | . | [[index.html | http://trueaustralia.tiddlyspot.com/index.html]] | . |
| 03/01/2008 01:05:40 | Dan | [[/|http://trueaustralia.tiddlyspot.com/]] | [[store.cgi|http://trueaustralia.tiddlyspot.com/store.cgi]] | . | [[index.html | http://trueaustralia.tiddlyspot.com/index.html]] | . |
| 03/01/2008 19:11:58 | Dan | [[/|http://trueaustralia.tiddlyspot.com/]] | [[store.cgi|http://trueaustralia.tiddlyspot.com/store.cgi]] | . | [[index.html | http://trueaustralia.tiddlyspot.com/index.html]] | . |
| 03/01/2008 19:17:50 | Dan | [[/|http://trueaustralia.tiddlyspot.com/]] | [[store.cgi|http://trueaustralia.tiddlyspot.com/store.cgi]] | . | [[index.html | http://trueaustralia.tiddlyspot.com/index.html]] | . |
| 12/01/2008 01:24:15 | Dan | [[/|http://trueaustralia.tiddlyspot.com/]] | [[store.cgi|http://trueaustralia.tiddlyspot.com/store.cgi]] | . | [[index.html | http://trueaustralia.tiddlyspot.com/index.html]] | . |
| 13/01/2008 12:43:34 | Dan | [[/|http://trueaustralia.tiddlyspot.com/]] | [[store.cgi|http://trueaustralia.tiddlyspot.com/store.cgi]] | . | [[index.html | http://trueaustralia.tiddlyspot.com/index.html]] | . |
| 13/01/2008 21:08:10 | Dan | [[/|http://trueaustralia.tiddlyspot.com/]] | [[store.cgi|http://trueaustralia.tiddlyspot.com/store.cgi]] | . | [[index.html | http://trueaustralia.tiddlyspot.com/index.html]] | . |
| 22/02/2008 12:34:03 | Dan | [[/|http://trueaustralia.tiddlyspot.com/]] | [[store.cgi|http://trueaustralia.tiddlyspot.com/store.cgi]] | . | [[index.html | http://trueaustralia.tiddlyspot.com/index.html]] | . |
/***
|''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"
	});
*/
//}}}

/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.0|
|''Date:''|May 5, 2007|
|''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 (#3125)|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 0,
	date: new Date("May 5, 2007"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0 (#3125)'
};

//
// 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
		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}
				
			]);
	},
	refreshOptions: function(listWrapper) {
		var uploadOpts = [
			"txtUploadUserName",
			"pasUploadPassword",
			"txtUploadStoreUrl",
			"txtUploadDir",
			"txtUploadFilename",
			"txtUploadBackupDir",
			"chkUploadLog",
			"txtUploadLogMaxLine",
			]
		var opts = [];
		for(i=0; i<uploadOpts.length; i++) {
			var opt = {};
			opts.push()
			opt.option = "";
			n = uploadOpts[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 = 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,null,null,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 = Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		bidix.upload.httpUpload(rssUploadParams,convertUnicodeToUTF8(generateRss()),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 == httpStatus.NotFound)
			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; 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');


/* don't want this for tiddlyspot sites

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

*/


//}}}
<!--{{{-->
<div class='subtitle'>
	<span style='text-transform:uppercase;' macro='view modified date'></span>
</div>
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='toolbar' macro='toolbar references'></div>
<div class='subtitle'>Posted by <span macro='view modifier link'></span>     <span macro='haloscan comments'></span></div>
<div class='tagClear'></div>

<!--}}}-->
Australia is a place famous for many things.
For example 
*Australia is where strange animals live, like Kangaroo, Koala, Wombat etc.
*Australia is famous for many things that kill! Definitely a tough place.
*Australia is a country of beautiful beaches and surf paradise.
*Everybody in Australia is fit, gorgeous and happy, especially Australia is the land of beautiful, told, blond women.
*In Australia climate condition and earth are so good that in less then 200 years they did in term of wine and food what we did in Europe in thousands of years instead! Isn't this amazing!?!
What else? oh yes 
*Australia means also big spaces, crocodiles, sharks and so many other things that is practically impossible to list all them here.

You'd like to move to Australia now, wouldn't you? :)
I know, I understand your feeling! That's why we moved here! exactly for that reason!

But have you never thought that is too good to be true...
What if you move here and you discover that this place isn't so good after all?
What if you discover that is ok, but you have already seen many things like this and even better close to your own home?

Well I can only tell you one thing: knowledge makes you free!

We are living in Australia right now, we moved here following the Australian Myth, and now is time to tell you what we think about that Myth! :)

<<tiddler HideTiddlerTags>>
First reaction I had when I read the article from our [[Mister(y) Winemaker|Anaerobic winemaking]] was a (quite) bitter laugh: here is why. 
One of the most important part of my formation as a professional taster was attending the course to become a Master of Wine: something I’d recommend to anyone. This course ''helps you to expand your horizons'' and get in touch with wine-related realities which are very far from your usual ones. During the lessons you get to taste wines coming from the four corners of planet Earth, and amongst these we tasted the ''Sauvignons'' from Marlborough, ''New Zealand''.
These wines had (and still have) a unique nose, which are light years away from our Sauvignon Blancs. In them you find none of the famous “cat’s pee” or “fig” smell, but rather notes of tropical fruits, in particular passion fruit. This Passion Fruit aroma was identified by everyone as characterising of the area and unique to that particular terroir.
Then, in 2002, I spend nearly two months between Australia and New Zealand, 
<<slider continueSlider [[Wines that had a boob-job done! -part 2-]] continue... "continue">>

!!!!Carlo Macchi [[winesurf.it|http://www.winesurf.it]]

<<tiddler HideTiddlerTags>>
dedicating three or four days to visiting Marlborough’s wine cellars. 
I was ''not very impressed'' with what I’d seen in the vineyards (the oldest vine of the area must have been some 18 years old). I could work out for myself that that wine-growing was aiming to get the most quantity possible from young vines. Having said that, I had to recognise that those particular aromas were there and that those Sauvignons were really peculiar… I decided to investigate more in depth and I decided to buy some 20 labels of local Sauvignons. I’ve had a comparative tastig and then I’ve put the bottles in the fridge to taste them again the following day. 
What happened the following day was that ''the wines had lost all their aromas!'' 
At the time I’d blame that on having bought not the best quality of Sauvignons available: from my tasting were actually missing the most important and famous Sauvignon Blancs of the area..
Now let’s jump 4 years ahead: I’m visiting an important producer in Sicily and I’m given to taste a Catarratto in which I find the same aromas that I’d found in the New Zealand’s Sauvignon Blancs. I’m obviously taken aback. I’m even more taken aback when, a few days after, I have tasted a Tuscan Vermentino and a South Tyrolean Chardonnay with the same passion fruit aromas. 
I start to ask the different winemakers and all of them gave me pretty vague answers, speaking of “yeasts”, “particular vintages” and so on.
nuovazelanda.jpg
''Now I understand!'' Let’s stop talking of “character given by the terroir” and let’s start admitting that ''that passion fruit aroma is obtained in the cellar'', disregarding whether this is in Marlborough, Sicily, South Tyrol or God knows where. It’s not coincidental that this year’s Sauvignon Blanc from South Tyrol smelled like they were made in New Zealand (also loosing their aromas if left open overnight…).
So far I have to say that even though ''I’m not 100% in agreement which this procedures'', there is nothing “against the law” in it. 
Wine technology goes on, and these procedures allow the winemakers to obtain pleasant and easy to drink (and to appreciate) wines. But if I think of it, it is at least 15 years that us wine journalists (Italian as well as foreign ones of course) warm up when describing the inimitable aromas of the antipodal Sauvignon Blancs, attributing them to magic terroirs, incomparable expositions, cutting-edge viticulture and so on, when all we need would be to follow the winemaker’s “recipe” to ''obtain the same thing anywhere in the world''.
As well groomed people say, ''we’ve been taken for a ride'', and my fear is (it’s more of a certainty) that they’ll keep on doing it with impunity. If it took 15 years to understand this, what credibility can we have as a category? I can see them roaring with laughter to our expense, when they read our enthusiastic comments on skilfully “adjusted” wines. What will be our duty in the times to come? To legitimise wines without asking too many questions or to investigate on the good and bad do’s of a producer? Let’s discuss this issue please!
But in the meantime let’s come to the second painful issue: a wine-technology that is able to produce intriguing but globalised aromas is to be considered a good or a bad thing for the wine world?
Let’s do a comparison: all of us guys are attracted to young starlets that show without too much concern their clearly “adjusted” boobs. One of the most usual comments on this issue is “they might well be adjusted, but for a quick one they’re great”. Then it happens that you start to chat up these girls, trying to work your way towards the “quick one”, and you realise quickly that there’s not much behind those silicon bumpers. They are often unable to put two words together and they are invariably empty of ideas on anything.
A wine that has alluring but globalised aromas which it looses after only one night (not a “hot” night, which is even worse) is a ''siliconed win'', ''pumped up'' and ''unnatural''. Maybe it will be liked more, but it will get the consumers to forget what is the “real thing”. The real thing cannot be identified with some pumped up boobs (i.e. aromas) but rather with hard and serious work in the vineyard, and with a vinification that does not try to “create” anything, but that help the grapes to express themselves. I don’t want to demonise technology and science, and I know well that also cosmetic surgery has an important role in our society, a role that goes well beyond the creation of a nice something to look at. But where’s the limit then?
And in winemaking, where is the limit? Maybe it’s just me, but at the moment I really can’t see it, and at times I am afraid that for many people it doesn’t exist at all!