--- a/root/.bash_history Sat Aug 16 03:33:09 2008 +0000 +++ b/root/.bash_history Sat Aug 16 10:30:17 2008 +0000 @@ -1881,3 +1881,8 @@ /etc/init.d/apache2 restart /etc/init.d/python-poker-network restart /etc/init.d/apache2 restart +fg +pwd +fg +hg status +hg addremove
Binary file var/lib/dlocate/dlocatedb.old has changed
--- a/var/lib/logrotate/status Sat Aug 16 03:33:09 2008 +0000 +++ b/var/lib/logrotate/status Sat Aug 16 10:30:17 2008 +0000 @@ -4,10 +4,10 @@ "/var/log/apt/term.log" 2008-8-1 "/var/log/aptitude" 2008-3-9 "/var/log/dpkg.log" 2008-8-1 -"/var/log/exim4/mainlog" 2008-8-15 +"/var/log/exim4/mainlog" 2008-8-16 "/var/log/exim4/rejectlog" 2008-3-9 "/var/log/exim4/paniclog" 2008-3-9 -"/var/log/mysql.log" 2008-8-15 +"/var/log/mysql.log" 2008-8-16 "/var/log/mysql/mysql.log" 2008-3-9 "/var/log/mysql/mysql-slow.log" 2008-3-9 "/var/log/auth.log" 2008-8-10 @@ -23,7 +23,7 @@ "/var/log/messages" 2008-8-10 "/var/log/user.log" 2008-3-9 "/var/log/uucp.log" 2008-3-9 -"/var/log/syslog" 2008-8-15 +"/var/log/syslog" 2008-8-16 "/var/log/wtmp" 2008-8-1 "/var/log/btmp" 2008-8-1 "/var/log/scrollkeeper.log" 2008-8-10
--- a/var/mail/mail Sat Aug 16 03:33:09 2008 +0000 +++ b/var/mail/mail Sat Aug 16 10:30:17 2008 +0000 @@ -11251,3 +11251,74 @@ are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). +From root@pokersource.info Sat Aug 16 06:31:05 2008 +Return-path: <root@pokersource.info> +Envelope-to: root@pokersource.info +Delivery-date: Sat, 16 Aug 2008 06:31:05 +0000 +Received: from root by jspoker.pokersource.info with local (Exim 4.69) + (envelope-from <root@pokersource.info>) + id 1KUFHF-0003YT-UR + for root@pokersource.info; Sat, 16 Aug 2008 06:31:05 +0000 +From: root@pokersource.info (Cron Daemon) +To: root@pokersource.info +Subject: Cron <root@jspoker> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) +Content-Type: text/plain; charset=ANSI_X3.4-1968 +X-Cron-Env: <SHELL=/bin/sh> +X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin> +X-Cron-Env: <HOME=/root> +X-Cron-Env: <LOGNAME=root> +Message-Id: <E1KUFHF-0003YT-UR@jspoker.pokersource.info> +Date: Sat, 16 Aug 2008 06:31:05 +0000 + +/etc/cron.daily/packaging-farm-server: +for dir in debian/etch debian/lenny debian/unstable debian/hardy fedora/f8 ; do \ + mkdir -p /chroot/$dir ; \ + rsync --delete -aHz --numeric-ids rsync://packaging-farm.conf.tld/packaging-farm/$dir/ /chroot/$dir/ ; \ + if [ -d /chroot/$dir/var/lib/rpm ] ; then \ + rsync --delete -c -aHz --numeric-ids rsync://packaging-farm.conf.tld/packaging-farm/$dir/var/lib/rpm/ /chroot/$dir/var/lib/rpm/ ; \ + fi ; \ + done +for dir in /chroot/*/* ; do \ + mkdir -p $dir/proc ; \ + mkdir -p $dir/dev/pts ; \ + done +for dir in /chroot/*/*/etc ; do \ + cp /etc/resolv.conf $dir ; \ + perl -pi -e 's/.*fedora.dachary.org.*//' $dir/hosts ; \ + done +perl: warning: Setting locale failed. +perl: warning: Please check that your locale settings: + LANGUAGE = (unset), + LC_ALL = (unset), + LANG = "en_US.UTF-8" + are supported and installed on your system. +perl: warning: Falling back to the standard locale ("C"). +perl: warning: Setting locale failed. +perl: warning: Please check that your locale settings: + LANGUAGE = (unset), + LC_ALL = (unset), + LANG = "en_US.UTF-8" + are supported and installed on your system. +perl: warning: Falling back to the standard locale ("C"). +perl: warning: Setting locale failed. +perl: warning: Please check that your locale settings: + LANGUAGE = (unset), + LC_ALL = (unset), + LANG = "en_US.UTF-8" + are supported and installed on your system. +perl: warning: Falling back to the standard locale ("C"). +perl: warning: Setting locale failed. +perl: warning: Please check that your locale settings: + LANGUAGE = (unset), + LC_ALL = (unset), + LANG = "en_US.UTF-8" + are supported and installed on your system. +perl: warning: Falling back to the standard locale ("C"). +perl: warning: Setting locale failed. +perl: warning: Please check that your locale settings: + LANGUAGE = (unset), + LC_ALL = (unset), + LANG = "en_US.UTF-8" + are supported and installed on your system. +perl: warning: Falling back to the standard locale ("C"). +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/home/www/ideas.20080814.1840500082.html Sat Aug 16 10:30:17 2008 +0000 @@ -0,0 +1,10750 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<script type="text/javascript"> +//<![CDATA[ +var version = {title: "TiddlyWiki", major: 2, minor: 2, revision: 6, date: new Date("Oct 18, 2007"), extensions: {}}; +//]]> +</script> +<!-- +TiddlyWiki created by Jeremy Ruston, (jeremy [at] osmosoft [dot] com) + +Copyright (c) UnaMesa Association 2004-2007 + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this +list of conditions and the following disclaimer in the documentation and/or other +materials provided with the distribution. + +Neither the name of the UnaMesa Association nor the names of its contributors may be +used to endorse or promote products derived from this software without specific +prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. +--> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> +<!--PRE-HEAD-START--> +<!--{{{--> +<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'/> +<!--}}}--> +<!--PRE-HEAD-END--> +<title> jpoker ideas - and bugs, feature requests </title> +<style type="text/css"> +#saveTest {display:none;} +#messageArea {display:none;} +#copyright {display:none;} +#storeArea {display:none;} +#storeArea div {padding:0.5em; margin:1em 0em 0em 0em; border-color:#fff #666 #444 #ddd; border-style:solid; border-width:2px; overflow:auto;} +#shadowArea {display:none;} +#javascriptWarning {width:100%; text-align:center; font-weight:bold; background-color:#dd1100; color:#fff; padding:1em 0em;} +</style> +<!--POST-HEAD-START--> + +<!--POST-HEAD-END--> +</head> +<body onload="main();" onunload="if(window.checkUnsavedChanges) checkUnsavedChanges(); if(window.scrubNodes) scrubNodes(document.body);"> +<!--PRE-BODY-START--> + +<!--PRE-BODY-END--> +<div id="copyright"> +Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association +</div> +<noscript> + <div id="javascriptWarning">This page requires JavaScript to function properly.<br /><br />If you are using Microsoft Internet Explorer you may need to click on the yellow bar above and select 'Allow Blocked Content'. You must then click 'Yes' on the following security warning.</div> +</noscript> +<div id="saveTest"></div> +<div id="backstageCloak"></div> +<div id="backstageButton"></div> +<div id="backstageArea"><div id="backstageToolbar"></div></div> +<div id="backstage"> + <div id="backstagePanel"></div> +</div> +<div id="contentWrapper"></div> +<div id="contentStash"></div> +<div id="shadowArea"> +<div title="ColorPalette"> +<pre>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</pre> +</div> +<div title="StyleSheetColors"> +<pre>/*{{{*/ +body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];} + +a {color:[[ColorPalette::PrimaryMid]];} +a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];} +a img {border:0;} + +h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;} +h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];} +h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];} + +.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];} +.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];} +.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];} + +.header {background:[[ColorPalette::PrimaryMid]];} +.headerShadow {color:[[ColorPalette::Foreground]];} +.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];} +.headerForeground {color:[[ColorPalette::Background]];} +.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];} + +.tabSelected{color:[[ColorPalette::PrimaryDark]]; + background:[[ColorPalette::TertiaryPale]]; + border-left:1px solid [[ColorPalette::TertiaryLight]]; + border-top:1px solid [[ColorPalette::TertiaryLight]]; + border-right:1px solid [[ColorPalette::TertiaryLight]]; +} +.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];} +.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];} +.tabContents .button {border:0;} + +#sidebar {} +#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];} +#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];} +#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];} +#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];} +#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];} + +.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];} +.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;} +.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;} +.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]]; + border:1px solid [[ColorPalette::PrimaryMid]];} +.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];} +.wizardFooter {background:[[ColorPalette::PrimaryPale]];} +.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];} +.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid; + border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];} +.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];} +.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid; + border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];} + +#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];} +#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;} + +.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];} + +.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];} +.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;} +.popup li.disabled {color:[[ColorPalette::TertiaryMid]];} +.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;} +.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;} +.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;} +.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];} +.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];} + +.tiddler .defaultCommand {font-weight:bold;} + +.shadow .title {color:[[ColorPalette::TertiaryDark]];} + +.title {color:[[ColorPalette::SecondaryDark]];} +.subtitle {color:[[ColorPalette::TertiaryDark]];} + +.toolbar {color:[[ColorPalette::PrimaryMid]];} +.toolbar a {color:[[ColorPalette::TertiaryLight]];} +.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];} +.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];} + +.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];} +.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];} +.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];} +.tagging .button, .tagged .button {border:none;} + +.footer {color:[[ColorPalette::TertiaryLight]];} +.selected .footer {color:[[ColorPalette::TertiaryMid]];} + +.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;} +.sparktick {background:[[ColorPalette::PrimaryDark]];} + +.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];} +.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];} +.lowlight {background:[[ColorPalette::TertiaryLight]];} + +.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];} + +.imageLink, #displayArea .imageLink {background:transparent;} + +.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];} + +.viewer .listTitle {list-style-type:none; margin-left:-2em;} +.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];} +.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];} + +.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];} +.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];} +.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];} + +.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];} +.viewer code {color:[[ColorPalette::SecondaryDark]];} +.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];} + +.highlight, .marked {background:[[ColorPalette::SecondaryLight]];} + +.editor input {border:1px solid [[ColorPalette::PrimaryMid]];} +.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;} +.editorFooter {color:[[ColorPalette::TertiaryMid]];} + +#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];} +#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;} +#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; } +#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];} +#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;} +#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;} +#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];} +.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];} +.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];} +#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';} +/*}}}*/</pre> +</div> +<div title="StyleSheetLayout"> +<pre>/*{{{*/ +* html .tiddler {height:1%;} + +body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;} + +h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;} +h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;} +h4,h5,h6 {margin-top:1em;} +h1 {font-size:1.35em;} +h2 {font-size:1.25em;} +h3 {font-size:1.1em;} +h4 {font-size:1em;} +h5 {font-size:.9em;} + +hr {height:1px;} + +a {text-decoration:none;} + +dt {font-weight:bold;} + +ol {list-style-type:decimal;} +ol ol {list-style-type:lower-alpha;} +ol ol ol {list-style-type:lower-roman;} +ol ol ol ol {list-style-type:decimal;} +ol ol ol ol ol {list-style-type:lower-alpha;} +ol ol ol ol ol ol {list-style-type:lower-roman;} +ol ol ol ol ol ol ol {list-style-type:decimal;} + +.txtOptionInput {width:11em;} + +#contentWrapper .chkOptionInput {border:0;} + +.externalLink {text-decoration:underline;} + +.indent {margin-left:3em;} +.outdent {margin-left:3em; text-indent:-3em;} +code.escaped {white-space:nowrap;} + +.tiddlyLinkExisting {font-weight:bold;} +.tiddlyLinkNonExisting {font-style:italic;} + +/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */ +a.tiddlyLinkNonExisting.shadow {font-weight:bold;} + +#mainMenu .tiddlyLinkExisting, + #mainMenu .tiddlyLinkNonExisting, + #sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;} +#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;} + +.header {position:relative;} +.header a:hover {background:transparent;} +.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;} +.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;} + +.siteTitle {font-size:3em;} +.siteSubtitle {font-size:1.2em;} + +#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;} + +#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;} +#sidebarOptions {padding-top:0.3em;} +#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;} +#sidebarOptions input {margin:0.4em 0.5em;} +#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;} +#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;} +#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;} +#sidebarTabs .tabContents {width:15em; overflow:hidden;} + +.wizard {padding:0.1em 1em 0em 2em;} +.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;} +.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;} +.wizardStep {padding:1em 1em 1em 1em;} +.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;} +.wizardFooter {padding:0.8em 0.4em 0.8em 0em;} +.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;} +.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;} + +#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;} +.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;} +#messageArea a {text-decoration:underline;} + +.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;} +.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;} + +.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;} +.popup .popupMessage {padding:0.4em;} +.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;} +.popup li.disabled {padding:0.4em;} +.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;} +.listBreak {font-size:1px; line-height:1px;} +.listBreak div {margin:2px 0;} + +.tabset {padding:1em 0em 0em 0.5em;} +.tab {margin:0em 0em 0em 0.25em; padding:2px;} +.tabContents {padding:0.5em;} +.tabContents ul, .tabContents ol {margin:0; padding:0;} +.txtMainTab .tabContents li {list-style:none;} +.tabContents li.listLink { margin-left:.75em;} + +#contentWrapper {display:block;} +#splashScreen {display:none;} + +#displayArea {margin:1em 17em 0em 14em;} + +.toolbar {text-align:right; font-size:.9em;} + +.tiddler {padding:1em 1em 0em 1em;} + +.missing .viewer,.missing .title {font-style:italic;} + +.title {font-size:1.6em; font-weight:bold;} + +.missing .subtitle {display:none;} +.subtitle {font-size:1.1em;} + +.tiddler .button {padding:0.2em 0.4em;} + +.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;} +.isTag .tagging {display:block;} +.tagged {margin:0.5em; float:right;} +.tagging, .tagged {font-size:0.9em; padding:0.25em;} +.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;} +.tagClear {clear:both;} + +.footer {font-size:.9em;} +.footer li {display:inline;} + +.annotation {padding:0.5em; margin:0.5em;} + +* html .viewer pre {width:99%; padding:0 0 1em 0;} +.viewer {line-height:1.4em; padding-top:0.5em;} +.viewer .button {margin:0em 0.25em; padding:0em 0.25em;} +.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;} +.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;} + +.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;} +.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;} +table.listView {font-size:0.85em; margin:0.8em 1.0em;} +table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;} + +.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;} +.viewer code {font-size:1.2em; line-height:1.4em;} + +.editor {font-size:1.1em;} +.editor input, .editor textarea {display:block; width:100%; font:inherit;} +.editorFooter {padding:0.25em 0em; font-size:.9em;} +.editorFooter .button {padding-top:0px; padding-bottom:0px;} + +.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;} + +.sparkline {line-height:1em;} +.sparktick {outline:0;} + +.zoomer {font-size:1.1em; position:absolute; overflow:hidden;} +.zoomer div {padding:1em;} + +* html #backstage {width:99%;} +* html #backstageArea {width:99%;} +#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;} +#backstageToolbar {position:relative;} +#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;} +#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;} +#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;} +#backstage {position:relative; width:100%; z-index:50;} +#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;} +.backstagePanelFooter {padding-top:0.2em; float:right;} +.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;} +#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;} + +.whenBackstage {display:none;} +.backstageVisible .whenBackstage {display:block;} +/*}}}*/</pre> +</div> +<div title="StyleSheetLocale"> +<pre>/*** +StyleSheet for use when a translation requires any css style changes. +This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which use a logographic writing system and need larger font sizes. +***/ + +/*{{{*/ +body {font-size:0.8em;} + +#sidebarOptions {font-size:1.05em;} +#sidebarOptions a {font-style:normal;} +#sidebarOptions .sliderPanel {font-size:0.95em;} + +.subtitle {font-size:0.8em;} + +.viewer table.listView {font-size:0.95em;} + +.htmlarea .toolbarHA table {border:1px solid ButtonFace; margin:0em 0em;} +/*}}}*/</pre> +</div> +<div title="StyleSheetPrint"> +<pre>/*{{{*/ +@media print { +#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;} +#displayArea {margin: 1em 1em 0em 1em;} +/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */ +noscript {display:none;} +} +/*}}}*/</pre> +</div> +<div title="PageTemplate"> +<pre><!--{{{--> +<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'> +<div class='headerShadow'> +<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp; +<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span> +</div> +<div class='headerForeground'> +<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp; +<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span> +</div> +</div> +<div id='mainMenu' refresh='content' tiddler='MainMenu'></div> +<div id='sidebar'> +<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div> +<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div> +</div> +<div id='displayArea'> +<div id='messageArea'></div> +<div id='tiddlerDisplay'></div> +</div> +<!--}}}--></pre> +</div> +<div title="ViewTemplate"> +<pre><!--{{{--> +<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div> +<div class='title' macro='view title'></div> +<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div> +<div class='tagging' macro='tagging'></div> +<div class='tagged' macro='tags'></div> +<div class='viewer' macro='view text wikified'></div> +<div class='tagClear'></div> +<!--}}}--></pre> +</div> +<div title="EditTemplate"> +<pre><!--{{{--> +<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div> +<div class='title' macro='view title'></div> +<div class='editor' macro='edit title'></div> +<div macro='annotations'></div> +<div class='editor' macro='edit text'></div> +<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div> +<!--}}}--></pre> +</div> +<div title="GettingStarted"> +<pre>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>></pre> +</div> +<div title="OptionsPanel"> +<pre>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</pre> +</div> +</div> +<!--POST-SHADOWAREA--> +<div id="storeArea"> +<div title=""Click here to get a seat" should be hyperlinked to avoid confusion " modifier="loic" created="200807300646" tags="toRSS Features" changecount="1"> +<pre></pre> +</div> +<div title="'Tables' link does not work sometimes" modifier="loic" modified="200807201017" created="200807030851" tags="toRSS Done" changecount="2"> +<pre>The situation I encountered it was when i went into a table and then exited. Then clicked on Tables but it didn't show me the list of tables. - on Mozilla Firefox 2.0. + +Fixed (was a state problem)</pre> +</div> +<div title="2h is not shown on the board" modifier="loic" modified="200805270554" created="200805160829" tags="toRSS Done loic" changecount="5"> +<pre>{{{ +(10:30:42 AM) dachary: it's not just 2h +(10:30:50 AM) dachary: it's a number of other cards +(10:31:02 AM) dachary: hum +(10:31:04 AM) dachary: 2h again +(10:31:41 AM) dachary: 2h is code 0 +}}} +</pre> +</div> +<div title="404 bug in firebug net tab (firebug bug ?)" modifier="loic" created="200804061155" tags="toRSS Bugs loic saq" changecount="1"> +<pre>http://code.google.com/p/fbug/issues/detail?id=586</pre> +</div> +<div title="Administrative access" modifier="loic" modified="200807201023" created="200807160205" tags="toRSS Features" changecount="3"> +<pre>It would be great to have an administrative account that can fix problems, boot players and tables, and other such activities. +---- +such a user exists but he currently has no dedicated possibilities (such as kicking a user out of the table)</pre> +</div> +<div title="Another user is in PLAY state" modifier="loic" created="200807300652" tags="toRSS Bug" changecount="1"> +<pre>I receive this strange error many times when registering: "Another user is in PLAY state". No one was playing on the table at that point. Even if they did, it should not stop me from registering. +</pre> +</div> +<div title="Bugs" modifier="loic" created="200806190700" changecount="1"> +<pre>To create a new bug entry, use the "new bug" menu entry to the right, under the search bar.</pre> +</div> +<div title="CSS class for cards instead of hardwired img" modifier="loic" modified="200807301448" created="200807301403" tags="Bugs toRSS" changecount="6"> +<pre>also add a jpoker_card for properties common to all cards</pre> +</div> +<div title="Can not login again and system will not time out user" modifier="loic" modified="200807201022" created="200807160215" tags="toRSS WontFix" changecount="3"> +<pre>I restarted my browser and noticed that my user is still listed in two different tables. + +Upon attempting to log back in I receive the following message: +another client already has role PLAY + +---- +The timeout in these cases is about 30 seconds. I don't know how we can handle this differently. </pre> +</div> +<div title="Can't reproduce it with jpoker.plugins.table" modifier="proppy" created="200807280951" tags="[[PublisherMode plugin render tiddlers twice]]" changecount="1"> +<pre>- put a breakpoint in jpoker.plugins.table +- only get called once</pre> +</div> +<div title="Can't reproduce it with jpoker.plugins.tableList" modifier="proppy" created="200807280946" tags="[[PublisherMode plugin render tiddlers twice]]" changecount="1"> +<pre>- put a breakpoint in jpoker.plugins.tableList +- only get called once</pre> +</div> +<div title="Can't reproduce it with jpoker.plugins.userInfo" modifier="proppy" created="200807280947" tags="[[PublisherMode plugin render tiddlers twice]]" changecount="1"> +<pre>- put a breakpoint in jpoker.plugins.userInfo +- only get called once</pre> +</div> +<div title="DefaultTiddlers" modifier="loic" modified="200806181605" created="200708261653" changecount="3"> +<pre>[[Ideas]]</pre> +</div> +<div title="Done" modifier="loic" created="200803091340" tags="toRSS" changecount="1"> +<pre>Change the tag of entries to ''Done'' to move them to the list of things that belong to the past.</pre> +</div> +<div title="FIX: check selectTables('my') empty before joining featured table" modifier="proppy" created="200807281450" tags="[[PublisherMode plugin render tiddlers twice]]" changecount="2"> +<pre>http://jpoker.aminche.com/hg/jpoker-featuredtable +</pre> +</div> +<div title="FIX: enclose register button with <tr><td>" modifier="proppy" modified="200807210928" created="200807210927" tags="[[tourney player list grows]]" changecount="3"> +<pre>http://jpoker.aminche.com/hg/jpoker-tourneys/rev/ba78ab5cf39a</pre> +</div> +<div title="FIX: jpoker.dialog if server.loggedIn == false" modifier="proppy" created="200807280917" tags="[[userinfo when not logged blocks]]" changecount="1"> +<pre>http://jpoker.aminche.com/hg/jpoker-userinfo/rev/fb4a574658a5</pre> +</div> +<div title="Features" modifier="loic" created="200806190701" changecount="1"> +<pre>To create a new feature request, use the "new feature" menu entry to the right, under the search bar.</pre> +</div> +<div title="Feedback form should be less scary for newbies" modifier="YourName" modified="200806250930" created="200806190824" tags="Ideas toRSS loic" changecount="3"> +<pre>Currently, to enter an idea or feedback, one needs to: +- locate the "Feedback" link +- switch to a new page with a different interface and lots of scary text + +The current version is good for geeks and dedicated users, but standard users will shy away, if they ever see there is a way to add feedback. Suggestion: + +- Make the "Feedback" feature a lot more visible: more people will see it, and it will help people understand this is actually something devs are in need of. For example, it could be moved to the top right of the table on the other side of "Table one" title. A small light bulb icon, flashy color and a text like "Help us! We need your feedback" +- Make sure the feedback entry is simple. The best would be to pop a simple textarea & a "Send" button on the same page (no title, no menu, no text, KISS!). + +loic: I will create a button in jpoker that shows a dialog with a title bar + text + link to the idea page + button to submit. The submission will create a file thru dav that will then be merged into the ideas.html tiddlywiki. + +xavier: great! :)</pre> +</div> +<div title="Fix: update tableJoin logic in skin.html" modifier="proppy" created="200807280854" tags="[[http://jspoker.pokersource.info/skin/skin.html broken]]" changecount="1"> +<pre>http://jpoker.aminche.com/hg/jpoker-skin/rev/f809afe4c9b1</pre> +</div> +<div title="Footer" modifier="YourName" modified="200806190651" created="200708282140" changecount="3"> +<pre>Powered by [[tiddlytracker|http://garden.dachary.org/tiddlytracker.html]] Copyright Loic Dachary mailto:loic@dachary.org License : [[GNU GPLv3 or Later|http://gnu.org/licenses/gpl.txt]]</pre> +</div> +<div title="GenerateRssByTagPlugin" modifier="BidiX" modified="200705281308" created="200703052156" tags="admin NewsWiki systemConfig" server.type="file" server.page.revision="200705281308" server.host="http://TiddlyHome.bidix.info/systemServer/NewsWiki.html"> +<pre>/*** +|''Name:''|GenerateRssByTagPlugin| +|''Description:''|Only tiddlers with a specific tag are inluded in the RSSFeed. If no tiddlers are selected then works as before. (see ticket #270: http://trac.tiddlywiki.org/tiddlywiki/ticket/270). <br>RssTag: <<option txtRssTag>>| +|''Version:''|1.0.2| +|''Date:''|Apr 20, 2007| +|''Source:''|http://tiddlywiki.bidix.info/#GenerateRssByTagPlugin| +|''Author:''|BidiX (BidiX (at) bidix (dot) info)| +|''[[License]]:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]| +|''~CoreVersion:''|2.2.0 (Beta 5)| +***/ +//{{{ +version.extensions.GenerateRssByTagPlugin = { + major: 1, minor: 0, revision: 2, + date: new Date("Apr 20, 2007"), + source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin', + author: 'BidiX (BidiX (at) bidix (dot) info', + coreVersion: '2.2.0 (Beta 5)' +}; + +if (!window.bidix) window.bidix = {}; // bidix namespace + +bidix.generateRssByTag = function() +{ + var s = []; + var d = new Date(); + var u = store.getTiddlerText("SiteUrl"); + // Assemble the header + s.push("<" + "?xml version=\"1.0\"" + " encoding='UTF-8' " + "?" + ">"); + s.push("<rss version=\"2.0\">"); + s.push("<channel>"); + s.push("<title" + ">" + wikifyPlain("SiteTitle").htmlEncode() + "</title" + ">"); + if(u) + s.push("<link>" + u.htmlEncode() + "</link>"); + s.push("<description>" + wikifyPlain("SiteSubtitle").htmlEncode() + "</description>"); + s.push("<language>en-us</language>"); + s.push("<copyright>Copyright " + d.getFullYear() + " " + config.options.txtUserName.htmlEncode() + "</copyright>"); + s.push("<pubDate>" + d.toGMTString() + "</pubDate>"); + s.push("<lastBuildDate>" + d.toGMTString() + "</lastBuildDate>"); + s.push("<docs>http://blogs.law.harvard.edu/tech/rss</docs>"); + s.push("<generator>TiddlyWiki " + version.major + "." + version.minor + "." + version.revision + "</generator>"); + // The body + var tiddlers; + if (config.options.txtRssTag && store.getTaggedTiddlers(config.options.txtRssTag).length > 0) + tiddlers = store.getTaggedTiddlers(config.options.txtRssTag,"modified"); + else + tiddlers = store.getTiddlers("modified","[[excludeLists]]"); + var n = config.numRssItems > tiddlers.length ? 0 : tiddlers.length-config.numRssItems; + for (var t=tiddlers.length-1; t>=n; t--) + s.push(tiddlers[t].saveToRss(u)); + // And footer + s.push("</channel>"); + s.push("</rss>"); + // Save it all + return s.join("\n"); +}; + +// +// Initializations +// +bidix.generateRss = generateRss; // backup core version +generateRss = bidix.generateRssByTag; // install new one +config.options.txtRssTag = "toRSS"; // default RssTag. use <<option txtRssTag>> to overwritte +merge(config.optionsDesc,{txtRssTag: "Only tiddlers with this tag will be included in the RSS Feed."}); +//}}}</pre> +</div> +<div title="Guest Mode where ppl can see the games without logging in" modifier="loic" modified="200807201026" created="200807030850" tags="toRSS WontFix" changecount="2"> +<pre>that's what happens. Please describe the use case where it is not happening as it should.</pre> +</div> +<div title="HideWhenPlugin" modifier="YourName" modified="200707241237" created="200703160525" tags="systemConfig"> +<pre>/*** +| Name|HideWhenPlugin| +| Description|Allows conditional inclusion/exclusion in templates| +| Version|3.0 ($Rev: 1845 $)| +| Date|$Date: 2007-03-16 15:19:22 +1000 (Fri, 16 Mar 2007) $| +| Source|http://mptw.tiddlyspot.com/#HideWhenPlugin| +| Author|Simon Baird <simon.baird@gmail.com>| +| License|http://mptw.tiddlyspot.com/#TheBSDLicense| +For use in ViewTemplate and EditTemplate. Example usage: +{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}} +{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}} +***/ +//{{{ + +window.removeElementWhen = function(test,place) { + if (test) { + removeChildren(place); + place.parentNode.removeChild(place); + } +}; + +merge(config.macros,{ + + hideWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) { + removeElementWhen( eval(paramString), place); + }}, + + showWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) { + removeElementWhen( !eval(paramString), place); + }}, + + hideWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) { + removeElementWhen( tiddler.tags.containsAll(params), place); + }}, + + showWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) { + removeElementWhen( !tiddler.tags.containsAll(params), place); + }}, + + hideWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) { + removeElementWhen( tiddler.tags.containsAny(params), place); + }}, + + showWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) { + removeElementWhen( !tiddler.tags.containsAny(params), place); + }}, + + hideWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) { + removeElementWhen( tiddler.tags.containsAll(params), place); + }}, + + showWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) { + removeElementWhen( !tiddler.tags.containsAll(params), place); + }}, + + hideWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) { + removeElementWhen( store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0]), place); + }}, + + showWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) { + removeElementWhen( !(store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])), place); + }} + +}); + +//}}} + +</pre> +</div> +<div title="Ideas" modifier="loic" modified="200806181612" created="200806181608" taggly.listmode="sitemap" changecount="2"> +<pre>To create a new idea, fill <<newTiddler label:"the following form" prompt:"Create a new idea" title:"Short idea description" tag:toRSS tag:Ideas>> and click "done" when finished.</pre> +</div> +<div title="It'd be nice to show the lobby by default" modifier="loic" modified="200807201024" created="200807030849" tags="WontFix toRSS" changecount="2"> +<pre>---- +it was decided to show a table by default because it's where the action is. It is possible, however, to cook another tiddlywiki with a different default.</pre> +</div> +<div title="LegacyStrikeThroughPlugin" modifier="MartinBudden" modified="200711172210" created="200607210000" tags="systemConfig"> +<pre>/*** +|''Name:''|LegacyStrikeThroughPlugin| +|''Description:''|Support for legacy (pre 2.1) strike through formatting| +|''Version:''|1.0.2| +|''Date:''|Jul 21, 2006| +|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin| +|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)| +|''License:''|[[BSD open source license]]| +|''CoreVersion:''|2.1.0| +***/ + +//{{{ +// Ensure that the LegacyStrikeThrough Plugin is only installed once. +if(!version.extensions.LegacyStrikeThroughPlugin) { +version.extensions.LegacyStrikeThroughPlugin = {installed:true}; + +config.formatters.push( +{ + name: "legacyStrikeByChar", + match: "==", + termRegExp: /(==)/mg, + element: "strike", + handler: config.formatterHelpers.createElementAndWikify +}); + +} //# end of "install only once" +//}}}</pre> +</div> +<div title="Logout link should be hyperlinked to avoid confusion. " modifier="loic" created="200807300645" tags="toRSS Features" changecount="1"> +<pre></pre> +</div> +<div title="MainMenu" modifier="loic" modified="200807201020" created="200708261546" changecount="15"> +<pre>[[Ideas]] +[[Bugs]] +[[Features]] +[[Done]] +[[WontFix]]</pre> +</div> +<div title="PageTemplate" modifier="loic" modified="200708282144" created="200708282141" changecount="3"> +<pre><!--{{{--> +<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'> +<div class='headerShadow'> +<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp; +<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span> +</div> +<div class='headerForeground'> +<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp; +<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span> +</div> +</div> +<div id='mainMenu' refresh='content' tiddler='MainMenu'></div> +<div id='sidebar'> +<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div> +<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div> +</div> +<div id='displayArea'> +<div id='messageArea'></div> +<div id='tiddlerDisplay'></div> +<div id="footer" class="footer" refresh='content' force='true' tiddler='Footer'></div> +</div> +<!--}}}--></pre> +</div> +<div title="PublisherMode plugin render tiddlers twice" modifier="proppy" modified="200807281451" created="200804101108" tags="toRSS Done saq loic" changecount="5"> +<pre>jpoker/index.html, breakpoint in any macro code and see them called twice. Does not happen in jpoker/poker.html. +</pre> +</div> +<div title="RSSReaderPlugin" modifier="BidiX" modified="200608241600" created="200608131215" tags="systemConfig plugin RSSExtensions"> +<pre>/*** +|''Name:''|RSSReaderPlugin| +|''Description:''|This plugin provides a RSSReader for TiddlyWiki| +|''Version:''|0.3.0| +|''Date:''|Aug 24, 2006| +|''Source:''|http://tiddlywiki.bidix.info/#RSSReaderPlugin| +|''Documentation:''|http://tiddlywiki.bidix.info/#RSSReaderPluginDoc| +|''Author:''|BidiX (BidiX (at) bidix (dot) info)| +|''Credit:''|BramChen for RssNewsMacro| +|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]| +|''~CoreVersion:''|2.0.0| +|''Browser:''|Firefox 1.5; InternetExplorer 6.0; Safari| +|''Include:''|none| +|''Require:''|none| +***/ +//{{{ +version.extensions.RSSReaderPlugin = { + major: 0, minor: 3, revision: 0, + date: new Date("Aug 24, 2006"), + author: "BidiX", + credit: "BramChen for RssNewsMacro", + source: "http://TiddlyWiki.bidix.info/#RSSReaderPlugin", + documentation : "http://TiddlyWiki.bidix.info/#RSSReaderPluginDoc", + author: 'BidiX (BidiX (at) bidix (dot) info', + license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]', + coreVersion: '2.0.0', + browser: 'Firefox 1.5; InternetExplorer 6.0; Safari' +}; + +config.macros.rssReader = { + dateFormat: "DDD, DD MMM YYYY", + itemStyle: "display: block;border: 1px solid black;padding: 5px;margin: 5px;", //useed '@@'+itemStyle+itemText+'@@' + msg:{ + permissionDenied: "Permission to read preferences was denied.", + noRSSFeed: "No RSS Feed at this address %0", + urlNotAccessible: " Access to %0 is not allowed" + }, + cache: [], // url => request + desc: "noDesc", + // feedURL: "", + place:"", + handler: function(place,macroName,params,wikifier,paramString,tiddler){ + var desc = params[0]; + var feedURL = params[1]; + // var toFilter = (params[2] ? params[2] : false); + var toFilter = false; + var filterString; + if (params[2] != undefined) { + toFilter = true; + if (params[2].match(/\w+/)) + filterString = params[2]; + else + filterString = tiddler.title; + } + var place = createTiddlyElement(place, "div", "RSSReader"); + wikify("^^<<rssFeedUpdate "+feedURL+" [[" + tiddler.title + "]]>>^^\n",place); + if (this.cache[feedURL]) { + this.processResponse(this.cache[feedURL], feedURL, place, desc, toFilter, filterString); + } + else { + this.asyncGet(feedURL, place, desc, toFilter, filterString); + } + }, + + asyncGet: function (feedURL, place, desc, toFilter, filterString){ + var xmlhttp; + try {xmlhttp=new XMLHttpRequest();} + catch (e) { + try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");} + catch (e) { + try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} + catch (e) { displayMessage(e.description?e.description:e.toString());} + } + } + if (!xmlhttp){ + return; + } + if (window.netscape){ + try { + if (document.location.protocol.indexOf("http") == -1) { + netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); + } + } + catch (e) { displayMessage(e.description?e.description:e.toString()); } + } + xmlhttp.onreadystatechange=function (){ + if (xmlhttp.readyState==4) { + if (xmlhttp.status==200 || xmlhttp.status===0) { + config.macros.rssReader.processResponse(xmlhttp, feedURL, place, desc, toFilter, filterString); + } + else { + displayMessage("Problem retrieving XML data:" + xmlhttp.statusText); + } + } + }; + try { + xmlhttp.open("GET",feedURL,true); + if (config.browser.isIE) { + xmlhttp.send(); + } + else { + xmlhttp.send(null); + } + } + catch (e) { + wikify(e.toString()+this.urlNotAccessible.format([feedURL]), place); + } + }, + processResponse: function(xmlhttp, feedURL, place, desc, toFilter, filterString){ + if (window.netscape){ + try { + if (document.location.protocol.indexOf("http") == -1) { + netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); + } + } + catch (e) { displayMessage(e.description?e.description:e.toString()); } + } + if (xmlhttp.responseXML){ + this.cache[feedURL] = xmlhttp; + this.genRssNews(xmlhttp.responseXML, place, feedURL, desc, toFilter, filterString); + } + else { + var dom = (new DOMParser()).parseFromString(xmlhttp.responseText, "text/xml"); + if (dom) { + this.cache[feedURL] = xmlhttp; + this.genRssNews(dom, place, feedURL, desc, toFilter, filterString); + } + else { + wikify("<html>"+xmlhttp.responseText+"</html>", place); + displayMessage(this.msg.noRSSFeed.format([feedURL])); + } + } + }, + genRssNews: function(xml, place, feedURL, desc, toFilter, filterString){ + // Channel + var chanelNode = xml.getElementsByTagName('channel').item(0); + var chanelTitleElement = (chanelNode ? chanelNode.getElementsByTagName('title').item(0) : null); + var chanelTitle = ""; + if ((chanelTitleElement) && (chanelTitleElement.firstChild)) chanelTitle = chanelTitleElement.firstChild.nodeValue; + var chanelLinkElement = (chanelNode ? chanelNode.getElementsByTagName('link').item(0) : null); + var chanelLink = ""; + if (chanelLinkElement) chanelLink = chanelLinkElement.firstChild.nodeValue; + var titleTxt = "!![["+chanelTitle+"|"+chanelLink+"]]\n"; + var title = createTiddlyElement(place,"div",null,"ChanelTitle",null); + wikify(titleTxt,title); + // ItemList + var itemList = xml.getElementsByTagName('item'); + var article = createTiddlyElement(place,"ul",null,null,null); + var lastDate; + var re; + if (toFilter) + re = new RegExp(filterString.escapeRegExp()); + for (var i=0; i<itemList.length; i++){ + var titleElm = itemList[i].getElementsByTagName('title').item(0); + var titleText = (titleElm ? titleElm.firstChild.nodeValue : ''); + if (toFilter && ! titleText.match(re)) { + continue; + } + var descText = ''; + var isWikitext = false; + var descElem = itemList[i].getElementsByTagName('wikitext').item(0); + if (descElem){ + try{ + isWikitext = true; + descText = "\n"+descElem.firstChild.nodeValue;} + catch(e){} + } + else { + descElem = itemList[i].getElementsByTagName('encoded').item(0); + if (descElem){ + try{descText = descElem.firstChild.nodeValue;} + catch(e){} + descText = "<html>"+descText+"</html>"; + } + else { + descElem = itemList[i].getElementsByTagName('description').item(0); + if (descElem){ + try{descText = descElem.firstChild.nodeValue;} + catch(e){} + descText = descText.replace(/<br \/>/g,'\n'); + if (desc == "asHtml") + descText = "<html>"+descText+"</html>"; + } + } + } + var linkElm = itemList[i].getElementsByTagName("link").item(0); + var linkURL = linkElm.firstChild.nodeValue; + var pubElm = itemList[i].getElementsByTagName('pubDate').item(0); + var pubDate; + if (!pubElm) { + pubElm = itemList[i].getElementsByTagName('date').item(0); // for del.icio.us + if (pubElm) { + pubDate = pubElm.firstChild.nodeValue; + pubDate = this.formatDateString(this.dateFormat, pubDate); + } + else { + pubDate = '0'; + } + } + else { + pubDate = (pubElm ? pubElm.firstChild.nodeValue : 0); + pubDate = this.formatString(this.dateFormat, pubDate); + } + titleText = titleText.replace(/\[|\]/g,''); + var rssText = '** '+'[[' + titleText + '|' + linkURL + ']]' + '\n' ; + if ((desc != "noDesc") && descText){ + if (version.extensions.nestedSliders){ + rssText = rssText.replace(/\n/g,' '); + descText = '+++[...]\n' + +(isWikitext ? '\n<<rssFeedImportTiddler '+ feedURL + ' [['+titleText+']]>>':'') + +'@@'+this.itemStyle+descText+'\n@@\n' + +'==='; + } + rssText = rssText + descText + '\n\n'; + } + var story; + if ((lastDate != pubDate) && ( pubDate != '0')) { + story = createTiddlyElement(article,"li",null,"RSSItem",pubDate); + lastDate = pubDate; + } + else { + lastDate = pubDate; + } + story = createTiddlyElement(article,"div",null,"RSSItem",null); + wikify(rssText,story); + } + }, + formatString: function(template, theDate){ + var dateString = new Date(theDate); + template = template.replace(/hh|mm|ss/g,''); + return dateString.formatString(template); + }, + formatDateString: function(template, theDate){ + var dateString = new Date(theDate.substr(0,4), theDate.substr(5,2) - 1, theDate.substr(8,2) + /*, theDate.substr(11,2), theDate.substr(14,2), theDate.substr(17,2)*/ + ); + return dateString.formatString(template); + } + +}; +//}}} + +//{{{ +config.macros.rssFeedUpdate = { + label: "Update", + prompt: "Clear the cache and redisplay this RssFeed", + handler: function(place,macroName,params) { + var feedURL = params[0]; + var tiddlerTitle = params[1]; + createTiddlyButton(place, this.label, this.prompt, + function () { + if (config.macros.rssReader.cache[feedURL]) { + config.macros.rssReader.cache[feedURL] = null; + //story.refreshTiddler(tiddlerTitle,null, true); + } + story.refreshTiddler(tiddlerTitle,null, true); + return false;}); + } +}; +//}}} + +//{{{ +config.macros.rssFeedImportTiddler = { + label: "Import", + prompt: "Import this tiddler in this TiddlyWiki", + askReplaceMsg: "Tiddler already exists, replace it ?", + handler: function(place,macroName,params) { + var feedUrl = params[0]; + var tiddlerTitle = params[1]; + createTiddlyButton(place, this.label, this.prompt, + function () { + if (feedUrl && config.macros.rssReader.cache[feedUrl]) { + var tiddler = config.macros.rssFeedImportTiddler.parseRssNews(config.macros.rssReader.cache[feedUrl].responseXML, tiddlerTitle); + if (tiddler && (! store.getTiddler(tiddlerTitle) || confirm(config.macros.rssFeedImportTiddler.askReplaceMsg))) { + store.addTiddler(tiddler); + store.notify(tiddler.title, true); + store.setDirty(true); + } + } + return false;}); + }, + + // parse a RssFeed for retrieving a Tiddler with title + parseRssNews: function(xml, title) { + // ItemList + if (document.location.protocol.indexOf("http") == -1) { + netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead"); + } + + var itemList = xml.getElementsByTagName('item'); + for (var i=0; i<itemList.length; i++){ + + var titleElm = itemList[i].getElementsByTagName('title').item(0); + var titleText = titleElm.firstChild.nodeValue; + if (titleText == title) { + // <tiddlywiki:title> + // titleText + titleText = titleText.htmlDecode(); + // <tiddlywiki:wikitext> + var elem = itemList[i].getElementsByTagName('wikitext').item(0); + var text = elem ? elem.firstChild.nodeValue.htmlDecode() : ""; + // <tiddlywiki:modifier> + elem = itemList[i].getElementsByTagName('modifier').item(0); + var modifier = elem ? elem.firstChild.nodeValue : ""; + // <tiddlywiki:modified> + elem = itemList[i].getElementsByTagName('modified').item(0); + var modified = elem ? Date.convertFromYYYYMMDDHHMM(elem.firstChild.nodeValue) : ""; + // <tiddlywiki:created> + elem = itemList[i].getElementsByTagName('created').item(0); + var created = elem ? Date.convertFromYYYYMMDDHHMM(elem.firstChild.nodeValue) : ""; + // <tiddlywiki:links> + // Links ? + // <tiddlywiki:tags> + elem = itemList[i].getElementsByTagName('tags').item(0); + var tags = elem ? elem.firstChild.nodeValue.htmlDecode() : ""; + var tiddler = new Tiddler(); + tiddler.assign(titleText,text,modifier,modified,tags,created); + return tiddler; + } + } + // not found + alert("Tiddler \[[" + title +"]] notFound."); + return null; + } + +}; + +//}}} +</pre> +</div> +<div title="SideBarOptions" modifier="loic" modified="200806181607" created="200712110946" changecount="7"> +<pre><<search>><<newTiddler label:"new idea" prompt:"Create a new idea" title:"Short idea description" tag:toRSS tag:Ideas>><<newTiddler label:"new bug" prompt:"Create a new bug entry" title:"Bug Title" tag:toRSS tag:Ideas tag:Bug>><<newTiddler label:"new feature" prompt:"Create a new feature request entry" title:"Feature description" tag:toRSS tag:Features tag:Ideas>><<closeAll>><<permaview>><<newTiddler>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options &#187;" "Change TiddlyWiki advanced options">></pre> +</div> +<div title="SiteSubtitle" modifier="loic" modified="200806181616" created="200708261543" changecount="4"> +<pre>and bugs, feature requests</pre> +</div> +<div title="SiteTitle" modifier="loic" modified="200806181617" created="200708261543" changecount="2"> +<pre>jpoker ideas</pre> +</div> +<div title="SiteUrl" modifier="loic" modified="200806181617" created="200708261544" changecount="2"> +<pre>http://jspoker.pokersource.info/ideas.html</pre> +</div> +<div title="TagglyTaggingPlugin" modifier="YourName" modified="200707231653" created="200707050117" tags="systemConfig"> +<pre>/*** +| Name|TagglyTaggingPlugin| +| Description|tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate| +| Version|3.1 ($Rev: 2341 $)| +| Date|$Date: 2007-07-05 10:02:27 +1000 (Thu, 05 Jul 2007) $| +| Source|http://mptw.tiddlyspot.com/#TagglyTaggingPlugin| +| Author|Simon Baird <simon.baird@gmail.com>| +| License|http://mptw.tiddlyspot.com/#TheBSDLicense| +!Notes +See http://mptw.tiddlyspot.com/#TagglyTagging +***/ +//{{{ +config.taggly = { + + // for translations + lingo: { + labels: { + asc: "\u2191", // down arrow + desc: "\u2193", // up arrow + title: "title", + modified: "modified", + created: "created", + show: "+", + hide: "-", + normal: "normal", + group: "group", + commas: "commas", + sitemap: "sitemap", + numCols: "cols\u00b1", // plus minus sign + label: "Tagged as '%0':", + excerpts: "excerpts", + contents: "contents", + sliders: "sliders", + noexcerpts: "title only" + }, + + tooltips: { + title: "Click to sort by title", + modified: "Click to sort by modified date", + created: "Click to sort by created date", + show: "Click to show tagging list", + hide: "Click to hide tagging list", + normal: "Click to show a normal ungrouped list", + group: "Click to show list grouped by tag", + sitemap: "Click to show a sitemap style list", + commas: "Click to show a comma separated list", + numCols: "Click to change number of columns", + excerpts: "Click to show excerpts", + contents: "Click to show entire tiddler contents", + sliders: "Click to show tiddler contents in sliders", + noexcerpts: "Click to show entire title only" + } + }, + + config: { + showTaggingCounts: true, + listOpts: { + // the first one will be the default + sortBy: ["title","modified","created"], + sortOrder: ["asc","desc"], + hideState: ["show","hide"], + listMode: ["normal","group","sitemap","commas"], + numCols: ["1","2","3","4","5","6"], + excerpts: ["noexcerpts","excerpts","contents","sliders"] + }, + valuePrefix: "taggly.", + excludeTags: ["excludeLists","excludeTagging"], + excerptSize: 50, + excerptMarker: "/%"+"%/" + }, + + getTagglyOpt: function(title,opt) { + var val = store.getValue(title,this.config.valuePrefix+opt); + return val ? val : this.config.listOpts[opt][0]; + }, + + setTagglyOpt: function(title,opt,value) { + if (!store.tiddlerExists(title)) + // create it silently + store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),null); + // if value is default then remove it to save space + return store.setValue(title, + this.config.valuePrefix+opt, + value == this.config.listOpts[opt][0] ? null : value); + }, + + getNextValue: function(title,opt) { + var current = this.getTagglyOpt(title,opt); + var pos = this.config.listOpts[opt].indexOf(current); + // a little usability enhancement. actually it doesn't work right for grouped or sitemap + var limit = (opt == "numCols" ? store.getTaggedTiddlers(title).length : this.config.listOpts[opt].length); + var newPos = (pos + 1) % limit; + return this.config.listOpts[opt][newPos]; + }, + + toggleTagglyOpt: function(title,opt) { + var newVal = this.getNextValue(title,opt); + this.setTagglyOpt(title,opt,newVal); + }, + + createListControl: function(place,title,type) { + var lingo = config.taggly.lingo; + var label; + var tooltip; + var onclick; + + if ((type == "title" || type == "modified" || type == "created")) { + // "special" controls. a little tricky. derived from sortOrder and sortBy + label = lingo.labels[type]; + tooltip = lingo.tooltips[type]; + + if (this.getTagglyOpt(title,"sortBy") == type) { + label += lingo.labels[this.getTagglyOpt(title,"sortOrder")]; + onclick = function() { + config.taggly.toggleTagglyOpt(title,"sortOrder"); + return false; + } + } + else { + onclick = function() { + config.taggly.setTagglyOpt(title,"sortBy",type); + config.taggly.setTagglyOpt(title,"sortOrder",config.taggly.config.listOpts.sortOrder[0]); + return false; + } + } + } + else { + // "regular" controls, nice and simple + label = lingo.labels[type == "numCols" ? type : this.getNextValue(title,type)]; + tooltip = lingo.tooltips[type == "numCols" ? type : this.getNextValue(title,type)]; + onclick = function() { + config.taggly.toggleTagglyOpt(title,type); + return false; + } + } + + // hide button because commas don't have columns + if (!(this.getTagglyOpt(title,"listMode") == "commas" && type == "numCols")) + createTiddlyButton(place,label,tooltip,onclick,type == "hideState" ? "hidebutton" : "button"); + }, + + makeColumns: function(orig,numCols) { + var listSize = orig.length; + var colSize = listSize/numCols; + var remainder = listSize % numCols; + + var upperColsize = colSize; + var lowerColsize = colSize; + + if (colSize != Math.floor(colSize)) { + // it's not an exact fit so.. + upperColsize = Math.floor(colSize) + 1; + lowerColsize = Math.floor(colSize); + } + + var output = []; + var c = 0; + for (var j=0;j<numCols;j++) { + var singleCol = []; + var thisSize = j < remainder ? upperColsize : lowerColsize; + for (var i=0;i<thisSize;i++) + singleCol.push(orig[c++]); + output.push(singleCol); + } + + return output; + }, + + drawTable: function(place,columns,theClass) { + var newTable = createTiddlyElement(place,"table",null,theClass); + var newTbody = createTiddlyElement(newTable,"tbody"); + var newTr = createTiddlyElement(newTbody,"tr"); + for (var j=0;j<columns.length;j++) { + var colOutput = ""; + for (var i=0;i<columns[j].length;i++) + colOutput += columns[j][i]; + var newTd = createTiddlyElement(newTr,"td",null,"tagglyTagging"); // todo should not need this class + wikify(colOutput,newTd); + } + return newTable; + }, + + createTagglyList: function(place,title) { + switch(this.getTagglyOpt(title,"listMode")) { + case "group": return this.createTagglyListGrouped(place,title); break; + case "normal": return this.createTagglyListNormal(place,title,false); break; + case "commas": return this.createTagglyListNormal(place,title,true); break; + case "sitemap":return this.createTagglyListSiteMap(place,title); break; + } + }, + + getTaggingCount: function(title) { + // thanks to Doug Edmunds + if (this.config.showTaggingCounts) { + var tagCount = store.getTaggedTiddlers(title).length; + if (tagCount > 0) + return " ("+tagCount+")"; + } + return ""; + }, + + getExcerpt: function(inTiddlerTitle,title,indent) { + if (!indent) + indent = 1; + if (this.getTagglyOpt(inTiddlerTitle,"excerpts") == "excerpts") { + var t = store.getTiddler(title); + if (t) { + var text = t.text.replace(/\n/," "); + var marker = text.indexOf(this.config.excerptMarker); + if (marker != -1) { + return " {{excerpt{<nowiki>" + text.substr(0,marker) + "</nowiki>}}}"; + } + else if (text.length < this.config.excerptSize) { + return " {{excerpt{<nowiki>" + t.text + "</nowiki>}}}"; + } + else { + return " {{excerpt{<nowiki>" + t.text.substr(0,this.config.excerptSize) + "..." + "</nowiki>}}}"; + } + } + } + else if (this.getTagglyOpt(inTiddlerTitle,"excerpts") == "contents") { + var t = store.getTiddler(title); + if (t) { + return "\n{{contents indent"+indent+"{\n" + t.text + "\n}}}"; + }