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
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
<<importTiddlers>>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

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

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

----
Also see [[AdvancedOptions]]
<!--{{{-->
<div class='header' role='banner' 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' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea' role='main'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

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

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
/***
<<tiddler CookieManager>>
***/
/***
!!![[Portable cookies:|CookieSaverPlugin]] {{fine{<<option chkPortableCookies>>enable <<option chkMonitorCookieJar>>monitor}}}
^^This section is ''//__automatically maintained__//'' by [[CookieSaverPlugin]].  To block specific cookies, see [[CookieSaverPluginConfig]].^^
***/
// // /% end portable cookies %/
/***
!!![[Baked cookies:|CookieManagerPlugin]]
^^Press {{smallform{<<cookieManager button>>}}} to save the current browser cookies... then hand-edit this section to customize the results.^^
***/

// 41 options saved on Wednesday, April 27th 2011 at 19:44:14 by Sławomir Szlęzak//
//^^(edit/remove username check and/or individual option settings as desired)^^//
//{{{
	config.options["chkAllowBrowserCookies"]=true;
	config.options["chkAnimate"]=false;
	config.options["chkAutoSave"]=false;
	config.options["chkBottomOfPageMode"]=false;
	config.options["chkCaseSensitiveSearch"]=false;
	config.options["chkConfirmDelete"]=true;
	config.options["chkCookieJarAddToAdvancedOptions"]=true;
	config.options["chkCookieManagerAddToAdvancedOptions"]=true;
	config.options["chkDisplayInstrumentation"]=false;
	config.options["chkForceMinorUpdate"]=false;
	config.options["chkGenerateAnRssFeed"]=false;
	config.options["chkHttpReadOnly"]=true;
	config.options["chkIncrementalSearch"]=true;
	config.options["chkInsertTabs"]=false;
	config.options["chkMonitorBrowserCookies"]=false;
	config.options["chkMonitorCookieJar"]=true;
	config.options["chkOpenInNewWindow"]=true;
	config.options["chkPortableCookies"]=true;
	config.options["chkRegExpSearch"]=false;
	config.options["chkSaveBackups"]=false;
	config.options["chkSaveEmptyTemplate"]=false;
	config.options["chkSinglePageAutoScroll"]=false;
	config.options["chkSinglePageKeepEditedTiddlers"]=false;
	config.options["chkSinglePageKeepFoldedTiddlers"]=false;
	config.options["chkSinglePageMode"]=true;
	config.options["chkSinglePagePermalink"]=true;
	config.options["chkSliderOptionsPanel"]=false;
	config.options["chkToggleLinks"]=false;
	config.options["chkTopOfPageMode"]=false;
	config.options["chkUsePreForStorage"]=true;
	config.options["txtBackupFolder"]="";
	config.options["txtCookieJar"]="CookieJar";
	config.options["txtEditorFocus"]="text";
	config.options["txtFileSystemCharSet"]="UTF-8";
	config.options["txtMainTab"]="Tags";
	config.options["txtMaxEditRows"]="30";
	config.options["txtMoreTab"]="Shadowed";
	config.options["txtTheme"]="";
//}}}

// 0 cookies saved on Wednesday, March 21st 2012 at 16:18:38 by SławomirSzlęzak//
//^^(edit/remove username check and/or individual option settings as desired)^^//
//{{{
if (config.options.txtUserName=="SławomirSzlęzak") {
}
//}}}
/***
|Name|CookieManagerPlugin|
|Source|http://www.TiddlyTools.com/#CookieManagerPlugin|
|Version|2.4.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|view/add/delete browser-based cookies and "bake" cookies to CookieJar tiddler for 'sticky' settings|
!!!!!Usage
<<<
This plugin provides an interactive control panel that lets you select, view, modify, or delete any of the current values for TiddlyWiki options that have been stored as local, private, //browser cookies//.  You can also use the control panel to "bake cookies", which generates a set of javascript statements that assign hard-coded option values to the TiddlyWiki internal variables that correspond to the current browser cookie settings.  These hard-coded values are then stored in the [[CookieJar]] tiddler, which is tagged with<<tag systemConfig>> so that each time the document is loaded, the baked cookie settings will be automatically applied.

When a set of baked cookies is added to the [[CookieJar]], it is automatically surrounded by a conditional test so that the hard-coded settings will only be applied for the username that was in effect when they were initially generated.  In this way, if you publish or share your document with others, //your// particular baked cookie settings are not automatically applied to others, so that their own browser-based cookie settings (if defined) will be applied as usual.

Whenever you "bake cookies", new hard-coded javascript assignment statements are *appended* to the end of the [[CookieJar]].  However, any baked cookies that were previously generated and stored in the [[CookieJar]] are not automatically removed from the tiddler.  As a result, because the most recently baked cookie settings in the [[CookieJar]] are always the last to be processed, the values assigned by older baked cookies are immediately overridden by the values from the newest baked cookies, so that the newest values will be in effect when the CookieJar startup processing is completed.

Each time you bake a new batch of cookies, it is recommended that you should review and hand-edit the [[CookieJar]] to remove any "stale cookies" or merge the old and new sets of baked cookies into a single block to simplify readability (as well as saving a little tiddler storage space).  Of course, you can also hand-edit the [[CookieJar]] tiddler at any time simply to remove a few individual //baked cookies// if they are no longer needed, and you can even delete the entire [[CookieJar]] tiddler and start fresh, if that is appropriate.  Please note that changing or deleting a baked cookie does not alter the current value of the corresponding option setting, and any changes you make to the [[CookieJar]] will only be applied after you have saved and reloaded the document in your browser.
<<<
!!!!!Examples
<<<
{{{<<cookieManager>>}}}
{{smallform small center{
@@display:block;width:35em;<<cookieManager>>@@}}}
<<<
!!!!!Configuration
<<<
<<option chkAllowBrowserCookies>> store ~TiddlyWiki option settings using private browser cookies
<<option chkMonitorBrowserCookies>> monitor browser cookie activity (show a message whenever a cookie is set or deleted)
<<option chkCookieManagerAddToAdvancedOptions>> display [[CookieManager]] in [[AdvancedOptions]]
//note: this setting does not take effect until you reload the document//
<<<
!!!!!Revisions
<<<
2011.01.16 2.4.1 in init(), corrected double addition of CookieManager to backstage
2009.08.05 2.4.0 changed CookieJar output format to support odd symbols in option names (e.g. '@')
2008.09.14 2.3.2 fixed handling for blocked cookies (was still allowing some blocked cookies to be set)
2008.09.12 2.3.1 added blocked[] array and allowBrowserCookie() test function for selective blocking of changes to browser cookies based on cookie name
2008.09.08 2.3.0 extensive code cleanup: defined removeCookie(), renamed cookies, added 'button' param for stand-alone "bake cookies" button, improved init of shadow [[CookieManager]] and [[CookieJar]] tiddlers for compatibility with new [[CookieSaverPlugin]]. 
2008.07.11 2.2.1 fixed recursion error in hijack for saveOptionCookie()
2008.06.26 2.2.0 added chkCookieManagerNoNewCookies option
2008.06.05 2.1.3 replaced hard-coded definition for "CookieJar" title with option variable
2008.05.12 2.1.2 add "cookies" task to backstage (moved from BackstageTasks)
2008.04.09 2.1.0 added options: chkCookieManagerAddToAdvancedOptions
2008.04.08 2.0.1 automatically include CookieManager control panel in AdvancedOptions shadow tiddler
2007.08.02 2.0.0 converted from inline script
2007.04.29 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.CookieManagerPlugin= {major: 2, minor: 4, revision: 1, date: new Date(2011,1,16)};
//}}}
//{{{
config.macros.cookieManager = {
	target:
		config.options.txtCookieJar||"CookieJar",
	blockedCookies:
		[],
	allowBrowserCookie: function(name) {
		return true;
	},
	displayStatus: function(msg) {
		if (config.options.chkMonitorBrowserCookies && !startingUp)
			displayMessage("CookieManager: "+msg);
	},
	init: function() {
		if (config.options.txtCookieJar===undefined)
			config.options.txtCookieJar=this.target;
		if (config.options.chkAllowBrowserCookies===undefined)
			config.options.chkAllowBrowserCookies=true;
		if (config.options.chkMonitorBrowserCookies===undefined)
			config.options.chkMonitorBrowserCookies=false;

		config.shadowTiddlers.CookieManager=
			 "/***\n"
			+"!!![[Browser cookies:|CookieManagerPlugin]] "
			+"{{fine{<<option chkAllowBrowserCookies>>enable <<option chkMonitorBrowserCookies>>monitor}}}\n"
			+"^^Review, modify, or delete browser cookies..."
			+"To block specific cookies, see [[CookieManagerPluginConfig]].^^\n"
			+"@@display:block;width:30em;{{smallform small{\n<<cookieManager>>}}}@@\n"
			+"***/\n";

		// add CookieManager to shadow CookieJar
		var h="/***\n<<tiddler CookieManager>>\n***/\n";
		var t=(config.shadowTiddlers[this.target]||"").replace(new RegExp(h.replace(/\*/g,'\\*'),''),'')
		config.shadowTiddlers[this.target]=h+t;

		if (config.options.chkCookieManagerAddToAdvancedOptions===undefined)
			config.options.chkCookieManagerAddToAdvancedOptions=true;
		if (config.options.chkCookieManagerAddToAdvancedOptions)
			config.shadowTiddlers.AdvancedOptions+="\n!!CookieManager\n><<tiddler CookieManager>>";

		// add "cookies" backstage task
		if (config.tasks && !config.tasks.cookies) { // for TW2.2b3 or above
			config.tasks.cookies = {
				text: "cookies",
				tooltip: "manage cookie-based option settings",
				content: "{{groupbox{<<tiddler [["+this.target+"]]>>}}}"
			}
			config.backstageTasks.push("cookies");
		}
	},
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var span=createTiddlyElement(place,"span");
		span.innerHTML=(params[0]&&params[0].toLowerCase()=="button")?this.button:this.panel;
		this.setList(span.firstChild.list);
	},
	panel: '<form style="display:inline;margin:0;padding:0" onsubmit="return false"><!--\
		--><select style="width:99%" name="list" \
			onchange="this.form.val.value=this.value.length?config.options[this.value]:\'\';"><!--\
		--></select><br>\
		<input type="text" style="width:98%;margin:0;" name="val" title="enter an option value"><br>\
		<input type="button" style="width:33%;margin:0;" value="get" title="refresh list" \
			onclick="config.macros.cookieManager.setList(this.form.list);"><!--\
		--><input type="button" style="width:33%;margin:0;" value="set" title="save cookie value" \
			onclick="var cmc=config.macros.cookieManager;\
				var opt=this.form.list.value; var v=this.form.val.value; \
				var msg=opt+\' is a blocked cookie.  OK to proceed?\';\
				if ((!cmc.blockedCookies.contains(opt) && cmc.allowBrowserCookie(opt))||confirm(msg)) {\
					config.options[opt]=opt.substr(0,3)==\'txt\'?v:(v.toLowerCase()==\'true\'); \
					saveOptionCookie(opt);config.macros.cookieManager.setList(this.form.list);\
				}"><!--\
		--><input type="button" style="width:33%;margin:0;" value="del" title="remove cookie" \
			onclick="var cmc=config.macros.cookieManager; var opt=this.form.list.value; \
				var msg=opt+\' is a blocked cookie.  OK to proceed?\';\
				if ((!cmc.blockedCookies.contains(opt) && cmc.allowBrowserCookie(opt))||confirm(msg)) {\
					removeCookie(this.form.list.value,true); \
					cmc.setList(this.form.list);\
				}"><br>\
		<input type="button" style="width:50%;margin:0;" value="bake cookies" \
			title="save current cookie-based option values into a tiddler" \
			onclick="return config.macros.cookieManager.bake(this,false)"><!--\
		--><input type="button" style="width:50%;margin:0;" value="bake all options" \
			title="save ALL option values (including NON-COOKIE values) into a tiddler" \
			onclick="return config.macros.cookieManager.bake(this,true)"><!--\
		--></form>\
	',
	button: '<form style="display:inline;margin:0;padding:0" onsubmit="return false"><!--\
		--><input type="button" style="margin:0;" value="bake cookies" \
			title="save current browser-based cookie values into a tiddler" \
			onclick="return config.macros.cookieManager.bake(this,false)"><!--\
		--></form>\
	',
	getCookieList: function() {
		var cookies = { };
		if (document.cookie != "") {
			var p = document.cookie.split("; ");
			for (var i=0; i < p.length; i++) {
				var pos=p[i].indexOf("=");
				if (pos==-1) cookies[p[i]]="";
				else cookies[p[i].substr(0,pos)]=unescape(p[i].slice(pos+1));
			}
		}
		var opt=new Array(); for (var i in config.options) if (cookies[i]) opt.push(i); opt.sort();
		return opt;
	},
	setList: function(list) {
		if (!list) return false;
		var opt=this.getCookieList();
		var sel=list.selectedIndex;
		while (list.options.length > 1) { list.options[1]=null; } // clear list (except for header item)
		list.options[0]=new Option("There are "+opt.length+" cookies...","",false,false);
		if (!opt.length) { list.form.val.value=""; return; } // no cookies
		var c=1;
		for(var i=0; i<opt.length; i++) {
			var txt="";
			if  (opt[i].substr(0,3)=="chk")
				txt+="["+(config.options[opt[i]]?"\u221A":"_")+"] ";
			txt+=opt[i];
			list.options[c++]=new Option(txt,opt[i],false,false);
		}
		list.selectedIndex=sel>0?sel:0;
		list.form.val.value=sel>0?config.options[list.options[sel].value]:"";
	},
	header:
		"/***\n"
		+"!!![[Baked cookies:|CookieManagerPlugin]]\n"
		+"^^Press {{smallform{<<cookieManager button>>}}} to save the current browser cookies... "
		+"then hand-edit this section to customize the results.^^\n"
		+"***/\n",
	format: function(name) {
		if (name.substr(0,3)=='chk')
			return '\tconfig.options["'+name+'"]='+(config.options[name]?'true;':'false;');
		return '\tconfig.options["'+name+'"]="'+config.options[name]+'";';
	},
	bake: function(here,all) {
		if (story.isDirty(this.target)) return false; // target is being hand-edited... do nothing
		var text=store.getTiddlerText(this.target);
		if (text.indexOf(this.header)==-1) {
			text+=this.header;
			displayMessage("CookieManager: added 'Baked Cookies' section to CookieJar");
		}
		var who=config.options.txtUserName;
		var when=new Date();
		var tags=['systemConfig'];
		var tid=store.getTiddler(this.target)||store.saveTiddler(this.target,this.target,text,who,when,tags,{});
		if (!tid) return false; // if no target... do nothing
		if (all) { 
			var opts=new Array();
			for (var i in config.options) if (i.substr(0,3)=='chk'||i.substr(0,3)=='txt') opts.push(i);
			opts.sort();
		}
		else var opts=this.getCookieList();
		var t=tid.text;
		if (t.indexOf(this.header)==-1) t+=this.header;
		t+='\n// '+opts.length+(all?' options':' cookies')+' saved ';
		t+=when.formatString('on DDD, MMM DDth YYYY at 0hh:0mm:0ss');
		t+=' by '+who+'//\n';
		t+='//^^(edit/remove username check and/or individual option settings as desired)^^//\n';
		t+='//{{{\n';
		t+='if (config.options.txtUserName=="'+who+'") {\n';
		for (i=0; i<opts.length; i++) t+=config.macros.cookieManager.format(opts[i])+"\n";
		t+='}\n//}}}\n';
		store.saveTiddler(this.target,this.target,t,who,when,tags,tid?tid.fields:{});
		story.displayTiddler(story.findContainingTiddler(this),this.target);
		story.refreshTiddler(this.target,null,true);
		var msg=opts.length+(all?' options':' cookies')+' have been saved in '+this.target+'.  ';
		msg+='Please review all stored settings.';
		displayMessage(msg);
		return false;
	}
}
//}}}
//{{{
// Hijack saveOptionCookie() to add cookie blocking and monitoring messages
config.macros.cookieManager.saveOptionCookie=saveOptionCookie;
window.saveOptionCookie=function(name,force)
{
	var cmc=config.macros.cookieManager; // abbrev
	if (force || ((config.options.chkAllowBrowserCookies || name=="chkAllowBrowserCookies")
		&& !cmc.blockedCookies.contains(name) && cmc.allowBrowserCookie(name))) {
		cmc.saveOptionCookie.apply(this,arguments);
		cmc.displayStatus(name+"="+config.options[name]);
	} else cmc.displayStatus("setting of '"+name+"' is blocked");
}

// if removeCookie() function is not defined by TW core, define it here.
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}

// ... and then hijack it to add cookie blocking and monitoring messages
config.macros.cookieManager.removeCookie=removeCookie;
window.removeCookie=function(name,force)
{
	var cmc=config.macros.cookieManager; // abbrev
	if (!cmc.getCookieList().contains(name))
		return; // not a current cookie!
	if (force || ((config.options.chkAllowBrowserCookies || name=="chkAllowBrowserCookies")
		&& !cmc.blockedCookies.contains(name) && cmc.allowBrowserCookie(name))) {
		cmc.removeCookie.apply(this,arguments);
		cmc.displayStatus("deleted "+name);
	} else cmc.displayStatus("deletion of '"+name+"' is blocked");
}
//}}}
/***
|Name|CookieManagerPluginConfig|
|Source|http://www.TiddlyTools.com/#CookieManagerPluginConfig|
|Requires|CookieManagerPlugin|
|Description|custom settings for [[CookieManagerPlugin]]|
!!!!!Browser Cookie Configuration:
***/
// // <<option chkAllowBrowserCookies>> store ~TiddlyWiki option settings using private browser cookies
// // <<option chkMonitorBrowserCookies>> monitor browser cookie activity (shows a message whenever a cookie is updated)
//{{{
// default settings:
config.options.chkAllowBrowserCookies=true;	// if FALSE, this blocks *all* cookies
config.options.chkMonitorBrowserCookies=false;
//}}}

// // Individual cookie names can be prevented from being created, modified, or deleted in your browser's stored cookies by adding them to the {{{config.macros.cookieManager.blockedCookies}}} array: 
//{{{
var bc=config.macros.cookieManager.blockedCookies; // abbreviation
bc.push("txtMainTab");			// TiddlyWiki:  SideBarTabs
bc.push("txtTOCSortBy");		// TiddlyTools: TableOfContentsPlugin
bc.push("txtCatalogTab");		// TiddlyTools: CatalogTabs
//}}}
// // You can also define a javascript test function that determines whether or not any particular cookie name should be blocked or allowed.  The following function should return FALSE if the browser cookie should be blocked, or TRUE if changes to the cookie should be allowed:
//{{{
config.macros.cookieManager.allowBrowserCookie=function(name) {
	// add tests based on specific cookie names and runtime conditions
	return true;
}
//}}}
/***
|Name|CookieSaverPlugin|
|Source|http://www.TiddlyTools.com/#CookieSaverPlugin|
|Version|1.1.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|automatically save TiddlyWiki cookie options to [[CookieJar]] tiddler for portable settings|
!!!!!Usage
<<<
Whenever TiddlyWiki option settings are changed, a browser-based cookie value is added, removed, or changed.  Each time this occurs, the CookieSaverPlugin generates an equivalent ''portable cookie'': a single line of javascript code that assigns a stored value directly to the specific TiddlyWiki internal config.options.* variable corresponding to the browser cookie with the same name.

The portable cookies are automatically written into a tiddler named [[CookieJar]] that is tagged with<<tag systemConfig>>so that their values will be applied as soon as the document is saved and reloaded.  You can change or delete an individual portable cookie by editing the contents of the [[CookieJar]] and removing the appropriate line of javascript from the tiddler source code.  Note: editing the portable cookie definitions does not alter the values of any corresponding browser cookies, nor does it update the internal value that is in use within the current TiddlyWiki document session.  Changes made directly to the [[CookieJar]] are only applied after saving and reloading the document.  In any case, whenever a browser cookie value is updated, any modifications you made to the equivalent portable cookie are immediately rewritten to reflect the current browser cookie value.

Browser cookies are, obviously, stored with your browser... and are kept separate from the document itself.  In contrast, because your portable cookies are stored in a [[CookieJar]] within the document, they remain part of that document.

When the document is copied and shared with others, each copy includes the [[CookieJar]] containing //your// stored portable cookies.  Fortunately, CookieSaverPlugin can generate and maintain several separate sets of portable cookies in the same [[CookieJar]] tiddler, where each set is associated with a different TiddlyWiki username.  As long as other readers have not chosen the same username, your portable cookie values will not be automatically applied when they are reading the document.  Rather, as they interact with the document, a new set of portable cookies, associated with //their// username, will be automatically added to the [[CookieJar]].

In addition to tracking and applying separate portable cookies for each user, CookieSaverPlugin can also be configured so that sensitive data (such as internal URLs, email addresses, login IDs and passwords, etc.) will never be inadvertently stored in the [[CookieJar]].  To achieve this, you can selectively prevent specific cookienames from being used as portable cookies by placing a special javascript function definition in a tiddler named [[CookieSaverPluginConfig]], tagged with 'systemConfig':
{{{
config.macros.cookieSaver.allowPortableCookie=function(name){
	if ( ... some test using 'name' ...) return false;
	if ( ... another test with 'name' ...) return true;
	etc.
	return true;  // default=allow
}
}}}
The allowPortableCookie() function offers a flexible method for plugin developers and other technically skilled document authors to implement their own custom-defined, application-specific cookie data protection by applying sophisticated logic for deciding which cookies should be allowed or blocked based on variety of different conditions.  The basic operation of this function is to accept a cookie name as text input, apply some tests based on that cookie name (combined with any other useful criteria), and then return //true// if saving the portable cookie should be permitted, or //false// if the cookie should be excluded from the [[CookieJar]].

Unfortunately, although the technical expertise needed to write this test function is relatively minor, the level of programming ability that is needed can nonetheless be beyond the skills that many people possess.  To help address this, CookieSaverPlugin also supports an alternative syntax that allows you to define a simple array of cookie names that is used by the plugin to automatically block the indicated names from being included as portable cookies in the [[CookieJar]].  The array definition syntax looks like this:
{{{
// define a complete set of blocked cookie names
config.macros.cookieSaver.blockedCookies=['cookie','cookie','cookie',etc...];
}}}
or
{{{
// add individual cookies names to the current set of blocked cookies
config.macros.cookieSaver.blockedCookies.push('cookie');
config.macros.cookieSaver.blockedCookies.push('cookie');
etc...
}}}
Note: the allowPortableCookie() function and the blockedCookies[] array are only used to limit the creation of portable cookies within the [[CookieJar]], and are //not// applied when creating normal browser cookies.  Thus, regardless of whether or not a given portable cookie has been excluded or permitted, all the usual TiddlyWiki settings and internal state data can still be saved as secure, private, local browser cookies that are never made visible to others, even when the document is shared.
<<<
!!!!!Configuration
<<<
<<option chkPortableCookies>> allow ~CookieSaver to store //''portable cookies''// in [[CookieJar]] tiddler
<<option chkMonitorCookieJar>> monitor ~CookieSaver activity (show messages whenever [[CookieJar]] is updated)
<<option chkCookieJarAddToAdvancedOptions>> display [[CookieJar]] in [[AdvancedOptions]]
^^//note: changing this setting does not take effect until you reload the document//^^
<<<
!!!!!Revisions
<<<
2009.08.05 [1.1.0] changed CookieJar output format to support odd symbols in option names (e.g. '@')
2008.09.11 [1.0.2] automatically add portable cookies header to existing CookieJar (if any).  Also, added chkMonitorCookieJar option to display CookieJar activity messages
2008.09.10 [1.0.1] documentation, code cleanup, improvements in 'allowPortableCookie()' function handling
2008.09.09 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.CookieSaverPlugin= {major: 1, minor: 1, revision: 0, date: new Date(2009,8,5)};

config.macros.cookieSaver = {
	target:
		config.options.txtCookieJar||"CookieJar",
	init: function() {
		if (config.options.chkPortableCookies===undefined)
			config.options.chkPortableCookies=false;
		if (config.options.txtCookieJar===undefined)
			config.options.txtCookieJar=this.target;
		if (config.options.chkCookieJarAddToAdvancedOptions===undefined)
			config.options.chkCookieJarAddToAdvancedOptions=true;
		if (config.options.chkCookieJarAddToAdvancedOptions)
			config.shadowTiddlers.AdvancedOptions+="\n!!%0\n><<tiddler [[%0]]>>".format([this.target]);
		if (config.options.chkMonitorCookieJar===undefined)
			config.options.chkMonitorCookieJar=false;

		// add empty Portable Cookies section to shadow CookieJar
		var h="/***\n<<tiddler CookieManager>>\n***/\n";
		var t=(config.shadowTiddlers[this.target]||"").replace(new RegExp(h.replace(/\*/g,'\\*'),''),'')
		config.shadowTiddlers[this.target]=this.header+this.footer+t;

		// add empty Portable Cookies section to real CookieJar (if one exists)
		if (store.tiddlerExists(this.target) && !readOnly) {
			var tid=this.get(this.target);
			var t=tid.text;
			if (t.indexOf(this.header)==-1){
				t=this.header+this.footer+t.replace(new RegExp(h.replace(/\*/g,'\\*'),''),'');
				var who=config.options.chkForceMinorUpdate?tid.modifier:config.options.txtUserName;
				var when=config.options.chkForceMinorUpdate?tid.modified:new Date();
				store.saveTiddler(tid.title,tid.title,t,who,when,tid.tags,tid.fields);
				displayMessage("CookieSaver: added 'Portable Cookies' section to CookieJar");
			}
		}

		// add "cookies" backstage task
		if (config.tasks && !config.tasks.cookies) { // for TW2.2b3 or above
			config.tasks.cookies = {
				text: "cookies",
				tooltip: "manage cookie-based option settings",
				content: "{{groupbox{<<tiddler CookieManager>><<tiddler [[%0]]>>}}}".format([this.target])
			}
			config.backstageTasks.push("cookies");
		}
	},
	header:
		 "/***\n<<tiddler CookieManager>>\n***/\n"
		+"/***\n"
		+"!!![[Portable cookies:|CookieSaverPlugin]] "
		+"{{fine{<<option chkPortableCookies>>enable <<option chkMonitorCookieJar>>monitor}}}\n"
		+"^^This section is ''//__automatically maintained__//'' by [[CookieSaverPlugin]].  "
		+"To block specific cookies, see [[CookieSaverPluginConfig]].^^\n"
		+"***/\n",
	startUser:
		 "//{{{\n"
		+"if (config.options.txtUserName==\"%0\" && config.options.chkPortableCookies) {",
	endUser:
		"\n}\n//}}}\n",
	footer:
		"// // /% end portable cookies %/\n",
	get: function(tid) { // create or retrieve tiddler
		if (story.isDirty(tid)) return null; // tiddler is being hand-edited... leave it alone.
		var text=config.shadowTiddlers[this.target];
		var who=config.options.txtUserName;
		var when=new Date();
		var tags=['systemConfig'];
		return store.getTiddler(tid)||store.saveTiddler(tid,tid,text,who,when,tags,{});
	},
	format: function(name) {
		if (name.substr(0,3)=='chk')
			return '\tconfig.options["'+name+'"]='+(config.options[name]?'true;':'false;');
		return '\tconfig.options["'+name+'"]="'+config.options[name]+'";';
	},
	blockedCookies: [],
	allowPortableCookie: function(name) {
		return true;
	},
	set: function(name) {
		if (!name||!name.trim().length) return;
		if (name=='txtUserName' || this.blockedCookies.contains(name) || !this.allowPortableCookie(name)) {
			if (config.options.chkMonitorCookieJar && !startingUp)
				displayMessage("CookieJar: blocked '"+name+"'");
			return false; // don't save excluded cookies
		}
		var tid=this.get(this.target);
		if (!tid) return false; // if no tiddler... do nothing
		var t=tid.text;
		if (t.indexOf(this.header)==-1) {  // re-add Portable Cookies section if it was deleted by hand edit
			var h="/***\n<<tiddler CookieManager>>\n***/\n";
			t=this.header+this.footer+t.replace(new RegExp(h.replace(/\*/g,'\\*'),''),'');
		}
		var who=config.options.txtUserName;
		var when=new Date();
		var startmark=this.startUser.format([who]);
		var endmark=this.endUser;
		var startpos=t.indexOf(startmark);
		if (startpos==-1) { // insert new user (just before footer)
			if (config.options.chkMonitorCookieJar && !startingUp)
				displayMessage("CookieJar: added new user '"+who+"'");
			var addpos=t.indexOf(this.footer); if (addpos==-1) addpos=t.length;
			t=t.substr(0,addpos)+startmark+endmark+t.substr(addpos);
			startpos=addpos;
		}
		startpos+=startmark.length;
		var endpos=t.indexOf(endmark,startpos);
		var pre=t.substr(0,startpos);
		var lines=t.substring(startpos,endpos).split('\n');
		var post=t.substr(endpos);
		var code=this.format(name);
		var match='\tconfig.options["'+name+'"]=';
		var found=false; var changed=false;
		for (var i=0; i<lines.length; i++) { // find and replace existing setting
			if (lines[i].substr(0,match.length)==match) {
				found=true;
				if (changed=lines[i]!=code) lines[i]=code; // replace value
				if (config.options.chkMonitorCookieJar && !startingUp && changed)
					displayMessage("CookieJar: "+code);
			}
		}
		if (!found && code.length) { // OR, add new setting
			lines[lines.length]=code;
			if (config.options.chkMonitorCookieJar && !startingUp)
				displayMessage("CookieJar: "+code);
		}
		if (found && !changed) return; // don't alter tiddler unless necessary
		t=pre+lines.join('\n')+post;
		var who=config.options.chkForceMinorUpdate?tid.modifier:config.options.txtUserName;
		var when=config.options.chkForceMinorUpdate?tid.modified:new Date();
		store.saveTiddler(this.target,this.target,t,who,when,tid.tags,tid.fields);
		story.refreshTiddler(this.target,null,true);
	},
	remove: function(name) {
		if (!name||!name.trim().length) return;
		var who=config.options.txtUserName;
		var when=new Date();
		var tid=store.getTiddler(this.target);
		if (!tid) return false; // if no tiddler... do nothing
		var t=tid.text;
		var who=config.options.txtUserName
		var startmark=this.startUser.format([who]);
		var endmark=this.endUser;
		var startpos=t.indexOf(startmark);
		if (startpos==-1) return false; // no such user... do nothing
		startpos+=startmark.length;
		var endpos=t.indexOf(endmark,startpos);
		var pre=t.substr(0,startpos);
		var lines=t.substring(startpos,endpos).split('\n');
		var post=t.substr(endpos);
		var match='\tconfig.options["'+name+'"]';
		var found=false; var changed=false;
		for (var i=0; i<lines.length; i++) { // find and remove setting
			if (lines[i].substr(0,match.length)==match) {
				lines.splice(i,1);
				changed=true;
				if (config.options.chkMonitorCookieJar && !startingUp)
					displayMessage("CookieJar: deleted '"+name+"'");
				break;
			}
		}
		if (!changed) return; // not found... do nothing
		t=pre+lines.join('\n')+post;
		if (lines.length==1) { // no cookies left, remove user
			t=pre.substr(0,pre.length-startmark.length)+post.substr(endmark.length);
			if (config.options.chkMonitorCookieJar && !startingUp)
				displayMessage("CookieJar: removed user '"+who+"'");
		}
		var who=config.options.chkForceMinorUpdate?tid.modifier:config.options.txtUserName;
		var when=config.options.chkForceMinorUpdate?tid.modified:new Date();
		store.saveTiddler(this.target,this.target,t,who,when,tid.tags,tid.fields);
		story.refreshTiddler(this.target,null,true);
	}
}
//}}}
//{{{
// Hijack saveOptionCookie() to add CookieSaver processing
config.macros.cookieSaver.saveOptionCookie=saveOptionCookie;
window.saveOptionCookie=function(name)
{
	config.macros.cookieSaver.saveOptionCookie.apply(this,arguments);
	if (!readOnly && (config.options.chkPortableCookies || name=="chkPortableCookies"))
		config.macros.cookieSaver.set(name);
}
// if removeCookie() function is not defined by TW core, define it here.
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}
// ... and then hijack it to also remove any corresponding PortableCookie
config.macros.cookieSaver.removeCookie=removeCookie;
window.removeCookie=function(name)
{
	if (config.options.chkPortableCookies && !readOnly)
		config.macros.cookieSaver.remove(name);
	config.macros.cookieSaver.removeCookie.apply(this,arguments);
}
//}}}
/***
|Name|CookieSaverPluginConfig|
|Source|http://www.TiddlyTools.com/#CookieSaverPluginConfig|
|Requires|CookieSaverPlugin|
|Description|custom settings for [[CookieSaverPlugin]]|
!!!!!Portable Cookie Configuration:
***/
// // <<option chkPortableCookies>> allow ~CookieSaver to store //''portable cookies''// in [[CookieJar]] tiddler
// // <<option chkMonitorCookieJar>> monitor ~CookieSaver activity (show messages whenever [[CookieJar]] is updated)
//{{{
// default to these settings:
// config.options.chkPortableCookies=false;	// when FALSE this blocks ALL portable cookies
// config.options.chkMonitorCookieJar=false;
//}}}

// // Individual cookie names can be added to the {{{config.macros.cookieSaver.blockedCookies}}} array to prevent them from being stored in the [[CookieJar]].
//{{{
var bc=config.macros.cookieSaver.blockedCookies;
bc.push("chkBackstage");		// core
bc.push("txtMainTab");			// TiddlyWiki: SideBarTabs
bc.push("txtTOCSortBy");		// TiddlyTools: TableOfContentsPlugin
bc.push("txtCatalogTab");		// TiddlyTools: CatalogTabs
bc.push("txtUploadFilename");		// BidiX: UploadPlugin
bc.push("txtUploadDir");		// BidiX: UploadPlugin
bc.push("pasPassword");			// BidiX: UploadPlugin
bc.push("pasUploadPassword");		// BidiX: UploadPlugin
//}}}
// // You can also define a javascript test function that determines whether or not any particular cookie name should be stored in the [[CookieJar]].  The following function should return FALSE if the portable cookie should be blocked, or TRUE if the cookie should be allowed:
//{{{
config.macros.cookieSaver.allowPortableCookie=function(name) {
	// add tests based on specific cookie names and runtime conditions
	if (name.substr(0,9)=="chkSlider") 	return false;	// NestedSlidersPlugin
	if (name.substr(0,13)=="txtFirstVisit")	return false;	// VisitCounter
	if (name.substr(0,12)=="txtLastVisit")	return false;	// VisitCounter
	if (name.substr(0,13)=="txtVisitCount")	return false;	// VisitCounter
	return true;
}
//}}}
Tak, to prawda, ale... :)

Idealna sieć komputerowa powinna być szybka, niezawodna i tania, niestety w rzeczywistości da się spełnić tylko dwa z tych warunków. Jak to wygląda w przypadku ~WiFi?
!!Szybkość
Standardowe dziś okablowanie miedziane podłączone do gigabitowego przełącznika zapewnia prędkość 1 Gbit/s dla każdego przyłączonego komputera. Przy starszym przełączniku typu fast ethernet jest to 100 Mbit/s. Punkt dostępowy ~WiFi nowoczesnego standardu 802.11n zapewnia prędkość 300 Mbit/s brutto (efektywnie 150 Mbit/s) ''łącznie'' dla wszystkich podłączonych do niego komputerów. Podobnie jest w przypadku starszego standardu 802.11g o prędkości 54 Mbit/s (efektywnie 22 Mbit/s). 
Oznacza to, że jeśli chcemy zachować wydajność starej sieci fast ethernet i zastąpić ją ~WiFi, to należałoby zastosować osobny punkt dostępowy 802.11n dla każdych 2 komputerów. 
!!Koszt
Przy większej ilości punktów ~WiFi nie da się stosować tanich urządzeń klasy SOHO po 100 zł, niezbędne są urządzenia klasy korporacyjnej (takie jak te, które pracują w sieci eduroam USK PK), a one kosztują 10 - 20 razy więcej. Trzeba też do nich doprowadzić kable, by podłączyć je do przełącznika.
!!Niezawodność
~WiFi to technologia radiowa. Kosztem zastosowania dużej ilości punktów dostępowych można uniknąć problemów z propagacją i uzyskać dobry sygnał we wszystkich pomieszczeniach. Jak się jednak zabezpieczyć przed kimś, kto umieszczoną w kieszeni czy torbie zagłuszarką-zabawką zechce zablokować sieć w całym budynku?
!!Po co więc ~WiFi?
Dla wygody. W warunkach uczelni technicznej i wszędzie tam, gdzie intensywnie przesyła się duże ilości danych ~WiFi wprawdzie nie jest w stanie zastąpić porządnej sieci strukturalnej, ale jest jej niezbędnym uzupełnieniem. Pozwala wygodnie korzystać ze stosunkowo szybkiego dostępu do sieci za pomocą urządzeń przenośnych - telefonów, tabletów, netbooków, notebooków itd.
Zasada ograniczonego zaufania dla administratorów:
# Użytkownik zawsze łże.
# Jeśli użytkownik jest kompetentny, szczery i stara się pomóc administratorowi, to i tak łże.
# Z punktu widzenia tej zasady administrator niższego szczebla jest użytkownikem.
# Użytkownik zawsze ma rację.
Czyli: jeśli jesteś administratorem, a użytkownik zawraca Ci głowę, to znaczy że ma ''jakiś'' problem - niekoniecznie ten, o którym mówi:)
Nie licz na to, że użytkownik potrafi sam ten problem zdiagnozować - byłbyś wtedy zbędny:) 
[[Menu]]
[[Uważaj na listy wyłudzające hasła!]]
[[Lokalizacja odwiedzających tę witrynę]]
Na obu głównych serwerach pocztowych PK, tzn. na riadzie na Warszawskiej i poboksie na Czyżynach, podobnie jak np. w onecie, działa tzw. greylisting. Jest to zabezpieczenie antyspamowe, które czasami może opóźniać odebranie listu. 

Pierwszy list w relacji nadawcaX->odbiorcaY jest odbierany dopiero wtedy, gdy serwer nadawcy powtórzy próbę doręczenia. To powtórzenie może nastąpić pół godziny po nadaniu listu albo dopiero po paru godzinach, zależnie od konfiguracji serwera nadawcy. Po odebraniu listu serwer zapamiętuje trójkę: serwer_nadawcy/nadawcaX/odbiorcaY i jeśli w ciągu paru dni (na Warszawskiej) lub nawet miesiąca (na Czyżynach) list z taką trójką znów się pojawi, to zostanie odebrany od razu.

Oba główne serwery pocztowe PK nie stosują greylistingu między sobą - tzn. list Warszawska -> Czyżyny jest odbierany natychmiast. Począwszy od końca marca 2011 również list Czyżyny -> Warszawska jest odbierany od razu. Pobox bez opóźnień odbiera pocztę od wielu popularnych serwerów, np. Gmail i Yahoo!; ta lista może zostać rozszerzona o inne serwery, jeśli użytkownicy zgłoszą taka potrzebę.

Należy pamiętać, że:
* poczta i jej protokół sieciowy SMTP nie służy do natychmiastowej komunikacji - do tego są komunikatory, np. gadu-gadu itp. Serwery poczty zwykle wysyłają nadawcy ostrzeżenie po 4 godzinach, jeśli listu nie udało im się jeszcze wysłać, a potem po kilku dniach, jeśli kolejne próby wysłania były bezskuteczne i niedoręczony list jest usuwany z kolejki serwera. List nie ma prawa zniknąć bez śladu, ale ma prawo wędrować nawet kilka dni.
* poczta i SMTP nie służy do przesyłania ogromnych plików - do tego są protokoły FTP i HTTP.

Zabezpieczenie CAPTCHA zostało wprowadzone po tym, jak użytkownicy otrzymali list z prośbą o przesłanie loginu i hasła. Choć trudno w to uwierzyć, to okazało się, że wielu spełniło tę prośbę, mimo że list był ewidentnym przykładem [[phishingu|Phishing]], był niechlujnie, automatycznie przełożony na polski itd. Zdobyte w ten sposób hasła są często wykorzystywane przez automaty, które rozsyłają spam przez webmaila - zostało więc wprowadzone zabezpieczenie, które to uniemożliwia. Byłoby zbędne, gdyby nikt na takie listy nie odpowiadał.
''W konkursie [[Dropbox Puchar Akademicki|https://www.dropbox.com/campuscup?referrer=NTgzMjU4]] UJ zdobył już 15 GB, a PK  dopiero 3:(
[[Popraw nasz wynik!|https://www.dropbox.com/campuscup?referrer=NTgzMjU4]]''
Jeśli masz już konto Dropbox, zarejestruj swój adres w domenie pk.edu.pl na stronie [[Dropbox Puchar Akademicki|https://www.dropbox.com/campuscup?referrer=NTgzMjU4]] (max 25 GB/2 lata).
!Uwaga: trwa modernizacja sieci Eduroam ~WiFi PK Czyżyny - mogą wystąpić problemy z dostępem do sieci!

[img[eduroam logo|http://eduroam.pk.edu.pl/images/ban03.png][http://eduroam.pk.edu.pl]]
Sieć bezprzewodowa wifi eduroam jest dostępna w następujących [[budynkach PK w Czyżynach|http://www.mech.pk.edu.pl/~podzial/stacjonarne/pdf/oznaczenia_budynkow.jpg]]:
* A (bud. główny),
* B,
* E (hala laboratorium) - część wschodnia,
* G (hamownia)
* J,
* K,
* L.
Do korzystania z eduroam niezbędny jest [[osobisty certyfikat|Konta pocztowe dla studentów i doktorantów, certyfikaty]].

Wiecej informacji o eduroam i konfiguracja Windows: http://eduroam.pk.edu.pl/

[[Jak skonfigurować WPA-Enterprise w Windows 8.1?]]

[[Jak podłączyć do sieci eduroam telefon komórkowy/tablet z WiFi?]]
''Masz pytanie? [[Napisz!|Kontakt]]''
!!!Poczta
* [[Jak uzyskać konto pracownicze?|Konta pocztowe dla pracowników PK]]
* [[Jak uzyskać konto studenckie?|Konta pocztowe dla studentów i doktorantów, certyfikaty]]
* [[Co to jest phishing?|Phishing]]
* [[Dlaczego przy logowaniu do webmaila trzeba wpisać słowa z obrazka?]]
* [[Jak skonfigurować program pocztowy?|Konfiguracja serwera i programów pocztowych do obsługi konta @mech.pk.edu.pl]]
* [[Jak utworzyć dobre hasło?|http://imgs.xkcd.com/comics/password_strength.png]]
* [[Dlaczego poczta czasem działa powoli?]]
* [[Skrzynka pocztowa przepełniła się - co się stało z odbitą pocztą?]]
* [[Jak odczytać załącznik winmail.dat/win.dat?]]
!!!Sieć
* [[Co wolno ściągać z Internetu?|http://www.bounceapp.com/posts/new?screen_id=310125]]
* [[Jak podłączyć komputer do sieci przewodowej w Czyżynach?]]
* [[Jak skonfigurować komputer z Windows?]]
* [[Czy to prawda, że można zrezygnować z sieci kablowej i zastąpić ją WiFi?]]
* [[Lokalizacja odwiedzających tę witrynę]]
* [[Budynki kampusu PK w Czyżynach|http://mech.pk.edu.pl/wp-content/uploads/2009/09/oznaczenia_budynkow.jpg]]
!!!Eduroam i certyfikaty
* [[Problemy z wystawieniem, przedłużeniem lub instalacją certyfikatu]]
* [[Jak podłączyć komputer do sieci eduroam?|http://eduroam.pk.edu.pl/index.php/konfiguracja]]
* [[Jak skonfigurować WPA-Enterprise w Windows 8.1?]]
* [[Jak podłączyć do sieci eduroam telefon komórkowy/tablet z WiFi?]]
* [[Jak podłączyć do sieci eduroam urządzenie z systemem Android?]]
* [[Jak podłączyć do sieci eduroam urządzenie z systemem iOS?]]
* [[Jak podłączyć do sieci eduroam telefon komórkowy z systemem Symbian?]]
!!!Oprogramowanie
* [[Jak uzyskać oprogramowanie udostępnione studentom i pracownikom PK?|Oprogramowanie dla pracowników i studentów PK]]
!!!Pomoc
* [[Jak wykryć robaka Conficker?|http://four.cs.uni-bonn.de/fileadmin/user_upload/werner/cfdetector/]]
* [[Jak wykryć robaka DNSChanger?|http://www.dns-changer.eu/en/check.html]]
* [[Jak wykryć robaka ZeuS/Citadel?|http://www.scumware.org/citadelcheck/]]
* [[Jak usunąć wirusy?]]
* [[Kto może pomóc?]]
* [[Ile kosztuje godzina pracy inżyniera naprawiającego komputer?]]
* [[Czy wierzyć użytkownikowi?]]
Stawki według wyceny HP Polska z 13.03.2012, dotyczącej wymiany płyty głównej w komputerze klasy desktop:

|- robocizna za jedną godzinę pracy inżyniera (PN – PT 8:00 – 17:00)|''375.00 PLN''|
|- robocizna za jedną godzinę pracy inżyniera (poza godzinami pracy)|''700.00 PLN''|
|>|Powyższe ceny nie zawierają podatku VAT (23%).|
Winmail.dat lub win.dat to zwykle załącznik maila w formacie TNEF - jest to własny format Microsoft Outlook. W celu odczytania takiego załącznika bez użycia Outlooka należy użyć programu [[Winmail Opener|http://www.eolsoft.com/freeware/winmail_opener/]] lub dodatku do Thunderbirda ~LookOut. 

Instalacja ~LookOut w Thunderbirdzie - klikamy:
#Narzędzia,
#Dodatki,
#Pobierz dodatki,
#w wyszukiwarkę w prawym górnym rogu wpisujemy: ~LookOut,
#Zainstaluj.
Więcej informacji o TNEF można znaleźć w [[Wikipedii|http://en.wikipedia.org/wiki/TNEF]].
Konfiguracja systemu ''Symbian'':
* skopiować certyfikat do telefonu,
* zainstalować certyfikat:
** //Menu - Aplikacje - Biuro - Menedżer plików//, wybrać i kliknąć skopiowany certyfikat,
** podać to samo hasło, które było użyte przy składaniu wniosku o certyfikat na stronie www,
* zarejestrować sieć ''eduroam'' w telefonie:
** //Znaleziono sieci WLAN: 'eduroam' - Połącz//
* skonfigurować sieć ''eduroam'': 
** //Menu - Ustawienia - Łączność - Sieci docelowe - Internet - eduroam//:
** //Typ zabezpieczeń WLAN: WPA/~WPA2//
** //Ustawienia zabezpieczeń WLAN//:
*** //WPA/~WPA2: EAP//,
*** //Ustawienia EAP plug-in//:
**** zaznaczyć //~EAP-TLS//, odznaczyć pozostałe protokoły i wejść do menu //~EAP-TLS//:
***** //Certyfikat osobisty// - wybrać swój certyfikat,
***** //Certyfikat autoryzacji//: //Politechnika Krakowska Root CA//,
***** //Nazwa użytkownika w użyciu//: //Ustalona przez użytkownika//,
***** //Nazwa użytkownika//: należy wpisać ''nazwę użytkownika'' z tego adresu email, dla którego został wystawiony certyfikat, np. nazwisko albo imie.nazwisko itp. (czyli część adresu przed znakiem @),
***** //Domena w użyciu//: //Ustalona przez użytkownika//,
***** //Dziedzina//: należy wpisać ''adres domeny email'' użytkownika, dla którego został wystawiony certyfikat, np. student.pk.edu.pl albo mech.pk.edu.pl itp.
*** //Tylko tryb ~WPA2: Nie//.
Urządzenie wyposażone w ~WiFi może działać w sieci [[eduroam|Eduroam WiFi PK]] podobnie jak komputer.

Żeby go podłączyć, należy zainstalować na nim certyfikat - zwykle w tym celu wystarczy wybrać certyfikat w menedżerze plików. Konieczne ustawienia to ''WPA Enterprise, TKIP, ~EAP-TLS'' (uwaga: TTLS to zupełnie inny protokół niż TLS:)).

Telefony z systemem ''Samsung Bada'' (również w wersji Bada 2.0) i ''Windows Phone 7'' aktualnie nie obsługują protokołu ~EAP-TLS i dlatego bez dodatkowego oprogramowania na razie nie da się ich podłączyć do eduroam.

[[Jak podłączyć do sieci eduroam urządzenie z systemem Android?]]
[[Jak podłączyć do sieci eduroam urządzenie z systemem iOS?]]
[[Jak podłączyć do sieci eduroam telefon komórkowy z systemem Symbian?]]
''UWAGA: sieć Eduroam ~WiFi PK nie jest jeszcze zgodna z systemem Android 4.2.2 i nowszymi. Trwają prace modernizacyjne.''

Konfiguracja systemu Android:
* skopiować plik .p12 certyfikatu do tego folderu urządzenia, który ''PC widzi jako główny'', czyli głównego folderu karty SD. W przypadku systemu Android 4 plik certyfikatu należy skopiować do folderu ''download'' w pamięci wewnętrznej urządzenia, trzeba też włączyć blokowanie ekranu; odblokowanie wygaszonego ekranu będzie odtąd wymagać narysowania symbolu, podania ~PINu lub hasła. Jeśli nie włączymy blokowania, to system nie pozwoli nam zainstalować certyfikatu,
* zainstalować certyfikat: 
** //Ustawienia - Zabezpieczenia - Zainstaluj z karty pamięci SD//,
** podać hasło, którym zaszyfrowano certyfikat - jest to to samo hasło, które podano przy składaniu [[wniosku|https://cert.pk.edu.pl]] o certyfikat,
** jeśli padnie kolejne pytanie o inne hasło - hasło przechowywania poświadczeń, to należy wpisać je raz, a jeśli nie było dotąd ustawione, to dwukrotnie. Hasło należy sobie ''zapamiętać'', bo Android będzie nim szyfrował poufne informacje,
** niektóre wersje Androida po instalacji ''usuwają'' plik certyfikatu,/%** jeśli Android ignoruje certyfikat, to przed instalacją własnego certyfikatu należy w analogiczny sposób zainstalować główny certyfikat PK [[cacert.crt|http://www.pk.edu.pl/certpk/cacert.crt]],%/
* skonfigurować sieć [[eduroam|Eduroam WiFi PK]]: 
** //Ustawienia - Sieci zwykłe i bezprzewodowe(Komunikacja) - Ustawienia ~Wi-Fi - eduroam - Polącz z eduroam//
** //Zabezpieczenia: Enterprise (802.1x) - Metoda EAP: TLS//
** //Etap 2 uwierzytelniania: Brak//
** //Certyfikat urzędu certyfikacji CA: Radius - Certyfikat klienta: Radius//
** jako //Tożsamość// należy wpisać ten adres email, dla którego został wystawiony certyfikat - w innym wypadku eduroam nie będzie działać poza PK,
** //Tożsamość anonimowa// pozostawić puste.
Konfiguracja systemu ''iOS'':
* skopiować certyfikat do urządzenia za pomocą iFiles, innego menedżera plików albo maila,
* otworzyć plik certyfikatu i w ten sposób zainstalować go: 
** podać to samo hasło, które było użyte przy składaniu [[wniosku|https://cert.pk.edu.pl]] o certyfikat,
* skonfigurować sieć [[eduroam|Eduroam WiFi PK]]: //Ustawienia -  ~Wi-Fi - eduroam//: 
** //Tryb: Automatycznie// zmienić na //~EAP-TLS//,
** jako //Tożsamość// zaznaczyć uprzednio zainstalowany certyfikat,
** //Połącz//,
** pojawi się pytanie o certyfikat: //Uwierzytelnianie serwera pobox.pk.edu.pl//; należy wybrać //Przyjmij//.
Wszystkie komputery podłączone do sieci w Czyżynach powinny korzystać z serwera DHCP USK PK, na którym są zarejestrowane ich stałe adresy IP. Komputery są zawsze rejestrowane w dhcp, nawet te skonfigurowane statycznie, np. serwery, a dopiero z DHCP generowany jest DNS.

Przed podłączeniem nowego komputera do sieci [[administrator jednostki|https://sip.pk.edu.pl/index.php?option=com_wrapper&Itemid=202]] przesyła jego dane, tworząc zgłoszenie w kolejce "Funkcjonowanie sieci" systemu [[helpdesk.pk.edu.pl|https://helpdesk.pk.edu.pl]]. Podając dane należy pamiętać o:
* aktualizacji danych wcześniej zarejestrowanych komputerów własnej jednostki, a zwłaszcza o usuwaniu wpisów komputerów już nieużywanych,
* zachowaniu formatu:
** w linii danych po słowie kluczowym ''host'' nazwa komputera, jego adres MAC (z dwukropkami jak widać poniżej, a nie z myślnikami jako separatorami kolejnych bajtów) i IP,
** w linii komentarza po znaku # oddzielone przecinkami:
***symbol jednostki organizacyjnej M-xx (ale nie jej nazwa),
***rodzaj komputera,
***system operacyjny,
***osoba odpowiedzialna, jej telefon,
***fizyczna lokalizacja komputera (a nie osoby): budynek pomieszczenie, nr gniazda (jeśli istnieje).
:Przykład dla komputera blaszak.mech.pk.edu.pl poniżej:
{{{
host blaszak { hardware ethernet 00:0e:a6:f4:00:59 ; fixed-address 149.156.156.46 ; }
# M-991, PD3GHz, W10, Munarski Adam, tel. 3999, pom. A153, gn. 7.7/77
}}}
* zachowaniu ciągłości przysyłanego obszaru, jeśli komputerów jest kilka (oczywiście tylko wtedy, gdy to możliwe, tzn. nie należy wpisywać komputerów innej jednostki).
Zgłoszenie jw. musi pochodzić od osoby wymienionej na [[liście administratorów sieci lokalnych jednostek PK|https://sip.pk.edu.pl/index.php?option=com_wrapper&Itemid=202]], czyli od osoby zgłoszonej jako administrator przez kierownictwo jednostki do Działu Informatyzacji PK.
Windows 8.1 obsługuje ~WPA-Enterprise, ale narzędzia do konfiguracji usunięto z graficznego interfejsu użytkownika. ~WPA-Enterprise można skonfigurować korzystając z [[linii komend|https://social.technet.microsoft.com/Forums/en-US/290c63b4-ce04-4483-a047-e1000c7d7699/wpa-security-types-are-missing-after-upgrading-to-windows-81?forum=w8itpronetworking]] albo z graficznego programu freeware [[WiFi Profile Manager 8|http://www.thewindowsclub.com/downloads/WFPM8.zip]].

Student WM PK Damian Pietrzyk opracował szczegółowy [[poradnik|http://justdiscoverit.blogspot.com/2014/04/konfiguracja-sieci-eduroam-pk-na.html]] na ten temat.
obudowa chłodzenie
MB switche
MB kable (USB!)
MB karty/sloty - przerwania
Firmware: MB, VGA, HDC, HDD, DVD
MB bios setup - AHCI, SMART
Win ew. nlite
DEP
ie
office
ms update
NTP ntp.certum.pl vega.cbk.poznan.pl
opendns
drivery mb, video, audio itd.
HW monitoring
page/ultra defrag
ms virt cd?
drukarki
uzytkownicy
commander
firefox adblock+ site advisor httpsev.
flash
thunderbird filter inout kolab qtext
reader
infrarecorder
java
open office
spybot
antywirus
google: earth picasa
vlc
keepass
putty
tightvnc
nx
legalis
USB Vaccine
kadu
Secunia PSI
Rezydentny antywirus czasami coś przepuszcza, np. wtedy, gdy jeszcze nie zna nowego wirusa albo gdy jest zbyt liberalnie skonfigurowany. Jeżeli już dojdzie do infekcji i wirus ukryje się w systemie, to jego usunięcie podczas pracy tego systemu bywa niemożliwe. Wówczas przydaje się niezależny od systemu operacyjnego, samodzielny antywirus.

Poniższe strony zawierają wykazy darmowych antywirusów w postaci płyty live CD - to znaczy narzędzi, które potrafią usuwać wirusy bez uruchamiania macierzystego, zarażonego systemu operacyjnego, w którym wirus się zagnieździł. Porównanie Aviry, ~F-Secure i Kasperskiego wypada na korzyść tego ostatniego, jeśli chodzi o wygodę użytkowania i skuteczność; natomiast ~F-Secure działa bezproblemowo na większej liczbie płyt głównych.

http://www.techmixer.com/free-bootable-antivirus-rescue-cds-download-list/

http://www.sarducd.it/antivirus.html
Serwer pocztowy [[www.student.pk.edu.pl|http://www.student.pk.edu.pl]] wymaga uwierzytelniania użytkownika zarówno przy odbieraniu, jak i przy wysyłaniu poczty. Do odbierania poczty można używać protokołu POP lub IMAP.

Protokół POP służy zwykle do przenoszenia wiadomości z serwera na lokalny komputer, co chroni skrzynkę pocztową na serwerze przed przepełnieniem. 
|serwer poczty przychodzącej POP:|pop3.student.pk.edu.pl|
|port:|995|
|zabezpieczenie połączenia:|SSL/TLS ew. SSL|
|metoda uwierzytelniania:|normalne hasło|
|nazwa użytkownika:|adres mailowy|

Protokół IMAP pozwala programowi pocztowemu zdalnie obsługiwać skrzynkę pocztową, wiadomości pozostają dostępne na serwerze.
|serwer poczty przychodzącej IMAP:|imap.student.pk.edu.pl|
|port:|993|
|zabezpieczenie połączenia:|SSL/TLS ew. SSL|
|metoda uwierzytelniania:|normalne hasło|
|nazwa użytkownika:|adres mailowy|

Protokół SMTP służy do wysyłania wiadomości.
|serwer poczty wychodzącej SMTP:|smtp.student.pk.edu.pl|
|port:|587|
|zabezpieczenie połączenia:|STARTTLS ew. TLS|
|metoda uwierzytelniania:|normalne hasło|
|nazwa użytkownika:|adres mailowy|
Na serwerze pocztowym ''pobox.pk.edu.pl'' można skonfigurować [[filtrowanie poczty i automatyczną odpowiedź|https://pobox.pk.edu.pl/cgi-bin/websieve.pl]].

Serwer ''pobox.pk.edu.pl'' wymaga uwierzytelniania użytkownika zarówno przy odbieraniu, jak i przy wysyłaniu poczty. Do odbierania poczty można używać protokołu POP lub IMAP.

Protokół POP służy zwykle do przenoszenia wiadomości z serwera na lokalny komputer, co chroni skrzynkę pocztową na serwerze przed przepełnieniem. 
|serwer poczty przychodzącej POP:|pobox.pk.edu.pl|
|port:|995|
|zabezpieczenie połączenia:|SSL/TLS ew. SSL|
|metoda uwierzytelniania:|normalne hasło|
|nazwa użytkownika:|sam login (adres mailowy bez @mech.pk.edu.pl)|

Protokół IMAP pozwala programowi pocztowemu zdalnie obsługiwać skrzynkę pocztową, wiadomości pozostają dostępne na serwerze.
|serwer poczty przychodzącej IMAP:|pobox.pk.edu.pl|
|port:|993|
|zabezpieczenie połączenia:|SSL/TLS ew. SSL|
|metoda uwierzytelniania:|normalne hasło|
|nazwa użytkownika:|sam login (adres mailowy bez @mech.pk.edu.pl)|

Protokół SMTP służy do wysyłania wiadomości.
|serwer poczty wychodzącej SMTP:|pobox.pk.edu.pl|
|port:|587|
|zabezpieczenie połączenia:|STARTTLS ew. TLS|
|metoda uwierzytelniania:|normalne hasło|
|nazwa użytkownika:|sam login (adres mailowy bez @mech.pk.edu.pl)|

Konfiguracja programów pocztowych do współpracy z serwerem pobox.pk.edu.pl jest analogiczna, jak do współpracy z serwerem [[mail.pk.edu.pl|http://www.pk.edu.pl/poczta_opis/]] - trzeba tylko pamiętać, że zamiast nazwy serwera mail.pk.edu.pl należy użyć pobox.pk.edu.pl, a w adresie zamiast @pk.edu.pl wpisać @mech.pk.edu.pl.
Wniosek o założenie konta pocztowego lub o zmianę hasła można złożyć za pomocą [[Strony Usług Sieciowych PK|https://sus.pk.edu.pl/]].

Login i hasło do powyższej strony są takie same, jak w [[Serwisie Informacyjnym Pracowników PK|https://sip.pk.edu.pl/]].

Jeśli się nie pamięta tego loginu i hasła, to "Instrukcja logowania i zmiany hasła" jest na [[stronie SIP|https://sip.pk.edu.pl/index.php?option=com_content&task=view&id=154&Itemid=79]].

Wniosek o założenie skrzynki pocztowej lub zmianę hasła do poczty składa się w drugim punkcie strony SUS: "Obsługa skrzynki pocztowej PK". 

Przed złożeniem wniosku o zmianę hasła trzeba sprawdzić, czy w spisie pracowników jest ustawiony właściwy dla PK adres. Można go zmienić w pierwszym punkcie strony SUS: "Edycja swoich danych osobowych publikowanych w książce adresowej".

Nowe konto lub podane hasło zostaną ustawione w ciągu 1 dnia roboczego.

Jeśli nowy pracownik jest zarejestrowany przez Dział Spraw Osobowych, a nie ma go jeszcze w Spisie pracowników, a co za tym idzie nie ma jeszcze dostępu do powyższych stron, to powinien skontaktować się z Działem Informatyzacji (tel. 2101).
Konta pocztowe dla ''studentów'' studiów I i II stopnia oraz studiów III stopnia (doktorantów) są zakładane na serwerze [[www.student.pk.edu.pl|http://www.student.pk.edu.pl]]. Konto jest związane z certyfikatem [[Eduroam WiFi PK]]. Jeśli chcą Państwo otrzymać certyfikat i konto, powinni Państwo wypełnić [[wniosek|https://cert.pk.edu.pl]].

''Pracownicy'' wypełniają ten sam [[wniosek|https://cert.pk.edu.pl]], by uzyskać certyfikat, natomiast konto pocztowe otrzymują za pomocą [[SIP|Konta pocztowe dla pracowników PK]].

Certyfikat jest ważny 5 lat. Przed wygaśnięciem należy złożyć wniosek o nowy. Studenckie konto pocztowe jest tworzone ''następnego dnia po odebraniu'' pierwszego certyfikatu.

Hasło, które podają Państwo składając [[wniosek|https://cert.pk.edu.pl]], należy ''zapamiętać'', bo certyfikat zostanie nim zaszyfrowany i trzeba je będzie podać przy instalacji certyfikatu. Dla studentów będzie ono również hasłem dostępu do poczty.

Państwa login na [[www.student.pk.edu.pl|http://www.student.pk.edu.pl]] to kompletny adres mailowy: Nazwisko.Imie@student.pk.edu.pl 
Uwaga: adres ani login nie zawierają polskich znaków diakrytycznych (np. ą, ę, ś, ć).

Adres mailowy konta kończy się .edu.pl, a więc oznacza użytkownika edukacyjnego - niektórzy producenci [[oprogramowania|Oprogramowanie dla pracowników i studentów PK]], np. [[Autodesk, producent AutoCADa|http://students.autodesk.com/]], wymagają posiadania takiego adresu od użytkowników [[wersji edukacyjnych|http://students.autodesk.com/]] ich programów. Na ten adres przesyłają klucze aktywacyjne.

[[Jak skorzystać z sieci Eduroam?|Eduroam WiFi PK]]

[[Problemy z wystawieniem, przedłużeniem lub instalacją certyfikatu]]
Adres mailowy, pod który można przesyłać pytania, jest analogiczny do adresu strony www tego serwisu - info.pk.edu.pl. Pierwszą kropkę, tę po "info", należy zamienić na znak @.

Pytania można też zadawać przez komunikator Gadu (albo lepiej [[Kadu|http://www.kadu.im/]]): 2331144.

Kontakt telefoniczny - tylko w sprawach pilnych: l2 62832O6 oraz 6Ol l45959.
W razie problemów z działaniem komputera lub sieci należy zwrócić się o pomoc do [[administratora swojej jednostki|https://sip.pk.edu.pl/index.php?option=com_wrapper&Itemid=202]], który - jeśli okaże się to konieczne - skontaktuje się z administratorem USK PK.
[img[Lokalizacja odwiedzających tę witrynę|http://www2.clustrmaps.com/stats/maps-no_clusters/pobox.pk.edu.pl-thumb.jpg][http://www2.clustrmaps.com/user/f17cd7a0]]
[[Poczta]]
[[WiFi|Eduroam WiFi PK]]
[[Certyfikaty|Konta pocztowe dla studentów i doktorantów, certyfikaty]]
[[Witryny WWW]]
[[FAQ|FAQ - pytania i odpowiedzi]]
[[Pogoda]]
[[Warto obejrzeć|Warto obejrzeć, warto przeczytać]]
[[Kontakt]]
[img[Poczta|128x128_korn.png][Poczta]][img[128x128_blank.png]][img[Eduroam WiFi PK|128x128_remote.png][Eduroam WiFi PK]][img[128x128_blank.png]][img[Certyfikaty|certificate.png][Konta pocztowe dla studentów i doktorantów, certyfikaty]]

[img[FAQ - pytania i odpowiedzi|128x128_filetypes.png][FAQ - pytania i odpowiedzi]][img[128x128_blank.png]][img[Pogoda|128x128_kweather.png][Pogoda]]
!STRONA ZABLOKOWANA PRZEZ ADMINISTRATORA SERWERA POCZTOWEGO pobox.pk.edu.pl

Szanowny Użytkowniku,

mail, który otrzymałeś jest ''oszustwem'' (tzw. [[phishing|Phishing]]). Zawierał odnośnik prowadzący na ''spreparowaną przez przestępców stronę www''. 

Gdybyś podał na niej swój login i hasło, to przekazałbyś je przestępcom, którzy wykorzystaliby Twoje konto do atakowania kolejnych ofiar.

Takie maile na serwerze pobox.pk.edu.pl są w większości blokowane przez ochronę antyspamową i antyphishingową. Niestety nie wszystkie można wykryć. Jeśli uda się im przedostać, to zwykle są cenzurowane - groźny odnośnik zostaje przestawiony na ''bezpieczną, informacyjną stronę www, którą właśnie czytasz''. Jednak pamiętaj:
!NIE WOLNO LEKKOMYŚLNIE KLIKAĆ TAKICH ODNOŚNIKÓW!
Każde kliknięcie na taki odnośnik zostaje odnotowane wraz z adresem komputera użytkownika.

[[Czytaj dalej...|Phishing]]
<!--{{{-->
<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>
<!-- horizontal MainMenu -->
<div id='topMenu' refresh='content' tiddler='MainMenu'></div>
<!-- original MainMenu menu -->
<!-- <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>
<!--}}}-->
!!!Nie daj się złowić!
[[Phishing|http://pl.wikipedia.org/wiki/Phishing]] (łowienie naiwnych) to często spotykane ''oszustwo internetowe''. Polega na wyłudzaniu poufnych danych (np. haseł lub szczegółów karty kredytowej) przez podszywanie się pod instytucję godną zaufania.

Phisher wysyła zazwyczaj spam do wielkiej liczby potencjalnych ofiar, by je zwabić na swoją witrynę WWW. Witryna udaje oryginalny serwis internetowy, a w rzeczywistości przechwytuje informacje wpisywane przez ofiary ataku. Typową treścią spamu jest powiadomienie o rzekomym zablokowaniu konta i konieczności jego reaktywowania.

Przykład phishingu:
{{{
To jest powiadomienie, ze webmail przekroczyl limit kontyngentu. Nie beda mogli 
wysylac i odbierac nowe wiadomosci od nastepnego 72 godziny, az o zwiekszenie 
limitu kwoty.Prosze kliknac na ponizszy link i wprowadz niezbedne informacje o 
zwiekszenie limitu kwoty.

Kliknij tutaj: http://abcxyz.qwr/form

Niezastosowanie sie do zwiekszenia limitu kwoty w ciagu 48 godzin moze 
doprowadzic do utraty waznych informacji na skrzynce pocztowej lub spowodowac 
ograniczenie dostepu do niej.

Dziekujemy za wspólprace.

Webmail dzialu pomocy technicznej
Copyright (C) 2011 System Administrator
}}}
Więcej przykładów można zobaczyć w witrynie [[Uniwersytetu Śląskiego|http://usnet.us.edu.pl/2011/07/przyklady-phishingu-z-codziennej-poczty/]] i [[banków brytyjskich|http://www.banksafeonline.org.uk/common-scams]], warto też przeczytać [[poradnik|https://www.google.com/safebrowsing/static/faq.html#q1]] Google. W witrynie [[SonicWALL|http://www.sonicwall.com/furl/phishing/]] można przetestować swoje umiejętności rozpoznawania phishingu.

!!!Jak się obronić?
# Najpierw uważnie ''przeczytać'' każdy list - ''NIE KLIKAĆ'' na oślep!
# Nie ufać spamowym listom ''nieudolnie przetłumaczonym'' na polski przez automat, jak w powyższym przykładzie.
# Pamiętać, że banki, serwisy pocztowe i inne serwisy internetowe ''nigdy nie wysyłają'' takich listów - jeśli serwis chce przekazać informację tego rodzaju, to wyświetla ją użytkownikowi po zalogowaniu.
# Pamiętać, że login i hasło są zawsze związane z ''konkretną'' stroną internetową - nie wolno ich podawać na innych stronach, a zwłaszcza na takich, których adres ktoś nam przysłał..
# Przed podaniem loginu i hasła ''sprawdzić adres strony'' i upewnić się, że używa ona ''bezpiecznego, szyfrowanego protokołu https://'' - pasek adresu w przeglądarce Firefox wygląda wtedy tak:

[img[Połączenie bezpieczne|http://pobox.pk.edu.pl/urlhttps.png]]

Po umieszczeniu myszy nad ''niebieskim polem certyfikatu serwera'' (w przypadku PK z nazwą ''pk.edu.pl'') pojawi się informacja o wystawcy certyfikatu (w przypadku PK jest to Unizeto Technologies S.A.):

[img[Wystawca certyfikatu|http://pobox.pk.edu.pl/urlhttpsinfo.png]]

W przypadku ''zwykłej strony www'' - w tym również strony używanej przez oszusta - pasek adresu może wyglądać np. tak:

[img[Połączenie zwykłe|http://pobox.pk.edu.pl/urlhttp.png]]

Inne przeglądarki internetowe mogą sygnalizować bezpieczne połączenie w inny sposób, np. ''ikoną kłódki lub klucza albo zmianą koloru paska adresu'' - zawsze jest to wyraźnie widoczne. Jeśli strona nie używa bezpiecznego połączenia, to nie należy na niej podawać ''żadnych haseł'', bo hasło przesyłane zwykłym, nieszyfrowanym połączeniem można z łatwością ''podsłuchać''.

[[Skąd wziąć wzorce pcre phishingu do filtra body_checks serwera postfix?|https://info.pk.edu.pl/body_checks.local]]
!!!Dostęp przez www
* @mech.pk.edu.pl - serwer w Czyżynach: [[SquirrelMail|https://pobox.pk.edu.pl/webmail/]] [[Roundcube|https://poczta.pk.edu.pl/]] [[Kwarantanna|https://fmail.pk.edu.pl/]]
* @pk.edu.pl - serwer na Warszawskiej: [[Exchange|https://ex.pk.edu.pl/]] [[SquirrelMail|https://mail.pk.edu.pl/]] [[Roundcube|https://poczta.pk.edu.pl/]] [[Kwarantanna|https://fmail.pk.edu.pl/]]
!!!Konfiguracja
* [[@mech.pk.edu.pl|Konfiguracja serwera i programów pocztowych do obsługi konta @mech.pk.edu.pl]]
* [[@pk.edu.pl|http://sip.pk.edu.pl/index.php?option=com_content&task=view&id=1951&Itemid=273]]
* [[Odzyskiwanie lub zmiana hasła przez pracowników|Konta pocztowe dla pracowników PK]]
!!!Nowe konto
* [[Konta pocztowe dla pracowników PK]]
* [[Konta pocztowe dla studentów i doktorantów, certyfikaty]]
!!!Bezpieczeństwo
* [[Certyfikat Główny|http://www.pk.edu.pl/certpk/ca_root.crt]] Urzędu Certyfikującego Politechniki Krakowskiej
* [[Uwaga na phishing - nie daj się złowić oszustom!|Phishing]]
* [[Prognoza pogody dla Krakowa 60h (ICM)|http://www.meteo.pl/um/php/meteorogram_list.php?ntype=0u&row=466&col=232&lang=pl&cname=Krak%F3w]]
* [[Błyskawice nad Polską (Blitzortung)|http://pl.blitzortung.org/live_lightning_maps.php?map=15]]
* [[Błyskawice nad Polską (Siemens)|http://www.blids.de/spion/bilder/aktkartepolengrau.jpg]]
* [[Zdjęcia satelitarne meteo (sat24)|https://pl.sat24.com/hd/pl/pl]]
* [[Rocznik Astronomiczny|http://bc.igik.edu.pl/dlibra/collectiondescription?dirids=7]]
Wypełniając [[wniosek|https://cert.pk.edu.pl]] o wystawienie certyfikatu należy podać swoje imię i nazwisko w normalnym brzmieniu, tzn. używając polskich liter, jeśli występują one w imieniu bądź nazwisku.

Przy instalacji certyfikatu trzeba podać hasło, którym certyfikat został zaszyfrowany. Jest to to samo hasło, które podali Państwo składając [[wniosek|https://cert.pk.edu.pl]]. Jeśli przy instalacji certyfikatu pojawia się komunikat o nieprawidłowym pliku, należy sprawdzić wielkość pliku certyfikatu. Jeśli plik jest pusty, tzn. jego wielkość wynosi 0, należy się zgłosić do [[Działu Informatyzacji PK|http://eduroam.pk.edu.pl/index.php/certyfikaty]] przy ul. Warszawskiej.
/***
|Name|SinglePageModePlugin|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.7|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Show tiddlers one at a time with automatic permalink, or always open tiddlers at top/bottom of page.|
This plugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one tiddler displayed at a time.
!!!!!Documentation
>see [[SinglePageModePluginInfo]]
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)

Notes:
* The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}.
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2010.11.30 2.9.7 use story.getTiddler()
2008.10.17 2.9.6 changed chkSinglePageAutoScroll default to false
| Please see [[SinglePageModePluginInfo]] for previous revision details |
2005.08.15 1.0.0 Initial Release.  Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts.
<<<
!!!!!Code
***/
//{{{
version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 7, date: new Date(2010,11,30)};
//}}}
//{{{
config.paramifiers.SPM = { onstart: function(v) {
	config.options.chkSinglePageMode=eval(v);
	if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
		config.lastURL = window.location.hash;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
} };
//}}}
//{{{
if (config.options.chkSinglePageMode==undefined)
	config.options.chkSinglePageMode=false;
if (config.options.chkSinglePagePermalink==undefined)
	config.options.chkSinglePagePermalink=true;
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
	config.options.chkSinglePageKeepFoldedTiddlers=false;
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
	config.options.chkSinglePageKeepEditedTiddlers=false;
if (config.options.chkTopOfPageMode==undefined)
	config.options.chkTopOfPageMode=false;
if (config.options.chkBottomOfPageMode==undefined)
	config.options.chkBottomOfPageMode=false;
if (config.options.chkSinglePageAutoScroll==undefined)
	config.options.chkSinglePageAutoScroll=false;
//}}}
//{{{
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
	if (!config.options.chkSinglePageMode)
		{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
	if (config.lastURL == window.location.hash) return; // no change in hash
	var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
	if (tids.length==1) // permalink (single tiddler in URL)
		story.displayTiddler(null,tids[0]);
	else { // restore permaview or default view
		config.lastURL = window.location.hash;
		if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();
		story.closeAllTiddlers();
		story.displayTiddlers(null,tids);
	}
}


if (Story.prototype.SPM_coreDisplayTiddler==undefined)
	Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly)
{
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	var tiddlerElem=story.getTiddler(title); // ==null unless tiddler is already displayed
	var opt=config.options;
	var single=opt.chkSinglePageMode && !startingUp;
	var top=opt.chkTopOfPageMode && !startingUp;
	var bottom=opt.chkBottomOfPageMode && !startingUp;
	if (single) {
		story.forEachTiddler(function(tid,elem) {
			// skip current tiddler and, optionally, tiddlers that are folded.
			if (	tid==title
				|| (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
				return;
			// if a tiddler is being edited, ask before closing
			if (elem.getAttribute("dirty")=="true") {
				if (opt.chkSinglePageKeepEditedTiddlers) return;
				// if tiddler to be displayed is already shown, then leave active tiddler editor as is
				// (occurs when switching between view and edit modes)
				if (tiddlerElem) return;
				// otherwise, ask for permission
				var msg="'"+tid+"' is currently being edited.\n\n";
				msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
				if (!confirm(msg)) return; else story.saveTiddler(tid);
			}
			story.closeTiddler(tid);
		});
	}
	else if (top)
		arguments[0]=null;
	else if (bottom)
		arguments[0]="bottom";
	if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
		window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
		config.lastURL = window.location.hash;
		document.title = wikifyPlain("SiteTitle") + " - " + title;
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
	if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // editing... move tiddler without re-rendering
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		if (!isTopTiddler && (single || top))
			tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
		else if (bottom)
			tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
		else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	} else
		this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
	var tiddlerElem=story.getTiddler(title);
	if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
		// scroll to top of page or top of tiddler
		var isTopTiddler=(tiddlerElem.previousSibling==null);
		var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
		// if animating, defer scroll until after animation completes
		var delay=opt.chkAnimate?config.animDuration+10:0;
		setTimeout("window.scrollTo(0,"+yPos+")",delay); 
	}
}

if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
	Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
	// suspend single/top/bottom modes when showing multiple tiddlers
	var opt=config.options;
	var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
	var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
	var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
	this.SPM_coreDisplayTiddlers.apply(this,arguments);
	opt.chkBottomOfPageMode=saveBPM;
	opt.chkTopOfPageMode=saveTPM;
	opt.chkSinglePageMode=saveSPM;
}
//}}}
/***
|Name|SinglePageModePluginInfo|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|documentation|
|Description|Documentation for SinglePageModePlugin|
Normally, as you click on the links in TiddlyWiki, more and more tiddlers are displayed on the page. The order of this tiddler display depends upon when and where you have clicked. Some people like this non-linear method of reading the document, while others have reported that when many tiddlers have been opened, it can get somewhat confusing.  SinglePageModePlugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one item displayed at a time.
!!!!!Usage
<<<
When the plugin is enabled, only one tiddler will be displayed at a time and the browser window's titlebar is updated to include the current tiddler title.  The browser's location URL is also updated with a 'permalink' for the current tiddler so that it is easier to create a browser 'bookmark' for the current tiddler.  Alternatively, even when displaying multiple tiddlers //is// permitted, you can still reduce the potential for confusion by forcing  tiddlers to always open at the top (or bottom) of the page instead of being displayed following the tiddler containing the link that was clicked.
<<<
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)

Notes:
* {{block{
The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}. You can also use {{{SPM:expression}}}, where 'expression' is any javascript statement that evaluates to true or false.  This allows you to create hard-coded links in other documents that can selectively enable/disable the use of this option based on various programmatic conditions, such as the current username. For example, using
&nbsp;&nbsp;&nbsp;{{{#SPM:config.options.txtUserName!="SomeName"}}}
enables 'one tiddler at a time' display for all users //other than// "~SomeName")}}}
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2008.10.17 2.9.6 changed chkSinglePageAutoScroll default to false
2008.06.12 2.9.5 corrected 'scroll to top of page' logic in auto-scroll handling
2008.06.11 2.9.4 added chkSinglePageKeepEditedTiddlers option
2008.06.05 2.9.3 in displayTiddler(), bypass single/top/bottom mode handling if startingUp.  Allows multiple tiddlers to be displayed during startup processing (e.g., #story:DefaultTiddlers), even if single/top/bottom mode is enabled.
2008.04.18 2.9.2 in displayTiddler() and checkLastURL(), handling for Unicode in tiddler titles (remove explicit conversion between Unicode and UTF, as this is apparently done automatically by encode/decodeURIComponent, resulting in double-encoding!
2008.04.08 2.9.1 don't automatically add options to AdvancedOptions shadow tiddler
2008.04.02 2.9.0 in displayTiddler(), when single-page mode is in use and a tiddler is being edited, ask for permission to save-and-close that tiddler, instead of just leaving it open.
2008.03.29 2.8.3 in displayTiddler(), get title from tiddler object (if needed).  Fixes errors caused when calling function passes a tiddler *object* instead of a tiddler *title*
2008.03.14 2.8.2 in displayTiddler(), if editing specified tiddler, just move it to top/bottom of story *without* re-rendering (prevents discard of partial edits).
2008.03.06 2.8.1 in paramifier handler, start 'checkURL' timer if chkSinglePageMode is enabled
2008.03.06 2.8.0 added option, {{{config.options.chkSinglePageKeepFoldedTiddlers}}}, so folded tiddlers won't be closed when using single-page mode.  Also, in checkURL(), if hash is a ''permaview'' (e.g., "#foo bar baz"), then display multiple tiddlers rather than attempting to display "foo bar baz" as a single tiddler
2008.03.05 2.7.0 added support for "SPM:" URL paramifier
2008.03.01 2.6.0 in hijack of displayTiddler(), added 'title' argument to closeAllTiddlers() so that target tiddler isn't closed-and-reopened if it was already displayed.  Also, added config.options.chkSinglePageAutoScrolloption to bypass automatic 'scroll into view' logic (note: core still does it's own ensureVisible() handling)
2007.12.22 2.5.3 in checkLastURL(), use decodeURIComponent() instead of decodeURI so that tiddler titles with commas (and/or other punctuation) are correctly handled.
2007.10.26 2.5.2 documentation cleanup
2007.10.08 2.5.1 in displayTiddler(), when using single-page or top-of-page mode, scrollTo(0,0) to ensure that page header is in view.
2007.09.13 2.5.0 for TPM/BPM modes, don't force tiddler to redisplay if already shown.  Allows transition between view/edit or collapsed/view templates, without repositioning displayed tiddler.
2007.09.12 2.4.0 added option to disable automatic permalink feature.  Also, Safari is now excluded from permalinking action to avoid bug where tiddlers don't display after hash is updated.
2007.03.03 2.3.1 fix typo when adding BPM option to AdvancedOptions (prevented checkbox from appearing)
2007.03.03 2.3.0 added support for BottomOfPageMode (BPM) based on request from DaveGarbutt
2007.02.06 2.2.3 in Story.prototype.displayTiddler(), use convertUnicodeToUTF8() for correct I18N string handling when creating URL hash string from tiddler title (based on bug report from BidiX)
2007.01.08 2.2.2 use apply() to invoke hijacked core functions
2006.07.04 2.2.1 in hijack for displayTiddlers(), suspend TPM as well as SPM so that DefaultTiddlers displays in the correct order.
2006.06.01 2.2.0 added chkTopOfPageMode (TPM) handling
2006.02.04 2.1.1 moved global variable declarations to config.* to avoid FireFox 1.5.0.1 crash bug when assigning to globals
2005.12.27 2.1.0 hijack displayTiddlers() so that SPM can be suspended during startup while displaying the DefaultTiddlers (or #hash list).  Also, corrected initialization for undefined SPM flag to "false", so default behavior is to display multiple tiddlers
2005.12.27 2.0.0 Update for TW2.0
2005.11.24 1.1.2 When the back and forward buttons are used, the page now changes to match the URL.  Based on code added by Clint Checketts
2005.10.14 1.1.1 permalink creation now calls encodeTiddlyLink() to handle tiddler titles with spaces in them
2005.10.14 1.1.0 added automatic setting of window title and location bar ('auto-permalink').  feature suggestion by David Dickens.
2005.10.09 1.0.1 combined documentation and code in a single tiddler
2005.08.15 1.0.0 Initial Release
<<<
info.pk.edu.pl
USK PK Czyżyny
http://info.pk.edu.pl/
Serwer poczty pobox odbiera list i próbuje go od razu doręczyć. Jeśli mu się to nie udaje np. wskutek przepełnienia skrzynki, to list trafia do kolejki i przez 5 dni ponawiane są próby doręczenia. Jeśli się nie powiodą, bo skrzynka nadal jest np. przepełniona, to list jest odsyłany do nadawcy z odpowiednią informacją. Ślad po tym zostaje zapisany w logach serwera.

Programy pocztowe wykorzystujące protokół IMAP, zarówno dostępne lokalnie jak Thunerbird, jak i na www, np. Squirrel Mail, sygnalizują poziom zapełnienia skrzynki wyświetlając informacyjny pasek, a po przekroczeniu bezpiecznego poziomu również komunikatem alarmowym.
''UWAGA: Dzisiaj (2.09.2011) mogą wystąpić przerwy w pracy serwera pobox.pk.edu.pl i związane z tym problemy w funkcjonowaniu USK PK w Czyżynach.''
/*{{{*/
/* a contrasting background so I can see where one tiddler ends and the other begins */
body {
	background: [[ColorPalette::TertiaryLight]];
}

/* sexy colours and font for the header */
.headerForeground {
	color: [[ColorPalette::PrimaryPale]];
}
.headerShadow, .headerShadow a {
	color: [[ColorPalette::PrimaryMid]];
}
.headerForeground, .headerShadow {
	padding: 1em 1em 0;
	font-family: 'Trebuchet MS' sans-serif;
	font-weight:bold;
}
.headerForeground .siteSubtitle {
	color: [[ColorPalette::PrimaryLight]];
}
.headerShadow .siteSubtitle {
	color: [[ColorPalette::PrimaryMid]];
}

/* make shadow go and down right instead of up and left */
.headerShadow {
	left: 1px;
	top: 1px;
}

/* prefer monospace for editing */
.editor textarea {
	font-family: 'Consolas' monospace;
}

/* sexy tiddler titles */
.title {
	font-size: 250%;
	color: [[ColorPalette::PrimaryLight]];
	font-family: 'Trebuchet MS' sans-serif;
}

/* more subtle tiddler subtitle */
.subtitle {
	padding:0px;
	margin:0px;
	padding-left:0.5em;
	font-size: 90%;
	color: [[ColorPalette::TertiaryMid]];
}
.subtitle .tiddlyLink {
	color: [[ColorPalette::TertiaryMid]];
}

/* a little bit of extra whitespace */
.viewer {
	padding-bottom:3px;
}

/* don't want any background color for headings */
h1,h2,h3,h4,h5,h6 {
	background: [[ColorPalette::Background]];
	color: [[ColorPalette::Foreground]];
}

/* give tiddlers 3d style border and explicit background */
.tiddler {
	background: [[ColorPalette::Background]];
	border-right: 2px [[ColorPalette::TertiaryMid]] solid;
	border-bottom: 2px [[ColorPalette::TertiaryMid]] solid;
	margin-bottom: 1em;
	padding-bottom: 2em;
}

/* make options slider look nicer */
#sidebarOptions .sliderPanel {
	border:solid 1px [[ColorPalette::PrimaryLight]];
}


/* the borders look wrong with the body background */
#sidebar .button {
	border-style: none;
}

/* displays the list of a tiddler's tags horizontally. used in ViewTemplate */
.tagglyTagged li.listTitle {
	display:none
}
.tagglyTagged li {
	display: inline; font-size:90%;
}
.tagglyTagged ul {
	margin:0px; padding:0px;
}

/* this means you can put line breaks in SidebarOptions for readability */
#sidebarOptions br {
	display:none;
}
/* undo the above in OptionsPanel */
#sidebarOptions .sliderPanel br {
	display:inline;
}

/* horizontal main menu stuff */
#displayArea {
	margin: 1em 15.7em 0em 1em; /* use the freed up space */
}
#topMenu br {
	display: none;
}
#topMenu {
	background: [[ColorPalette::PrimaryMid]];
	color:[[ColorPalette::PrimaryPale]];
}
#topMenu {
	padding:2px;
}
#topMenu .button, #topMenu .tiddlyLink, #topMenu a {
	margin-left: 0.5em;
	margin-right: 0.5em;
	padding-left: 3px;
	padding-right: 3px;
	color: [[ColorPalette::PrimaryPale]];
	font-size: 115%;
}
#topMenu .button:hover, #topMenu .tiddlyLink:hover {
	background: [[ColorPalette::PrimaryDark]];
}

/* make it print a little cleaner */
@media print {
	#topMenu {
		display: none ! important;
	}
	/* not sure if we need all the importants */
	.tiddler {
		border-style: none ! important;
		margin:0px ! important;
		padding:0px ! important;
		padding-bottom:2em ! important;
	}
	.tagglyTagging .button, .tagglyTagging .hidebutton {
		display: none ! important;
	}
	.headerShadow {
		visibility: hidden ! important;
	}
	.tagglyTagged .quickopentag, .tagged .quickopentag {
		border-style: none ! important;
	}
	.quickopentag a.button, .miniTag {
		display: none ! important;
	}
}
/*}}}*/
!!!!UWAGA: listy, które są próbami wyłudzenia haseł do kont pocztowych przychodzą coraz częściej.
[[Czytaj dalej...|Phishing]]
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<!--<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>-->
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
!!!Książki
* [[Thomas Limoncelli - Zarządzanie czasem. Strategie dla administratorów systemów|http://helion.pl/ksiazki/zarzadzanie-czasem-strategie-dla-administratorow-systemow-thomas-limoncelli,zaczas.htm]]
** Obowiązkowy podręcznik dla administratorów, oparty na GTD Davida Allena. Przeczytać, nauczyć się na pamięć, stosować:)
* [[Douglas Adams - Autostopem przez Galaktykę|http://pl.wikipedia.org/wiki/Autostopem_przez_Galaktyk%C4%99]]
** Klasyka humorystycznej SF.
* [[Jacek Hugo-Bader - Biała gorączka|http://czarne.com.pl/?a=1288]]
** Jacek ~Hugo-Bader zawsze ten sam - prawdziwy twardziel o wrażliwym sercu:) Jego reportaże z republik postsowieckich jak zwykle robią wielkie wrażenie.
* [[Richard Hammond - Na krawędzi. Moja opowieść|http://www.znak.com.pl/kartoteka,ksiazka,2677,tytul,Na%20kraw%C4%99dzi.%20Moja%20opowie%C5%9B%C4%87]]
** Autobiografia Richarda Hammonda - prezentera programu Top Gear, szczegółowa historia jego wypadku w dragsterze z napędem odrzutowym i przejmujący opis powrotu do zdrowia po ciężkim urazie mózgu. To również książka o wielkiej miłości, nie tylko do samochodów...
* [[Richard Hammond - Jak zostać arktycznym ninja|http://www.znak.com.pl/kartoteka,ksiazka,2698,tytul,Jak%20zosta%C4%87%20arktycznym%20ninja%20i%20inne%20przygody%20z%20Evelem,%20Oliverem%20i%20wiceprezydentem%20Botswany]]
** Richard Hammond w Top Gear jest wiecznym chłopcem; tutaj daje sie poznać jako świetny reporter.
* [[Jeremy Clarkson - Wiem, że masz duszę|http://www.insignis.pl/book/index/55/Wiem--ze-masz-dusze-NOWE-WYDANIE.html]]
** Kolejna książka z kręgu Top Gear - Jeremy Clarkson opisuje 21 najbardziej fascynujących konstrukcji, wybranych z najnowszej historii techniki.
* [[Jo Marchant - Zagadka komputera sprzed 2000 lat|http://www.wydawnictwoamber.pl/ksiazka/146/zagadka-komputera-sprzed-2000-lat]]
** Pasjonująca historia 100-letnich badań nad [[mechanizmem z Antykithiry|https://pl.wikipedia.org/wiki/Mechanizm_z_Antykithiry]], niepozornym znaleziskiem z Morza Śródziemnego, które okazało się najważniejszym zabytkiem w całej historii techniki - precyzyjnym kalkulatorem astronomicznym, skonstruowanym w starożytnej Grecji w epoce hellenistycznej.
* [[Steven D. Levitt, Stephen J. Dubner - Freakonomia. Świat od podszewki|http://www.znak.com.pl/kartoteka,ksiazka,2827,tytul,Freakonomia.%20%C5%9Awiat%20od%20podszewki]]
* [[Steven D. Levitt, Stephen J. Dubner - Superfreakonomia|http://www.znak.com.pl/kartoteka,ksiazka,2828,tytul,Superfreakonomia.%20Globalne%20och%C5%82odzenie,%20patriotyczne%20prostytutki%20i%20dlaczego%20zamachowcy-samob%C3%B3jcy%20powinni%20wykupi%C4%87%20polis%C4%99%20na%20%C5%BCycie%3Cbr]]
* [[Robert Cialdini - Zasady wywierania wpływu na ludzi|http://onepress.pl/ksiazki/zasady-wywierania-wplywu-na-ludzi-szkola-cialdiniego-robert-b-cialdini-ph-d,zawywp.htm]]
** Psychologia wpływu, czyli manipulacja w praktyce - wykład na tyle zwięzły, że da się go przeczytać na Targach Książki albo w księgarni:)
* [[Martin Lindstrom - Zakupologia. Prawdy i kłamstwa o tym, dlaczego kupujemy|http://www.znak.com.pl/kartoteka,ksiazka,2337,Zakupologia._Prawdy_i_k%C5%82amstwa_o_tym_dlaczego_kupujemy]]
** Każdy administrator sieci wie, że użytkownik zawsze łże. Guru marketingu Martin Lindstrom uznał, że odnosi się to również do konsumentów, zajrzał więc wprost do ich głów metodami współczesnej neurologii.
!!!Media
* [[Terry Jones - Barbarzyńcy (serial) |http://www.oftv.co.uk/programmes/terry-jones-barbarians]]
!!!Muzea/Wystawy
* [[Mykeny (Grecja)|http://www.greeklandscapes.com/greece/mycenae.html]]
* [[Vergina (Grecja) - Groby królewskie|http://www.museumsofmacedonia.gr/Archaeological_and_Byzantine/Arx_Bas_Tafoi_Berginas.html]]
** Grobowce Filipa II - ojca Aleksandra Macedońskiego i niektórych członków jego rodziny. Zachwycająca ekspozycja, olśniewające dzieła sztuki i dające do myślenia sprzęty - produkty techniki z końca okresu klasycznego.
* [[Karpacka Troja - Skansen Archeologiczny w Trzcinicy|http://karpackatroja.pl]]
** W Trzcinicy koło Jasła w niedawnych latach odkryto potężny gród sprzed 3500 lat. Jego mieszkańcy należeli do kultury ~Otomani-Fuzesabony - północnej gałęzi kultury mykeńskiej. We wczesnym średniowieczu gród rozbudowali Słowianie.
!!!Witryny WWW Politechniki Krakowskiej
* Serwis WWW Politechniki Krakowskiej: http://www.pk.edu.pl
* [[Serwis informatyczny|http://sip.pk.edu.pl/index.php?option=com_content&task=blogsection&id=16&Itemid=114]] Działu Informatyzacji PK dla pracowników
* [[Regulamin USK PK|http://bip.pk.edu.pl/index.php?ver=0&dok=571]]
* Platforma e-learningowa PK [[ELF|https://elf3.pk.edu.pl/]]
* Serwis WWW Wydziału Mechanicznego PK, prowadzony przez Instytut Informatyki Stosowanej: http://www.mech.pk.edu.pl
<html>
<a href="http://www.ewa.alias.pl">Język niemiecki tłumaczenia, przekłady, dokumenty - ALIAS Tłumacz Przysięgły Języka Niemieckiego Kraków, Prądnik Czerwony, Kwartowa</a><br>
<a href="http://www.skutery-wieliczka.pl">Romet, Kymco, Sym - LUPUS Skutery Wieliczka</a><br>
<a href="http://szarestado.pl">Hodowla psów Szare Stado: jużaki - owczarki południoworosyjskie, wilczarze irlandzkie</a><br>
</html>
http://dl.dropbox.com/u/583258/ziutek