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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

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

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

----
Also see AdvancedOptions
<<importTiddlers>>
In Socialtext Unplugged, the selected pages of your Socialtext workspace are displayed as individual "tiddlers" on the page. When the mouse passes over a tiddler a short toolbar menu appears at the top right. Use the commands here to manipulate that particular tiddler: notably closing and editting it. (You can double click on a tiddler as a shortcut to directly enter edit mode).

Over on the right hand side of the window are commands that affect the entire page, in particular "close all" which can be useful to clear the decks when many tiddlers are open at once.

The user is encouraged to ensure that they can SaveChanges before embarking on widespread editing.
Welcome to Socialtext Unplugged. This is a specially designed web page that you can use to view and edit your Socialtext content without having to be online to your Socialtext server.

There are three steps to using Socialtext Unplugged:
* First, learn how to SaveChanges to your local hard drive. This keeps your work safe even if you close your browser or have to reboot your computer
* Secondly, find out how to BrowseAndEdit your content while it is unplugged
* Thirdly, when you can reconnect to your Socialtext server, you can SyncChanges to save your unplugged changes to the server so that other people can see them too

You should also check your system meets the SystemRequirements.
Socialtext Unplugged lets you browse and edit your content while you're offline. When you make a change you need to SaveChanges to save the change to your local hard drive, before later performing a SyncChanges to synchronise the change back to the server.

The procedure for SaveChanges is slightly different for different browsers:
* SavingOnInternetExplorer
* SavingOnFireFox
* SavingOnSafari
* SavingOnOpera
You can save changes with any version of FireFox, and also many other browsers in the FireFox family, such as Camino on the Mac and MiniMo on mobile devices. The procedure is:
# Click the button labelled 'save changes' over in the right hand sidebar
# If prompted with an "Internet Security" dialog as follows, click the checkbox labelled "Remember this decision" and then the "Allow" button
## "A script from "file://" is requesting enhanced capabilities that are UNSAFE and could be used to compromise your machine or data..."
# You should then see a message at the top right of the window saying "Main TiddlyWiki file saved"
If you accidentally //deny// permission instead, you may need to UnravelFireFoxPermissions.
You can save changes with Internet Explorer versions 6 and 7, but not the earlier versions. The procedure is:
# Click the button labelled 'save changes' over in the right hand sidebar
# If prompted as follows, click "Yes":
## "An ActiveX control on this page might be unsafe to interact with other parts of the page. Do you want to allow this interaction?"
# You should then see a message at the top right of the window saying "Main TiddlyWiki file saved"
Note that there is currently [[a bug|http://trac.tiddlywiki.org/tiddlywiki/ticket/39]] that prevents Internet Explorer from saving correctly if you have specified a backup directory in AdvancedOptions.
To SaveChanges on Opera, see the instructions for using the TiddlySaver Java applet.
To SaveChanges on Safari, see the instructions for using the TiddlySaver Java applet.
<<search>><<closeAll>><<permaview>><<newTiddler 'New Tiddler' fields:'server.host:"https://saturn.ffzg.hr%2C%20saturn.ffzg.hr:443" server.workspace:"razmjenavjestina" wikiformat:socialtext'>><<newJournal 'DD MMM YYYY' fields:'server.host:"https://saturn.ffzg.hr%2C%20saturn.ffzg.hr:443" server.workspace:"razmjenavjestina" wikiformat:socialtext'>><<saveChanges>><<backstage sync>><<slider chkSliderOptionsPanel OptionsPanel 'options ยป' 'Change TiddlyWiki advanced options'>>
RazmjenaVjestina
Socialtext Unplugged
https://saturn.ffzg.hr/razmjenavjestina/
[[SocialtextScreenStyle]]
[[SocialtextStyleOverrides]]
[[Styles HorizontalMainMenu]]
<<sync>>
@@The user interface for synchronization is not finalized@@
To synchronize your changes back to the Socialtext server:
# click on [[Sync]] in the right-hand sidebar
<<tabs txtMoreTab Orphans 'Orphaned tiddlers' TabMoreOrphans Shadowed 'Shadowed tiddlers' TabMoreShadowed>>
Under FireFox, you can run into problems if you accidentally click 'Deny' on the permission request dialog, and have selected //Remember this decision//.

To reverse the effects, first locate the file {{{prefs.js}}} in your FireFox profile directory. Under Windows you'll find it at something like {{{C:\Documents and Settings\Jeremy\Application Data\Mozilla\Firefox\Profiles\o3dhupu6.default\prefs.js}}}, where {{{Jeremy}}} is the name of your windows profile and {{{o3dhupu6}}} will be a similar string of gobbledegook. On the Mac it'll be at {{{~/Library/Application Support/Firefox/Profiles/o3dhupu6.default/prefs.js}}} and on most versions of Linux, at {{{~/.mozilla/firefox/o3dhupu6.default/prefs.js}}}.

Open the file in a text editor and find the line {{{user_pref("capability.principal.codebase.p0.denied", "UniversalXPConnect");}}} and simply replace the word {{{denied}}} with {{{granted}}}.
//(Thanks to JonScully for figuring out this fix)//
<!--{{{-->
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler references > fields syncing jump'></div>
<div class='workspace' id='st-page-wiki-title' macro='view socialtext.workspace'></div>
<div class='title' id='st-page-titletext' macro='view title'></div>
<div class='subtitle'>
Created on <span macro='view created date [[MMM DD, 0hh:0mm]]'></span>.
Updated by <span macro='view modifier link'></span>
on <span macro='view modified date [[MMM DD, 0hh:0mm]]'></span></div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></span></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
/***
To use, add {{{[[Styles HorizontalMainMenu]]}}} to your StyleSheet tiddler.
See http://www.w3schools.com/css/css_colors.asp for a color chart.
***/
/*{{{*/
#mainMenu {position:relative;left:auto;width:auto;text-align:left;line-height:normal;padding 0em 1em 0em 1em;font-size:normal;}
#mainMenu br {display:none;}
#mainMenu {background:#336699;}
#mainMenu {padding:2px;}
#mainMenu .button, #mainMenu .tiddlyLink {padding-left:0.5em;padding-right:0.5em;color:white;font-size:115%;}

#displayArea {
	margin-top:0;margin-right:20em;margin-bottom:0;margin-left:1em;
	padding-top:.1em;padding-bottom:.1em;
}
/*}}}*/
|''Type:''|socialtext|
|''URL:''|https://saturn.ffzg.hr%2C%20saturn.ffzg.hr:443 |
|''Workspace:''|razmjenavjestina|
|''WorkspaceList:''||
|''Description:''|RazmjenaVjestina|
The TiddlySaver Java applet allows TiddlyWiki from a {{{file://}}} URL to save changes Safari, Opera and other browsers.

It is a small file named [["TiddlySaver.jar"|TiddlySaver.jar]] that must be placed in the same directory as your TiddlyWiki file. Before you can use it, you need to give it the necessary privileges by editting your {{{.java.policy}}} file.

For Windows, the file will be at {{{C:\Documents and Settings\your-user-name\.java.policy}}}. Add the following lines (substituting the directory of your TiddlyWiki file as appropriate):
{{{
grant codeBase "file:${user.home}/My Documents/tiddlywiki-folder/*" {
  permission java.io.FilePermission "${user.home}${/}My Documents${/}tiddlywiki-folder${/}*", "read,write";
};
}}}
On Mac OS X, the file is found at {{{/Users/your-user-name/.java.policy}}}:
{{{
grant codeBase "file:${user.home}/Documents/tiddlywiki-folder/*" {
  permission java.io.FilePermission "${user.home}${/}Documents${/}tiddlywiki-folder${/}*", "read,write";
};
}}}
It can be tricky creating files whose name starts with a period, so you can use this [[pre-built .java.policy file|.java.policy]]. The same file is suitable for Macs too, just edit it and delete the "My " bit, leaving just "Documents". Make sure you save it in the right place for each operating system!

If you have trouble setting up the permissions correctly, you can try granting broader permissions to the applet like this:

{{{
grant codeBase "file://localhost/home/users/Desktop/
TiddlySaver.jar"
 { permission java.security.AllPermission; };
}}}

Note that there is currently [[a bug|http://trac.tiddlywiki.org/ticket/172]] that prevents TiddlySaver from working if you have specified a backup directory in AdvancedOptions.
/***
|''Name:''|SocialtextLocaleOverrides|
|''Description:''|Text changes for Socialtext|
***/

//{{{
merge(config.views.wikified.tag,{
	labelNoTags: "No Tags",
	labelTags: "Tags"});

merge(config.commands.references,{
	text: "incoming links",
	tooltip: "Show tiddlers that link to this one",
	popupNone: "No incoming links"});
//}}}
/***
|''Name:''|SocialtextTweaksPlugin|
|''Description:''|Allows changes to be synchronised with a Socialtext server|
|''Source:''|http://stunplugged.tiddlywiki.com/#SocialtextTweaksPlugin|
|''Author:''|JeremyRuston (jeremy (at) osmosoft (dot) com)|
|''Version:''|1.0.2|
|''Date:''|Jun 15, 2006|
|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.2|

Make minor configuration tweaks specific to Socialtext Unplugged
***/

//{{{
// Ensure that the SocialtextTweaksPlugin is only installed once.
if(!version.extensions.SocialtextTweaksPlugin) {
version.extensions.SocialtextTweaksPlugin = {installed:true};
// Check version number of core code
if(version.major < 2 || (version.major == 2 && version.minor < 2))
	{alertAndThrow("SocialtextTweaksPlugin requires TiddlyWiki 2.2 or later.");}

merge(config.defaultCustomFields,{
	wikiformat:'socialtext',
	'server.host':'https://saturn.ffzg.hr%2C%20saturn.ffzg.hr:443'
});

config.options.chkSinglePageMode = true;
config.options.chkEnableAnimations = true;

} // end of "install only once"
//}}}
/***
|''Name:''|SocialtextFormatterPlugin|
|''Description:''|Allows Tiddlers to use [[Socialtext|http://www.socialtext.com/]] text formatting|
|''Author:''|Martin Budden (mjbudden (at) gmail (dot) com)|
|''Source:''|http://www.martinswiki.com/#SocialtextFormatterPlugin|
|''CodeRepository:''|http://svn.tiddlywiki.org/Trunk/contributors/MartinBudden/formatters/SocialtextFormatterPlugin.js|
|''Version:''|0.9.4|
|''Date:''|Jan 21, 2007|
|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev|
|''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|''~CoreVersion:''|2.1.0|

This is the SocialtextFormatterPlugin, which allows you to insert Socialtext formated text into a TiddlyWiki.

The aim is not to fully emulate Socialtext, but to allow you to work with Socialtext content off-line and then resync the content with your Socialtext wiki later on, with the expectation that only minor edits will be required.

To use Socialtext format in a Tiddler, tag the Tiddler with SocialtextFormat or set the tiddler's {{{wikiformat}}} extended field to {{{socialtext}}}

Please report any defects you find at http://groups.google.co.uk/group/TiddlyWikiDev
***/

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

if(version.major < 2 || (version.major == 2 && version.minor < 1))
	{alertAndThrow('SocialtextFormatterPlugin requires TiddlyWiki 2.1 or later.');}

SocialtextFormatter = {}; // 'namespace' for local functions

wikify = function(source,output,highlightRegExp,tiddler)
{
	if(source && source != '') {
		var w = new Wikifier(source,getParser(tiddler),highlightRegExp,tiddler);
		var out = output;
		if(tiddler && (tiddler.isTagged(config.parsers.socialtextFormatter.formatTag) || (tiddler.fields.wikiformat==config.parsers.socialtextFormatter.format)) ) {
			var d1 = createTiddlyElement(output,'div','content-display-body','content-section-visible');
			var d2 = createTiddlyElement(d1,'div','wikipage');
			out = createTiddlyElement(d2,'div',null,'wiki');
		}
		var time1,time0 = new Date();
		w.subWikifyUnterm(out);
		if(tiddler && config.options.chkDisplayInstrumentation) {
			time1 = new Date();
			var t = tiddler ? tiddler.title : source.substr(0,10);
			displayMessage("Wikify '"+t+"' in " + (time1-time0) + " ms");
		}
	}
};

stDebug = function(out,str)
{
	createTiddlyText(out,str.replace(/\n/mg,'\\n').replace(/\r/mg,'RR'));
	createTiddlyElement(out,'br');
};

SocialtextFormatter.Tiddler_changed = Tiddler.prototype.changed;
Tiddler.prototype.changed = function()
{
	if((this.fields.wikiformat==config.parsers.socialtextFormatter.format) || this.isTagged(config.parsers.socialtextFormatter.formatTag)) {
		// update the links array, by checking for Socialtext format links
		this.links = [];
		var tiddlerLinkRegExp = /(?:\"(.*?)\" ?)?\[([^\]]*?)\]/mg;
		tiddlerLinkRegExp.lastIndex = 0;
		var match = tiddlerLinkRegExp.exec(this.text);
		while(match) {
			var link = match[2];
			this.links.pushUnique(link);
			match = tiddlerLinkRegExp.exec(this.text);
		}
	}/* else {
		return SocialtextFormatter.Tiddler_changed.apply(this,arguments);
	}*/
	this.linksUpdated = true;
};

SocialtextFormatter.wafl = function(w)
{
	this.lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var lm2 = lookaheadMatch[2];
		switch(lookaheadMatch[1]) {
		case 'image':
			var img = createTiddlyElement(w.output,'img');
			img.src = w.tiddler.title + '/' + lm2;
			createTiddlyText(img,lm2);
			break;
		case 'file':
			var s = createTiddlyElement(w.output,'span',null,'nlw_phrase');
			var a = createTiddlyElement(s,'a');
			a.href = w.tiddler.title + '/' + lm2;
			createTiddlyText(a,lm2);
			break;
		case 'link':
			s = createTiddlyElement(w.output,'span',null,'nlw_phrase');
			a = createTiddlyElement(s,'a');
			var t = w.tiddler ? w.tiddler.title + ':' : '';
			a.setAttribute('href','#' + t + lm2);
			a.title = 'section link';
			createTiddlyText(a,lm2);
			break;
		case 'weblog':
			s = createTiddlyElement(w.output,'span',null,'nlw_phrase');
			var text = lm2;
			var link = 'Weblog: ' + lm2;
			createTiddlyText(createTiddlyLink(s,link,false,null,w.isStatic),text);
			break;
		case 'section':
			a = createTiddlyElement(w.output,'a');// drop anchor
			t = w.tiddler ? w.tiddler.title + ':' : '';
			a.setAttribute('name',t + lm2);
			break;
		case 'date':
			createTiddlyText(w.output,lm2);
			break;
		case 'user':
			var oldSource = w.source;
			w.source = lm2;
			w.nextMatch = 0;
			w.subWikifyUnterm(w.output);
			w.source = oldSource;
			break;
// Shortcut expansions - not strictly syntax
		case 'google':
			s = createTiddlyElement(w.output,'span',null,'nlw_phrase');
			a = createExternalLink(s,'http://www.google.com/search?q='+lm2);
			createTiddlyText(a,lm2);
			break;
		case 'fedex':
			s = createTiddlyElement(w.output,'span',null,'nlw_phrase');
			a = createExternalLink(s,'http://www.fedex.com/Tracking?tracknumbers='+lm2);
			createTiddlyText(a,lm2);
			break;
		case 'map':
			s = createTiddlyElement(w.output,'span',null,'nlw_phrase');
			a = createExternalLink(s,'http://maps.google.com/maps?q='+lm2);
			createTiddlyText(a,lm2);
			break;
		case 'wikipedia':
			s = createTiddlyElement(w.output,'span',null,'nlw_phrase');
			a = createExternalLink(s,'http://en.wikipedia.org/wiki/'+lm2);
			createTiddlyText(a,lm2);
			break;
		case 'rt':
			s = createTiddlyElement(w.output,'span',null,'nlw_phrase');
			a = createExternalLink(s,'http://rt.socialtext.net/Ticket/Display.html?id='+lm2);
			createTiddlyText(a,lm2);
			break;
		case 'stcal':
			s = createTiddlyElement(w.output,'span',null,'nlw_phrase');
			a = createExternalLink(s,'https://calendar.socialtext.net:445/view_t.php?timeb=1&id=3&date='+lm2);
			createTiddlyText(a,lm2);
			break;
		case 'svn':
			s = createTiddlyElement(w.output,'span',null,'nlw_phrase');
			a = createExternalLink(s,'https://repo.socialtext.net/listing.php?rev='+lm2+'sc=1');
			createTiddlyText(a,lm2);
			break;
		default:
			w.outputText(w.output,w.matchStart,w.nextMatch);
			return;
		}
		w.nextMatch = this.lookaheadRegExp.lastIndex;
	} else {
		w.outputText(w.output,w.matchStart,w.nextMatch);
	}
};

SocialtextFormatter.presence = function(w)
{
	this.lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var p = lookaheadMatch[1];
		var text = lookaheadMatch[2];
		var link;
		var src;
		if(p=='aim') {
			link = 'aim:goim?screenname=' + text + '&message=hello';
			src = 'http://big.oscar.aol.com/sleepleft?on_url=http://www.aim.com/remote/gr/MNB_online.gif&amp;off_url=http://www.aim.com/remote/gr/MNB_offline.gif';
		} else if(p=='yahoo'||p=='ymsgr') {
			link = 'ymsgr:sendIM?'+text;
			src = 'http://opi.yahoo.com/online?u=chrislondonbridge&f=.gif';
		} else if(p=='skype'||p=='callto') {
			link = 'callto:'+text;
			src = 'http://goodies.skype.com/graphics/skypeme_btn_small_green.gif';
		} else if(p=='asap') {
			link = 'http://asap2.convoq.com/AsapLinks/Meet.aspx?l='+text;
			src = 'http://asap2.convoq.com/AsapLinks/Presence.aspx?l='+text;
		}
		var s = createTiddlyElement(w.output,'span',null,'nlw_phrase');
		var a = createExternalLink(s,link);
		var img = createTiddlyElement(a,'img');
		createTiddlyText(a,text);
		img.src = src;
		img.border='0';
		img.alt = '(' + lookaheadMatch[1] + ')';
		if(p=='aim') {
			img.width='11'; img.height='13';
		}
		w.nextMatch = this.lookaheadRegExp.lastIndex;
	}
};

config.formatterHelpers.singleCharFormat = function(w)
{
	this.lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart && lookaheadMatch[0].substr(lookaheadMatch[0].length-2,1) != ' ') {
		w.subWikifyTerm(createTiddlyElement(w.output,this.element),this.termRegExp);
	} else {
		w.outputText(w.output,w.matchStart,w.nextMatch);
	}
};

config.socialtext = {};
config.socialtext.formatters = [
{
	name: 'socialtextHeading',
	match: '^\\^{1,6} ?',
	termRegExp: /(\n+)/mg,
	handler: function(w)
	{
		var len = w.matchText.trim().length;
		var e = createTiddlyElement(w.output,'h' + len);
		var a = createTiddlyElement(e,'a');// drop anchor
		var t = w.tiddler ? w.tiddler.title + ':' : '';
		len = w.source.substr(w.nextMatch).indexOf('\n');
		a.setAttribute('name',t+w.source.substr(w.nextMatch,len));
		w.subWikifyTerm(e,this.termRegExp);
	}
},

{
	name: 'socialtextTable',
	match: '^\\|(?:(?:.|\n)*)\\|$',
	lookaheadRegExp: /^\|(?:(?:.|\n)*)\|$/mg,
	cellRegExp: /(?:\|(?:[^\|]*)\|)(\n|$)?/mg,
	cellTermRegExp: /((?:\x20*)\|)/mg,
	handler: function(w)
	{
		var table = createTiddlyElement(w.output,'table');
		var rowContainer = createTiddlyElement(table,'tbody');
		var prevColumns = [];
		w.nextMatch = w.matchStart;
		this.lookaheadRegExp.lastIndex = w.nextMatch;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		while(lookaheadMatch && lookaheadMatch.index == w.nextMatch) {
			var r = this.rowHandler(w,createTiddlyElement(rowContainer,'tr'),prevColumns);
			if(!r) {
				w.nextMatch++;
				break;
			}
			this.lookaheadRegExp.lastIndex = w.nextMatch;
			lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		}
	},
	rowHandler: function(w,e,prevColumns)
	{
		this.cellRegExp.lastIndex = w.nextMatch;
		var cellMatch = this.cellRegExp.exec(w.source);
		while(cellMatch && cellMatch.index == w.nextMatch) {
			w.nextMatch++;
			var cell = createTiddlyElement(e,'td');
			w.subWikifyTerm(cell,this.cellTermRegExp);
			if(cellMatch[1]) {
				// End of row
				w.nextMatch = this.cellRegExp.lastIndex;
				return true;
			}
			// Cell
			w.nextMatch--;
			this.cellRegExp.lastIndex = w.nextMatch;
			cellMatch = this.cellRegExp.exec(w.source);
		}
		return false;
	}
},

{
	name: 'socialtextList',
	match: '^[\\*#]+ ',
	lookaheadRegExp: /^([\*#])+ /mg,
	termRegExp: /(\n+)/mg,
	handler: function(w)
	{
		var stack = [w.output];
		var currLevel = 0, currType = null;
		var itemType = 'li';
		w.nextMatch = w.matchStart;
		this.lookaheadRegExp.lastIndex = w.nextMatch;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		while(lookaheadMatch && lookaheadMatch.index == w.nextMatch) {
			var listType = lookaheadMatch[1] == '*' ? 'ul' : 'ol';
			var listLevel = lookaheadMatch[0].length;
			w.nextMatch += listLevel;
			if(listLevel > currLevel) {
				for(var i=currLevel; i<listLevel; i++) {
					stack.push(createTiddlyElement(stack[stack.length-1],listType));
				}
			} else if(listLevel < currLevel) {
				for(i=currLevel; i>listLevel; i--) {
					stack.pop();
				}
			} else if(listLevel == currLevel && listType != currType) {
				stack.pop();
				stack.push(createTiddlyElement(stack[stack.length-1],listType));
			}
			currLevel = listLevel;
			currType = listType;
			var e = createTiddlyElement(stack[stack.length-1],itemType);
			w.subWikifyTerm(e,this.termRegExp);
			this.lookaheadRegExp.lastIndex = w.nextMatch;
			lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		}
	}
},

{
	name: 'socialtextQuoteByLine',
	match: '^>+',
	lookaheadRegExp: /^>+/mg,
	termRegExp: /(\n)/mg,
	element: 'blockquote',
	handler: function(w)
	{
		var stack = [w.output];
		var currLevel = 0;
		var newLevel = w.matchLength;
		var i;
		do {
			if(newLevel > currLevel) {
				for(i=currLevel; i<newLevel; i++) {
					stack.push(createTiddlyElement(stack[stack.length-1],this.element));
				}
			} else if(newLevel < currLevel) {
				for(i=currLevel; i>newLevel; i--) {
					stack.pop();
				}
			}
			currLevel = newLevel;
			w.subWikifyTerm(stack[stack.length-1],this.termRegExp);
			createTiddlyElement(stack[stack.length-1],'br');
			this.lookaheadRegExp.lastIndex = w.nextMatch;
			var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
			var matched = lookaheadMatch && lookaheadMatch.index == w.nextMatch;
			if(matched) {
				newLevel = lookaheadMatch[0].length;
				w.nextMatch += newLevel;
			}
		} while(matched);
	}
},

{
	name: 'socialtextRule',
	match: '^----+$\\n+',
	handler: function(w)
	{
		createTiddlyElement(w.output,'hr');
	}
},

{
	name: 'socialtextPreformatted',
	match: '^\\.pre\\s*\\n',
	lookaheadRegExp: /^.pre\s*\n((?:.|\n)*?)\n.pre\s*\n/mg,
	element: 'pre',
	handler: config.formatterHelpers.enclosedTextHelper
},

{
	name: 'socialtextHtml',
	match: '^\\.html',
	lookaheadRegExp: /\.html((?:.|\n)*?)\.html/mg,
	handler: function(w)
	{
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			createTiddlyElement(w.output,'span').innerHTML = lookaheadMatch[1];
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	}
},

{
	name: 'macro',
	match: '<<',
	lookaheadRegExp: /<<([^>\s]+)(?:\s*)((?:[^>]|(?:>(?!>)))*)>>/mg,
	handler: function(w)
	{
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart && lookaheadMatch[1]) {
			w.nextMatch = this.lookaheadRegExp.lastIndex;
			invokeMacro(w.output,lookaheadMatch[1],lookaheadMatch[2],w,w.tiddler);
		}
	}
},

{
	name: 'socialtextExplicitLink',
	match: '(?:".*?" ?)?\\[',
	lookaheadRegExp: /(?:\"(.*?)\" ?)?\[([^\]]*?)\]/mg,
	handler: function(w)
	{
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var link = lookaheadMatch[2];
			var text = lookaheadMatch[1] ? lookaheadMatch[1] : link;
			createTiddlyText(createTiddlyLink(w.output,link,false,null,w.isStatic,w.tiddler),text);
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	}
},

{
	name: 'socialtextExternalLink',
	match: '(?:".*?" ?)?<[a-z]{2,8}:',
	lookaheadRegExp: /(?:\"(.*?)\" ?)?<([a-z]{2,8}:.*?)>/mg,
	imgRegExp: /\.(?:gif|ico|jpg|png)/g,
	handler: function(w)
	{
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var link = lookaheadMatch[2];
			var text = lookaheadMatch[1] ? lookaheadMatch[1] : link;
			this.imgRegExp.lastIndex = 0;
			if(this.imgRegExp.exec(link)) {
				var img = createTiddlyElement(w.output,'img');
				if(lookaheadMatch[1]) {
					img.title = text;
				}
				img.alt = text;
				img.src = link;
			} else {
				createTiddlyText(createExternalLink(w.output,link),text);
			}
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	}
},

{
	name: 'socialtextUrlLink',
	match: config.textPrimitives.urlPattern,
	handler: function(w)
	{
		w.outputText(createExternalLink(w.output,w.matchText),w.matchStart,w.nextMatch);
	}
},

{
	name: 'socialtextBold',
	match: '\\*(?![\\s\\*])',
	lookaheadRegExp: /\*(?!\s)(?:.*?)(?!\s)\*(?=[$\s\|\._\-,])/mg,
	termRegExp: /((?!\s)\*(?=[$\s\|\.\-_,]))/mg,
	element: 'strong',
	handler: config.formatterHelpers.singleCharFormat
},

{
	name: 'socialtextItalic',
	match: '_(?![\\s_])',
	lookaheadRegExp: /_(?!\s)(?:.*?)(?!\s)_(?=[$\s\|\.\*\-,])/mg,
	termRegExp: /((?!\s)_(?=[$\s\|\.\*\-,]))/mg,
	element: 'em',
	handler: config.formatterHelpers.singleCharFormat
},

{
	name: 'socialtextStrike',
	match: '-(?![\\s\\-])',
	lookaheadRegExp: /-(?!\s)(?:.*?)(?!\s)-(?=[$\s\|\.\*_,])/mg,
	termRegExp: /((?!\s)-(?=[$\s\|\.\*_,]))/mg,
	element: 'del',
	handler: config.formatterHelpers.singleCharFormat
},

{
	name: 'socialtextMonoSpaced',
	match: '`(?![\\s`])',
	lookaheadRegExp: /`(?!\s)(?:.*?)(?!\s)`(?=[$\s\.\*\-_,])/mg,
	termRegExp: /((?!\s)`(?=[$\s\.\*\-_,]))/mg,
	element: 'tt',
	handler: config.formatterHelpers.singleCharFormat
},

{
	name: 'socialtextParagraph',
	match: '\\n{2,}',
	handler: function(w)
	{
		createTiddlyElement(w.output,'p');
	}
},

{
	name: 'socialtextLineBreak',
	match: '\\n',
	handler: function(w)
	{
		createTiddlyElement(w.output,'br');
	}
},

{
	name: 'socialtextNoWiki',
	match: '\\{\\{',
	lookaheadRegExp: /\{\{((?:.|\n)*?)\}\}/mg,
	element: 'span',
	handler: config.formatterHelpers.enclosedTextHelper
},

{
	name: 'socialtextTrademark',
	match: '\\{tm\\}',
	handler: function(w)
	{
		createTiddlyElement(w.output,'span').innerHTML = '&trade;';
	}
},

{
	name: 'socialtextWafl',
	match: '\\{(?:[a-z]{2,16}): ?.*?\\}',
	lookaheadRegExp: /\{([a-z]{2,16}): ?(.*?)\}/mg,
	handler: SocialtextFormatter.wafl
},

{
	name: 'socialtextPresence',
	match: '(?:aim|yahoo|ymsgr|skype|callto|asap):\\w+',
	lookaheadRegExp: /(aim|yahoo|ymsgr|skype|callto|asap):(\w+)/mg,
	handler: SocialtextFormatter.presence
},

{
	name: 'socialtextMailTo',
	match: '[\\w\.]+@[\\w]+\.[\\w\.]+',
	lookaheadRegExp: /([\w\.]+@[\w]+\.[\w\.]+)/mg,
	handler: function(w)
	{
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var text = lookaheadMatch[1];
			createTiddlyText(createExternalLink(w.output,'mailto:'+text),text);
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	}
},

{
	name: 'socialtextHtmlEntitiesEncoding',
	match: '&#?[a-zA-Z0-9]{2,8};',
	handler: function(w)
	{
		createTiddlyElement(w.output,'span').innerHTML = w.matchText;
	}
}
];

config.parsers.socialtextFormatter = new Formatter(config.socialtext.formatters);
config.parsers.socialtextFormatter.format = 'socialtext';
config.parsers.socialtextFormatter.formatTag = 'SocialtextFormat';

} // end of 'install only once'
//}}}
/***
|''Name:''|SocialtextAdaptorPlugin|
|''Description:''|Adaptor for moving and converting data to and from Socialtext Wikis|
|''Author:''|Martin Budden (mjbudden (at) gmail (dot) com) and JeremyRuston (jeremy (at) osmosoft (dot) com)|
|''Source:''|http://www.martinswiki.com/#SocialtextAdaptorPlugin|
|''CodeRepository:''|http://svn.tiddlywiki.org/Trunk/contributors/MartinBudden/adaptors/SocialtextAdaptorPlugin.js|
|''Version:''|0.5.1|
|''Date:''|Feb 25, 2007|
|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev|
|''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|''~CoreVersion:''|2.2.0|

Socialtext REST documentation is at:
http://www.eu.socialtext.net/st-rest-docs/index.cgi?socialtext_rest_documentation

***/

//{{{
if(!version.extensions.SocialtextAdaptorPlugin) {
version.extensions.SocialtextAdaptorPlugin = {installed:true};

function SocialtextAdaptor()
{
	this.host = null;
	this.workspace = null;
	return this;
}

SocialtextAdaptor.mimeType = 'text/x.socialtext-wiki';
SocialtextAdaptor.serverType = 'socialtext';
SocialtextAdaptor.serverParsingErrorMessage = "Error parsing result from server";
SocialtextAdaptor.errorInFunctionMessage = "Error in function SocialtextAdaptor.%0";

SocialtextAdaptor.prototype.setContext = function(context,userParams,callback)
{
	if(!context) context = {};
	context.userParams = userParams;
	if(callback) context.callback = callback;
	context.adaptor = this;
	if(!context.host)
		context.host = this.host;
	if(!context.workspace && this.workspace)
		context.workspace = this.workspace;
	return context;
};

SocialtextAdaptor.doHttpGET = function(uri,callback,params,headers,data,contentType,username,password)
{
	return doHttp('GET',uri,data,contentType,username,password,callback,params,headers);
};

SocialtextAdaptor.doHttpPOST = function(uri,callback,params,headers,data,contentType,username,password)
{
	return doHttp('POST',uri,data,contentType,username,password,callback,params,headers);
};

SocialtextAdaptor.fullHostName = function(host)
{
	if(!host)
		return '';
	if(!host.match(/:\/\//))
		host = 'http://' + host;
	if(host.substr(host.length-1) != '/')
		host = host + '/';
	return host;
};

SocialtextAdaptor.minHostName = function(host)
{
	return host ? host.replace(/^http:\/\//,'').replace(/\/$/,'') : '';
};

// Convert a page title to the normalized form used in uris
SocialtextAdaptor.normalizedTitle = function(title)
{
	var n = title.toLowerCase();
	n = n.replace(/\s/g,'_').replace(/\//g,'_').replace(/\./g,'_').replace(/:/g,'').replace(/\?/g,'');
	if(n.charAt(0)=='_')
		n = n.substr(1);
	return String(n);
};

// Convert a Socialtext date in YYYY-MM-DD hh:mm format into a JavaScript Date object
SocialtextAdaptor.dateFromEditTime = function(editTime)
{
	var dt = editTime;
	return new Date(Date.UTC(dt.substr(0,4),dt.substr(5,2)-1,dt.substr(8,2),dt.substr(11,2),dt.substr(14,2)));
};

SocialtextAdaptor.prototype.openHost = function(host,context,userParams,callback)
{
	this.host = SocialtextAdaptor.fullHostName(host);
	context = this.setContext(context,userParams,callback);
	if(context.callback) {
		context.status = true;
		window.setTimeout(function() {callback(context,userParams);},0);
	}
	return true;
};

SocialtextAdaptor.prototype.openWorkspace = function(workspace,context,userParams,callback)
{
	this.workspace = workspace;
	context = this.setContext(context,userParams,callback);
	if(context.callback) {
		context.status = true;
		window.setTimeout(function() {callback(context,userParams);},0);
	}
	return true;
};


SocialtextAdaptor.prototype.getWorkspaceList = function(context,userParams,callback)
{
	context = this.setContext(context,userParams,callback);
	var uriTemplate = '%0data/workspaces';
	var uri = uriTemplate.format([context.host]);
	var req = SocialtextAdaptor.doHttpGET(uri,SocialtextAdaptor.getWorkspaceListCallback,context,{'accept':'application/json'});
	return typeof req == 'string' ? req : true;
};

SocialtextAdaptor.getWorkspaceListCallback = function(status,context,responseText,uri,xhr)
{
	context.status = false;
	context.statusText = SocialtextAdaptor.errorInFunctionMessage.format(['getWorkspaceListCallback']);
	if(status) {
		try {
			eval('var info=' + responseText);
		} catch (ex) {
			context.statusText = exceptionText(ex,SocialtextAdaptor.serverParsingErrorMessage);
			if(context.callback)
				context.callback(context,context.userParams);
			return;
		}
		var list = [];
		for(var i=0; i<info.length; i++) {
			var item = {
				title:info[i].title,
				name:info[i].name,
				modified:SocialtextAdaptor.dateFromEditTime(info[i].modified_time)
				};
			list.push(item);
		}
		context.workspaces = list;
		context.status = true;
	} else {
		context.statusText = xhr.statusText;
	}
	if(context.callback)
		context.callback(context,context.userParams);
};

SocialtextAdaptor.prototype.getTiddlerList = function(context,userParams,callback)
{
	context = this.setContext(context,userParams,callback);
	var uriTemplate = '%0data/workspaces/%1/pages?order=newest';//!! ? or ;
	var uri = uriTemplate.format([context.host,context.workspace]);
	var req = SocialtextAdaptor.doHttpGET(uri,SocialtextAdaptor.getTiddlerListCallback,context,{'accept':'application/json'});
	return typeof req == 'string' ? req : true;
};


SocialtextAdaptor.getTiddlerListCallback = function(status,context,responseText,uri,xhr)
{
	context.status = false;
	context.statusText = SocialtextAdaptor.errorInFunctionMessage.format(['getTiddlerListCallback']);
	if(status) {
		try {
			eval('var info=' + responseText);
		} catch (ex) {
			context.statusText = exceptionText(ex,SocialtextAdaptor.serverParsingErrorMessage);
			if(context.callback)
				context.callback(context,context.userParams);
			return;
		}
		var list = [];
		for(var i=0; i<info.length; i++) {
			var tiddler = new Tiddler(info[i].name);
			tiddler.modified = SocialtextAdaptor.dateFromEditTime(info[i].last_edit_time);
			tiddler.modifier = info[i].last_editor;
			tiddler.tags = info[i].tags;
			tiddler.fields['server.page.id'] = info[i].page_id;
			tiddler.fields['server.page.name'] = info[i].name;
			tiddler.fields['server.page.revision'] = String(info[i].revision_id);
			list.push(tiddler);
		}
		context.tiddlers = list;
		context.status = true;
	} else {
		context.statusText = xhr.statusText;
	}
	if(context.callback)
		context.callback(context,context.userParams);
};

SocialtextAdaptor.prototype.generateTiddlerInfo = function(tiddler)
{
	var info = {};
	var host = this && this.host ? this.host : SocialtextAdaptor.fullHostName(tiddler.fields['server.host']);
	var workspace = this && this.workspace ? this.workspace : tiddler.fields['server.workspace'];
	uriTemplate = '%0%1/index.cgi?%2';
	info.uri = uriTemplate.format([host,workspace,SocialtextAdaptor.normalizedTitle(tiddler.title)]);
	return info;
};

SocialtextAdaptor.prototype.getTiddler = function(title,context,userParams,callback)
{
	return this.getTiddlerRevision(title,null,context,userParams,callback);
};

SocialtextAdaptor.prototype.getTiddlerRevision = function(title,revision,context,userParams,callback)
{
	context = this.setContext(context,userParams,callback);

	// request the page in json format to get the page attributes
	if(revision) {
		var uriTemplate = '%0data/workspaces/%1/pages/%2/revisions/%3';
		context.revision = revision;
	} else {
		uriTemplate = '%0data/workspaces/%1/pages/%2';
		context.revision = null;
	}
	uri = uriTemplate.format([context.host,context.workspace,SocialtextAdaptor.normalizedTitle(title),revision]);

	context.tiddler = new Tiddler(title);
	context.tiddler.fields.wikiformat = 'socialtext';
	context.tiddler.fields['server.host'] = SocialtextAdaptor.minHostName(context.host);
	context.tiddler.fields['server.workspace'] = context.workspace;
	var req = SocialtextAdaptor.doHttpGET(uri,SocialtextAdaptor.getTiddlerCallback,context,{'accept':'application/json'});
	return typeof req == 'string' ? req : true;
};


SocialtextAdaptor.getTiddlerCallback = function(status,context,responseText,uri,xhr)
{
	context.status = false;
	context.statusText = SocialtextAdaptor.errorInFunctionMessage.format(['getTiddlerCallback']);
	if(status) {
		try {
			eval('var info=' + responseText);
			context.tiddler.tags = info.tags;
			context.tiddler.fields['server.page.id'] = info.page_id;
			context.tiddler.fields['server.page.name'] = info.name;
			context.tiddler.fields['server.page.revision'] = String(info.revision_id);
			context.tiddler.modifier = info.last_editor;
			context.tiddler.modified = SocialtextAdaptor.dateFromEditTime(info.last_edit_time);
		} catch (ex) {
			context.statusText = exceptionText(ex,SocialtextAdaptor.serverParsingErrorMessage);
			if(context.callback)
				context.callback(context,context.userParams);
			return;
		}
		context.status = true;
	} else {
		context.statusText = xhr.statusText;
		if(context.callback)
			context.callback(context,context.userParams);
		return;
	}
	var uriTemplate = context.revision ? '%0data/workspaces/%1/pages/%2/revisions/%3' : '%0data/workspaces/%1/pages/%2';
	var host = SocialtextAdaptor.fullHostName(context.tiddler.fields['server.host']);
	var workspace = context.workspace ? context.workspace : context.tiddler.fields['server.workspace'];
	uri = uriTemplate.format([host,workspace,SocialtextAdaptor.normalizedTitle(context.tiddler.title),context.revision]);
	var req = SocialtextAdaptor.doHttpGET(uri,SocialtextAdaptor.getTiddlerCallback2,context,{'accept':SocialtextAdaptor.mimeType});
};

SocialtextAdaptor.getTiddlerCallback2 = function(status,context,responseText,uri,xhr)
{
	context.tiddler.text = responseText;
	if(status) {
		context.status = true;
	} else {
		context.status = false;
		context.statusText = xhr.statusText;
	}
	if(context.callback)
		context.callback(context,context.userParams);
};

SocialtextAdaptor.prototype.getTiddlerRevisionList = function(title,limit,context,userParams,callback)
{
	context = this.setContext(context,userParams,callback);

	var uriTemplate = '%0data/workspaces/%1/pages/%2/revisions?accept=application/json';
	if(!limit)
		limit = 5;
	var uri = uriTemplate.format([context.host,context.workspace,SocialtextAdaptor.normalizedTitle(title),limit]);

	var req = SocialtextAdaptor.doHttpGET(uri,SocialtextAdaptor.getTiddlerRevisionListCallback,context);
	return typeof req == 'string' ? req : true;
};

SocialtextAdaptor.getTiddlerRevisionListCallback = function(status,context,responseText,uri,xhr)
{
	context.status = false;
	if(status) {
		var content = null;
		try {
			eval('var info=' + responseText);
		} catch (ex) {
			context.statusText = exceptionText(ex,SocialtextAdaptor.serverParsingErrorMessage);
			if(context.callback)
				context.callback(context,context.userParams);
			return;
		}
		list = [];
		for(var i=0; i<info.length; i++) {
			var tiddler = new Tiddler(info[i].name);
			tiddler.modified = SocialtextAdaptor.dateFromEditTime(info[i].last_edit_time);
			tiddler.modifier = info[i].last_editor;
			tiddler.tags = info[i].tags;
			tiddler.fields['server.page.id'] = info[i].page_id;
			tiddler.fields['server.page.name'] = info[i].name;
			tiddler.fields['server.page.revision'] = info[i].revision_id;
			list.push(tiddler);
		}
		var sortField = 'server.page.revision';
		list.sort(function(a,b) {return a.fields[sortField] < b.fields[sortField] ? +1 : (a.fields[sortField] == b.fields[sortField] ? 0 : -1);});
		context.revisions = list;
		context.status = true;
	} else {
		context.statusText = xhr.statusText;
	}
	if(context.callback)
		context.callback(context,context.userParams);
};

SocialtextAdaptor.prototype.putTiddler = function(tiddler,context,userParams,callback)
{
	context = this.setContext(context,userParams,callback);
	context.tiddler = tiddler;
	context.title = tiddler.title;
	var uriTemplate = '%0data/workspaces/%1/pages/%2';
	var host = context.host ? context.host : SocialtextAdaptor.fullHostName(tiddler.fields['server.host']);
	var workspace = context.workspace ? context.workspace : tiddler.fields['server.workspace'];
	var uri = uriTemplate.format([host,workspace,tiddler.title,tiddler.text]);
	//var req = doHttp('POST',uri,tiddler.text,SocialtextAdaptor.mimeType,null,null,SocialtextAdaptor.putTiddlerCallback,context,{"X-Http-Method": "PUT"});
	var req = SocialtextAdaptor.doHttpPOST(uri,SocialtextAdaptor.putTiddlerCallback,context,{"X-Http-Method": "PUT"},tiddler.text,SocialtextAdaptor.mimeType);
	return typeof req == 'string' ? req : true;
};

SocialtextAdaptor.putTiddlerCallback = function(status,context,responseText,uri,xhr)
{
	if(status) {
		context.status = true;
	} else {
		context.status = false;
		context.statusText = xhr.statusText;
	}
	if(context.callback)
		context.callback(context,context.userParams);
};

SocialtextAdaptor.prototype.close = function()
{
	return true;
};

config.adaptors[SocialtextAdaptor.serverType] = SocialtextAdaptor;
} //# end of 'install only once'
//}}}
/***
SocialtextStyleOverrides
***/

/*{{{*/
.headerShadow {padding: 2em 0em .5em 1em;}
.headerForeground {padding: 2em 0em .5em 1em;}

#st-page-wiki-title {
	font-size: 80%;
}
.subtitle {
	font-style: italic;
	font-size 80%;
}

/* from #st-tags */
.tagged {
	border-color: #bbeebb;
	background-color: #f4fff4;
}

.tagged .listTitle {
	color: #595;
	font-weight: bold;
}

.tagged .button {
	color: #000;
}

.selected .tagged {
	background-color: ColorPalette::TertiaryLight;
	border: 1px solid ColorPalette::TertiaryMid;
}

/* from #st-incoming-links */
.tagging {
	border-color: #ebb;
	background-color: #fff4f4;
}

.tagging .listTitle {
	color: #b78;
	font-weight: bold;
}

.tagging .button {
	color: #999;
}

.selected .tagging {
	background-color: ColorPalette::TertiaryLight;
	border: 1px solid ColorPalette::TertiaryMid;
}

.tiddler {/* Tiddler body */
	border:1px solid #ccc;
	margin:0.5em;
	background:#fff;
	padding:0.5em;
}

.viewer blockquote {border-left: 0px solid}

.tiddlyLinkNonExisting {
	font-style: italic;
	border-bottom: 1px dashed;
}

.editor input, .editor textarea {
	background: #ffd;
	border-style: solid;
	border-color: #888 #ccc #ccc #888;
	border-width: 2px;
}

.tabContents {white-space: nowrap;}

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

#sidebar {
	position: absolute;
	right: 3px;
	width: 21em;
	font-size: .9em;
}

#sidebarOptions .button {
	border-color: #eee;
}

#sidebarTabs .tabContents {
	width: 20em;
	overflow: hidden;
}

.viewer tt {
	font-size: 1.2em;
	line-height: 1.4em;
}

ul {list-style-type: square;}
ul ul {list-style-type: circle;}

ol {list-style-type: decimal;}
ol ol {list-style-type: decimal;}
ol ol ol {list-style-type: decimal;}
ol ol ol ol {list-style-type: decimal;}
ol ol ol ol ol {list-style-type: decimal;}
ol ol ol ol ol ol {list-style-type: decimal;}

/*}}}*/
/***
SocialtextScreenStyle
http://www.eu.socialtext.net/static/2.0.0.1/css/st/screen.css
***/

/*{{{*/
body {
	font-family: Arial, sans-serif;
	color: #000;
	background: #eee;
	margin: 0;
}

/* Wiki Navigation */

.st-wiki-nav {
	clear: both;
	margin-left: 10px;
	margin-right: 10px;
}
.st-wiki-nav-content {
	background: url('../../images/st/wiki-nav/solid.gif') repeat-x left bottom;
	margin-left: 24px;
	margin-right: 24px;
	padding-top: 3px;
	min-height: 24px;
}
* html .st-wiki-nav-content {
	padding-bottom: 3px;
	height: 24px;
}

.st-wiki-nav-right {
	background: url('../../images/st/wiki-nav/right-round.gif') no-repeat bottom right;
}

.st-wiki-nav-left {
	background: url('../../images/st/wiki-nav/left-round.gif') no-repeat bottom left;
}

#st-home {
	float: left;
	margin-right: 60px;
	padding-top: 2px;
}

#st-home-link {
	color: white;
	text-decoration: none;
	font-weight: bold;
	font-family: Helvetica, sans-serif;
	font-size: 90%;
}

#st-editing-prefix-container {
	border-collapse: collapse;
	width: 100%;
	padding: 0px;
	margin: 0px;
	margin-bottom: -20px;
}

#st-editing-prefix-container tr td {
	margin: 0px;
	padding: 0px;
}

#st-editing-title {
	color: black;
	background-color: white;
	text-decoration: none;
	font-weight: bold;
	font-family: Helvetica, sans-serif;
	font-size: 90%;
	margin-bottom: 0.4em;
}

#st-wiki-title-invite {
	font-size: 50%;
	font-family: Helvetica, sans-serif;
}

#st-wiki-title-central-page-link {
	font-size: 50%;
	font-family: Helvetica, sans-serif;
}

#st-wiki-title-invite a {
	color: #00f;
}

#st-wiki-logo {
	text-align: center;
	clear: both;
}

#st-wiki-logo-image {
}

.st-wiki-nav-actions {
	float: right;
	color: black;
	font-size: 75%;
	padding-top: 3px;
}

.st-wiki-nav-actions a {
	padding: 2px;
	color: white;
	text-decoration: none;
	font-family: Helvetica, sans-serif;
}

/* Wiki Subnav */

#st-wiki-subnav {
	margin-top: 2px;
	font-size: 70%;
	font-weight: bold;
	font-family: Helvetica, sans-serif;
	color: #888;
}

#st-wiki-subnav a {
	padding: 2px;
	color: #008;
	text-decoration: none;
}

#st-wiki-subnav-right {
	float: right;
	margin-right: 6em;
}

#st-wiki-subnav-left {
	float: left;
	margin-left: 6em;
}
* html #st-wiki-subnav-left {
	margin-left: 3em;
}

/* Wiki Navigation Search Bar */

#st-search-form {
	margin: 0;
	padding: 0;
	padding-top: 1px;
}

#st-search-form .button-table {
	float: left;
	font-size: 79%;
	font-weight: bold;
	margin-left: 5px;
	margin-top: 1px;
}

#st-search-form #st-search-term {
	float: left;
	font-size: 60%;
}

/* Content Outline */

#st-content-border, #st-edit-border {
	position: relative;
	clear: both;
	margin-left: 3px;
	margin-right: 2px;
	margin-bottom: 0px;
	margin-top: 0px;
	border-bottom: 1px solid #eee;
}

#st-content-border-left, #st-edit-border-left {
	background: url('../../images/st/page-shadow/left.gif') left top repeat-y;
	position: relative;
}

#st-content-border-right, #st-edit-border-right {
	background: url('../../images/st/page-shadow/right.gif') right top repeat-y;
	position: relative;
}

#st-content-border-top, #st-edit-border-top {
	position: relative;
	background: url('../../images/st/page-shadow/top.gif') left top repeat-x;
}

#st-content-border-bottom, #st-edit-border-bottom {
	background: url('../../images/st/page-shadow/bottom.gif') left bottom repeat-x;
	position: relative;
}

#st-content-border-left-top, #st-edit-border-left-top {
	background: url('../../images/st/page-shadow/left-top.gif') left top no-repeat;
	position: relative;
}
#st-content-border-right-top, #st-edit-border-right-top {
	background: url('../../images/st/page-shadow/right-top.gif') right top no-repeat;
	position: relative;
}

#st-content-border-left-bottom, #st-edit-border-left-bottom {
	background: url('../../images/st/page-shadow/left-bottom.gif') left bottom no-repeat;
	position: relative;
}

#st-content-border-right-bottom, #st-edit-border-right-bottom {
	background: url('../../images/st/page-shadow/right-bottom.gif') right bottom no-repeat;
	padding-top: 5px;
	padding-bottom: 9px;
	position: relative;
}

* html #st-content-border-right-bottom, * html #st-edit-border-right-bottom {
	padding-top: 4px;
	padding-left: 7px;
	padding-right: 8px;
	position: relative;
}

.st-content-width-controller {
	width: 100%;
	position: relative;
	border-collapse: collapse;
}
.st-content-width-controller td {
	vertical-align: top;
}
.st-content {
	position: relative;
	background-color: white;
	margin-top: 0px;
	margin-left: 7px;
	margin-right: 8px;
	margin-bottom: -1px;
	border-left: 1px dotted #80a9f3;
	border-right: 1px dotted #80a9f3;
	border: 1px solid #80a9f3;
	padding: 6px 12px 12px 12px;
}
* html .st-content {
	margin-top: 0px;
	margin-left: 0px;
	margin-right: 0px;
}

/* This textarea is only for Safari. However, if we use display:none; here Safari ignores the .value operation in JS */
#st-raw-wikitext-textarea {
	width:1px;
	height:1px;
	margin:0;
	padding:0;
}

/* Action Buttons */
.button-table, .button-table tr td {
	border-collapse: collapse;
	margin: 0;
	padding: 0;
}
.button-rounded {
	background: url('../../images/st/grey-button/left-top-rounded.png') top left no-repeat;
	margin: 0;
}
.button-rounded-right-top {
	background: url('../../images/st/grey-button/right-top-rounded.png') top right no-repeat;
	margin: 0;
}
.button-rounded-left-bottom {
	background: url('../../images/st/grey-button/left-bottom-rounded.png') bottom left no-repeat;
	margin: 0;
}
.button-rounded-right-bottom {
	background: url('../../images/st/grey-button/right-bottom-rounded.png') bottom right no-repeat;
	margin: 0;
}
.button-straight {
	background: url('../../images/st/grey-button/left-top-straight.png') top left no-repeat;
	margin: 0;
}
.button-straight-right-top {
	background: url('../../images/st/grey-button/right-top-straight.png') top right no-repeat;
	margin: 0;
}
.button-straight-left-bottom {
	background: url('../../images/st/grey-button/left-bottom-straight.png') bottom left no-repeat;
	margin: 0;
}
.button-straight-right-bottom {
	background: url('../../images/st/grey-button/right-bottom-straight.png') bottom right no-repeat;
	margin: 0;
}
.button-content {
	font-size: 90%;
}
.button-content a {
	display: block;
	padding: 2px;
	padding-left: 10px;
	padding-right: 10px;
	font-family: Helvetica, Verdana, sans-serif;
	font-weight: bold;
	text-decoration: none;
	color: black;
}

.button-content input.submit {
	border: 0px;
	padding: 2px;
	padding-left: 10px;
	padding-right: 10px;
	font-family: Helvetica, Verdana, sans-serif;
	font-weight: bold;
	text-decoration: none;
	color: black;
	background-color: transparent;
}

/* Personal Homepage */

#st-homepage {
	background: white url('../../images/st/homepage/blue-fade.gif') top left no-repeat;
}

#st-homepage-layout {
	margin-top: 15px;
	clear: both;
	width: 100%;
	border-collapse: collapse;
}

#st-homepage-layout tr td.st-homepage-layout-cell {
	padding: 5px;
	vertical-align: top;
}

#st-homepage-layout-dashboard {
	width: 50%
}

#st-homepage-layout-notes {
	width: 50%;
}

#st-homepage-notes, #st-homepage-dashboard {
	text-align: left;
	width: 95%;
}

#st-user-greeting, #st-wiki-title {
	font-family: Helvetica, Verdana, sans-serif;
	font-size: 150%;
}
#st-wiki-title {
	margin-left: 5px;
}

#st-user-greeting {
	position: relative;
	text-align: right;
	float: right;
}

#st-group-notes-content, #st-personal-notes-content {
}

.st-homepage-section {
	margin-bottom: 15px;
}

#st-homepage-notes .st-homepage-section {
	background-color: white;
	border: 1px solid #aaa;
	padding: 15px;
}

.st-homepage-section-title {
	font-size: 110%;
	font-family: Helvetica, Verdana, sans-serif;
}

#st-homepage-notes .st-homepage-section-title {
	color: #aaa;
	text-decoration: underline;
}

.st-homepage-notes-edit-link {
	background: url('../../images/st/homepage/edit-icon.gif') no-repeat left top;
	display: block;
	text-indent: -2000px;
	height: 13px;
	width: 36px;
	text-decoration: none;
	padding:0;
}
* html .st-homepage-notes-edit-link {
	border:1px solid white;
}

.st-homepage-notes-edit {
	font-family: Verdana, sans-serif;
	font-size: 65%;
	float: right;
}

.st-homepage-notes-content {
	font-size: 85%;
	margin-top: 10px;
	padding-top: 0px;
	padding-bottom: 0px;
	font-family: Verdana, Helvetica, sans-serif;
}

#st-dyk {
	border-color: #cca !important;
	background-color: #ffe !important;
}

#st-dyk-title {
	color: #e4a020 !important;
	text-decoration: none !important;
}


/* Homepage Simple List */

#st-whats-new-title-link {
	background: url('../../images/st/homepage/icon-28-pages.gif') no-repeat left top;
}
#st-watchlist-title-link {
	background: url('../../images/st/homepage/icon-28-star.gif') no-repeat left top;
}
#st-wikis-title-link {
	background: url('../../images/st/homepage/icon-28-group.gif') no-repeat left top;
}
.st-homepage-simplelist-title-link {
	display: block;
	padding-left: 32px;
	min-height: 32px;
}
* html .st-homepage-simplelist-title-link {
	height: 32px;
}

.st-homepage-simplelist-title {
}

.st-homepage-simplelist-table {
	margin-left: 25px;
	border: 1px dashed #ddd;
	border-collapse: collapse;
	font-family: Verdana, Helvetica, sans-serif;
	font-size: 80%;
	width: 95%;
}

.st-homepage-simplelist-table td {
	padding: 2px;
}

.st-homepage-simplelist-table tr.st-homepage-simplelist-row-odd {
	background-color: #f3f7f7;
}

.st-homepage-simplelist-table tr.st-homepage-simplelist-row-even {
	background-color: white;
}

.st-homepage-simplelist-table a {
	color: #4f55dd;
	text-decoration: none;
}

.st-homepage-simplelist-table a:visited {
	color: #551a8b;
}

.st-homepage-simplelist-subleft {
	font-size: 80%;
	margin-left: 1em;
	color: #666;
}

.st-homepage-simplelist-right {
	width: 20%;
}

.st-homepage-simplelist-subright {
	font-size: 80%;
	color: #666;
}

.st-homepage-simplelist {
}

.st-homepage-simplelist-header {
	min-height: 35px;
}

.st-homepage-simplelist-header .button-table {
	float: right;
	margin-right: 15px;
	font-size: 95%;
}

.st-homepage-simplelist-header .button-table .button-content {
	padding: 1px;
}

.st-homepage-whatsnew-author, .st-homepage-whatsnew-date {
	color: #555;
}
.st-homepage-whatsnew-attribution {
	padding-left: 1em;
	font-size: 80%;
	color: #aaa;
}

/* Homepage Wikis List */

#st-wikis-title {
}

/* Data and Templates */

.st-jst-template, .st-json {
	display: none;
}

/* Page Sidebox Common Styles */

#st-page-boxes-toggle {
	position: relative;
	float: right;
	text-align: right;
	font-family: Verdana, Arial, sans-serif;
	font-weight: bold;
	font-size: 80%;
	margin-bottom: 0.7em;
}

#st-page-boxes-toggle-link {
	text-decoration: none;
}

#st-page-boxes-underlay {
	float: right;
	margin-top: -10px;
	margin-right: 10px;
	background: white;
	z-index: 198;
	clear: both;
	margin-left: 15px;
}
* html #st-page-boxes-underlay {
	margin-right: 4px;
}
#st-page-boxes {
	background: inherit;
	position: absolute;
	right: 23px;
	z-index: 199;
	margin-top: 15px;
	margin-left: 20px;
}
#st-page-boxes, #st-page-boxes-underlay {
	width: 225px;
	/* padding-left: 15px; */ /* Gives the white border effect, cwest dislikes it. */
}

.st-page-box {
	border: 1px solid black;
	padding: 5px;
	font-family: Verdana, Helvetica, sans-serif;
	font-size: 80%;
	margin-top: 15px;
}

.st-page-box-title {
	font-family: Helvetica, Verdana, sans-serif;
	font-weight: bold;
	margin-bottom: 10px;
}

.st-page-box-listing {
	margin: 0;
	padding: 0;
}

.st-page-box-listing-entry {
	display: block;
}

.st-page-boxes-nobacklinks {
	font-family: Verdana, Helvetica, sans-serif;
	font-size: 90%;
	color: #888;
}

.st-page-box-first {
	margin-top: 0px;
}

/* Page Display */

#st-page-content {
	clear: left;
	margin-top: 6px;
	margin-bottom: 0;
	padding-bottom: 0;
}

#st-page-content, #st-page-content td {
	font-family: Verdana, Helvetica, sans-serif;
	font-size: 90%;
}

#st-page-wiki-title {
	font-family: Helvetica, Verdana, sans-serif;
	font-size: 65%;
	font-weight: bold;
	color: #aaa;
	margin-bottom: 0.2em;
	margin-top: 0.1em;
	padding-top: 0;
}

#wiki {
	margin: 0;
	padding: 0;
}

#st-page-title {
}

#st-page-titletext, .st-page-title {
	font-family: Helvetica, Verdana, sans-serif;
	font-size: 150%;
	font-weight: bold;
	color: #888;
	border-bottom: 1px solid #888;
}

#st-newpage-pagename-edit {
	font-family: inherit;
	font-size: inherit;
	font-weight: inherit;
	color: #000;
	border: 1px solid black;
	padding-left: 0.3em;
	background-color: #ffd;
}

#st-page-details {
	font-style: italic;
	font-size: 75%;
	font-family: Georgia, serif;
	margin: 6px 10px 0 10px;
}

#st-page-details-feed-icon {
	vertical-align: middle;
	border: none;
}

#st-page-stats {
	float: right;
	vertical-align: middle;
}

#st-attribution {
	float: left;
	margin-bottom: 10px;
}

#st-page-editing-wysiwyg {
	background: #ffd;
	border-style: solid;
	border-color: #888 #ccc #ccc #888;
	border-width: 2px;
	width: 100%;
}

#st-page-editing-toolbar {
	margin-left: -6px;
	overflow: hidden;
	float: left;
	height: 25px;
}

#wikiwyg_wikitext_textarea {
	margin-top: 4px;
	background: #ffd;
	border-style: solid;
	border-color: #888 #ccc #ccc #888;
	border-width: 2px;
	width: 100%;
	font-family: monospace;
}

#st-page-maincontent {
}

#st-page-editing, #wikiwyg_wikitext_textarea {
}

#st-page-editing-pagebody-decoy, #st-page-editing-wysiwyg {
	display: none;
}

#st-editing-tools-edit {
	display: none;
}

#st-mode-wysiwyg-button
{
	font-size: 70%;
	margin-left: 4em;
}

#st-mode-wikitext-button
{
	font-size: 70%;
}

#st-edit-tips
{
	font-size: 70%;
}

.wikiwyg_button {
	background: #FFFFFF;
	border: 1px solid #FFFFFF;
	cursor: pointer;
	width: 20px;
	height: 20px;
	vertical-align: bottom;
}

.wikiwyg_button:hover {
	border: 1px outset;
}

.wikiwyg_button:active {
	border: 1px inset;
}

#wikiwyg_toolbar {
	display: none;
}

/* Sidebox Pagetools: Revisions, Watchlist */
#st-side-box-pagetools {
	border-collapse: collapse;
}

#st-rewind-norevisions {
	font-family: Helvetica, Arial, sans-serif;
	font-size: 11px;
	color: #777;
	text-decoration: none;
}

#st-side-box-pagetools a {
	font-family: Helvetica, Arial, sans-serif;
	font-size: 11px;
	color: #555;
	text-decoration: none;
}

/* Page View Tags/Incoming Links Sidebox */

#st-tags {
	background: #f4fff4;
	border-color: #bbeebb;
	color: #999;
}

#st-tags-title {
	color: #595;
}

#st-tags-addlink, #st-tags-addbutton {
	font-weight: bold;
}

#st-tags-listing {
	margin-bottom: 5px;
}

#st-tags-addinput, #st-tags-message, #st-tags-suggestion {
	display: none;
}

#st-tags-deletemessage {
	font-size: 90%;
	color: #555;
	display: none;
	margin-top: 0.5em;
	margin-bottom: 0.5em;
}

#st-tags-suggestion {
	margin-top: 2px;
}

.st-tags-level1 {
	font-size: 90%;
}

.st-tags-level2 {
	font-size: 100%;
}

.st-tags-level3 {
	font-size: 110%;
}

.st-tags-level4 {
	font-size: 120%;
}

.st-tags-level5 {
	font-size: 130%;
}

.st-tags-tagline .st-tags-tagdelete {
	text-decoration: none;
	color: #ccc;
}

.st-tags-tagline a {
	text-decoration: none;
	color: #444;
}

#st-tags-field {
	width: 95%;
}

#st-incoming-links {
	border-color: #ebb;
	background-color: #fff4f4;
}

#st-incoming-links-title {
	color: #b78;
}

#st-attachments {
	border-color: #bbe;
	background-color: #f4f4ff;
}

#st-attachments-uploadbutton, #st-attachments-managebutton {

}
#st-attachments-buttons-uploadbutton {
	margin: 0px;
	padding: 0px;
	padding-left: 2px;
}
#st-attachments-buttons-managebutton {
	margin: 0px;
	padding: 0px;
	padding-right: 2px;
}

#st-attachments-buttons td {
	padding-right: 3px;
	font-size: 99%;
}

#st-attachments-buttons {
	border-collapse: collapse;
	margin: 0px;
	padding: 0px;
	margin-top: 5px;
}

#st-attachments-title {
	color: #77b;
}

.st-attachments-line {
	width:100%;
	overflow:hidden;
}

/* Actions Bar */

#st-actions-bar-spacer {
	clear:both;
	height:0.5em;
	overflow:hidden;
}

#st-actions-bar-spacer-clear {
	clear:both;
	height:1px;
	overflow:hidden;
}


#st-actions-bar, #st-editing-tools-bar {
	margin-left: 30px !important;
	margin-right: 30px !important;
}

/* Footer */
#st-footer {
	margin-top: -8px;
	margin-bottom: 5px;
	clear: both;
}

/* Socialtext Attribution */

#st-socialtext-attribution {
	clear: both;
	text-align: center;
	font-size: 80%;
	font-family: Helvetica, sans-serif;
}

#st-socialtext-attribution-link {
	text-decoration: none;
}

#st-socialtext-attribution-image {
	border: 0;
}


/* Page Actions */

#st-edit-button-border-left-middle, #st-login-to-edit-button-border-left-middle {
	background: url('../../images/st/button-blue/left-middle.gif') left top repeat-y;
}
#st-edit-button-border-right-middle, #st-login-to-edit-button-border-right-middle {
	background: url('../../images/st/button-blue/right-middle.gif') right top repeat-y;
}

#st-edit-button-border-left-top, #st-login-to-edit-button-border-left-top {
	background: url('../../images/st/button-blue/left-top.gif') left top no-repeat;
}
#st-edit-button-border-right-top, #st-login-to-edit-button-border-right-top {
	background: url('../../images/st/button-blue/right-top.gif') right top no-repeat;
}

#st-edit-button-border-left-bottom, #st-login-to-edit-button-border-left-bottom {
	background: url('../../images/st/button-blue/left-bottom.gif') left bottom no-repeat;
}

#st-edit-button-border-right-bottom, #st-login-to-edit-button-border-right-bottom {
	background: url('../../images/st/button-blue/right-bottom.gif') right bottom no-repeat;
}

#st-edit-button-link, #st-login-to-edit-button-link {
}

#st-comment-button-border-left-middle {
	background: url('../../images/st/button-purple/left-middle.gif') left top repeat-y;
}

#st-comment-button-border-right-middle {
	background: url('../../images/st/button-purple/right-middle.gif') right top repeat-y;
}

#st-comment-button-border-left-top {
	background: url('../../images/st/button-purple/left-top.gif') left top no-repeat;
}

#st-comment-button-border-right-top {
	background: url('../../images/st/button-purple/right-top.gif') right top no-repeat;
}

#st-comment-button-border-left-bottom {
	background: url('../../images/st/button-purple/left-bottom.gif') left bottom no-repeat;
}

#st-comment-button-border-right-bottom {
	background: url('../../images/st/button-purple/right-bottom.gif') right bottom no-repeat;
}

#st-comment-button-link {
}

#st-save-button-border-left-middle {
	background: url('../../images/st/button-green/left-middle.gif') left top repeat-y;
}
#st-save-button-border-right-middle {
	background: url('../../images/st/button-green/right-middle.gif') right top repeat-y;
}

#st-save-button-border-left-top {
	background: url('../../images/st/button-green/left-top.gif') left top no-repeat;
}
#st-save-button-border-right-top {
	background: url('../../images/st/button-green/right-top.gif') right top no-repeat;
}

#st-save-button-border-left-bottom {
	background: url('../../images/st/button-green/left-bottom.gif') left bottom no-repeat;
}

#st-save-button-border-right-bottom {
	background: url('../../images/st/button-green/right-bottom.gif') right bottom no-repeat;
}

#st-save-button-link {
}

#st-preview-button-border-left-middle {
	background: url('../../images/st/button-gold/left-middle.gif') left top repeat-y;
}
#st-preview-button-border-right-middle {
	background: url('../../images/st/button-gold/right-middle.gif') right top repeat-y;
}

#st-preview-button-border-left-top {
	background: url('../../images/st/button-gold/left-top.gif') left top no-repeat;
}
#st-preview-button-border-right-top {
	background: url('../../images/st/button-gold/right-top.gif') right top no-repeat;
}

#st-preview-button-border-left-bottom {
	background: url('../../images/st/button-gold/left-bottom.gif') left bottom no-repeat;
}

#st-preview-button-border-right-bottom {
	background: url('../../images/st/button-gold/right-bottom.gif') right bottom no-repeat;
}

#st-preview-button-link {
}

#st-cancel-button-border-left-middle {
	background: url('../../images/st/button-crimson/left-middle.gif') left top repeat-y;
}
#st-cancel-button-border-right-middle {
	background: url('../../images/st/button-crimson/right-middle.gif') right top repeat-y;
}

#st-cancel-button-border-left-top {
	background: url('../../images/st/button-crimson/left-top.gif') left top no-repeat;
}
#st-cancel-button-border-right-top {
	background: url('../../images/st/button-crimson/right-top.gif') right top no-repeat;
}

#st-cancel-button-border-left-bottom {
	background: url('../../images/st/button-crimson/left-bottom.gif') left bottom no-repeat;
}

#st-cancel-button-border-right-bottom {
	background: url('../../images/st/button-crimson/right-bottom.gif') right bottom no-repeat;
}

#st-cancel-button-link {
}

#st-edit-more-button-border-left-middle {
	background: url('../../images/st/button-blue/left-middle.gif') left top repeat-y;
}
#st-edit-more-button-border-right-middle {
	background: url('../../images/st/button-blue/right-middle.gif') right top repeat-y;
}

#st-edit-more-button-border-left-top {
	background: url('../../images/st/button-blue/left-top.gif') left top no-repeat;
}
#st-edit-more-button-border-right-top {
	background: url('../../images/st/button-blue/right-top.gif') right top no-repeat;
}

#st-edit-more-button-border-left-bottom {
	background: url('../../images/st/button-blue/left-bottom.gif') left bottom no-repeat;
}

#st-edit-more-button-border-right-bottom {
	background: url('../../images/st/button-blue/right-bottom.gif') right bottom no-repeat;
}

#st-edit-more-button-link {
}

.st-page-action-button-link {
	min-height: 24px;
	min-width: 100px;
	text-align: center;
	font-family: Helvetica, Verdana, sans-serif;
	font-size: 90%;
	text-decoration: none;
	color: #fff;
	font-weight: bold;
	display: block;
	padding-top: 8px;
	padding-bottom: 0px;
	margin-bottom: -3px;
	width: 100%;
	margin-left: -2px;
}
* html .st-page-action-button-link {
	padding-top: 5px;
	padding-bottom: 0px;
	height: 24px;
}

.st-page-action-button {
	float: left;
	margin: 0;
	padding: 0;
	margin-right: 10px;
	min-height: 20px;
	border-collapse: collapse;
	width: 100px;
}

/* Attach File Interface */

#st-attachments-attachinterface {
	font-family: Helvetica, sans-serif;
	font-size: 90%;
	display: none;
	position: fixed;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
	z-index: 2000;
	background-image: url('../../images/st/popup/bg.png');
}
#st-attachments-manageinterface {
	font-family: Helvetica, sans-serif;
	font-size: 90%;
	display: none;
	position: absolute;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
	z-index: 2000;
	background-image: url('../../images/st/popup/bg.png');
}

* html #st-attachments-attachinterface {
	background-image: none;
}
* html #st-attachments-manageinterface {
	background-image: none;
}
* html .popup-overlay {
	background-image: url('../../images/st/popup/bg.png');
	background-color: #000;
	opacity: .70;
	position: absolute;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
	z-index: 2001;
}

#st-attachments-attach-interface {
	z-index: 2002;
	background-color: #fff;
	color: #000;
	border: 4px solid #ccc;
	padding: 1em;
	width: 520px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 10%;
	position: absolute;
	top: 0px;
}

* html #st-attachments-attach-interface {
}

#st-attachments-attach-formtarget {
	width: 0px;
	height: 0px;
	border: 0;
	padding: 0;
	margin: 0;
}

#st-attachments-attach-message {
	font-size: 90%;
	font-family: Verdana, Arial, Helvetica, Sans-Serif;
}

#st-attachments-attach-title {
	font-weight: bold;
	font-size: 120%;
}

#st-attachments-attach-close {
	float: right;
	margin-top: 6px;
}

#st-attachments-attach-uploadbutton {
	float: right;
	margin-right: 6px;
	margin-top: 6px;
	padding-bottom: 0;
}

#st-attachments-attach-fileprompt {
	margin: 0.2em 0 0.4em 0;
	padding-bottom: 0px;
}

#st-attachments-attach-submit {
	font-size: 90%;
	font-weight: bold;
}

#st-attachments-attach-filename {
	font-size: 90%;
}

#st-attachments-attach-uploadmessage {
	font-weight: bold;
	margin-bottom: 1em;
	display: none;
}

#st-attachments-attach-error {
	font-weight: bold;
	color: #f00;
	margin-bottom: 1em;
	display: none;
}

#st-attachments-attach-list {
	display: none;
	color: #666;
	font-size: 90%;
	margin-top: 1em;
	margin-bottom: 1em;
	border-top: 1px solid #4949BA;
	border-bottom: 1px solid #4949BA;
	background-color: #F5F5F5;
	padding: 3px;
}

.st-attachments-attach-listlabel {
	font-size: 90%;
	color: #4949BA;
}

/* Queue File Dialog */

#st-attachmentsqueue-interface {
	font-family: Helvetica, sans-serif;
	font-size: 90%;
	display: none;
	position: fixed;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
	background-image: url('../../images/st/popup/bg.png'); /* Don't forget IE hack for ship! */
	z-index: 2000;
}

* html #st-attachmentsqueue-interface {
	background-image: none;
}

#st-attachmentsqueue-dialog {
	z-index: 2002;
	background-color: #fff;
	color: #000;
	border: 4px solid #ccc;
	padding: 1em;
	width: 530px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 10%;
	position: absolute;
	top: 0px;
}

* html #st-attachmentsqueue-dialog {
}

#st-attachmentsqueue-fileprompt {
	margin-bottom: 0.4em;
	margin-top: 0;
	padding-bottom: 0;
}

#st-attachmentsqueue-title {
	font-weight: bold;
	font-size: 120%;
}

#st-attachmentsqueue-close {
	float: right;
	margin-top: 6px;
}

#st-attachmentsqueue-uploadbutton {
	float: right;
	margin-right: 6px;
	margin-top: 6px;
	padding-bottom: 0;
}

#st-attachmentsqueue-submit {
	font-size: 90%;
}

#st-attachmentsqueue-filename {
	font-size: 90%;
}

#st-attachmentsqueue-message {
	font-size: 90%;
	font-family: Verdana, Arial, Helvetica, Sans-Serif;
}

#st-attachmentsqueue-uploadmessage {
	font-weight: bold;
	margin-bottom: 1em;
	display: none;
}

#st-attachmentsqueue-error {
	font-weight: bold;
	color: #f00;
	margin-bottom: 1em;
	display: none;
}

#st-attachmentsqueue-list {
	display: none;
	color: #666;
	font-size: 90%;
	margin-top: 1em;
	margin-bottom: 1em;
	border-top: 1px solid #4949BA;
	border-bottom: 1px solid #4949BA;
	background-color: #F5F5F5;
	padding: 3px;
}

.st-attachmentsqueue-listlabel {
	font-size: 90%;
	color: #4949BA;
}

/* Lists */

tr.st-trbg-even, tr.st-trbg-even td{
	background-color: #f3f7f7;
}

tr.w-st-even-row, tr.w-st-even-row td {
	background-color: #f3f7f7;
}

.query-results-header-title, .query-results-header-last-edit-by {
	text-align: left;
}


.query-results-row-revisions {
	text-align: right;
}

.query-results-content {
	font-size: 85%;
	border-collapse: collapse;
	border: 1px dashed #ddd;
	border-left: 1px solid #ddd;
	border-right: 1px solid #ddd;
}

.query-results-row {
	border-collapse: collapse;
	border: 1px dashed #ddd;
	border-left: 1px solid #ddd;
	border-right: 1px solid #ddd;
}

.query-results-row a {
	text-decoration: underline;
	color: #00f;
}

.query-results-row td {
	font-family: Verdana;
	padding: 0.3em;
	border-left: 1px dashed #ddd;
	border-right: 1px dashed #ddd;
	border-top: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
}

.query-results-header-row {
	border-collapse: collapse;
	border: 1px dashed #ddd;
	border-left: 1px solid #ddd;
	border-right: 1px solid #ddd;
}

.query-results-header-row a {
	text-decoration: underline;
	color: #00f;
}

.query-results-header-row th {
	font-family: Helvetica;
	padding: 0.3em;
	border-left: 1px dashed #ddd;
	border-right: 1px dashed #ddd;
	border-top: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
}

div.st-actionbutton {
	float: left;
}

div#deleteme-st-actions-bar {
	clear: both;
	margin: 0.8em 20px 0.2em auto;
	padding: 0;
}

/* Manage File Interface */



#st-attachments-manage-interface {
	z-index: 2002;
	background-color: #fff;
	color: #000;
	border: 4px solid #ccc;
	padding: 1em;
	width: 520px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 10%;
	position: absolute;
	top: 0px;
}

#st-attachments-manage-filetable {
	height: 150px;
	margin: 0;
	padding: 0;
	width: 100%;
	overflow: auto;
	border: 1px solid #ccc;
}

#st-attachments-manage-filelisting tbody td {
	font-size: 90%;
}
#st-attachments-manage-filelisting {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	margin: 0;
	padding: 0;
}

#st-attachments-manage-fileheader {
	background: #ccc;
	font-weight: bold;
	border-bottom: 1px black solid;
}

#st-attachments-manage-close {
	float: right;
	margin-top: 3px;
	margin-right: -2px;
	font-weight: bold;
}

#st-attachments-manage-delete {
	margin-top: 3px;
	float: left;
	font-weight: bold;
}

.st-attachments-manage-filerow {
	border-bottom: 1px solid #ccc;
}

.row-odd {
	background-color: #eee;
}

.row-even {
	background-color: #fff;
}

.row-on {
	background-color: #009 !important;
	color: white !important;
}

.row-on a {
	color: #fff !important;
}

#st-attachments-manage-deletemessage {
	color: red;
}

/* Page tools icons */

#st-pagetools-print {
	background: url('../../images/st/pagetools/print.gif')
	left center no-repeat;
}

#st-pagetools-email {
	background: url('../../images/st/pagetools/email.gif')
	left center no-repeat;
}

#st-pagetools-tools {
	background: url('../../images/st/pagetools/tools.gif')
	left center no-repeat;
}

/*
 #st-pagetools-watch {
	background: url('../../images/st/pagetools/watch-blue.gif')
	left center no-repeat;
}
*/


/* *********** Settings *********** */

#st-settings-pane {
}
* html #settings-pane { font-size: 85%;}

.settings-start-table {
}
* html .settings-start-table { font-size: 90%;}

#st-settings-select {
	padding: 0px 10px 10px 10px;
	vertical-align: top;
	width: 1px;

	background-color: #eff1ec;
	border: none;
}

#st-settings-section {
	padding: 0px 10px 10px 10px;
	vertical-align: top;
}

.settings-top-header {
	margin-top: 1em;
	font-weight: bold;
	width: 15em;
}

.settings-header {
	margin-top: 1em;
	font-weight: bold;
}

.settings-selections {
	padding: 0px 0px 0px 20px;
	line-height: 1.5em;
}

.settings-selections a:visited, .settings-selections a:active {
	color: #0000ff;
}

.settings-link {
	clear: both;
	display: block;
}

.settings-section-left {
	text-align: right;
}

.settings-label {
	font-weight: bold;
}

.settings-help {
	color: #888;
}

.settings-comment {
}

.users-invite-message {
	padding: 0.5em 0.5em 0.5em 2em;
	background-color: #eee;
	/* This seems necessary to fix an IE bug that sometimes
		causes the text in this div to be invisible */
	z-index: 1000;
}

.workspace-entry-header {
	margin-top: .5em;
	font-weight: bold;
}

.workspace-entry {
	margin-left: 3em;
}

.workspace-entry-p {
	margin-top: .5em;
	margin-bottom: .75em;
}

.workspace-subentry {
	font-style: italic;
	font-weight: bold;
	margin-left: 1.5em;
}

.preferences-td {
	padding:.5em 0 1.5em 0;
}

.preferences-query {
	text-align: left;
}

.preference-radio {
	background-color: #cec;
}
.user-settings-listall-headings td {
	background-color: #eff3ef;
}

#st-settings-save {
	padding-bottom: 0.5em;
}

.standard-button-cancel {
	font-weight: bold;
	background-color: #71004b;

	border-left: 1px solid #aaa;
	border-top: 1px solid #aaa;
	border-bottom: 2px solid #333;
	border-right: 2px solid #333;
	color: #f4f3b9;
	width: 8em;
}

.standard-button-submit {
	font-weight: bold;
	background-color: #656084;

	border-left: 1px solid #aaa;
	border-top: 1px solid #aaa;
	border-bottom: 2px solid #333;
	border-right: 2px solid #333;
	color: #f4f3b9;
	width: 8em;
}

#st-settings {
	font-family: Verdana, Arial, Helvetica, Sans-Serif;
	font-size: 90%;
}


/* Listview Tabs */


#st-listview a:visited {
	color: #551a8b;
}
#st-listview-tabs ul {
	display: block;
	list-style: none outside;
	margin: 0 0 0 4em;
	padding: 0;
	font-family: Helvetica, Arial, Sans-serif;
	font-size: 80%;
}

#st-listview-tabs li {
	display: block;
	float: left;
	margin: 0 0.8em 0 0;
	padding: 3px 0.6em 0 0.6em;
	border: 1px solid #d8d8d8;
	border-bottom: 1px solid rgb(128, 169, 243);
	background-color: #f4f4f4;
	position: relative;
	bottom: -2px;
}

#st-listview-tabs li.spacer {
	margin: 0 0.8em 0 2em;
}

#st-listview-tabs a {
	color: #bbb;
	text-decoration: none;
}

#st-listview-tabs li.selected {
	background-color: #fff !important;
	border: 1px solid rgb(128, 169, 243) !important;
	border-bottom: 1px solid #fff !important;
	font-weight: bold !important;
}

#st-listview-tabs li.selected a {
	color: #000 !important;
}

/* Category List Display */

#st-category-display-links {
	margin-bottom: 1em;
	font-size: 90%;
}

#st-tag-listbody {
	font-family: Helvetica, Verdana, sans-serif;
}

/* Attachments List Display */

#st-attachments-list-body table.button-table {
	margin-top: 0.1em;
	font-size: 80%;
}


/* ********** PageTools Menu ************** */

div#st-editing-tools {
	float: left;
}

div#st-pagetools {
	z-index: 300;
	font-family: Helvetica, Verdana, sans-serif;
	font-size: 10px;
	float: right;
	margin: 18px 0 0 0em;
	color: #000;
	vertical-align: bottom;
	position: relative;
}

#st-pagetools a {
	text-decoration: none;
	color: black;
	padding-left: 17px;
}

#st-pagetools span {
	color: inherit;
	padding-left: 17px;
	vertical-align: top;
}

#st-pagetools span.st-watchlist-link {
	color: inherit;
	vertical-align: top;
}

.st-watchlist-link {
	cursor: pointer;
}

div#st-pagetools ul.level2 {
	z-index: 300;
	margin: 0;
	padding: 0;
	background: white;
	border: 1px solid #CCC;
	border-width: 0 1px;
}

div#st-pagetools li {
	position: relative;
	list-style: none;
	margin: 0;
	float: left;
	width: 7em;
	line-height: 11px;
}

div#st-pagetools ul ul li:hover {
	background: #BFE2FF;
}

div#st-pagetools li a {
	display: block;
	text-decoration: none;
}

div#st-pagetools>ul a {
	width: auto;
}

div#st-pagetools ul ul {
	position: absolute;
	width: auto;
	display: none;
}

div#st-pagetools ul ul li {
	line-height: 1.5em;
/*	width: 100%; */
	width: 14em;
}

.first {
	border-top: 1px solid #CCC;
}

.separator {
	border-bottom: 1px solid #CCC;
}

div#st-pagetools ul ul li a {
	border-bottom: 1px solid #CCC;
	padding-left: 15px;
	padding-right: 3px;
	margin-right: 3px;
	border: 0px;
}

div#st-pagetools li.submenu li.submenu:hover {
	z-index: 300;
	background-color: #BFE2FF;
}

div#st-pagetools ul.level1 li.submenu:hover ul.level2 {
	display:block;
}

div#st-pagetools ul.level2 {
	top: 1.0em;
	left: -9.5em;
}

/*

=head2 Revision List Display

Change these styles to update the page revision list.

*/

#st-revision-list-table {
	border-collapse: collapse;
	font-size: 85%;
	color: #000;
}

.st-page-title-decorator {
	color: #C80000;
}

.st-revision-header-emphasis {
	color: #C80000;
}

.st-revision-list-compare-button-row {
}

.st-revision-list-compare-button-cell {
	padding-top: 0.3em;
	text-align: center;
}

.st-revision-list-compare-button {
}

#st-revision-list-header-row {
}

#st-revision-list-header-select {
	padding: 6px 2px 2px 2px;
	text-align: center;
}

#st-revision-list-header-revision {
	padding: 6px 2px 2px 2px;
	text-align: left;
}

#st-revision-list-header-edited-by {
	padding: 6px 2px 2px 2px;
	text-align: center;
}

#st-revision-list-header-date {
	padding: 6px 2px 2px 2px;
	text-align: center;
}

.st-revision-list-row {
	border-collapse: collapse;
	border: 1px dashed #ddd;
	border-left: 1px solid #ddd;
	border-right: 1px solid #ddd;
}

.st-revision-list-row td {
	font-family: Verdana;
	padding: 0.3em;
	border-left: 1px dashed #ddd;
	border-right: 1px dashed #ddd;
	border-top: 1px solid #ddd;
	border-bottom: 1px solid #ddd;
}

.st-revision-list-row-select {
	padding: 3px 0 2px 0;
	text-align: center;
}

.st-revision-list-row-select-old {
}

.st-revision-list-row-select-new {
}

.st-revision-list-row-revision {
}

.st-revision-list-row-revision-link {
}

.st-revision-list-row-edited-by {
}

.st-revision-list-row-date {
}

/* Revision Menu */

#st-pagetools.st-revision-view-bar {
	float: left;
}

ul.st-revision-menu {
	list-style: none;
	margin: 0;
	padding: 0.2em;
	font-size: 80%;
}

ul.st-revision-menu li {
	float: left;
	padding: 0 0.4em 0 0.4em;
	border-right: thin solid #000000;
}

ul.st-revision-menu li.st-last {
	border-right: none;
}

#st-restore-revision-button {
	font-size: 80%;
}

/*

=head2 Revision Compare Display

When comparing two revisions of a page, these styles apply.

*/

#st-revision-compare-table {
	background-color: #f0f0f0;
}

#st-revision-compare-table td {
	background-color: white;
}

.st-revision-compare-old {
	background-color: #fdd;
	text-decoration: line-through;
}
.st-revision-compare-new {
	background-color: #dfd;
	font-weight: bold;
}

/* Weblog View */

#st-weblog {
	padding: 0;
}

#st-content-weblog-display-width-controller {
}
#st-content-weblog-display-width-controller-nav {
	width: 230px;
	margin-left: 15px;
	border-left: 5px solid #ddd;
	margin-top: -1px;
}

#st-weblog-content {
	font-family: Verdana, Helvetica, sans-serif;
	margin-top: -1px;
	margin-bottom: -1px;
	border-top: 1px solid #80a9f3;
	border-bottom: 1px solid #80a9f3;
}

#st-weblog-title {
	font-family: 'Trebuchet MS', Verdana, Helvetica, sans-serif;
	font-family: 'Times New Roman', serif;
	background-color: #80a9f3;
	color: #fff;
	font-size: 150%;
	font-weight: bold;
	padding: 0.2em;
	padding-left: 1em;
}

#st-weblog-wikititle {
	font-family: Helvetica, Verdana, sans-serif;
	font-style: italic;
	font-size: 40%;
	color: #fff;
	margin-bottom: 0.2em;
	margin-top: 0.1em;
	padding-top: 0;
}

#st-weblog-titletext {
	font-family: Helvetica, Verdana, sans-serif;
	font-weight: bold;
	color: #fff;
}

div.st-weblog-entry {
	margin-top: 0.2em;
	margin-bottom: 4.8em;
	padding: 0 1.5em 0 1.5em;
}

.st-page-title {
	clear: both;
}

div.st-weblog-entrytitle span.text {
	font-family: Helvetica, Verdana, sans-serif;
	font-size: 150%;
	font-weight: bold;
	color: #000;
}

.st-weblog-entrycontent {
	font-family: Verdana, Helvetica, sans-serif;
	font-size: 90%;
	border-bottom: 1px solid #888;
}

.st-weblog-byline {
	float: left;
	text-align: left;
	font-style: italic;
	font-size: 70%;
	font-family: Verdana, Helvetica, sans-serif;
}

.st-weblog-post-links {
	float: right;
	text-align: right;
	font-size: 70%;
	font-family: Verdana, Helvetica, sans-serif;
}

#st-weblog-archives, #st-weblog-navigation {
	position: relative;
	float: right;
	width: 230px;
}

#st-weblog-archives {
	margin-top: 15px;
	clear: right;
}

#st-weblog-archives-title, #st-weblog-navigation-title {
	margin-left: 15px;
	font-family: Helvetica, sans-serif;
	font-size: 95%;
	font-weight: bold;
	color: #999;
	border-bottom: 2px solid #f99;
	padding-bottom: 5px;
	padding-top: 5px;
	margin-bottom: 5px;
}

#st-weblog-navigation-content {
	margin-left: 15px;
	font-size: 80%;
}

#st-weblog-archives ul {
	margin: 0;
	padding: 0;
}

#st-weblog-archives ul li {
	/* list-type: none; */
	display: block;
	font-size: 80%;
	font-family: Helvetica, sans-serif;
	padding-left: 15px;
}

#st-weblog-newpost {
	padding: 0.5em 0.7em 0.3em 0.3em;
}

#st-weblog-newpost-button {
}

#st-weblog-actionbar-chooseweblog {
	float: right;
}

#st-weblog-postbyemail {
	font-size: 70%;
	font-family: Verdana, Helvetica, sans-serif;
	color: #def;
	padding-top: 0.4em;
}

#st-weblog-postbyemail-link {
	color: #00c;
}

.st-weblog-chooseprompt {
	font-size: 90%;
	font-family: Verdana, Helvetica, sans-serif;
	padding-right: 0.2em;
	color: #000;
}

.st-spacer {
	padding-right: 0.1em;
	padding-left: 0.1em;
}

.st-weblog-preventries {
	padding-bottom: 20px;
	clear: both;
}
.st-weblog-nextentries {
	clear: both;
}

div.st-weblog-entrynav {
	margin-top: 0.2em;
	margin-bottom: 1.8em;
	padding: 0;
}

span.st-weblog-previousentries, span.st-weblog-nextentries {
	font-size: 90%;
	font-family: Verdana, Helvetica, sans-serif;
	padding-left: 1em;
}

/* ******* Page Stats ******** */

#st-usagereport-navbar {
	font-size: 80%;
	padding: 0;
	margin: 0;
}

#st-usagereport-date {
	font-weight: bold;
	margin-top: 1em;
}

#st-page-usagereport h1 {
	font-size: 1.3em;
	font-weight: bold;
	margin-top: 1.2em;
	margin-bottom: 0.3em;
}

#st-page-usagereport h2 {
	font-size: 1.1em;
	font-weight: bold;
	margin-top: 0.8em;
	margin-bottom: 0.3em;
}

/* New Page */
#st-newpage-save, #st-newpage-duplicate {
	display: none;
	position: fixed;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
	background: url('../../images/st/popup/bg.png'); /* Don't forget IE hack for ship! */
	z-index: 2000;
}

#st-newpage-save-interface {
	background-color: #fff;
	color: #000;
	border: 4px solid #ccc;
	padding: 0.5em;
	width: 450px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 10%;
	position:absolute;
	top:0px;
	z-index:2003;
}

#st-newpage-duplicate-interface {
	background-color: #fff;
	color: #000;
	border: 4px solid #ccc;
	padding: 0.5em;
	width: 530px;
	margin-left: auto;
	margin-right: auto;
	margin-top: 10%;
	position:absolute;
	top:0px;
	z-index:2003;
}

#st-newpage-save-title, #st-newpage-duplicate-title {
	margin: 0;
	padding: 0;
	font-weight: bold;
	font-family: Helvetica, sans-serif;
	font-size: 100%;
}

#st-newpage-save-prompt, #st-newpage-duplicate-prompt {
	font-family: Helvetica, sans-serif;
	font-size: 90%;
	margin-bottom: 0.4em;
}

#st-newpage-save-buttons, #st-newpage-duplicate-buttons {
	margin-top: 0.8em;
	text-align: right;
}

.st-newpage-duplicate-option {
	font-family: Helvetica, sans-serif;
	font-size: 90%;
	margin: 0;
	padding: 0;
}

#st-newpage-duplicate-pagename {
	font-size: 90%;
}

.st-newpage-duplicate-emphasis {
	background-color: #FFFF00;
	font-weight: bold;
}

#st-newpage-save-field-pagename {
	margin-bottom: 0;
	margin-top: 0.2em;
	padding-bottom: 0;
	font-size: 90%;
}

#st-newpage-save-tip {
	margin-bottom: 0;
	margin-top: 1.2em;
	padding-bottom: 0;
	font-size: 75%;
	color: #888;
}

/* Wikitext Styling */

.wiki {
}

.wiki hr {
	margin-top: .4em;
	margin-bottom: .4em;
}

.wiki .short-rule {
	width: 25%;
}

.wiki .medium-rule {
	width: 50%
}

.wiki ul,
.wiki ol,
.wiki blockquote {
	margin-left: 2em;
	padding-left: 0em;
}

.wiki table {
	border-collapse: collapse;
}

.wiki td {
	border: 1px;
	border-style: solid;
	padding: .2em;
	vertical-align: top;
}

.wiki h1,
.wiki h2,
.wiki h3,
.wiki h4,
.wiki h5,
.wiki h6 {
	font-weight: bold;
	font-style: normal;
	margin-top: 0.1em;
	margin-bottom: 8px;
}

.wiki h1 {font-size: 200%;}
.wiki h2 {font-size: 170%;}
.wiki h3 {font-size: 145%;}
.wiki h4 {font-size: 125%;}
.wiki h5 {font-size: 110%;}
.wiki h6 {font-size: 100%;}

.wiki pre {
	background-color: #eee; /* XXX */
	margin-left: 1em;
	margin-right: 1em;
	padding: .2em;
}

.wiki .incipient {
	text-decoration: none;
	border-bottom: 1px dashed;
}

.wiki-include-title {
	background-color: #ccccff;
}

.wiki .wiki {
	position: relative;
	background-color: #ddddff;
	border: 1px solid #ccccff;
	padding: 3px;
}

.wafl_existence_error {
	color: rgb(200,0,0);
	border-bottom: 0.2em dashed rgb(200,0,0);
}

#st-edit-mode-container {
}

#st-edit-mode-view {
}

#st-page-editing-uploadbutton {
	z-index: 1500;
	float: left;
}

/* Comment UI */


body#st-commentui {
	background: #ffffff;
}

#st-commentui-container {
}

#st-commentui-container a:visited,
#st-commentui-container a:active {
	color: #00f;
}

#st-commentui-notetop {
}

#st-commentui-controls {
}

#st-commentui-savelink {
	background-color: #fffebd;
}

#st-commentui-cancellink {
}

#st-commentui-customfield {
}

#st-commentui-customfield .customfield-label {
}

#st-commentui-customfield .customfield-input {
}

#st-commentui-textarea {
	padding: 0;
	border-style: inset;
	border-width: thin;
	background-color: #ffd;
	color: black;
	width: 99%;
	height: 150px;
}

/*

=head2 Send Page by Email

Styles for the 'Send Page by Email' popup, accessed from the 'Email' dropdown
menu on the page bar.

*/

#email-page {
	background: #ffffff;
	font-size: 80%;
}

.email-page-row {
	clear: both;
}

.email-page-row-label {
	font-weight: bold;
	float: left;
	width: 5em;
	margin-left: 1.2em;
	margin-right: 1.2em;
	text-align: right;
}

.email-page-row-content {
	float: left;
	padding-bottom: 1.2em;
}

.email-page-user-select-column {
	float: left;
	padding-right: 1.2em;
	width: 14em;
}

#email-page-user-select-column-center {
	width: 10em;
}

.email-page-user-select-label {
	text-align: center;
}

#email-page-user-select-add-label {
	padding-top: 1em;
}

.email-page-user-select-button-group {
	padding-bottom: 2em;
}

.email-page-input {
	width: 120px;
	clear: both;
	display: block;
}


.email-page-select {
	width: 175px;
	font-size: x-small;
}

#email-page-error-message {
	text-align: center;
}

#email-page-buttons-container {
	clear: both;
}

#email-page-buttons {
	text-align: center;
}

.email-page-input-new {
	width: 175px;
}

/* System Status, Red with icon */

#st-system-status-alert {
	clear: both;
	width: 50%;
	margin-left: 25%;
	margin-top: 10px;
	padding: 5px;
	color: #c00;
	font-weight: bold;
	font-size: 80%;
	background: transparent url('../../images/st/system-message/important-note.gif') no-repeat 5px center;
	padding-left: 60px;
	min-height: 38px;
}
* html #st-system-status-alert {
	height: 38px;
}

/* System Status, Green */

#st-system-status {
	clear: both;
	text-align:center;
	width: 80%;
	margin-left: 10%;
	padding: 8px 0 3px 0;
	color: #0a0;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 80%;
}

.socialtextLogo {
	text-align: center;
}
/*}}}*/
/***
|''Name:''|SparklinePlugin|
|''Description:''|Sparklines macro|
***/
//{{{
if(!version.extensions.SparklinePlugin) {
version.extensions.SparklinePlugin = {installed:true};

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

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


}
//}}}
/***
|''Name:''|CryptoFunctionsPlugin|
|''Description:''|Support for cryptographic functions|
***/
//{{{
if(!version.extensions.CryptoFunctionsPlugin) {
version.extensions.CryptoFunctionsPlugin = {installed:true};

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

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

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

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

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

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

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

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

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

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

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

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

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


}
//}}}
/***
|''Name:''|DeprecatedFunctionsPlugin|
|''Description:''|Support for deprecated functions removed from core|
***/
//{{{
if(!version.extensions.DeprecatedFunctionsPlugin) {
version.extensions.DeprecatedFunctionsPlugin = {installed:true};

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

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

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

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

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

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

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

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

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

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

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

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

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

}
//}}}
ja ju napravim
test

----

"original"<http://www.razmjenavjestina.org/MarcellMars/NovaStranica> {date: 2005-04-30 10:50:14 +0200}
^ Draft #1:


 A: Jedan tebi, jedan meni, drugi tebi, jedan-dva meni, treฤ‡i tebi, jen-dva-tri meni...

 B: EEej, jel ti to varaลก?

 A: ล ta ti je? Dat ฤ‡u ti root password pa provjeri...

 B: Aaaaa, ruuut password.. da da da... onda ok.

 A: ฤetvrti tebi, jen-dva-tri-ฤetri meni...

Razmjeni vjeลกtine, svakodnevne dovitljivosti i pokaลพi ลกto znaลก u ___ 11.06. od __ do __. Haker je hakeru drug. http://www.razmjenavjestina.org

----


^ Draft #2

ovaj je bez veze, ali neka ga...

"Ove subote instaliranje linuxa na sve ลกto na struju gmiลพe, pa s gmizavcem u rex, a s dual butom doma."









----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsJingleRazmjenaVjestina> {date: 2007-10-31 12:59:37 +0100}

^ GamepadX


at the moment i try to get account at savannah.gnu.org with this project:
*"topot" is python scripting environment to allow classic input devices, gamepads/joysticks and midi/osc gears to mimic each other... to use mouse/keyboard as midi/osc controlers and vice versa...

visualisations of the parameters in charge is an extra layer.

the code written till now is at wiki page:
http://www.razmjenavjestina.org/[MarcellMars]/[MarcellMarsCodeGamepadX]

it allows user to use gamepad as mouse, keyboard or any other system call written in XAction class.. also there is a draft class which allows user to use MIDI controller as a regular mouse...*

GamepadX is a little python script which prepares gamepad (in my case "Logitech Cordless Rumble Pad"<http://www.logitech.com/index.cfm/gaming/pc_gaming/gamepads/devices/287&cl=us,en>) to act as mouse, arrows, backspace, delete, enter, escape... whatever u put in methods of class XAction ;)

if you are looking for the "real app" for making your joystick the new mouse in X try  http://qjoypad.sourceforge.net/... unfortunately i didn't test it but it seems quite matured :*

at the moment the configuration is in konf list where the first member of the list is pseudo-modifier, second is axe or button of the gamepad, third the number of ax or button and finally forth is the name of the method of class Kontroler which will be called after particular axe or button is pressed. modifiers should be used to bring extra functionality for axis or buttons and therefore should be placed before other (non-modifiers) functionalities in the conf list... when modifier is pressed the particular axe or button when pressed gets different job than when pressed without the modifier.. as easy as that ;) 

the future plans are to make "while 1:" separated thread + make python OSC/MIDI server (open sound control) which will call then methods of XAction so it will be possible to use MIDI gears to cheat X server ;)

_UPDATE: the proof of concept regarding MIDI is in the code..  and at the moment MIDI controllers 72 and 73 are mouse axis and notes 49, 50 and 51 are left/middle/right click of the mouse... it is easy to catch any other midi event and make it do whatever is in XAction class... if testing just be sure that your MIDI controller is connected to GetMIDI midi device... i recommend qjackctl for doing that_

the other thing is to make this also controller of "rvwm"<http://www.bljak.org/rvwm> fork of "evilwm"<http://www.6809.org.uk/evilwm/>. "rvwm"<http://www.bljak.org/rvwm> are python bindings of "evilwm"<http://www.6809.org.uk/evilwm/> controllable from interactive python sessions (separated thread)...

whatever...

it depends on "pyJSW"<http://freshmeat.net/projects/pyjsw/> responsible for communication to gamepad and 
"pyseq"<http://www.sci.ccny.cuny.edu/~brinkman/software/pyseq/> responsible for communication to X server.


.pre
from pyrobot import *
import JSW,sys,time
from pyseq import *


class GetMIDI(PySeq):
    def __init__(self):
        PySeq.__init__(self,'GetMIDI')
        self.iport = self.createInPort('')

    def startGetMIDI(self):
        self.mt=MidiThread(self)
        self.mt.start()

    def callback(self, ev):
        if ev.type =
^ SND_SEQ_EVENT_NOTEON and ev.getData().note
= 48 \
and ev.getData().velocity > 0:
            K.leftClick(1, 'midi00')
        if ev.type =
^ SND_SEQ_EVENT_NOTEON and ev.getData().note
= 48 \
and ev.getData().velocity == 0:
            K.leftClick(0, 'midi00')

        if ev.type =
^ SND_SEQ_EVENT_NOTEON and ev.getData().note
= 49 \
and ev.getData().velocity > 0:
            K.middleClick(1, 'midi01')
        if ev.type =
^ SND_SEQ_EVENT_NOTEON and ev.getData().note
= 49 \
and ev.getData().velocity == 0:
            K.middleClick(0, 'midi01')

        if ev.type =
^ SND_SEQ_EVENT_NOTEON and ev.getData().note
= 50 \
and ev.getData().velocity > 0:
            K.rightClick(1, 'midi02')
        if ev.type =
^ SND_SEQ_EVENT_NOTEON and ev.getData().note
= 50 \
and ev.getData().velocity == 0:
            K.rightClick(0, 'midi02')

        if ev.type =
^ SND_SEQ_EVENT_CONTROLLER and ev.getData().param
= 73:
            K.mouseX = (ev.getData().value + 1)*(1024/128)
            K.moveMouse()
        if ev.type 
^^ SND_SEQ_EVENT_CONTROLLER and ev.getData().param
 72:
            K.mouseY = (ev.getData().value + 1)*(1024/128)
            K.moveMouse()

        return 1

class XAction:
    def __init__(self):
        self.R = PyRobot()
        self.dev = "/dev/input/js0"
        self.cal = "/tmp/.joystick"
        self.jsd = JSW.Joystick(self.dev,self.cal)
        self.ax = self.jsd.getAxisCoeff
        self.bt = self.jsd.getButtonState
        self.mouseX = 0
        self.mouseY = 0
        self.states = {}
        for i in range(self.jsd.axisCount):
            self.states['ax'+str(i)] = 0
        for i in range(self.jsd.buttonCount):
            self.states['bt'+str(i)] = 0
        self.states['ax4b'] = 0
        self.states['ax5b'] = 0
        for i in range(3):
            self.states['midi0'+str(i)] = 0

    def getMouseCoord(self):
        self.R.grabAll()
        ev = self.R.getEvent()
        dat = ev.getData()
        self.mouseX, self.mouseY = dat.x, dat.y
        self.R.releaseAll()

    def setMouseX(self, x, state):
        step = self.getMouseStep(x)
        if x > 0:
            self.mouseX += step + 1
            if self.mouseX > 1024: self.mouseX = 1024
        elif x < 0:
            self.mouseX += step - 1
            if self.mouseX < 0: self.mouseX = 0

    def setMouseY(self, y, state):
        step = self.getMouseStep(y)
        if y > 0:
            self.mouseY -= step + 1
            if self.mouseY > 768: self.mouseY = 768
        elif y < 0:
            self.mouseY -= step - 1
            if self.mouseY < 0: self.mouseY = 0

    def getMouseStep(self, s):
        return int(((round(s,2)*100)**3)/20000)

    def moveMouse(self):
        self.R.sendMotionEvent(self.mouseX, self.mouseY)

    def leftClick(self, click, state):
        if click 
^^ 1 and self.states[state]
 0:
            self.R.sendButtonEvent(1,1)
            self.states[state] = 1
        elif click =
^ 0 and self.states[state]
= 1:
            self.R.sendButtonEvent(1,0)
            self.states[state] = 0

    def rightClick(self, click, state):
        if click 
^^ 1 and self.states[state]
 0:
            self.R.sendButtonEvent(3,1)
            self.states[state] = 1
        elif click =
^ 0 and self.states[state]
= 1:
            self.R.sendButtonEvent(3,0)
            self.states[state] = 0

    def middleClick(self, click, state):
        if click 
^^ 1 and self.states[state]
 0:
            self.R.sendButtonEvent(2,1)
            self.states[state] = 1
        elif click =
^ 0 and self.states[state]
= 1:
            self.R.sendButtonEvent(2,0)
            self.states[state] = 0

    def arrowUpDownAx(self, click, state):
        if click 
^^ 1 and self.states[state]
 0:
            self.R.sendKeyEvent(98,1)
            self.states[state] = 1
        elif click =
^ -1 and self.states[state+'b']
= 0:
            self.R.sendKeyEvent(104,1)
            self.states[state+'b'] = 1
        elif click 
^^ 0 and self.states[state]
 1:
            self.R.sendKeyEvent(98,0)
            self.states[state] = 0
        elif click =
^ 0 and self.states[state+'b']
= 1:
            self.R.sendKeyEvent(104,0)
            self.states[state+'b'] = 0

    def arrowLeftRightAx(self, click, state):
        if click 
^^ 1 and self.states[state]
 0:
            self.R.sendKeyEvent(102,1)
            self.states[state] = 1
        elif click =
^ -1 and self.states[state+'b']
= 0:
            self.R.sendKeyEvent(100,1)
            self.states[state+'b'] = 1
        elif click 
^^ 0 and self.states[state]
 1:
            self.R.sendKeyEvent(102,0)
            self.states[state] = 0
        elif click =
^ 0 and self.states[state+'b']
= 1:
            self.R.sendKeyEvent(100,0)
            self.states[state+'b'] = 0

    def backspaceDeleteAx(self, click, state):
        if click 
^^ 1 and self.states[state]
 0:
            self.R.sendKeyEvent(107,1)
            self.states[state] = 1
        elif click =
^ -1 and self.states[state+'b']
= 0:
            self.R.sendKeyEvent(22,1)
            self.states[state+'b'] = 1
        elif click 
^^ 0 and self.states[state]
 1:
            self.R.sendKeyEvent(107,0)
            self.states[state] = 0
        elif click =
^ 0 and self.states[state+'b']
= 1:
            self.R.sendKeyEvent(22,0)
            self.states[state+'b'] = 0

    def enterEscapeAx(self, click, state):
        if click 
^^ 1 and self.states[state]
 0:
            self.R.sendKeyEvent(9,1)
            self.states[state] = 1
        elif click =
^ -1 and self.states[state+'b']
= 0:
            self.R.sendKeyEvent(36,1)
            self.states[state+'b'] = 1
        elif click 
^^ 0 and self.states[state]
 1:
            self.R.sendKeyEvent(9,0)
            self.states[state] = 0
        elif click =
^ 0 and self.states[state+'b']
= 1:
            self.R.sendKeyEvent(36,0)
            self.states[state+'b'] = 0

Midi = GetMIDI()
Midi.startGetMIDI()

K = XAction()
K.getMouseCoord()
nomo_state = 0

konf = [        [[['bt',7]], 'ax', 4, 'backspaceDeleteAx'],
                [[['bt',7]], 'ax', 5, 'enterEscapeAx'],
                [[], 'ax', 2, 'setMouseX'],
                [[], 'ax', 3, 'setMouseY'],
                [[], 'bt', 4, 'leftClick'],
                [[], 'bt', 6, 'rightClick'],
                [[], 'bt', 5, 'middleClick'],
                [[], 'ax', 5, 'arrowUpDownAx'],
                [[], 'ax', 4, 'arrowLeftRightAx']
                ]

try:
    while 1:
        for i in konf:
            if getattr(K,i[1])(i[2]) != 0:
                keep = True

        if K.jsd.update() or keep == True:
            keep = False
            K.moveMouse()
            for i,iobj in enumerate(konf):
                for j in iobj[0]:
                    if getattr(K, j[0])(j[1]) == 1:
                        nomo_state += 1

                if nomo_state == len(konf[i][0]):
                        nomo_state = 0
                        getattr(K, konf[i][3]) \
(getattr(K, konf[i][1])(konf[i][2]),konf[i][1]+str(konf[i][2]))
                else:
                    nomo_state = 0

        sys.stdout.flush()
        time.sleep(0.02)

except KeyboardInterrupt:
    print
    sys.exit()
.pre




















----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsCodeGamepadX> {date: 2007-08-26 14:30:03 +0200}
http://2928e086cc51ea2e17e3cfc6caf32801-t.fahofy.org <a href="http://2928e086cc51ea2e17e3cfc6caf32801-h.fahofy.org">2928e086cc51ea2e17e3cfc6caf32801</a> [url]http://2928e086cc51ea2e17e3cfc6caf32801-b1.fahofy.org[/url] [url=http://2928e086cc51ea2e17e3cfc6caf32801-b2.fahofy.org]2928e086cc51ea2e17e3cfc6caf32801[/url] [u]http://2928e086cc51ea2e17e3cfc6caf32801-b3.fahofy.org[/u] 3e8a6bdb1665a78445404f75b4833e17

----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsPifIntervju/CreativeCommons> {date: 2007-07-06 22:39:49 +0200}
nekaj i jos nekaj

----

"original"<http://www.razmjenavjestina.org/MarcellMars/RijecSaDvaSlova> {date: 2007-04-21 12:11:33 +0200}
^^^ Prelaz granice


na ulazu (u subotu 10.03.) u bosnu su mi rekli da mi tog dana istice registracija na iznajmljenom kombiju. nisam se zabrinjavao jer mi je lik koji mi ga je iznajmio rekao da ce ga brzo registrirati pa sam mislio da valjda to onda vrijedi ak on sve ima pod kontrolom...

na povratku dan kasnije (nedjelja 11.03.) par kilometara od granice s hrvatskom (bosanski brod, rs) naglo sam se sjetio da nisam pokupio pasos sa recepcije hostela.. nakon dva zavoja od ustanovljavanja me zastopao murjak... 75km/s gdje je 50 dozvoljeno, duga svijetla njemu u oci i neregistrirani kombi su bile kazne koje mi se spremao naplatiti... onda mi je 15 minuta citao stvari iz zakona koje me se ticu.. trudio se jako izrazajno citati...

ja sam stajao vani na blizu 0 celzijusa samo u gornjem dijelu trenirke i slapama (s carapama)... njegov zakljucak koji je ponovio barem tri puta bio je: auto ide van iz prometa, vi idete samnom u stanicu i cekate do ujutro suca za prekrsaje + minimum 1000km ukupnih kazni koje je nabrojao za vec spomenute pizdarije... ja sam razmisljao da ce biti super zabavno kad ustanovi da nemam ni osobnih dokumenata...

rekao sam mu svega par stvari.. nakon 15 minuta tlacenja i ponavljanja jednih te istih  stvari rekao sam mu pazljivo da nisam glup i da sam razumio sto sam sve pogrijesio ali da mi se cini da iako zakonito da je sve to sto je nabrojao ipak prevelika kazna za mene + jos sest ljudi u autu i da je bas zalosno da se tako precizno i neumoljivo provodi zakon u ovakvim situacijama a ni nasa ni njegova drzava nije u stanju suprostaviti se *pravim* kriminalcima... pa sam mu jos rekao da ako zeli da ga potplatim da ja imam sve skupa 15 EUR-a i da ako mu trebam platiti vise da mozemo otici zajedno do bankomata.... pustio me bez ikakve kazne + samo me jos pitao nakon sto je cuo da smo "kompjuterasi" sto bi mu preporucio od antivirusnih programa... ja sam rekao nod32 pa me pitao da li to imam na cd-ima pa da mu eventualno dam.. rekao sam mu da ne koristim windowse nego linux i da zbog toga nemam nikakvih problema s virusima.... na pola prve slozenije recenice o tome zasto je linux tako super jer ga nitko ne posjeduje i razvijan je od strane hiljade ljudi sirom svijeta sam odustao jer sam imao sve dokumente u svojim rukama i nije izgledalo da ga zanima ista od kiber komunizma... nije ni svjestan kako se njegov zivot mogao promijeniti da je samo malo bio zainteresiraniji...

poslije toga sam morao ustanoviti da li mi je fakat ostao pasos u hostelu... aco je fotkao tablu od hostela pa sam promptno dobio broj telefona.. probudio sam tipa koji mi je rekao da pasos nije tamo...  nakon 10 minuta sam ga ponovno probudio i rekao da je bolje da provjeri jer ja moram prijaviti muriji da sam izgubio pasos i da ce murjaci prvo kod njega doci provjeravati jer sam ja siguran da je pasos kod njih.. tada je prvi put rekao da on u stvari nije u hostelu i da mora zvati tamo ali da mu se nitko ne javlja... onda sam morao cekati da ipak dobije nekog u hostelu... to cekanje se odvijalo na 15 metara od granicnih kucica gdje smo se parkirali.... na kraju je ustanovio da moj pasos ipak *je* u hostelu...

sad smo imali dva problema... kako preci preko granice bez pasosa (i bez osobne koja mi je ostala u zagrebu) a sa vozackom, prometnom i saobracajnom od beverlyja + nesto kreditnih kartica na moje ime... i drugi problem neregistriranog kombija... odsetao sam do granicara u slapicama s carapama i objasnio mu koji je problem.. nakon ne previse zavrzlama odlucili su me/nas pustiti... taman kad smo mislili da je gotovo on me trazio saobracajnu i prometnu od kombija jer da mu papiri od skutera ne pomazu.. mi smo se iako smo se dobro crnohumorno zabavljali ipak i smrzli jer je to trebalo znaciti da ce on skuziti za "nasu malu tajnu" kako ju je aka ranije nazvao... tip se nakon pet minuta vratio i pozelio nam sretan put...

na hrvatskoj granici sam im rekao istu pricu ne odavsi im "nasu malu tajnu"... i oni su me pustili + sto su mi uz smjesak rekli da nije najpametnije da super amila koja je u medjuvremenu pokupila pasos iz hostel ode s njim u .hr ambasadu jer bi u tom slucaju oni meni morali naplatiti 900 kuna za prekrsaj prelaska granice s vozackom a ne osobnom ili pasosem... ja sam rekao da se to sigurno nece desiti i on je rekao da posto smo svi nakon njihove provjere "cisti" i da se njemu cini da je to bolje jer 900 kuna nije malo... dobrica mi je prigovorio da cak i u takvim situacijama upadam u rijec sugovorniku... meni se cinilo da sam mu povladjivao a ne upadao u rijec.. ili preciznije upadao sam mu u rijec onako kako uzbudjeno dijete sto prije zeli dati do znanja kao ce
napraviti sve sto roditelj kaze... never mind...

i tako sam u sat vremena prosao toliku kolicinu stresnih situacija da bi sad rado otisao tjedan dana u tuheljske toplice na igranje saha sa senilnim penzionerima...

da ja sam glupan i sreckovic...


----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsTxtPrelazakGranice> {date: 2007-03-12 13:52:04 +0100}

^ Jednostavna provjera mreลพe


Tri su provjere koje obiฤno radim da provjerim da li je sve u redu (ili ลกto nije u redu) s mreลพom. To su:

.pre
ping 10.0.0.1 # ili ลกto god veฤ‡ je difoltna ruta
ping 4.2.2.2 # imam li izlaz na net 4.2.2.2 je DNS koji je uvijek up
ping www.google.com # ako prva dva rade ovo provjeri rizolvanje ip-jeva
.pre


e i sad da to sve skupa ne bi pisao svaki put iznova (pogotovo prisjeฤ‡ajuฤ‡i se koja je difoltna ruta) eto i aliasa u mom .zshrc fajlu:

.pre
alias pingd="ping `netstat -rn|grep "^0"|awk '{print $2}'`"
alias pingdn="ping 4.2.2.2"
alias pingdns="ping www.google.com"
.pre


to znaฤi da kad neลก ne ลกtima prvo upiลกem _pingd_ ลกto provjeri da li radi mreลพa do prvog rutera, _pingdn_ provjeri oฤ‡e li paketi na Internet i na kraju _pingdns_ provjeri da li radi rizolvanje domena u numeriฤke ip adrese. i to upravo tim redom. ovim redom je super i to da ne moram upisivati svaki put pingd, nego ga samo pozovem strelicom prema gore pa dodam n, pa joลก jednom i dodam s. eto... svakodnevna dovitljivost...


----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsSvakodnevneDovitljivostiJednostavnaProvjeraMreze> {date: 2006-12-13 20:10:20 +0100}
{image: sandala-Tshirt.jpg}



----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsTemp> {date: 2006-10-23 10:45:08 +0200}
{toc}

^^ Feedback Letter


^^^ question

hello ppl,

skill sharing was there ;)

i feel it would be good to give you some feedback on what we did and ask
you for follow up things which we need to finish.

i would say the skill sharing in kunsthaus went ok. we (8 of us) were 
sitting there with our laptops chatting a bit with people (mostly 
exhibition stuff) and doing something which we could call "regular" 
skill sharing. unfortunately we didn't have people who were coming 
particularly on skill sharing session but instead did have many people 
who were walking around doing the regular visiting of the exhibition.

we did quite long video interview and that was quite funny + hope 
interesting for author's and future audience...

as we (geekz) are easy to turn off social sensibility we acted like 
visitors are temporarily in our temporary house. that later on brought to 
us very interesting discussions about the feeling and meaning of 'being 
exhibited together with your regular activities' inside of exhibition set 
up in the museum. it is sort of funny but also when in cynical mood it 
brings up questions of (no) meaning in recontextualisation or changing 
radically communicational context..  we agreed we don't care too much 
about art ;)

but also we agreed we care about sharing skills in easy way we got use 
to do...

if we or you will do similar thing in the future it is important to 
bring interpretation of 'being exhibited as authentic form of daily 
life activity ' as part of the preparation of the event so that would 
help to step onto higher level of abstraction of wtf is going on at 
particular moment... that could be very inspirational for both geekz and 
art(*ists/historians/consumers)... if not prepared in advance that 
part of the communicational context could be overexposed/covered in 
particular time of happening... the issue described above was 
interesting for us and i hope it is of some interest for you too...

if we will do the same thing somewhere else we would probably recommend 
contacting local linux user group and diy communities from the side of 
organizers or even more probable we would try to do that on our own 
also..hope that's ok for paying the agreed amounts... i must say i need that 
quite soon as i paid everything in cash and the amount of money is quite 
close to my monthly salary ;)

i left two (signed by me) invoices to thomas tigel (?!?) as i was told 
by werner (?!?) one for traveling costs + hotel and second one for 
agreed artist's fee.. i also left all of the bills which i had from the 
gas station and highways... (i'm sorry if i forgot the right names)...

i'm sorry i didn't meet any of you guys but hope that we will have 
another chance soon..

best

m@rcell.net


^^^ reply


Hello Marcel

First

Thanks for your mail and feedback.
I really appreciated you agreeing to participate in Generosity and your
response is useful for future projects

Second

Exactly the same thing happened to me and my \214workshop? - very few
people/lack of support and equipment, and even signage

Thirdly

So I feel like shit, and I?m sorry ,and I feel that I have to apologise and
take some responsibility.
We wanted to invite you, but were unable to take care of you.

The museum wanted to have a non-exhibition; of events, performances and
workshops. And yet they have none of the infrastructure to advertise,
support , interpret and host such events ยญbills, equipment, audience, etc.
So I apologise on their behalf because our and more especially your
generosity was exploited. Exploited partly by us, but mostly by the museum.
This is not something we are comfortable with, or indeed ever intended

What you say here

> as we (geekz) are easy to turn off social sensibility we acted like                                                                        
     
> visitors are temporarily in our temporary house. that later on brought to                                                                      

> us very interesting discussions about the feeling and meaning of 'being                                                                        

> exhibited together with your regular activities' inside of exhibition set                                                                      

> up in the museum. it is sort of funny but also when in cynical mood it                                                                         

> brings up questions of (no) meaning in recontextualisation or changing                                                                         

> radically communicational context..  we agreed we don't care too much                                                                         
 
> about art ;) 


Is very interesting, particularly what you go on to say  about needing
interpretation to stop the abstraction of everyday life activities -
There was no guide, text or person to help visitors understand what was
happening in any of the workshops, and yes it was stupid of them not to
contact the Linux and media community in Graz.

So once again I?m sorry that it was not more productive, and sorry that I
was not even able to be there.

Best wishes though, and i hope we meet again soon

----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsTxtFeedbackLetter> {date: 2006-10-18 11:32:35 +0200}
^^ Danaลกnji svijet je geekovski raj


Muลกkarac u sandalama s ฤarapama. Naoฤalima. Preteลพno frustracijama kad je srednja ลกkola u pitanju. ลฝmirka dok tipka - s deset prstiju bez gledanja. Oboลพava Zvjezdane staze - ili Ratove zvijezda, nikada oboje.  Telefon koristi da bi priฤao o telefonima. Ne zna nijedno ime parfema, ali zna barem nekoliko prototipa za digitaliziranje mirisa. Ako poznaje parfeme (vrlo rijedak sluฤaj) zna u kojoj se tvornici parfem proizvodi, a tko samo nalijepi ime i etiketu. Ako je danas joลก uvijek siromaลกan dobre su ลกanse da veฤ‡ sutra bude jako bogat. Ima maฤku. Ima omiljenu listu omiljenih listi omiljenih stvari. Ljudi iz njegove okoline misle da on ili njegovi najbolji prijatelji mogu provaliti u raฤunala bilo koje banke. Zna tko stoji iza svega. I ima gomilu materijala s dokazima.  Oboลพava video igre iz sedamdesetih, osamdesetih, devedesetih, nultih - tim redom. Kada bi mogao glasao bi za Yodu ili Homera Simpsona. Ako i nije roฤ‘en u Americi mogao bi pobijediti bilo koga u Americi na Jeopardy!u. Ne radi backup. Zna kako napraviti laลพne otiske prstiju. Mrzi pop upove, oboลพava pin upove. Mrzi loลกe formatirane mejlove sa gomilom adresa u To: polju. Broj akronima koje zna napamet usporediv je sa vokabularom G.W.Busha. Baki i njenim prijateljicama na njihove ลกale odgovara sa: LoL. Na svom ฤvrstom disku ima pohranjenu kolekciju svih sezona svoje omiljene TV serije. Kolekcija je bekapirana. On je geek. I danaลกnji svijet je geekovski raj. (Today's world is geek's heaven.)


Ne tako davno video igre, preureฤ‘ivanje i raskapanje raฤunala i raznorazne elektronike, teorije zavjera, znanstvena fantastika, japanska pornografija, astronomija, robotika, cyberpunk, bizarna kolekcionarstva i opsjednutost simpatiฤnim ureฤ‘ajima potroลกaฤke elektronike (gadgets) bili su rezervirani za geekovkske garaลพe i razmjenu na opskurnim bbs-ovima. Danas je teลกko zamisliti tv sapunicu u veฤernjim satima koja ne koketira barem s dvije od navedenih tema.  Mreลพne komunikacijske tehnologije i digitalizacija koja je zahvatila gotovo sva podruฤja ljudske produkcije i digitalizirala okoliลก svih naลกih osjetila osim mirisa (ลกto ฤ‡e vjerojatno vrlo skoro) stopile su se neraskidivu vezu sa kulturnim proizvodima gdje je jako teลกko povuฤ‡i granicu izmeฤ‘u sadrลพaja i forme, medija i poruke.


I sreฤ‡om po nas (geekove) sve je saฤuvano u digitalnom obliku.  Filigranskim arheoloลกkim odmotavanjem jednoga dana biti ฤ‡emo u stanju ispriฤati bezbroj moguฤ‡ih povijesti geek kulture sa potpunom dokumentacijom. Kao nijedna (sub)kultura do sad ;)


Problem koji se veฤ‡ u samom poฤetku odmotavanja javlja je naravno makar i najmanja operativna definicija geeka, geekuลกe i geek kulture generalno. Gotovo sve reference na koje nailazimo su ne puno viลกe od ลกaljivih dosjetki iz tinejdลพerskih komedija. Kratki scenariji za strip, film ili web animaciju. Vrlo geekish. I sasvim dovoljno za poฤetak:


Odnos informacijsko komunikacijskih tehnologija i kulturne produkcije, te kulture generalno je jedna od najvaลพnijih tema teorijskih refleksija kulture danas. Utjecaj razvoja tehnologije proลพima sve sfere kulturne produkcije od estetike i izraลพajnih sredstava do specifiฤnih tema pozicija moฤ‡i, raspolaganja (informacijskim/kulturnim) resursima, pitanja autorstva, originalnosti i integriteta djela i/ili autora.


Najฤeลกฤ‡i diskurs refleksije odnosa tehnologije i kulture je pokuลกaj procjene u kolikoj mjeri se neลกto staro transformiralo ili bilo prisiljeno transformirati u susretu s novim (kao posljedicom tehnoloลกkog razvoja). Vrlo rijetko je u fokusu interesa kultura koja nastaje izvorno i gotovo iskljuฤivo kao posljedica razvoja digitalnih komunikacijskih tehnologija. Joลก rjeฤ‘e su u fokusu ljudi ฤiji je ลพivotni stil ili bolje reฤeno ลพivot upravo ta neprestana interakcija sa informacijsko komunikacijskim tehnologijama. Za takve ljude udomaฤ‡io se izraz geek, nastao u engleskom jeziku za cirkuske gutaฤe insekata, da bi u drugoj polovici 20.  stoljeฤ‡a, od pojave prvih raฤunaladobio svoje danaลกnje znaฤenje.


Konotacija i mit vezan uz pojam "geeka" u zadnjih nekoliko desetljeฤ‡a radikalno se mijenjala: ranije u samim poฤecima razvoja raฤunalnih tehnologija "geek" je prije svega oznaฤavao ฤovjeka (najฤeลกฤ‡e adolescenta) potpuno posveฤ‡enog i gotovo zaluฤ‘enog razvojem novih tehnologija, koji (prema stereotipu) nema razvijene socijalne vjeลกtine i druลกtvo ga vidi kao "iลกฤaลกenog", bizarnog i marginalnog.

Kako su se nove tehnologije prihvaฤ‡ale od strane druลกtva, specifiฤno znanje o tehnologijama kojima su "geekovi" obilovali postojalo je sve traลพenije i prihvatljivije kako na trลพiลกtu tako i u socijalnim interakcijama. S vremenom je kreativna proizvodnja tema, konstrukcija, ideja, opsesija i humora "geekova" stvarala neลกto ลกto danas zovemo geek kulturom, a "geekovi" su sve ฤeลกฤ‡e prihvaฤ‡eni kao napredni i progresivni pojedinci u druลกtvu.


Stvaranju mita o ubergeeku koji je nadprosjeฤno inteligentan, samodovoljan i sposoban, pogodavala je ekonomska eksplozija na raฤunalnom trลพiลกtu zadnjih tridesetak godina gdje su se u vrlo kratkom vremenu vrlo mladi ljudi fascinatno obogatili. Taj mit takoฤ‘er ukljuฤuje i razdoblje frustracije zbog druลกtvenog odbacivanja kroz adolescenciju i kasniju osvetu (simboliฤku) u iznimnom bogaฤ‡enju i penjanju na vrh druลกtvene ljestvice.


Utjecaj geek kulture na popularnu kulturu u zadnjih dvadesetak godina gotovo je nesaglediv: cyberpunk, raฤunalne igre, raฤunalna animacija, mreลพne kolaboracije, znanstvena fantastika, teorije zavjere, iลกฤaลกeni humor, bizarni hobiji i kolekcionarstvo. Geek kultura asimilirala je i na sebi svojstven naฤin obradila razliฤita kulturna nasljeฤ‘a poput kontrakulture, hippie pokreta, punka, popularne znanosti, te stvorila svoj specifiฤni asocijativni prostor znaฤenja.


Geek kulturu danski teoretiฤar Lars Konzack sa Aalborg univerziteta naziva treฤ‡om kontrakulturom, gdje nakon izvornog pokreta kontrakulture krajem ลกezdesetih Konzack pronalazi drugu generaciju u Yuppie kulturi sredine i kraja osamdesetih. (Lars Konzack: Geek culture, The 3rd Counter-Culture; prezentirano 26.-28. lipnja 2006. na FNG2006. konferenciji u Prestonu, Engleska).


Stereotipni kulturni proizvod geek kulture je u estetskom smislu bizarni neukus, ali sa izuzetno inteligentnim i lucidnim podtekstom, formom/formatom i kontekstom. Geek kultura je opsjednuta znanjem, informacijama i lucidnim idejnim konstrukcijama, a u estetskom smislu najฤeลกฤ‡e poseลพe za rubnim, marginalnim, bizarnim, radikalnim, ลกto srednja struja smatra neukusom.


Poput svega ลกto je u dodiru s novim tehnologijama i geek kultura je prvenstveno narativ obojan sjevernoameriฤkim kontekstom. Evropa, a posebno Istoฤna Evropa s nasljeฤ‘em komunizma i socijalizma geek kulturi daje poseban povijesni obrat gdje je konzumeristiฤki optimizam ameriฤkog druลกtva osamdesetih suprostavljen raspadajuฤ‡em mitu o svemoฤ‡i znanja, znanosti i industrijskog progresa. U velikom dijelu konzumeristiฤki nagon sa Zapada prevladao je i u geek kulturi Istoka, no neke od najsvjeลพijih refleksija geek kulture ipak dolaze iz kritiฤkog promiลกljanja Evrope i Istoฤne Evrope.


G33koskop je nastavak (satelit) Razmjene vjeลกtina, dvogodiลกnjeg uspjeลกnog okupljanja entuzijasta i geekova subotom u klubu mama. G33koskop je pokrenut s namjerom istraลพivanja pojma, definicije, opsega, identiteta i teme geeka i geek kulture. U seriji predavanja, prezentacija i moderiranih diskusija, uz neizostavnu perspektivu tinejdลพerske komedije ลพelimo istraลพiti i ispriฤati jednu od moguฤ‡ih povijesti geek kulture u kontekstu jedne istoฤnoevropske, tranzicijske zemlje ฤiji neลกto stariji entuzijastiฤni graฤ‘ani pamte ลกto su to geekovi radili, pisali i komunicirali i prije nego ลกto su znali da se to moลพe zvati geekovลกtinom. U meฤ‘uvremenu su nauฤili ลกtoลกta o Americi, ฤak i to da se moลพe roditi i ลพivjeti negdje geografski jako daleko, ali ako je u blizini kabel, moลพe se ลพivot oblikovati u tipiฤan ลพivot jednog globalnog ameriฤkog geeka.


Teme koje ลพelimo dotaknuti su i da li definicija geeka podrazumijeva njegovu naivnost i nemoguฤ‡nost refleksije geekdoma i geekovske prirode, da li je fetiลก na geek toliko negeek? Da li je geek angaลพiran, da li je u sluลพbi odrลพanja prevladavajuฤ‡eg druลกtvenog sistema, da li geek mijenja svijet oko sebe na bolje? Koliko? Da li je geek queer? Da li je geek umjetnik? Da li je geek elitist? Da li je geek muลกko? Da li je geek ลพensko? Da li je hakerdom podskup geekdoma? Da li su geekovi solidarni?  Da li je geek ลพiv? Da li je geek stvaran? Da li je univerzum geek? Da li je borg geek? Da li je geek borg?.....


Prvi u seriji G33koskopa u sklopu Device arta ne moลพe zamisliti bolji poฤetak od razgovora sa urednikom Make magazina, kultnog ameriฤkog geek ฤasopisa za geek trลพiลกte, te entuzijastima dorkbota.

----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsTxtDanasnjiSvijetJeGeekovkiRaj> {date: 2006-09-06 17:22:48 +0200}
^ [MarcellMarsTrazi]


Sve dolje navedeno odnosi se na GNU/Linux, ako nije naveden *BSD ;) 
* kodne stranice i hendlanje fontova (ne samo namijeลกtanje. to mi radi, no nisam siguran kako to sve skupa radi.) konkretna pitanja tipa: kako pojedinoj aplikaciji reฤ‡i da koristi odreฤ‘enu kodnu stranicu, keyboard layout; kako znati koju kodnu stranicu koristi pojedina aplikacija; unicode na Linuxu: postavke i koriลกtenje....)
* spajanje na net koristeฤ‡i minicom (za komunikaciju s modemom) i ruฤno podeลกavanje ppp-a: /etc/ppp/*...
* drugi monitor u X-ima (ne toliko ลกiroki desktop, koliko recimo pojedini prozor pogoniti samo na drugom monitoru u full screen-u i sliฤno)
* custom DSDT (Differentiated System Description Table), a moลพe i ACPI tips&tricks
* personal video recording + satellite TV (http://www.cadsoft.de/people/kls/vdr/,  http://etv.sourceforge.net/, http://freevo.sourceforge.net/, http://www.mythtv.org/...)
* WiFi
* network security: firewalls, VPN, ipsec, snort...
* multimedia: MIDI, advanced alsa configs, pd, blender...
* SAMBA, vi, emacs *tips&tricks*
alternativni nacini primjene gsm tehnologija :-) dGs







----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsTrazi> {date: 2006-06-13 16:11:08 +0200}
 1.Aktivnosti ฤlanova MI2 se dogaฤ‘aju i na podruฤja van Hrvatskih granica. Izmeฤ‘u ostalog ฤlanovi organizacije sudjeluju na brojnim festivalima i residence programima. Kako je djelovanje u inozemstvu prihvaฤ‡eno od strane institucionalne kulture i nadleลพnih drลพavnih institucija?

Teลกko da bi se moglo govoriti o bilo kakvoj znaฤajnoj refleksiji vaninstitucionalne kulture od strane institucionalne kulture. To gotovo logiฤki slijedi iz moguฤ‡ih definicija institucionalne i vaninstitucionalne kulture. U tom smislu teลกko da smo uoฤavanjem tog nedostatka refleksije na tragu neฤeg ฤudnog i vrijednog paลพnje. Refleksija u suprotnom smjeru ponovno gotovo logiฤki slijedi iz definiicija institucionalnog i vaninstitucionalnog, ali otvaranje te teme teลกko da moลพe biti jedini odgovor na ovo pitanje. 

Kriteriji relevantnosti koji su najฤeลกฤ‡e u igri prihvaฤ‡anja i obraฤ‡anja paลพnje na neฤiji rad u kulturi su broj publike i /ili prihvaฤ‡enost od struฤne javnosti. U naลกem sluฤaju (novomedijska kultura i transfer tehnoloลกkih koncepata u druลกtvenu sferu) lokalna struฤna javnost je izuzetno mala, a ljudi iz naลกe organizacije moglo bi se reฤ‡i da ฤine veฤ‡inu upravo te lokalne struฤne javnosti. Broj publike koji rado posjeฤ‡uje naลกe programe teลกko da se moลพe usporediti s bilo kojim brojevima _showbiz_, _instantTV_ i klasiฤne "narodske" popularne kulture. Prema tim kriterijima naลกe djelatnosti ne zasluลพuju previลกe paลพnje od onih kojima su ti kriteriji presudni.

Postoji joลก jedan kriterij relevantnosti koji u kulturnom polju postaje sve vaลพniji - inovacija.

Meฤ‘usobni odnos kulture i trลพiลกta u zadnjih pedesetak godina postao je jedan od temeljnih preokupacija i kulture i trลพiลกta. Pokazalo se da trลพiลกte, prije svega kreativne i marketinลกke industrije, vrlo lako preuzima ne samo jezik i artikulaciju progresivne kulture veฤ‡ i modele djelovanja, organiziranja i upravljanja kreativnim procesima i to tako da neลกto ลกto je u nekom trenutku model djelovanja i artikulacija inovativne kulture vrlo brzo postaje srednjostrujaลกki model korporativnog djelovanja i jezik marketinลกkih kampanja. Bespomoฤ‡nost kulture da se odupre takvim asimilacijama od strane trลพiลกta danas se oฤituje u prevladavajuฤ‡im formama otpora i refleksije: cinizmu i ciniฤnom estetiziranju. 

Eksperimentalne modele organiziranja, djelovanja i upravljanja kreativnim procesima koji se ne baziraju na cinizmu i ciniฤnom estetiziranju, a reflektiraju kontekst kulturne produkcije danas, te im nije lako predvidjeti potpunu asimilaciju u dominantnu trลพiลกnu proizvodnju moลพemo nazivati inovativnim  modelima. To su modeli koje razvijamo u naลกem radu i istraลพivanju, a same modele pokuลกavamo apstrahirati, pa opisati na naฤin da ih je moguฤ‡e primjeniti i u nekom drugom kontekstu.

Artikulacija i implementacija tih modela naiลกla je na znaฤajno prepoznavanje u internacionalnoj zajednici koja se bavi novomedijskom umjetnoลกฤ‡u, teorijom i kulturnim politikama.

U sluฤajevima u kojima su drลพavne institucije i institucionalna kultura pozvani/prisiljeni  proizvesti 'inovativnost' a podruฤja djelovanja im se preklapaju s naลกim ฤesto se dogaฤ‘a da nas tada prepoznaju kao zanimljive i vaลพne. Ponekad to prepoznavanje rezultira i zanimljivim partnerstvima vaninstitucionalne kulture i drลพavnih institucija koja su gotovo neophodna da bi se napravile sistemske promjene.

Naลกa sreฤ‡a je da modele uspijevamo isฤitavati iz konkretnih projekata na kojima radimo, da modele do kojih dolazimo istraลพivanjima i promiลกljanjem imamo priliku primjenjivati na konkretnim projektima, pa nam se eventualni elitizam moลพe 'priลกiti' viลกe kao posljedica primjene kriterija broja publike i prihvaฤ‡anja od strane struฤne javnosti, a bitno teลพe kao posljedica primjene kriterija inovativnosti :)
 
 2.MI2 takoฤ‘er dovodi u Hrvatsku brojne strane umjetnike i teoretiฤare. S kojom namjerom?

Namjera nam je pokazati i prezentirati rad i ideje ljudi za koje smatramo da su relevantni i zanimljivi naลกem lokalnom kontekstu. To su najฤeลกฤ‡e i ljudi s kojima suraฤ‘ujemo ili bi voljeli suraฤ‘ivati u buduฤ‡nosti.

 3.MI2 aktivnosti se povezane uz pokret slobodnog softwarea, [CreativeCommons] licence i sl. Koja je suradnja sa drลพavnim institucijama i sveuฤiliลกtima u tim aktivnostima?

Do sada smo ostvarili suradnju sa CARNetom organiziravลกi seriju predavanja "Druลกtvo znanja i slobodna razmjena informacija" na kojima su gostovali: Rishab Ayer Gosh (http://www.flossproject.org), Eben Moglen (http://www.fsf.org), Lawrence Lessig (http://www.otokultivator.org) i Jimmy Wales (http://www.wikipedia.org). Takoฤ‘er je u planu pokretanje creativecommons.hr repozitorija sadrลพaja objavljenih pod cc licencama u Hrvatskoj.

 4.Sloboda izraลพavanja i sloboda miลกljenja, sloboda djelovanja i stvaranja su osnovne vrijednosti rada MI2. Kako MI2 predoฤava svoje vrijednosti korisnicima?
 
Prije svega programima i projektima koje organiziramo. Projekti poput EGOBOO.bitsa (http://www.egoboobits.net) i razvoja slobodnog softvera (http://tamtam.mi2.hr/TamTamDev) otvoreni su za aktivnu participaciju zainteresiranih, dok projekti poput "Druลกtvo znanja i slobodna razmjena informacija", festival "Sloboda stvaralaลกtva!" (http://www.slobodastvaralastvu.net), te izdavanje knjiga poput Lessigove "Kod i drugi zakoni kiberprostora" (http://www.kod-je-zakon.net) otvaraju u javnosti diskusije i podiลพu nivo svjesnosti o problemima vezanim uz slobodnu razmjenu informacija, druลกtvo znanja i moguฤ‡nosti suradnje, koje dobro predstavljaju vrijednosti iza kojih stoji Multimedijalni institut.

 5.Klub MAMA je okupljaliลกte inicijativa koje nisu samo vezane uz slobode djelovanja i stvaranja nego i ljudska prava, prava ลพivotinja, anarhistiฤke misli ili pokrete za oฤuvanje prirode. MAMA takoฤ‘er nudi bogati kulturni program od kojih moลพemo izdvojiti filmske programe koje je teลกko naฤ‡i igdje drugdje. Kako je doลกlo do tako razgranatog podruฤja djelovanja te doลกlo do popularizacije?


Klub MAMA odpoฤetka je zamiลกljena kao javni prostor u kojem mi2 ostvaruje ne samo svoje programe i projekte veฤ‡ i suradnje sa ostalima akterima na kulturnoj i civilnoj sceni. Osiguravanjem infrastrukture i modela suradnje uspjeli smo okupiti niz drugih inicijativa koje djeluju i u klubu MAMA.

Osim suradnji sa bliskim inicijativama klub MAMA je otvoren i za prezentacijske, radioniฤarske, diskusijske i sliฤne programe neprofitnih inicijativa civilne i neovisne kulturne scene.

Do publike, prepoznatljivosti i danaลกnjeg kredibiliteta kluba MAME doลกli smo zahvaljujuฤ‡i suradnji i petogodiลกnjem radu mi2 i brojnih drugih aktera danaลกnje neovisne kulturne i civilne scene. Svima ovom prilikom hvala :)

hvala...


----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsPifIntervju> {date: 2006-02-28 14:55:07 +0100}
^ Snimano u abiwordu 2.2.9, a gledano u firefoxu 1.0.6 (na linuxu)


ovako bi viลกe manje trebalo izgledati svugdje. ovisi samo da li trenutni font ima sve te znakove, pa ฤ‡e ih zamijeniti sa viลกe ili manje upitnika ili znakovima poput ~P, ~Q, ~M....  od ฤeลกฤ‡ih situacija joลก eventualno fali kombinacija sa joลก dva macova encodiranja naลกih slova.. no to bi mogli biti oni koje se ne moลพe naฤ‡i u ovim tablicama :)

dobar naฤin sreฤ‘ivanja znakova bio bi kroz firefox/mozillu jer ima fino suฤelje za promjenu encodiranja, no .doc, .rtf i ostale formate firefox ne zna formatirati (sreฤ‡om), pa se treba dovijati na druge naฤine.

ove tablice su dobre za provjeriti koja aplikacija koristi koji encoding, pa kad se veฤ‡ desi rusfaj da barem znaลก koja je nekompatibilnost posrijedi :) 

||gledano kao/ ||snimljeno kao: *iso8859-2*||
|| /iso8859-1 || {image: iso8859-2_iso8859-1.gif} ||
|| /*iso8859-2* || {image: iso8859-2_iso8859-2.gif} ||
|| /windows-1250 || {image: iso8859-2_windows-1250.gif} ||
|| /utf-7 || {image: iso8859-2_utf-7.gif} ||
|| /utf-8 || {image: iso8859-2_utf-8.gif} ||
|| /utf-16 || {image: iso8859-2_utf-16.gif} ||

||gledano kao/ ||snimljeno kao: *utf-8*||
|| /iso8859-1 || {image: utf-8_iso8859-1.gif} ||
|| /iso8859-2 || {image: utf-8_iso8859-2.gif} ||
|| /windows-1250 || {image: utf-8_windows-1250.gif} ||
|| /utf-7 || {image: utf-8_utf-7.gif} ||
|| /*utf-8* || {image: utf-8_utf-8.gif} ||
|| /utf-16 || {image: utf-8_utf-16.gif} ||

||gledano kao/ ||snimljeno kao: *windows-1250*||
|| /iso8859-1 || {image: windows-1250_iso8859-1.gif} ||
|| /iso8859-2 || {image: windows-1250_iso8859-2.gif} ||
|| /*windows-1250* || {image: windows-1250_windows-1250.gif} ||
|| /utf-7 || {image: windows-1250_utf-7.gif} ||
|| /utf-8 || {image: windows-1250_utf-8.gif} ||
|| /utf-16 || {image: windows-1250_utf-16.gif} ||





----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsSvakodnevneDovitljivostiUsporednaTablicaPrikazaNasihSlovaURazlicitimKodnimStranicama> {date: 2005-09-05 01:55:37 +0200}
"Kako se brinuti o afriฤkim tvorovima"<http://www.mangura.net/entry.asp?EntryID=15>

----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsSvakodnevneDovitljivostiKakoMangureNeGubeTvorove> {date: 2005-07-10 11:37:13 +0200}
"Kako napraviti dobru sangriju"<http://www.mangura.net/entry.asp?EntryID=6>

----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsSvakodnevneDovitljivostiKakoMangureSamiRadeDobruSangriju> {date: 2005-07-10 11:36:36 +0200}
"Kako ne gubiti daljinske"<http://www.mangura.net/entry.asp?EntryID=24>

----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsSvakodnevneDovitljivostiKakoMangureNeGubeDaljinske> {date: 2005-07-10 11:36:00 +0200}
"Sve ลกto se ลพeljeli znati o stopiranju"<http://www.mangura.net/entry.asp?EntryID=25>

"+dodatak"<http://mangura.blog.hr/arhiva-2005-06.html#1610842401>





----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsSvakodnevneDovitljivostiKakoMangureStopiraju> {date: 2005-07-10 11:31:37 +0200}
^ Kako anonimno surfati i pritom sve snimiti za kasnije offline surfanje?

--[MarcellMars], 25/06/05

^ Odgovor #1


evo i odgovora na engleskom. prvom prilikom prevodim ;)

with a help from roger on WOS 3 i managed to set up wwwoffle (cache-proxy server), privoxy and tor in usefull chain... yeah ;)


in /etc/wwwoffle.conf in proxy section put this:


.pre
Proxy
{
 <http://*> proxy = 127.0.0.1:8118
 <*://localhost> proxy = none
}
.pre


in /etc/privoxy/config just add line with:


.pre
forward-socks4a / localhost:9050 .
.pre


_(don't forget the dot) to its config file._

Start wwwoffle, privoxy and tor:

on gentoo:


.pre
# /etc/init.d/privoxy start
# /etc/init.d/wwwoffle-online start
# tor&
.pre
}

then in Firefox (or equivalent) in:

Tools > Options > Connection Settings > Manual proxy configuration:


.pre
HTTP Proxy: localhost                   Port: 8080
.pre


So: Mozilla regularly calls wwwoffle > wwwoffle calls privoxy > privoxy calls/uses tor and here we are anonimously saving things for offline browsing ;)

-- [MarcellMars], 25/06/05

----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsPitanjeKakoAnonimnoSurfatiPlusSveSnimiti> {date: 2005-06-26 00:03:42 +0200}
this is the text of [CaMelcase]

----

"original"<http://www.razmjenavjestina.org/MarcellMars/CaMelcase> {date: 2005-06-23 15:15:34 +0200}

^ Viลกe radnog prostora na ekranu


Postoje dvije potrebe oko laptopa koje se meฤ‘usobno potiru. Da bude ลกto lakลกi i da ekran bude ลกto veฤ‡i. Na fluxboxu je moguฤ‡e pridruลพiti neku funkciju kombinaciji tipki. Ono ลกto je meni uลกtedilo sasvim solidnu koliฤinu prostora je micanje Title bara aplikacija. To je bar u kojem piลกe kako se zove program (kao da se ne vidi u radnom prostoru istoga) i eventualno koji je fajl trenutno aktivan. To u fluxboxu izgleda ovako ~/.fluxbox/keys:

.pre
Shift Control t :ToggleDecor
.pre


tom funkcijom prozor izgubi svoj standardni okvir, no ฤesto ostane strลกati tako "u  zraku" pa ga je potrebno maksimizirati. tu funkciju pridruลพio sam SHIFT+CONTROL+m i to na ovaj naฤin:

.pre
Shift Control m :MaximizeWindow
.pre


ponavljanjem SHIFT+CONTROL+t prozor gubi i dobiva Title bar, a ponavljanjem SHIFT+CONTROL+m maksimizira prozor na ekranu ili ga vraฤ‡a na zadnju veliฤinu manju od te maksimalne. na taj naฤin je relativno lako vratiti Title bar ako ih ikad trebate. (meni obiฤno trebaj jednom mjeseฤno kad trebam provjeriti da li su sve aplikacije otvorene kad se neka aplikacija zblesira. u stvari to je gotovo i jedino firefox).

Aplikacija u kojoj provodim najviลกe vremena je firefox i on ima jednu super zamiลกljenu funkciju no naลพalost ne rjeลกava moju potrebu u potpunosti. F11 svaki preglednik stavlja u Full Screen mode i iako na taj naฤin dobivam dosta prostora nekoliko stvari mi fale: 
* preฤica za upis URL-a (CONTROL+l)
* Google bar (CONTROL+k)
* status bar sa podacima ลกto se trenutno deลกava
* indikator da li je stranica koju tog ฤasa pregledavam prva ili sam veฤ‡ bio na nekima prije nje. to je u principu Back gumb

Sve to rjeลกavam tako da uredim malo glavu samog firefox prozora. Desnim klikom kliknem  pokraj Help-a u najgornjem meniju, otvorim Customize i za vrijeme dok je Customize otvoren povuฤem Back gumb, Address bar i Google bar u isti bar u kojem se nalaze File, Edit, View, Go.... Nakon toga odฤekiram Navigation i Bookmark toolbar i ostane mi samo jedan red za sve ฤ‘iฤ‘e tipa File, Edit, View i sliฤno + Back gumb (u principu da vidim da li sam na stranici koja ima neki History), Address bar i Google bar... to na kraju izgleda ovako:

{image: short_bar_small.gif}


"u punoj veliฤini"<http://boo.mi2.hr/~marcell/firefox_toolbar.gif>


----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsSvakodnevneDovitljivostiViseRadnogProstoraNaEkranu> {date: 2005-06-02 22:37:13 +0200}

^ Tipke koje ลพivot znaฤe
* u vi editoru ESCAPE je tipka kojom se mijenja iz edit moda u control mod i to je vjerojatno najฤeลกฤ‡e koriลกtena tipka. kako se nalazi u gornjem lijevom kutu to ako brzo tipkaลก izgleda kao da sviraลก bubnjeve a ne da tipkaลก. ne znam nikoga tko koristi CAPS LOCK tipku a ona se nalazi u srednjem redu na savrลกenom poloลพaju za mali prst lijeve ruke. tako dobro mjesto a nikakva korist. *rjeลกenje:* preswistchati ESCAPE i CAPS LOCK. (u principu CAPS LOCK je toliko glupa funkcija da razmiลกljam da na to mjesto stavim neลกto bitnije...) enivej ~/.Xmodmap preswitchavanje na mom laptopu izgleda ovako:

.pre
remove Lock  =  Caps_Lock
keycode 66   =  Escape
keycode 9    =  Caps_Lock
add Lock     =  Caps_Lock
.pre
* na mom laptopu tipka pored lijevog SHIFTA je < (i >). kako sam navikao na drugom mjesto tipkati <> ta mi je tipka ponovno na izvrsnom mjestu stajala neiskoriลกteno. strelice su u donjem desnom kutu i ponovno pokret prema njima izgleda kao lupanje po ฤineli a ne tipkanje. *rjeลกenje:* odluฤio sam ju uposliti kao jednu od kontrolnih tipki tako da tipke poput ASDFGHJKLฤŒ na qwerty tastaturi mogu dobiti neke extra funkcije. za poฤetak to su micanja strelicama. evo kako to izgleda u mom ~/.Xmodmap fajlu:

.pre
clear mod1
keycode 0x40 = Meta_L
keycode 94 = Mode_switch
keycode 113 = Meta_R
add mod1 = Meta_L
add mod2 = Mode_switch

keycode 43 =    h               H               Left
keycode 44 =    j               J               Down 
keycode 45 =    k               K               Up 
keycode 46 =    l               L               Right
keycode 65 =    0x20            0xff56          Return
.pre
* kad sam promijenio strelice skuลพio sam da joลก tri tipke previลกe stiลกฤ‡em a da su mi predaleko od standardnog drลพanja prstiju iznad tastature (kaลพiprsti na oznaฤenim slovima F i J). te tipke su ENTER, BACKSPACE i DELETE. *rjeลกenje* kako je tipka pored lijevog SHIFTA veฤ‡ posloลพena kao kontrolna tipka odluฤio sam se za kombinaciju te tipke i slova n (BACKSPACE) i m (DELETE). evo kako to izgleda u mom ~/.Xmodmap fajlu:

.pre
keycode 58 =    m               M               Delete
keycode 57 =    n               N               BackSpace
.pre
* joลก ฤetiri tipke su mi bile predaleke a koristim ih relativno ฤesto. to su PAGE UP i PAGE DOWN i HOME i END. *rjeลกenje:* u vozi PAGE DOWN, i vozi PAGE  UP, a g END i G HOME. u kombinaciji sa novom kontrolnom tipkom naravno :)

.pre
keycode 30 =    u               U               Next
keycode 31 =    i               I               Prior
keycode 42 =    g               G               End             Home
.pre




^ Daljnji razvoj


spustit ฤ‡u sve brojeve s treฤ‡eg reda meฤ‘u w=1, e=2, r=3,s=4, d=5, f=6, x=7, c=8, v=9 i a=0. vjerojatno ฤ‡u u treฤ‡em redu ostaviti !"#$%&/()= ali tako da rade bez da trebam stisnuti SHIFT.

to sve skupa ฤeka moje eksperimentiranje sa DVORAK tastaturom koja mi se ฤini nakon svega par dana uฤenja kao prioritet. kad se nauฤim na nju onda ฤ‡u napraviti ฤitav prelaz s brojevima.

----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsSvakodnevneDovitljivostiTipkeKojeZivotZnace> {date: 2005-06-02 21:53:58 +0200}
^ Vodiฤ za preลพivljavanje u XXI stoljeฤ‡u


{toc}


^^ Hrana i piฤ‡e
* kuhalo
* posuฤ‘e
* mapa moguฤ‡ih mjesta
* trลพnice
* restorani/pizzerie/fast foodovi


^^ Spavanje
* vreฤ‡a za spavanje
* nepromoฤivi karimat
* ลกator
* mapa moguฤ‡ih mjesta
* hosteli
* kampovi
* na divlje


^^ Higijena
* odjeฤ‡a
* pribor
* 
* mapa moguฤ‡ih mjesta
* javne kupaonice/kupelji
* tuลกevi na plaลพama
* wc/kupaone na benzinskim stanicama


^^ Mobilnost/Transport
* motor
* ruksak
* kaciga
* space bag
* mapa moguฤ‡ih mjesta
* benzinske stanice
* lockeri


^^ Komunikacija
* mobitel/smartphone
* bluetooth headset
* gps
* pda?
* laptop
* napajanje
* kablovi
* software
* mapa moguฤ‡ih mjesta
* wifi hot spotovi
* cybercafei




----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsVodicZaPrezivljavanjeUXXIStoljecu> {date: 2005-05-06 15:16:43 +0200}
|| *Protocol* || *MB/s* ||
|| IrDA-Control || 0.009 ||
|| Serial || 0.02 ||
|| Parallel || 1.0 ||
|| Bluetooth 1.1 || 0.125 ||
|| Bluetooth 2 || 2 to 12 ||
|| USB 1.1 || 1.5 ||
|| USB 2.0 || 60 ||
|| SCSI 1 || 5 ||
|| Fast SCSI 2 || 10 ||
|| Fast Wide SCSI 2 || 20 ||
|| Ultra SCSI || 20 ||
|| Ultra Wide SCSI || 40 ||
|| Ultra2 SCSI || 80 ||
|| Ultra 160 SCSI || 160 ||
|| FireWire (IEEE 1394) || 50 ||
|| FireWire (IEEE 1394b) || 100 ||


----
----------------------------------
----
serial (Amiga, Atari) --- 19.200, 31.200, 480 KBit/s (CPU assisted)

USB 1.0      ---   5 MBit/s - obsolete

USB 1._ Fast  ---  12 MBit/s

USB 2.0 Ultra --- 480 kBit/s

neki SCSI     --- 320 MB/s
 
IDE ( not E-IDE) --- 2MBit/s

E-IDE --- 16MBit/s

CD-ROM 1x 150 kB/s


:-) Euro/Geant Internet2 optical network 622 GBit/s = 622000 MBit/s :-)

drGspot




----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsBrzinePrijenosa> {date: 2005-02-26 09:46:27 +0100}

^ Kako koristiti isti keyboard layout za Xterm, Firefox, OpenOffice i sliฤno?


Hmm.. U stvari bi pitanje trebalo biti malo drugaฤije formulirano, no... Kad startam:

.pre
opcija us:
$ setxkbmap us
$ xmodmap ~/.Xmodmap
.pre

... najnormalnije dobijem u Xtermu (i sl.) mapirane tipke tako da u kombinaciji sa AltGr daju naลกa slova. No to mi ne daje prava slova u Firefoxu, OpenOfficu i sliฤno. Daje mi umjesto ฤฤ‡ลพลกฤ‘ ova slova &#232;&#230;&#190;&#185;&#240;. Koliko sam uspio poloviti svugdje imam namjeลกteno iso8859-2. Tako da kad ลพelim pisati naลกa slova u Mozilli ili OpenOfficu moram prebaciti tastaturu na:

.pre
opcija hr:
$ setxkbmap si
.pre

ali onda mi naลกa slova ne rade u Xtermu tj. uopฤ‡e ih nije moguฤ‡e upisati.

Da li netko zna kako pogoniti _opciju us_ sa Xmodmapom tako da isto radi i u Xtermu i u Mozilli, OpenOffice-u i sliฤno? To mi je u stvari draลพa opcija. 

_KONSTELACIJA: Gentoo, linux 2.6.8, fluxbox, no gnome, no kde, ali gtk i qt biblioteke instalirane...

 1. U malom programฤiฤ‡u switch za promjenu tema u gtk1.x aplikacijama, vidim naลกa slova kad ih upisujem iz *us* tastature sa AltGr, no ne mogu niลกta upisati kad je  aktivna *si* tastatura (isto kao i u Xtermu), no s tim programฤiฤ‡em mijenjam teme za Firefox, ลกto znaฤi da Firefox primi informaciju o promjeni teme iz switcha, ali nema isti tip input boxa kao switch. Switch se isto ponaลกa kao i Xterm.
 2. Ekvivalentni programฤiฤ‡ switch2 ovaj put za gtk2.x ponaลกa se isto kao i Firefox, OpenOffice u sluฤaju pod 1., a suprotno od Xterma. Aplikacija koja je kompajlirana s gtk2.x podrลกkom xchat-2 ponaลกa se isto kao i switch2 aplikacija kojom mijenjam njene teme.
 3. Promijenio sam u Firefoxu (about:config) sve kaj je imalo charset u sebi stavio sam iso-8859-2
_

Kako se moลพe saznati koja aplikacija koristi podrลกku za pojedinu kodnu stranicu  (_charset_)?



-- [MarcellMars], 12/10/04
 







----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsPitanjeKakoKoristitiIstiKeyboardLayoutZaXTermFirefoxIdr> {date: 2004-10-12 19:57:43 +0200}
^ Kako preusmjeriti MIDI output iz KeyKita i drugih non JACK aplikacija u ALSA-u?


Rado bi provjerio kako rade MIDI aplikacije s windowsa i non JACK native Linux aplikacije usmjeravajuฤ‡i njihov output kroz ALSA-u ka softsynthevima.


^ Odgovor

from "linux-audio-user"<http://www.music.columbia.edu/pipermail/linux-audio-user/2003-October/007466.html> :
 
I've been working with Tim Thompson's "KeyKit"<http://www.nosuch.com/keykit/index.html>, trying to get it to send 
its output to a softsynth. I can set a variable for KeyKit that will 
select the ALSA rawmidi device with this syntax :


.pre
export ALSA_RAWMIDI_DEVICE=hw:1,0
.pre


where hw:1,0 refers to my card1 (the ALSA virmidi module) and its first 
device (0). Now when I start KK (and set the Port Enabler to ALSA) I can 
route its output to whatever connections are available via aconnect (or 
the kaconnect GUI).

I just wanted to say "Thanks!" to the ALSA developers for the virmidi 
module. I've used it with MIDI sequencers running under emulation 
systems such as DOSemu and Xsteem, I've used it for the TK707 virtual 
drum machine, and now I'm using it with KeyKit. The combination of 
TiMidity-as-softsynth (with the Fluid soundfont) and the virmidi module 
is a very powerful and flexible system for me, and I just wanted to pass 
on a note of appreciation for the ALSA team's work.

Dave Phillips dlphilp at bright.net 

Sat Oct 18 09:28:10 EDT 2003

-- [MarcellMars], 05/10/04











----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsPitanjeKeyKit2ALSA> {date: 2004-10-05 10:32:36 +0200}
^ [MarcellMarsNudi]


Sve dolje navedeno odnosi se na GNU/Linux, ako nije navedeno drugaฤije ;)
* postavke i provjera mejla iz komandne linije (ssh, mutt, vi/emacs)
* postavke i enkriptiranje mejla (gnupg, mutt)
* osnove povezivanja raฤunala u mreลพu (osnove LAN-a, ifconfig/ipconfig, DNS, default gateaway, ping, tcpdump, nmap....)
* izbor, instalacija pluginova za mozillu, te njeno napredno koriลกtenje
* particioniranje i dual boot (fdisk, partition magic, grub/lilo, backup MBR i partition table-a...)
* osnovna instalacija Linuxa (Gentoo, KNOPPIX, Mandrake, Slackware)
* napredne instalacije Gentoo-a:
* alternativni portage snapshots, /usr/portage/distfiles, prekompajlirani binarni paketi /usr/portage/packages
* priprema i kompajliranje na brลพem stroju za instalaciju na stare i sporije strojeve
* koriลกtenje distcc-a i kompajliranje u LAN-u
* koriลกtenje chroot jail-a za instalaciju na novu particiju iz veฤ‡ postojeฤ‡e Linux instalacije bilo koje distribucije (prednosti: instalacija Gentoo-a u pozadini, te za to vrijeme najnormalnije koriลกtenje postojeฤ‡e instalacije, kompletan GUI, blahblahblah...)
* instalacija Linuxa na iPAQ PDA
* spajanje na net GPRS-om preko bluetooth mobitela
* chroot jail
* spell check i koriลกtenje WordNet englesko-engleskog rjeฤnika
* prลพenje CD-ova iz komandne linije (mkisofs, cdrecord, cdrdao, cdparanoia, cdda2wav....)
* dvd:rip - upravo to ripanje dvd-ova





----

"original"<http://www.razmjenavjestina.org/MarcellMars/MarcellMarsNudi> {date: 2004-10-03 20:20:04 +0200}