Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
On a sunny Saturday afternoon in June, Students from Charles Gorrie's Glasgow Wudang Tai Chi and the Edinburgh Wutan Tai Chi Clubs came together at Beeslack for a joint workshop. Charles led several coordination and pushing hands exercises to help loosen everyone before the Students split into different groups. Below is an example of the two person practice covered by one of the groups.
<html><center>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/GszxtxPh_CU&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/GszxtxPh_CU&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
</center>
</html>
[img(250px+,auto)[photos\charlie10_01.jpg]] [img(250px+,auto)[photos\charlie10_02.jpg]] [img(250px+,auto)[photos\charlie10_03.jpg]]
''10th December 2011''
Once again a great way to end the Wutan Tai Chi Chuan year with a Christmas Chinese banquet at the New Edinburgh Rendezvous. With lots to eat and drink, the banter was flowing freely and everyone enjoying the company having a chance to catch up on what was happening in the other classes within the Club as well as everyday life.
[img(250px+,auto)[photos\xmas11_01.jpg]] [img(250px+,auto)[photos\xmas11_02.jpg]] [img(250px+,auto)[photos\xmas11_03.jpg]] [img(250px+,auto)[photos\xmas11_04.jpg]] [img(250px+,auto)[photos\xmas11_05.jpg]] [img(250px+,auto)[photos\xmas11_06.jpg]] [img(250px+,auto)[photos\xmas11_07.jpg]] [img(250px+,auto)[photos\xmas11_08.jpg]] [img(250px+,auto)[photos\xmas11_09.jpg]] [img(250px+,auto)[photos\xmas11_10.jpg]] [img(250px+,auto)[photos\xmas11_11.jpg]] [img(250px+,auto)[photos\xmas11_12.jpg]] [img(250px+,auto)[photos\xmas11_13.jpg]] [img(250px+,auto)[photos\xmas11_14.jpg]] [img(250px+,auto)[photos\xmas11_15.jpg]] [img(250px+,auto)[photos\xmas11_16.jpg]] [img(250px+,auto)[photos\xmas11_17.jpg]] [img(250px+,auto)[photos\xmas11_18.jpg]] [img(250px+,auto)[photos\xmas11_19.jpg]] [img(250px+,auto)[photos\xmas11_20.jpg]] [img(250px+,auto)[photos\xmas11_21.jpg]] [img(250px+,auto)[photos\xmas11_22.jpg]] [img(250px+,auto)[photos\xmas11_23.jpg]] [img(250px+,auto)[photos\xmas11_24.jpg]]
Day and evening classes are held in Edinburgh, Penicuik, Currie, and Orkney - see below.
Workshops and special classes for groups can be arranged.
Private tuition is also available.
|''__Day__''|''__Location__''|''__Time__''|h
|''Monday''|Craiglockhart Sports Centre ''*'' (//Meditation//)|13:00 - 14:30|
| |Drummond High School (//Beginners//)|18:30 - 20:30|
| |Kirkwall Community Hall, Orkney|19:15 - 21:15|
|>|>|>|
|''Tuesday''|Meadowbank Sports Centre ''*'' (//Beginners from 10 Jan.//)|Noon - 13:30|
| |Southbridge Resource Centre (//Beginners//)|14:15 - 16:15|
| |Stromness Community Centre, Orkney|19:00 - 21:00|
|>|>|>|
|''Wednesday''|Appie's Tea Room, Orkney|10:00 - 12:00|
| |Drumbrae Leisure Centre ''*'' (//Intermediate//)|10:30 - 12:00|
| |Meadowbank Sports Centre ''*'' (//All levels//)|13:30 - 15:00|
| |The Royal Function Suite (//All levels Martial Class//)|19:00 - 21:00|
|>|>|>|
|''Thursday''|Craiglockhart Sports Centre ''*'' (//Beginners from 05 Jan.//)|11:30 - 13:00|
| |Craiglockhart Sports Centre ''*'' (//Intermediate//)|13:30 - 15:30|
| |Beeslack High School Penicuik (//All levels//)|19:00 - 21:00|
| |Glenogle Swim Centre ''*'' (//All levels//)|20:00 - 21:00|
|>|>|>|
|''Friday''|Drumbrae Leisure Centre ''*'' (//Beginners//)|13:30 - 15:00|
| |Bannatyne's Health Club Newcraighall (//Beginners//)|17:15 - 18:45|
|>|>|>|
|''Saturday''|Cluny Church Centre Morningside (//All levels//)|09:30 - 11:30|
|>|>|>|
| |''*'' Edinburgh Leisure classes| |
|borderless|k
''Club instructors:-''
Mike Henderson, Philip Cooney, Laurence Gilhooly, Kevin ~McMahon
Grenville Spruce, Philip Robertson, Bob Banks, Uta Priss, George ~McCleary
''James Connachan''
12 Silverburn Drive
Penicuik
~EH26 9AQ
Scotland
Telephone/Fax : ''01968 - 768201'' or
Email: ''wutan40@hotmail.com''
@@margin-left:.5em;<<slider chkContents SideBarTabs "contents »" "show
lists of tiddlers contained in this document">>@@
/***
|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]&¶ms[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|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);
}
//}}}
{{{
// Specify your account number here!
_uacct = "UA-17909031-1";
var pageTracker = _gat._getTracker(_uacct);
// CustomTracker as a namespace for tracking related functions
var CustomTracker = {
// store a reference to the original displayTiddler function
displayTiddler: story.displayTiddler
};
CustomTracker.track = function() {
if (readOnly) {
pageTracker._trackPageview.apply(this, arguments);
}
};
CustomTracker.trackAndDisplayTiddler = function(srcElement, titles) {
// log with the tracker
CustomTracker.track('/' + titles);
// call the original displayTiddler function
CustomTracker.displayTiddler.apply(this,arguments);
};
// replace the default displayTiddler function with a tracking version
story.displayTiddler = CustomTracker.trackAndDisplayTiddler;
// Call once for the initial page load
CustomTracker.track();
}}}
Another year and it is time for our workshop run by Dan Docherty. As always the workshop was well attended for both sessions. There was great variation from Hand Forms to two person practice Pushing Hands, applications from both Hand Form and Weapon forms. The detail given by Dan in everything practised was much appreciated by everyone taking part. Once again it was also great to get some practice with our brothers and sisters in Tai Chi Chuan from the clubs in the West completing a great day. On finishing everyone went away with enough to practise and talk about until next year. Our Thanks to Shifu Dan and as always looking forward to his return next year.
[img(250px+,auto)[photos\wshopdan11_01.jpg]] [img(250px+,auto)[photos\wshopdan11_02.jpg]] [img(250px+,auto)[photos\wshopdan11_03.jpg]] [img(250px+,auto)[photos\wshopdan11_04.jpg]] [img(250px+,auto)[photos\wshopdan11_05.jpg]] [img(250px+,auto)[photos\wshopdan11_06.jpg]] [img(250px+,auto)[photos\wshopdan11_07.jpg]]
[[Latest News]]
[[Principal Instructor]]
The following are available for download on pages throughout the Wutan Tai Chi Chuan web site and have been listed here for ease of access.
Each form can be either opened in your browser by double-clicking on the relevant link below or can be saved by right-clicking on the link and selecting 'Save link as...' in Firefox or 'Save target as...' in Internet Explorer.
Hand forms: [[Long Square Form|docs\Long_Square_Form.pdf]]
Weapon forms: [[Spear|docs\Spear_Form.pdf]], [[Sabre|docs\Sabre_Form.pdf]], [[Straight Sword|docs\Straight_Sword_Form.pdf]]
Also available from the following links are copies of the Club's Newsletters:
[[Autumn 2011 Newsletter|docs\TC_Newsletter_Autumn2011.pdf]], [[Spring 2011 Newsletter|docs\TC_Newsletter_Spring2011.pdf]], [[Spring 2010 Newsletter|docs\TC_Newsletter_Spring2010.pdf]], [[Spring 2009 Newsletter|docs\TC_Newsletter_Spring2009.pdf]]
And the World Tai Chi Day 2011 flyer:
[[World Tai Chi Day 2011 flyer|docs\WorldTaiChiDay2011.pdf]]
(A pdf reader can be downloaded and installed from [[Foxit|http://www.foxitsoftware.com/pdf/reader_2/down_reader.htm]] or [[Adobe|http://www.adobe.com/uk/products/acrobat/readstep2.html]]
|''__Date__''|''__Event__''|''__Location__''|h
|Sat 12 February, 9:30am - 1:30pm|[[Weekend Workshop]] - Forms|Cluny Church, Cluny Drive, Edinburgh|
|Sat 12 February, 2:00pm - 6:00pm|[[Weekend Workshop]] - Weapons|Cluny Church, Cluny Drive, Edinburgh|
|>|>|>|
|Sat 12 March, 9:30am - 1:30pm|[[Dan Docherty Workshop]] - Forms|Cluny Church, Cluny Drive, Edinburgh|
|Sat 12 March, 2:00pm - 6:00pm|[[Dan Docherty Workshop]] - Weapons|Cluny Church, Cluny Drive, Edinburgh|
|>|>|>|
|Sat 30 April, 9:45am - 12:00pm|[[World Tai Chi Day]]|Cluny Church, Cluny Drive, Edinburgh|
|>|>|>|
|Mon 04 to Fri 08 July, daily 10:00am - 4:00pm|[[Summer Course]]|Beeslack School, Penicuik, Midlothian|
|>|>|>|
|Sat 29 October, 9:30am - 1:30pm|[[Weekend Workshop]] - Forms|Cluny Church, Cluny Drive, Edinburgh|
|Sat 29 October, 2:00pm - 6:00pm|[[Weekend Workshop]] - Weapons|Cluny Church, Cluny Drive, Edinburgh|
|>|>|>|
|Sat 03 & Sun 04 December|[[Dan Docherty Workshop]]|Glasgow - Contact James|
|>|>|>|
|Sat 10 December, 7:30pm|[[Christmas]] Dinner|The New Edinburgh Rendezvous Restaurant|
|borderless|k
|''__Date__''|''__Event__''|''__Location__''|h
|Sat 25 February, 9:30am - 1:30pm ''@@color(yellow):**@@''|[[Weekend Workshop]] - Forms|Cluny Church, Cluny Drive, Edinburgh|
|Sat 25 February, 2:00pm - 6:00pm ''@@color(yellow):**@@''|[[Weekend Workshop]] - Weapons|Cluny Church, Cluny Drive, Edinburgh|
|>|>|>|
|Sat 31 March, 9:30am - 1:30pm ''@@color(yellow):**@@''|[[Dan Docherty Workshop]] - Forms|Cluny Church, Cluny Drive, Edinburgh|
|Sat 31 March, 2:00pm - 6:00pm ''@@color(yellow):**@@''|[[Dan Docherty Workshop]] - Weapons|Cluny Church, Cluny Drive, Edinburgh|
|>|>|>|
|Sat 28 April, 9:45am - 12:00pm|[[World Tai Chi Day]]|Cluny Church, Cluny Drive, Edinburgh|
|>|>|>|
|Mon 02 to Fri 06 July, daily 10:00am - 4:00pm|[[Summer Course]]|Beeslack School, Penicuik, Midlothian|
|>|>|>|
|Sat 27 October, 9:30am - 1:30pm|[[Weekend Workshop]] - Forms|Cluny Church, Cluny Drive, Edinburgh|
|Sat 27 October, 2:00pm - 6:00pm|[[Weekend Workshop]] - Weapons|Cluny Church, Cluny Drive, Edinburgh|
|>|>|>|
|Sat 01 & Sun 02 December ''@@color(yellow):**@@''|[[Dan Docherty Workshop]]|Glasgow - Contact James|
|>|>|>|
|Sat 08 December, 7:30pm ''@@color(yellow):**@@''|[[Christmas]] Dinner|The New Edinburgh Rendezvous Restaurant|
|borderless|k
''@@color(yellow):**@@'' To be confirmed.
!Square Form
Without doubt the hand forms are the best known part of ''Tai Chi Chuan'' as these are what everyone relates to having seen or, for that matter, practised first when starting to learn ''Tai Chi Chuan''. The first form practised is known as the [[Long Square Form|Long_Square_Form.pdf]] not because the movements are square in shape but that they are broken down into individual parts which allow us to see what is contained from beginning to end of each posture. The ''Square Form'' also allows the student to relate to each posture by name and to see where each posture starts and finishes. It is also the start of learning the techniques which are required to form good strong foundations for the further practice of ''Tai Chi Chuan''. On completing the ''Square Form'', after a further period of practice, the length of which is usually decided by the instructor, the student will be ready to start practising the ''Round Form''.
!Round Form
The ''Round Form'' contains the same postures as the ''Square Form'', differing in that the movements in the ''Round Form'' are performed free flowing and continuous. This means that what the student has already developed through practising the ''Square Form'' is taken a stage further in the ''Round Form'', allowing individual expression of the feeling and interpretation of the free flowing continuous movements.
var f=config.formatters[config.formatters.findByField("name","image")];
f.match="\\[[<>]?[Ii][Mm][Gg](?:\\([^,]*,[^\\)]*\\))?\\[";
f.lookaheadRegExp=/\[([<]?)(>?)[Ii][Mm][Gg](?:\(([^,]*),([^\)]*)\))?\[(?:([^\|\]]+)\|)?([^\[\]\|]+)\](?:\[([^\]]*)\])?\]/mg;
f.handler=function(w) {
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
var floatLeft=lookaheadMatch[1];
var floatRight=lookaheadMatch[2];
var width=lookaheadMatch[3];
var height=lookaheadMatch[4];
var tooltip=lookaheadMatch[5];
var src=lookaheadMatch[6];
var link=lookaheadMatch[7];
// Simple bracketted link
var e = w.output;
if(link) { // LINKED IMAGE
if (config.formatterHelpers.isExternalLink(link)) {
if (config.macros.attach && config.macros.attach.isAttachment(link)) {
// see [[AttachFilePluginFormatters]]
e = createExternalLink(w.output,link);
e.href=config.macros.attach.getAttachment(link);
e.title = config.macros.attach.linkTooltip + link;
} else
e = createExternalLink(w.output,link);
} else
e = createTiddlyLink(w.output,link,false,null,w.isStatic);
addClass(e,"imageLink");
}
var img = createTiddlyElement(e,"img");
if(floatLeft) img.align="left"; else if(floatRight) img.align="right";
if(width||height) {
var x=width.trim(); var y=height.trim();
var stretchW=(x.substr(x.length-1,1)=='+'); if (stretchW) x=x.substr(0,x.length-1);
var stretchH=(y.substr(y.length-1,1)=='+'); if (stretchH) y=y.substr(0,y.length-1);
if (x.substr(0,2)=="{{")
{ try{x=eval(x.substr(2,x.length-4))} catch(e){displayMessage(e.description||e.toString())} }
if (y.substr(0,2)=="{{")
{ try{y=eval(y.substr(2,y.length-4))} catch(e){displayMessage(e.description||e.toString())} }
img.style.width=x.trim(); img.style.height=y.trim();
config.formatterHelpers.addStretchHandlers(img,stretchW,stretchH);
}
if(tooltip) img.title = tooltip;
// GET IMAGE SOURCE
if (config.macros.attach && config.macros.attach.isAttachment(src))
src=config.macros.attach.getAttachment(src); // see [[AttachFilePluginFormatters]]
else if (config.formatterHelpers.resolvePath) { // see [[ImagePathPlugin]]
if (config.browser.isIE || config.browser.isSafari) {
img.onerror=(function(){
this.src=config.formatterHelpers.resolvePath(this.src,false);
return false;
});
} else
src=config.formatterHelpers.resolvePath(src,true);
}
img.src=src;
w.nextMatch = this.lookaheadRegExp.lastIndex;
}
}
config.formatterHelpers.addStretchHandlers=function(e,stretchW,stretchH) {
e.title=((stretchW||stretchH)?'DRAG=stretch/shrink, ':'')
+'SHIFT-CLICK=show full size, CTRL-CLICK=restore initial size';
e.statusMsg='width=%0, height=%1';
e.style.cursor='move';
e.originalW=e.style.width;
e.originalH=e.style.height;
e.minW=Math.max(e.offsetWidth/20,10);
e.minH=Math.max(e.offsetHeight/20,10);
e.stretchW=stretchW;
e.stretchH=stretchH;
e.onmousedown=function(ev) { var ev=ev||window.event;
this.sizing=true;
this.startX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
this.startY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
this.startW=this.offsetWidth;
this.startH=this.offsetHeight;
return false;
};
e.onmousemove=function(ev) { var ev=ev||window.event;
if (this.sizing) {
var s=this.style;
var currX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
var currY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
var newW=(currX-this.offsetLeft)/(this.startX-this.offsetLeft)*this.startW;
var newH=(currY-this.offsetTop )/(this.startY-this.offsetTop )*this.startH;
if (this.stretchW) s.width =Math.floor(Math.max(newW,this.minW))+'px';
if (this.stretchH) s.height=Math.floor(Math.max(newH,this.minH))+'px';
clearMessage(); displayMessage(this.statusMsg.format([s.width,s.height]));
}
return false;
};
e.onmouseup=function(ev) { var ev=ev||window.event;
if (ev.shiftKey) { this.style.width=this.style.height=''; }
if (ev.ctrlKey) { this.style.width=this.originalW; this.style.height=this.originalH; }
this.sizing=false;
clearMessage();
return false;
};
e.onmouseout=function(ev) { var ev=ev||window.event;
this.sizing=false;
clearMessage();
return false;
};
}
/*{{{*/
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 5, date: new Date(2009,4,11)};
config.formatters.push( {
name: "inlineJavascript",
match: "\\<script",
lookahead: "\\<script(?: src=\\\"((?:.|\\n)*?)\\\")?(?: label=\\\"((?:.|\\n)*?)\\\")?(?: title=\\\"((?:.|\\n)*?)\\\")?(?: key=\\\"((?:.|\\n)*?)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",
handler: function(w) {
var lookaheadRegExp = new RegExp(this.lookahead,"mg");
lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = lookaheadRegExp.exec(w.source)
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
var src=lookaheadMatch[1];
var label=lookaheadMatch[2];
var tip=lookaheadMatch[3];
var key=lookaheadMatch[4];
var show=lookaheadMatch[5];
var code=lookaheadMatch[6];
if (src) { // external script library
var script = document.createElement("script"); script.src = src;
document.body.appendChild(script); document.body.removeChild(script);
}
if (code) { // inline code
if (show) // display source in tiddler
wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
if (label) { // create 'onclick' command link
var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",wikifyPlainText(label));
var fixup=code.replace(/document.write\s*\(/gi,'place.bufferedHTML+=(');
link.code="function _out(place,tiddler){"+fixup+"\n};_out(this,this.tiddler);"
link.tiddler=w.tiddler;
link.onclick=function(){
this.bufferedHTML="";
try{ var r=eval(this.code);
if(this.bufferedHTML.length || (typeof(r)==="string")&&r.length)
var s=this.parentNode.insertBefore(document.createElement("span"),this.nextSibling);
if(this.bufferedHTML.length)
s.innerHTML=this.bufferedHTML;
if((typeof(r)==="string")&&r.length) {
wikify(r,s,null,this.tiddler);
return false;
} else return r!==undefined?r:false;
} catch(e){alert(e.description||e.toString());return false;}
};
link.setAttribute("title",tip||"");
var URIcode='javascript:void(eval(decodeURIComponent(%22(function(){try{';
URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g,' ')));
URIcode+='}catch(e){alert(e.description||e.toString())}})()%22)))';
link.setAttribute("href",URIcode);
link.style.cursor="pointer";
if (key) link.accessKey=key.substr(0,1); // single character only
}
else { // run script immediately
var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
var c="function _out(place,tiddler){"+fixup+"\n};_out(w.output,w.tiddler);";
try { var out=eval(c); }
catch(e) { out=e.description?e.description:e.toString(); }
if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
}
}
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
}
}
} )
if (typeof(wikifyPlainText)=="undefined") window.wikifyPlainText=function(text,limit,tiddler) {
if(limit > 0) text = text.substr(0,limit);
var wikifier = new Wikifier(text,formatter,null,tiddler);
return wikifier.wikifyPlain();
}
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
/*}}}*/
The Internal Exercises consist of Twelve ''Yin'' exercises and Twelve ''Yang'' exercises. These were originally taught first but, due to changing times and circumstances, they are generally taught at the discretion of the instructor at a later stage in the student's training.
The art of [[Tai Chi Chuan]] has in itself changed greatly since conception in the way it is taught. Whether for health or as a martial art it has stood the test of time and will continue to develop.
''China Trip September 2010''
Well, the China trip has come and gone but what a lot of memories it has left behind. It may take the rest of this year and longer to let them sink in. I have to thank Sifu Dan Docherty for making the trip possible. Without his knowledge and expertise it would not have been possible to have visited and seen so many interesting temples and venues related to Wudang Tai Chi Chuan and those responsible for its concept. The group in total was nine a few more than Dan would normally take. This of course made the evening discussions all the more interesting. As a mixed group everything was covered from health to martial which made for interesting listening and debate.
[img(250px+,auto)[photos\china10_01.jpg]]
We started in Beijing visiting the Forbidden City, The Summer Palace, and The White Cloud Temple. The Forbidden City would have been where Yang Lu Chan spent a number of years as instructor to the Imperial Guard. The Summer Palace was where the Emperor and his family would have stayed over the summer months. This was not far from the Forbidden City and within easy travelling distance for the Emperor. The White Cloud Temple was where Zhen Wu said to be the founder of Chinese martial arts was in residence and contained many references to Chinese martial arts.
[img(250px+,auto)[photos\china10_02.jpg]]
We did not have a great deal of time to spend in each place but long enough to take in all the surroundings and enjoy the ambience that each had to offer. The entire above are now becoming very commercial but I suppose like everywhere money is required for the upkeep of such beautiful buildings and contents. From Beijing we flew to Wuhan and from there by minibus to Wudang a lengthy journey but well worth the effort. We watched some of the selections for the Wudang world championship Wushu team being held the day after we arrived in Wudang. In Wudang we also visited the new museum which houses many artefacts from the surrounding temples. Of course the main objective was to go to the top of Wudang Mountain which we achieved.
[img(250px+,auto)[photos\china10_03.jpg]]
This was quite a climb and as it was raining on that day it made the journey up very demanding. I have to say it was well worth the climb passing through the varying levels and taking in all the different pieces of the history on the way up. The final steps to the top were almost vertical but again well worth the effort. Had the weather been clear and not misty the views would have been panoramic. Although the mist made what could be seen a haunting vision it was also in its own way beautiful this added to the memories.
[img(250px+,auto)[photos\china10_04.jpg]]
Going back down was easier but care still had to be taken as the steps were not always the same size which meant constant concentration was required in order to avoid any accidents. On reaching the bottom it was into the restaurant to eat a hearty meal with numerous cups of Chinese tea finishing with a bus trip back to our hotel. We visited a number of temples during our stay in Wudang finishing with the Five Dragons Temple which was one of the oldest remaining temples in Wudang and at this time relatively untouched. A government official had to be organised to take us in to the temple this was arranged by a friend of Dan without whom it would not have been possible. We took the longer route in taking approximately two hours and as the weather was sunny this offered many panoramic views.
Our lunch stop was a short walk from the temple which was just as well. The lunch consisted of many varying dishes one of which was a delicacy offered to Dan as he was the leader of the group. This Dan consumed as it would have been seen as bad manners not to have eaten this delicacy (chicken heads). It seems Tai Chi gives the mental strength to achieve some amazing deeds. We were also given a more pleasant treat known as Yellow Wine. This is a wine made by the locals which on consumption of more than three small glasses has a profound effect in that mentally you feel OK but as soon as you go to walk the bottom half of the body has a mind of its own. Needless to say the short walk to the temple after lunch was much appreciated although there were a number of bodies fell from the path into the bushes and had to be assisted back on to the path and down to the temple. It was a very small temple set in beautiful surroundings truly a site to behold again not much time but long enough to enjoy the temple and its surroundings.
[img(250px+,auto)[photos\china10_05.jpg]]
The walk back to the mini bus only took about twenty minutes and as everyone was starting to get the hang of learning to walk again after the Yellow Wine it was without event. On returning to the hotel it was a quick freshen up back in the bus then on to a Wushu School where we were given a demonstration of Wushu hand form. After watching the demo we were asked to demonstrate our style which would normally have been no problem but as learning to walk again after the Yellow Wine was just starting to materialise it was a bit difficult however we managed to rise to the occasion and all went well.
Next day it was breakfast into the mini bus for a short two hour journey to the train station and back to Wuhan this time in a Bullet Train. Very speedy and of course comfortable the swords some had purchased in the hotel centre had to be sent on a separate train for security reasons and we were able to collect them the following day at the rail station in Beijing. The flight form Wuhan back to Beijing was on time and unhindered allowing us time to get back to the hotel to rebook the final few days of our trip. It was quite late but we managed to get something to eat then of to bed.
Our final days in Beijing were also great as Dan had planned a very busy time going to the Yonghe Gong Lama Temple, Tiananmen Square, The Summer Palace which had been devastated by the allied forces during the Second World War our ancestors have in this case a lot to answer for as it was extensive and intentional. The summer palace was visited on our last day where we enjoyed hiring a couple of boats and rowing our way round part of the lake within the grounds. Before returning to the airport for our flight home we were taken to a very up market shopping centre to do a little last minute shopping. This was completed by our final meal in what I can only say was the biggest restaurant I have been in and it was on three floors of equal size each floor able to hold at least at a guess two or three hundred people. It was a grand meal consisting of a number of dishes including four ducks each of which came with its own card containing the coded information on where it came from and a chef who plated it to the preference of the table. Before long we were back at Beijing airport and on our way home. Flights were on time making a very enjoyable return flight home. What a journey what an experience forever to be remembered.
[img(250px+,auto)[photos\china10_06.jpg]] [img(250px+,auto)[photos\china10_07.jpg]] [img(250px+,auto)[photos\china10_08.jpg]]
''December''
The [[Christmas]] night-out photos on display.
Wishing you and your families a Merry Christmas and a Happy New Year.
Links To Other Tai Chi Sites
''Dan Docherty'': [[http://www.taichichuan.co.uk/|http://www.taichichuan.co.uk/]]
''British Council For Chinese Martial Arts'': [[http://www.bccma.com/|http://www.bccma.com/]]
''Tai Chi Union For Great Britain'': [[http://www.taichiunion.com/|http://www.taichiunion.com/]]
[img[World Tai Chi Day|WTCDaylogo.jpg][http://www.worldtaichiday.org/]]
!Main Menu
[[Latest News]] ''@@color(yellow):*@@''
[[Principal Instructor]]
[[Tai Chi Chuan]]
Five Aspects
- [[Hand Forms]]
- [[Pushing Hands]]
- [[Martial Applications]]
- [[Weapon Forms]]
- [[Internal Exercises]]
[[Yin and Yang]]
[[Moving Meditation]]
[[Classes]]
[[Merchandise]]
[[Downloads]]
[[Contact Me]]
[[Links]]
Events and Photos
- [[Event Calendar 2012]]
- [[James Visits China]]
- [[A Day With Charles Gorrie]]
- [[Christmas]]
- [[Dan Docherty Workshop]]
- [[Summer Course]]
- [[Weekend Workshop]]
- [[World Tai Chi Day]]
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-17909031-1");
pageTracker._trackPageview();
} catch(err) {}</script>
<p></p>
<div id="mastHead">
<p align="center">
<applet code="AnWater.class" width=397 height=94>
<param name="credits" value="Applet by Fabio Ciucci (www.anfiteatro.it/java.html)">
<param name="res" value="1">
<param name="image" value="yinyang1.gif">
<param name="light" value="YES">
<param name="autodesign" value="YES">
<param name="density" value="4">
<param name="fishnum" value="0">
<param name="cross" value="NO">
<param name="crossfactor" value="30">
<param name="rainsize" value="0">
<param name="rainfactor" value="10">
<param name="srainsize" value="0">
<param name="srainfactor" value="10">
<param name="memdelay" value="1000">
<param name="priority" value="3">
<param name="MinSYNC" value="10">
<param name="textscroll" value="waterscr.txt">
<param name="textoffset" value="140">
<param name="textspeed" value="1">
<param name="textfont" value="Arial">
<param name="textbold" value="NO">
<param name="textsize" value="24">
<param name="textshadow" value="YES">
<param name="TextSColR" value="20">
<param name="TextSColG" value="20">
<param name="TextSColB" value="50">
<param name="TextColR" value="200">
<param name="TextColG" value="255">
<param name="TextColB" value="190">
<param name="TextJumpAmp" value="1">
<param name="TextJumpSpd" value="0">
<param name="TextSineAmp" value="1">
<param name="TextSineSpd" value="0">
<param name="TextSineAngle" value="0">
<param name="regcode" value="NO">
<param name="reglink" value="NO">
<param name="regnewframe" value="NO">
<param name="regframename" value="_blank">
<param name="statusmsg" value="Wutan Java">You either have Java disabled or your browser doesn't support Java. Try Internet Explorer from Microsoft: http://www.microsoft.com/windows/internet-explorer/default.aspx </applet></div>
We take the two person practice a stage further by applying what has been taught and practised into the martial application of the movements contained within the ''Hand Form''. These movements often have more than one application and can also vary greatly in appearance with regards to the [[Hand Forms]]. The [[Hand Forms]] are not a martial set of applications as in external style Katas but rather a set of free flowing movements meant to develop and enhance the basic principles.
<span class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></span>
<span class='title'>
<span class='floatleft' macro='tiddlerIcons' style='cursor:auto !important;'></span>
<span macro='view title'></span>
</span>
<span class='subtitle'>
<span style='white-space:nowrap' macro='view modified date [[DDD, MMM DDth YYYY]]'></span>
</span>
<div class='tagClear'></div>
<div class='viewer'>
<div class='floatright smallform' macro='storyViewer media list allbuttons'></div>
<div class='big' macro='view mediatitle wikified'></div>
<hr>
<table class='borderless' style='width:100%'><tr valign='top'>
<td style='width:50%' rowspan='2'>
<div macro='wikify "{{stretch{<<player [[id=%0]] [[%1]] [[%2]] [[%3]] [[%4]] [[%5]] [[%6]]>>}}}"
title mediatype mediaurl width height autoplay showcontrols'></div>
<div style='text-align:center'>
<span class='smallform' macro='checkbox autoplay@'></span>
<span class='small'>autoplay</span>
<span class='smallform' macro='checkbox showcontrols@ checked'></span>
<span class='small'>show controls</span>
</div>
</td>
<td style='width:50%' valign=top>
<div class='fine floatright'>group:<span macro='wikify %0 groupid'></span></div>
<div class='fine'>notes:</div>
<div class='small groupbox' macro='view text wikified'></div>
</td></tr><tr><td valign=bottom>
<form target="responseframe" method="post" enctype="multipart/form-data" action="">
<div class='fine bold italic'>If you would like to ask a question or make a comment:</div>
<div class='small groupbox'>
<div style='display:block';>
<textarea name="answer" style='width:100%;height:6em' rows="6"></textarea>
<div class='center'>
<span class='fine bold italic'>Enter your message, then press </span>
<!-- hidden values set by onclick handler below -->
<input type="hidden" name="username" value="txtUserName">
<input type="hidden" name=itemid value="code#">
<input type="hidden" name=okPage value="URL">
<input type="hidden" name=retryPage value="URL">
<input type="submit" value="send"
onclick="var tid=story.findContainingTiddler(this).getAttribute('tiddler');
var action=store.getValue(tid,'act');
var ok=store.getValue(tid,'ok');
var retry=store.getValue(tid,'retry');
var defaults=store.getTiddlerText('DefaultResponder','').split('\n');
this.form.action=action?action:defaults[0];
this.form.okPage.value=ok?ok:defaults[1];
this.form.retryPage.value=retry?retry:defaults[2];
this.form.itemid.value=store.getValue(tid,'itemid');
if (config.macros.setUserName.handler) config.macros.setUserName.handler();
this.form.username.value=config.options.txtUserName;
this.parentNode.parentNode.style.display='none';
this.parentNode.parentNode.nextSibling.style.display='block';
if (!this.form.action.length) {
var f=this.parentNode.parentNode.nextSibling.firstChild;
var d=f.document;
if (f.contentDocument) d=f.contentDocument; // For NS6
else if (f.contentWindow) d=f.contentWindow.document; // For IE5.5 and IE6
d.open();
d.writeln('<font size=-1><i>A responder URL has not been defined.<br>');
d.writeln('Your response was not sent.</i></font>');
d.close();
return false;
}
">
</div>
</div><div style='display:none'><iframe
src="" name="responseframe" id="responseframe"
style="height:7em;width:100%;">
</iframe>
<div class='center medium'>
<input type='button' value='try again...'
title='edit and resend your response'
onclick='var here=this.parentNode.parentNode;
here.style.display="none"; here.previousSibling.style.display="block";'>
<input type='button' value='next item...'
onmouseover='var tid=story.findContainingTiddler(this).getAttribute("tiddler");
this.title="proceed to "+store.getValue(tid,"next");'
onclick='var tid=story.findContainingTiddler(this).getAttribute("tiddler");
var next=store.getValue(tid,"next");
if (next&&next.length) story.displayTiddler(null,next);
else displayMessage("There is no next item...");'>
</div>
</div>
</div>
</form>
</td>
</tr></table>
<div class='tagClear'></div>
</div>
''~DVDs'' - ~DVDs are now available. These are:
'''The Eight Strands Of Brocade'' - practice The Eight Strands Of Brocade with James. Includes explanations of each of The Eight Strands, the warm ups, and the cool downs. A great reminder of the breathing and the benefits of each posture.
''The Short Square Form'' - a teaching form that was devised by James Connachan to be used in The Duke Of Edinburgh Award Scheme. This form is taught over a period of ten weeks. Also included is a closer look at three of the Short Square Form's postures.
''The Long Square Form'' - a teaching form which gives the student an opportunity to build the strong foundations required to practise other inter-related parts of ''[[Tai Chi Chuan]]''. The Form takes approximately 20 minutes to perform and anything from nine months to a year to learn. Again, a closer look at a number of postures is included.
''The Long Round Form'' - the postures and sequence are the same as the Long Square Form but, in the Long Round Form, they are performed in a continuous free flowing manner. On this DVD, six postures are shown in more detail.
''Book'' - Wutan Tai Chi Chuan - A practical introduction - Author James Connachan
The above book is a practical introduction for anyone who would like to practice the Chinese Martial art of ''[[Tai Chi Chuan]]''. Contained within the book is the theory that is applied through the individual movements of the Hand Form combined with the basic health benefits to be derived from the practice.
As the initial ''[[Hand Forms]]'' are known as Long Forms, James has devised a short 29 posture Hand Form which gives the beginner the opportunity to practice a Hand Form which is possible to follow and complete. The Long Hand Form having approximately 119 postures makes completing the Long Form a daunting task showing the advantage of initially starting with the Short Form.
The Short Form is shown in picture format within the book with directions for hand and foot movements. There is also a description of the basic theory from Yin and Yang through to the Eight Trigrams which relate to the Eight Powers. These combine with the Five Elements which relate to the Five Directions. The theory required for 2 person practice is also contained within the book. The book is 89 pages in length and is written in a way that is easy to understand and follow.
''Videos - ~T-Shirts - Badges'' are also available
[[Tai Chi Chuan]] is often referred to as moving meditation, however, until you practise the art yourself you don't realise just how much depends on the constant flow of thought.
At first it seems like an impossible task having to remember all the theory that is required within the practice. Only with constant repetition does it slowly start to arrive and you find that what at first had to be thought of then applied, has now become an internal awareness of what is happening. An example of this would be the alternation of ''Yin'' and ''Yang'' within the legs in movement, which also combines with the pushing and pulling through the feet. This in turn links via the free turning of the waist with the upper body allowing the pushing and pulling to be felt in the arms and expressed in the hands.
There can be no time limit put on how long it will take before this starts to happen as it depends on the amount of daily practice the individual makes combined with continual guidance from your ''Sifu'' (Instructor). Each time you practise should be as if it were the first time. In other words, you should always retain that eagerness to learn and improve, never practising with the thought that repetition alone will suffice.
The combination of both mind and body follows on from the [[Hand Forms]], which are a solo practice, into the two person routines. Again, you are taking the combination of mind and body a stage further by learning how to relax even more, both mentally and physically whilst at the same time working with a partner. Although, at this stage, it would seem that it should be a natural progression from solo practice to two person practice, we once again find that the use of the mind to guide the body has to be applied by extending the previous theory with the ''"5 Step Path"'' (''Adherence'', ''Softness'', ''Spontaneity'', ''Yielding'', ''Never using Brute Force'') which is the connection from solo practice into two person practice.
There are, unfortunately, no short cuts in learning how to use the mind and body in this way. Only with continual practice, with many different partners, linked to constant guidance from your ''Sifu'', can you hope to achieve the mental and physical development required.
The combination of mind and body is like the ''Tai Chi'', circular and never ending but, although taking a lifetime to learn, is also very enjoyable and satisfying along the way.
<!--{{{-->
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='macro' force='true' macro='slider chkSideBarTabs SideBarTabs "index »" "display lists of tiddlers"'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
In ''1968'', ''James Connachan'' started in the martial arts, practising ''Wado Ryu'' karate, which he continued until ''1975''. It was about this time the martial arts started to blossom in that there were a number of different styles of martial art appearing in the West. One of these was ''Tai Chi Chuan''. James's practice in this Chinese martial art started in ''1977'' and he has been teaching since ''1983''. In ''1989'', James became qualified to teach all five aspects which are:
*''[[Hand Forms]]''
*''[[Pushing Hands]]''
*''[[Martial Applications]] and San Shou''
*''Yin and Yang [[Internal Exercises]]''
*''[[Weapon Forms]] (Spear - Sabre - Straight Sword)''
In addition, James is qualified to teach ''Baduanjin Qigong'' and the ''Eight Strands of Brocade''.
James devised the ''Tai Chi Chuan'' syllabus for the Duke Of Edinburgh Award Scheme at Bronze, Silver and Gold Levels. Over the years he has had a number of articles published on ''Tai Chi Chuan''.
James is a registered instructor with :-
*The ''Hong Kong Tai Chi Institute''
*The ''British Council For Chinese Martial Arts'' - which is the only official governing body for Chinese martial arts in the UK
*The ''Tai Chi Union'' for Great Britain.
There are eight major sets of ''Pushing Hands''. Again the student is using what has been developed through the practice of the [[Hand Forms]] and applying this through practice with a partner moving from solo practice to two person practice. The connection between solo practice and two person practice is known as ''"The Five Step Path"''. These five parts are ''Adherence'', ''Softness'', ''Spontaneity'', ''Yielding'' and the ''Lack of the use of Brute Force''.
''Adherence'' means keeping constant contact with your partner or opponent. Only by keeping constant contact can you control their move.
''Softness'' means that the muscles must be very relaxed and by keeping contact with relaxed muscles you can then sense through touch when your partner or opponent is going to move.
''Spontaneity'' means that through relaxed contact and softness we must move at the same time and speed as our partner or opponent.
''Yielding'' means on moving we must move in the direction of our partner's or opponent's force.
''Lack of Brute Force'' means that we must always endeavour to use the above principles to achieve the end result and never apply or confront a partner or opponent with brute force as in doing so the victor would always be the stronger person.
In applying the ''"Five Step Path"'' we are in effect using the co-ordination of both mind and body.
/***
|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;
}
//}}}
config.options.chkSinglePageMode=true;
information about your Club
/*{{{*/
#sidebarTabs .button {
margin:0em 0.2em;
padding:0.2em 0.3em;
display:block;
}
#mainmenu a {color:black;}
#mainmenu a:hover {background:red; font-weight:bold; color:white;}
h1,h2,h3,h4,h5,h6 {color:black; background:transparent;}
.title {color:black;}
.button {background:red; color:black; border:0px;}
.toolbar a {color:red;}
.selected .toolbar a {color:white;}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}
#sidebarOptions .sliderPanel {background:red;}
#mastHead{
position:relative;
vertical-align:top;
margin: 0px 0px 2px 0px;
padding: 0px 0px 0px 0px;
height: 100px;
}
#mastHead img{ float:center;
}
body {
background:red;
}
.viewer table.borderless,
.viewer table.borderless * {
border: 0;
}
/*}}}*/
There is a summer course held each year for all levels of student from beginner to advanced. Outdoor and indoor facilities are available in the beautiful countryside, 11 miles South of Edinburgh, with easy access, on a main bus route.
The next course will be from Monday 2nd July to Friday 6th July 2012 (to be confirmed). For course details and an application form, please send a stamped, addressed envelope to James Connachan (see Contact Me page for address)
''Summer Course - 4th to 8th July 2011''
This year was the 14th that James has organised a summer course within the extensive grassland surrounding Beeslack High School in Penicuik, giving his students the opportunity to practise for five hours each day in the open air when the weather was appropriate.
The benefits of this were felt by all the participants and with great enthusiasm they expressed their appreciation.
* This was a super week and I'm so glad I came. I've learned a lot and it's been really enjoyable. The time has gone in too quickly!
* I felt very tired at the end of the first day but as the week progressed my energy increased. My limbs felt lighter, my joints are more supple and I've had the best night's sleep for ages.
* I was apprehensive about being a rookie amongst experts but everyone was so friendly I soon felt at ease. I'm so aware how much my form has improved with daily practice. Looking forward to next year's course!
* It's been a very good week and being made aware of the relationship between applications and form has given meaning to the moves.
* I like the format of the course and incorporating the theory into the practice is so helpful. There is great value in being in a group - questioning and discussion extends your own knowledge. My ultimate aim is to become an instructor.
* The best bits - apart from the Tai Chi - are the social aspects over lunch. We have progressed this week - we might even be doing some of the moves correctly! We've been on every Summer Course bar one and wouldn't miss it for the world.
* This has been an excellent course and I've made great progress. James has inspired me and hearing about the Chinese philosophy and the Masters makes me feel proud of my country. My ambition is to beat James one day!
* The group support has been really helpful. My breathing is deeper and more relaxed. I'd like another week in the Oct/Nov period.
* Of all the hints and tips this week perhaps the best points on performing were:
** To take the time to complete each posture correctly.
** To feel the shapes of your postures.
** To be aware of the coordination and the timing of the movements.
* I am aware of both the physical and mental benefits of practising Tai Chi and it certainly works in reducing stress and controlling the way we react in difficult situations. We have a good example of this in James and indeed he has coped with the trials of moving house during the period of the course - living proof that Tai Chi does work.
All of us are grateful to have had this opportunity of developing our understanding and working with friends we have made over the years as well as making new ones. Having the benefit of additional help from Philip, Grenville and Bob has enhanced the whole experience and we hope that all four teachers enjoyed their week as much as we did.
Your roving reporter - ''Nan''.
[img(250px+,auto)[photos\summer11_01.jpg]] [img(250px+,auto)[photos\summer11_02.jpg]] [img(250px+,auto)[photos\summer11_03.jpg]] [img(250px+,auto)[photos\summer11_04.jpg]] [img(250px+,auto)[photos\summer11_05.jpg]] [img(250px+,auto)[photos\summer11_06.jpg]] [img(250px+,auto)[photos\summer11_07.jpg]] [img(250px+,auto)[photos\summer11_08.jpg]] [img(250px+,auto)[photos\summer11_09.jpg]] [img(250px+,auto)[photos\summer11_10.jpg]] [img(250px+,auto)[photos\summer11_11.jpg]] [img(250px+,auto)[photos\summer11_12.jpg]] [img(250px+,auto)[photos\summer11_13.jpg]] [img(250px+,auto)[photos\summer11_14.jpg]] [img(250px+,auto)[photos\summer11_15.jpg]] [img(250px+,auto)[photos\summer11_16.jpg]] [img(250px+,auto)[photos\summer11_17.jpg]] [img(250px+,auto)[photos\summer11_18.jpg]]
How many times have you heard people say that they will have to start doing some sort of exercise on a regular basis? Today there are a great number of methods on offer and our only problem is choosing which one we think will be suitable. Whatever our choice the only way forward is by commitment to regular practice.
''Tai Chi Chuan'' is a Chinese martial art which is becoming very popular and is suitable for all ages. Its health giving benefits are known throughout the world. Regular practice will help to strengthen all the internal working organs, reduce stress and tension, co-ordinate the mind and body and give a general feeling of well being.
Unlike ''Tai Chi Chuan'', many forms of exercise are not suitable for everyone as they can be very strenuous. This means the length of time practised depends on the individual's stamina, as they have to stop at set intervals to recharge their batteries in order to continue the exercises.
During the practice of ''Tai Chi Chuan'' the mind is exercised as well as the body. The [[Hand Forms]] appear as slow, smooth flowing and relaxed movements meaning the length of time taken by the person performing the movements does not depend on their stamina but on how long they choose to practise.
Going from the applications we move on to the weapons ~ [[Spear|Spear_Form.pdf]] ~ [[Sabre|Sabre_Form.pdf]] ~ [[Straight Sword|Straight_Sword_Form.pdf]]. Two of the forms, ''Spear'' and ''Sabre'' are known as Tiger forms which are practised in a relatively low posture and are flowing and fierce in appearance. The ''Straight Sword'', in contrast, is generally slower and more delicate in appearance. The weapons can of course be discarded, allowing practice as [[Hand Forms]] instead. This allows the student to see just how much influence the weapon has with regards to the practice of the form.
Two workshops are held each year for all levels of student from beginner to advanced.
The workshops usually take place on the last Saturday of February and October each year. They are held in Cluny Church Hall, Cluny Drive, Edinburgh ~EH10 6DN
The workshops for 2011 were Saturday 12 February and Saturday 29 October. Each day is split into two - 09:30am to 1:30pm for all students to learn and to practise the hand forms and applications, and 2:00pm to 6:00pm for all students to learn and to practise any weapon form and weapon applications.
__Saturday 29 October__
The Saturday morning session went well covering both Square and Round hand forms with time spent on going over a few of the postures. We looked at Parting the Wild Horses Main and its applications showing how it can be used in reality. Also covered in this workshop was Single pushing hands and Four corners pushing hands. Time was taken to see and realise correct body alignment within the practice of the pushing hands sets. The afternoon session covered practice of the weapon forms followed by practice of applications contained within all three weapon forms, Straight Sword, Broadsword and Spear. We also had a look at Short Stick practice and applications. All in all a demanding but worthwhile session which everyone from feed back enjoyed.
[img(250px+,auto)[photos\wshopoct11_01.jpg]] [img(250px+,auto)[photos\wshopoct11_02.jpg]] [img(250px+,auto)[photos\wshopoct11_03.jpg]] [img(250px+,auto)[photos\wshopoct11_04.jpg]] [img(250px+,auto)[photos\wshopoct11_05.jpg]] [img(250px+,auto)[photos\wshopoct11_06.jpg]] [img(250px+,auto)[photos\wshopoct11_07.jpg]] [img(250px+,auto)[photos\wshopoct11_08.jpg]] [img(250px+,auto)[photos\wshopoct11_09.jpg]] [img(250px+,auto)[photos\wshopoct11_10.jpg]] [img(250px+,auto)[photos\wshopoct11_11.jpg]] [img(250px+,auto)[photos\wshopoct11_12.jpg]]
World Tai Chi Day was on Saturday 30 April. We have collected £2,746.49 for our sponsored charity, Parkinsons Disease Scotland.
[img(250px+,auto)[photos\wtcday11_00.jpg]] [img(250px+,auto)[photos\wtcday11_01.jpg]] [img(250px+,auto)[photos\wtcday11_02.jpg]] [img(250px+,auto)[photos\wtcday11_03.jpg]] [img(250px+,auto)[photos\wtcday11_04.jpg]] [img(250px+,auto)[photos\wtcday11_05.jpg]] [img(250px+,auto)[photos\wtcday11_06.jpg]] [img(250px+,auto)[photos\wtcday11_07.jpg]] [img(250px+,auto)[photos\wtcday11_08.jpg]] [img(250px+,auto)[photos\wtcday11_09.jpg]]
According to ancient Chinese thought, the universe is a vast oneness with every part of it being related to, and dependent on, every other part. They also noticed that within this all embracing oneness there is continual movement and change. Night follows day, winter follows summer and death follows life, all in an endless cycle.
The Chinese saw ''Tai Chi'' as a circle within which everything revolves and moves. In the process of this movement within the circle, the two opposite forms of energy (''Yin'' and ''Yang'') interact with each other in harmony. ''Yin'' symbolises the feminine, dark, soft, yielding side of things. ''Yang'' symbolises the masculine, hard, aggressive side of things.
Everything in the universe is made up of these two forms of energy. In order for things to progress well in harmony with each other, the forces of ''Yin'' and ''Yang'' must constantly interact together. While doing so, each must evolve over a period of time into its opposite, just as night will gradually evolve into day. For this reason everything that seems to be ''Yin'' will always contain within it an element of ''Yang'' and something that is ''Yang'' will always contain within it an element of ''Yin''. If this was not the case there would not be any evolution of one into the other. This helps to explain the ''Yin'' and ''Yang'' symbol of [[Tai Chi Chuan]].
The circle represents the ''Tai Chi'' containing the moving ''Yin'' (dark) and ''Yang'' (light). The ''Yang'' part contains within it a small amount of ''Yin'' and the ''Yin'' part contains within it a small amount of ''Yang''.