Welcome to TiddlyWiki created by Jeremy Ruston; Copyright © 2004-2007 Jeremy Ruston, Copyright © 2007-2011 UnaMesa Association
# present a possible 1 page structure to shape any service we provide whether it be for Panda, schools, the acting community, something that speaks to our wisdom body, etc.
# forward the development of a portfolio that paints a picture of our "dance enterprise" - one that communicates the breadth and beauty of our design.
# work towards a "demo" that allows people to experience our work in a short period of time. people get a taste and willing to commit to curriculum, series of workshops, an entire program, etc.
to witness the backstory of this girl is immensely moving. the setting is quite simple - this movie is all about CharacterDevelopment and what a fine example at a time I'm reading RidingTheAlligator!
http://goo.gl/7fku4
provides additional functionality over the stock GoogleVoice app that [[Google]] provides for free.
# REQUEST: unconditionally bring up DialPad when you press Phone icon. You no longer have to go back to IndexList when incoming CallerID is blocked. You manually dial to return the call.
# REQUEST: CallMethod: PhoneGVExtension listed in OtherDialer list when installed.
# REQUEST: Settings: SwipeAction applies to ''all'' MenuItems (not just Inbox)
# REQUEST: add ability to star item in ItemList
# REQUEST: add GoogleProfile icons next to names
//look forward to playing with @charts to graph this data//
|!date|!used|!left|!remaining|!comment|
|(7/13)|103 MB|147 MB|24 days|OnTarget for 125MB/week|
|(7/19)|187 MB|63 MB|18 days||
|7/26|215 MB|35 MB|11 days||
|7/28|229 MB|21 MB|10 days||
|7/29|250 MB|0 MB|0 days|ok now to prepare a 2GB experiment...|
!Notes
* DataConsumptionGuidelines
** 250MB: ~56MB/week - will require UserThrottling or a UsageQuota
** 2GB: ~66MB/day (7x)
** 5GB: ~165MB/day (2.5x)
** 10GB: ~330MB/day (2x)
* SoundCloud appears to take 1MB/min which differs from the 0.5MB/min for VoIP...
* more stats: http://www.clicker.com/blog/how-much-video-can-you-actually-stream-with-atts-new-data-plans-1895.html
hmm - so what does it [[mean|MeaningMakingMachine]] to import a [[Blog]] into this space? I'm not interested in just sucking in information verbatim - I'm quite aware that if one were to create an [[Automaton]] to pull entries from my [[ShivaSleeps]] blog into this space, there is opportunity to insert additional code to process additional things.
Back in my [[Intel]] days, I was exposed to [[YACC]], which stands for Yet Another Compiler Compiler.
The most natural state to write in a blog is [[Unstructured]] - freeform prose - for those who aren't programmers, they aren't really doing anything else.
If a [[Parser]] were to come in and process one's blog entries, it would be able to build your [[Vocabulary]]. There are two approaches to this - to build one that is fairly static, meaning new vocabulary is added upon each [[Analysis]] of each blog entry and another that would reanalyze all your blog entries, in fact all your source entries whether is it a [[Blog]], [[Twitter]], [[Facebook]] - these are all potential sources of [[Conversation]]. One would argue it would be able to identify [[YoungConversations]] and invite you to just give them up, [[Collage]] them, or just create a post-it on your [[CorkBoard]] for later reference while building your [[Autobiography]]
A space like TiddlySpace (or any other TechnologyPlatform that is representative of [[Synthesis]]) has a much different [[Role]]. Writing of any kind here (much like this Tiddler) is one of being Structured and for the most part a completely difference mindset - it is more analytic in nature - always trying to manually identify [[Concepts]] and [[Structure]] to assist and teach the [[Parser]] how to do its job.
One could argue you could run the [[Parser]] on top of a JournalEntry such as this and perhaps an end goal is to reduce this Tiddler (this StreamOfThought if you will) to [[Nothing]] - a [[State]] where all [[Concepts]] have been extracted into other tiddlers and organized to some degree.
I definitely imagine this as a SelfOrganizingSystem and will have to leave it up to a [[Historian]] to tell me the benefits of going through years and years of notes and how a HumanApproach to putting someone's [[Biography]] together may differ and what one may not be able to teach such an [[Automaton]]
ok - that's the [[Geek]] side of me that spewed all that out - it's pretty [[Automatic]] when I'm sharing in this space - it's a matter of the [[Context]] I'm in when I'm in this space.
I woke up with an idea that I could embed my SleepCycle graphs from my WordPress ShivaSleeps blog and it works ([[June 29, 2011 (ShivaSleeps)]]))
now it's a matter of either learning enough JavaScript to design a WordPressPlugin or experimenting with hiring a VirtualAssistant to do the job and being very clear about DesiredResults using a few blog entries as an example and seeing what happens. While I love to [[Tinker]] - something that's been on my plate for quite some time is some [[Homework]] from [[4HourWorkWeek]] that invites me to practice being a [[Manager]] at nearly no risk and little cost using a [[VirtualAssistant]] - I love KillingTwoBirdsWithOneStone all the time! (though admittedly stressful when it breaks down!)
I've definitely become a lot more passionate about OpenSource.
man - I get hungry quite early (it's only 6:50am) and um - nature is calling which at the risk of TMI - glad my [[Focus]] on WellBeing is ironing out my capacity to eliminate regularly!
ok - more later!
while I haven't put too much time into looking at options for VideoConferencing - I do what I can to stay up to date due to the fact that most of my work is [[Collaborative]] in nature and I do see myself working with a GlobalTeam. Someone recently referred me to [[Vidyo]] and to be honest, didn't see much of the point of having another solution - but remember this is my [[Ignorance]] at play!
[[Skype]] has been a long-time player that just got acquired by [[Microsoft]] and have preferred InBrowser experiences like GoogleVideoChat, mobile experiences like FaceTime, and even established platforms like WebEx which is working out quite well for the purpose of the WisdomCourse.
Given there are a zillion players out there, I wouldn't look to me as when I want to connect with my peeps, I prefer to meet you on the DanceFloor - so see you there! ;-)
went to <<newTiddler>> and created new content for [[FaceTime]] - when I go to commit the content, TiddlySpace asks if I'd like to overwrite it. What I really want is TiddlySpace to tell me from the get go that a tiddler exists with the same and offer to open it for editing. Alternatively, I could rename the toddler and go ahead and create my content from scratch as planned
WORKAROUND: search for tiddler before <<newTiddler>>
//be nice to embed...//
http://goo.gl/wXdj6
<<<
Hi! It's really great of my co-op to recommend your product.
I'm reading:
http://www.arnicare.com/about/arnicare-topicals/
and it's still not clear to me when to buy your cream and when to buy your gel.
both the gel & cream sounds like they serve the same purpose!
what's the difference?
if it helps, I would probably use it for lower back pain and perhaps around my shoulders and neck.
any other clarifications would be nice - plan to pick up a tube this week.
thanks!
<<<
WellnessWednesday & BedComputing
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/aZNrlKZj31I" frameborder="0" allowfullscreen></iframe>
</html>
ok - i see my tendency to branch before I'm even complete with my what it is I'm creating! i feel like HarryPotter conjuring up magic without realizing how I'm shifting my reality and how it impacts others! Just be responsible for one's actions is the message I got from the LandmarkForum for YoungPeople.
The key is to play in one's own [[Sandbox]] and extend from there :)
* Welcome
* Map
** Property
** Neighborhood
* Visitors
* GettingConnected
** WiFi
* [[Education]]
** [[Philanthropy]]
** [[Technology]]
* AVRemote (Diagrams)
* MediaLibrary
* Exercise
** Gym
** Walks
* Water
* Noise
* Valuables
* Laundry
* Emergency
* PhoneNumbers
!Services
* Restaurant (Menus) (BusinessCards)
## VeggieGrill
## Hillstone
* Spa
* TravelAgent
* Limo
* TrueNorthHealth
* TechnologyAdvisory
!PhoneNumbers
* Airline
* Airport
* Beach
* LocalAttractions
* MoneyExchange
* Theatre
* Shopping
* Transport
** CarRental
** Limo
** Taxi
much like different ProgrammingLanguages have different syntax, the same goes here in TiddlyWiki - it differs from wikis like MediaWiki and [[Wikispaces]]
[[TiddlyWiki Markup]]@tiddlywiki is a very useful reference!
bored. too much time to think :D
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/SGVPTDfwKWQ" frameborder="0" allowfullscreen></iframe>
</html>
The Web is important to every subject we study in school and every aspect of our lives outside. Understanding how The Web works, how to bookmark, how to search, how search engines work, is vital in ensuring we become engaged contributors rather than ignorant, passive consumers.
/***
|''Name''|FancyMissingPlugin|
|''Version''|0.1.0|
|''Description''|Orders the output in the Missing tab by how missing|
|''Author''|Frederik Dohr|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
No explicit use require, just add the plugin and go to the Missing tab.
!Code
***/
//{{{
(function() {
// hijack getMissingLinks to sort by number of references
var getMissingLinks = TiddlyWiki.prototype.getMissingLinks;
TiddlyWiki.prototype.getMissingLinks = function(sortField) {
var results = getMissingLinks.apply(this, arguments);
var index = results.map(function(item, i) {
return {
title: results[i],
count: store.getReferringTiddlers(results[i]).length
};
});
return index.sort(function(a, b) {
return b.count - a.count;
}).map(function(item, i) {
return item.title;
});
};
})();
//}}}
<<list filter [tag[Role]]>>
<<<
the art of CreativeIndifference.
It's the alternative to constantly trying make your relationship work better through finding the latest technique; the alternative to responding and reacting to your partner in ways that have become habitual or frustratingly repetitive, convinced that you are "right." All of those kinds of behavior drain energy and keep you locked within the FunctionalRelationship.
Through CreativeIndifference you learn to disengage from your relationship in ways that circle back to revitalize it. It doesn't mean you stop caring about your partner or your relationship. To the contrary, CreativeIndifference is a way to become less reactive to your own and your partner's behavior. It opens the door to positive change. Ultimately it helps you care in a deeper, more genuine way.
<<<
source: http://goo.gl/OKEUd
woo hoo! you might be the first woman on TiddlySpace! :D
<<<
hi! i'm having a ball transforming my diet and the spirits led me to your BalsamicVinegar - amazing!
i don't see "Sugar" on your list of ingredients and I'm assuming you don't add any - is this correct?
I notice other brands do and just want to check in.
grazie!
<<<
We want to understand the growing role of software in society in terms of laws.
wow - i'm really impressed with VirtualBox - props up to [[Oracle]] and happy I can put ParallelsDesktop to bed - it was such a resource hog and never performed acceptably.
With virtualization, you really save the headache of HardwareConfiguration and you remove lots of bottlenecks (like the SystemBus and HardDrives). Plus, if you screw up, you can retreat to a KnownBaseline (ie. a FreshInstall).
Caveat being that it is useful to know the lower LayersOfAbstraction and to know what really can go wrong as it does help [[Troubleshooting]] issues!
This explains why [[Networking]] still confuses me to this day not being intimate with the [[7 Layers of the OSI Model|http://en.wikipedia.org/wiki/OSI_model]] - serves me right - I'll study now... :)
Got these up in no time:
# WaryPuppy - cute but doesn't really AutoConfigure...
# [[Slax]] - pretty!
# SliTaz - definitely PlugAndPlay!
# TinyCore - zippy!
# [[Windows2000]] - be sure to keep install CD in until its done :)
# WinXP - performance check before trying to make it plug into my mac Bootcamp partition.
a term used to describe the sheer monster size of salads I eat even though I weigh just over 100 lbs and I still eat [[Soups]], [[Fruit]], and anything else I can get my grubby hands on!
Check out my SaladBar
/***
|''Name''|RevisionsCommandPlugin|
|''Description''|provides access to tiddler revisions|
|''Author''|FND|
|''Contributors''|Martin Budden|
|''Version''|0.3.3|
|''Status''|@@beta@@|
|''Source''|http://svn.tiddlywiki.org/Trunk/association/plugins/RevisionsCommandPlugin.js|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/association/plugins/|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.6.0|
|''Keywords''|serverSide|
!Usage
Extend [[ToolbarCommands]] with {{{revisions}}}.
!Revision History
!!v0.1 (2009-07-23)
* initial release (renamed from experimental ServerCommandsPlugin)
!!v0.2 (2010-03-04)
* suppressed wikification in diff view
!!v0.3 (2010-04-07)
* restored wikification in diff view
* added link to side-by-side diff view
!To Do
* strip server.* fields from revision tiddlers
* resolve naming conflicts
* i18n, l10n
* code sanitizing
* documentation
!Code
***/
//{{{
(function($) {
jQuery.twStylesheet(".diff { white-space: pre, font-family: monospace }",
{ id: "diff" });
var cmd = config.commands.revisions = {
type: "popup",
hideShadow: true,
text: "revisions",
tooltip: "display tiddler revisions",
revTooltip: "", // TODO: populate dynamically?
loadLabel: "loading...",
loadTooltip: "loading revision list",
selectLabel: "select",
selectTooltip: "select revision for comparison",
selectedLabel: "selected",
compareLabel: "compare",
linkLabel: "side-by-side view",
revSuffix: " [rev. #%0]",
diffSuffix: " [diff: #%0 #%1]",
dateFormat: "YYYY-0MM-0DD 0hh:0mm",
listError: "revisions could not be retrieved",
handlePopup: function(popup, title) {
title = this.stripSuffix("rev", title);
title = this.stripSuffix("diff", title);
var tiddler = store.getTiddler(title);
var type = _getField("server.type", tiddler);
var adaptor = new config.adaptors[type]();
var limit = null; // TODO: customizable
var context = {
host: _getField("server.host", tiddler),
workspace: _getField("server.workspace", tiddler)
};
var loading = createTiddlyButton(popup, cmd.loadLabel, cmd.loadTooltip);
var params = { popup: popup, loading: loading, origin: title };
adaptor.getTiddlerRevisionList(title, limit, context, params, this.displayRevisions);
},
displayRevisions: function(context, userParams) {
removeNode(userParams.loading);
if(context.status) {
var callback = function(ev) {
var e = ev || window.event;
var revision = resolveTarget(e).getAttribute("revision");
context.adaptor.getTiddlerRevision(tiddler.title, revision, context,
userParams, cmd.displayTiddlerRevision);
};
var table = createTiddlyElement(userParams.popup, "table");
for(var i = 0; i < context.revisions.length; i++) {
var tiddler = context.revisions[i];
var row = createTiddlyElement(table, "tr");
var timestamp = tiddler.modified.formatString(cmd.dateFormat);
var revision = tiddler.fields["server.page.revision"];
var cell = createTiddlyElement(row, "td");
createTiddlyButton(cell, timestamp, cmd.revTooltip, callback, null,
null, null, { revision: revision });
cell = createTiddlyElement(row, "td", null, null, tiddler.modifier);
cell = createTiddlyElement(row, "td");
createTiddlyButton(cell, cmd.selectLabel, cmd.selectTooltip,
cmd.revisionSelected, null, null, null,
{ index:i, revision: revision, col: 2 });
cmd.context = context; // XXX: unsafe (singleton)!?
}
} else {
$("<li />").text(cmd.listError).appendTo(userParams.popup);
}
},
revisionSelected: function(ev) {
var e = ev || window.event;
e.cancelBubble = true;
if(e.stopPropagation) {
e.stopPropagation();
}
var n = resolveTarget(e);
var index = n.getAttribute("index");
var col = n.getAttribute("col");
while(!index || !col) {
n = n.parentNode;
index = n.getAttribute("index");
col = n.getAttribute("col");
}
cmd.revision = n.getAttribute("revision");
var table = n.parentNode.parentNode.parentNode;
var rows = table.childNodes;
for(var i = 0; i < rows.length; i++) {
var c = rows[i].childNodes[col].firstChild;
if(i == index) {
if(c.textContent) {
c.textContent = cmd.selectedLabel;
} else {
c.text = cmd.selectedLabel;
}
} else {
if(c.textContent) {
c.textContent = cmd.compareLabel;
} else {
c.text = cmd.compareLabel;
}
c.onclick = cmd.compareSelected;
}
}
},
compareSelected: function(ev) {
var e = ev || window.event;
var n = resolveTarget(e);
var context = cmd.context;
context.rev1 = n.getAttribute("revision");
context.rev2 = cmd.revision;
context.tiddler = context.revisions[n.getAttribute("index")];
context.format = "unified";
context.adaptor.getTiddlerDiff(context.tiddler.title, context,
context.userParams, cmd.displayTiddlerDiffs);
},
displayTiddlerDiffs: function(context, userParams) {
var tiddler = context.tiddler;
tiddler.title += cmd.diffSuffix.format([context.rev1, context.rev2]);
tiddler.text = "{{diff{\n" + context.diff + "\n}}}";
tiddler.tags = ["diff"];
tiddler.fields.doNotSave = "true"; // XXX: correct?
if(!store.getTiddler(tiddler.title)) {
store.addTiddler(tiddler);
}
var src = story.getTiddler(userParams.origin);
var tiddlerEl = story.displayTiddler(src, tiddler);
var uri = context.uri.replace("format=unified", "format=horizontal");
var link = $('<a target="_blank" />').attr("href", uri).text(cmd.linkLabel);
$(".viewer", tiddlerEl).prepend(link);
},
displayTiddlerRevision: function(context, userParams) {
var tiddler = context.tiddler;
tiddler.title += cmd.revSuffix.format([tiddler.fields["server.page.revision"]]);
tiddler.fields.doNotSave = "true"; // XXX: correct?
if(!store.getTiddler(tiddler.title)) {
store.addTiddler(tiddler);
}
var src = story.getTiddler(userParams.origin);
story.displayTiddler(src, tiddler);
},
stripSuffix: function(type, title) {
var str = cmd[type + "Suffix"];
var i = str.indexOf("%0");
i = title.indexOf(str.substr(0, i));
if(i != -1) {
title = title.substr(0, i);
}
return title;
}
};
var _getField = function(name, tiddler) {
return tiddler.fields[name] || config.defaultCustomFields[name];
};
})(jQuery);
//}}}
We want to understand and learn how to create programs from scratch and how to code in languages such as HTML, CSS, Javascript, C, Python and PHP. We want to understand how to build devices from scratch and connect devices together.
We want to understand how to become constructive members of software and hardware development communities.
<<<
I just tried the stock GoogleVoice app and the only workaround right now is to setup "Ask Before Dialing" in PhoneGVExtension and:
# if you're dialing from GV or GVMobile+ [[app]], use "Carrier"
# if you're dialing from the stock Phone app, use "GV Direct Dial"
<<<
mom LOVES watching ThaiSoaps on her YouTubeMachine. posted this review to the AppStore!
<<<
something the stock YouTube app has been missing for awhile is the ability to AutoPlay - this app sheds the light! this app isn't useful (IMHO) until I can click on "Play All" at the top of a page like this:
http://www.youtube.com/playlist?list=PL41CC145E6598E4AD
once it does this, easily a 5 star app and worth more than 99 cents!
meanwhile, I've been in touch by email, donated my 1 buck to the app developer in good faith and our family has our FingersCrossed!
<<<
while incomplete this is just for fun's sake...and yes, I'm calling my mobile phones "computers" because that's how I've always seen them!
|!Year|!Computer |!Processor|
|1983|ColorComputer 2|Motorola 6809E|
|1987?|ColorComputer 3|Motorola 6809E|
|1996?|Motorola Timeport||
|1998?|Sony Z?||
|2000?|Palm Pilot III||
|2001?|Samsung ?(smartphone ran PalmOS)||
|2001|IBM Thinkpad T21?||
|2003?|Nokia 6820||
|2005?|Nokia "brick" (ole skool experiment)||
|2007|iPhone|?|
|2007|Apple Macbook (black)|Intel Core2Duo|
|2010|Apple iPad 3G||
/***
|''Name''|BinaryTiddlersPlugin|
|''Description''|renders base64-encoded binary tiddlers as images or links|
|''Author''|FND|
|''Version''|0.3.2|
|''Status''|@@beta@@|
|''Source''|http://svn.tiddlywiki.org/Trunk/association/plugins/BinaryTiddlersPlugin.js|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.5|
!Code
***/
//{{{
(function($) {
"use strict";
var ctfield = "server.content-type";
var plugin = config.extensions.BinaryTiddlersPlugin = {
isWikiText: function(tiddler) {
var ctype = tiddler.fields[ctfield];
if(ctype) {
if (ctype === 'text/x-tiddlywiki') {
return true;
}
return !this.isBinary(tiddler) && !this.isTextual(ctype);
} else {
return true;
}
},
// NB: pseudo-binaries are considered non-binary here
isBinary: function(tiddler) {
var ctype = tiddler.fields[ctfield];
return ctype ? !this.isTextual(ctype) : false;
},
isTextual: function(ctype) {
return ctype.indexOf("text/") === 0
|| this.endsWith(ctype, "+xml")
|| ctype === 'application/json'
|| ctype === 'application/javascript';
},
endsWith: function(str, suffix) {
return str.length >= suffix.length &&
str.substr(str.length - suffix.length) === suffix;
},
isLink: function(tiddler) {
return this.isBinary(tiddler) && tiddler.text.indexOf("<html>") !== -1;
}
};
// Disable edit for linked tiddlers (for now)
// This will be changed to a GET then PUT
config.commands.editTiddler.isEnabled = function(tiddler) {
var existingTest = config.commands.editTiddler.isEnabled;
if (existingTest) {
return existingTest && !plugin.isLink(tiddler);
} else {
return !plugin.isLink(tiddler);
}
};
// hijack text viewer to add special handling for binary tiddlers
var _view = config.macros.view.views.wikified;
config.macros.view.views.wikified = function(value, place, params, wikifier,
paramString, tiddler) {
var ctype = tiddler.fields["server.content-type"];
if(params[0] === "text" && ctype && ctype !== 'text/x-tiddlywiki' &&
!tiddler.tags.contains("systemConfig") && !plugin.isLink(tiddler)) {
var el;
if(plugin.isBinary(tiddler)) {
var uri = "data:%0;base64,%1".format([ctype, tiddler.text]); // TODO: fallback for legacy browsers
if(ctype.indexOf("image/") === 0) {
el = $("<img />").attr("alt", tiddler.title).attr("src", uri);
} else {
el = $("<a />").attr("href", uri).text(tiddler.title);
}
} else {
el = $("<pre />").text(tiddler.text);
}
el.appendTo(place);
} else {
_view.apply(this, arguments);
}
};
// hijack edit macro to disable editing of binary tiddlers' body
var _editHandler = config.macros.edit.handler;
config.macros.edit.handler = function(place, macroName, params, wikifier,
paramString, tiddler) {
if(params[0] === "text" && plugin.isBinary(tiddler)) {
return false;
} else {
_editHandler.apply(this, arguments);
}
};
// hijack autoLinkWikiWords to ignore binary tiddlers
var _autoLink = Tiddler.prototype.autoLinkWikiWords;
Tiddler.prototype.autoLinkWikiWords = function() {
return plugin.isWikiText(this) ? _autoLink.apply(this, arguments) : false;
};
}(jQuery));
//}}}
to play off my comments on [[Search]]....
http://tiddlyspace.com/search?q=Vision
:)
Unless you're delighted with the default theme you can make some quick changes by generating a new random color palette, hit this button to cycle through some alternatives.
<<RandomColorPaletteButton saturation_pale:0.67 saturation_light:0.53
saturation_mid:0.43 saturation_dark:0.06 pale:0.99 light:0.85 mid:0.5 dark:0.31>>
You can also change the look and feel completely by installing a new theme. To do this, find one you like in the @themes space, note down the name, and include it in this space by going to the space menu. You can reach the space menu by clicking on the blue and pink circle at the top-right of the page and chooshing "THIS SPACE". Here are a few to check out:
* @pip
* @caspian-ii
* @basalt
* @simplicity
* @cheesecake
* @jelly-doughnut
(//Note that if you are using a custom TiddlySpace install, these themes may not be present.//)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="1.1"
width="14pt"
height="14pt"
viewBox="918 510 14 14"
id="svg3070">
<metadata
id="metadata3089">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3072">
<radialGradient
cx="0"
cy="0"
r="1"
id="Gradient"
gradientUnits="userSpaceOnUse">
<stop
id="stop3075"
style="stop-color:#ffffff;stop-opacity:1"
offset="0" />
<stop
id="stop3077"
style="stop-color:#2b2b2b;stop-opacity:1"
offset="1" />
</radialGradient>
<radialGradient
id="Obj_Gradient"
xlink:href="#Gradient"
gradientTransform="matrix(11.473944,0,0,11.473944,922.3752,513.7837)" />
</defs>
<g
id="g3080"
style="fill:none;stroke:none">
<g
id="g3082">
<path
d="m 929.6952,512.9018 c -2.5384,-2.53843 -6.654,-2.53843 -9.1924,0 -2.5384,2.5384 -2.5384,6.654 0,9.19238 2.5384,2.53839 6.654,2.53839 9.1924,0 2.5384,-2.53838 2.5384,-6.65398 0,-9.19238 m -4.5962,2.8407 2.07733,-2.07734 1.75547,1.75549 -2.0773,2.07735 2.0773,2.07732 -1.75547,1.75548 -2.07733,-2.07732 -2.07733,2.07732 -1.75547,-1.75548 2.0773,-2.07732 -2.0773,-2.07735 1.75547,-1.75549 z"
id="path3084"
style="fill:url(#Obj_Gradient)" />
<path
d="m 927.61447,515.38354 a 4.51205,4.2590378 0 1 1 -9.0241,0 4.51205,4.2590378 0 1 1 9.0241,0 z"
transform="matrix(1.0218069,0,0,1.0462046,-18.063694,-21.648443)"
id="path2394"
style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
</g>
</g>
</svg>
Use of a [[Journal]] the TiddlyWay is not quite like blogging and posting daily per se.
The idea in TiddlySpace is to ongoingly create and synthesize content - thus you are better off creating <<newTiddler>>s or editing previous ones and letting the notion of [[Daily]] manifest itself on the right-sidebar.
One could argue that this is closer to how we operate in real life rather than just being an [[Observer]]!
Turns out you can get a NoContractPlan with AT&T and go MonthToMonth
# 450 Rollover min for $40
# PayAsYouGo texting 0.20/text
# $25 per 2GB block of data
Would even consider a NoContract FamilyPlan (http://goo.gl/k3eF9) given how few minutes OurFamily actually uses
# 700 Rollover min for $70 + $20 (4 lines total)
# PayAsYouGo texting 0.20/text (or $10 for 1000 texts)
# $25 per 2GB block of data (UnlimitedDataPlan is a thing of the past!)
T-Mobile is gonna have to up their game - it's that EarlyTerminationFees that keep us locked in and while I have no regrets, I can see it wasn't a great decision to add a new line for our GuestPhone rather than just buying a PrePaid SIM at the time...
this is how experiments go - you win some, you lose some!
!contact
# CustomerService: 1-866-246-4852
# [[Sales]]:1-800-343-6100 x17372 Claudia (sign up OverThePhone and SIM cards are mailed to you for only $6 each!)
LandmarkEducation has no doubt been successful delivering this to the masses just by word-of-mouth - the best form of marketing.
DanceLabs is a community I created being trained in this work. DanceChalat was an unexpected fruit that happened as a direct result of my commitment to transform [[Thailand]] over the course of 4 years!
Our community is committed to a radically participatory ethic. We believe that transformative change, whether in the individual or in society, can occur only through the medium of deeply personal participation. We achieve being through doing. Everyone is invited to work. Everyone is invited to play. We make the world real through actions that open the heart.
Went to bed / woke up: 11:00 / 7:52
Total time: 8h 51m
Finally got more than 8 hrs of sleep!
The experience was one of being [[Restless]]. It is nice to SleepIn and still wake up before 8am. I still have time to [[Journal]] and eat breakfast OnTime by 8:30.
Again, I’m not surprised my body wants to get up at 4am. Goes to show how important it is to sleep by 10 to get a minimum of 6 hrs of sleep and feel comfortable waking up that early.
So I don’t really get to tinker this morning and even though I slept so much – I don’t really feel refreshed.
I think part of the factor is my mom & I are having challenges seeing eye to eye in general & I’m thinking a lot in regards to FuturePlans – what is going to happen by end of the year (esp with DanceLabs 10th anniversary approaching in January, an intent to be in Thailand, to do my best in my one year [[Retainer]], and [[CGT2012]] in May -seeking to create an ExtraordinaryImpression and be [[Impeccable]] in what I choose to create. Not to mention BurningMan end of August but that’s a stretch goal considering my PersonalPromise is to build my [[Stamina]] for a year & manage one major commitment outside of my retainer ([[CGT2012]])
FourthOfJuly is right around the corner. A DeclarationOfFreedom.
Another factor was my intention to rest up all day yesterday & my dad asked me to move the car & I decided to make a Costco & TraderJoes run at 5:45pm – i didn’t finish Lunch until about 2:30 so I felt it was okay to eat late – it was interesting [[Scouting]] at Costco – first time there with an eye on quality kitchen appliances, no to JunkFood, no to PrepackagedFoods, no to [[Meat]], no to [[Dairy]], no to [[AddedSalt]], no to [[AddedSugar]], and no to [[AddedOils]] and just looking at what they were willing to sell [[Fruits]] & [[Vegetables]] in bulk. It was also great to walk in with [[Gratitude]] and want to plan GiftIdeas well in advance. Thought i might get a new pair of pants but there were no sub-30 inch waists available – yes Im quite [[Skinny]] in general & probably lost an inch due to the diet I’m on. [[Tokyo]] is the only place I saw tons of clothes that fit me not to mention has attention to [[Fashion]]
So my friend has Friday off every other week working for the [[Government]] – thought I’d chill out with him during the day. Wondering if he’s got a 4-day wkd – assuming he does. I have to admit without proper sleep, im feeling pretty lazy, rather hang tight and do more office work.
I had an opportunity to jump on an opportunity to live in ThaiTown – like pronto. I wasn’t interested in moving so fast without guaging the consequence though my gut said it was a great opportunity to give my folks some space.
I’m assembling a GuestManual for this house as an exercise to both get clear on what I really care about when it comes to a PlaceToStay and what matters to [[Guests]] who I don’t expect to be so demanding but the DevilIsInTheDetails right?
I’ve gotta focus some time writing some [[Stories]] for the TiddlySpace folks – enhancements I think would fwd prototypes I’m building like the ActiveWeeklyCompass.
Funny how things come FullCircle – been tinkering at this project for well over 10 years & it’s my ExperienceOfLife especially one of InfiniteExpansion, purposely stretching my Limits, my Boundaries, sometimes putting myself in [[Circumstances]] that are likely to creates [[Breakdowns]] (and often do!) – so it’s great to be in ResearchMode – I’d love to be doing this as a MastersThesis – mom wants me in GraduateSchool if I have this much time on my hands – I’d want a FullScholarship – not interested in taking on any more [[Debt]]
So point being is one of my [[Doctors]] invited me to “plan half a life”
I can do this – I feel quite accomplished in my last 10 years, I can slow the Pace of my life down, attend to my WellBeing, not complain how long it takes to prepare food and do CookingTherapy as one friend of mine shared…
Shiva likes to ChillOut ya know
Time for some [[Granola]] – preprocesssed and doing the best I can given I have 2 minutes to get to Breakfast!
Analysis made by the Sleep Cycle iPhone app.
My sleep graph for the entire night:
[img[http://shivasleeps.files.wordpress.com/2011/07/sleepgraph.jpg]]
http://chinarut.livejournal.com/319547.html
<<<
The parts that really resonated for me were
# When the person who got freed up around dancing hugged you and shared his breakthrough
# The kids leading the adults to move like cats and dogs
<<<
[[Engineering and Social Dance|http://goo.gl/EtjV0]]
*Have a good idea, will it work?
*Know your market
*Inspiration from other successes and mistakes
*How to present yourself
*how to monetise your idea
There are a lot of interesting people using ~TiddlySpace that you might like to keep track of and interact with. There are a number of ways of doing this.
If you see a number in the speech bubble in one of your tiddlers, it means that someone is writing about the same thing as you. You can find out what they're saying by clicking on it. Likewise, if you see something interesting in someone else's space, you can respond to it and write up your own thoughts on the subject by clicking "Reply to this tiddler".
Additionally, if you find anyone interesting, or you find an interesting looking space and you'd like to know when it's changed, you can "follow" that space. To do this, simply create a tiddler with the title: {{{@space-name}}} and tag it {{{follow}}}. If you want, you can store some notes about that space in the body of the tiddler.
If you then want to know what happening, simply [[include|How do I include/exclude spaces?]]@docs the @tivity space and then visit your activity stream at [[/activity|/activity]], or just visit the @tapas space directly.
!Not sure who to follow?
Here's a few suggestions:
* @fnd
* @cdent
* @pmario
* @bengillies
* @dickon
* in the states
** app(Phone) - Carrier for BestQuality, GVDirectDial to SaveMoney
** app(StockGV) - use Carrier & will route thru GoogleVoice, GVDirectDial won't work
** app([[GVMobile+]]) - DirectDialMode and must select Carrier
* overseas
** app(Phone) - Carrier for LocalCalls, GVDirectDial won't work
** app(StockGV) - won't work
** app([[GVMobile+]]) - won't work
** app([[Talkatone]]) - for InternationalCalls over GoogleVoice
** app([[Skype]]) - backup VoIP
![[app]] notes
# Phone [[app]] is most flexible in the states until Google decides to expand GoogleVoice outside the states.
# StockGV is best ignored
# GVMobile+ begins to unify the interface with the only [[Caveat]] being that it requires you to toggle DirectDialMode in the states and OtherDialer when you're outside the states.
# [[Talkatone]] is primary used overseas to make InternationalCalls over GoogleVoice
!CallOptimization
Carrier looks like the way to go when you have one available. In fact, it would be great if PhoneGVExtension were to recognize a VoiceCarrier is available, to use it. This provides insight into the user selecting to optimize based on BestCallQuality or MinimizeCarrierCharges. of course, one would need to take into account CostPerMinute, CostPerMB, to make these choices effectively! This would be akin to GPSNavigators that optimize based on TrafficData
I stumbled upon @jermolene and it occurred to me I heard of this effort back when I learned about TiddlyWiki which I discovered trying to find the "best" GTD platform (still haven't found it - OmniFocus does the job quite well though!)
I ran a few experiments and found myself fascinated with TiddlyWiki.
it was really cutting edge technology at the time and really pleased to see TiddlySpace gave birth.
Osmosoft is the OpenSource [[Innovation]] arm of BritishTelecom (BT) - which inspires me to have DanceChalat be the OpenSource arm of DanceLabs in the area of [[transformational workshop programming|WorkshopDesignSoftware]]
!Interesting Discoveries
# official @osmosoft space
** TiddlySpace@osmosoft (may need to click http://osmosoft.tiddlyspace.com/TiddlySpace to see cool graph!)
# @teamtasks
# http://tiddlyslidy.com
imagine if everyone came to the table clear about what they are passionate about so when we do all talk, we each have our visions to "stitch" together. our conversation at the table becomes one of [[Alignment]] and choosing an outcome we can create together that make everyone happy =)
I'm running an [[Experiment]] to have TiddlySpace feeds go into GoogleReader and automatically create MyUniverse
Ideally, GoogleReader would include feeds all spaces I've included here (that are not plugins) but they aren't quite married (yet :)
to add a subscription to a TiddlySpace of your choosing, add:
{{{
http://$SPACENAME.tiddlyspace.com/bags/$SPACENAME_public/tiddlers.atom
}}}
[[Aggregation]] of MultipleSpaces doesn't quite work yet as evidenced by: http://goo.gl/FLoIk
the ListMaker in me put another spreadsheet together to help [[analyze|Analysis]] the [[Groceries]] I'm buying so I can begin to calculate my DailyBurnRate so I can remap this to other countries I travel to: http://goo.gl/4LpJV not to mention have it be a resource in our CommunityManual.
Two [[iPhone]] apps, [[Intuition]] and [[Checkmake]] have transformed my ShoppingExperience - [[Groceries]] has about topped the list in regards to being the most LocationSensitive items to get!
# 4 77193 11263 4 - Prateep
# 2496361688168 - Chinarut (old)
# 4 77080 10918 1 - Chinarut
# 2 495258 493212 - Sirima (old)
/*{{{*/
body {
font-size: 1em;
font-family: helvetica, arial, sans-serif;
background-color: #fff;
color: [[ColorPalette::Foreground]];
}
body ul { margin: 0; }
#popup {
background-color: [[ColorPalette::TertiaryPale]];
}
#popup.confirmationPopup, .followList {
font-size: 0.8em;
padding: 1em;
border: solid 1px [[ColorPalette::SecondaryMid]];
background-color: [[ColorPalette::SecondaryPale]];
}
.followList .listTitle {
text-decoration: underline;
}
#popup .followTiddlersList a {
display: inline;
padding: 0;
}
#popup li a {
color: [[ColorPalette::PrimaryMid]];
font-weight: bold;
}
#popup li a:hover {
color: [[ColorPalette::PrimaryPale]];
background: [[ColorPalette::PrimaryMid]];
}
#popup li.listTitle {
border-bottom: 1px solid #000;
font-weight: bold;
margin-bottom: 10px;
}
#popup.followList {
margin-left: 50px;
margin-top: -30px;
}
.followTiddlersList .label {
display: block;
left: 10px;
top: 0px;
line-height: 16px;
position: relative;
}
#popup .followTiddlersList .siteIcon{
height: auto;
}
#popup .followTiddlersList li{
clear: both;
display: block;
height: 48px;
margin-bottom: 8px;
position: relative;
}
#popup .followTiddlersList a{
display: inline;
}
#displayArea {
margin: 0;
top: 0px;
left: 0px;
width: 100%;
position: relative;
}
.revisionCloak {
position: absolute;
position: fixed !important;
height: 100%;
width: 100%;
top: 0;
left: 0;
border: 0;
margin: 0;
padding: 0;
opacity: 0.5;
filter: alpha(opacity=50);
background-color: #000;
}
/* *** Header *** */
.header {
position: relative;
background-color: [[ColorPalette::PrimaryMid]];
_width: 100%; /* ie 6 demands */
}
.headerForeground {
background-color: [[ColorPalette::PrimaryMid]];
float: left;
margin: 24px 16px 0px 72px;
padding: 0;
position: relative;
top: 0;
_width: 70%; /*ie6: needed for the background to actually be transparent*/
_background-color: transparent; /*ie6: needed to show the search box*/
}
.clearFloat {
clear: both;
}
#contentWrapper {
position: relative;
padding-top: 1px;
top: -1px;
}
#tiddlerDisplay {
_position: relative; /* ie 6*/
}
.siteTitle {
clear: both;
display: block;
font-size: 32px;
font-weight: bold;
line-height: 32px;
}
.siteSubtitle {
display: block;
font-size: 14px;
height: 16px;
margin-bottom: 8px;
}
#sidebarSearch {
padding: 0;
position: absolute;
right: 80px;
top: 8px;
width: 176px;
}
#sidebarSearch .txtOptionInput {
width: 100%;
margin-top: 5px;
_color: #bbb; /* ie6 danger */
}
#sidebarSearch .txtOptionInput:focus {
color: #000;
}
#sidebarSearch .searchButton {
display: none;
}
/* *** Menu Bar *** */
#mainMenu {
position: static;
text-align: left;
margin-left: 72px;
float: left;
width: auto;
padding: 0;
font-size: 1em;
line-height: normal;
}
#mainMenu a {
color: #fff;
padding: 8px;
font-size: 0.9em;
margin-right: 16px;
}
#mainMenu a:hover {
background-color: [[ColorPalette::PrimaryMid]];
color: [[ColorPalette::Background]]
}
#sidebarOptions {
margin-right: 72px;
float: right;
font-size: 1.1em;
line-height: 1.6em;
min-height: 1em;
padding-top: 0;
}
#sidebarOptions a {
margin-right: 8px;
}
.confirmationPopup .button,
#sidebarOptions .button {
cursor: pointer;
line-height: 1.4em;
text-align: center;
margin-right: 8px;
margin-left:-2px;
}
.confirmationPopup .button {
font-size: 0.9em;
padding: 2px;
}
#sidebarOptions .button {
font-size: 0.7em;
float: left;
width: 80px;
padding: 0px;
color: #fff;
}
.confirmationPopup a.button,
#sidebarOptions a {
border: none;
margin: 0 0.2em;
padding: 0.6em 0.25em;
display: inline;
color: #666;
}
.confirmationPopup a.button:hover,
#sidebarOptions a:hover {
color: #000;
}
.confirmationPopup a.button:active,
#sidebarOptions a:active {
border: solid 1px [[ColorPalette::PrimaryMid]];
background-color: #fff;
background: -webkit-gradient( linear, left bottom, left top, color-stop(0.1,rgb(200,200,200)), color-stop(1, rgb(100,100,100)));
background: -moz-linear-gradient(center bottom , rgb(200,200,200) 10%,rgb(100,100,100) 100%) repeat scroll 0 0 transparent;
}
/* *** Sidebar *** */
#sidebar .wizard table {
margin: 0px;
}
.tabContents .listTitle:first-child {
margin-top: 0px;
}
#menuBar {
background: [[ColorPalette::PrimaryLight]];
left: 0;
right: 0;
position: relative;
margin: 0;
padding: 0.5em 0 0.5em 0;
min-height: 1em;
overflow: hidden;
_width: 100%; /* for ie 6 */
}
#sidebarOptions a.button:hover {
color: [[ColorPalette::PrimaryPale]];
background: [[ColorPalette::PrimaryMid]];
}
#tiddlerDisplay, #searchResults {
margin: 16px 448px 0 72px;
}
#sidebarTabs {
position: absolute;
right: 72px;
width: 352px;
top: 0;
}
#sidebarTabs .tabsetWrapper .tabset {
width: 87px;
border-top: 1px solid [[ColorPalette::PrimaryPale]];
border-left: 1px solid [[ColorPalette::PrimaryPale]];
border-bottom: 1px solid [[ColorPalette::PrimaryPale]];
height: auto;
float: left;
word-wrap: break-word;
top: 0;
padding: 0;
}
#sidebarTabs .tabsetWrapper .tabContents {
background-color: [[ColorPalette::PrimaryPale]];
border: 3px solid [[ColorPalette::PrimaryMid]];
width: 242px;
_width: 238px;
left: -3px;
_left: -5px;
position: relative;
min-height: 34em;
padding: 8px;
font-size: 0.8em;
}
/* ---- Side style --- */
#sidebarTabs .tabsetWrapper .tabset .tab {
font-size: 0.9em;
padding: 0.7em 8px 0.5em;
color: #fff;
background: [[ColorPalette::PrimaryLight]];
border: none;
line-height: 16px;
position: relative;
display: block;
margin: 0;
}
#sidebarTabs .tabsetWrapper .tabset .tabSelected {
color: [[ColorPalette::PrimaryMid]];
background: [[ColorPalette::PrimaryPale]];
border-top: 3px solid [[ColorPalette::PrimaryMid]];
border-bottom: 3px solid [[ColorPalette::PrimaryMid]];
border-left: 3px solid [[ColorPalette::PrimaryMid]];
z-index: 10;
margin-top: -1px;
font-weight: bold;
}
#sidebarTabs .tabContents li {
border: none;
margin-left: 0;
word-wrap: break-word;
}
.tabContents .timeline {
background: [[ColorPalette::PrimaryPale]];
margin-bottom: 8px;
}
#sidebarTabs .timeline li.listTitle {
color: #132E43;
margin-left: 8px 0;
padding: 0.3em 0.11em;
font-size: 1em;
border-bottom: none;
}
#sidebarTabs .tabContents li a {
display: block;
text-align: left;
margin: 0 0 1px 0;
padding: 0.3em 1em;
background: [[ColorPalette::PrimaryPale]];
}
#sidebarTabs .tabsetWrapper .tabset a:hover,
#sidebarTabs .tabContents li a:hover {
color: [[ColorPalette::PrimaryPale]];
background: [[ColorPalette::PrimaryMid]];
}
/* Activity Stream */
#sidebarTabs .tabContents .activityStream .feedItem a {
display: inline-block;
padding: 0;
background: none;
}
/* ---- Tagging box --- */
.tagInfo {
border: 1px solid #cccccc;
padding: 10px 15px;
-moz-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
box-shadow: 0 2px 2px rgba(0,0,0,0.2);
color: [[ColorPalette::TertiaryMid]];
background: -moz-linear-gradient(100% 100% 90deg, #f4f4f4, #e5e5e5);
background: -webkit-gradient(linear, left top, right top, from(#e5e5e5), to(#f4f4f4));
margin-top: 1em;
font-size: 13px;
margin: 0 0 0 56px;
}
.tagInfo ul {
list-style: none;
padding-left: 2.2em;
}
.tagInfo ul li {
display: inline;
}
.tagInfo ul li.listTitle,
.tagInfo .tagging ul li.listTitle {
color: [[ColorPalette::PrimaryMid]];
font-size: 13px;
}
.tagInfo ul li a {
border: none;
}
.tagInfo .tagging ul li {
float: none;
display: inline-block;
}
.tagInfo .tagging {
padding: 0;
}
.viewRevision .toolbar {
right: 48px;
top: 8px;
}
.viewRevision .modifierIcon img,
.viewRevision .modifierIcon svg {
margin-right: 8px;
}
.viewRevision .toolbar svg {
width: 32px;
height: 32px;
}
/* --- IE hacks from lattice --- */
/* ie hacks */
* html #menuBar {
margin-bottom: 8px;
}
.toolbar .svgIconText {
*display: inline;
}
div.tiddler .toolbar a {
cursor: pointer;
float: left\9;
display: inline\9;
}
* html .toolbar {
right: 8px;
}
* html .followButton a {
margin-top: 0px;
margin-right: 8px;
}
* html #tiddlerDisplay {
margin-top: 0px;
}
/* for printing purposes */
@media print {
#mainMenu,
#sidebar,
#messageArea,
.toolbar,
.followPlaceHolder,
#backstageButton,
#backstageArea,
#sidebarTabs,
#sidebarSearch .txtOptionInput,
#sidebarOptions {
display: none !important;
}
#displayArea {
margin: 1em 1em 0em;
}
noscript {
display:none; /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
#tiddlerDisplay {
margin: 16px 16px;
}
}
@media all and (max-width: 960px){
#tiddlerDisplay,
#searchResults {
margin: 16px 366px 0 16px;
}
#mainMenu {
margin-left: 16px;
}
.headerForeground {
margin-left: 16px;
}
#sidebarSearch {
right: 16px;
}
#sidebarOptions {
margin-right: 16px;
}
#sidebarTabs {
right: 16px;
width: 326px;
}
#sidebarTabs .tabsetWrapper .tabset {
font-size: 0.9em;
width: 77px;
}
#sidebarTabs .tabsetWrapper .tabContents {
width: 226px;
_width: 222px;
}
#sidebarTabs .tabContents li a {
font-size: 0.9em;
}
}
/*}}}*/
[[StyleSheetTiddler]]
been playing with this for awhile and discovering it's purpose (from my view...)
# SelfResolvingItems - you know those things you put in the inbox and they resolve themselves?
# ProjectListening - a concept I'm discovered where one's listening as a TechnologyAdvisor hears projects distinct from just listing a bunch of [[Projects]] - there is a [[Distinction]] here and it definitely revolves around [[Integrity]] and [[Communication]] - I am open to collapsing this into my OmniFocus system
# [[Play]] - this tool is good for analyzing the OpeningsForActions as they come up in the moment - to dynamically sort them in place rather than deal with formalizing organizing in OmniFocus - though admittedly my TadaList habit is transferring itself to my OmniFocus inbox fast so I had better do something about this soon.
In a nutshell, you want to find the right balance between tracking things you said you would do or things that come up and focusing on just [[Execution]] - this goes beyond the [[TwoMinuteRule]] - this is the overhead that is involved being an [[Organizer]]
http://tadalist.com
tadalist is a buffer - mainly tracks projects that are created in my listening - contains loose ends - and inbox items
Immediate experience is, in many ways, the most important touchstone of value in our culture. We seek to overcome barriers that stand between us and a recognition of our inner selves, the reality of those around us, participation in society, and contact with a natural world exceeding human powers. No idea can substitute for this experience.
woo hoo! i was able to renew my iPad DataPlan while the micro-SIM was in my iPhone and after changing the APN setting from "phone" to "broadband" and "Enable 3G" - we have 3G power and the DataOnlyMobileComputing experiment has gone live!
# goal: finish this presentation with a clear set of DesiredOutcomes & matching [[Schedule]] & [[Budget]]
# goal: refine its delivery
# goal: execute the CommunicationPlan - have OurCommunity feel included
this all leads to a willingness to reinvent our [[Brand]] and ourselves!
<html>
<iframe src="https://docs.google.com/a/dancelabs.com/present/embed?id=dck9k9s4_14gkd9spdr" frameborder="0" width="410" height="342"></iframe>
</html>
"I consider myself a DancerOfTheWorld - allowing my aspiration to shift at every moment yet always seeking structures for workability.
Pull is the kind of book that makes you realize one is a fluid set of outcomes and that everything around you has the opportunity to align with exactly where you are right now and fulfill on exactly what you want.
The book explains the SemanticWeb in PlainEnglish - not TechnicalJargon many of you may have seen in other works (which to a [[Technologist]] such as myself is a blessing in disguise!) David successfully describes & shares a new world with plenty of real, live examples out there and a variety of scenarios from different facets of life - enough that you'll be moved and relate to at least one!
This is my new bible and compass for technologies we aspire to build together on the web. The book is so especially validating of many of my own personal LifeExperiments and provides a sense of peace there are so many like-minded people building such a future together!
So take action - read the book & you may never see everyday life thru the same lenses ever again and join the excitement of what's to come!"
//Written on Jul 22, 2010 at 01:37AM//
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
Before I left for [[Thailand]] in 2003 - I dreamed about accessing all my [[Media]] on a server before I left. I spent quite a bit of [[Money]] on 400GB of harddrive space (which cost US$400 at the time!) and didn't quite get it done (as I was on someone else's timeline and deemed it wasn't MissionCritical - so an UnfinishedProject it remained for over 7 years!)
LoAndBehold while taking on the TrueNorthHealthDiet and [[Housesitting]] - I got a MinimalServer up and running thanks to major strides in the [[Linux]] community.
In fact, this is the major thread - the OpenSource community keeps moving and driven by [[Inspiration]] not because ExecutiveManagement decides whether it's going to make money or not! This has been true of my new found love for TiddlySpace. There is a great deal of [[Autonomy]] present.
So I'd been following the Apple community quite diligently on its whole [[iTunes]]-centric MediaManagement strategy and the evolution of [[iOS]] devices - fascinating to say the least.
After playing around with [[Boxee]] and [[XMBC]] - I have some semblance of the challenges and have more appreciation for what [[Apple]] has engineered to make it DeadSimple for EndUsers.
Thus why something like AirVideo in just a few clicks away, you've got an instant MediaServer - able to stream video to any iOS device and at a touch of a button, stream it to any [[AppleTV]] and if you're into hacks, put AirServer on your iOS connect it to a TV and voila! - you're streaming video from your HomeComputer to any TV in the house. Really makes for PortableEntertainment possibilities on the go - it just may make you a really GreatGuest! ;-)
so in a nutshell - I wholeheartedly recommend keeping it simple - stick with iTunes to manage your media, run AirVideo if you'd like the computer to serve videos and use AirPlay if you want to send video to external displays. You'll have your VideosOnTheRun - available to you remotely - which is what matters when you're frantically trying to shuffle and share the latest DanceLabs or whatever effort you're PromotingOnTheRun - and of course, expect [[iCloud]] to be a complete GameChanger when SteveJobs decides to surprise everyone ;-)
very thankful to the TiddlySpace folks for connecting me to the OpenNotebookScience community (see Discoursive@frontpage and my own comments on [[Discoursive]])... I really don't mind my research thoughts being out there (and yes, they are definitely out there! lol)
//(NOTE: these are DesignNotes of @teamminutemen-core)//
# MarkupPostBody
** arguably a hack until I learn how to modify the DOM in PageTemplate
** going in the direction of creating a @creativecommons PlugIn
# TabTimeline - encourage people to update the tiddler themselves or include @newtimeline
One thing you need to know about me is I'm a documentation nut! I really want others to learn from my experiences and if possible, not make the same mistakes esp since I allow myself to be a novice at just about anything in life!
Most aggressive project (ie. I'm heavily resisting a printed version of it) soon to be transformed into a TiddlySpace:
http://dancelabs.wikispaces.com/Executive+Binder
Date: [[July 7, 2011]]
Went to bed / woke up: 1:41 / 6:45
Total time: 5h 03m
Usually I torture myself through (ok I’m exaggerating) typing an entry here on my iPhone when I wake up and got up to check to write on my Desktop, confirmed there is no new status of a GoogleVoicePorting request that started about 33 hrs ago and is still not complete – it would be nice to know who has the ball – [[Google]] or [[Verizon]] and where the hold up is.
In any case, struggling (yes, another [[Exaggeration]]) with the fact that I’m unwilling to learn to delegate, share, or do whatever it takes to get an EmailToTiddlerPlugin written.
It comes down to choice:
# I write it myself and use it as an exercise to learn JavaScript and the guts of TiddlySpace and pull out (aka DustOff) the [[Programmer]] deep down inside me and make a [[Contribution]] to the [[Community]]
# I get off my HighHorse and do whatever it takes to follow through on the invitation TimFerriss makes to hire a VirtualAssistant like BrickworksIndia as an inexpensive way to learn how to ManageOthers.
# let it be and accept StatusQuo – accept input on my iPhone in the morning and the fact that is data is in a bit of a [[Silo]] and [[aggregated|Aggregation]] into TiddlySpace indirectly though ShivaSleeps. MetaData on the reference itself happens through the tiddler itself.
Ok – enough GeekTalk.
Probably a [[Ruse]] to skirt around the fact that I’m being w the ChainOfEvents and the lesson I learned.
At the end of the day I’m really frustrated with [[Women]]
When I meet women who I feel I admire, have potential, I just about [[adore|Admiration]] them to death. I want the best for them – this is probably the [[Father]] in me rather than the SignificantOther.
// btw – I guess I’ve never tried the EmailToBlogGateway on LiveJournal – my drive to try experimenting with WordPress, my gut saying this blog will go places and evolve, to have the confidence to create a submain and use the context ShivaSleeps just felt right (sorry [[Google]] I tried [[Blogger]] and it didn’t post SleepGraphs below & wasn’t willing to troubleshoot)//
To go on another [[Tangent]] – I’m really irked the the GoogleVoice PortingProcess didn’t complete in less than 24 hrs. This is something that ate away at my [[Psyche]] all day yesterday both eager to see how this GoogleVoice experiment is to turn out and don’t know what to do when companies don’t follow through on their word – it’s disempowering and I’m trying not to make anyone wrong – esp when Im dealing with someone who wholeheartedly accepts this is an [[Experiment]], accepts [[Failure]], and is willing to just be on the CuttingEdge of [[Technology]] – I’m just always amazed and clear I want to continue to work with [[philanthropists|Philanthropy]] like this – any [[Stress]] I experience is created by me and I get to be 100% responsible for my [[Health]] – it’s that simple.
I feel really [[Blessed]] to have one year to iron out exactly what makes this [[Engagement]] tick – to run many experiments and have time to create lots of successes and lots of failures.
Maybe it is time to go to Thailand and just explore what it is to support Philanthropists [[Overseas]] – hesistant because I feel I “should” camp out and iron out my WellnessRoutine before I get up and go & part of me says [[Thailand]] is a wonderful place to bring 100% Focus to myself – in fact, it’s required if one is to be successful there – the number of [[Distractions]] there and that it is a DevelopingCountry is phenomenal – fun but can drive you crazy if you’re not MissionOriented.
Well – coming up with measures as to what constitutes success in Thailand is on my plate in driving my decision as to when to go.
Ok my wrists are getting tired – be nice to just continue this draft on the desktop (and sure I can through [[gmail]]) – just sick of changing contexts & whatnot. I just want to stay in one place.
So what does it mean for [[Shiva]] to [[Sleep]]?
I feel lost in my [[Thoughts]] now / I joke that i experience StackOverflow – taken so many tangents (subconsciously creating [[Chaos]]) that as a human – I don’t even know what point I’m trying to make (if any) – these are just MorningPages – they aren’t anything [[Significant]]!
Now as I was saying – I don’t know how to deal with [[Women]] who don’t fit a particular paradigm I have for them – this is no surprise – women have long been a [[Mystery]] to [[Men]] and there are tons of books out there on the subject so I won’t get into details here.
It’s fair to say it doesn’t matter if we’ve created a [[Friendship]], ProfessionalRelationship, IntimateRelationship – I seem to go through all the same motions so why have [[Boundaries]] and just ShootForTheMoon?
I think it would help to talk to more [[professional dancers|ProfessionalDancer]] and listen to what it is to keep a DanceRelationship professional and what are some practices in keeping the relationship on track as much as it feels like a [[Romance]]
Admittedly, it’s this notion that really trips me up – I’m willing to just about create DancePartnership with anyone (though I’ve been stopped by women & GayMen who I’m not reciprocally physically attracted to – Im really sorry if you’re reading this – it just wasn’t meant to be & thanks for giving me space to sort myself out in regards to what I want in a [[Partner]])
So I feel like I’m beating things around the bush – what will it take to move on and let go of a zillion [[infatuations|Infatuation]] and stay open to the new women I meet esp those who are available – esp EmotionallyAvailable? I even question whether I am emotionally available to be honest – I think I’m not.
Soooo factors I see below:
# I declared I’d be home all day & turns out my [[Admiree]] decided to arrive last night
# I was asked to meet to talk about the GoogleVoice transition & it was a [[Breakthrough]] for me to request to discuss over the phone with the email I put about 30-45 min composing so it could be reviewed easily AtYourLeisure.
# the opportunity to meet, have a great dinner, see the woman I adore, and complete LooseEnds from Tuesday became too great – I decided to do it.
# meeting at 9:30 quickly turned into 10 into 11 as I winged showed her around the place she was staying. I like KillingManyBirdsWithOneStone so if it’s an opportunity to forward ProfessionalMatters (esp on the TechnicalFront) and be with an AttractiveWoman – look I’m just a HornyBastard like any other, I’ll SeizeTheOpportunity!
# I didn’t CrashOver (and neither was I 100% prepared for that) and as a partner (even if you are a guy) – you [[lose points|LosePoints]] if you do not occur as part of the BurningMan or CouchSurfing community right off the bat – if you have barriers, I’ll do my best to acknowledge it & ask you not take it personally and want to move on. Same goes for how you mesh with my technology interests and your perspectives on how intimate one can be regardless of our [[Circumstance]] (interesting a movie called FriendsWithBenefits is coming out on the 20th.. Lol)
# I was exhausted at 11 & it all became a test, would she just let me crash HereRightNow because I enjoy her company & I’m just tired & willing to catch up in the morning when I’m WideAwake?
# getting home & using a drive to see what movies were provided for free on AmazonInstantVideo as part of AmazonPrime (no comparison to [[Netflix]] but there are a handful I’d be willing to watch so I can safely shelve Netflix for another month (if I wanted to ) – but I do want to watch things like WordsWordsWords loved by the [[Director]] & [[Producer]] of [[Fuel]])
# and to put the CherryOnTop (ahem) -my SexualFrustration often gets released (ahem) through [[Pornography]]
The last bit may be [[TMI]] for some of you but hell if you got this far I don’t know what to say!
I’m not ashamed of my interests, started at a young age of 8 which intersected with owning my FirstComputer – it’s clearly had an impact on me through MiddleSchool and HighSchool, my UniversityLife, my ProfessionalLife – glad I can put it down for weeks (if not months) at a time (much like VideoGames) – and i’d rather be open about it and the trends I see (even if disturbing) and always wonder about the mentality, the [[Psyche]] required to be a PornActor – esp those who seem abused.
This is a whole other order of conversation beyond the scope of this space – but then again, if ShivaSleeps is part of who I’m being in life and part of my PersonalSpace (which online is rather open right now) – then where do sensitive conversations around sex, women, porn, and everything that I care about WomenEmpowerment and [[Sexuality]] and the zillion of [[social experiments|SocialExperiment]] I’ve done on (and with!) women go?
I suppose there is a distinct population of us in life who don’t mind being experimented with – it’s happening through technology esp with all the [[Free]] services. I’m always willing to be a GuineaPig provided you are one to and if you’re reading this blog – you are in many ways & Id like to get to know you so do ContactMe or FindMe and I would be delighted to have you be my partner in helping Shiva sleep!
Just be prepared to rise at 4am and dance, laugh, and start the day … say GoodMorning to the [[Sun]] and say good morning to our neighbors and our entire community
A good morning to you! Time for me [[oats|SteelCutOats]] – love you for listening!
Analysis made by the Sleep Cycle iPhone app.
My sleep graph for the entire night:
[img[http://shivasleeps.files.wordpress.com/2011/07/sleepgraph5.jpg?w=280&h=201]]
this has been my workhorse for implementing GTD and creating some sanity around everything that it is I'm organizing.
I made a commitment to the entire system while in [[Tokyo]] in 2008 - a time in my life I decided to just SwingBigAtBat! :)
I've got lots of opinions about the system - it does what it's advertised as well. The Engineer in me wants more sophistication in regards to AdvancedContextSensitivity - the easiest way I can explain it is integrating a FranklinCoveyCompass.
Something I am still inquiring around is how such a system integrates with email, CRM, SocialNetworking, and the next generation of CollaborativeCommunicationSystems.
a few screen snapshots in my early days: http://goo.gl/Rq4Ro
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
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
noscript{border:5px solid red;display:block;margin:auto;padding:50px;text-align:center;width:300px}.syncButton{font-size:2em;border:solid 1px #CCC;padding:5px;border-radius:5px 5px 5px;-ms-border-radius:5px 5px 5px;-o-border-radius:5px 5px 5px;-moz-border-radius:5px 5px 5px;-webkit-border-radius:5px 5px 5px;width:48px;height:48px;background-image:url(/bags/common/tiddlers/icon-sync.png);background-repeat:no-repeat;background-position:center;text-indent:-999px;overflow:hidden;display:block;text-align:center;cursor:pointer;right:10px;top:20px;position:absolute}#note.active #deletenote{display:none}body{font:14px/1.4 "Helvetica Neue","Lucida Grande","Arial";margin:0}#backstage{width:100%;padding:0;background-color:black;margin:0;height:32px;text-align:center;background:-moz-linear-gradient(center bottom,#222 0,#333 50%,#555 100%);background:-webkit-gradient(linear,left bottom,left top,color-stop(0,#222),color-stop(0.5,#333),color-stop(1,#555));background:-moz-linear-gradient(center bottom,#222 0,#333 50%,#555 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#F5555,endColorstr=#F2222);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#F5555, endColorstr=#F2222)"}#backstage a{color:white;padding:4px;display:block;text-decoration:none}#backstage li:first-child{border-right:solid 1px #777}#backstage li:nth-child(2){border-left:solid 1px #555}#backstage a:hover{background-color:#ffa500}#backstage li{display:inline-block;line-height:18px;margin-top:2px;padding:0 10px}#backstage .status{color:#CCC;float:right;font-size:.8em}#backstage .status.nonmember{color:#666;opacity:.5}h2,h3,h4,h5{margin-bottom:0}a{color:royalBlue}a:hover{color:#4169c8}.header{border-bottom:7px solid rgba(26,31,30,0.95);padding-bottom:20px;position:relative}.siteheading{position:relative}.header h1{color:#4c4a54;font-size:4em;line-height:48px;text-shadow:0 2px 2px white;padding-top:10px;margin-top:0;padding-left:72px}.toolpanel .info,.toolpanel input,.toolpanel h2,.toolpanel ul{margin-left:120px}.toolpanel h2{text-shadow:0 1px 1px white}.toolpanel .section{border-bottom:1px solid #dce7f1;border-top:1px solid #f8f8f8;padding:24px;position:relative;background-position:80px 15px;background-repeat:no-repeat}.section.searchSection{background-image:url(/bags/common/tiddlers/icon-search.png)}.section.recentSection{background-image:url(/bags/common/tiddlers/icon-recent.png)}.section.incompleteSection{background-image:url(/bags/common/tiddlers/icon-incomplete.png);min-height:100px}.toolpanel .section ul{list-style:none}.siteicon{background-color:#fff;background-position:top center;border:solid 1px #eee;background-image:url(/SiteIcon);height:56px;width:56px;background-repeat:no-repeat;-webkit-border-radius:10px;-moz-border-radius:10px;-o-border-radius:10px;-ms-border-radius:10px;border-radius:10px;background-size:100%;position:relative;left:6px;top:8px}.toolbar{position:absolute;top:-40px;width:100%}.takenotedashboard .footer{text-align:center;font-style:italic;font-size:.8em;color:gray;font-weight:bold;border-top:solid 1px #CCC}.takenotedashboard .footer,#note,.messageArea{width:500px}.note_title{font-family:Georgia;line-height:48px;color:#4c4a54;border:0;font-size:3em;outline:0;padding:0 16px;text-align:center;text-shadow:0 1px 1px white;background:0;width:90%;margin-left:5%}.takenotecontainer{width:540px;background:rgba(255,255,255,0.7)}.takenotedashboard{width:540px;background-color:#f0f4f8;padding-bottom:40px}.note_title_container{width:556px;margin-left:-28px;-webkit-box-shadow:0 1px 1px #606a73;-moz-box-shadow:0 1px 1px #606a73;-o-box-shadow:0 1px 1px #606a73;-ms-box-shadow:0 1px 1px #606a73;box-shadow:0 1px 1px #606a73;position:relative;background-color:#dce7f1}@media all and (min-width:500px){body{background-image:url(/bags/common/tiddlers/HtmlBackground)}.note_title_container:before{content:"";position:absolute;bottom:-8px;left:0;border-width:0 8px 8px 0;border-style:solid;border-color:rgba(0,0,0,0) #3a4955 rgba(0,0,0,0) #3a4955;background:rgba(0,0,0,0);display:block;width:0}.note_title_container:after{content:"";position:absolute;bottom:-8px;right:0;border-width:8px 8px 0 0;border-style:solid;border-color:#3a4955 rgba(0,0,0,0) rgba(0,0,0,0) #3a4955;background:rgba(0,0,0,0);display:block;width:0}}.takenotedashboard,.takenotecontainer{margin:auto;margin-top:20px;position:relative;display:none}.takenotedashboard,.takenotecontainer.ready{display:block}#note{position:relative}.takenotedashboard .footer,#note,.messageArea{margin:0 auto}.messageArea{position:relative;margin-bottom:20px;font-family:monospace;border:solid 1px #ccc;color:#333;padding:10px 0 20px 0;text-indent:4px;color:green;opacity:0}.messageArea.warning{color:#b38600}.messageArea.error{color:red}.messageArea.displayed{opacity:1;-webkit-transition:opacity .4s ease-in;-moz-transition:opacity .4s ease-in;-ms-transition:opacity .4s ease-in;-o-transition:opacity .4s ease-in;transition:opacity .4s ease-in}.takenotecontainer h1{font-size:3em}#notebody{position:relative;border:1px solid gray;background:rgba(255,255,255,0.7);margin-top:18px;padding:16px;box-shadow:1px 1px 2px rgba(0,0,0,0.5),-1px -1px 2px rgba(0,0,0,0.5)}#newnote{height:24px;width:30px;position:absolute;top:6px;right:4px;padding:5px;background-repeat:no-repeat;background-image:url(/bags/common/tiddlers/saveTiddler.png)}.notedate{float:right;color:rgba(0,0,0,0.5);margin-left:32px}#notebody .note_text{color:#1a1f1e;background:transparent;width:100%;border:0;outline:0;clear:both;font-family:Georgia;font-size:1.3em;line-height:1.3em}#tips{padding:8px;background-color:#DDD}.imageTip img{width:16px;height:16px}.boldTip,.underlineTip,.italicTip{margin-left:2px;margin-right:2px}.boldTip{font-weight:bold}.underlineTip{text-decoration:underline}.italicTip{font-style:italic}#metabutton{background:gray;width:32px;height:32px;background-repeat:no-repeat;background-position:center;opacity:.3;border-radius:0 0 5px 5px;padding:10px;position:absolute;bottom:-52px;left:224px;-webkit-transition:height .2s ease-in-out,bottom .2s ease-in-out,opacity .2s ease-in-out;-moz-transition:height .2s ease-in-out,bottom .2s ease-in-out,opacity .2s ease-in-out;-o-transition:height .2s ease-in-out,bottom .2s ease-in-out,opacity .2s ease-in-out;-ms-transition:height .2s ease-in-out,bottom .2s ease-in-out,opacity .2s ease-in-out;transition:height .2s ease-in-out,bottom .2s ease-in-out,opacity .2s ease-in-out}#metabutton:hover{opacity:.7;height:35px;bottom:-55px}#newnote:hover,#metabutton:hover{cursor:pointer}#notemeta .paddedbox{padding:10px}#notemeta ul{list-style:none}.removeTag{background-image:url(/bags/common/tiddlers/deleteTiddler.png);background-size:12px 16px;background-repeat:no-repeat;text-indent:-999px;overflow:hidden;width:12px;height:16px;display:inline-block;margin-left:8px;margin-right:8px;cursor:pointer}.note_title:focus{text-shadow:none}#deletenote{position:absolute;top:4px;left:4px;background-image:url(/bags/common/tiddlers/deleteTiddler.png);background-repeat:no-repeat;height:30px;width:20px}#cancelnote{position:absolute;top:4px;visibility:hidden;right:50%;margin-left:-15px;background-image:url(/bags/common/tiddlers/cancelTiddler.png);background-repeat:no-repeat;height:30px;width:30px}.validatedNote #cancelnote{visibility:visible}#cancelnote,#deletenote,#newnote{cursor:pointer;opacity:.3;overflow:hidden;text-indent:-9999px}#cancelnote:hover,#newnote:hover,#deletenote:hover{opacity:1}#backstage a.connectionStatus:hover,.connectionStatus{display:block;position:relative;-webkit-border-radius:5px;-moz-border-radius:5px;-o-border-radius:5px;-ms-border-radius:5px;border-radius:5px;background-color:red}.online #backstage a.connectionStatus:hover,.online .connectionStatus{display:block;background-color:green}.connectionStatus:after{content:"offline";position:absolute;top:-6px;left:15px;color:#ccc}.online .connectionStatus:after{content:"online";position:absolute;top:-6px;left:15px;color:#eee}.requiresConnection{display:none}.online .requiresConnection{display:block}@media screen and (max-width:500px){.note_title{padding:0}#backstage{font-size:.8em}.takenotedashboard,.takenotecontainer{width:100%;font-size:.7em;margin-top:0}.takenotecontainer{background:#d0d2d3}.header h1{font-size:2em}.takenotedashboard .footer,#note,.messageArea{width:93.75%}#cancelnote{right:45%}.note_title,.note_title_container{width:100%;margin:auto}.toolpanel .section{background-position:5% 25%;padding:24px 0}.toolpanel .info,.toolpanel input,.toolpanel h2,.toolpanel ul{margin-left:20%}}
good to see someone else using TiddlySpace for SystemsDesign
function onClickDefaultHome(e) {
story.closeAllTiddlers();
config.options.txtDefaultTiddlers = "";
saveOptionCookie('txtDefaultTiddlers');
var start = store.getTiddlerText("DefaultTiddlers");
if(start)
story.displayTiddlers(null,start.readBracketedList());
}
config.macros["defaultHome"] = {label: "home", prompt: "Show the default tiddlers", title: "Home"};
config.macros.defaultHome.handler = function(place) {
createTiddlyButton(place,this.label,this.prompt,onClickDefaultHome);
}
think it's fair to say ever since I lived in [[Germany]] for 2 months, I've been inspired to be an avid [[Recycler]]. I brought it back to [[Thailand]] and it was nice to see attention to it in [[Japan]] and now that I'm back in [[LosAngeles]], I've been doing what I can.
I definitely like to recycle old IT parts and squeeze ''every'' penny out of one's investment!
I've kept my first [[iPad]] for this reason - it really doesn't pay to replace [[Technology]] all the time if you haven't even reaped your InitialInvestment especially if you've BorrowedMoney!
This post captures my thoughts well in regards to including AppleTV in Apple's most advanced displays...
http://goo.gl/y4LZ4
<<<
seems like it'd be such a great setup to have tons of ATV-enabled displays out there and flip the switch and enable the AppStore for AppleTV - probably transform the industry overnight!
<<<
/***
|''Name''|TiddlySpaceFollowingSuggestions|
|''Version''|0.2.5dev|
|''Description''|Provides a following macro|
|''Author''|Jon Robson|
|''Requires''|TiddlySpaceFollowingPlugin|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
!Code
***/
//{{{
(function($) {
var tweb = config.extensions.tiddlyweb;
var tiddlyspace = config.extensions.tiddlyspace;
var followMacro = config.macros.followTiddlers;
var followSuggestions = config.macros.followSuggestions = {
cache: {},
handler: function(place, macroName, params) {
// to do - limit results
place = $('<div class="suggestions" />').appendTo(place)[0];
var currentSpace = tiddlyspace.currentSpace.name;
var user = params[0] || currentSpace;
var pleaseWait = $("<div class='loading' />").text("please wait..").appendTo(place);
tweb.getUserInfo(function(activeUser) {
if(activeUser.name != tiddlyspace.currentSpace.name) {
pleaseWait.hide();
return;
}
followMacro.getFollowers(function(users) {
// suggestions are followers of people that you follow that you don't follow
var bags = followMacro._getFollowerBags(users);
var _bags = [];
for(var i = 0; i < bags.length; i++) {
_bags.push("bag:%0".format([bags[i]]));
}
var bagString = _bags.join(" OR ");
ajaxReq({
beforeSend: followMacro.beforeSend,
url: "/search?q=(%0)&select=title:!%1&select=title:!@%1".format([bagString, activeUser.name]),
dataType: "json",
success: function(tiddlers) {
pleaseWait.hide();
var suggestions = [];
for(var i = 0; i < tiddlers.length; i++) {
var tiddler = tiddlers[i];
if(tiddler.tags.contains("follow")) {
var title = tiddler.title;
if(title.indexOf("@") === 0) {
title = title.substr(1);
}
if(!users.contains(title)) {
suggestions.pushUnique(title);
}
}
}
$(place).append("<div>suggestions:</div>");
var suggestionArea = $("<div class='suggestionArea' />").appendTo(place)[0];
var id = "more_%0".format([Math.random()]);
var more = $("<div class='moreButton' />").text("more...").appendTo(place).attr("id", id);
followSuggestions.cache[id] = suggestions;
var limit = suggestions.length;
more.click(function(ev) {
var suggestions = config.macros.followSuggestions.cache[id];
var newSuggestions = followSuggestions.suggest(place, suggestions, limit);
config.macros.followSuggestions.cache[id] = newSuggestions;
});
followSuggestions.suggest(place, suggestions, limit);
}
});
}, user);
});
},
randomize: function(a, b) {
if(Math.random() < Math.random()) {
return -1;
} else {
return 1;
}
},
suggest: function(place, suggestions, limit) {
var currentSpace = tiddlyspace.currentSpace.name;
suggestions = suggestions.sort(followSuggestions.randomize);
var suggestionsArea = $(".suggestionArea", place)[0];
if(suggestions.length === 0) {
$("<span />").text("no suggestions..").appendTo(suggestionsArea);
return;
}
limit = limit < suggestions.length ? limit : suggestions.length;
for(var j = 0; j < limit; j++) {
var link = $("<span />").appendTo(suggestionsArea)[0];
var title = suggestions[j];
var newTiddler = '@%0 <<newTiddler title:"@%0" fields:"server.workspace:bags/%1_public" tag:follow label:"follow">>\n'.format([title, currentSpace]);
wikify(newTiddler, link);
}
var newSuggestions = suggestions.slice(limit, suggestions.length);
var more = $(".moreButton", place);
if(newSuggestions.length == 0) {
more.remove();
}
return newSuggestions;
}
};
})(jQuery);
//}}}
RockMelt is lack for a better term, rocking MyWorld! It is my [[Firefox]] replacement and challenges the idea of using [[Safari]] on my MacBook while exploring the ProsAndCons of a DefaultConfiguration of [[MacOSX]] (which one could argue should be sufficient). This challenges a CloudConfiguration which approaches the CloudOS conversation which [[Chrome]] is intimately tied to (and which RockMelt is built on top)
<<<
discovered @rockmelt reviewing my @googleanalytics! great way 2 plug into @facebook after 30 day hiatus. @flock flys out the window 4 me!
<<<
love how the "@" links above will work when these folks arrive on TiddlySpace ;-)
TiddlySpace in the context of DanceLabs is a [[Commons]] for the SharedExperiences we often call [[dance experiments|DanceExperiment]].
We are looking for a volunteer interested in shadowing our [[Technology]] efforts and experimenting with the use of TiddlySpace to bring our efforts together.
What we see is the creation of our [[Commons]] and having each and every program include @dancelabs-commons in each program they choose to design.
What we feel is possible is every DanceCatalyst is able to draw upon the community's efforts which continually expands.
@chalat is a space to consider where the AbstractionProcess shall begin (BuildingBlocks@chalat is a place to start)
Input from playing with DanceLikeNobodysWatching with our adults is available in our GoogleDocs. This gives you a taste of what we feel is an output of DesignProcess and input into the WorkshopProductionProcess.
What you have is now the beginnings of our WorkshopDesignSoftware
There's a lot to love and not to love about the new PhotoStream feature of iOS5.
The feature is a godsend in that it eliminates the need to sync your iOS device to a computer to organize and upload photos - something that's great for my mom!
however, it's kludgey right now
* the CameraRoll is distinct from your PhotoStream which is ''really'' confusing! I ended up with duplicate photos after playing around with it for the first time. just a mess waiting to happen once the masses start playing with it!
* iPhoto albums are not the same as albums created on your iPhone (and not noted as such)
* part of the issue is to have a photo be part of an album, it needs to be copied somewhere, so they decided to copy it to your CameraRoll instead of just putting it straight into your iPhotoLibrary (and having iOS albums WiFiSync back to iPhoto on your desktop)
why couldn't they have modeled [[Flickr]] a bit more closely - hell, why didn't they partner with Yahoo given there already is a Flickr integration in iPhoto?
We haven't completely left behind the paradigm of PhotosInAShoebox and as a result, we have a pretty HairyBaby on our hands!
Apple succeeded in snipping the cord, I'm sure iPhoto for iOS will solve many of these issues.
I am pretty close to saying it's HalfBaked and they should have continued to work on the next MajorUpgrade of iLife to get it working 100%.
The MarketingStrategist in me realizes they are pressured to keep a leg up on Android - [[Software]] is Apple's key to staying ahead. HardwareProduction just gets cheaper over time and gets commoditized. The concept of a TouchscreenTablet is so elegant, there aren't many HardwareRevisions to be really made because the whole ComputingMindset of the masses has yet to reap the potential of existing devices!
<!--{{{-->
<div class='toolbar'
macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:16 width:16 more:popup'>
</div>
<div class='heading'>
<span class='spaceSiteIcon'
macro='tiddlerOrigin label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
</span>
<span class="titleBar">
<div class='title' macro='view title text'></div>
<span class="subtitle" macro='viewRevisions page:5'>
last modified on
<span macro="view modified date"></span>
</span>
<div macro="view title replyLink"></div>
</span>
<span class='followPlaceHolder' macro='followTiddlers'></span>
<span class='modifierIcon'
macro='view modifier SiteIcon label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
</span>
<div class='tagClear'></div>
</div>
<div class='content'>
<div class='viewer' macro='view text wikified'></div>
</div>
<div class='tagInfo'>
<div class='tidTags' macro='tags'></div>
<div class='tagging' macro='tagging'></div>
</div>
<!--}}}-->
happy happy day! what makes you happy?
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/ol1n6gAwGzk" frameborder="0" allowfullscreen></iframe>
</html>
quoted from @svetochka:
<<<
“App has been around for ages, but with millions of dollars of [[Marketing]] muscle behind the slogan ‘[[There’s an app for that]],’ plus the arrival of ‘[[app stores|AppStore]]’ for a wide spectrum of operating systems for phones and computers, app really exploded in the last 12 months,” Ben Zimmer said. “One of the most convincing arguments from the voting floor was from a woman who said that even her [[Grandmother]] had heard of it.”
<<<
love it!
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/wm81R14A90w" frameborder="0" allowfullscreen></iframe>
</html>
By far the yummiest variety are purple Okinawa yams - I buy them at MarukaiMarket - give them a shot!
<<defaultHome>> <<tag news>> <<randomTiddler>> IntentionalCommunity [[Find Me|FindMe]]
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/4Y8hmt3nxfE" frameborder="0" allowfullscreen></iframe>
</html>
My favorite videos:
# [[Accomplishment]] - alive with possibility, very energizing to watch!
# [[Nekid]] - playful, just being myself authentically, no withholds
We want to understand the growing role of software in society in terms of laws.
co-op as in CoOpportunity
the more I go to this market, the more I can really appreciate it over WholeFoods (not surprising, really)!
discovered the soups made here are ''very'' healthy and fitting to my new TrueNorthHealthDiet (no SaltSugarOil)
I also love that I can get quality [[Organic]] herbs in bulk - so I can get as little as 0.01 lbs to just try/test an herb!
ToCreate: new journal button that defaults titles to CurrentDate, state to "private" and tags "Journal" (be nice to be able to have a checkbox for MinorEdit)
in "response" to: http://chinarut.livejournal.com/351111.html
//i can totally see each of these being individual tiddlers....//
//how to create a view equivalent to this page that "sums up" all thoughts for a particular morning?//
''ambience'' - well - at least i know Soundsticks over AirTunes/AirPlay is not ready for prime time (that would have been $200 not spent well...)
''love'' - @claudia was present to the possibility of being roommates...
''cooking'' - @claudia did assist me with unsplit pea soup... learned I have to measure everything out first (even spices) and that quality spices would make a difference (bring bottles to co-op...)
''shopping'' - halted cept things related to health. haven't connected with iNetVideo in regards to getting the correct DVD!
''phone'' - back in the Android conversation http://chinarut.com/SmartPhone - getting a kosher iPhone more realistic - i can see myself using less than 450 min, allow it to rollover and reducing my text usage by using internet - 200MB will be good to start to see what happens - though the 3G speed will be addictive, I'm sure. look into
''music'' - puzzled why @claudia wouldn't want to listen to her own music (even i don't mind listening to my own music over and over - and def if I'd like to share!)
''security'' - fresh install of Mac OS X Lion will be key...
''sleep'' - decided to let Burnie rest.... sleep soundly (didn't wake up cept maybe at 6 or 7am) - SuperDream in the morning....
''maintenance'' - not watering plants! lawn was cut a few days ago... need to see if i can find a new knob for dad's Toro...
''follow through'' - bought and took my first dose of Thorne vitamins!
''wisdom'' - went to city team meeting last night and confronted about getting a "kosher" phone, now!
''search'' - lost the initial draft of my CommunityUpdate I wrote on - it's driving me nuts not knowing where it is...
''office'' - back to working on the iMac...
''gift'' - i probably had the best gift (under $20 too) for Jeyton
''money'' - still feel controlled by money...i do ack it would not be smart to buy a MacBookAir on credit... I'd be in FieldMode with my iPad for the most part in Thailand....
''BurningMan'' - what ever happened to the idea of enlisting George to go to BurningMan? Talk to Christina...
''communication'' - yup - i have quite a few rackets. want to let everyone know I still need a lot of space to do all the things I said I'd do and that things are changing - I'm no longer going to "spray" communication...
''health'' - got a bit bummed out that i felt shitty this morning - what I distinguished with @claudia is that I ''must'' be home at 8pm rather than slamming into bed at 10.
''smell'' - the onion/garlic smell is coming from the VitaClay - it's disappered - whew.
''distractions'' - funny I found the iPhone note I wrote in Nov 2008. still a full checkin ... I noted "wiki" as a distaction... hmm...
ok - now where is that draft of my CommunityUpdate? :D
One of the most overlooked features of [[Google+]] - Hangouts gives a glimpse into Google's SocialStrategy that learns towards GeographicallyDistributedFamilies :)
<<<
Sony & Logitech have their GoogleTV fire sales going on last few weeks, new Android software is about to come out, Virgin helping push [[Chromebooks]] - would love to see a buzz around hanging out in our living room a la [[Google+]] - very exciting to see new ways to connect to my beloved dancers around the world unfolding b4 my eyes! :)
<<<
http://goo.gl/2313h
Until I evaluate [[iOS5]], I've got [[Notifications]] turned completely on my [[iPad]]
# I want my TabletEnvironment as DistractionFree as possible (contrary to popular belief, it's not an InterruptDriven iPhone!)
# it's really annoyed to stream a movie (via [[Netflix]]) or have a game completely blowup on you because a notification comes through. now admittedly, it would be nice to have a MuteButton (timed for say 3 hours) or have a toggle to allow developers to disable notifications much like one would disable a ScreenSaver if watching a movie on your [[Desktop]]
We've gone wireless. sending music all over the house through the airwaves instead of SpeakerCables. Advantage being it's easy to set up - you don't need to drill holes, route wires and what not. The disadvantage is the quality of your experience is now dependent on the quality of your WirelessNetwork - which in general is not always great.
So I've fiddled around with AirTunes and have mixed results - overall, it's quite good as long as you stick with Apple's solution using AirportExpress and AirPlay. As soon as you try to hack it and use Airfoil - things start getting shakey especially if you try to stream to portable devices (iPhone, iPad, MacBook)
I just put DigitallyImported on Burnie and realizing what may work best is letting each local client sync and buffer itself and having the cloud be the source opposed to my desktop.
If anyone has any insight into what it takes to optimize WirelessNetworks - I have to admit classic WiFi looks like it's on its way out - my 3G connection is more ubiquitous, more reliable, and thinking it's worth paying per GB just for PeaceOfMind!
I'm not an EarlyAdopter when it comes to WirelessTechnology - I am happy to let everyone iron out the PowerConsumption of 4G networks - EDGE is quite sufficient to stream my music :)
you guys are sweet - the fact that you brought it down to earth to #education is absolutely inspiring. look forward to meeting you guys at [[Osmosoft]] :)
to think that the [[iPhone]] and [[iPad]] are actually jockeying off for 1st place - it's been fascinating to realize the contexts that make each device "better" than the other. you may find DataOnlyMobileComputing a snippet of this adventure!
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
ok - the state of syncing contacts across platforms is enough to drive you nuts!
gone are the days of TrueSync which I felt (IMHO) resolved conflicts between multiple nodes (Outlook, my PalmPilot, and my [[Timeport]] at the time) ''really'' well.
# [[Google]]
** GoogleMail - which thankfully shares its contacts with GoogleVoice and [[Google]]
** GoogleApps - have a bit of a split identity here which I'm accepting short-term since DanceLabs pretty much is my life and I accidentally synced my Apple AddressBook anyways
# [[Apple]] - AddressBook (which is currently is not syncing to my iPhone or iPad due to a MobileMe bug which I expect to get resolved with the iOS5 and [[iCloud]] upgrade...)
# [[Facebook]]
# [[salesforce.com]]
[[Plaxo]] brought all my FriendLists (and [[Categories]]) I started creating by in my Outlook days to my Apple AddressBook which in turn brought all my groups to my [[iPhone]] - was quite pleased at the time :) While building my presence in [[Facebook]], I just started from scratch and found some limits initially. On my [[Wishlist]] is the ability to merge and port all this work to [[Google+]] [[Circles]]! For now I'm starting from scratch (again)...
Mind you, this is not as much of a nightmare as syncing a mac with a [[Blackberry]], [[Google]], and [[T-Mobile]]'s own backup system - duplicates mania!
I've personally weathered the storm (KnockOnWood) - it's been an interesting last few days and it ain't over yet!
seeking a BetterTagPlugin to sort <<tag Journal>> by CreatedDate, most recent at the top
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
There are many ICT curricula, but here is one: http://www.ocr.org.uk/download/kd/ocr_9750_kd_spec.pdf
For the most part these aren't bad, but in the classroom have the effect of killing and dumbing down what is an exciting subject with applications and implications for all aspects of our lives.
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
is he [[nekid]]?
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/Oi3ltAcKSAs" frameborder="0" allowfullscreen></iframe>
</html>
oh - the wonders of GoogleVoice!
<html>
<object type="application/x-shockwave-flash" data="https://clients4.google.com/voice/embed/webCallButton" width="230" height="85"><param name="movie" value="https://clients4.google.com/voice/embed/webCallButton" /><param name="wmode" value="transparent" /><param name="FlashVars" value="id=aad156f7e022bd73d39b0742efeafe45051dc7c9&style=0" /></object>
</html>
also invite you to register and [[Play]] with me and my community here on TiddlySpace. click "login" in the upper-righthand corner and click the "Register" tab and start defining YOUR own [[Universe]] or reply to any of my tiddlers!
you may also drop me a note by clicking "Send an email" under my GoogleProfile's picture: http://goo.gl/KtVQT
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/wPvaYTAqa6E" frameborder="0" allowfullscreen></iframe>
</html>
thoughts on a french documentary on the culture itself...
<<<
not bad not great. Watch it if you're looking for insight into Japanese culture - I was surprised how amazingly frank some of those interviewed were that in some ways, it's inspiring to see those in such a repressed culture do honor being themselves even if it's just sharing their view of life on camera.
<<<
<<<
*See behind the user interface
<<<
This one is hitting me hard right now...I've basically spent a few days non-stop trying to learn how to put together an old Pentium server. it's like I've learned how to program on pre-packaged systems like the ColorComputer and the AppleIIe, helped build the PentiumII, did some hardcore Enterprise stuff like ClearCase and at the end of the day, never ''really'' understood a computer from a SystemsPerspective so I often get tripped up in the mesh - networking, how a motherboard works and glues together its components - stuff that is (rather) nicely abstracted in the modern-day [[Macintosh]]!
interesting I find myself so driven to figure this out through [[Experience]] rather than [[taking things for granted]]!!
/***
|Name|GATrackerPlugin|
|Description|Google Analytics tracker|
|Author|Julien Coloos|
|Version|1.2.0|
|Date|2011-05-18|
|Status|stable|
|Source|http://julien.coloos.free.fr/TiddlyWiki-dev/#GATrackerPlugin|
|License|[img[CC BY-SA 3.0|http://i.creativecommons.org/l/by-sa/3.0/80x15.png][http://creativecommons.org/licenses/by-sa/3.0/]]|
|CoreVersion|2.6.2|
|Documentation|http://julien.coloos.free.fr/TiddlyWiki-dev/#GATrackerPlugin|
!Description
This plugin enables Google Analytics tracking inside TiddlyWiki.
The version used is the asynchronous one ({{{ga.js}}}).
The plugin comes with its own configuration, which is stored persistently inside the (hidden) [[SystemSettings]] tiddler.
The configuration has to be set before being effective: it can be done in the plugin tiddler (see below) if TiddlyWiki is not in read-only mode. Tracking works if an account ID has been set, tracking has been enabled, and TiddlyWiki access is non-local.
Tracking can be reported as either:
* page views
** pages are named {{{/#Tiddler name}}}
* events
** Category: {{{Tiddlers}}}
** Action: {{{Open}}}, {{{Refresh}}}, {{{Edit}}}, {{{Search}}}, {{{Close}}} or {{{CloseAll}}}
** Label
*** for {{{CloseAll}}} action: excluded tiddler
*** for {{{Search}}} action: searched text
*** otherwise, tiddler name on which action is performed
** Value: for the {{{CloseAll}}} action, the number of closed tiddlers
** Note: Google Analytics script limits the number of events (1 every 5 seconds, with a burst limit of 10)
Tracking can be globally disabled, or enabled per action on each tiddler:
* //Open//: when tiddler was not yet displayed
** Note: default tiddlers do not trigger this action when accessing TiddlyWiki
* //Refresh//: when tiddler was already displayed
** Note: this action is automatically triggered after editing a tiddler
* //Edit//: when editing (or viewing in read-only mode) the tiddler
* //Close//: when tiddler was displayed
** this action is never tracked in //pages views// tracking
** the //CloseAll// action is triggered by the TiddyWiki links //close all// and //close others// if at least one tiddler was closed; individual tiddlers closed are not tracked as //Close// actions
* //Search//: when searching in tiddlers
** this action is never tracked in //pages views// tracking
** {{{CloseAll}}} and {{{Open}}} actions are not taken into account while search is performed: TiddlyWiki automically closes opened tiddlers before searching and opens tiddler that match the searched text
!Configuration
<<GATrackerConfig>>
!Revision History
!!v1.2.0 (2011-05-18)
Enhancements:
* do not trigger {{{CloseAll}}} and {{{Open}}} actions when search is performed
* added the {{{Search}}} action
!!v1.1.0 (2011-05-17)
Enhancements:
* do not trigger {{{Open}}} action when displaying default tiddlers
* added the {{{CloseAll}}} action
!!v1.0.0 (2011-05-14)
Initial release.
!Code
***/
//{{{
/* Google Analytics queue object. Needs to be global. */
var _gaq = _gaq || [];
if (!config.extensions.GATracker) {(function($) {
version.extensions.GATrackerPlugin = {major: 1, minor: 2, revision: 0, date: new Date(2011, 5, 18)};
/* Prepare overridden TiddlyWiki displaying */
var trackOptions = {};
var displayDefault = 0, closingAll = 0, searching = 0;
var pl = config.extensions.GATracker = {
getOption: function(optKey) {
return (config.optionsSource && (config.optionsSource[optKey] == "setting")) ? config.options[optKey] : null;
},
setOption: function(optKey, value) {
config.options[optKey] = value;
config.optionsSource[optKey] = "setting";
saveOption(optKey);
},
loadOptions: function() {
var gaTrack = (pl.getOption("txt_GATracker_track") || "1,0,1,1,1,0,0").split(",");
trackOptions = {
id: pl.getOption("txt_GATracker_id"),
enabled: parseInt(gaTrack[0] || "1"),
type: parseInt(gaTrack[1] || "0"),
events: {
open: parseInt(gaTrack[2] || "1"),
refresh: parseInt(gaTrack[3]) || "1",
edit: parseInt(gaTrack[4] || "1"),
close: parseInt(gaTrack[5] || "0"),
search: parseInt(gaTrack[6] || "0")
}
};
if (trackOptions.id && !trackOptions.id.length) {
trackOptions.id = null;
}
},
saveOptions: function() {
var opts = trackOptions.enabled && "1" || "0";
opts += "," + trackOptions.type;
for (var ev in trackOptions.events) {
opts += "," + (trackOptions.events[ev] && "1" || "0");
}
pl.setOption("txt_GATracker_id", trackOptions.id || "");
pl.setOption("txt_GATracker_track", opts);
},
track: function() {
_gaq.push.apply(_gaq, arguments);
},
trackAndDisplayDefaultTiddlers: function() {
displayDefault = 1;
try { pl.displayDefaultTiddlers.apply(this, arguments) } catch(e){};
displayDefault = 0;
},
trackAndDisplayTiddler: function(srcElement, tiddler, template, animate, unused, customFields, toggle, animationSrc) {
if (!displayDefault) {
var trackEvent, title = (tiddler instanceof Tiddler) ? tiddler.title : tiddler;
if (story.getTiddler(title)) {
/* Tiddler is already displayed */
if (toggle === true) {
/* Closing tiddler: tracked in separate function */
}
else if (template === DEFAULT_EDIT_TEMPLATE) {
if (trackOptions.events.edit) trackEvent = "Edit";
}
else if (trackOptions.events.refresh) trackEvent = "Refresh";
}
else if (trackOptions.events.open && !searching) trackEvent = "Open";
if (trackEvent) pl.track(trackOptions.type ? ["_trackPageview", "/#" + title] : ["_trackEvent", "Tiddlers", trackEvent, title]);
}
pl.displayTiddler.apply(this, arguments);
},
trackAndCloseTiddler: function(title, animate, unused) {
if (closingAll) closingAll++;
else pl.track(["_trackEvent", "Tiddlers", "Close", title]);
pl.closeTiddler.apply(this, arguments);
},
trackAndCloseAllTiddlers: function(excluded) {
closingAll = 1;
try { pl.closeAllTiddlers.apply(this, arguments) } catch(e){};
if ((closingAll > 1) && !searching) pl.track(["_trackEvent", "Tiddlers", "CloseAll", excluded, closingAll - 1]);
closingAll = 0;
},
trackAndSearch: function(text, useCaseSensitive, useRegExp) {
if (!trackOptions.type && trackOptions.events.search) pl.track(["_trackEvent", "Tiddlers", "Search", text]);
searching = 1;
try { pl.search.apply(this, arguments) } catch(e){};
searching = 0;
}
};
pl.loadOptions();
/* Only track in non-local mode */
var local = "file:" == document.location.protocol;
if (!local && trackOptions.id && trackOptions.enabled) {
/* Insert script tag to load GA */
$("head").eq(0).prepend($("<script/>").attr({type: "text/javascript", async: "true", src: ("https:" == document.location.protocol ? "https://ssl" : "http://www") + ".google-analytics.com/ga.js"}));
/* Override TiddlyWiki display */
pl.displayTiddler = story.displayTiddler;
story.displayTiddler = pl.trackAndDisplayTiddler;
pl.displayDefaultTiddlers = story.displayDefaultTiddlers;
story.displayDefaultTiddlers = pl.trackAndDisplayDefaultTiddlers;
if (!trackOptions.type && trackOptions.events.close) {
pl.closeTiddler = story.closeTiddler;
story.closeTiddler = pl.trackAndCloseTiddler;
pl.closeAllTiddlers = story.closeAllTiddlers;
story.closeAllTiddlers = pl.trackAndCloseAllTiddlers;
}
pl.search = story.search;
story.search = pl.trackAndSearch;
/* Initialize tracking */
pl.track(["_setAccount", trackOptions.id], ["_trackPageview"]);
}
config.macros.GATrackerConfig = {
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
$(createTiddlyElement(place, "div")).html("Tracking status: <span style='color:" + (trackOptions.id && trackOptions.enabled ? "green'>enabled" : "red'>disabled") + "</span> and <span style='color:" + (local ? "red'>" : "green'>non-") + "local</span>");
if (readOnly) {
$(createTiddlyElement(place, "div")).html("Configuration is not available in read-only mode");
return;
}
var formNode = $(createTiddlyElement(place, "div")).html("<div>Google Analytics plugin configuration:</div><table><tr><td>Account ID:</td><td><input id='ga_id' type='text'/></td></tr><tr><td>Tracking:</td><td><input id='ga_enabled' type='checkbox'/>Enabled<br/><br/>How: <select id='ga_track'><option value='0'>Events</option><option value='1'>Pages</option></select><br/><br/>What:<br/><input id='ga_track_open' type='checkbox'/>Open<br/><input id='ga_track_refresh' type='checkbox'/>Refresh<br/><input id='ga_track_edit' type='checkbox'/>Edit<br/><input id='ga_track_close' type='checkbox'/>Close<br/><input id='ga_track_search' type='checkbox'/>Search<br/></td></tr></table><input id='ga_action_submit' type='submit' value='Apply'/>");
$("#ga_id", formNode).val(trackOptions.id);
$("#ga_enabled", formNode)[0].checked = trackOptions.enabled;
$("#ga_track option", formNode).eq(trackOptions.type)[0].selected = true;
for (var ev in trackOptions.events) {
$("#ga_track_" + ev, formNode)[0].checked = trackOptions.events[ev];
}
$("#ga_action_submit", formNode).click(function() {
trackOptions.id = $("#ga_id", formNode).val();
if (!trackOptions.id.length) trackOptions.id = null;
trackOptions.enabled = $("#ga_enabled", formNode)[0].checked;
trackOptions.type = parseInt($("#ga_track", formNode).val());
for (var ev in trackOptions.events) {
trackOptions.events[ev] = $("#ga_track_" + ev, formNode)[0].checked;
}
pl.saveOptions();
var nodeDisplay = story.findContainingTiddler(place);
var tiddlerDisplay;
if (nodeDisplay) tiddlerDisplay = store.getTiddler(nodeDisplay.getAttribute("tiddler"));
story.refreshTiddler(tiddlerDisplay ? tiddlerDisplay.title : tiddler.title, null, true);
});
}
};
})(jQuery);}
//}}}
... [day in the life]
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/ECYdXDaQYTk" frameborder="0" allowfullscreen></iframe>
</html>
one important aspect is once you join, you will see "Reply to this tiddler" underneath the title
for example, you will in turn be able to share your thoughts around what you think the TiddlySpaceWay is - as it may very well differ from mine - and you bet I'm interested in hearing your perspective!
<<<
I'm particularly keen that the experimentation around social features shouldn't be restricted to the core developers who have access to a server; I'd like to see simultaneous exploration across the community.
<<<
I love @jermolene made allowing the world to play with TiddlySpace a reality!
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/Z_Q3rPA0UWo" frameborder="0" allowfullscreen></iframe>
</html>
/***
|''Name''|TiddlySpaceRevisionView|
|''Description''|Show tiddler revisions in a stack of cards view|
|''Author''|BenGillies|
|''Version''|0.2.0|
|''Status''|beta|
|''Source''|http://github.com/TiddlySpace/tiddlyspace|
|''CodeRepository''|http://github.com/TiddlySpace/tiddlyspace|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.6.0|
|''Requires''|TiddlyWebAdaptor|
!Usage
The viewRevisions macro can be attached to any element, which should be passed
in as a parameter.
For example:
<<viewRevisions page:10 link:"<<view modified date>>">>
would show the revisions "stack of cards" view, 10 at a time, when the modified
date is clicked.
!Code
***/
//{{{
(function($) {
var me = config.macros.viewRevisions = {
revisionTemplate: "RevisionTemplate",
revSuffix: " [rev. #%0]", // text to append to each tiddler title
defaultPageSize: 5, // default number of revisions to show
defaultLinkText: "View Revisions", // when there's nothing else to use
offsetTop: 30, // in px
offsetLeft: 10, // in px
shiftDownDelay: 50, // in ms
visibleSlideAmount: 20, // amount of revisions to show on left hand edge after sliding
zIndex: 100, // default z-index
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
params = paramString.parseParams(null, null, true)[0];
var tiddlerElem = story.findContainingTiddler(place);
var revButton;
var pageSize = parseInt(params.page[0], 10) || me.defaultPageSize;
var linkObj = params.link ? params.link[0] || me.defaultLinkText : false;
if(linkObj) {
revButton = $('<span class="button openRevisions" />')
.appendTo(place);
wikify(linkObj, revButton[0], null, tiddler);
} else {
revButton = place;
}
$(revButton).click(function() {
if (!$(tiddlerElem).hasClass("revisions")) {
me.showRevisions(tiddlerElem, tiddler, pageSize);
} else {
me.closeRevisions(tiddlerElem);
}
});
},
// initialisation for revision view
showRevisions: function(tiddlerElem, tiddler, pageSize) {
var context = {
host: tiddler.fields["server.host"],
workspace: tiddler.fields["server.workspace"]
};
$(tiddlerElem).addClass("revisions").attr("revName", tiddler.title);
// ensure toolbar commands deactivate RevisionsView
$("a", ".toolbar", tiddlerElem).each(function(index, btn) {
var _onclick = btn.onclick;
btn.onclick = function(e) {
me.closeRevisions(tiddlerElem);
_onclick.apply(this, arguments);
};
});
// ensure default action deactivates RevisionsView
var _ondblclick = tiddlerElem.ondblclick;
tiddlerElem.ondblclick = function(e) {
me.closeRevisions(tiddlerElem);
_ondblclick.apply(this, arguments);
};
var type = tiddler.fields["server.type"];
var adaptor = new config.adaptors[type]();
var userParams = {
tiddlerElem: tiddlerElem,
pageSize: pageSize,
title: tiddler.title
};
me.createCloak(tiddlerElem);
adaptor.getTiddlerRevisionList(tiddler.title, null, context, userParams,
function(context, userParams) {
// strip the current revision
context.revisions.shift();
me.expandStack(context, userParams);
});
},
// fetch the actual revision and put it in the tiddler div
showRevision: function(place, revision, callback) {
var context = {
host: revision.fields["server.host"],
workspace: revision.fields["server.workspace"]
};
var userParams = {
revElem: place
};
var type = revision.fields["server.type"];
var adaptor = new config.adaptors[type]();
var revNo = revision.fields["server.page.revision"];
adaptor.getTiddlerRevision(revision.title, revNo, context, userParams,
function(context, userParams) {
var tiddler = context.tiddler;
tiddler.title += me.revSuffix
.format([$(place).attr("revision")]);
tiddler.fields.doNotSave = true;
if (store.getTiddler(tiddler.title)) {
store.deleteTiddler(tiddler.title);
}
store.addTiddler(tiddler);
//now, populate the existing div
var revElem = userParams.revElem;
$(revElem).attr("id", story.tiddlerId(tiddler.title));
$(revElem).attr("refresh", "tiddler");
var getTemplate = function() {
var themeName = config.options.txtTheme;
if (themeName) {
return store.getTiddlerSlice(themeName,
me.revisionTemplate) || me.revisionTemplate ||
"ViewTemplate";
} else {
return (store.getTiddler(me.revisionTemplate)) ?
me.revisionTemplate : "ViewTemplate";
}
};
var template = getTemplate();
story.refreshTiddler(tiddler.title, template, true);
callback(tiddler);
});
},
createCloak: function(promoteElem) {
var el = $(promoteElem);
// cache styles for resetting later
el.data({
top: el.css("top"),
left: el.css("left"),
zIndex: el.css("z-index")
});
$('<div class="revisionCloak" />').css("z-index", me.zIndex)
.click(function() {
me.closeRevisions(promoteElem);
})
.appendTo(document.body);
el.css("z-index", me.zIndex + 1);
},
// clean up, removing all evidence of revision view
closeRevisions: function(promoteElem) {
var el = $(promoteElem);
// revert the original tiddler back to its previous state
el.removeAttr("revName").removeClass("revisions").css({
top: el.data("top"),
left: el.data("left"),
zIndex: el.data("zIndex")
});
// remove any revisions still in the store
var revisions = $(".revisions");
revisions.each(function(index, revision) {
var revAttributes = revision.attributes;
if ((revAttributes.revname) &&
(revAttributes.revision)) {
var revName = revAttributes.revname.value;
var revNo = revAttributes.revision.value;
var title = revName + me.revSuffix.format([revNo]);
if (store.getTiddler(title)) {
store.deleteTiddler(title);
}
}
});
// delete the previous revisions
revisions.remove();
// remove the cloak
$(".revisionCloak").remove();
},
// calback from getting list of revisions
expandStack: function(context, userParams) {
var pageSize = userParams.pageSize;
var from = userParams.from || 0;
var tiddlerElem = userParams.tiddlerElem;
userParams.defaultHeight = $(tiddlerElem).height();
userParams.defaultWidth = $(tiddlerElem).width();
if (from < context.revisions.length) {
me.displayNextRevision(tiddlerElem, userParams, context, from,
from + pageSize - 1);
}
},
// place the next div above and behind the previous one
displayNextRevision: function(tiddlerElem, userParams, context, from, to) {
var revision = context.revisions[from];
var callback = function() {
var revText = revBtn.getRevisionText(tiddlerElem, revision);
tiddlerElem = me.createRevisionObject(tiddlerElem, context,
userParams, revText);
$(tiddlerElem)
.attr("revision", (context.revisions.length - from));
if ((from < to) && ((from + 1) < context.revisions.length)){
me.displayNextRevision(tiddlerElem, userParams, context,
from + 1, to);
} else if ((context.revisions.length - 1) > to) {
me.showMoreButton(tiddlerElem, context, userParams, to + 1);
}
};
me.shiftVisibleDown(userParams.title, callback);
},
createRevisionObject: function(tiddlerElem, context, userParams, text) {
var newPosition = me.calculatePosition(tiddlerElem, context);
return $('<div class="revisions tiddler" />')
.css({
position: "absolute",
top: newPosition.top,
left: newPosition.left,
"z-index": me.zIndex + 1,
height: userParams.defaultHeight,
width: userParams.defaultWidth
})
.attr("revName", userParams.title)
.append(text)
.insertBefore(tiddlerElem);
},
// move the already present revisions down by 1 to fit the next one in
shiftVisibleDown: function(title, callback) {
var revisions = $("[revName='%0'].revisions".format([title]));
var revisionCount = revisions.length;
$(revisions).animate({top: "+=" + me.offsetTop},
me.shiftDownDelay, function() {
revisionCount -= 1;
if ((callback) && (!revisionCount)) {
callback();
}
});
},
// where we put the new revision
calculatePosition: function(elem, context) {
var offset = $(elem).offset();
var currentPosition = $(elem).position();
var newPosition = {
top: currentPosition.top - me.offsetTop
};
if ((context.restrictLeft) ||
((offset.left - me.offsetLeft) <
$("#contentWrapper").offset().left)) {
newPosition.left = $(elem).position().left;
context.restrictLeft = true;
} else {
newPosition.left = currentPosition.left - me.offsetLeft;
}
return newPosition;
},
// equivalent of displayNextRevision, but for the more button
showMoreButton: function(tiddlerElem, context, userParams, moreIndex) {
userParams.from = moreIndex + 1;
me.shiftVisibleDown(userParams.title, function() {
var btn = me.createRevisionObject(tiddlerElem, context, userParams,
"");
var more = createTiddlyButton(btn[0], "more...", "show more revisions",
function() {
if ($(".viewRevision").length) {
return;
}
userParams.tiddlerElem = btn[0];
$(btn).text("")
.append(revBtn
.getRevisionText(btn[0], context.revisions[moreIndex]))
.attr("revision", context.revisions.length - moreIndex);
me.expandStack(context, userParams);
});
$(more).css("float", "right");
});
},
stripRevFromTitle: function(revisionTitle) {
return revisionTitle.split(/ ?\[rev\. #[0-9]+\]$/)[0];
},
onClickRevision: function(revElem, revision, callback) {
// don't do anything if we are still loading
if ($(".revisions").hasClass("loading")) {
return null;
}
var origTitle = me.stripRevFromTitle(revision.title);
if ($(revElem).hasClass("viewRevision")) {
$(".revisions").addClass("loading");
me.slideIn(revElem, revision, origTitle, function() {
store.deleteTiddler(revision.title);
revision.title = origTitle;
$(revElem).text("").append(revBtn.getRevisionText(revElem,
revision))
.removeAttr("tags").removeAttr("tiddler")
.removeAttr("refresh").removeAttr("template")
.removeAttr("id");
$(".revisions").removeClass("loading");
if (callback) {
callback();
}
});
$(revElem).removeAttr("prevPos").removeClass("viewRevision");
} else {
var viewRevision = function() {
var prevPos = $(revElem).position().left;
$(revElem).addClass("viewRevision").attr("prevPos", prevPos);
$(".revisions").addClass("loading");
me.showRevision(revElem, revision, function(rev) {
me.slideOut(revElem, rev, origTitle, function() {
$(".revisions").removeClass("loading");
});
});
};
// make sure another revision isn't already out
if ($(".viewRevision").length) {
var newRevElem = $(".viewRevision")[0];
var newRevision = store.getTiddler($(newRevElem)
.attr("tiddler"));
me.onClickRevision(newRevElem, newRevision, viewRevision);
} else {
viewRevision();
}
}
},
slideOut: function(revElem, revision, title, callback) {
var leftMostPos = $("[revName='%0'].revisions".format([title]))
.offset().left;
var width = $(revElem).width();
var originalLeftPos = $(story.getTiddler(title))
.position().left;
var slideAmount = leftMostPos + width - me.visibleSlideAmount;
$("[revName='%0'].revisions:not(.viewRevision)".format([title]))
.animate({left: "-=" + slideAmount}, 1000);
$(revElem)
.attr("baseHeight", $(revElem).css("height"))
.css("height", "auto")
.animate({left: originalLeftPos}, 1000, callback);
},
slideIn: function(revElem, revision, title, callback) {
var slideAmount = $(revElem).offset().left -
$(story.getTiddler(title)).offset().left;
var origRevPos = $(revElem).attr("prevPos");
$("[revName='%0'].revisions:not(.viewRevision)".format([title]))
.animate({left: "+=" + slideAmount}, 1000);
$(revElem).animate({left: origRevPos}, 1000, function() {
$(revElem)
.css("height", $(revElem).attr("baseHeight"))
.removeAttr("baseHeight");
callback();
});
}
};
var revBtn;
config.macros.slideRevision = revBtn = {
btnText: "created by %0 at %1 on %2",
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var btn = revBtn.getRevisionText(place, tiddler);
$(place).append(btn);
},
getRevisionText: function(place, revision) {
var text = revBtn.btnText.format([revision.modifier,
revision.modified.formatString("0hh:0mm"),
revision.modified.formatString("0DD MMM YYYY")]);
var btn = $('<a href="javascript:;" class="button revButton" />')
.text(text)
.click(function() {
var revElem = story.findContainingTiddler(this);
me.onClickRevision(revElem, revision);
});
return btn;
}
};
})(jQuery);
//}}}
[[StyleSheetTiddlySpace]]
ok - had an opportunity to eat before journaling. So ConverationBasedBlogging is the notion of writing a JournalEntry and having the opportunity to connect your [[Thoughts]] to previous Conversations. Ideally, a BackgroundProcess identified and highlights PastConversations as you type and you have the opportunity to highlight them or not. Of course, you are free to create NewConversations and highlight these on your own. But as they say in the WisdomCourse - we often find as HumanBeings, our [[Conversations]] aren't new. So it's fair to say I'm looking for others [in the world] who are in this [[Conversation]] too :)
It's important to note you may revisit a [[Conversation]] at any time and if you so chose, [[Transform]] it at any time. How [[Transformation]] looks is up to you - to most radical of which is clearing the conversation and creating newly.
This is what makes it fun - even the whole notion of creating <<newJournal "MMM DD, YYYY" Journal>> entry is seen newly every day :)
<!DOCTYPE html>
<html>
<head>
<title>Install takenote!</title>
<link type="text/css" rel="stylesheet" href="/notabene.css" />
<link type="text/css" rel="stylesheet" href="/jquery-ui.css">
<link rel="apple-touch-icon-precomposed" href="/touchicon.png"/>
<meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=0,initial-scale=1">
<style type="text/css">
@media screen and (orientation:portrait) and (min-width: 320px) {
.gitbanner {
display: none;
}
}
.toolpanel input,
.toolpanel h2,
.toolpanel ul {
margin-left: 40px;
}
.section.sectionUser {
background-image: url(/icon-user.png);
background-position: 10px 15px;
background-repeat: no-repeat;
}
.section.sectionOnoffline {
background-image: url(/icon-notes.png);
background-position: 10px 15px;
background-repeat: no-repeat;
}
.toolpanel .subsection {
margin-left: 40px;
}
.ts-loggedin .newOnly {
display: none;
}
#register-takenote input {
border: 1px solid #CCC;
border-bottom-left-radius: 5px 5px;
border-bottom-right-radius: 5px 5px;
border-top-left-radius: 5px 5px;
border-top-right-radius: 5px 5px;
font-size: 18px;
height: 24px;
width: 160px;
margin-left: 0px;
background-color: whiteSmoke;
}
#register-takenote input:hover {
background-color: #EBEBEB;
}
.registerCol {
text-align: right;
}
</style>
</head>
<body>
<a class="gitbanner" href="http://github.com/jdlrobson/notabene"><img style="position: absolute; top: 0; left: 0; border: 0;" src="https://a248.e.akamai.net/assets.github.com/img/edc6dae7a1079163caf7f17c60495bbb6d027c93/687474703a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f6c6566745f677265656e5f3030373230302e706e67" alt="Fork me on GitHub"></a>
<div class="takenotedashboard">
<div class="header">
<div class="siteheading">
<h1>takenote</h1>
</div>
<div class='siteicon'></div>
</div>
<div class="toolpanel viewer">
<div class='section sectionOnoffline'>
<h2>notes online, notes offline</h2>
<p class="subsection">
Taking notes on paper? That's <a href="http://en.wikipedia.org/wiki/Paper">so 200BC</a>.
Start to take notes on the web instead. Take notes with links. Take notes with tags. Take notes with your location. Take notes without the internet (once installed it works offline).
Need more convincing? <a href="/takenote">give it a spin!</a>. Take note, that you can't save notes online with the demo!
</p>
</div>
<div class='section newOnly sectionUser'>
<h2>New users</h2>
<div class="subsection">Itching to update your note taking? Simply sign up below</div>
<p> </p>
<form class="subsection" id="register-takenote">
<table>
<tr>
<td>
<div>store my notes in</div>
<input type="text" name="username" placeholder="<space>" />.tiddlyspace.com
</td>
</tr>
<tr>
<td><input type="password" name="password" placeholder="enter password" /></td>
</tr>
<tr>
<td><input type="password" name="password_confirm" placeholder="enter password again" /></td>
</tr>
<tr>
<td class="registerCol">
<input type='submit' value='register' />
</td>
</tr>
</table>
</form>
</div>
<div class='section sectionUser'>
<h2>Existing users</h2>
<div class="subsection"><form class="registration"></form></div>
<p class="subsection"><a href="http://tiddlyspace.com">Existing users</a> should <a href="http://docs.tiddlyspace.com/How%20do%20I%20include%2Fexclude%20spaces%3F">include</a> the takenote space into the space they would like to use takenote.</p>
</div>
</div>
<script src="/bags/common/tiddlers/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/tiddlyspace/tiddlers/chrjs" type="text/javascript" charset="utf-8"></script>
<script type='text/javascript' src='/bags/tiddlyspace/tiddlers/chrjs.space'></script>
<script type='text/javascript' src='/bags/tiddlyspace/tiddlers/chrjs.users'></script>
<script src="/bags/common/tiddlers/chrjs-store.js" type="text/javascript" charset="utf-8"></script>
<script src="/jquery-json.min.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/ts.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
ts.init(function() {
var json = ['{"fields":{"created":"2011-07-14T14:43:46.455Z",',
'"_title_set":"yes","modified":"2011-07-15T07:17:24.946Z",',
'"_title_validated":"yes"},"text":"',
"Thanks for giving TakeNote a spin. Type away in this box.\u000aRefresh your browser and your note",
" and all the things you've typed will still be here!\u000a\u000a",
'TakeNote supports [[TiddlyWiki wiki syntax|http://tiddlywiki.org/TiddlyWiki%20Markup]] meaning',
" you can do things such as [[links]].\u000a\u000aThere's a lot more to it, and most of the syntax is quite",
'logical.\u000a\u000a!Use exclamation marks for headings\u000a* lists make lots of sense',
' - just use an asterisk',
"\u000a* things like ''bold'' and //italic// are easy to remember",
'\u000a\u000aThere is also markdown support - but this is currently not available (but could be with enough',
' demand.)\u000a\u000aFed up of seeing this message? Simply hit delete (the trash button) and it will disappear. ',
'Want to save it? Hit save (the tick button).\u000a\u000aEnjoy!\u000a[[jon|http://jonrobson.me.uk]]\u000a"}'].join("");
var id = "takenote_public/Welcome to TakeNote";
var item = localStorage.getItem(id);
if(!item) {
localStorage.setItem(id, json);
}
ts.forms.register($("#register-takenote")[0], {
success: function(space) {
$.ajax({
url: "/spaces/" + space.name,
type: "POST",
contentType: "application/json",
data: jQuery.toJSON({
"subscriptions": ["takenote", "takenote-theme"]
}),
success: function() {
window.location = ts.getHost(space.name) + "/config";
}
});
}
});
});
</script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-7040645-6']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>
<html>
<iframe src="https://docs.google.com/present/embed?id=dck9k9s4_7pjkxdmhc&interval=5" frameborder="0" width="410" height="342"></iframe>
</html>
http://dancelabs.wikispaces.com/Day+of+Dance
!open
# WaterFiltrationSystem
# ShowerFilter
# UnsaltedMixedNuts
** Almonds
** Filberts
** Cashews
** Almonds
** BrazilNuts
** Pecans
# PistachioNutmeats
# SunflowerSeeds
# FlaxSeed
# GoldenRaisins
# BlackRaisins
# DriedCranberries
# DriedBlueberries
Computing is a creative subject, but the current curriculum is assessed using screenshots, multiple choice and short answers. We want to be given the change to make something real, a portfolio of which we can be proud, and share with others on The Web.
I am considering making the iPhone to AndroidSwitch (say it isn't so!) - my AnalyticEngine went into overdrive - the short and skinny of it is I'm likely to revert back to my iPhone2G for a few months and purchase an iPhone 5! It's possible this could happen in [[Thailand]] depending on which way the wind blows.. ;-)
matrix: http://is.gd/yvVTpz
scratchboard: http://is.gd/YqqQ87 (arguably these "scratch notes" could have gone here...)
GoogleDocs (specifically spreadsheets) became the best tool for the job - I personally can't wait to have the ability to render a tiddler as a GoogleWave to enable RealTimeCollaboration. TiddlySpace was designed and optimized for AsynchronousCollaboration.
One of the nice things I love about [[MacOSX]] is it's built on [[UNIX]] so it pleases to [[Geek]] in me :)
It's nice not to have to reboot unless you're making some major StructuralChanges (ie. SoftwareUpdate) - this means the idea of TripleBoot MacBook loses its novelty but hey - it was an interesting [[Challenge]] at the time ;-)
an [[app]] that centers around the [[iOS]] ecosystem with a fairly refined WebInterface to your tasks and lists.
Inquiring exacts how it interfaces OmniFocus and whether it is even worth replacing how I use TadaList. One thing for sure is it's trivial to move an item from one list to another and sharing lists appears to work much better than Tadalist (ie. it's completely transparent opposed to being an afterthought)
review: http://goo.gl/vCm0I
|!role|!expression|!state|
|DanceInnovator|@dancelabs, @chalat|TeamSourcingMode|
|LeadMinuteman|TeamMinutemen|EngagementMode|
|TechnologyAdvisor|SquidAndSquashFoundation|VolunteerMode|
|[[Researcher]]|@wisdom, @autobiography|TransitionMode|
|MajorGeekGreeter|@burningman|BackgroundMode|
|[[Man]]|[[Terms]], @chinarut|DisciplineMode|
|ShivaSleeping|WellnessMap|DiscoveryMode|
while I was already convinced TimeMachine is backup for the masses (and done right) - stories I heard from customers about how TimeMachine saved their ass (like your PhDThesis!) is very convincing. the new version of MacOSX will up the [[Ante]] a bit more!
http://goo.gl/f42ec
# LandmarkForum
# LandmarkForumInActionSeminar
# AdvancedCourse
# SelfExpressionLeadershipProgram
The Internet is amazing! the CoCo community has all the programs from RainbowMagazine archived online!
I figured out how to get a program I won an award for in 1988 running :)
now I haven't figured out how to make it a one click process (clearly for another day) but here are the steps if you want to recreate history:
# download FloppyDisk image: "[[1988_02a.dsk|http://is.gd/1988_02a]]"
# go to (GOTO :) http://members.cox.net/javacoco/signedmocha.html
# click "Allow" for Java applet
# click "Setup" in the lower left hand corner
# click the "Disk" tab
# click "Load" at the bottom
# choose the "1988_02a.dsk" file where you saved it
# type RUN "CASTLE.BAS" (with quotes)
there you have it! it's really funny to see this game run after 22 years!
it definitely was [[Zork]] inspired (gotta thank Dr. Cohen over at Smith!) and has plenty of room for improvement :D
''VERY'' impressive work by the [[iPhoneIslam]] team - if you get your kicks making your iPad, the world's biggest iPhone, this [[app]] for you
http://goo.gl/M28ow
discovered as part of a DataOnlyMobileComputing experiment.
have fun!
Days of cobbling together 4 ancient Pentium PCs gathering dust in the garage for about 7 years...
# ancient Micron [[Pentium]] server
# Pentium 133Mhz CPU - not uncommon for most computers to have 20x the speed (2GHz)
# 96MB RAM - that's about 0.096GB, a typical computer would probably have 400x the memory today (4GB)
# for kicks, I put 400GB in it just to see what it can handle and to increase the [[Multiplicity]] factor and ratio to RAM :)
the PCI IDE controller is what did the trick. it allowed me to swap out the old SCSI controller, original 2GB drive (along with Windows 2000 Server), and old caddy-style CD-ROM.
it's fair to say that buying a 4TB drive and hooking it up to our AirportExpress is probably more efficient (or even getting a MacMini)
I had to salvage on old Linksys router (didn't even have multiple ports at the time!) running dd-wrt to create a makeshift WirelessAdaptor. Hesitant to do this because it downgrades the HomeNetwork down from N to G.
in any case - it will be interesting to piece it back together so it becomes a temporary closet server. who knows maybe it's cheaper to create a VirtualServer in the [[Cloud]] than the electric we'd spend not to mention the effort to maintain its uptime.
Now come on, I do this just as a hobby - not because I'm expecting to put the weight of the world on this server's shoulders!
Oh, the things I do to keep myself busy while I fine tune my own [[Tempo]]!
just discovered @charts - impressed with how easy it looks to be to get some VisualStats when the time comes...
poked into the library itself - the [[Plugin]] requires TableData in HTML and interesting to see how WikiMarkup can be used as an [[Intermediary]]
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="450 366 38 57"
width="30" height="30">
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
<g>
<path d="M 452.1094 421.2422 L 450 421.2422 L 450 423 L 487.9688 423 L 487.9688 421.2422 L 485.8595 421.2422
L 485.8595 377.29688 L 487.9688 377.29688 L 487.9688 375.53906 L 485.8595 375.53906
C 485.8595 375.53906 481.12463 371.59341 473.02023 370.52802 C 472.6824 368.9689 471.72098 366.75 468.9844 366.75
C 466.24783 366.75 465.28638 368.9689 464.94864 370.52802
C 456.84418 371.59341 452.1094 375.53906 452.1094 375.53906 L 450 375.53906 L 450 377.29688 L 452.1094 377.29688
Z M 467.12247 370.32086 L 467.12247 370.32086 C 467.3805 369.42395 467.90762 368.50781 468.9844 368.50781
C 470.0612 368.50781 470.5883 369.42395 470.84634 370.32086
C 470.24136 370.2848 469.62054 370.26562 468.9844 370.26562
C 468.34827 370.26562 467.72748 370.2848 467.12247 370.32086 Z M 454.21875 420.92804 L 454.21875 420.92804
C 455.46762 420.42087 456.32816 419.35281 456.32816 418.11716 L 456.32816 377.29688 L 458.4375 377.29688
L 458.4375 421.2422 L 454.21875 421.2422 Z M 460.5469 420.92804 L 460.5469 420.92804
C 461.79578 420.42087 462.65625 419.35281 462.65625 418.11716 L 462.65625 377.29688 L 464.76566 377.29688
L 464.76566 421.2422 L 460.5469 421.2422 Z M 466.87503 420.92804 L 466.87503 420.92804
C 468.1239 420.42087 468.9844 419.35281 468.9844 418.11716 L 468.9844 377.29688 L 471.09378 377.29688
L 471.09378 421.2422 L 466.87503 421.2422 Z M 473.2032 420.92804 L 473.2032 420.92804
C 474.45203 420.42087 475.31256 419.35281 475.31256 418.11716 L 475.31256 377.29688 L 477.4219 377.29688
L 477.4219 421.2422 L 473.2032 421.2422 Z M 479.5313 420.92804 L 479.5313 420.92804
C 480.78018 420.42087 481.64066 419.35281 481.64066 418.11716 L 481.64066 377.29688 L 483.75006 377.29688
L 483.75006 421.2422 L 479.5313 421.2422 Z" fill="black" class="glyph"/>
</g>
</g>
</svg>
You're here because:
# you're interested in reading entries in my <<tag Journal>> (click to see a drop down) or
# you'd like to write a <<newJournal "MMM DD, YYYY" Journal>> entry.
if things seem OutOfDate or even a bit haphazard, keep in mind this is all a WorkInProgress so be patient or just contribute ;-)
/***
|''Name''|TiddlyWebConfig|
|''Description''|configuration settings for TiddlyWebWiki|
|''Author''|FND|
|''Version''|1.3.2|
|''Status''|stable|
|''Source''|http://svn.tiddlywiki.org/Trunk/association/plugins/TiddlyWebConfig.js|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''Requires''|TiddlyWebAdaptor ServerSideSavingPlugin|
|''Keywords''|serverSide TiddlyWeb|
!Code
***/
//{{{
(function($) {
if(!config.extensions.ServerSideSavingPlugin) {
throw "Missing dependency: ServerSideSavingPlugin";
}
if(!config.adaptors.tiddlyweb) {
throw "Missing dependency: TiddlyWebAdaptor";
}
if(window.location.protocol != "file:") {
config.options.chkAutoSave = true;
}
var adaptor = tiddler.getAdaptor();
var recipe = tiddler.fields["server.recipe"];
var workspace = recipe ? "recipes/" + recipe : "bags/common";
var plugin = config.extensions.tiddlyweb = {
host: tiddler.fields["server.host"].replace(/\/$/, ""),
username: null,
status: {},
getStatus: null, // assigned later
getUserInfo: function(callback) {
this.getStatus(function(status) {
callback({
name: plugin.username,
anon: plugin.username ? plugin.username == "GUEST" : true
});
});
},
hasPermission: function(type, tiddler) {
var perms = tiddler.fields["server.permissions"];
if(perms) {
return perms.split(", ").contains(type);
} else {
return true;
}
}
};
config.defaultCustomFields = {
"server.type": tiddler.getServerType(),
"server.host": plugin.host,
"server.workspace": workspace
};
// modify toolbar commands
config.shadowTiddlers.ToolbarCommands = config.shadowTiddlers.ToolbarCommands.
replace("syncing ", "revisions syncing ");
config.commands.saveTiddler.isEnabled = function(tiddler) {
return plugin.hasPermission("write", tiddler) && !tiddler.isReadOnly();
};
config.commands.deleteTiddler.isEnabled = function(tiddler) {
return !readOnly && plugin.hasPermission("delete", tiddler);
};
// hijack option macro to disable username editing
var _optionMacro = config.macros.option.handler;
config.macros.option.handler = function(place, macroName, params, wikifier,
paramString) {
if(params[0] == "txtUserName") {
params[0] = "options." + params[0];
var self = this;
var args = arguments;
args[0] = $("<span />").appendTo(place)[0];
plugin.getUserInfo(function(user) {
config.macros.message.handler.apply(self, args);
});
} else {
_optionMacro.apply(this, arguments);
}
};
// hijack isReadOnly to take into account permissions and content type
var _isReadOnly = Tiddler.prototype.isReadOnly;
Tiddler.prototype.isReadOnly = function() {
return _isReadOnly.apply(this, arguments) ||
!plugin.hasPermission("write", this);
};
var getStatus = function(callback) {
if(plugin.status.version) {
callback(plugin.status);
} else {
var self = getStatus;
if(self.pending) {
if(callback) {
self.queue.push(callback);
}
} else {
self.pending = true;
self.queue = callback ? [callback] : [];
var _callback = function(context, userParams) {
var status = context.serverStatus || {};
for(var key in status) {
if(key == "username") {
plugin.username = status[key];
config.macros.option.propagateOption("txtUserName",
"value", plugin.username, "input");
} else {
plugin.status[key] = status[key];
}
}
for(var i = 0; i < self.queue.length; i++) {
self.queue[i](plugin.status);
}
delete self.queue;
delete self.pending;
};
adaptor.getStatus({ host: plugin.host }, null, _callback);
}
}
};
(plugin.getStatus = getStatus)(); // XXX: hacky (arcane combo of assignment plus execution)
})(jQuery);
//}}}
<!DOCTYPE html>
<html>
<head>
<title>Install TakeNote!</title>
<link type="text/css" rel="stylesheet" href="/notabene.css" />
<link type="text/css" rel="stylesheet" href="/jquery-ui.css">
<link rel="apple-touch-icon-precomposed" href="/touchicon.png"/>
<meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=no,initial-scale=0">
<script src="/bags/common/tiddlers/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/tiddlyspace/tiddlers/chrjs" type="text/javascript" charset="utf-8"></script>
<script src="/jquery-json.min.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/ts.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div class="takenotecontainer">
<div class='messageArea'></div>
<div id="note">
configuring... please wait.
</div>
</div>
<script type="text/javascript">
var space = window.location.host.split(".")[0];
var tid = new tiddlyweb.Tiddler("ServerSettings",
new tiddlyweb.Bag(space + "_public", "/"));
tid.text = "index: dashboard\n";
tid.type = "text/config";
tid.tags = ["excludeLists"];
tid.fields = {
"server.content-type": "text/config"
}
tid.put(function() {
window.location = window.location.protocol + "//" + window.location.host;
}, function() {});
</script>
</body>
</html>
absolutely love this take by Jeremy Ruston on TiddlySpace@jermolene:
<<<
This allows each individual to be the king of their own domain, in the sense that they can publish whatever they like, with no need to consult or worry about anyone else. And yet, they can make their contribution to the greater understanding of the group as a whole through the network of aggregated knowledge.
<<<
this hits the nail on the head.... the primary issue with my experiments with [[Wikispaces]], GoogleWave, and especially GoogleDocs is the people I invite don't want to disturb my understanding of a topic even though I'm explicitly saying it's okay! To give people the FreedomToContribute is golden!
ok - i'd been knocking the BlackBerry for quite some time as an AppleFanboy and after showing my dad what's possible with a DataPlan - i can see some things on the device are done right - esp around MessagingAggregation - it's is DoubleEdgedSword to make all these channels push instead of [[Pull]]:
# Email - multiple accounts, multiple providers (ie. YahooMail, [[gmail]])
# InstantMessaging - multiple providers (ie. Y! chat, gTalk)
# SocialNetworks - multiple networks (ie. [[Facebook]])
# [[SMS]]
and of course, voice channels:
# Phone (through CellularCarrier)
# VoIP (ie. Skype) (though limited to [[Verizon]] - what's up with that?)
# GoogleVoice (dispatch-based) - not fully integrated into MessageBrowser
still waiting for VisualVoicemail to kick in to see how it integrates...
![[Navigation]]
given I paid $4.99 for CoPilotLiveUSA back in June 2010 (now it's $9.99) - I had to laugh that [[Garmin]] wants $99.99 for their app - they must be really DesperateForRevenue or have a really AmazingProduct (not likely) - GoogleMaps will do just fine for now!
* use Skype or TalkAtOne over WiFi
* call back to temp phone (ie. GoPhone)
* use WebBrowser
* buy pre-paid SIM ([[AT&T]] or T-Mobile) (no data) (SIMCutter)
* use CallBacks to [[Landline]]
* PhoneIt-iPad
see GettingStarted@chinarut-dev - GettingStarted tiddler is from the last space that included it (this makes sense) - a possible workaround is to provide the ability to drag includes up & down the list (for very coarse control at the level of TiddlySpace which may or may not respect a Tiddler as a FirstClassCitizen)
[[Soba]] is sooooo the way to go. I played around with using BrownRicePasta and while I did have some success with Tinkyada brand, it still wasn't quite as fulfilling as bonafide regular Pasta. I do find the taste of [[Buckwheat]] quite excellent and find it's really hard to mess Soba up.
Goes really well with my VegetarianSpaghettiSauce which I'm clearly looking to rename :)
# [[Millet]] - 1 cup w 3 cups water for 30 min
# [[Buckwheat]] - 1 cup w 2 cups water for 15 min
# [[Amaranth]]
# CousCous
# [[Quinoa]] - 1 cup w 2 cups for 15 min
A term coined by DavidSiegel in his book [[Pull]] - it's fair to say that TiddlySpace is a form of RapidProtoyping one's PersonalDataLocker. Look forward to connecting with him here ;-)
<html>
<iframe src="http://player.vimeo.com/video/14061238?title=0&byline=0&portrait=0&autoplay=1" width="400" height="225" frameborder="0"></iframe><p><a href="http://vimeo.com/14061238">Personal Data Locker Vision</a> from <a href="http://vimeo.com/user3645147">dsiegel</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
</html>
We want to understand the growing role of software in society in terms of laws.
magic of [[Accomplishment]]. CommunityEnergizer
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/6n9CcyQ27RY" frameborder="0" allowfullscreen></iframe>
</html>
after being inspired to be a PublicSpeaker in July 2001, I took a bold step forward in March 2014 by VideoBlogging for the first time
!before
<<tiddler Greetings@maninthemirror>>
!after
<<tiddler UnexpectedBenefits@maninthemirror>>
ha - so I made some popcorn to munch on while watching TranscendantMan with @claudia and realized the impact of my TrueNorthHealthDiet - no SaltSugarOil can occur as quite tasteless to others! This is no surprise but hey - I am expecting to take in quite a few reactions to the food I cook and share!
Our community respects the environment. We are committed to leaving no physical trace of our activities wherever we gather. We clean up after ourselves and endeavor, whenever possible, to leave such places in a better state than when we found them.
yes - it's been 5 years and finally get what it is you were acknowledging when we connected in regards to @chalat and more excited than ever - thank you!
if you are new to wikis:
<html>
<iframe width="425" height="349" src="http://www.youtube.com/embed/-dnL00TdmLY" frameborder="0" allowfullscreen></iframe>
</html>
[[a historical, personal view of wikis from 2007|http://http://chinarut.wikispaces.com/wiki]]
I feel like I'm the making of the PerfectConsumer - well maybe not someone who always buys on impulse but one who uses AmazonPrime as a point of [[Optimization]] and a means of BeingResourceful.
<<<
whoa - [[Amazon] is sure out to please - signed up for AmazonPrime, made my first order yesterday at noon and what was supposed to be free 2-day shipping just arrived in less than 24 hrs!
<<<
it's quite a ParadigmShift to go from a place where you're always trying to meet the $25 minimum to get FreeShipping which can take a week on average so you have to plan ahead to a place where you're guaranteed to get lots of stuff within 2 days and as I saw today, sometimes just 1 day and I'm told if you're in [[Manhattan]] - the same day!
I'm unexpectedly finding this a means to support my WellBeing as I complete projects quickly and there is less [[Multitasking]] while you're waiting for [[Resources]] to arrive. It's nice to talk to dad about a HomeImprovement project and have it be complete the next day - very empowering :)
however, I have to admit, what is lost is the [[Incubation]] of items - letting them bake in the ShoppingCart - creating opportunities to conjure up alternative solutions and ideas in your sleep - for example, I just purchased some composting bags that are rather expensive if you buy just 1 box and just noticed I could have bought 4 for barely over twice the price. oh well - I'm glad my dad is now willing to give [[Composting]] a shot so we'll see what happens. I still look forward to getting a VermiPro with CompostingWorms!
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/VVZpO61Q6Gc" frameborder="0" allowfullscreen></iframe>
</html>
<<list filter [tag[Role]]>>
//this tiddler shall be perfect when I can constrain the above list to the 7 most recently modified tiddlers tagged 'Role'//
been playing around with these guys since RedHat - never really stuck then and it's interesting to follow their developments.
! mom's YouTubeMachine
* [[Ubuntu]]
! TripleBoot MacBook
# MacOSX (SnowLeopard)
# [[Ubuntu]]
# WinXP (hey - I bought a genuine license in [[Thailand]]!)
! DualBoot PCs
# FamilyComputer
** SliTaz Firefox variant
** WinXP Home //(now dead)//
# MinimalServer
** SliTaz lomem variant
** Windows2000Server (which runs impressively efficient on 96MB to be honest...)
contrast this to CrossedLegs ;-)
Very nicely categorized electronica. [[app]] is very well done for a service that is currently free. I can see myself happy to go premium when my hardware catches up!
http://di.fm - go to "ListenNow" - enjoy!
Learn how to turn fun ideas into profit:
*Have a good idea, will it work?
*Know your market
*Inspiration from other successes and mistakes
*How to present your ideas
*how ideas make money
seems like through GV Direct Dial, if you've chosen to block your CallerID through your Carrier - it will in turn, block CallerID of your GV # on the other end.
However, if you've chosen CallbackMode, due to the fact that it's an IncomingCall - there's no way for Google to really know that your *outgoing* number is blocked, thus CallerID with your GV is shown in response to this [[Ambiguity]]
Don't see an option on GoogleVoice itself to toggle CallerID or whether to just follow your Carrier's setting. Did see a new option for SpamFiltering though - nice!
A [[SiteIcon|SiteIcon tiddler]]@glossary helps provide some identity to your space. Ideally it'd be a square and a minimum of 48*48 pixels size. You can upload your site icon using the uploader below.
<<binaryUploadPublic title:SiteIcon>>
this community isn't kidding when they say "just f*cking do it!"
TedKo did an amazing job leading a DanceLikeNobodysWatching workshop in June 2011 and next thing we know the community would love our work to be a fundamental part of their annual gathering!
We're now in the process of designing a TrainTheTrainer program and this is an exciting new chapter in the history of DanceLabs and quite grateful!
To unplugging from [[Technology]] and creating a SustainableWorld!
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
StrictVegan and no SaltSugarOil in a nutshell!
one of the interesting things about this diet is it's nearly impossible for me to overeat as it allows my natural [[Satiation]] process to do its thing (ThePleasureTrap has an excellent chapter on how salts, oils, sugars, [[processed foods|ProcessedFood]] fool our bodies)
For example, because SpaghettiSauce used to be so salty, sugary, and oily - I clearly didn't enjoy putting a lot on my pasta. Now that I'm eating VegetarianSpaghettiSauce with no salt, I just slap it all on - I get a healthy does of veggies and what I'm tasting is the goodness of these veggies rather than all the additives!
/***
|''Name:''|RandomTiddlerExpanded|
|''Description:''|Generate a random tiddler|
|''Author:''|Brent Bartlett (brent dot bartlett at gmail dot com)|
|''Version:''|2.01|
|''Date:''|2011-07-28 (Thermidor 10)|
|''Status:''|stable|
|''Source:''|http://starjelly.net/portfolio/javascript.php|
|''License:''|[[GNU GPL 3.0|http://www.gnu.org/copyleft/gpl.html]] |
|''CoreVersion:''|2.6.2|
|''Browser:''|Tested on Firefox 5|
! Usage
{{{-<term>}}} - Exclude tiddlers with the tag {{{<term>}}}; e.g. {{{-excludeTag}}}.
{{{+<term>}}} - Include tiddlers with the tag {{{<term>}}}. Note that this automatically ''excludes ALL other tiddlers!''
For example, if you wanted only recipes, but only those without meat, assuming the tags ''recipes'' and ''meat'': {{{<<randomTiddler +recipes -meat>>}}}
(Parameters may be added in any order; {{{-meat +recipes}}} would work, too.)
With no parameters, it will return any random tiddler. (Including system tiddlers. If you want to exclude these, use the parameter {{{-systemConfig}}}.)
Thanks to the original """RandomTiddler""" plug-in for pointing me in the right direction.
***/
//{{{
( function( $ )
{
var macro = config.macros.randomTiddler = {
locale: {
label: "Random",
tooltip: "display a random tiddler"
},
handler: function( place, macroName, params, wikifier, paramString, tiddler )
{
var btn = createTiddlyButton( place, this.locale.label, this.locale.tooltip, function(){} );
btn.onclick = function()
{
story.closeAllTiddlers();
var addAll = true;
var tid = [];
var excludeTags = [];
var tiddlerArray = [];
function displayRandomTiddler()
{
if( !params[ 0 ] ) //if no parameters, do nothing...
{
}
else
for( var i = 0, ii = params.length; i < ii; i++ )
{
var theTag = params[ i ];
if( theTag[ 0 ] == "+" )
{
addAll = false;
tiddlerArray.push( store.getTaggedTiddlers( theTag.slice( 1, theTag.length ) ) );
}
else if( theTag[ 0 ] == "-" )
excludeTags.push( theTag.slice( 1, theTag.length ) );
}
if( addAll )
{
var tiddlers = store.getTiddlers();
var j = Math.floor( Math.random() * tiddlers.length );
tid = tiddlers[ j ];
}
else
{
var k = Math.floor( Math.random() * tiddlerArray.length );
var m = Math.floor( Math.random() * tiddlerArray[ k ].length );
tid = tiddlerArray[ k ][ m ];
}
for( var s = 0, ss = excludeTags.length; s < ss; s++ )
if( tid.tags.contains( excludeTags[ s ] ) )
displayRandomTiddler();
story.displayTiddler( null, tid );
}
displayRandomTiddler();
}
},
};
})( jQuery );
//}}}
TeamMinutemen is a moniker my brother and I have been playing around with thanks to the [[Squid&SquashFoundation]]
It's been a "container" to hold our consultative efforts and to gather what we learn as we play with technology to build IntentionalCommunity.
It's fair to say my efforts as a TechnologyEvangelist is representative of a particular hat I wear at DanceLabs - this explains why a conversation about DanceLabs eventually touches upon [[Technology]] at some point!
Explore further by visiting @teamminutemen and the TeamMinutemenWay
can't say this was the most well written of articles - it was nice surprise to be published nonetheless :)
[img[http://static.flickr.com/49/124495032_0f2b12ee6a.jpg]]
<<<
I use the Blentec because it's ultra-highpowered and cheaper than Vita-mix (also fits under my cabinets)
<<<
<<<
Create a new subdirectory off your website root (eg. /manuals). Add to it an .htaccess file that redirects a request for a specific sub-folder to your Google Doc URL. The .htaccess file might look like this:
Options -Indexes
redirect 301 /manuals/product1 http://docs.google.com/fileview?id=fsjsdklfjwioefjioewjflskjfIOSDJfiosjdfiwjefkl&hl=en
Instead of an .htaccess file you could make individual .html files in sub-folders that use browser forwarding to the Google Doc.
Either way you share this with customers: mydomain.com/manuals/product1
and you can update the link info when your Google Doc changes.
<<<
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Account</title>
<link href="/bags/common/tiddlers/profile.css" type='text/css' rel='stylesheet' >
<link href="/bags/common/tiddlers/admin.css" type='text/css' rel='stylesheet' >
<link href="/bags/common/tiddlers/jquery-ui.custom.css" type='text/css' rel='stylesheet' >
</head>
<body>
<div id="container">
<div class="main section">
<a class="app" href="/">home</a>
<div class="left">
<div id="siteiconArea">
<h2>User Icon</h2>
<div>
<img id="siteicon" class="siteicon">
<form id="upload" method="POST" enctype="multipart/form-data">
<input type="hidden" name="title" value="SiteIcon" />
<input type="hidden" name="tags" value="excludeLists">
<input type="hidden" name="csrf_token" class="csrf" />
<input type="file" name="file" accept="image/*" />
<input type="submit" value="upload" />
</form>
<div id="dropzone">Drop file here
<img class="notloading" src="/bags/common/tiddlers/ajax-loader.gif" alt="submitting SiteIcon" />
</div>
</div>
</div>
<h2>Find Space</h2>
<form class="spaceSearch">
<input class="inputBox" type="text" placeholder="find space" />
<a href="http://docs.tiddlyspace.com/What%20is%20a%20Space%3F" class="help"
title="What is a space?">What is a space?</a>
<button>view all</button>
</form>
<div class='list-container'>
You are a member of the following spaces:
<ul class='ts-space-search'>
</ul>
</div>
<h2>Create New Space</h2>
<form class="ts-spaces">
<input class="inputBox" type="text" name="spacename" placeholder="space name"><span class="hostSuffix">.tiddlyspace.com</span>
<input type="submit" value="Create Space" />
</form>
</div>
<div class="right">
<h2>Change Password</h2>
<form class="ts-password">
<input class="inputBox" placeholder="existing password" type="password" name="password">
<input class="inputBox" placeholder="new password" type="password" name="new_password">
<input class="inputBox" placeholder="new password" type="password" name="new_password_confirm">
<input type="submit" value="Change password">
</form>
<h2>OpenID</h2>
<h3>Why OpenID?</h3>
<a href="http://openid.net/"><img src="/bags/common/tiddlers/openid.png" alt="openid" ></a><br />
Use just one username and password across hundreds of OpenID-enabled sites.<br />
It's an open standard.<br />
<a href="http://openid.net/what/">learn more</a>
<ul class="ts-identities"></ul>
<form class="ts-openid" target="_top">
<div>
Add an openid:
</div>
<input class="inputBox" type="text" name="openid" placeholder="your openid" />
<input type="submit" value="Register" />
<a href="http://openid.net/get-an-openid/" class="help"
title="What is an open id?">What is an open id?</a>
</form>
</div>
<div class="clear"></div>
</div>
</div>
<script src="/bags/common/tiddlers/backstage.js"></script>
<script src='/bags/common/tiddlers/jquery.js'></script>
<script src='/bags/tiddlyspace/tiddlers/chrjs'></script>
<script src='/bags/common/tiddlers/chrjs.space'></script>
<script src='/bags/common/tiddlers/chrjs.users'></script>
<script src='/bags/common/tiddlers/chrjs.identities'></script>
<script src="/bags/common/tiddlers/jquery-ui.custom.js"></script>
<script src='/bags/common/tiddlers/jquery-form.js'></script>
<script src="/bags/common/tiddlers/siteiconupload.js"></script>
<script src='/bags/common/tiddlers/ts.js'></script>
<script src="/status.js"></script>
<script type="text/javascript">
/*
* jQuery UI Autocomplete HTML Extension
*
* Copyright 2010, Scott González (http://scottgonzalez.com)
* Dual licensed under the MIT or GPL Version 2 licenses.
*
* http://github.com/scottgonzalez/jquery-ui-extensions
*/
(function( $ ) {
var proto = $.ui.autocomplete.prototype,
initSource = proto._initSource;
function filter( array, term ) {
var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
return $.grep( array, function(value) {
return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );
});
}
$.extend( proto, {
_initSource: function() {
if ( this.options.html && $.isArray(this.options.source) ) {
this.source = function( request, response ) {
response( filter( this.options.source, request.term ) );
};
} else {
initSource.call( this );
}
},
_renderItem: function( ul, item) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( $( "<a></a>" )[ this.options.html ? "html" : "text" ]( item.label ) )
.appendTo( ul );
}
});
})( jQuery );
/***
_accounts application specific javascript
***/
var link;
ts.init(function(ts) {
if(ts.user.anon) { // redirect to homepage when user not logged in
window.location = ts.getHost();
} else if(ts.user.name === ts.currentSpace){
initSiteIconUpload(ts.user.name);
} else {
link = $("<a />").attr("href", ts.getHost(ts.user.name) + "/_account").text("Change User Icon");
$("#siteiconArea div").empty().append(link);
}
$(".hostSuffix").text("." + ts.getHost("").split("//")[1]);
ts.getSpaces(function(spaces) {
$("<div class='info' />").text("You have " + spaces.length + " spaces.").insertBefore($(".spaceSearch")[0]);
$("form.spaceSearch input").autocomplete({
html: true,
source: function(req, response) {
ts.getSpaces(function(spaces) {
var selected = [];
for(var i = 0; i < spaces.length; i++) {
var space = spaces[i];
if(space.name.indexOf(req.term) > -1) {
var host = ts.getHost(space.name) ;
var img = host + "/SiteIcon";
selected.push({
value: space.name,
label: '<a href="' + host + '" target="_parent" class="autocompleteLink"><img src="' + img + '" style="height:24px;width:auto;max-height:24px;max-width:24px;"/>' + space.name + '</a>'
});
}
}
response(selected);
});
},
select: function(event, ui) {
window.top.location = ts.getHost(ui.item.value);
}
});
var $ul = $('.ts-space-search');
$.each(spaces, function(i, space) {
$ul.append($('<li/>').html($('<a/>').attr('href', space.uri)
.text(space.name)));
});
$('form.spaceSearch button').click(function(ev) {
$('.list-container').slideToggle('fast');
ev.preventDefault();
return false;
});
});
});
if(window != window.top) {
$("html").addClass("iframeMode");
$("a").live("click",function(ev) {
$(ev.target).attr("target", "_parent");
});
}
</script>
<!--[if lt IE 8]>
<script type="text/javascript" src="/bags/common/tiddlers/json2.js"></script>
<![endif]-->
</body>
</html>
<html>
<head>
<title>Bulk Deletion Application</title>
<link rel="stylesheet" href="/bags/common/tiddlers/profile.css" type="text/css">
<script src="/bags/common/tiddlers/jquery.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
<div id="container">
<div id="header">
<h1>Bulk Deletion Application</h1>
</div>
<div class="main section">
Please take care when using this space as it can delete everything in your private and public bags. To use simply select the tiddlers you want to delete and click the delete all button.
<form id="filter" style="display:none;">
<p>Note you can filter this list using <a href="http://tweb-filters.tiddlyspace.com/GettingStarted">tiddlyweb filters</a>.</p>
<h2>Filter this list:</h2>
<input name="value" type='text' placeholder='select=tag:systemConfig'>
<button>Apply Filter</button>
</form>
<h2>Select tiddlers to delete</h2>
<table id='bulk'>
</table>
</div>
</div>
<script type='text/javascript'>
var space = window.location.host.split(".")[0];
var tableObj = {};
var url = "/recipes/" + space + "_private/tiddlers";
var hash = window.location.hash;
if(hash.indexOf("?") === 1) {
url += hash.substr(1, hash.length);
}
$("#filter").submit(onSubmit).show();
var onSubmit = function(ev) {
var filterVal = $("#filter [name=value]").val();
if(filterVal.indexOf("?") === 0) {
filterVal = filterVal.substr(1, filterVal.length);
}
window.location.hash = "#?" + filterVal;
window.location.reload();
ev.preventDefault();
};
if(window.location.hash.indexOf("#?") > -1) {
$("#filter [name=value]").val(window.location.hash.substr(2));
}
$("#filter button").click(onSubmit);
$.ajax({ url: url,
dataType: "json", success: function(tiddlers) {
var table = $("#bulk")[0];
$("<tr><th>Title</th><th>Status</th><th>Select <input type='checkbox' class='batchSelect' /></th></tr>").appendTo(table);
$(".batchSelect").click(function(ev) {
var ch = $(ev.target).attr("checked") ? true : false;
$("input.tidCheckBox:visible").attr("checked", false).each(function(i, el) {
$(el).attr("checked", ch);
});
});
$("<button />").text("delete all selected tiddlers").insertBefore(table).click(function(ev) {
if(!confirm("DELETE all the tiddlers that have been selected before? Be warning that this is irreversable!")) {
return;
}
var tiddlers = [];
$("input.tidCheckBox:checked:visible").each(function(i, el) {
var tid = $(el).data("tiddler");
if(tid) {
tiddlers.push(tid);
}
});
function deletetid(tid) {
$.ajax({ url: "/bags/" + tid.bag + "/tiddlers/" + encodeURIComponent(tid.title),
type: "DELETE",
success: function(r) {
var el = tableObj[tid.title];
$(el).animate({ opacity: 0}, {
complete: function(el) {
$(this).remove();
}
});
}
});
}
for(var i = 0; i < tiddlers.length; i++) {
var tid = tiddlers[i];
deletetid(tid);
}
});
for(var i = 0; i < tiddlers.length; i++) {
var tiddler = tiddlers[i];
if(tiddler.bag.indexOf(space) === 0) {
var row = $("<tr />").appendTo(table)[0];
$("<td />").text(tiddler.title).appendTo(row);
var status = tiddler.bag.split("_")[1];
$("<td />").text(status).appendTo(row);
var deletecol = $("<td />").appendTo(row)[0];
tableObj[tiddler.title] = row;
$("<input />").addClass("tidCheckBox").attr("type", "checkbox").data("tiddler", tiddler).appendTo(deletecol);
}
}
}
});
</script>
</body>
</html>
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
curious to see how this landscape pans out...
<<list filter [tag[app:News]]>>
Safari crashing on my iPad meant it was time for a rebuild...
given I had 3-4 pages of AppFolders, it was time to GetBackToBasics and gotten it down to 3 pages of the EliteApps.
Admitting the iPad is not a big iPhone skims PocketApps
Also unloaded DemoApps and look towards what I personally need the iPad for...
and there are those AppsInTheTrash....
while not done yet....22.7GB free (of 32) is quite refreshing...
//eventually this will be all refactored (yet again) in its own TiddlySpace w tags and queries//
latest TiddlySpace project!
<<tiddler ManInTheMirror@maninthemirror>>
{ removed TAG:follow because tags on ManInTheMirror were getting doubled up }
ColorPalette
StyleSheet
SiteSubtitle
GettingStarted
SiteTitle
MainMenu
SiteIcon
DefaultTiddlers
ViewTemplate
PageTemplate
SideBarOptions
EditTemplate
SiteInfo
SideBarTabs
ToolbarCommands
The title and subtitle of your space are visible to visitors and are also displayed in your browser's tabs. Click on the SiteTitle and SiteSubtitle tiddler links below to make changes.
* [[SiteTitle]]
* [[SiteSubtitle]]
in reference to the 13GB clone created on dad's iMac using CarbonCopyCloner
add:
# SystemPreferences.app
# Preview.app
<<<
guessin yr unrentless commitment to do well in skool hasn't gotten u to WholeFoods yet :) it's worth wakin u fresh & studying in the kitchen for 30 min while it cooks! try 50% AppleJuice, berries, pecans, walnuts when u can! u can get WholeFoods bulk for 0.99/lb after you've experienced the BEST i've found! luv u bro always! =)
<<<
create time to SlowDown
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/L3iSSPzmdes" frameborder="0" allowfullscreen></iframe>
</html>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="2 724 68 55"
width="30" height="30">
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
<g>
<path d="M 2.25 756 L 11.25 747 L 24.75 760.4994 L 60.750004 724.4994 L 69.75 733.49902
L 24.749977 778.49976 Z" fill="#101010" class="glyph"/>
</g>
</g>
</svg>
//how I can't wait to have a TiddlyMindmapper!//
# TiddlySpace - will serve multiple purposes..
** wisdom module itself will allow templating of coursework and containment of distinctions
**
# PersonalBrain (PersonalWeb exists, but not critical)
# iPad (vision is to have grandma flips through one's [[Autobiography]])
# consider [[Facebook]] for SocialGraph
LifelongExploration
ManInTheMirror
TiddlySpace
SteppingStones
<!DOCTYPE html>
<html manifest="/bags/common/tiddlers/takenote_manifest.appcache">
<head>
<title>takenote</title>
<link rel="stylesheet" href="/bags/common/tiddlers/notabene.css" />
<link rel="apple-touch-icon" href="/bags/common/tiddlers/touchicon_takenote.png"/>
<link rel="apple-touch-icon-precomposed" href="/bags/common/tiddlers/touchicon_takenote.png"/>
<meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=0,initial-scale=1.0">
<meta name="apple-mobile-web-app-capable" content="yes" />
</head>
<body>
<ul id="backstage">
<!-- no not add a newline between li elements or you will get a margin with inline blocks -->
<li><a href="/dashboard">dashboard</a></li><li><a href="/takenote">takenote</a></li>
<li><a class='connectionStatus'></a></li>
</ul>
<div class="takenotecontainer">
<div class='messageArea'></div>
<div id="note">
<div class="toolbar">
<a id="cancelnote" title="cancel this note">cancel</a>
<a id="deletenote" title="delete this note">delete</a>
<a id="newnote" title="complete this note">complete</a>
</div>
<div class="note_title_container">
<textarea class="note_title" placeholder="Note Title"></textarea>
</div>
<div id="notebody">
<span class="notedate"></span>
<textarea class="note_text" placeholder="Write here..."></textarea>
</div>
<div id="tips">
<div>Tips for cleverer notes:
''<span class="boldTip">bold</span>'' //<span class="italicTip">italic</span>// _<span class="underlineTip">underline</span>_ #tag</div>
<div>[[<a href="http://tiddlyspace.com">Link Name</a>|http://tiddlyspace.com]]
[[<a href="/Note title">Note title</a>]] <span class="imageTip">[img[/SiteIcon<img src="/SiteIcon" />]]</span></div>
</div>
<div id="notemeta"></div>
<div style="display:none">
<a class="syncButton"></a>
</div>
</div>
</div>
<noscript>
Takenote requires javascript to work correctly. Sorry!
</noscript>
<script src="/bags/common/tiddlers/backstage.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/bookmark_bubble.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/tiddlyspace/tiddlers/chrjs" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/chrjs-store.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/jquery-json.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/notabene.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
var takenote;
takenote = notes($(".takenotecontainer")[0], {
host: "/"
});
</script>
</body>
</html>
well - there are ''tons'' of bookbooks out there... i just wanted to create a list of recipes I've learned to prepare since jumping on the TrueNorthHealthDiet - who knows maybe I'll create a cookbook one day...
# SpinachMangoSalad
# UnsplitPeaSoup
# MiddleEasternStyleLentilStew
# AppleMustardDressing
# RoastedButternutSquashSeeds
# BakedYams
# GrapefruitWedges //(yeah, I know, trivial to make but critical!)//
# EgyptianRedLentilSoup
# MangoGingerDressing
# ButternutSquashSoup
# DogwoodWrap
<<list filter [tag[Recipe]]>>
! just up the pipe...
# AvocadoCornDressing
<<<
Playing with things is how we learn. We want to learn through tinkering pulling stuff apart, improve it, mash it up, innovate, make something new... ([[Be taught to tinker]]@howitworks)
<<<
hell ya! though sometimes time-consuming and you go through phases of wanting to attach Meaning to what I'm doing... for example - I just spent like a few days straight cobbling together old PC parts and playing around with Linux til I beat a DeadHorse. Well at least I have a diskless client (old FamilyComputer) that runs [[Firefox]] fairly well and a MinimalServer to complement my macs :)
It's fair to say I'm tinkering with TiddlySpace - it is the process of living my life vicariously through this [[Medium]] that I can discover exactly what the hell it's for and come up with InnovativeApplications to share!
Yes - learning to [[Play]] with [[Technology]] creates a PlayfulDancer ;-)
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/mIUQbUAGkPg" frameborder="0" allowfullscreen></iframe>
</html>
# pro: call "hunting" - rings landline first, then mobile
# con: dont see browser calling (looks like you need to install software)
# con: no automated address book sync
# pro: upgradeable to an organization (ie. squid & squash)
# con: not free. can cost approx $50/mon (need to look at different plans)
# pro: definable contexts
# pro: can receive faxes
# pro: can look like a "Fortune 500" company - different depts "auto-receptionist" [can see how Chinarut could use this being a "handy" man...]
# free to port #
# money back guarantee - return first month if not satisfied in first 30 days
# unknown: how long Ring Central will remain standing (why did Google not acquire Ring Central?)
# pro: IP phones available (can replace Verizon) (cloud-based PBX)
# pro: 800 phone #
# con: time is metered (unlimited minutes cost more) ( you are paying metered minutes both on cell phone & Ring Central end)
# unknown: level of Apple integration: Mac OS X, iCal, Address Book, iPhone, etc
# claim: iPhone app
INQUIRY: capabilities of most advanced [[Asterisk]] systems?
/***
|''Name''|TiddlySpaceBackstage|
|''Version''|0.8.0|
|''Description''|Provides a TiddlySpace version of the backstage and a homeLink macro|
|''Status''|@@beta@@|
|''Contributors''|Jon Lister, Jon Robson, Colm Britton|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceBackstage.js|
|''Requires''|TiddlySpaceConfig ImageMacroPlugin TiddlySpaceViewTypes|
!StyleSheet
.tiddler .error.annotation .button{
display: inline-block;
}
#backstageArea {
z-index: 49;
color: white;
background-color: black;
background: -webkit-gradient(linear,left bottom,left top,color-stop(0, #222),color-stop(0.5, #333),color-stop(1, #555));
background: -moz-linear-gradient(center bottom,#222 0%, #333 50%, #555 100%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff555555, endColorstr=#ff222222);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff555555, endColorstr=#ff222222)";
height: 25px;
padding: 0;
}
#backstageButton {
overflow: hidden;
}
#backstageButton #backstageShow,
#backstageButton #backstageHide {
margin: 0px;
padding: 0px;
}
#backstageButton #backstageShow:hover,
#backstageButton #backstageHide:hover {
background: none;
color: none;
}
#backstageButton img,
#backstageButton svg {
width: 24px;
height: 24px;
}
#messageArea {
top: 50px;
}
#backstageToolbar {
position: relative;
}
#backstageArea a {
padding: 0px;
margin-left: 0px;
color: white;
background: none;
}
#backstageArea a:hover {
background-color: white;
}
#backstage ol,
#backstage ul {
padding: auto;
}
#backstageButton a {
margin: 0;
}
.backstagePanelBody ul {
padding: 5px;
margin: 5px;
}
#backstage #backstagePanel {
margin-left: 5%;
padding: 0em;
margin-right: 5%;
}
#backstageToolbar a {
position: relative;
}
#backstageArea a.backstageSelTab,
#backstageToolbar .backstageTask {
line-height: 25px;
color: #767676;
}
.backstageTask .externalImage,
.backstageTask .image {
display: inline;
}
#backstageToolbar a span {
z-index: 2;
}
a.backstageTask {
display: inline;
margin-left: 1em !important;
}
.backstagePanelBody .button {
display: inline-block;
margin-right: 10px;
}
.backstagePanelBody {
margin: 0 0 0 0.6em;
padding: 0.4em 0.5em 1px 0.5em;
}
#backstage table {
margin: auto;
}
#backstage .wizard table {
border: 0px;
margin: 0;
}
#backstage div li.listLink {
border: 0px;
width: 78%;
font-size: 0.7em;
}
#backstage div li.listTitle {
font-weight: bold;
text-decoration: underline;
font-size: 1em;
background: #ccc;
width: 100%;
}
#backstage fieldset {
border: solid 1px [[ColorPalette::Background]];
}
#backstage .viewer table,#backstage table.twtable {
border: 0px;
}
#backstageToolbar img {
padding: 0;
}
#backstage .wizard,
#backstage .wizardFooter {
background: none;
}
.viewer td, .viewer tr, .twtable td, .twtable tr {
border: 1px solid #eee;
}
#backstage .inlineList ul li {
background-color: [[ColorPalette::Background]];
border: solid 1px [[ColorPalette::TertiaryMid]];
display: block;
float: left;
list-style: none;
margin-right: 1em;
padding: 0.5em;
}
.backstageClear, .inlineList form {
clear: both;
display: block;
margin-top: 3em;
}
.tiddlyspaceMenu {
text-align: center;
}
span.chunkyButton {
display: inline-block;
padding: 0;
margin: 0;
border: solid 2px #000;
background-color: #04b;
}
span.chunkyButton a.button, span.chunkyButton a:active.button {
white-space: nowrap;
font-weight: bold;
font-size: 1.8em;
color: #fff;
text-align: center;
padding: 0.5em 0.5em;
margin: 0;
border-style: none;
display: block;
}
span.chunkyButton:hover {
background-color: #014;
}
span.chunkyButton a.button:hover {
border-style: none;
background: none;
color: #fff;
}
#backstage .unpluggedSpaceTab .wizard,
.unpluggedSpaceTab .wizard {
background: white;
border: 2px solid #CCC;
padding: 5px;
}
.syncKey .keyItem {
border: 1px solid black;
display: inline-block;
margin: 0.2em;
padding: 0.1em 0.1em 0.1em 0.1em;
}
.keyHeading {
font-size: 2em;
font-weight: bold;
margin: 0.4em 0em -0.2em;
}
.unpluggedSpaceTab .putToServer,
.unpluggedSpaceTab .notChanged {
display: none;
}
.tiddlyspaceMenu ul {
margin: 0;
padding: 0;
}
.tiddlyspaceMenu ul li {
list-style: none;
}
.unsyncedChanges .unsyncedList {
display: block;
}
.unsyncedList {
display: none;
}
!Code
***/
//{{{
(function ($) {
var name = "StyleSheet" + tiddler.title;
config.shadowTiddlers[name] = "/*{{{*/\n%0\n/*}}}*/".
format(store.getTiddlerText(tiddler.title + "##StyleSheet")); // this accesses the StyleSheet section of the current tiddler (the plugin that contains it)
store.addNotification(name, refreshStyles);
if (!config.extensions.tiddlyweb.status.tiddlyspace_version) { // unplugged
config.extensions.tiddlyweb.status.tiddlyspace_version = "<unknown>";
config.extensions.tiddlyweb.status.server_host = {
url:config.extensions.tiddlyweb.host }; // TiddlySpaceLinkPlugin expects this
}
var disabled_tasks_for_nonmembers = ["tiddlers", "plugins", "batch", "sync"];
var tweb = config.extensions.tiddlyweb;
var tiddlyspace = config.extensions.tiddlyspace;
var currentSpace = tiddlyspace.currentSpace.name;
var imageMacro = config.macros.image;
if (config.options.chkBackstage === undefined) {
config.options.chkBackstage = false;
}
// Set up Backstage
config.tasks = {};
config.tasks.status = {
text:"status",
tooltip:"TiddlySpace Info",
content:"<<tiddler Backstage##Menu>>"
};
config.tasks.tiddlers = {
text:"tiddlers",
tooltip:"tiddlers control panel",
content:"<<tiddler Backstage##BackstageTiddlers>>"
};
config.tasks.plugins = {
text:"plugins",
tooltip:"Manage installed plugins",
content:"<<tiddler Backstage##Plugins>>"
};
config.tasks.batch = {
text:"batch",
tooltip:"Batch manage public/private tiddlers",
content:"<<tiddler Backstage##BatchOps>>"
};
config.tasks.tweaks = {
text:"tweaks",
tooltip:"Tweak TiddlyWiki behaviors",
content:"<<tiddler Backstage##Tweaks>>"
};
config.tasks.exportTiddlers = {
text:"import/export",
tooltip:"Import/export tiddlers from/to a TiddlyWiki",
content:"<<tiddler Backstage##ImportExport>>"
};
config.tasks.sync = {
text:"sync",
tooltip:"Check Sync status",
content:"<<tiddler Backstage##SpaceUnplugged>>"
};
if (window.location.protocol === "file:") {
config.unplugged = true;
}
config.backstageTasks = ["status", "tiddlers", "plugins",
"batch", "tweaks", "exportTiddlers", "sync"];
config.messages.backstage.prompt = "";
// initialize state
var _show = backstage.show;
backstage.show = function () {
// selectively hide backstage tasks and tabs based on user status
var tasks = $("#backstageToolbar .backstageTask").show();
var bs = backstage.tiddlyspace;
if (!config.unplugged) {
tweb.getUserInfo(function (user) {
if (user.anon) {
jQuery.each(disabled_tasks_for_nonmembers, function (i, task) {
var taskIndex = config.backstageTasks.indexOf(task);
if (taskIndex !== -1) {
config.backstageTasks.splice(taskIndex, 1);
}
});
config.messages.memberStatus = bs.locale.loggedout;
} else {
config.messages.memberStatus = readOnly ?
bs.locale.nonmember : bs.locale.member;
}
});
} else {
config.messages.memberStatus = bs.locale.unplugged;
}
// display backstage
return _show.apply(this, arguments);
};
if (readOnly) {
jQuery.each(disabled_tasks_for_nonmembers, function (i, task) {
var taskIndex = config.backstageTasks.indexOf(task);
if (taskIndex !== -1) {
config.backstageTasks.splice(taskIndex, 1);
}
});
}
var tasks = config.tasks;
var commonUrl = "/bags/common/tiddlers/%0";
backstage.tiddlyspace = {
locale:{
member:"You are a member of this space.",
nonmember:"You are not a member of this space.",
loggedout:"You are currently logged out of TiddlySpace.",
unplugged:"You are unplugged."
},
showButton:function () {
var showBtn = $("#backstageShow")[0];
var altText = $(showBtn).text();
$(showBtn).empty();
imageMacro.renderImage(showBtn, "backstage.svg",
{ altImage:commonUrl.format("backstage.png"), alt:altText});
},
hideButton:function () {
var hideBtn = $("#backstageHide")[0];
var altText = $(hideBtn).text();
$(hideBtn).empty();
imageMacro.renderImage(hideBtn, "close.svg",
{ altImage:commonUrl.format("close.png"), alt:altText, width:24, height:24 });
}
};
var _init = backstage.init;
backstage.init = function () {
_init.apply(this, arguments);
var init = function (user) {
var bs = backstage.tiddlyspace;
bs.showButton();
bs.hideButton();
};
tweb.getUserInfo(init);
};
var home = config.macros.homeLink = {
locale:{
linkText:"your home space"
},
handler:function (place) {
var container = $("<span />").appendTo(place)[0];
tweb.getUserInfo(function (user) {
if (!user.anon && user.name !== currentSpace) {
createSpaceLink(container, user.name, null, home.locale.linkText);
}
});
}
};
config.macros.exportSpace = {
handler:function (place, macroName, params) {
var filename = params[0] ||
"/tiddlers.wiki?download=%0.html".format(currentSpace);
$('<a class="button">download</a>').// XXX: i18n
attr("href", filename).appendTo(place);
}
};
}(jQuery));
//}}}
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
ResourceSharing and DanceLabs reboot
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/0pEy5BW8DHU" frameborder="0" allowfullscreen></iframe>
</html>
after experiencing ''amazing'' quality WalnutOil from LaTourangelle (this is before I committed to a TrueNorthHealthDiet!) - I got this reference and see on a mission to find equivalently HighQuality BalsamicVinegar!
<<<
hi! I got a kind reference to your BalsamicVinegar from the LaTourangelle folks!
I'm over here in LosAngeles and notice your boutiques are over on the east coast.
I have a few questions.
1) I notice you are out of stock of your BalsamicVinegar - do you have any estimate when you'll be getting it in? if not, any way you can put me on a notification list when the product arrives?
2) what will be the S&H to zip ***** for this item? (feel free to send me a link to your shipping rates page if I missed it)
look forward to appreciating your selection!
<<<
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
a PentiumII with 352MB RAM now boots SliTaz and got GoogleMail up with [[Shiretoko]], a variant of [[Firefox]] Glad to see it came bundled with GoogleVideoChat which I can see addresses an issue I saw with Skype in InternetCafes - keeps us MobileWarriors safe and secure while OnTheRun :)
Someday, we'll create that MagicUSBStick to distribute to the [[Family]] for all our [[Travels]]
the idea of that [[Laptop]] continues to float down the river...go [[Firefox]], [[Google]], [[Linux]], and [[Apple]] - we can all play in the same [[Sandbox]] right? :)
/***
|''Name''|ImageMacroPlugin|
|''Version''|0.9.4|
|''Description''|Allows the rendering of svg images in a TiddlyWiki|
|''Author''|Osmosoft|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''Notes''|Currently only works in modern browsers (not IE)|
|''Requires''|BinaryTiddlersPlugin|
!Usage
{{{<<image SVG>>}}} will render the text of the tiddler with title SVG as an SVG image (but not in ie where it will fail silently)
!!Parameters
width/height: specify width/height parameters
link: make the image link to a given location
tiddlyLink: link to a tiddler
!Notes
Binary tiddlers in TiddlyWeb when passed through the wikifier will be shown as images.
eg. {{{<<view text wikified>>}}} on a binary tiddler will show the image.
{{{<<view fieldname image>>}}}
will render the value of the tiddler field 'fieldname' as an image. This field can contain a tid
{{{<<image SiteIcon>>}}}
will create an image tag where the tiddler has content type beginning image and not ending +xml
will attempt to create svg object in other scenarios
{{{<<image /photos/x.jpg>>}}}
will create an image tag with src /photos/x.jpg as long as there is not a tiddler called /photos/x.jpg in
which case it will render that tiddler as an image. Note for the case of svg files it will attempt to render as an svg if possible via the image
tag. It doesn't embed the svg in the dom for security reasons as svg code can contain javascript.
!Code
***/
//{{{
(function($) {
var macro = config.macros.image = {
shim: "/bags/common/tiddlers/shim",
ieVersion: config.browser.isIE ? parseInt(config.browser.ieVersion[1], 10) : false,
svgns: "http://www.w3.org/2000/svg",
xlinkns: "http://www.w3.org/1999/xlink",
svgAvailable: document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"),
_fixPrefix: 1,
_external_cache: {},
_image_tag_cache: {},
_image_dimensions: {},
locale: {
badImage: "This image cannot be displayed."
},
handler: function(place, macroName, params, wikifier, paramString, tiddler){
var imageSource = params[0];
// collect named arguments
var args = macro.getArguments(paramString, params);
this.renderImage(place, imageSource, args);
},
init: function() {
var startupImages = store.getTaggedTiddlers("systemImage");
var place = $("<div />").attr("id", "systemImageArea").appendTo("body").hide()[0];
for(var i = 0; i < startupImages.length; i++) {
var image = startupImages[i];
macro.renderImage(place, image.title, { idPrefix: "" });
}
var data = new Image();
data.onload = function() {
// note ie 8 only supports data uris up to 32k so cannot be relied on
macro.supportsDataUris = this.width != 1 || this.height != 1 ? false : true;
macro.supportsDataUris = macro.ieVersion && macro.ieVersion < 9 ? false : macro.supportsDataUris;
};
data.onerror = data.onload;
data.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
},
refreshImage: function(src) {
var elements = macro._image_tag_cache[src] ? macro._image_tag_cache[src] : [];
if(macro._image_dimensions[src]) {
macro._image_dimensions[src] = false;
}
for(var i = 0; i < elements.length; i++) {
var el = $(elements[i]);
var newSrc = "%0?nocache=%1".format(src, Math.random());
el.attr("src", newSrc); // force reload
}
},
isBinaryImageType: function(contentType) {
return (contentType && contentType.indexOf("image") === 0 &&
contentType.indexOf("+xml") != contentType.length - 4) ? true : false;
},
isImageTiddler: function(tiddler) {
return macro.isSVGTiddler(tiddler) || macro.isBinaryImageTiddler(tiddler);
},
isSVGTiddler: function(tiddler) {
var type = tiddler ? tiddler.fields['server.content-type'] : false;
return type == "image/svg+xml";
},
isBinaryImageTiddler: function(tiddler) {
return macro.isBinaryImageType(tiddler.fields['server.content-type']);
},
renderImage: function(place, imageSource, options) {
var imageTiddler = store.getTiddler(imageSource);
var container;
var classes = ["image"];
if(options.link) {
classes = classes.concat(["imageLink", "externalLink"]);
container = $("<a />").attr("href", options.link).appendTo(place)[0];
} else if(options.tiddlyLink) {
classes.push("imageLink");
container = createTiddlyLink(place, options.tiddlyLink, false);
} else {
container = $("<span />").appendTo(place)[0];
}
$(container).addClass(classes.join(" "));
options = options ? options : {};
if(imageTiddler && macro.isBinaryImageTiddler(imageTiddler)) { // handle the case where we have an image url
return macro._renderBinaryImageTiddler(container, imageTiddler, options);
} else if(imageTiddler){ // handle the case where we have a tiddler
return macro._renderSVGTiddler(container, imageTiddler, options);
} else { // we have a string representing a url
return macro._renderBinaryImageUrl(container, imageSource, options);
}
},
_renderAlternateText: function(container, options) {
var img;
var src = options.src || "";
if(options.width && options.height) {
img = $("<img />").attr("src", src).addClass("svgImageText").attr("width", options.width).
attr("height", options.height).appendTo(container);
}
var alt = options.alt;
if(img && alt) {
img.attr("alt", alt).attr("title", alt);
} else if(alt) {
$(container).addClass("svgImageText").text(alt);
}
macro._image_tag_cache[src] = img;
},
_renderSVGTiddler: function(place, tiddler, options) {
if(!options) {
options = {};
}
merge(options, { tiddler: tiddler, fix: true});
if(macro.svgAvailable) {
this._importSVG(place, options); // display the svg
} else if(options.altImage) {
var image = options.altImage;
delete options.altImage;
this._renderBinaryImageUrl(place, image, options);
} else {
this._renderAlternateText(place, options); // instead of showing the image show the alternate text.
}
},
_renderBinaryImageTiddler: function(place, tiddler, options) {
var resourceURI;
var fields = tiddler.fields;
if(fields["server.type"] == "tiddlyweb") { // construct an accurate url for the resource
resourceURI = "%0/%1/tiddlers/%2".format(config.defaultCustomFields["server.host"],
fields["server.workspace"], encodeURI(fields["server.title"]));
} else { // guess the url for the resource
resourceURI = tiddler.title;
}
var ctype = fields["server.content-type"] || tiddler.type;
var text = tiddler.text;
if(macro.supportsDataUris && ctype && text.indexOf("<html") == -1) {
var uri = "data:%0;base64,%1".format(ctype, text);
options.src = resourceURI;
return macro._renderBinaryImageUrl(place, uri, options);
} else if(options.src) {
return macro._renderBinaryImageUrl(place, options.src, options);
} else {
return macro._renderBinaryImageUrl(place, resourceURI, options);
}
},
_renderImageTag: function(container, src, width, height, options) {
var img;
img = $("<img />").appendTo(container);
if(height) {
img.attr("height", height);
}
if(width) {
img.attr("width", width);
}
if(macro.ieVersion && macro.ieVersion < 7 && macro.shim && options.ie6png) {
$(img).css({width: userW, height: userH,
filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='%0', sizingMethod='scale')".format(src)
}).attr("src", macro.shim);
} else {
img.attr("src", src);
}
if(!macro._image_tag_cache[options.srcUrl]) {
macro._image_tag_cache[options.srcUrl] = [];
}
img = $(img).addClass(options.imageClass)[0];
macro._image_tag_cache[options.srcUrl].push(img);
return img;
},
_getDimensions: function(realDimensions, reqDimensions, preserve) {
var w = realDimensions.width;
var h = realDimensions.height;
var reqh = reqDimensions.height;
var reqw = reqDimensions.width;
var finalw = w, finalh = h;
var ratiow = reqw / w, ratioh = reqh / h;
var scaledw = ratioh * w;
var scaledh = ratiow * h;
if(!reqw && reqh) {
finalw = scaledw;
finalh = reqh;
} else if(reqw && !reqh) {
finalw = reqw;
finalh = scaledh;
} else if(reqh && reqw) {
var preserveWidth = w > h ? true : false;
if(preserve) {
if(preserveWidth && scaledh < reqh) {
finalh = scaledh;
finalw = reqw;
} else {
finalh = reqh;
finalw = scaledw;
}
} else {
finalw = reqw;
finalh = reqh;
}
}
return { width: parseInt(finalw, 10), height: parseInt(finalh, 10) };
},
_renderBinaryImageUrl: function(container, src, options) {
var srcUrl = options.src ? options.src : src;
srcUrl = srcUrl.indexOf("/") === -1 ? "/%0".format(srcUrl) : srcUrl; // for IE.
var image_dimensions = macro._image_dimensions[srcUrl];
var image = new Image(); // due to weird scaling issues where you use just a width or just a height
var createImageTag = function(dimensions, error) {
if(error) {
var altImage = options.altImage;
if(altImage) {
delete options.altImage;
macro._renderBinaryImageUrl(container, altImage, options);
} else {
options.src = src;
macro._renderAlternateText(container, options);
}
} else {
var dim = macro._getDimensions(dimensions, {
width: options.width, height: options.height }, options.preserveAspectRatio);
options.srcUrl = srcUrl;
macro._renderImageTag(container, src, dim.width, dim.height, options);
}
};
if(!image_dimensions) {
image.onload = function() {
var dimensions = { width: image.width, height: image.height};
macro._image_dimensions[srcUrl] = dimensions;
createImageTag(dimensions);
};
image.onerror = function() {
createImageTag(null, true);
};
image.src = src;
} else {
createImageTag(image_dimensions);
}
},
_generateIdPrefix: function(){
return "twsvgfix_" + (this._fixPrefix++).toString() + "_";
},
_fixSVG: function(childNodes, idPrefix) {
var urlPattern = /url\(\#([^\)]*)\)*/ig;
var fixes = [
{ attr: "id", pattern: /^(.*)$/ig },
{ attr: "href", namespace: macro.xlinkns, pattern: /^#(.*)$/ig }
];
var url_fixes = ["filter", "fill", "mask", "stroke", "style"];
for(var i = 0; i < url_fixes.length; i++) {
fixes.push({ attr: url_fixes[i], pattern: urlPattern });
}
for(var t = 0; t < childNodes.length; t++) {
var node = childNodes[t];
for(var a = 0; a < fixes.length; a++) {
var fix = fixes[a];
var attr = fix.attr;
var ns = fix.namespace || "";
if(node.hasAttributeNS && node.hasAttributeNS(ns, attr)) {
var v = node.getAttributeNS(ns, attr);
fix.pattern.lastIndex = 0;
var match = fix.pattern.exec(v);
if(match) {
// Make sure replacement string doesn't contain any single dollar signs
var toReplace = match[1];
if(toReplace.indexOf(idPrefix) !== 0 && toReplace.indexOf("twglobal_") !== 0) {
var replacement = (idPrefix + toReplace).replace("$", "$$$$");
v = v.replace(match[1], replacement);
}
node.setAttributeNS(ns, attr,v);
}
}
}
var children = node.childNodes;
if(children.length > 0) {
this._fixSVG(children, idPrefix);
}
}
},
_importSVG: function(place, options){
options = options ? options : {};
var svgDoc, tiddlerText = options.tiddler.text;
if (window.DOMParser) {
svgDoc = new DOMParser().parseFromString(tiddlerText, "application/xml").documentElement;
var idPrefix = options.idPrefix || this._generateIdPrefix();
this._fixSVG([svgDoc], idPrefix);
var el = document.importNode(svgDoc, true);
var svgHolder = document.createElementNS(macro.svgns,"svg");
var width = options.width;
var height = options.height;
if(width || height) {
if(width && height) { // set view box of containing svg element based on the svg viewbox and width and height.
var viewBox = el.getAttribute("viewBox");
var topLeft = "0 0";
if(viewBox) {
topLeft = viewBox.replace(/([0-9]*) +([0-9]*) +([0-9]*) +([0-9]*) */gi,"$1 $2");
}
svgHolder.setAttributeNS(macro.svgns, "viewBox", "0 0 %0 %1".format(width, height));
} else {
if(!width) {
width = el.getAttribute("width");
}
if(!height) {
height = el.getAttribute("height");
}
}
svgHolder.setAttribute("width", width);
svgHolder.setAttribute("height", height);
el.setAttribute("width", "100%");
el.setAttribute("height", "100%");
svgHolder.setAttribute("class", "svgImage svgIcon %0".format(options.imageClass || ""));
svgHolder.appendChild(el);
place.appendChild(svgHolder);
}
else {
var existing = el.className ? el.className.baseVal : "";
el.setAttribute("class","svgImage %0".format(existing));
place.appendChild(el);
}
// if a tiddler attribute is set this is read as a link
$("[tiddler], [tiddlyLink]", place).attr("refresh", "link").click(function(ev) {
var tiddler = $(ev.target).attr("tiddlyLink");
if(tiddler) {
story.displayTiddler(ev.target, tiddler);
}
});
}
},
getArguments: function(paramString, params) {
var args = paramString.parseParams("name", null, true, false, true)[0];
var options = {};
for(var id in args) {
if(true) {
var p = args[id];
if(id == "def") {
options[id] = p;
} else {
options[id] = p[0];
}
}
}
var width = isNaN(params[1]) ? false : parseInt(params[1], 10);
var height = isNaN(params[2]) ? false : parseInt(params[2], 10);
options.width = macro.lookupArgument(options, "width", width);
options.height = macro.lookupArgument(options, "height", height);
options.preserveAspectRatio = args.preserveAspectRatio &&
args.preserveAspectRatio[0] == "yes" ? true : false;
options.tiddlyLink = macro.lookupArgument(options, "tiddlyLink", false);
options.link = macro.lookupArgument(options, "link", false);
return options;
},
lookupArgument: function(args, id, ifEmpty) {
return args[id] ? args[id] : ifEmpty;
}
};
// update views
var _oldwikifiedview = config.macros.view.views.wikified;
// update wikifier to check tiddler type before rendering
merge(config.macros.view.views, {
wikified: function(value, place, params, wikifier, paramString, tiddler) {
if(macro.isImageTiddler(tiddler) && params[0] == "text") {
var newplace = $("<div />").addClass("wikifiedImage").appendTo(place)[0];
macro.renderImage(newplace, tiddler.title, { alt: macro.locale.badImage });
} else {
_oldwikifiedview.apply(this, arguments);
}
},
image: function(value, place, params, wikifier, paramString, tiddler) {
// a field can point to another tiddler whereas text is the current tiddler.
var title = params[0] == "text" ? tiddler.title : value;
var args = macro.getArguments(paramString, params);
macro.renderImage(place, title, args);
}
});
config.shadowTiddlers.StyleSheetImageMacro = [".wikifiedImage svg, .wikifiedImage .image { width: 80%; }",
".svgImageText { background-color:[[ColorPalette::Error]]; color:#ddd; display: inline-block; }",
"span.svgImageText { display: inline-block; overflow: hidden; }"
].join("");
store.addNotification("StyleSheetImageMacro", refreshStyles);
})(jQuery);
//}}}
Using WordPress is technically a workaround that creates a [[Requirement]] for a RSSPlugin to be practical.
An EmailToTiddlerPlugin would allow me to create content from just about anywhere whether it be an iPhone app like SleepCycle or the numerous Notes I have in my [[iPhone]]
given there is a Notes API on the iPhone - it would be great to have Tiddlers available for viewing and editing.
it would be nice to specify a CreationDate when creating a <<newTiddler>> by [[email]]
let it be known I almost didn't get my DegreeInCollege due to [[Statistics]] - the one area on my life I didn't consult my [[Professor]] on creating a [[Context]] inspiring enough to motivate me - not clear if I would have been able to create that at the time - it's been a LifeDiscovery as to where I find statistics MeaningfulAndInteresting...
wow - I'm really impressed with the SimultaneousSearch feature of the Chrome/RockMelt extension of Evernote: http://goo.gl/jc2J8 - definitely an inspiration for a TiddlySpaceChromeExtension!
I've been toying around with Evernote for quite a number of years - trying to see if it is indeed the UltimateCaptureTool (much like my mission for the UltimateMobileDevice which I'm happy to say the [[iPhone]] showed up inside of :)
I got the whole notion of a CaptureTool from MissionControlProductivity in conjunction with my training in [[GTD]].
The UltimateCaptureTool is the one place you enter items you feel are [[Actionable]] - with Evernote allowing for items that can be text, audio, or even visual (ie. a picture of an item you saw at Costco that you really want to buy) - what is even more ingenious is not only the fact that it is [[Cloud-based]] but also the fact that it recognizes handwriting of notes you write, BusinessCards you snapshot, just about any words it can find on the picture and as the system gets smarter, they could ([[Cycles]] permitting) rescan the entire database, esp for their PremiumCustomers.
this gives the notion of searching through all your notes a different face.
Now admittedly, my ExistenceSystem is OmniFocus and I trust this system to keep track of all my [[Projects]] and NextActions. it is primarily [[GTD-based]] and am aware of people who successful use Evernote for for the purpose of [[GTD]] - of course, I also know people who successfully use a TiddlyWiki for GTD - it's how I got here in the first place in 2006 - I was willing to explore what was possible at the time - someone clearly saw a TiddlyWiki as an access to the UltimateExistenceSystem - do I sense a trend as to what I chase in life?
Whether such a mission is fruitful when it comes to people is a whole other conversation ;-)
for the time being, Evernote still successfully creeps into my life and I'm very happy I do have a portion of my life there and that I use TiddlySpace as the SynthesisLayer even though the BrainEKP has claimed this title for quite some time in the [[Enterprise]] space - a PetPeeve of mine is the use of EnterprisePlatforms at the level of [[Individual]] - I truly feel if one were to embrace the full capacity of BeingHuman - one would reap the benefits of using an EnterpriseSystem in this way - there is a SocialEntrepreneur in each and every one of us - for many, waiting to be discovered!
/*{{{*/
Background: #e4e4f1
Foreground: #0e0d1a
PrimaryPale: #e1e1ef
PrimaryLight: #8886c0
PrimaryMid: #42407c
PrimaryDark: #111121
SecondaryPale: #e1efe6
SecondaryLight: #86c099
SecondaryMid: #407c54
SecondaryDark: #112116
TertiaryPale: #efe1e5
TertiaryLight: #c08695
TertiaryMid: #7c4050
TertiaryDark: #211115
Error: #f88
ColorPaletteParameters: HSL([242|78], [0.31744411610998213],[0.1|0.3704575072973967|0.6409150145947933|0.91137252189219])
/*}}}*/
Current ICT is little more than an exercise in being trained to use outdated computers and packages. Word, Powerpoint, Publisher, Excel, Access are all your tools with a limited lifespan. They abstract and hide computers from our understanding. We already know how to //use// computers. What we want to know is how computers //work//.
You can't make an omelet from boiled eggs! So we want to cook with the raw ingredients of computing, to be able to make Web pages using ~View-Source, HTML and CSS, not Frontpage or Flash.
my perspective of BeingProductive for 30 minutes didn't come from places like the PromodoroTechnique but rather the time it takes to cook SteelCutOats!
Some people think this is an awfully long time to "wait" for oats to cook esp in an era where we've invented 1 minute InstantOats - we often wait to eat until "we must have food right now!" which is often TooLate.
Now I'm not going to admit I have everything figured out - it takes something to stop [[Writing]] at 8am so I can get oats going and ready by 8:30am. I'd rather [[write for 2 hours|July 7, 2011 (ShivaSleeps)]]
but in any case, 30 minutes gives you time to think, relax, just be - it allows things between the cracks to be as well - it's the right pace for the morning - whether I chose to read the newspaper, catch up on journals, write, talk with MomAndDad, do some programming, wait for a server to configure - whatever. it's interesting to see what gets accomplished in this half hour window in the morning cooking what is by far the meal I look forward to every morning! (yes I can cut FruitWedges too :)
ok - must cut some fruit to throw it in now!
Had a GreatMorning - I was able to hash through everything with my MomAndDad and feel [[July 2, 2011 (Shiva Sleeps)]] very much floating down the river and going into the [[Past]].
I still have visions of an AutoCompletingJournal - one that would take MorningPages and help you visualize the completion of those thoughts (or not) by end of the day or more realistically, the next time you choose to [[Journal]].
While I'm not a SleepScientist, I would imagine a lot of the thoughts one wakes up with are impacted by the previous day (your [[Past]] in general) , your [[Dreams]] (which probably is impacted by your StateOfMind as well), and your general mood when you get up in the morning.
It is not only important to wake up fresh physically, but also emotionally and much like I discovered early on in my [[Experiments]] - GoingToSleepComplete clearly has a positive impact on how my day goes.
So here I am at 1:15, grateful it's [[Saturday]] and that I have a bit of room to breathe in regards to how my day (and weekend!) goes in general. I'm not finding a lot of motivation to CookForTheWeek last last Saturday and that's ok - I have [[Sunday]] to attend to this and it's the day I typically see myself preparing for the week keeping in mind Monday is the FourthOfJuly and a [[Holiday]] which technically, doesn't have much meaning - I'll be spending at least part of the day preparing for my TechTuesdays engagement (which I have no qualms about doing!)
ok - I'd better stop writing - I'm looking forward to heading over to HermosaBeach for a BBQ to connect with a dude I met in Thailand who really created a wonderful experience for me and my girlfriend at the time - one of those MagicalExperiences when you feel teleported somewhere else, to another time, to a different era, life feels good and in particular, is expressed on the DanceFloor - this is one [[Measure]] that will always stay true for me and while a bit [[Subjective]] - it's a typically another guy who loves to dance as much as I do with a bunch of BeautifulWomen all of which are AmazinglyOpen and playful with their dancing and ability to connect with others. This kind of energy is rather [[Infectious]] and it gets the rest of the floor stirring. I'd say there is a statistic in regards to the number of people I impact on the dance floor or if I happen to get there first, the number of people that come my way. I undoubtedly think of these videos we picked to envision a DayOfDance (the BeforeAndAfter is critical):
<html>
<iframe width="425" height="349" src="http://www.youtube.com/embed/ZbI0QOI6_-4" frameborder="0" allowfullscreen></iframe>
<iframe width="425" height="349" src="http://www.youtube.com/embed/GA8z7f7a2Pk" frameborder="0" allowfullscreen></iframe>
</html>
Now that's what I call DanceMagic! :)
<<<
a great example of how a guy who focuses his entire life on a woman’s needs and wants without demonstrating and developing his own character will eventually become annoying to his partner, no matter how sweet and humble she might be, and will eventually lose her. I highly recommend that you watch that movie so that you do not commit the same many mistakes when you meet a great woman who you want to love you and not lose interest in you as your relationship develops and evolves.
<<<
http://www.practicalhappiness.com/why-being-too-nice-not-sexy-and-attractive-women/
The MediaWiki is famous because of [[Wikipedia]].
I tried to create my own instance and it's buried in a mac mini I donated to our star member of our DanceChalat community - it was the beginnings of using a wiki for SelfDocumentation and managing a FranklinCoveyCompass and the roles I take on in my life.
I never had a plan to keep this server up so thus, it's not online.
that's when I developed an affinity for [[Wikispaces]]
for those of you who never leave any stone unturned - here's your GoldenEgg for today ;-)
http://goo.gl/GQ9gq
to be fair, T-Mobile said they would waive EarlyTerminationFees when we can prove that we've moved to [[Thailand]]
Now given I feel [[Thailand]] is still [[Home]] for me - it might soon be time to declare this :)
I am enjoying LosAngeles more & more each day that goes by... there is something about this place I can't quite but my tongue on and save this conversation for another RainyDay!
I feel really blessed to live a life of discovery and never realized one access to this life is to partner with a [[ Squanderer]] - one begins to discover who's living on the edge?
* restaurants like GreensUp! that set up their operations to provide high quality food, OnlineOrdering for pickup, and delivery options
* uses for an abundance of iPhones - a glimpse into the reality of roaming documentary teams and practical during AutobiographyEngineering - who would have ever known?!?
I often run TechExperiments so I can experience anything and everything that could possibly go wrong. These insights are shared with my DanceLabs community, a safe space for me to experience [[Failure]]. I then in turn share these experiences as a [[Consultant]] for TeamMinutemen which in turn is shared as a [[TechnologyAdvisor]] for the [[SquidAndSquashFoundation]]
I haven't formalized this process by any means and sometimes BleedingEdge technologies do fall through the cracks. [[Sandboxing]] is great in principle and cannot bound sheer [[Excitement]] that makes it to the [[Forefront]] people notice!
I take full [[Responsibility]] over my TechnologyExplorations and long-term, I look forward to having the resources to sustain myself in the [[Cloud]] (kinda sounds like RayKurzweil huh?)
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>This Space</title>
<link href="/bags/common/tiddlers/profile.css" type='text/css' rel='stylesheet' >
<link href="/bags/common/tiddlers/admin.css" type='text/css' rel='stylesheet' >
<!--[if lte IE 8]>
<script type="text/javascript" src="/bags/common/tiddlers/json2.js"></script>
<script type="text/javascript" src="/bags/common/tiddlers/es5-shim.min.js"></script>
<![endif]-->
</head>
<body>
<div id="container">
<div id="text-html" class="main section">
<a class="app" href="/">home</a>
<div class="left">
<h2>About this space <button class='toggleNext'></button></h2>
<div id="siteinfo"></div>
<h2>Site Icon</h2>
<div>
<img id="siteicon" class="siteicon">
<form id="upload" method="POST" enctype="multipart/form-data">
<input type="hidden" name="title" value="SiteIcon" />
<input type="hidden" name="tags" value="excludeLists">
<input type="hidden" name="csrf_token" class="csrf" />
<input type="file" name="file" accept="image/*" />
<input class="btn" type="submit" value="upload" />
</form>
<div id="dropzone">Drop file here
<img class="notloading" src="/bags/common/tiddlers/ajax-loader.gif" alt="submitting SiteIcon" />
</div>
</div>
<h2>Vital Statistics</h2>
<div id="info">please wait while information is loaded about this space...</div>
<button class="spacereset">Reset Space</button>
<div class="reset-confirm-wrap messageArea">
<button class="close-btn" title="cancel reset">×</button>
<p>Are you sure you want to reset the space? You can't go back! This will remove all the content from the space!</p>
<form class="cf">
<label for="reset-confirm">Enter the space name to confirm.</label>
<input type="text" name="reset-confirm" class="reset-confirm-input inputBox" />
<button type="submit">Reset Now</button>
</form>
<div class="reset-message-area">
<p class="performing">Resetting...</p>
<p class="finished">Reset Done!</p>
<p class="recipe-error-msg">Error removing includes. Please remove manually.</p>
</div>
</div>
</div>
<div class="right">
<div class="ts-membership">
<h2>
Add Member
<a href="http://docs.tiddlyspace.com/What%20is%20a%20member%3F" title="What is a Member?" class="help">What is a Member?</a>
</h2>
<div>
<p>Add a new member to your space by entering their name below. Enter a space name instead and prefix with @ to add everyone who is already a member of that space.</p>
<form class="ts-members">
<input class="inputBox" type="text" name="username">
<input type="submit" value="Add Member" class="btn" />
</form>
</div>
<h2>
Existing Members <button class='toggleNext'></button>
</h2>
<div>
Your space currently has the following members:
<ul class="ts-members"></ul>
</div>
<h2>
Include Space
<a class="help" href="http://docs.tiddlyspace.com/What%20is%20space%20inclusion%3F" title="What is inclusion?">What is Inclusion?</a>
</h2>
<form class="ts-includes">
<input class="inputBox" type="text" name="spacename">
<input type="submit" value="Include Space" class="btn" />
</form>
</div>
<div>
<h2>Included Spaces <button class='toggleNext'></button></h2>
<div>
This space includes the following spaces:
<ul class="ts-includes"></ul>
</div>
</div>
</div>
<div class="clear"></div>
</div>
</div>
<script src='/bags/common/tiddlers/backstage.js'></script>
<script src='/bags/common/tiddlers/jquery.js'></script>
<script src='/bags/tiddlyspace/tiddlers/chrjs'></script>
<script src='/bags/common/tiddlers/chrjs.space'></script>
<script src='/bags/common/tiddlers/chrjs.users'></script>
<script src='/bags/common/tiddlers/chrjs.identities'></script>
<script src='/bags/tiddlyspace/tiddlers/TiddlySpaceCSRF'></script>
<script src='/bags/common/tiddlers/jquery-form.js'></script>
<script src="/bags/common/tiddlers/siteiconupload.js"></script>
<script src="/bags/common/tiddlers/ts.js"></script>
<script src="/status.js"></script>
<script src="/bags/common/tiddlers/space.js"></script>
</body>
</html>
since committing to a TrueNorthHealthDiet, I've been building BigAssSalads from scratch :)
! current
# RainbowKale
# WasabiArugula
# BabySpinach *
# Cucumbers
# CherryTomatoes *
# WhiteMushrooms
# Avocado *
# RedOnions *
# Carrots * (steamed!)
# Celery *
# SugarSnapPeas
# BlackBeans *
# Edamame
# WalnutPieces *
# Pepitas
# SunflowerSeeds *
# RoastedButternutSquashSeeds
# BlackSesameSeeds
# AppleMustardDressing
# MangoGingerDressing
# CrackedPepper (*)
# GrapefruitSlices
# Mango
# DriedCranberries *
# BalsamicVinegar *
# CloverSprouts
# SundriedTomatoes *
# SlicedTomatoes *
# SnippedBasil
# BellPeppers *
# CloverSprouts
# FlaxSeeds *
# GoldenRaisins *
# BlackRaisins *
# SteamedBeets *
# AlmondSlivers *
# SlicedDates *
# SteamedCauliflower *
! in the pipe
# GarbonzoBeans
# BrusselSprouts
# Cilantro
# Quinoa
# Blueberries
# OrangeWedges
# Yam
# Zucchini
# SweetPotato
# Tofu
# [[Tempeh]]
! for expansion
# Peas
# Radishes
# CutCorn
# Broccoli
# AppleSlices
# BeanSprouts
# Asparagus
# ArtichokeHearts
# UnsaltedOlives
# SeedlessGrapes
# GreenBeans
# Jicama
# KaleNoodles
# Taro
# PineNuts
# PickledOnions
# Watercress
# AvocadoCornDressing
! off PlantBasedDiet
# GarlicCroutons *
# RoastedTurkey
# GoatCheese
(function() {
var getCSRFToken = function(window) {
// XXX: should not use RegEx - cf.
// http://www.quirksmode.org/js/cookies.html
// https://github.com/TiddlySpace/tiddlyspace/commit/5f4adbe009ed4bda3ce39058a3fb07de1420358d
var regex = /^(?:.*; )?csrf_token=([^(;|$)]*)(?:;|$)/;
var match = regex.exec(document.cookie);
var csrf_token = null;
if (match && (match.length === 2)) {
csrf_token = match[1];
}
return csrf_token;
};
if (typeof config !== 'undefined' && config.extensions &&
config.extensions.tiddlyspace &&
config.extensions.tiddlyspace.getCSRFToken === null) {
config.extensions.tiddlyspace.getCSRFToken = getCSRFToken;
} else {
window.getCSRFToken = getCSRFToken;
}
})(window);
after helping my dad put his first album together of his trip to [[Thailand]] using [[iPhoto]], I went on a mission to figure out how to get his album to slideshow on the LivingRoom TV without resorting to MobileMe which is on its way out.
[[fbTV]] looked like an awesome way to AirPlay Facebook photos & got nixed due to ReverseEngineering the [[AppleTV]] API.
I played around with [[Boxee]] for awhile and [[XBMC]] is the winner -it has an overall more polished interface and pleased to see the OpenSource contender it is compared to FrontRow (which is only part of [[MacOSX]])
so now I've found myself in the wide world of StateOfAffairs with the MediaServer and find it quite fascinating to say the least!
Our community values creative cooperation and collaboration. We strive to produce, promote and protect social networks, public spaces, works of art, and methods of communication that support such interaction.
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title>Chinarut - still out to dry...</title>
<style>
body {
margin: 0;
padding: 0;
font-family: "Helvetica", Arial;
}
#header {
background-color: #EF9224;
border-bottom: 40px solid #17468B;
color: #fff;
height: 56px;
margin: 0;
padding: 0;
}
#container {
width: 80%;
margin: 0 auto;
}
p {
margin: 2em 0;
}
</style>
</head>
<body>
<div id="header">
<h1>Still hanging out to dry...</h1>
<a href="http://chinarut.com"><img src="SiteIcon"/></a>
</div>
<div id="container">
<p>
You may notice this page does not have the usual TiddlySpace look and is rendered completely in HTML - this is what's possible with a TiddlyWeb server.<br><br>
I do need to learn enough of a server side language for this to be rendered dynamically, complete with hyperlinks back into my space.<br><br>
Where I'm going with this is a LifeUpdate page that is ongoingly updating with content from both my TiddlySpace and perhaps all over the web.<br><br>
I'm very thankful for having seen this example!<br><br>
<a href="http://wc.tiddlyspace.com/form" target="_blank">http://wc.tiddlyspace.com/form</a>
</p>
</div>
</body>
</html>
happy FullMoon!
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/Ejho40tcTsY" frameborder="0" allowfullscreen></iframe>
</html>
i'm clear it's in me - it oversees DanceLabs with [[Passion]]!!!
[[LinkedIn founder Reid Hoffman's 10 rules of entrepreneurship|http://goo.gl/TJTPY]]
/***
!Description
Updates the html serialization in TiddlySpace to provide routes to the takenote tool
***/
$(document).ready(function() {
var place = $("#container").length > 0 ? $("#container")[0] : document.body;
var space = window.location.host.split(".")[0]
var bag = $(".bag").first().text() || space + "_public";
var title = $("#title").text();
// add edit link to notabene
$.ajax({ url: "/spaces/" + space + "/members",
success: function(r) {
var isTiddler = $(".tiddler").length > 0;
if(r) {
if(bag == space + "_public") {
if(isTiddler) {
$("<a id='editLink' />").attr("href", "/takenote#!/quickedit/tiddler/" + encodeURIComponent(title)).
text("edit note").prependTo(place);
} else { // when viewing a collection add link to create new note in collection
$("<a id='editLink' />").attr("href", "/takenote").
text("take note").prependTo(place);
}
} else if(bag == space + "_private") {
if(isTiddler) {
$("<a id='editLink' />").attr("href", "/takenote#!/quickedit/bags/" + bag + "/tiddler/" + title).
text("edit note").prependTo(place);
}
}
if($("#backstage").length === 0) {
$(['<ul id="backstage">',
'<li><a href="/dashboard">dashboard</a></li><li><a href="/takenote">takenote</a></li>',
'</ul>'].join("")).prependTo(document.body);
}
}
}
});
});
ok - i'm a mission to find a DataOnlySIM now that my DataOnlyMobileComputing experiment is in FullEffect.
I realize the only way I can get my iPhone on 3G is to use [[AT&T]].
<<tiddler GoPhone>>
<<tiddler NoContractPlan>>
while it might not look it - I'm a SecurityNut.
Just noticed [[myOpenID]] provides you the option to use CallVerify to login into your account - sweet - FinancialInstitutions should easily latch onto a system like this.
Anyone know what's stopping them?
Any holes in CallVerify I should know about?
okay - this is my first attempt at "replies" the TiddlySpace way! :)
First, thanks for creating a platform for TiddlyWiki that indeed unearths the obscurity of the TiddlyWiki platform and enables it to go mainstream! (see [[Who is the audience?]]@jermolene)
The transformation of a GTDTW into the DanceChalat TiddlySpace (@chalat) is testament to what's possible.
A possible next step is a prototype WorkshopDesignSoftware demonstrating the audience can expand to workshop leaders around the world seeking documentation experts with the best tools at hand to assist their mission in not only globalizing their efforts but also synthesizing their efforts with others as well.
I'm a bit biased and assert [[intentional dance communities|IntentionalDanceCommunity]] around the world is the most fun place to start and nothing like the UK to start a movement! ;-)
This is it - NowOrNever - either I will be successful posting an update to my TiddlySpace from bed from my iPhone using TWEdit or I won't. Assuming this works, I will no longer need to use LiveJournal & really be able to work CompletelyUnplugged and my only concern is AutoSave at the moment.
So I was able to sleep a bit over 7 hrs - I've been experimenting with all kinds of ways to improve the quality of my sleep (here comes ListMaker in me...)
# EarthingPad - SleepingGrounded
# SleepingEarly
# WindingDownEarly
# SleepingMask
# SleepCycle - MonitoringSleep
# Solitude
# EatingRegularly - 8:30,12,5
# AmericanGinseng (NotIntegrated)
# TrueNorthDiet
# Unplugging
# ReducingEMFExposure
# Melatonin (past)
# Abstinence
What arises while creating the list above is using TiddlyWiki as a way to dynamically produce lists depending on their status (active (integrated, integrating), past) - a new possibility for GoogleHealth arises....ideas ideas ideas...
Hunting for applications for TiddlySpace - wanting to discover the KillerApplication as it relates to what I'm dealing with: Wellness, CurriculumDesign, EmpoweringParticipants
Oh I'm in my head :/
So I had an interesting DreamSequence in that I was being SuperHuman and my support structures, being ChickenSpitWire just cracked and a future of BeingFired was looming - nothing I could do and when I woke up there was a sadness & realization I sometimes feel rather resigned when it comes to putting my heart into being of service - scared all the work I do will be a waste of time :/
I didnt know Lily had a breakthrough in giving up managing her WellBeing as a leader through StructuralConnections. Seems like a paradox, not willing to do more CourseWork and wanting to experiment with ''not'' putting things on my calendar & counting on myself to manage my own existence between now and CGT2012 - this becomes clear as I realize setting aside time to assist with WisdomWeekend2 - just feel OnMyEdge but also happy I have an opportunity to StressTest & see what's there. I have no regrets - what I'm learning about the impact of not clarifying my role on a team and realizing I don't get situations where things get thrown at me & seek out the support of others who are accountable. It's not my job to fill in the gap. It provides some insight into why I feel resentful & unacknowledged at times.
So now what?
Im glad I took 15-20 min to invite HealthPractitioners and classmates from my SamChristensen ImageWorkshop. While there are times I hate speaking to voicemail - I do like the fact it is predictable I get the opportunity to practice TwoMinutesOrLess.
I can see myself having a lot of fun capturing my UniverseOfUnderstanding!
One open is automating the process of WikiAssembly from nothing - akin to the BuildProcess in SoftwareDevelopment.
So what do you love about your life?
ReplyToThisTiddler (insert screenshot) & share w YourCommunity!
TopDownDesign!
Share TimelineKnitting w Lawrence
Fun fun fun... *sigh*
I'm hungry before 6!
/***
|''Name:''|TiddlySpaceIntraSpaceInclusion|
|''Description:''|Provides support for {{{<<tiddler Foo@bar>>}}} and {{{<<tiddler [[Foo]]@bar>>}}}|
|''Author:''|Jon Robson|
|''Source:''|https://github.com/jdlrobson/TiddlyWikiPlugins/raw/master/plugins/TiddlySpaceIntraSpaceInclusion/TiddlySpaceIntraSpaceInclusion.js|
|''Version:''|0.3.8a|
|''License:''|[[BSD License|http://www.opensource.org/licenses/bsd-license.php]] |
|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev |
|''~CoreVersion:''|2.4|
***/
//{{{
(function() {
var _tidtext = TiddlyWiki.prototype.getTiddlerText;
var cache = {};
// allmost the same regExp as in TiddlySpaceLinkPlugin but .. no "mg" parameter, because it didn't work for this usecase.
config.textPrimitives.spacenameLinkRegExp = new RegExp(config.textPrimitives.unWikiLink +
"?(" + config.textPrimitives.bareTiddlerLetter + "*)@(" + config.textPrimitives.spaceName + ")", "");
config.textPrimitives.tiddlyLinkSpacenameLinkRegExp = new RegExp("\\[\\[(.*?)(?:\\|(.*?))?\\]\\]@(" + config.textPrimitives.spaceName + ")", "");
TiddlyWiki.prototype.getTiddlerText = function(title, defaultText) {
var ct = config.textPrimitives;
var match = ct.spacenameLinkRegExp.exec(title); // foo@bar
var match2 = ct.tiddlyLinkSpacenameLinkRegExp.exec(title); // [[foo]]@bar
if(match || match2) {
// console.log('inner: ', 'spacename: ', match, 'tiddlyLink: ', match2, 'place: ');
var tidtitle, space;
if(match[1] && match.length === 3) {
tidtitle = match[1];
space = match[2];
} else if(match2 && match2.length === 4) {
tidtitle = match2[1];
space = match2[3];
}
var newtitle = tidtitle + "@" + space;
if(tidtitle && space) {
title = newtitle;
}
if(tidtitle && space && !store.getTiddler(newtitle)) {
var tiddler = new Tiddler(title);
// get the tiddler, where the macro is rendered. //XXX will need more testing
var el = story.findContainingTiddler(place);
var refreshTitle = (el) ? el.getAttribute('tiddler') : null;
tiddler.text = "//retrieving from server//";
tiddler.fields.doNotSave = "true";
tiddler.tags = ["excludeLists", "excludeSearch", "excludeMissing"];
merge(tiddler.fields, config.defaultCustomFields);
tiddler.fields["server.bag"] = space + "_public";
tiddler = store.addTiddler(tiddler);
ajaxReq({ url: "/bags/" + space + "_public/tiddlers/" + tidtitle,
dataType: "json",
success: function(tid) {
var tiddler = store.getTiddler(title);
tiddler.text = tid.text;
store.addTiddler(tiddler);
// store.notify(title,true);
story.refreshTiddler(refreshTitle,null,true);
// story.refreshAllTiddlers(); // hacky but above link doesn't always seem to work!
},
error: function() {
var tiddler = store.getTiddler(title);
tiddler.text = "//error retrieving tiddler {{{" + title + "}}} from space @" + space + "//";
store.addTiddler(tiddler);
// store.notify(title,true);
story.refreshTiddler(refreshTitle,null,true);
// story.refreshAllTiddlers(); // hacky but above link doesn't always seem to work!
}
});
}
}
return _tidtext.apply(this, [title, defaultText]);
}
})();
//}}}
I guess [[Money]] is a very private conversation. If you're reading this - ThankYou for being someone I trust to be part of my InnerCircle.
I'm trippin right now because I realize I need a lot of resources (in particular, Apple technologies) to create the Enterprise DanceLabs is and at the same time support the TechnologyEvangelist I am at TeamMinutemen.
It's expensive to be OnTheEdge of Technology unless you're playing with things like TiddlySpace or even willing to explore what might be possible with SecondHandTechnology.
I've have [[Debt]] to take care of from [[Asia]] and it's not wise to purchase new [[Technology]] when what there is to do is leverage the [[Investment]] I've made already.
it's a bit of a [[Quandry]] - I'll sort this out and just wish I wasn't misunderstood.
Thanks for watching - I had absolutely no intention to make this public when I started and now just having fun with it - isn't this what life is about? =)
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/VVZpO61Q6Gc?list=PLlvJaa9mEJ-g0Gkq_IlgFH2u2JLRAmRBz" frameborder="0" allowfullscreen></iframe>
</html>
Pushing play above will autoplay the whole series or click on one of the topics below that interests you most:
welcome dude! so glad to see u here :) you've been added to @burningman - may our spirits fly! ^_^
think of TiddlySpace as an innovative way to share [[Culture]] as easy as you & I #include "stdlib.h" or maybe even #include <iostream> though admittedly I never did manage to become a hard core [[C++]] [[Hacker]]! ;-)
VideoCalls have been in [[Japan]] phones for quite some time, at a [[Premium]] - rightly so given how much bandwidth it takes to do it reliably.
<<<
"SIP video has been around for a long time, but there has never been a player big enough to set a standard for interoperability. Apple is doing that."
<<<
<<<
" it will take power away from the telcos, and enable a whole new breed of applications."
<<<
<<<
" they [Apple] have small market share in all their segments, are entering new markets, and have a history of creating new ones no one even saw coming."
<<<
http://www.businessinsider.com/facetime-apples-top-trendsetter-2010-11
be a groundhog
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/QWrFfKg5vxk" frameborder="0" allowfullscreen></iframe>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>TiddlySpace Apps</title>
<link rel="stylesheet" href="/bags/common/tiddlers/reset.css" />
<link rel="stylesheet" href="/bags/common/tiddlers/appspage.css" />
<!--[if lt IE 7 ]>
<link rel="stylesheet" href="/bags/common/tiddlers/appspageie6.css" />
<![endif]-->
</head>
<body>
<div id="wrapper">
<div id="TSbar"></div>
<div id="main-content">
<div id="space-details">
<a href="/_space"><img class="siteicon"></a>
<div id="title-subtitle">
<h1 class="spaceaddress">
<span class="spaceName"></span><span class="hostName"></span>
</h1>
<p class="tagline"><span class="subTitle"></span><a class="managespaces" href="/_space">manage space</a></p>
</div>
</div>
<div id="holder">
<div id="appswitcher-wrapper">
<div id="appswitcher">
<h2>Your Apps</h2>
<ul id="app-list">
<li class="htmlserialisation">
<a href="/tiddlers.html?select=tag:!excludeLists;sort=-modified">
<img src="/bags/common/tiddlers/browse_read_blue.png" alt="Icon for the HTML Serialisation" class="app-img" />
BROWSE
</a>
</li>
<li class="tiddlywiki">
<a href="/tiddlers.wiki">
<img src="/bags/common/tiddlers/tiddlywiki2_blue.png" alt="Icon for TiddlyWiki" class="app-img" />
TIDDLYWIKI
</a>
</li>
</ul>
<div id="addapp">
<button class="inactive">Add More!</button>
</div>
</div>
<div id="app-desc">
<ul>
<li class="htmlserialisationdesc"><p>an easy to understand HTML representation of your content.</p></li>
<li class="tiddlywikidesc"><p>use TiddlyWiki to create, edit and organise your content.</p></li>
</ul>
</div>
<div style="clear: both;"></div>
</div>
</div>
</div>
<div id="footer"><!-- ie doesn't support footer tag -->
<div id="footer-content">
<div class="links">
<a href="http://blog.tiddlyspace.com">blog</a>
<a href="http://featured.tiddlyspace.com">featured</a>
<a href="http://docs.tiddlyspace.com">documentation</a>
<a href="https://github.com/TiddlySpace/tiddlyspace">source</a>
</div>
<p>TiddlySpace 2011, created by <a href="http://osmosoft.com">Osmosoft</a></p>
</div>
</div>
</div>
<script type="text/javascript" src="/bags/common/tiddlers/backstage.js"></script>
<script type="text/javascript" src="/bags/common/tiddlers/jquery.js"></script>
<script type="text/javascript" src="/bags/tiddlyspace/tiddlers/chrjs"></script>
<script type="text/javascript" src="/bags/common/tiddlers/chrjs-store.js"></script>
<script type="text/javascript" src="/bags/common/tiddlers/jquery-json.js"></script>
<script type="text/javascript" src="/bags/common/tiddlers/appspage.js"></script>
</body>
</html>
a wiki is worth a million words - a TiddlyWiki a billion - a TiddlySpace a zilion - go @chalat! :)
a TiddlyWiki is one of the basic primitives that make up the "faces" of a TiddlySpace.
TiddlyWiki captured my fascination in 2005 and documented Dance ฉลาด (@chalat) in the Fall of 2006 while in [[Thailand]].
a dashboard example: http://director.dancelabs.com (not yet transitioned to TiddlySpace) - RoleDocumentation is an art I've been working on perfecting since 2001.
on p.199 of Curious? (by ToddKashdan):
<<<
"...people often avoid getting out on the DanceFloor, and if they do, they don't let it all hang out, they play it safe, snapping their fingers, softly clapping their hands, swinging their arms just a bit, moving their hips just a bit, nothing that might bring attention. The result? Challenges are kept to a minimum, lessening our chances for finding meaning."
<<<
this is a nice metaphor for what happens when you don't give it your 100% in real life!
got up at 6am to work on integrating [[TheMatrix]] with [[Reality]] (yes, this is what I named 2 of my servers, got a good kick outta it this morning...) It's nice to learn about these LightweightLinux distributions - esp those that run completely in RAM - [[Slax]] is one I found eons ago...looks like it's evolved quite a bit! a really sophisticated BuildSystem and OperatingSystemInYourPocket sounds great to the [[Dancer]] in me :)
ok - TinyCore is next up at bat...I'm going to get [[Reality]] to boot off an IDE drive god today god dammit! (can you tell I'm not wiling to give up?!?)
I have to get some large StorageCrates to [[Organize]] the place further!
----
//taking advantage of the dynamic ability to [[Refactor]] my journal in RealTime//
* [[JournalParser]]
started as a simple ReadingList and realize it's so much more. this list could easily expand to courses, products, anything that just yells Possibility and impacts people's lives...books and movies are very basic & universal...
this is a partial list - at some point, this list shall be automated!
!Books
# WholeNewMind
# TribalLeadership
# GoodToGreat
# OnlyLoveIsReal - Partnership
# [[Pull]]
# [[3LawsOfPerformance]]
# [[7HabitsOfHighlyEffectivePeople]]
See also GoodReads reviews
!Movies
# RunLolaRun - Partnership
# AConvenientTruth - Curitiba
# AdjustmentBureau - Partnership
# [[2DaysInParis]] - Partnership
# FinalFantasy - Triads
See also Netflix ratings
See also Flixster reviews
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="301 225 48 52"
width="30" height="30">
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
<g>
<path d="M 333.00003 234 L 306 258.75003 L 301.5 270 L 312.75 265.50003 L 339.75 240.74998 Z M 337.5 229.50002
L 335.24988 231.75008 L 341.99997 238.50003 L 344.24997 236.24995 Z M 342 225.00003 L 339.74988 227.25009
L 346.5 234.00005 L 348.75 231.75003 Z M 301.5 273.9719 C 301.5 273.9719 309.59888 277.99927 317.70013 273.97183
C 325.80066 269.94437 341.99997 276.65686 341.99997 276.65686 L 341.99997 273.97195
C 341.99997 273.97195 325.80014 267.2594 317.70013 271.28687 C 309.6 275.31451 301.5 271.28683 301.5 271.28683 Z"
fill="#101010" class="glyph"/>
</g>
</g>
</svg>
like this app's concept of UserContributed list templates!
as a TechnlogyAdvisor for the [[Squid&SquashFoundation]], the [[The ICT Pupils' Bill of Rights]]@howITworks really caught my attention and realize there are more great things happening in the world of education I'm not aware of!
if you are interested in [[Improving Digital Education]]@mattlucht
oh - I had a [[Vision]] that a JournalParser would dynamically update its [[Lexicon]] based on the frequency of words, phrases, [[Conversations]] written. its [[Heuristics]] are updated ongoingly being sure to reprocess [[PastConversations]]. It would take advantage of the CamelCase facility of TiddlyWiki to cross-reference pages and suggest terms (or [[Jargon]]) to define further. The TiddlySpace platform itself would enable participants to come together through its [[Discovery]] mechanism for those you follow.
<<tag year>> (click to see years chronicled)
//this is a placeholder. look forward to this Tiddler automatically rendering a GraphicalTimeline similar to [[Timeline of Web Browsers|http://en.wikipedia.org/wiki/Timeline_of_web_browsers]] or even the ambitious [[GNU/Linux distro timeline|http://upload.wikimedia.org/wikipedia/commons/8/8c/Gldt.svg]]
I am in love with how [[Aggregation]] works here in TiddlySpace!
Notice that the TabTimeline (on the right) is an aggregate of all the spaces I'm in.
I'm playing around with the "inclusion" of my [[Autobiography]] (@autobiography) and the [[Distinctions]] of the WidsomCourse (@wisdom) and of LandmarkEducation (@landmarkeducation) in a way that's organized and reusable by others.
I'm going with something really concrete to enlist graduates in playing this game too - I look forward to taking whatever [[Discoveries]] we make and bringing this [[Contribution]] to DanceLabs (@dancelabs) to keep moving DanceChalat (@chalat) forward!
allows you to take master checklists and "sleep" (or hide) items that might not be relevant to you. also supports HierarchialLists (think of Bonsai on my old [[PalmIIIxe]]!)
<html>
<iframe width="560" height="315" src="http://www.youtube.com/embed/f_hvRmEXEOA" frameborder="0" allowfullscreen></iframe>
</html>
Went to bed / woke up: 12:17 / 7:10
Total time: 6h 53m
Ok I’m up up I’m up!
This is the 2nd time I’m using the “alarm” function which picks a time inside a 30 min window before your target time to wake up.
I still wake up tired but I’m not really surprised:
- I went to bed past midnight (ideal REM sleep is inbetween 11PM-3AM)
- I feel much better when I don’t use an alarm clock in general which I’ve been practicing for quite some time – it is the notion of “meeting a schedule” and using a calendar in our modern world that “pressures” us to get up even when our bodies aren’t ready.
Though there really is no excuse for going to sleep late – to be 100% responsible for my experience waking up – i’ll forgive myself for what happened yesterday and recommit to get to sleep by 10 again!
Time for some fresh fruit & oats!
I definitely don’t like it when I have 30 min to get ready instead of an hr…
At least I got a SummerCut which makes my hair a ton more manageable in the morning.
Still questioning the use of a blogging platform such as WordPress as my thoughts in the morning are not as centered as “sharing about my sleep patterns” – there is quite a bit on my mind & one of the reasons I’m experimenting w TiddlySpace is to reveal different aspects the LateralThinker I am. There will be some CrossPosting but at the moment.
This is LifeOnTheEdge – things are seemingly half-baked and scattered & it’s ok – it’s the nature of a PrototypeInDevelopment – one that is out there in the limelight and not in the [[Cave]] of some [[Developer]]’s workspace on their computer!
Ok I’m officially rambling.
I put some organizing & planning forth (the TeamMinutemenWay) to ensure I’m ReadyForAnything today – I’m may not believe it but as they say, one is as ready as one will ever be!!!
I want more time to write – I love writing – [[Editing]] is not my forte and another reason to bring TiddlySpace into existence. The paint is never dry over there – it’s an interesting [[Paradigm]]!
In case you haven’t guesed – this experiment centers more around uses of TiddySpace than SleepCycle – im just looking for interesting, creative ways to share!
Have a GreatDay! (your final HomeworkAssignment
Analysis made by the Sleep Cycle iPhone app.
My sleep graph for the entire night:
[img[http://shivasleeps.files.wordpress.com/2011/06/sleepgraph3.jpg?w=280&h=201]]
oh - the elusive [[Search]] - a space [[Google]] has owned quite well.
just discovered this actually returns a TiddlyWiki as its result:
{{{
http://tiddlyspace.com/search.wiki?q=tag:%22$TAGNAME%22
}}}
[[try it|http://tiddlyspace.com/search.wiki?q=tag:%22Vision%22]] and look at the [[Timeline]] on the right of all tiddlers tagged [[Vision]] across *all* spaces (ie. not just mine)
goes to show TiddlyWiki can provide a form of StructuredPresentation
see SearchForVision for another example
Your CommunityLogo is placed at the footer and can be much larger
<<binaryUploadPublic title:CommunityLogo>>
!Phone
# ooVoo
!Social
# imo
# Gowalla
!Collaboration
# Truphone
# FuzeMeeting
# GoToMeeting
# TeamViewer
# textPlus
# TeamworkPM
!Docs
# SugarSync
# QuickofficeConnect
# PoppletLite
# iBrainstorm
# iDraft
!News
# TheDaily
everyone is looking for the HolyGrail to presenting our FloodOfNews...
!Productivity
# Roambi - DataVisualization, CorporateDashboard
!Checklist
# VisualTravelChecklist - icons
# VisualChecklist - red/green stoplights - a gimmick
# SimplyPack - has a sense of master checklist templates
# CampersList - distinguishes things you have (but not yet packed) vs things u "need" (built by a [[Burner]] :)
!Remotes
# Peel
!Media
# HuluPlus - have no desire for premium content AtTheMoment...
# YahooEntertainment - unfortunately, Y! is a dying breed...
!Games
# LilPirates
# FishSoccer
# RockBand (actually decent, just no reason to carry it)
!Eval
# MobileOrg - I love [[emacs]] but can't figure this one out - left to tinker another day...
# WisdomCourse
** [[Autobiography]]
** [[OriginatingCircle]]
while I haven't been a victim of an unreceived item from Amazon yet (knock on wood), this is what I would call a SketchySeller!
<<<
disappointed. seller marked item as shipped & gave an immediate refund w/o contacting me if I was willing to wait on backorder. Contacted seller multiple times and haven't gotten a straight answer as to why they gave a refund when the item continues to say "In Stock" Offered money to purchase multiple times & really left confused why they don't want to do business! sketchy.
<<<
http://goo.gl/WTPSm
inviting the community to manage and track change requests for just about anything they are up to using TiddlySpace.
TWEdit is one such example. if everyone were to create a TWEdit tiddler with their requested changes, everyone will be able to prioritize, manage and take responsibility over their own requests. the developer with their TWEdit tiddler shall be able to participate in the conversation around the app.
what I can see long term is a more sophisticated mechanism the developer can use to prioritize and attach state to individual requests like a traditional request management system.
the beauty of TiddlySpot is this can all happen collaboratively and elegantly through the structure of interconnected TiddlyWiki's - it will be an exercise to the developer to see how it scales from the other end - I myself will evaluate this method to manage the development of DanceChalat - so report back later ;-)
|~ViewToolbar|+editTiddler +cloneTiddler > fields refreshTiddler changeToPublic changeToPrivate revisions syncing permalink references jump closeOthers < closeTiddler|
|~EditToolbar|+saveTiddler saveDraft -cancelTiddler deleteTiddler|
|~RevisionToolbar|> fields revert|
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
ok - this is the first day I didn't get up and plug into TheMatrix :)
I slept quite well last night according to SleepCycle, an [[iPhone]] app I use to monitor how I'm sleeping.
I made a promise to complete a MorningLoveRitual 4 months ago one component of which, my GratitudePractice, I completed this morning in the mirror for the first time. I probably went way past 15 minutes and went through a slew of emotions without losing touch with myself and JustBeing.
I'm very grateful to have a place to myself for an extended period of time - I'm now discovering how great it is to hang out in the patio out back and just SoakInTheSun and get my VitaminD :) I'm realizing as I'm InTheField, subtleties I require in an EnvironmentDesignedForWellness
Decided to get high quality [[Organic]] herbs last night so I could give making VegetarianSpaghettiSauce another shot and see how much of a difference it might make. I think it tasted good before so my conclusion is I'm not convinced QualityHerbs make a difference quite yet - perhaps with time as I open up my tastebuds - I'm really clear when I have food that is salted to suit a TypicalAmericanDiet, my buds have been over-stimulated for decades!
So I'd love to be an on-site CommunityManger whose part-time job is to be a Housemaker :) I get to do my [[Research]] and CollaborateOnline in my free-time. I have financial responsibilities of course - enough to consider grounding myself here in LosAngeles, getting to know this city (and its people!) better, paying off all my debts and starting on a CleanSlate.
My primary goal is to solidify my WellnessPractice and have a StrongFoundation in place before taking "flight" again. In my world, if I can't get up and go to SantaMonica for the day and maintain 100% integrity to my wellness or spend a weekend assisting, I might as well stay put in WestLA and fill in the [[Gaps]]! I discover one or two everyday and plenty happy I'm not overwhelming myself!
Speaking of which, this is what I used to do - I used to have to handle so many different gaps in my life, I'd be [[Thrashing]] trying to fill them in all at once. This would be a very stressful process and as a result, gaps didn't get filled, I'd be exhausted, and rather resigned and not ever feel relaxed. I'm giving this up and CreatingSpace for MyselfAndMyLife.
ok - just decided to take a short break while reading the Journal for CGT2011. I'm committed to completing all the reading, focusing, and sharing all my thoughts (and [[Gratitude]]) all at once! Part of me wants to be in touch and declare this is what I'm up to and invite others to play this game too! the other side of me knows I get [[Hooked]] to OnlineSpaces and rather just let it be for now!
----
still dreaming my TiddlySpace projects itself into PersonalBrain... can't wait! ;-)
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/rkOSDDnJDO4" frameborder="0" allowfullscreen></iframe>
</html>
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/raiHO488wEo" frameborder="0" allowfullscreen></iframe>
</html>
Excellent Primetime report by PeterJennings called EcstasyRising
<html>
<embed id=VideoPlayback src=http://video.google.com/googleplayer.swf?docid=-1564288654365150131&hl=en&fs=true style=width:400px;height:326px allowFullScreen=true allowScriptAccess=always type=application/x-shockwave-flash> </embed>
</html>
!BeforeEngagement
# GetPresent
** get caught up in your SourceDomain (ie. review [[Newspapers]], [[NewsReader]], [[Twitter]], etc)
** get up-to-date with your OriginatingCircle (ie. [[Facebook]])
# review your [[Role]], [[Commitment]] to the [[Engagement]]
** review short-term vs long-term outcomes
# prepare an [[Agenda]] with a clear set of [[Outcomes]] and NextActions
** WeeklyReview (ala [[GTD]] and [[OmniFocus]])
** review BufferQueue (TadaList)
** be certain to distinguish outcomes that can be completed independently vs those that require ClientAttention
** also distinguish outcomes that require additional [[Resources]] esp TeamMembers
** explicitly declare [[Ownership]] of outcomes delegated and clear ByWhen these outcomes are to be complete
# confirm any appointments with ClientOriginatingCircle
# clear entire day from wake until sleep. be ReadyForAnything to happen.
# be WellRested. Eat meals OnTime. Be prepared to be [[Spontaneous]]
!AtEngagement
# discover [[Contribution]] distinct from your [[Agenda]]
# use [[TadaList]] to queue up discoveries - don't try to organize on the fly - use a simple list.
# go with the [[Flow]]
# be [[Social]]
# be [[Intentional]] - seek opportunities to complete [[Agenda]] items sometimes BetweenTheCracks
# request support for what you're up to whether it be WellBeing of your LifeMission
# cause [[Surprises]]
# reframe what is happening in your domain as WhatsPossible
I'm doing more InternetCleanup and getting really really dizzy...
!verified
# WordPress
# CoComment
# [[Disqus]] *
# TadaList *
# [[Wikispaces]] *
# [[Delicious]]
# [[Google+]] *
# [[Blogger]]
# MediaWiki
# TimeBridge
# WebBrain
# YouTube *
# GoogleDocs (was [[Writely]]) *
# [[Gravitar]]
# [[Twitter]] *
# LiveJournal
# [[Facebook]] *
# TiddlySpace
!dead
# GeoCities
# Yahoo360
# Onxiam - MigrationDataLoss - doh!
# OmidyarNetwork
it's a FullTimeJob to get through all these explorations...
! unverified
# DabbleDB
# [[iDisk]]
# [[IMDB]]
# PhotoBucket
# LinkedIn
# [[Listal]]
# [[Mind42]]
# [[Meetup]]
# [[Flixster]]
# PasteBin
# Furl
# DocStoc
# FourSquare
# Picassa
# TweetBurner
imagine what you might learn if you were to complete an [[Autobiography]] for yourself. Depending on how many years you've added to your life, you can imagine yourself getting in touch with friends and family just to get in touch with WhatHappened in your younger years not to mention get all those photos of yourself you've been missing!
LandmarkEducation invites you to use your [[Autobiography]] as a means for GrowthAndDevelopment.
----
<<tiddler Timeline>>
hmm - looks like unless you're eating Olives right off the tree like the RawGreek - [[Salt]] appears to be an essential part of the curing process for Olives
http://therawgreek.blogspot.com/2009/07/raw-unsalted-olives.html
these are the things I'm starting to notice when pulled away from home...
# FreshAir
# [[Ergonomics]] - esp WorkArea - chair, desk, etc.
# EarthingMat for ComputerWork (and while sleeping)
# WorkArea in the sun for VitaminD - ZenGarden...
# private WorkArea so I can [[Focus]]
# MacOSX with a RoamingProfile
# WiFi - debating its health
# MusicAndDance - blast it and just be! //(this is interesting in the fact that I want this freedom even when [[SilenceIsGolden]] and I have no intent to dance or move around..)//
# FreedomToBe - [[Talking]], [[Grieving]] - other areas to give myself space to sort things out on my own... //(guess I'm discovering I'm a more [[private person|Privacy]] than I thought...)//
# CookingArea supporting a TrueNorthHealthDiet
# InvitingGuests
# StableClimate - working on this one! (not 100% WestLA)
# OrganicGrocer - co-op is best - SantaMonicaCoOp rocks!
# GroupYoga
# FreedomToCommunicate - even with self :) don't feel I'm disturbing others...
# FreedomToWakeup - just get up and start my day independent of others!
# FreedomToShop - online a la [[Amazon]], InTheField, anywhere! now I really believe in a GiftEconomy...
# WorkAtHome - thus HomeOffice is born!
# FreedomToCommune - thus a CommunityHouse is also born!
# FreedomToTravel - [[Thailand]] is well suited for this esp in-country!
# FreedomToExplore - wow - lots of freedoms here :)
# FreedomToHost - CouchSurfing comes to mind and so does that CommunityHouse...
# PublicLibrary - always grateful of the SantaMonicaPublicLibrary!
# FreedomToDress - I'm not one for [[Fashion]] but perhaps I'll turn a leaf quite soon living in LosAngeles!
# CommunitySunday - an area outside the HomeOffice and CommunityHouse is always nice...
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
my stake in [[GTD]] dovetails MissionControl and LandmarkEducation's CommunicationCurriculum
http://goo.gl/kiUIY
throw in a dash of [[Technology]] and being a DanceInnovator and I think you get closer to WhatICareAbout :)
http://director.dancelabs.com
I've pretty much written off BluetoothHeadsets - having a thing sticking out of your ear isn't exactly the most stylish of fashions not to mention it's just another device to maintain, keep charged, find adaptors, etc. there is an elegance to Apple's 30-pin connector.
in any case, the idea that you can put in your pocket:
# a decent sound system (DanceLikeNobodysWatching!)
# can be used for 10 hours (the magic number for the iPad!)
# deliver stereo music over bluetooth
# doubles as a handsfree SpeakerPhone for the car (bonus if you're borrowing, renting and/or do not own a car)
# I'm assuming great ConferenceCalls on the spot due to the Jawbone's excellent NoiseCancellation technology
# an upside of having a portable PA system - one that reuses the iPhone in your pocket, headphones in your bag - we're talking WorkshopOnTheGo!
<<<
used to work at the Apple Store- hear you have good products - would really like to hear the difference between your Jawbox and Monster's $99 product.
if your team designed a "PA" app to use my iPhone/headsetmic paired with your JAWBOX as a portable PA system - i'd buy your product in an instant. it's all in the software :)
<<<
Click the "new tiddler" button towards the top right of the screen to write something in your space. You'll need to give it a title, some content and, optionally, some tags that will help you identify it later.
!Stuck for ideas?
Not sure what to write about? Not sure what to keep in your space? Other people use ~TiddlySpace for almost anything. How about some of the following:
* [[Save interesting sites|http://bookmarks.tiddlyspace.com]], images or articles from around the web so that you can refer back to them.
* [[Record your family tree|http://familytree.tiddlyspace.com]], store notes on long lost relatives or ancestors and map their relationship to you.
* [[Make up a pocketbook|http://pocketbook.tiddlyspace.com]] to store some useful information in, then print it out, [[fold it up|http://www.pocketmod.com/]], and take it with you.
* [[Plan your holiday|http://the-web-is-your-oyster.tiddlyspace.com/]], record where you're planning to go, note down places of interest and refer back to it later.
* [[Create a mindmap|http://mindmaps.tiddlyspace.com/]] to visualise your inner thoughts and see how they relate to each other.
* [[Set up a questionnaire|http://questionnaire.tiddlyspace.com/]] and get all your friends to answer it.
If you don't like any of those ideas, you can still use this space directly to keep notes and link them together, make a todo list and keep track of everything you're doing, or any one of a hundred million other things.
Still stuck? Check out the @featured space for more suggestions.
You can also [[socialise with others|How to socialise]].
I just had a harrowing experience with Amazon CustomerService - something that made me wonder if it was truly worth my time.
I decided to persist (as I often do in life) and got things resolved. I hope to dear god Amazon management reads his letter some way some how - I hope they don't take it too personally - i see i probably could have fluffed it up a bit more and acknowledged them for what they do do correctly in the opening paragraph! oh well - LiveAndLearn!
<<<
while not the representative's fault - i got disconnected the first time & did not call back. the 2nd representative failed to understand that I had a free trial that was registered but went unused.
the feedback I gave the supervisor is there is a circumstance where the authorization for the free trial fails to go through and your system is marked as "the trial offer already being used"
what was finally discovered after about 45 minutes is that just clearing the status and resigning up for Amazon Prime enables the free trial to reinstate itself.
at the end of day, i felt quite frustrated and misunderstood and glad the supervisor was kind & friendly and willing to work through the experience.
I request that when Amazon sees a highly rated customer, someone who has been consistently buying products for over 6 months is interested in an AmazonPrime customer - that you see the upside in dong whatever it takes to give this person a free trial - esp when the customer states he has never gotten a trial!
I had a rating of 9 or 10 for Amazon before today and this experience of having to fight what I'm entitled to drops Amazon to at least a 7 or 8.
This comes right after going to the AppleStore, being told AppleCare doesn't cover dropped iPads, what they usually charge for the repair, and that they will replace it as a courtesy [imagine the shock!]
While I'm not expecting this kind of treatment from Amazon, I think you have a lot to learn from [[Apple]].
<<<
/***
|''Name''|TiddlySpaceViewTypes|
|''Version''|0.6.0|
|''Status''|@@beta@@|
|''Description''|Provides TiddlySpace specific view types|
|''Author''|Jon Robson|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceViewTypes.js|
|''Requires''|TiddlySpaceConfig TiddlySpaceTiddlerIconsPlugin|
!Usage
Provides replyLink, spaceLink and SiteIcon view types.
!!SiteIcon view parameters
* labelPrefix / labelSuffix : prefix or suffix the label with additional text. eg. labelPrefix:'modified by '
* spaceLink: if set to "yes" will make any avatars link to the corresponding space. {{{<<originMacro spaceLink:yes>>}}}
!Code
***/
//{{{
(function($) {
var tiddlyspace = config.extensions.tiddlyspace;
var originMacro = config.macros.tiddlerOrigin;
var tweb = config.extensions.tiddlyweb;
config.macros.view.replyLink = {
locale: {
label: "Reply to this tiddler"
}
};
var _replyButtons = [];
var _replyInitialised, _replyScriptLoaded;
config.macros.view.views.replyLink = function(value, place, params, wikifier,
paramString, tiddler) {
var valueField = params[0];
var imported;
if(valueField == "title") { // special casing for imported tiddlers
var localTitle = tiddler.title;
var serverTitle = tiddler.fields["server.title"];
if(serverTitle && localTitle != serverTitle) {
value = serverTitle ? serverTitle : localTitle;
imported = true;
}
} else {
title = tiddler[valueField] ? tiddler[valueField] : tiddler.fields[valueField];
}
var args = paramString.parseParams("anon")[0];
var label = (args.label) ? args.label : config.macros.view.replyLink.locale.label;
var space;
if(tiddler) {
var bag = tiddler.fields["server.bag"];
space = tiddlyspace.resolveSpaceName(bag);
}
var container = $('<span class="replyLink" />').appendTo(place)[0];
tweb.getUserInfo(function(user) {
if ((!user.anon) && ((space && user.name != space &&
user.name != tiddlyspace.currentSpace.name) || imported)) {
var link = $("<a />")
.text(config.macros.view.replyLink.locale.label)
.appendTo(container)[0];
if(typeof(createReplyButton) === "undefined") {
_replyButtons.push(link);
}
if(_replyInitialised) {
createReplyButton(link);
} else if(!_replyScriptLoaded) {
_replyScriptLoaded = true;
$.getScript("/bags/common/tiddlers/_reply-button.js",
function() {
_replyInitialised = true;
for(var i = 0; i < _replyButtons.length; i++) {
createReplyButton(_replyButtons[i]);
}
_replyButtons = [];
});
}
}
});
};
config.macros.view.views.spaceLink = function(value, place, params, wikifier,
paramString, tiddler) {
var spaceName = tiddlyspace.resolveSpaceName(value);
var isBag = params[0] == "server.bag" && value === spaceName ? true : false;
var args = paramString.parseParams("anon")[0];
var titleField = args.anon[2];
var labelField = args.labelField ? args.labelField[0] : false;
var label;
if(labelField) {
label = tiddler[labelField] ? tiddler[labelField] : tiddler.fields[labelField];
} else {
label = args.label ? args.label[0] : false;
}
var title = tiddler[titleField] ? tiddler[titleField] : tiddler.fields[titleField];
var link = createSpaceLink(place, spaceName, title, label, isBag);
if(args.external && args.external[0] == "no") {
$(link).click(function(ev) {
var el = $(ev.target);
var title = el.attr("tiddler");
var bag = el.attr("bag");
var space = el.attr("tiddlyspace");
bag = space ? space + "_public" : bag;
if(title && bag) {
ev.preventDefault();
tiddlyspace.displayServerTiddler(el[0], title,
"bags/" + bag);
}
return false;
});
}
};
config.macros.view.views.SiteIcon = function(value, place, params, wikifier,
paramString, tiddler) {
var options = originMacro.getOptions(paramString);
if(!tiddler || value == "None") { // some core tiddlers lack modifier
value = false;
}
var field = params[0];
if(field == "server.bag") {
options.notSpace = !originMacro._isSpace(value);
}
tiddlyspace.renderAvatar(place, value, options);
};
})(jQuery);
//}}}
The ability to easily CrossReference content in other wikis.
[[Wikispaces]] did a great job at this and now with the advent of TiddlySpace, this functionality has been brought to what was once the TiddlyWiki
Think it's fair to say waking up to my [[Love]] called [[Technology]] and plugging right into TheMatrix (even if [[Bootstrapping]] [[Unplugged]]) isn't really the best way to start the day...I tend to find myself impatient wanting updates/changes to happen in an instant.
I was a bit disappointed TWEdit doesn't open on Burnie, my classic [[iPhone]] running iOS3 - this app is not overly complex (in fact it's damn simple) so I can see future backwards compatibility for maximum adoption & do what OpenSource does well, ReuseRecycle!
What's great about the tiddler include macro is I'm able to return to my JournalEntries & refactor later - it's fair with my LateralThinking, each paragraph is a very distinct set of thoughts, a "tweet" in itself if I were a MadTwitterer (hmm... ;-)
I'm excited about the ability for TiddlySpace to help one manage the [[100Roles]] games - a [[Game]] I started playing while browsing GettingUnstuck in [[Thailand]] - I've just taken it to the extreme by literally being a [[Handyman]] or modern day ReneissanceMan with a goal to create the [[Results]] of 100 distinct roles in my life in such a way I am desired, demanded in that role!
Now I didn't expect someone to ack me for being a good [[Escort]] and offer to connect me to someone who sets gigs up - I'm not offended ;-)
So I'm starting to see it, TiddlySpace has the opportunity to be the next MicroBlogging platform that allows you to back edit your updates. Why you ask? Because thoughts are not permanent. What you said in the past has the opportunity to get synthesized, rearranged, clarified, repurposed - thoughts are not persistent like objects! This is a conversation from WisdomWeekend2 - ConversationsDisappear.
As the CourseDesigner of the WisdomCourse defines distinctions in the @wisdom area - you'll see the associated links to that space/domain come to life - that is the magic of TiddlySpace!
So I went to my friend's completion of the review of his AdvancedCourse - going to LandmarkEducation whether it's as a participant, assisting, whatever, always stirs up my life a bit! By this I mean I get to share my life and see what sticks and doesnt stick. I get to see where im listening and where I'm not. I get to see where I'm moving (in life) and where I'm not
I saw no relationship to what I'm creating around my WellBeing now and my plans to go to [[Thailand]] - one is not dependent on the other!
So the idea to go to Thailand in mid-July is sounding like a better idea... I don't feel there is much in the way - I can do everything I'm doing now, there. (well almost) - what I'm happy about is the opportunity to bring the groundedness I have right now to the picture - to experience the new life I created over there and see what happens. I'll get into detail about what some profound changes might look like over there and it's also important to go with an open mind.
Adventure to [[India]] - calling. Adventure to [[Finland]] - calling.
There is still [[Noise]] around where to go.
What there is to do is complete my [[Agenda]] for LosAngeles which is moving forward quite well - beyond what I expected (which is great!)
Coordinating time with others [[seems|Seeming]] like a pain in the ass. Im really grateful to @claudia who really with her full life - makes it easy & she feels like a partner. Just a short amount of time with her makes ya realize how awesome life is!
So as for today - be happy to ReverseEngineer the DogwoodWrap I had yesterday, postpone GroceryShopping til Fri, when I'm super clear what it is to restock the place, focus on cleaning up the house further (using the new StorageCrates and buying more if necessary)
I'm really happy with my experiment to reduce my footprint - I produced only one bin of [[Trash]] over the course of 5 weeks. I [[Recycled]] the rest (not only paper but also OldComputers!) I got pretty anal about [[Composting]] and look fwd to choosing a CompostBin that will work for the family.
I miss mom & dad - but it a different way now - last night, I was able to start appreciating the degree my parents (especially mom) is there for me - always wanting the best for me - sometimes giving herself up for me. To really appreciate UnconditionalLove - I think about how [[Thailand]] is home - and we're both on independent yet related journeys back there - and we all need some space to make that happen. It would be nice to give my folks space regardless of where I go - no?
About that idea of UrbanBackpacking in LosAngeles... how would I serve and what a great way to see how my community here will support me (current friends and new peeps on CouchSurfing) and most importantly, FieldTest my TravelConfo
iguration & what it takes to maintain a Mobile EnvironmentDesignedForWellness - a challenge worth taking on and being an expert in. I'd love to empower people to travel, live their dreams & take on components of the [[4HourWorkweek]] - I have until IndependenceDay to complete the work - yikes that's only like 2 weeks away... @unattached comes to mind....
Look fwd to prototyping @burningman & bringing it into being - TiddlySpace as a model for life - to bring what distinguishes your life - your distinctions , how your [[Universe]] is for you - you created your life - it looks how it looks. Bringing a space into your space is just like life - it's a balancing act if there are those actively creating that space - it's one of expansion if you're sourcing the space.
In the example of @burningman - one models the space after their [[10 Principles of Burning Man]] to share what's possible and let the community run with it - be responsible for [[Stewarding]] the space - be aware if there are others in the community who wish to create the space with you - don't give up on BeingInCommunication and be available and easy to find!
Much love to everyone who chooses to [[Play]] with us in this space - it's gonna be a fun ride!
Time to put my iPhone down / been writing FromBed for almost an hour! Whew.
I could keep writing too - so inspired by [[Breakthoughs]] I heard shared last night!
----
ok made it to my [[Desktop]] - having thoughts of creating a @clearcase or more abstractly a @changemanagement space... i'm attempting not to sprout too quickly, too often... should I be restraining myself in any way? this would be the opposite of play! shall I need be impacted by my experience sprouting domains - esp GoogleApps domains and/or EmailAddresses? Time to cook SteelCutOats :) [consider KeyDistinctions must be clear before a space can be declared - would explain why @teamminutemen is not crystal clear and @dancelabs is a bit open as ReverseEngineering@dancelabs is a rather broad space right now but admittedly defined :)]
----
consider RoleBased SpaceManagement - the return of the FranklinCoveyCompass TiddlySpace-style!
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="78 222 60 60"
width="30" height="30">
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
<g>
<path d="M 107.92718 244.14815 L 86.651474 222.89253 L 78.85206 230.69925 L 100.120415 251.9476 L 78.774 273.27396
L 86.57342 281.08075 L 107.927216 259.74707 L 129.39981 281.19946 L 137.19922 273.39267 L 115.73397 251.94763
L 137.121155 230.58054 L 129.32175 222.77374 Z" fill="black" class="glyph"/>
</g>
</g>
</svg>
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
/***
|''Name''|ToggleTiddlerPrivacyPlugin|
|''Version''|0.7.1|
|''Status''|@@beta@@|
|''Description''|Allows you to set the privacy of new tiddlers and external tiddlers within an EditTemplate, and allows you to set a default privacy setting|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlySpaceConfig|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/ToggleTiddlerPrivacyPlugin.js|
!Notes
When used in conjunction with TiddlySpaceTiddlerIconsPlugin changing the privacy setting will also interact with any privacy icons.
Currently use of
{{{<<setPrivacy defaultValue:public>>}}} is in conflict with {{{<<newTiddler fields:"server.workspace:x_private">>}}}
There is an option, found in the tweak tab of the backstage, called txtPrivacyMode. Set this to either ''public'' or ''private'' depending on your security preference. If you choose not to set it then it will default to ''public''.
!Params
defaultValue:[private|public]
Allows you to set the default privacy value (Default is private)
!Code
***/
//{{{
(function($) {
var tiddlyspace = config.extensions.tiddlyspace,
macro;
macro = config.macros.setPrivacy = {
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
if(readOnly) {
return;
}
var el = $(story.findContainingTiddler(place)),
args = paramString.parseParams("name",
null, true, false, true)[0],
container = $("<div />").
addClass("privacySettings").
appendTo(place)[0],
currentSpace = tiddlyspace.currentSpace.name,
currentBag = tiddler ? tiddler.fields["server.bag"] : false,
// XXX: is the following reliable?
isNewTiddler = el.hasClass("missing") || !currentBag,
tiddlerStatus = tiddlyspace.getTiddlerStatusType(tiddler),
customFields = el.attr("tiddlyfields"),
defaultValue = "public",
options = config.macros.tiddlerOrigin ?
config.macros.tiddlerOrigin.getOptions(paramString) :
{};
customFields = customFields ? customFields.decodeHashMap() : {};
if(isNewTiddler || !["public", "private", "unsyncedPrivate",
"unsyncedPublic"].contains(tiddlerStatus)) {
if(args.defaultValue) {
defaultValue = args.defaultValue[0].toLowerCase();
} else {
defaultValue = config.options.chkPrivateMode ?
"private" : "public";
}
defaultValue = defaultValue ?
"%0_%1".format(currentSpace, defaultValue) :
customFields["server.bag"];
this.createRoundel(container, tiddler, currentSpace,
defaultValue, options);
}
},
updateEditFields: function(tiddlerEl, bag) {
var saveBagField = $('[edit="server.bag"]', tiddlerEl),
saveWorkspaceField = $('[edit="server.workspace"]', tiddlerEl),
input = $("<input />").attr("type", "hidden"),
workspace = "bags/" + bag;
if(saveBagField.length === 0) {
input.clone().attr("edit", "server.bag").val(bag).
appendTo(tiddlerEl);
} else {
saveBagField.val(bag);
}
// reset to prevent side effects
$(tiddlerEl).attr("tiddlyFields", "");
if(saveWorkspaceField.length === 0) {
input.clone().attr("edit", "server.workspace").
val(workspace).appendTo(tiddlerEl);
} else {
saveWorkspaceField.val(workspace);
}
},
setBag: function(tiddlerEl, newBag, options) {
var bagStatus,
title = $(tiddlerEl).attr("tiddler"),
tiddler = store.getTiddler(title),
originButton = $(".originButton", tiddlerEl)[0],
refreshIcon,
newWorkspace = "bags/" + newBag,
rPrivate = $("input[type=radio].isPrivate", tiddlerEl),
rPublic = $("input[type=radio].isPublic", tiddlerEl);
refreshIcon = function(type) {
var originMacro = config.macros.tiddlerOrigin;
if(originButton && originMacro) {
options.noclick = true;
originMacro.showPrivacyRoundel(tiddler, type,
originButton, options);
}
};
macro.updateEditFields(tiddlerEl, newBag);
if(tiddler) {
tiddler.fields["server.bag"] = newBag;
// for external tiddlers
tiddler.fields["server.workspace"] = newWorkspace;
}
if(newBag.indexOf("_public") > -1) {
rPrivate.attr("checked", false);
rPublic.attr("checked", true);
bagStatus = "public";
} else {
rPublic.attr("checked", false); // explicitly do this for ie
rPrivate.attr("checked", true);
bagStatus = "private";
}
refreshIcon(bagStatus);
},
createRoundel: function(container, tiddler, currentSpace,
defaultValue, options) {
var privateBag = "%0_private".format(currentSpace),
publicBag = "%0_public".format(currentSpace),
rbtn = $("<input />").attr("type", "radio").
attr("name", tiddler.title),
el = story.findContainingTiddler(container);
rbtn.clone().val("private").addClass("isPrivate").
appendTo(container);
$("<label />").text("private").appendTo(container); // TODO: i18n
rbtn.clone().val("public").addClass("isPublic")
.appendTo(container);
$("<label />").text("public").appendTo(container); // TODO: i18n
$("[type=radio]", container).click(function(ev) {
var btn = $(ev.target);
tiddler.fields["server.page.revision"] = "false";
if(btn.hasClass("isPrivate")) { // private button clicked.
$(el).addClass("isPrivate").removeClass("isPublic");
macro.setBag(el, privateBag, options);
} else {
$(el).addClass("isPublic").removeClass("isPrivate");
macro.setBag(el, publicBag, options);
}
});
window.setTimeout(function() {
macro.setBag(el, defaultValue, options);
}, 100);
// annoyingly this is needed as customFields are added to end of EditTemplate so are not present yet
// and don't seem to respect any existing customFields.
}
};
}(jQuery));
//}}}
(if you need some VoIP context and background on my DataOnlyMobileComputing experiment)
SMSGVExtension is a great solution while overseas - it's utility will be immensely increased when GoogleVoice releases sending of InternationalTexts
PhoneGVExtension's utility is downgraded if one's goal is BestCallQuality and to avoid [[Jailbreaking]] so maximize AppleCare support
!alternatives
# single PointOfEntry - GVMobile+ DirectDialMode in the states and remember to toggle to OtherDialer to [[Talkatone]] when you're out of the country and using a LocalSIM
# double PointOfEntry - use StockGV while in the states and configure GVMobile+ to use OtherDialer using [[Talkatone]] out of the country
# enhanced double PointOfEntry - use GVMobile+ DirectDialMode in the states and use [[Talkatone]] when out of the country.
# MoneyIsNoObject - skip GoogleVoice and accept massive RoamingFees
Wikispaces is where my wiki fanaticism started!
http://chinarut.wikispaces.com - where I've put the most investment of my time and gets the most hits...
http://dancelabs.wikispaces.com - came to life by organizing [[event details|http://dancelabs.wikispaces.com/Pilot+Dancelabs+with+Kids]] and vision for DanceChalat!
spirit wants to fly!
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/vfYchcjNuIU" frameborder="0" allowfullscreen></iframe>
</html>
TWEdit is a wonderful app allowing up TiddlyWiki diehards to edit on our iOS devices - this assists greatly in moving forward a MobileComputing paradigm that is laptop-free.
I personally look forward to fully offline editing of this TiddlySpace on my iPad and integrating it back into the "main line" (server) when I get back from the field. I just love it that it works on my iPhone too!
however, there are some shortcomings and thus is born TiddlySpace-based ChangeManagement :)
REQUEST: full interaction with TiddlyWeb server from TWEdit client while connected to the Internet. no need to cache/download TiddlyWiki
REQUEST: ability to sync new tiddlers created on server
REQUEST: offline operation in AirplaneMode (try to privatize a tiddler and you will receive server error messages)
REQUEST: allow user to change network settings on iOS 4 and return to app (currently doesn't load swapped out state and all changes are lost)
REQUEST: cancel open URL (currently hangs if not a TiddlyWeb server)
REQUEST: option to disable iOS autocorrect of TiddlyNames (this may ultimately be a per-app iOS setting in the future)
I'm up at 5:30am...want to share about:
* PublicAuthenticity
* StructuredBlogging
* [[Intimacy]]
* DomesticDating
* @burningman
* @claudia
* [[Sleep]]
* TravelPlans
* [[London]]
* [[Teamwork]]
* BedProductivity
* AsynchronousCommunication
* InstantMessaging
* WhatIMiss
* AppStore
This entry is a NewExperiment - call it ExperimentOfTheDay if you will. An attempt to minimize the amount of chatter, rambling in the daily portion of my [[Journal]] or at least provide a summary of possible topics (any of which may defined at a later time by me, or others I have chosen to include in my space - TiddlySpace that is!)
Which bring about thoughts around what if ones PersonalSpace here on TiddlySpace were as structured as @howitworks to the point where one could declare SafeToInclude? I could play around with including @chinarut-claudia or any other partnership I wish to [[Model]] until a more formalized system arises.
I want to take time to ack @claudia for being a rockstar for creating @burningman together! she's the best - thru much persistence - I'm happy TiddlySpace has become a medium in which we can connect, see what's possible and learn & explore [[Geekdom]] together :) but seriously, we've discovered far reaching implications of what it is to manifest and bring our shared conversations around @wisdom and our @autobiography (ies) and just [[Play]] with it. Had no idea she was there from the start of SocialNetworking so it's really nice to share my insights around how transformational TiddlySpace can be with someone who listens very well!
* CompletingThePast
* [[Hypnotherapy]]
* ExecutingYourStrategy
* WorkAndPlay
* being a CommunityManager, the joy and pitfalls of [[Hosting]]
* CouchSurfing reference
Ok - not interested in TiddlyJumping (the process of multitasking in multiple [[Tiddlers]] at once. It's just not practical on an iPhone and my body is not ready (nor interested) in getting up & using the iMac right next to me. I suppose I have it that I [[should|Shoulds]] complete my MorningRoutine before plugging into TheMatrix or it will be one of those days I'm still in my PJs mid-afternoon! Nothing wrong - one of the things I'm up to is to create a regular routine in my life in general - something my dad has always wanted for me & since putting the [[40HourWorkweek]] behind me, it has taken approx 10 years to have any semblance of regularity & happy I've made significant [[Progress]]
So one idea is to either whittle this tiddler to [[Nothing]] by end of the day and/or sort any prose, loose thoughts into the list of tiddlers I started with.
Impressed TWEdit hasn't crashed (I don't think it has AutoSave in any way) KnockOnWood :)
I posted a 5-star review on TWEdit on the AppStore and it hasn't been posted & neither can I bring up my review for editing .. it creates [[Anxiety]] for me - I hate it when [[Technology]] doesn't work how I expect, want to be [[patient|Patience]], and LetItBe.
Knowing I can recreate anything , anytime, anywhere & having peace it's perfect even when a past creation felt like a PieceOfArt. This must be the experience of an [[Artist]] coming alive - to just get one creates [[Beauty]] at every moment and not be [[Attached]]
I get the impression having [[Prose]] around the [[Distinctions]] I'm sharing helps a lot / it creates context for anyone who is reading esp those who are [[Historians]] and enjoy getting to the [[Source]] to create their own perspective around WhatHappened
Speaking of which - much of my day yesterday consisted of:
* [[Writing]] - [[June 22, 2011]]
* FoodPreparation - SteelCutOats (30 min version), LunchSalad, GroceryShopping
* BathroomSanctuary
* TiddlySpace QuickStart & exploration
** co-creating @burningman the TiddlySpace way!
** prototyping @landmarkeducation - seeding the space so it reflects what matters to them.
* AcademicReading (offline) - CGT, USC, CMU - inspired to go to TED online and share on Facebook
* [[Housekeeping]]
* getting related w @claudia - just HangingOut, sharing ideas, dreams, challenges, [[Rackets]], inspiration, supporting each other where we can.
* TechSupport - MacBook [[Optimization]]
Ok this is when my iPhone feels heavy...
I may or may not be back on my desktop.
-
* our work is focused on the SocialDynamics, impact, and [[Application]] of dance to society balancing technological and non-technological ways
* dance has [[Tribal]] roots and a basic fabric to many of our everyday lives
** [[Weddings]]
** holidays and SpecialEvents
** SpeedDating //(emphasis on maintaining a ConnectionThread)//
*** we love ConnectingPeople fast
*** dance as a [[Pickup]] method
** DanceEvents
*** encourage people to be part of the [[Celebration]]. everyone is included
** ProfessionalNetworking
** ActivityGroups
*** DisposableIncome to try something new or different
** BarsAndClubs
* DanceLabs founded in the UnitedStates , piloted with children in [[Thailand]].
** we've inherited a global mindset of SiliconValley startups
** we appreciate the relaxed, healing, day-to-day [[SabaiSabai]] culture of Thailand
* a HybridOrganization
** ForProfit embracing [[Enterprise]] concepts for global viability and sustainability at the level of the [[Individual]]. does paid [[Research]], delivers on [[Patents]], has [[Products]] and [[ProfessionalServices]] to embrace the level of growth we aspire to.
*** we protect our work through [[Patents]] and we also share our work for non-profit use under the CreativeCommons
*** we have a hybrid [[ConsultantCoaching]] approach to assisting people and [[Organizations]]
** NotForProfit entity assisting UnderservedChildren including those who are not necessarily poor but live in environments that offer fewer opportunities.
*** we build a community of [[Volunteers]]
** we ultimately appeal to all audiences and serve people from all walks of life, of all ages at the end of the day.
* we align with TransformativeOrganizations
** BurningMan - art as a possibility. [[Community]] as a possibility. our vision lives here. radical self-expression.
** LandmarkEducation - living life right now, causing [[Leadership]]
** SterlingInstituteOfRelationship - [[Men]] being men, [[Women]] being women, men & women in [[Partnership]]
*** we confront GenderIssues
*** we stand for [[Co-creation]]
* we create a SafePlace for people to be and [[Explore]] themselves, their relations, and [[Connection]] to others
** physically - [[Yoga]] and [[QiGong]], [[Meditation]], basic stretching
** support - our facilitators are trained to relate to you as your potential.
** [[Play]] - we [[improvise|Improvisation]]. we teach you to deal with the [[Unexpected]]
* we support [[Governments]] to increase the [[QualityOfLife]] of cities around the world
** we have a short-term focus on [[Urban]], dense cities
** we appreciate world-class operational infrastructure of [[Tokyo]]
** we empower people to [[DoItYourself]] and facilitate their experiences in their respective cities
* we are [[Nomadic]] and [[Integrative]]. we learn to [[Receive]]
** we are a [[MobileOrganization]] - always on the move. we are sharing wherever we are. we play and [[Experiment]] with emerging technologies such as [[Google]]
*** we often eliminate boundaries between work & play - embrace being children again. life as a [[Vacation]]
*** conversely, we teach how to set [[Boundaries]] and deal with [[Intimacy]] issues and create [[Trust]] as a community
* we champion technology as a WayOfBeing. technology is a MeansToAnEnd for us
** allows us to be resource-friendly and have a commitment to our [[Environment]]
** we see SocialNetwork tools like [[Facebook]] as a place to [[Asynchronously]] share [[Wisdom]]
** we connect those [[Isolated]] and disassociated through technology thru grounded, [[FaceToFace]] interactions
*** we see dance as a [[Tool]]
** companies like [[Apple]] help us deliver OurMessage through all kinds of [[Media]] from [[Film]] and [[Books]] as a form of education and a means of inspiring people in our lives.
*** we also believe we share our message InTheMoment through who we are in life
*** we conduct PublicSpeaking engagements
* world-class [[Production]] standards. detail-oriented as [[Engineers]]. we are [[Impeccable]]
home of the EnvisionFestival
<<<
renting a three-bedroom house in the town of Magallenes de San Ramon while building their own home. Skip says that they do nicely on $2,000 a month and praises the "excellent and economical health care." Their one frustration? They didn't learn Spanish
<<<
AARP: http://goo.gl/wNYGm
LonelyPlanet: http://goo.gl/a1HiX
# Amazon
# Evernote
# GVMobile+
# iPrint
# iTubeList
# LiveJournal
# Remote
# SoundHound
# Twitter / Twitterriffic
# Wordpress
# Yelp
# 1Password
# AppleStore
# Bump
# Facebook
# Foursquare
# GasBag
# GoogleTVRemote
# Google+
# JAJAH
# redbox
# Speedtest.net
# last.fm
# Pandora
# SoundCloud
# Spotify
# VirginRadioTH
# THWrite
# TouchpadElite
# Dictionary.com
# RelaxWithAndrewJohnson
# Shazam
# Skype
# DragonDictation
# ColorEffects
# GoogleSearch
<<<
some of you probably aren't aware that simply holding down T when booting your mac turns it into a giant external disk - which means you can pull anything off it you want without a password. You may not even know that if you boot using the Reinstall DVDs, you can change the admin password! I raved about TimeMachine back when Apple released Leopard and I'll rave about FileVault in Lion - I think it's the one feature worth getting the upgrade for especially if you keep sensitive data on your laptop!
<<<
http://goo.gl/lfvYk
/***
|''Name''|ErrorHandlerPlugin|
|''Version''|0.4.3|
|''Author''|Jon Robson|
|''Description''|Localised tiddler save errors including edit conflict resolution.|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlySpaceConfig|
***/
//{{{
(function($) {
var tiddlyspace = config.extensions.tiddlyspace;
var currentSpace = tiddlyspace.currentSpace.name;
tiddlyspace.getLocalTitle = function(title, workspace, suffix) {
var endsWith = config.extensions.BinaryTiddlersPlugin.endsWith;
if(!suffix) {
var isPublic = endsWith(workspace, "_public");
suffix = tiddlyspace.resolveSpaceName(workspace);
if(currentSpace == suffix) {
suffix = isPublic ? "public" : "private";
} else {
suffix = "@%0".format(suffix);
}
}
return "%0 *(%1)*".format(title, suffix);
};
var sssp = config.extensions.ServerSideSavingPlugin;
var msgs = config.messages.editConflict = {
loading: "Loading..",
resolve: "[[Edit Conflict]]@glossary: this tiddler may have been changed by someone else.",
reviewDiff: "review (recommended)",
reviewDiffTooltip: "review changes made to this tiddler",
reviewDiffError: "error retrieving revision.",
save: "overwrite",
saveTooltip: "make this revision the top revision of this tiddler",
discard: "cancel",
discardTooltip: "undo changes to this tiddler and get most recent version",
diffTitle: "%0",
diffFieldTitle: "%0 - fields",
diffTextTitle: "%0 - text",
updating: "updating your version...",
diffHeader: ["Review the changes that have been made whilst you were editing this tiddler. ",
"Fold relevant changes back into your version.\n",
"{{removed{Red}}} highlight shows content removed. ",
"{{added{Green}}} highlight shows content added.\n"].join(""),
diffTextHeader: "View changes in text",
diffFieldsHeader: "View changes in fields"
};
var plugin = config.extensions.errorHandler = {
diffTags: ["excludeLists", "excludeMissing", "excludeSearch"],
displayMessage: function(message, tiddler, context) {
var desc = context && context.httpStatus ? context.statusText :
sssp.locale.connectionError;
var reportArea = plugin.reportError(tiddler.title);
var msg = $("<div />").appendTo(reportArea);
if(message == "saveConflict") {
wikify(msgs.resolve, msg[0]);
var choiceArea = $("<div />").appendTo(reportArea)[0];
plugin.editConflictHandler(choiceArea, tiddler);
} else {
msg.text(sssp.locale[message].format(tiddler.title, desc));
}
},
editConflictHandler: function(container, tiddler) {
var title = tiddler.title;
var myrev = tiddler.fields["server.page.revision"];
// note user now needs to edit, fix problem and save.
// TODO: make sure this gets reset in save callback
store.getTiddler(title).fields["server.page.revision"] = "false";
var diffBtn = createTiddlyButton(container, msgs.reviewDiff, msgs.reviewDiffTooltip, function(ev) {
var title = $(ev.target).data("title");
plugin.displayDiff(ev.target, store.getTiddler(title), myrev);
});
var saveBtn = createTiddlyButton(container, msgs.save, msgs.saveTooltip, function(ev) {
var title = $(ev.target).data("title");
var tid = store.saveTiddler(store.getTiddler(title));
autoSaveChanges(null, [tid]);
});
var ignoreBtn = createTiddlyButton(container, msgs.discard, msgs.discardTooltip, function(ev) {
var title = $(ev.target).text(msgs.updating).data("title");
plugin.resetToServerVersion(store.getTiddler(title));
});
$([diffBtn, ignoreBtn, saveBtn]).data("title", title);
},
getDiffTiddlerTexts: function(diffText) {
var chunks = diffText.split("\n \n");
if(chunks.length < 2) {
return [chunks[0], ""];
} else {
var diffFieldsText = "{{diff{\n%0\n}}}".format(chunks[0]);
diffText = '{{diff{\n%0\n}}}'.format(chunks.splice(1, chunks.length).join("\n"));
return [diffText, diffFieldsText];
}
},
makeDiffTiddler: function(title, diff) {
var newTiddler = new Tiddler(title);
var tags = plugin.diffTags;
newTiddler.text = msgs.loading;
newTiddler.fields.doNotSave = true;
newTiddler.tags = diff ? tags.concat(["diff"]) : tags;
newTiddler = store.saveTiddler(newTiddler);
$.extend(store.getTiddler(title).fields,
config.defaultCustomFields); // allow option to save it
return newTiddler;
},
displayDiff: function(src, tiddler, latestRevision) {
var adaptor = tiddler.getAdaptor();
var title = tiddler.title;
var ts = new Date().formatString("0hh:0mm:0ss");
var suffix = "edit conflict %0".format(ts);
var diffTitle = tiddlyspace.getLocalTitle(msgs.diffTitle.format(title), "", suffix);
var diffTextTitle = tiddlyspace.getLocalTitle(msgs.diffTextTitle.format(title), "", suffix);
var diffFieldsTitle = tiddlyspace.getLocalTitle(msgs.diffFieldTitle.format(title), "", suffix);
plugin.makeDiffTiddler(diffTextTitle, true);
plugin.makeDiffTiddler(diffFieldsTitle, true);
var newTiddler = plugin.makeDiffTiddler(diffTitle, false);
newTiddler.text = ['%0\n<<slider chkViewDiffText "%1" "%2">>\n',
'<<slider chkViewDiffField "%3" "%4">>'].join("").
format(msgs.diffHeader, diffTextTitle, msgs.diffTextHeader,
diffFieldsTitle, msgs.diffFieldsHeader);
store.saveTiddler(newTiddler);
var callback = function(r) {
var text = plugin.getDiffTiddlerTexts(r);
store.getTiddler(diffTextTitle).text = text[0];
store.getTiddler(diffFieldsTitle).text = text[1];
story.refreshTiddler(diffTitle, null, true);
};
var workspace = "bags/%0".format(tiddler.fields["server.bag"]);
ajaxReq({
type: "get",
dataType: "text",
url: "/diff?format=unified&rev1=%0/%1/%2&rev2=%0/%1".format(workspace, title, latestRevision),
success: callback,
error: function() {
displayMessage(msgs.reviewDiffError);
}
});
story.displayTiddler(src, diffTitle);
},
resetToServerVersion: function(tiddler) {
var adaptor = tiddler.getAdaptor();
var ctx = {
host: tiddler.fields["server.host"],
workspace: "bags/" + tiddler.fields["server.bag"]
};
adaptor.getTiddler(tiddler.title, ctx, null, function(context) {
store.saveTiddler(context.tiddler);
story.refreshTiddler(tiddler.title);
store.setDirty(false);
});
},
reportError: function(title) {
var el = story.getTiddler(title);
if(!el) {
el = story.displayTiddler(null, title);
}
return $("<div />").addClass("error annotation").prependTo(el)[0];
}
};
sssp.reportFailure = function(message, tiddler, context) {
config.options.chkViewDiffText = config.options.chkViewDiffText === undefined ?
true : config.options.chkViewDiffText;
config.options.chkViewDiffFields = config.options.chkViewDiffFields || false;
plugin.displayMessage(message, tiddler, context);
};
})(jQuery);
//}}}
<<<
for many people it seems that there is a distinct
"discovery" moment when TiddlyWiki explodes in their brain. It would be cool to get some different perspectives on that. I'd like to publish the interviews as part of a larger mission of doing a better job of showcasing TiddlyWiki.
<<<
my BrainExplosion happened for me back in 2006 when I found GTDTW as a detachable wiki that not only worked, it had a small footprint. I then decided to merge the world of a "notebook", "webpage", and "ProjectManager" (a la GTD) as an experiment. I was pleased to see I could easily embed content from GoogleVideo (pre-YouTube!), Flickr, and tag dropdown lists had me see the light for sure.
now for the record, there was a 4 year chasm between 2007 and 2011 and @chalat is a testament of how easy the migration was and how the tiddler is clearly a 1st class citizen. The fact that each tiddler gained 10x fold in functionality with little to no effort by just importing it into TiddlySpace is a god send - our work is more visible and live than ever!
vote ThumbsUp here! http://goo.gl/o7uWQ
<<<
Something said by a Nanna or Grandmother that is not entirely true. Not a lie, but an exaggeration or an embellishment of the truth.
//Nanna passes by a famous hospital and tells the children "I was the head of child services there when I was 25." Or "I used to live at the Drake Hotel in Chicago." is it true? We don't know, but it appears to be a Nannerism//
<<<
been using this [[app]] to ReverseEngineer what happens that causes me to sleep well or not sleep well. my official AppStore review:
<<<
I've been having fun w this app for a month & just recently started blogging about the insights I gain reviewing my sleep pattern from the previous night esp in regards to isolating any physical, emotional, spiritual factors that may have also contributed by the time I went to bed - this is worth the app alone!
http://shivasleeps.wordpress.com
Special thanks to the RawFoodControversies for recommending this app.
I find it much healthier to go to sleep as early as you need to to naturally be up at the time you desire - so the AlarmClock function of this app isn't really useful to me - wake up when your body says so & your body will thank you & you'll feel so much better!
If you could make "no alarm mode" a default for us peeps - this would be great :)
I also would love to be able to export my data for analysis in Excel, Numbers, or any other [[statistics|statistical]] package - this would help keep its 5-star rating!
ps. This app is a great for anyone who has an old classic iPhone 2G lying around waiting to be reused - thx for making it work on iOS 3.x!
<<<
ShivaSleeps!
/*!
|''Name''|notabene|
|''Version''|0.7.3|
|''License''|BSD (http://en.wikipedia.org/wiki/BSD_licenses)|
|''Source''|https://github.com/jdlrobson/notabene/blob/master/src/notabene.js|
!*/
var APP_PATH="/takenote";var RESERVED_TITLES=["takenote","dashboard","takenote_manifest.appcache","notabene.css","jquery-ui.min.js","jquery-json.min.js"];var RECENT_STORAGE_ID="takenote-recent";var config;var firstTime=true;if(window.navigator.standalone){$("#backstage a").click(function(a){window.location.href=$(a.target).attr("href");a.preventDefault();return false})}var notabene={defaultFields:{},loadConfig:function(){config=localStorage.getItem("_takeNoteConfig")?JSON.parse(localStorage.getItem("_takeNoteConfig")):{};if(config.noGeoTiddlers){if(new Date().getTime()-config.noGeoTiddlers>1000*60*60*24){notabene.saveConfig("noGeoTiddlers",false)}}},saveConfig:function(a,b){if(typeof(a)!="undefined"&&typeof(b)!="undefined"){config[a]=b}localStorage.setItem("_takeNoteConfig",JSON.stringify(config))},watchPosition:function(a){if(!!navigator.geolocation&&!config.noGeoTiddlers){navigator.geolocation.watchPosition(a,function(){notabene.saveConfig("noGeoTiddlers",new Date().getTime())})}},supports_local_storage:function(){try{return"localStorage" in window&&window.localStorage!==null}catch(a){return false}},clearRecentChanges:function(){localStorage.removeItem(RECENT_STORAGE_ID)},getRecentChanges:function(){var a=localStorage.getItem(RECENT_STORAGE_ID);a=a?$.parseJSON(a):[];return a},addRecentChange:function(d,e){var c=notabene.getRecentChanges();var f=[];for(var b=0;b<c.length;b++){var a=c[b];a=typeof(a)==="string"?{title:a}:a;if(a.title!==e){f.push(a)}}f.push({title:e,bag:d});f=f.length>5?f.slice(f.length-5):f;localStorage.setItem(RECENT_STORAGE_ID,$.toJSON(f))}};notabene.loadConfig();function autoResize(c,b){b=b||{};var a=function(g){c=g.target;var k=$("<div />").addClass($(c).attr("class")).hide().css({"word-wrap":"break-word"}).insertBefore($(c)[0]);var j=$(c).val()||"";var d=j.split("\n");for(var e=0;e<d.length;e++){$("<span />").text(d[e]).appendTo(k);$("<br />").appendTo(k)}var f=$(k).height();if(b.minHeight&&f<b.minHeight){f=b.minHeight}if(b.buffer){f+=b.buffer}$(g.target).height(f);$(k).remove()};$(c).focus(a).keyup(a).blur(a);$(c).focus()}function setup_store(b){b=b||{};var e=b.bag;var d=b.host;var c=new tiddlyweb.Bag(e,d);var a=new tiddlyweb.Store();a.retrieveCached();return{store:a,bag:c,host:d}}function init(a,b,d){if(localStorage.getItem("DEFAULT_SPACE")){b.space=localStorage.getItem("DEFAULT_SPACE");b.bag=b.space+"_public";d(b)}else{if(!b.bag&&!b.space){var c=new tiddlyweb.Store();c.getDefaults(function(f){var e=f.pushTo.name;b.space=e&&e.split("_").length==2?e.split("_")[0]:"frontpage";b.bag=e;localStorage.setItem("DEFAULT_SPACE",b.space);d(b)})}else{return d(b)}}}function notes(a,b,c){return init(a,b,function(i){if(c){c(i)}backstage();window.onbeforeunload=function(){if(!notabene.supports_local_storage()&&m().dirty().length){return["There are unsynced changes. Are you sure you want to leave?\n\n","Please upgrade your browser if possible to make sure you never lose a note."].join("")}};var B=setup_store(i);var m=B.store;var d=B.bag;var w=B.host;var D=m().sort(function(H,G){return H.fields._modified<G.fields._modified?1:-1});var e,k;function h(N){var G={_created:{label:"created on"},_modified:{label:"last modified on"}};$("#notemeta").empty();var H=$('<div class="paddedbox" />').appendTo("#notemeta")[0];var M=$("<ul />").appendTo(H)[0];for(var L in N.fields){if(L.indexOf("_")!==0){var I=N.fields[L];if(I){var O=G[L]?G[L].label:L;$("<li />").text(O+": "+I).appendTo(M)}}}var P=N.tags||[];if(P.length>0){var J=$("<li />").appendTo(M);$("<span />").text("tags : ").appendTo(J);for(var K=0;K<P.length;K++){$("<span />").text(P[K]).appendTo(J);$('<a class="removeTag">remove</a>').data("tag",P[K]).click(function(R){var Q=$(R.target).data("tag");F(Q);y();R.preventDefault()}).appendTo(J)}}}function j(){$(".note_title").val("");$(".note_text").val(e.text);if(e.title!=k&&e.fields._title_set){$(".note_title").val(e.title).focus()}if(e.fields._title_validated){$(".note_title").blur().attr("disabled",true);$(document.body).addClass("validatedNote")}else{$(".note_title").attr("disabled",false);$(document.body).removeClass("validatedNote")}h(e);notabene.watchPosition(function(H){if(e.fields["geo.lat"]&&e.fields["geo.long"]){return}if(H){var G=H.coords;e.fields["geo.lat"]=String(G.latitude);e.fields["geo.long"]=String(G.longitude)}})}function s(){return"untitled note "+Math.random()}function v(){k=s();e=new tiddlyweb.Tiddler(k,d);e.fields={};e.tags=[];e.fields._created=new Date();j()}function C(G,H,J){var I=$(".messageArea",a);I=I.length>0?I:$("<div class='messageArea' />").appendTo(a);I.attr("class","messageArea displayed").html("<div>"+G+"</div>");$(".messageArea div").stop(false,false).show();if(J){$(".messageArea div").css({opacity:1}).fadeOut(5000)}if(H){$(I).addClass(H)}}function r(){var H=$(".syncButton");var G=m().dirty();$(H).text(G.length);renderIncomplete(m,d.name)}function A(G,H){e=new tiddlyweb.Tiddler(G);e.fields={};e.bag=new tiddlyweb.Bag(H||d.name,w);m.get(e,function(I,K,J){var L=J?J.status===404:false;if(I){delete I.fields.created;delete I.fields.modified;e=I}else{if(!L){f()}}if(m().title(e.title).bag(d.name).dirty().length===0){if(I){e.fields._title_validated="yes"}}if(L||I){e.fields._title_set="yes"}$(a).addClass("ready");j()})}function z(){var H=$(".syncButton");H=H.length>0?H:$("<div class='syncButton' />").prependTo(a);r();H.click(function(M){var K,O=0,N=[];var L=m().dirty();C("Syncing to server");var I=function(P){if(P){notabene.addRecentChange(P.bag.name,P.title)}if(O===0){if(L.length>0){C("Finish your note '"+e.title+"' before syncing.","warning")}else{C("Nothing to sync.","warning")}}else{if(N.length>0){C("Sync failed. Please rename some of your notes.","error")}else{if(P&&!K){C("Sync completed.","",true)}else{K=true;C("Unable to fully sync at current time.","warning")}}}r()};var J=$(".note_title").val();L.each(function(P){if(P.title!==J){O+=1;l(P,function(Q,R){if(R){m.save(Q,I)}else{N.push(Q);I(false)}})}else{I(false)}})});function G(){var L=window.location.hash;var K=L.match(/tiddler\/([^\/]+)$/);var M=L.match(/tiddler\/$/);if(K&&K[1]){var I=L.match(/bags\/([^\/]*)\//);var J=I&&decodeURIComponent(I[1])?I[1]:undefined;if(L.indexOf("quickedit/")>-1){$("#newnote,#cancelnote").addClass("quickedit")}A(decodeURIComponent(K[1]),J)}else{if(!M&&D[0]){e=D[0];j();if($(".takenotedashboard").length===0&&firstTime){setTimeout(function(){var N=["We've restored your last incomplete note for you to finish and save. ","<a href='/takenote#tiddler/'>Start a new note</a> if you prefer."].join("");C(N,"",true)},500)}}else{v()}$(a).addClass("ready")}if(i.space){$.ajax({url:"/spaces/"+i.space+"/members",error:function(){var N=["You are not a member of this space. ","Any notes you create will not be saved to the server. "].join("");C(N,"error",false)}})}firstTime=false}G();if(window.addEventListener){window.addEventListener("hashchange",G,true)}}function u(H){var G=!H.text?true:false;var I=H.fields&&H.fields._title_set?false:true;return I&&G?true:false}function y(){e.fields._modified=new Date();if(!u(e)){m.add(e)}r()}function p(H){var G=e.title;if(H!==G&&!u(e)){e.title=H;m.add(e);m.remove(new tiddlyweb.Tiddler(G,d))}}function l(G,I){var H=new tiddlyweb.Tiddler(G.title,d);if(RESERVED_TITLES.indexOf(G.title)>-1){I(G,false,true)}else{if(G.fields._title_validated){I(G,true)}else{H.get(function(){I(G,false)},function(J){if(J.status==404){G.fields._title_validated="yes";I(G,true)}else{I(G,null,null,J)}})}}}var n;function t(H,I){I=I||function(){};var G=function(){if(n){C("Note title set.","",true);n=false}$(".note_title").attr("disabled",true)};l(e,function(K,L,J,N){if(L){G()}else{if(L===false){n=true;var M=J?"This name is reserved and cannot be used. Please provide another.":"A note with this name already exists. Please provide another name.";C(M,"error")}}I(L,N)})}$(document).ready(function(){autoResize($("textarea.note_title")[0],{buffer:0,minHeight:60});autoResize($(".note_text")[0],{minHeight:250});$(".note_title").blur(function(G){var I=$(G.target).val();var H=$.trim(I);if(H.length>0){e.fields._title_set="yes";p(H);y()}else{delete e.fields._title_set;p(s())}}).keydown(function(G){if(G.keyCode===13){G.preventDefault()}})});function F(G){var H=e.tags||[];var J=[];for(var I=0;I<H.length;I++){if(H[I]!==G){J.push(H[I])}}e.tags=J;h(e)}function o(G){var H=e.tags||[];G=["excludeLists","excludeSearch","systemConfig","excludeMissing"].indexOf(G)>-1?G:G.toLowerCase();if(H.indexOf(G)===-1){H.push(G)}e.tags=H;h(e)}function g(J){var H=J.text.match(/#([^ \n#]+)/gi);var K=[];for(var I=0;I<H.length;I++){var G=H[I].substr(1);if(K.indexOf(G)===-1){K.push(G)}}return K}function q(){var H=g(e);for(var G=0;G<H.length;G++){o(H[G])}}var E=[];var x=function(G){if(G===8){E.pop()}else{if(G===32||G===13){if(E.length>1){q()}E=[]}else{if(G===35){if(E.length>1){q();E=["#"]}else{E=["#"]}}else{if(E.length>0){E.push(String.fromCharCode(G))}}}}};$(".note_text").keydown(function(G){e.text=$(G.target).val();if(G.keyCode===8){x(G.keyCode)}y()}).keypress(function(G){e.text=$(G.target).val();x(G.keyCode)}).keyup(function(G){e.text=$(G.target).val();y()}).blur(function(G){if(E.length>0){q()}E=[]}).click(function(G){E=[]}).focus(function(G){E=[]});function f(){$("#note").removeClass("active");$(".note_title, .note_text").val("").attr("disabled",false);window.location.hash="";v();r()}$("#newnote").click(function(H){C("Saving note...");var G=$(H.target).hasClass("quickedit");t(e.title,function(I,J){if(I){m.save(e,function(N,L){if(N){notabene.addRecentChange(N.bag.name,e.title);$("#note").addClass("active");var M=encodeURIComponent(e.title);if(G){window.location=document.referrer||"/"+M}else{var K="/bags/"+N.bag.name+"/tiddlers/"+M;var O=$("<div />").append($("<a />").attr("href",K).text(e.title)).html();C("Saved "+O+" successfully.",null,true)}f()}else{if(J&&J.status===403){C("You are not logged into takenote.Please <a href='/challenge'>login</a> to post notes to the web.","warning")}else{C("Saved locally. Unable to post to web at current time.","warning")}f()}})}else{if(I==null){C("Saved locally. Unable to post to web at current time.","warning");f()}}})});$("#deletenote").click(function(I){var H=confirm("Delete this note?");if(!H){return}C("Deleting note...");if(e){var G=e.fields._title_validated?true:false;m.remove({tiddler:e,server:G},function(J,L,K){r();if(K&&K.status===0){C("Could not delete from server at current time.","warning",true);y();f()}else{if(J){$("#note").addClass("deleting");C("Note deleted.",null,true);$("#note").removeClass("deleting");$(".note_title, .note_text").val("").attr("disabled",false);f()}else{C("Error deleting note. Please try again.","error")}}})}});$("#cancelnote").click(function(I){var H=confirm("Cancel editing this note and revert to previous online version?");if(H){var G=$(I.target).hasClass("quickedit");m.remove(e.title);f();if(G){window.location=document.referrer||"/"+encodeURIComponent(e.title)}}});z();return{init:z,resetNote:f,findTags:g,tagHandler:x,printMessage:C,newNote:v,loadNote:j,addTag:o,removeTag:F,store:m,printMetaData:h,validateCurrentNoteTitle:t,getNote:function(){return e},tempTitle:k,loadServerNote:A}})}function backstage(){var a,d,c;function b(){if(d){return}else{d=true;$.ajax({url:"/status",success:function(e){a=true;d=false;$("body").addClass("online");if(!c){c=true}},error:function(){a=false;d=false;$("body").removeClass("online")}})}}b();window.setInterval(b,60000)}function renderIncomplete(a,g){var e=a().dirty().sort(function(i,h){return i.title<h.title?-1:1});var c=$("#incomplete").empty()[0];if(c){for(var b=0;b<e.length;b++){var d=$("<li />").appendTo(c)[0];var f=e[b].title;$("<a />").attr("href",APP_PATH+"#!/tiddler/"+f).text(f).appendTo(d)}if(e.length===0){$("<li />").text("None.").appendTo(c)[0]}}}function dashboard(a,c){var e=$("#recentnotes");if(e.length>0){var d=notabene.getRecentChanges();function b(k){$(e).empty();if(k.length===0){$("<li />").text("No recently created notes.").appendTo(e)[0]}for(var h=0;h<k.length;h++){var g=$("<li />").appendTo(e)[0];var l=k[h];if(typeof(l)==="string"){l={title:l}}var j=l.bag||c.bag;$("<a />").attr("href","/bags/"+j+"/tiddlers/"+encodeURIComponent(l.title)).text(l.title).appendTo(g)}}function f(){$.ajax({url:"/tiddlers?select=tag:!excludeLists&sort=-created&limit=5",dataType:"json",success:function(j){notabene.clearRecentChanges();for(var h=j.length-1;h>-1;h--){var g=j[h];notabene.addRecentChange(g.bag,g.title)}d=notabene.getRecentChanges();b(d.reverse())}})}f();b(d.reverse())}return notes(a,c,function(i){if(i.space){var l=i.space+"_private";$('<li><a href="/takenote#tiddler/New%20Public%20Note" class="button">take public note</a></li>').appendTo("#createNotes");$('<li><a href="/takenote#/bags/'+l+'/tiddler/New%20Private%20Note" class="button">take private note</a></li>').appendTo("#createNotes")}var n=500;var m=window.setInterval(function(){var o=$(".searching");if(o.length>0){var p=o.css("opacity");p=p?parseFloat(p,10):1;if(p>0.7){o.animate({opacity:0.6},n)}else{o.animate({opacity:1},n)}}},n);var k={},j=[];$.ajax({dataType:"text",url:"/bags/"+i.bag+"/tiddlers?select=tag:!excludeLists",success:function(o){j=o.split("\n")}});function h(r,o){r=r.toLowerCase();var q=[];for(var p=0;p<j.length;p++){var s=j[p];if(s.toLowerCase().indexOf(r)>-1&&o.indexOf(s)===-1){q.push({value:s,label:s,bag:i.bag})}}return q}$(".findnote").autocomplete({source:function(r,o){var q=$(this.element);q.addClass("searching");var p=r.term;if(k[p]){return o(k[p])}o(h(p,[]));$.ajax({url:"/search?q=bag:"+i.bag+' "'+p+' "&select=tag:!excludeLists',dataType:"json",success:function(t){q.removeClass("searching").css({opacity:1});var w=[];var v=h(p,v);for(var x=0;x<t.length;x++){var A=t[x];var u=A.bag;var s=u.split("_");var B=s[0];var y=s[1];var z=A.type;v.push(A.title);if(!z){w.push({value:A.title,label:A.title,bag:A.bag})}}if(w.length===0){w.push({label:"No notes found"})}k[p]=w;o(w)},error:function(){var s=[];s.concat(h(p,[]));if(s.length===0){s.push({label:"Unable to search at current time"})}q.removeClass("searching").css({opacity:1});o(s)}})},select:function(o,p){if(p.item.value&&p.item.bag){window.location="/bags/"+p.item.bag+"/tiddlers/"+encodeURIComponent(p.item.value)}}});var g=setup_store(i);renderIncomplete(g.store,g.bag.name)})}window.addEventListener("load",function(){window.setTimeout(function(){var a=new google.bookmarkbubble.Bubble();var b="bubble";a.setHashParameter=function(){localStorage.setItem(b,"yes")};a.hasHashParameter=function(){return localStorage.getItem(b)?true:false};a.getViewportHeight=function(){return window.innerHeight};a.getViewportScrollY=function(){return window.pageYOffset};a.registerScrollHandler=function(c){window.addEventListener("scroll",c,false)};a.deregisterScrollHandler=function(c){window.removeEventListener("scroll",c,false)};a.showIfAllowed()},1000)},false);addEventListener("load",function(){setTimeout(hideURLbar,0)},false);function hideURLbar(){window.scrollTo(0,1)};
//GoogleWave embed not quite working yet...// ref: http://goo.gl/X1j2c
<html>
<div id="waveframe" style="width:500px; height:400px;"></div><script src="http://www.google.com/jsapi"></script><script type="text/javascript"> google.load("wave", "1"); google.setOnLoadCallback(function() { new google.wave.WavePanel({target: document.getElementById("waveframe")}).loadWave("googlewave.com!w+H5_lgLlAA");}); </script>
</html>
/***
|''Name''|TiddlySpaceTiddlerIconsPlugin|
|''Version''|0.8.10|
|''Status''|@@beta@@|
|''Author''|Jon Robson|
|''Description''|Provides ability to render SiteIcons and icons that correspond to the home location of given tiddlers|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceTiddlerIconsPlugin.js|
|''Requires''|TiddlySpaceConfig BinaryTiddlersPlugin ImageMacroPlugin TiddlySpacePublishingCommands|
!Notes
{{{<<tiddlerOrigin>>}}} shows the origin of the tiddler it is being run on.
In TiddlySpace terms this means it will determine whether the tiddler is external, public or private.
Where private it will analyse whether a public version exists and distinguish between the different scenarios.
If a tiddler is external, the SiteIcon of that external space will be shown
!Parameters
width / height : define a width or height of the outputted icon
label: if label parameter is set to yes, a label will accompany the icon.
!Code
***/
//{{{
(function($) {
if(!config.macros.image) {
throw "Missing dependency: ImageMacroPlugin";
}
var imageMacro = config.macros.image;
var tiddlyspace = config.extensions.tiddlyspace;
var tweb = config.extensions.tiddlyweb;
var cmds = config.commands;
var cmd = cmds.publishTiddler;
tiddlyspace.resolveSpaceName = function(value) {
var endsWith = config.extensions.BinaryTiddlersPlugin.endsWith;
if(value) {
value = value.indexOf("bags/") === 0 ? value.substr(5) : value;
value = value.indexOf("recipes/") === 0 ? value.substr(8) : value;
if(value.indexOf("@") === 0) {
value = value.substr(1);
}
if(endsWith(value, "_public")) {
value = value.substr(0, value.length - 7);
} else if(endsWith(value, "_private")) {
value = value.substr(0, value.length - 8);
}
value = value.toLowerCase();
}
return value;
};
tiddlyspace.renderAvatar = function(place, value, options) {
options = options ? options : {};
options.labelOptions = options.labelOptions ? options.labelOptions : { include: false, height: 48, width: 48 };
options.imageOptions = options.imageOptions ? options.imageOptions : {};
options.imageOptions.altImage = "/bags/common/tiddlers/defaultUserIcon";
var container = $('<div class="siteIcon" />').appendTo(place);
value = tiddlyspace.resolveSpaceName(value);
tweb.getStatus(function(status) {
var link, noLabel;
if(!value || value == config.views.wikified.defaultModifier ||
value == config.views.wikified.shadowModifier) {
var icon = config.views.wikified.shadowModifier == value ? "shadowIcon" : "missingIcon";
if(store.tiddlerExists(icon)) {
imageMacro.renderImage(container, icon, options.imageOptions);
} else {
noLabel = true;
}
} else {
var spaceURI;
if(value != tiddlyspace.currentSpace.name) {
spaceURI = options.notSpace ? tiddlyspace.getHost(status.server_host) :
tiddlyspace.getHost(status.server_host, value);
}
link = spaceURI ? $("<a />").attr("href", spaceURI) : $("<span />");
link.text(value);
var imageOptions = options.imageOptions;
if(options.spaceLink && !imageOptions.link) {
imageOptions.link = spaceURI;
}
var avatar = options.notSpace ? false : value;
var uri = tiddlyspace.getAvatar(status.server_host, avatar);
imageMacro.renderImage(container, uri, options.imageOptions);
if(!value) {
value = "tiddlyspace";
}
}
if(!noLabel && options.labelOptions.include) {
var prefix = $("<span />").text(options.labelOptions.prefix || "")[0];
var suffix = $("<span />").text(options.labelOptions.suffix || "")[0];
$('<div class="label" />').append(prefix).append(link).
append(suffix).appendTo(container);
}
});
if(value) {
var prefix = options.labelOptions.prefix || "";
var suffix = options.labelOptions.suffix || "";
var label = "%0%1%2".format(prefix, value, suffix);
$(container).attr("title", label);
}
};
var originMacro = config.macros.tiddlerOrigin = {
locale: {
"shadow": "shadow tiddler",
"missing": "missing tiddler",
"private": "private",
"unknown": "unknown state",
"public": "public",
"unsyncedPrivate": "unsynced and private",
"unsyncedPublic": "unsynced and public",
externalPrefix: "from ",
externalBagSuffix: " bag",
externalSuffix: " space",
publishPrivateDeletePrivate: "Are you sure you want to make this tiddler public?",
moveToPrivate: "Are you sure you want to make this tiddler private? Only members will be able to see it.",
pleaseWait: "please wait..",
keepPublic: "keep public",
cannotPublishDirtyTiddler: "The current tiddler is unsaved so cannot be published. Please save the tiddler first.",
keepPrivate: "keep private",
makePublic: "make public",
makePrivate: "make private"
},
handler: function(place, macroName, params,wikifier, paramString, tiddler){
var adaptor = tiddler.getAdaptor();
var btn = $("<div />").addClass("originButton").attr("params", paramString).
attr("refresh", "macro").attr("macroName", macroName).appendTo(place)[0];
$(btn).data("tiddler", tiddler);
originMacro.refresh(btn);
},
refresh: function(btn) {
$(btn).empty();
var paramString = $(btn).attr("params");
var tiddler = $(btn).data("tiddler");
var options = originMacro.getOptions(paramString);
var type = tiddlyspace.getTiddlerStatusType(tiddler);
originMacro.renderIcon(tiddler, type, btn, options);
},
getOptions: function(paramString) {
paramString = "%0 label:no width:48 height:48 spaceLink:yes preserveAspectRatio:yes".format(paramString);
var parsedParams = paramString.parseParams("name");
var params = parsedParams[0].name;
var options = {
labelOptions: originMacro._getLabelOptions(parsedParams),
imageOptions: imageMacro.getArguments(paramString, []),
noclick: parsedParams[0].interactive &&
parsedParams[0].interactive[0] == "no" ? true : false
};
if(!options.noclick) {
var spaceLink = parsedParams[0].spaceLink;
options.spaceLink = spaceLink && spaceLink[0] == "no" ? false : true;
} else {
options.spaceLink = false;
}
return options;
},
_getLabelOptions: function(parsedParams) {
parsedParams = parsedParams[0];
var includeLabel = !parsedParams.label || ( parsedParams.label && parsedParams.label[0] == "yes" );
var prefix = parsedParams.labelPrefix ? parsedParams.labelPrefix[0] : false;
var suffix = parsedParams.labelSuffix ? parsedParams.labelSuffix[0] : false;
return { include: includeLabel, suffix: suffix, prefix: prefix };
},
_isSpace: function(value) {
value = value ? value : "";
var endsWith = config.extensions.BinaryTiddlersPlugin.endsWith;
if(endsWith(value, "_private") || endsWith(value, "_public")) {
return true;
} else {
return false;
}
},
renderIcon: function(tiddler, type, button, options) {
var locale = originMacro.locale;
originMacro.annotateTiddler(button, type);
if(type != "external") {
originMacro.showPrivacyRoundel(tiddler, type, button,
options);
} else {
var prefix = options.labelOptions.prefix, suffix = options.labelOptions.suffix;
var space = tiddler.fields["server.bag"];
options.notSpace = !originMacro._isSpace(space);
options.labelOptions.prefix = prefix ? prefix : locale.externalPrefix;
options.labelOptions.suffix = suffix ? suffix : (options.notSpace ? locale.externalBagSuffix : locale.externalSuffix);
tiddlyspace.renderAvatar(button, space, options);
}
},
showPrivacyRoundel: function(thisTiddler, privacyType, button, options) {
// there is a public tiddler as well as the current tiddler!
// TODO: not this is not enough.. we also need to check if the public tiddler is the same as..
// .. the private tiddler to determine whether this is a draft
// use of hashes would be useful here.
$(button).empty();
var icon = "%0Icon".format(privacyType);
if(privacyType.indexOf("unsynced") === 0 && !store.tiddlerExists(icon)) {
icon = "unsyncedIcon";
}
if(privacyType == "shadow") {
if(!store.tiddlerExists(icon)) {
icon = "bags/tiddlyspace/tiddlers/SiteIcon";
}
}
if(privacyType == "missing" && !store.tiddlerExists(icon)) {
return; // the user is not making use of the missingIcon
} else {
imageMacro.renderImage(button, icon, options.imageOptions);
originMacro.showLabel(button, privacyType, options.labelOptions);
var cmd = originMacro.iconCommands[privacyType];
if(cmd && thisTiddler && !options.noclick) {
$(button).click(function(ev) {
cmd(ev, thisTiddler);
});
}
}
},
annotateTiddler: function(place, type) {
var tidEl = $(story.findContainingTiddler(place));
tidEl.
removeClass("private public external privateAndPublic privateNotPublic shadow").
addClass(type);
},
showLabel: function(button, type, options) {
var locale = originMacro.locale;
var label = options.label ? options.label : locale[type];
label = label ? label : locale.unknown;
if(options && options.include) {
$('<div class="roundelLabel" />').html(label).appendTo(button);
}
$(button).attr("title", label);
},
confirm: function(ev, msg, onYes, options) {
options = options ? options : {};
onYes = onYes ? onYes : function(ev) {};
var btn = $(".originButton", $(ev.target).parents())[0];
var popup = Popup.create(btn);
$(popup).addClass("confirmationPopup");
$("<div />").addClass("message").text(msg).appendTo(popup);
$("<button />").addClass("button").text(options.yesLabel || "yes").appendTo(popup).click(onYes);
$("<button />").addClass("button").text(options.noLabel || "no").click(function(ev) {
Popup.remove();
}).appendTo(popup);
Popup.show();
ev.stopPropagation();
return false;
},
alert: function(ev, msg) {
var popup = Popup.create(ev.target);
$(popup).addClass("confirmationPopup alert");
$("<div />").addClass("message").text(msg).appendTo(popup);
Popup.show();
ev.stopPropagation();
},
reportDirty: function(el) {
originMacro.alert(el, originMacro.locale.cannotPublishDirtyTiddler);
},
iconCommands: {
"public": function(ev, tiddler) {
if(!readOnly) {
var locale = originMacro.locale;
var msg = locale.moveToPrivate;
if(story.isDirty(tiddler.title)) {
originMacro.reportDirty(ev);
} else {
originMacro.confirm(ev, msg, function(ev) {
var target = $(ev.target);
var onComplete = function(info) {};
var privateBag = cmd.toggleBag(tiddler, "private");
cmd.moveTiddler(tiddler, {
title: tiddler.title,
fields: { "server.bag": privateBag }
}, onComplete);
}, { yesLabel: locale.makePrivate, noLabel: locale.keepPublic });
}
}
},
"private": function(ev, tiddler) {
if(!readOnly) {
var locale = originMacro.locale;
var adaptor = tiddler.getAdaptor();
var publishTo = tiddler.fields["publish.name"] || tiddler.title;
var workspace = "bags/%0".format(tiddler.fields["server.bag"]);
tiddler.fields["server.workspace"] = workspace;
var publicBag = cmd.toggleBag(tiddler, "public");
var msg;
msg = locale.publishPrivateDeletePrivate;
var title = tiddler.title;
var newTitle = publishTo || tiddler.title;
tiddler.fields["server.page.revision"] = "false";
store.addTiddler(tiddler);
if(story.isDirty(tiddler.title)) {
originMacro.reportDirty(ev);
} else {
originMacro.confirm(ev, msg, function(ev) {
var onComplete = function(info) {};
cmd.moveTiddler(tiddler, {
title: newTitle,
fields: { "server.bag": publicBag }
}, onComplete);
}, { yesLabel: locale.makePublic, noLabel: locale.keepPrivate });
}
}
}
}
};
})(jQuery);
//}}}
/***
|''Name''|ServerSideSavingPlugin|
|''Description''|server-side saving|
|''Author''|FND|
|''Version''|0.6.5|
|''Status''|stable|
|''Source''|http://svn.tiddlywiki.org/Trunk/association/plugins/ServerSideSavingPlugin.js|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.5.3|
|''Keywords''|serverSide|
!Notes
This plugin relies on a dedicated adaptor to be present.
The specific nature of this plugin depends on the respective server.
!Revision History
!!v0.1 (2008-11-24)
* initial release
!!v0.2 (2008-12-01)
* added support for local saving
!!v0.3 (2008-12-03)
* added Save to Web macro for manual synchronization
!!v0.4 (2009-01-15)
* removed ServerConfig dependency by detecting server type from the respective tiddlers
!!v0.5 (2009-08-25)
* raised CoreVersion to 2.5.3 to take advantage of core fixes
!!v0.6 (2010-04-21)
* added notification about cross-domain restrictions to ImportTiddlers
!To Do
* conflict detection/resolution
* rename to ServerLinkPlugin?
* document deletion/renaming convention
!Code
***/
//{{{
(function($) {
readOnly = false; //# enable editing over HTTP
var plugin = config.extensions.ServerSideSavingPlugin = {};
plugin.locale = {
saved: "%0 saved successfully",
saveError: "Error saving %0: %1",
saveConflict: "Error saving %0: edit conflict",
deleted: "Removed %0",
deleteError: "Error removing %0: %1",
deleteLocalError: "Error removing %0 locally",
removedNotice: "This tiddler has been deleted.",
connectionError: "connection could not be established",
hostError: "Unable to import from this location due to cross-domain restrictions."
};
plugin.sync = function(tiddlers) {
tiddlers = tiddlers && tiddlers[0] ? tiddlers : store.getTiddlers();
$.each(tiddlers, function(i, tiddler) {
var changecount = parseInt(tiddler.fields.changecount, 10);
if(tiddler.fields.deleted === "true" && changecount === 1) {
plugin.removeTiddler(tiddler);
} else if(tiddler.isTouched() && !tiddler.doNotSave() &&
tiddler.getServerType() && tiddler.fields["server.host"]) { // XXX: server.host could be empty string
delete tiddler.fields.deleted;
plugin.saveTiddler(tiddler);
}
});
};
plugin.saveTiddler = function(tiddler) {
try {
var adaptor = this.getTiddlerServerAdaptor(tiddler);
} catch(ex) {
return false;
}
var context = {
tiddler: tiddler,
changecount: tiddler.fields.changecount,
workspace: tiddler.fields["server.workspace"]
};
var serverTitle = tiddler.fields["server.title"]; // indicates renames
if(!serverTitle) {
tiddler.fields["server.title"] = tiddler.title;
} else if(tiddler.title != serverTitle) {
return adaptor.moveTiddler({ title: serverTitle },
{ title: tiddler.title }, context, null, this.saveTiddlerCallback);
}
var req = adaptor.putTiddler(tiddler, context, {}, this.saveTiddlerCallback);
return req ? tiddler : false;
};
plugin.saveTiddlerCallback = function(context, userParams) {
var tiddler = context.tiddler;
if(context.status) {
if(tiddler.fields.changecount == context.changecount) { //# check for changes since save was triggered
tiddler.clearChangeCount();
} else if(tiddler.fields.changecount > 0) {
tiddler.fields.changecount -= context.changecount;
}
plugin.reportSuccess("saved", tiddler);
store.setDirty(false);
} else {
if(context.httpStatus == 412) {
plugin.reportFailure("saveConflict", tiddler);
} else {
plugin.reportFailure("saveError", tiddler, context);
}
}
};
plugin.removeTiddler = function(tiddler) {
try {
var adaptor = this.getTiddlerServerAdaptor(tiddler);
} catch(ex) {
return false;
}
var context = {
host: tiddler.fields["server.host"],
workspace: tiddler.fields["server.workspace"],
tiddler: tiddler
};
var req = adaptor.deleteTiddler(tiddler, context, {}, this.removeTiddlerCallback);
return req ? tiddler : false;
};
plugin.removeTiddlerCallback = function(context, userParams) {
var tiddler = context.tiddler;
if(context.status) {
if(tiddler.fields.deleted === "true") {
store.deleteTiddler(tiddler.title);
} else {
plugin.reportFailure("deleteLocalError", tiddler);
}
plugin.reportSuccess("deleted", tiddler);
store.setDirty(false);
} else {
plugin.reportFailure("deleteError", tiddler, context);
}
};
plugin.getTiddlerServerAdaptor = function(tiddler) { // XXX: rename?
var type = tiddler.fields["server.type"] || config.defaultCustomFields["server.type"];
return new config.adaptors[type]();
};
plugin.reportSuccess = function(msg, tiddler) {
displayMessage(plugin.locale[msg].format([tiddler.title]));
};
plugin.reportFailure = function(msg, tiddler, context) {
var desc = (context && context.httpStatus) ? context.statusText :
plugin.locale.connectionError;
displayMessage(plugin.locale[msg].format([tiddler.title, desc]));
};
config.macros.saveToWeb = { // XXX: hijack existing sync macro?
locale: { // TODO: merge with plugin.locale?
btnLabel: "save to web",
btnTooltip: "synchronize changes",
btnAccessKey: null
},
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
createTiddlyButton(place, this.locale.btnLabel, this.locale.btnTooltip,
plugin.sync, null, null, this.locale.btnAccessKey);
}
};
// hijack saveChanges to trigger remote saving
var _saveChanges = saveChanges;
saveChanges = function(onlyIfDirty, tiddlers) {
if(window.location.protocol == "file:") {
_saveChanges.apply(this, arguments);
} else {
plugin.sync(tiddlers);
}
};
// override removeTiddler to flag tiddler as deleted -- XXX: use hijack to preserve compatibility?
TiddlyWiki.prototype.removeTiddler = function(title) { // XXX: should override deleteTiddler instance method?
var tiddler = this.fetchTiddler(title);
if(tiddler) {
tiddler.tags = ["excludeLists", "excludeSearch", "excludeMissing"];
tiddler.text = plugin.locale.removedNotice;
tiddler.fields.deleted = "true"; // XXX: rename to removed/tiddlerRemoved?
tiddler.fields.changecount = "1";
this.notify(title, true);
this.setDirty(true);
}
};
// hijack ImportTiddlers wizard to handle cross-domain restrictions
var _onOpen = config.macros.importTiddlers.onOpen;
config.macros.importTiddlers.onOpen = function(ev) {
var btn = $(resolveTarget(ev));
var url = btn.closest(".wizard").find("input[name=txtPath]").val();
if(window.location.protocol != "file:" && url.indexOf("://") != -1) {
var host = url.split("/")[2];
var macro = config.macros.importTiddlers;
if(host != window.location.host) {
btn.text(macro.cancelLabel).attr("title", macro.cancelPrompt);
btn[0].onclick = macro.onCancel;
$('<span class="status" />').text(plugin.locale.hostError).insertAfter(btn);
return false;
}
}
return _onOpen.apply(this, arguments);
};
})(jQuery);
//}}}
/***
|''Name''|GroupByPlugin|
|''Description''|Mimics allTags macro to provide ways of creating lists grouping tiddlers by any field|
|''Version''|0.6.1|
|''Author''|Jon Robson|
|''Status''|beta|
!Usage
{{{<<groupBy tags>>}}}
mimics allTags macro
{{{<<groupBy server.bag>>}}}
groups by the server.bag field (this version contains TiddlySpace specific code for turning a bag into a space name)
{{{groupBy modified dateFormat:"YYYY"}}}
group tiddlers by year.
{{{<<groupBy tags exclude:excludeLists exclude:systemConfig>>}}}
group tiddlers by tag but exclude the tags with values excludeLists and systemConfig
Within that group you can also exclude things by filter
{{{groupBy modifier filter:[tag[film]]}}}
will group tiddlers tagged with film by modifier.
***/
//{{{
(function($) {
var taglocale = config.views.wikified.tag;
var macro = config.macros.groupBy = {
locale: {
tooltip: "all tiddlers in group %0",
noTiddlers: "no tiddlers",
openAllText: taglocale.openAllText,
openAllTooltip: taglocale.openAllTooltip,
openTiddler: "open tiddler with title %0"
},
morpher: {
// TODO: note currently the following 2 morphers are TiddlySpace specific and probably should be in separate plugin
"server.workspace": function(value, options) {
return macro.morpher["server.bag"](value.replace("bags/", "").replace("recipes/", ""));
},
"server.bag": function(value, options) {
if(typeof(value) !== "string") {
return false;
} else if(value.indexOf("_public") === -1 && value.indexOf("_private") === -1) {
value = "*%0".format(value); // add star for non-space bags.
}
return value.replace("_public", "").replace("_private", "");
},
created: function(value, options) {
return value.formatString(options.dateFormat || "DD MMM YYYY");
},
modified: function(value, options) {
return macro.morpher.created(value, options);
}
},
handler: function(place, macroName, params, wikifier, paramString) {
var field = params[0] || "server.workspace";
var dateFormat = params[1] || "DD MMM YYYY";
var container = $("<div />").attr("macroName", macroName).addClass("groupBy").
attr("refresh", "macro").attr("fieldName", field).
attr("paramString", paramString).
attr("dateFormat", dateFormat).appendTo(place)[0];
macro.refresh(container);
},
isTypeArray: function(value) {
var valueType = typeof value;
if(valueType === "object" && typeof value.length === "number" &&
!(value.propertyIsEnumerable("length")) &&
typeof value.splice === "function") { //is Array
return true;
} else {
return false;
}
},
_onClickGroup: function(ev, options) {
var i, target = ev.target, locale = macro.locale;
var tiddlers = $(target).closest(".templateContainer").data("tiddlers");
var popup = $(Popup.create(target)).addClass("taggedTiddlerList")[0];
var value = $(target).attr("value");
var openAll = createTiddlyButton($("<li />").appendTo(popup)[0],
locale.openAllText.format(value), locale.openAllTooltip);
$(openAll).click(function(ev) {
story.displayTiddlers(ev.target, tiddlers);
return false;
});
var listBreak = $("<li />").addClass("listBreak").html("<div />").appendTo(popup);
for(i = 0; i < tiddlers.length; i++) {
var item = $("<li />").appendTo(popup)[0];
var template = store.getTiddlerText(options.template) || macro.template;
wikify(template, item, null, tiddlers[i]);
}
listBreak.clone().appendTo(popup);
$(createTiddlyLink($("<li />").appendTo(popup)[0], value, false)).
text(locale.openTiddler.format(value));
Popup.show();
ev.stopPropagation();
return false;
},
_refresh: function(container, tiddlers, options) {
var totalGroups = 0, locale = macro.locale, i, j;
var excludeValues = options.exclude;
var values = {}, value_ids = [];
var field = options.field;
var morpher = macro.morpher[field] || function(value) {
return value;
};
for(i = 0; i < tiddlers.length; i++) {
var tiddler = tiddlers[i];
var value = tiddler[field] || tiddler.fields[field];
value = macro.isTypeArray(value) ? value : [ value ];
for(j = 0; j < value.length; j++) {
var v = morpher(value[j], options);
if(v && $.inArray(v, excludeValues) === -1) {
totalGroups += 1;
if(!values[v]) {
values[v] = [];
}
values[v].push(tiddler);
value_ids.pushUnique(v);
}
}
}
var ul = $("<ul />").appendTo(container)[0];
if(totalGroups === 0) {
$("<li />").addClass("listTitle").text(locale.noTiddlers);
}
value_ids = value_ids.sort();
var groupTemplate = store.getTiddlerText(options.groupTemplate);
var onClick = function(ev) {
macro._onClickGroup(ev, options);
};
for(i = 0; i < value_ids.length; i++) {
var title = value_ids[i];
var info = getTiddlyLinkInfo(title);
tiddlers = values[title];
var btn = createTiddlyButton($("<li />").appendTo(ul)[0],
"%0 (%1)".format(title, tiddlers.length), locale.tooltip.format(title), null, info.classes);
if(groupTemplate) {
$(btn).empty();
wikify(groupTemplate, btn, null, tiddlers[0]);
}
$(btn).click(onClick).attr("value", title).attr("refresh", "link").attr("tiddlyLink", title);
$(btn).addClass("templateContainer").data("tiddlers", tiddlers);
}
},
refresh: function(container) {
container = $(container).empty();
var paramString = container.attr("paramString");
var args = paramString.parseParams("name", null, true, false, true)[0];
var options = { field: container.attr("fieldName"), dateFormat: container.attr("dateFormat"), exclude: args.exclude || [],
template: args.template ? args.template[0] : false, groupTemplate: args.groupTemplate ? args.groupTemplate[0] : "" };
var tiddlers = args.filter ? store.filterTiddlers(args.filter[0]) : store.getTiddlers("title");
macro._refresh(container, tiddlers, options);
},
template: "<<view title link>>"
};
}(jQuery));
//}}}
/***
|''Name''|TiddlySpaceFilters|
|''Description''|provide TiddlySpace-specific filter extensions|
|''Author''|Jon Robson|
|''Version''|0.6.1|
|''Status''|@@beta@@|
|''CoreVersion''|2.6.2|
|''Requires''|TiddlySpaceConfig|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
{{{
<<tsList Private>>
<<tsList Public>>
<<tsList Draft>>
}}}
!Code
***/
//{{{
(function($) {
var tiddlyspace = config.extensions.tiddlyspace;
var privateBag = tiddlyspace.getCurrentBag("private");
var publicBag = tiddlyspace.getCurrentBag("public");
config.filterHelpers = {
is: {
"private": function(tiddler) {
var bag = tiddler.fields["server.bag"];
return bag == privateBag;
},
"public": function(tiddler) {
var bag = tiddler.fields["server.bag"];
return bag == publicBag;
},
draft: function(tiddler) {
var fields = tiddler.fields;
var bag = fields["server.bag"];
return (privateBag == bag && fields["publish.name"]) ? true : false;
},
local: function(tiddler) {
return config.filterHelpers.is["public"](tiddler) ||
config.filterHelpers.is["private"](tiddler);
},
unsynced: function(tiddler) {
return tiddler ? tiddler.isTouched() : false;
}
}
};
config.filters.is = function(results, match) {
var candidates = store.getTiddlers("title");
var type = match[3];
for (var i = 0; i < candidates.length; i++) {
var tiddler = candidates[i];
var helper = config.filterHelpers.is[type];
if(helper && helper(tiddler)) {
results.pushUnique(tiddler);
}
}
return results;
};
})(jQuery);
//}}}
it's been forever since I've done any serious GroceryShopping (since 2007) - a radically different experience from [[Thailand]] now that I've gone all [[Organic]] and a no SaltSugarOil TrueNorthHealth diet!
I think of the one sweet lady in [[Thonburi]] who owns that healthy market - she would be pleased to hear about the changes I've made! Still avoiding [[Facebook]] - just don't find it a place to be right now...
Wake up wanting to discover new [[Music]] and found LostInJuly - call it a [[Premonition]]? :-o lol
<html>
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" id="Player_0242d75e-6dd4-4d14-b833-dbfc3307b4fb" WIDTH="250px" HEIGHT="250px"> <PARAM NAME="movie" VALUE="http://ws.amazon.com/widgets/q?rt=tf_w_mpw&ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Fdanlab-20%2F8014%2F0242d75e-6dd4-4d14-b833-dbfc3307b4fb&Operation=GetDisplayTemplate"><PARAM NAME="quality" VALUE="high"><PARAM NAME="bgcolor" VALUE="#FFFFFF"><PARAM NAME="allowscriptaccess" VALUE="always"><embed src="http://ws.amazon.com/widgets/q?rt=tf_w_mpw&ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Fdanlab-20%2F8014%2F0242d75e-6dd4-4d14-b833-dbfc3307b4fb&Operation=GetDisplayTemplate" id="Player_0242d75e-6dd4-4d14-b833-dbfc3307b4fb" quality="high" bgcolor="#ffffff" name="Player_0242d75e-6dd4-4d14-b833-dbfc3307b4fb" allowscriptaccess="always" type="application/x-shockwave-flash" align="middle" height="250px" width="250px"></embed></OBJECT> <NOSCRIPT><A HREF="http://ws.amazon.com/widgets/q?rt=tf_w_mpw&ServiceVersion=20070822&MarketPlace=US&ID=V20070822%2FUS%2Fdanlab-20%2F8014%2F0242d75e-6dd4-4d14-b833-dbfc3307b4fb&Operation=NoScript">Amazon.com Widgets</A></NOSCRIPT>
</html> //(hmm...trying to embed preview of song on [[Amazon]] ... not working now, shucks)//
[[Music]] has captured my [[♥]] all over again!
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
oooh - I love the @activity space - @rightmap may not be published right now - seems to be one to watch - I would ''love'' to see my tiddlers mapped out - in fact, i can totally see how a graph could automatically be created for each TiddlySpace and TiddlySpace as a whole - this would be neat!
I've been eager for Mindmapping on a wiki-face to come alive for quite awhile... I know it will happen ;-)
This has a relationship to PersonalBrain and the WebBrain
adventures I plan to share more in-depth (and knit together existing web content) as time permits - some quick bookmarks on areas I could expand further...
|!area|!bookmark|!comments|
|[[Documentation]]|[[executive binder|http://dancelabs.wikispaces.com/Executive+Binder]], TiddlySpace||
|[[Wellness]]|[[wellness map|https://docs.google.com/a/dancelabs.com/document/d/1ptquqcgaYDa-yNMAjYq9YrZZwEud0BTajtxC4q4hMSg/edit?hl=en_US]], EnvironmentDesignedForWellness||
|MassTransit|[[tokyo|http://chinarut.wikispaces.com/Tokyo]], BigBlueBus||
|[[Thailand]]|[[thailand mindmap|http://chinarut.wikispaces.com/Thailand]], WisdomCourse||
|[[Education]]|CanyonElementary, AppleWiki||
|DanceInnovation|@chalat, CGT2011Poster||
|[[Transformation]]|CGT2011, @landmarkeducation||
|KnowledgeEngineering|PersonalBrain, [[wisdom autobiography|http://chinarut.wikispaces.com/Autobiography]], [[Protege]]||
|ReverseCulturalIntegration|LosAngeles|from [[Thailand]] via [[Japan]]|
|CircuitRiding|@teamminutemen, SquidAndSquashFoundation||
|BurningMan|@burningman, WakeUpAndDance||
some more <<tag Exploration explorations>> (which will eventually produce the table above...)
TiddlySpace implements a follow mechanism that allows you to discover your NetworkOfConversations with those in your OriginatingCircle
lil bro's LCD BurntOut on his DellLaptop and we couldn't even get WinXP back on the machine because its hard drive overheated - soooo... we installed Ubuntu to it, hooked it up to an HDTV and presto, a YouTube machine for mom's ThaiSoaps!
think of a WeeklyCompass as a PluginArchitecture for your Life.
Each [[Role]] you take on for yourself and your life or each [[Hat]] you decide to wear can be encapsulated to some degree.
For example, being a [[Father]] has a set of behaviours, habits, expected results, world of language, relationships that are not only defined by [[Society]] but also have the opportunity to be created the way you wish to create being a [[Father]] in your [[Family]]
So goes the experiment - one could define @role-father with constructs that inherit much of the CulturalWisdom that encapsulates thousands and thousands of years of [[Fatherhood]]
one could choose to adopt such [[Wisdom]] as a [[Baseline]] and go from there or one could choose to create one's sense of being a [[Father]] from scratch (from [[Nothing]]) making wonderful discoveries and perhaps (but not necessarily) risking making the same mistakes others have discovered.
I think it's fair to say sometimes you don't learn until you've made the mistake yourself - as long as you learn from it, clean up, and move on - it's all good!
/***
|''Name''|TiddlyFileImporter|
|''Version''|0.3.8|
|''Author''|Ben Gillies|
|''Type''|plugin|
|''Description''|Upload a TiddlyWiki file to TiddlyWeb, and import the tiddlers.|
!Usage
Upload a TiddlyWiki file to TiddlyWeb, and import the tiddlers.
!Requires
tiddlyweb
tiddlywebplugins.reflector
!Code
***/
//{{{
(function($){
if(!version.extensions.TiddlyFileImporter)
{ //# ensure that the plugin is only installed once
version.extensions.TiddlyFileImporter = { installed: true };
}
config.macros.fileImport = {
reflectorURI: '/reflector?csrf_token=%0',
incorrectTypeError: 'Incorrect File Type. You must upload a TiddlyWiki',
uploadLabel: 'Upload',
uploadLabelPrompt: 'Import tiddlers from this TiddlyWiki',
step1FileText: 'File:',
step1PostText: 'In the next screen you will select the tiddlers to import.',
step1Title: 'Step 1: Pick a TiddlyWiki to import',
step1TypeChooser: 'Import From:',
step3Html: ['<input type="hidden" name="markList" />',
'<input type="hidden" checked="true" name="chkSync" />',
'<input type="hidden" name="chkSave" />',
'<input type="hidden" name="txtSaveTiddler" />'].join(),
handler: function(place, macroName, params, wikifier, paramString) {
var wizard = new Wizard();
wizard.createWizard(place, 'Import a TiddlyWiki');
this.restart(wizard);
},
restart: function(wizard) {
var me = config.macros.fileImport;
wizard.addStep(me.step1Title, ['<input type="hidden" ',
'name="markList" />'].join(""));
var markList = wizard.getElement('markList');
var uploadWrapper = document.createElement('div');
markList.parentNode.insertBefore(uploadWrapper, markList);
uploadWrapper.setAttribute('refresh', 'macro');
uploadWrapper.getAttribute('macroName', 'fileImport');
var iframeName = 'reflectorImporter' + Math.random().toString();
me.createForm(uploadWrapper, wizard, iframeName);
$(uploadWrapper).append('<p>' + me.step1PostText + '</p>');
wizard.setValue('serverType', 'tiddlyweb');
wizard.setValue('adaptor', new config.adaptors.file());
wizard.setValue('host', config.defaultCustomFields['server.host']);
wizard.setValue('context', {});
var iframe = $(['<iframe name="' + iframeName + '" ',
'style="display: none" />'].join("")).appendTo(uploadWrapper);
var onSubmit = function(ev) {
var uploadType = $('select[name=uploadtype]', wizard.formElem).val();
if (uploadType == "file") {
// set an onload ready to hijack the form
me.setOnLoad(uploadWrapper, wizard, iframe[0]);
wizard.importType = 'file';
wizard.formElem.submit();
} else {
var csrf_token = config.extensions.tiddlyspace.getCSRFToken();
$.ajax({
url: "%0/reflector?csrf_token=%1".format(
config.defaultCustomFields["server.host"], csrf_token),
type: "POST",
dataType: "text",
data: {
uri: $("input", ".importFrom", wizard.formElem).val()
},
success: function(data, txtStatus, xhr) {
wizard.POSTResponse = data;
me.importTiddlers(uploadWrapper, wizard);
},
error: function(xhr, txtStatus, error) {
displayMessage(["There was an error fetching the ",
'url: ', txtStatus].join(""));
me.restart(wizard);
}
});
return false;
}
};
wizard.setButtons([{
caption: me.uploadLabel,
tooltip: me.uploadLabelPrompt,
onClick: onSubmit
}]);
$(wizard.formElem).submit(function(ev) {
onSubmit(ev);
ev.preventDefault();
});
},
createForm: function(place, wizard, iframeName) {
var form = wizard.formElem;
var me = config.macros.fileImport;
form.action = me.reflectorURI.format(
config.extensions.tiddlyspace.getCSRFToken());
form.enctype = 'multipart/form-data';
form.encoding = 'multipart/form-data';
form.method = 'POST';
form.target = iframeName;
onSelectChange = function(e) {
var changeTo = $(this).val();
if (changeTo == "file") {
$(".importFrom").html('%0 <input type="file" name="file" />'.
format(me.step1FileText));
} else {
$(".importFrom").html('URL: <input type="text" name="uri" />'
+ ' Do you want <a target="_blank" href="http://faq.tiddlyspace.com/How%20do%20I%20include%2Fexclude%20spaces%3F">inclusion</a> instead?');
}
};
$(place).append('<span>%0</span>'.format(me.step1TypeChooser)).
append($(['<select name="uploadtype"><option value="file" selected="selected">file',
'<option value="uri">url</select>'].join("")).change(onSelectChange)).
append('<div class="importFrom">%0<input type="file" name="file" /></div>'.
format(me.step1FileText));
},
setOnLoad: function(place, wizard, iframe) {
var me = config.macros.fileImport;
var loadHandler = function() {
me.importTiddlers.apply(this, [place, wizard, iframe]);
};
iframe.onload = loadHandler;
completeReadyStateChanges = 0;
iframe.onreadystatechange = function() {
if (++(completeReadyStateChanges) == 5) {
loadHandler();
}
};
},
importTiddlers: function(place, wizard, iframe) {
var tmpStore = new TiddlyWiki();
var POSTedWiki = "";
if (wizard.importType == "file") {
try {
POSTedWiki= iframe.contentWindow
.document.documentElement.innerHTML;
} catch(e) {
displayMessage(config.macros.fileImport.incorrectTypeError);
config.macros.fileImport.restart(wizard);
return;
}
// now we are done, so remove the iframe
$(iframe).remove();
} else {
POSTedWiki = wizard.POSTResponse;
}
tmpStore.importTiddlyWiki(POSTedWiki);
var newTiddlers = tmpStore.getTiddlers();
var workspace = config.defaultCustomFields['server.workspace'];
var context = {
status: true,
statusText: 'OK',
httpStatus: 200,
adaptor: wizard.getValue('adaptor'),
tiddlers: newTiddlers
};
context.adaptor.store = tmpStore;
wizard.setValue('context', context);
wizard.setValue('workspace', workspace);
wizard.setValue('inFileImport', true);
config.macros.importTiddlers.onGetTiddlerList(context, wizard);
}
};
var _onGetTiddler = config.macros.importTiddlers.onGetTiddler;
config.macros.importTiddlers.onGetTiddler = function(context, wizard) {
if (wizard.getValue('inFileImport')) {
var me = config.macros.importTiddlers;
if(!context.status)
displayMessage("Error in importTiddlers.onGetTiddler: " + context.statusText);
var tiddler = context.tiddler;
var fields = tiddler.fields;
merge(fields, config.defaultCustomFields);
fields["server.workspace"] = wizard.getValue('workspace');
delete fields['server.permissions'];
delete fields['server.bag'];
fields['server.page.revision'] = 'false';
delete fields['server.recipe'];
fields.changecount = 1;
store.suspendNotifications();
store.saveTiddler(tiddler.title, tiddler.title, tiddler.text,
tiddler.modifier, tiddler.modified, tiddler.tags, tiddler.fields,
false, tiddler.created);
store.resumeNotifications();
var remainingImports = wizard.getValue("remainingImports")-1;
wizard.setValue("remainingImports",remainingImports);
if(remainingImports === 0) {
if(context.isSynchronous) {
store.notifyAll();
refreshDisplay();
}
wizard.setButtons([
{caption: me.doneLabel, tooltip: me.donePrompt, onClick: me.onClose}
],me.statusDoneImport);
autoSaveChanges();
}
} else {
_onGetTiddler.apply(this, arguments);
}
};
var _onCancel = config.macros.importTiddlers.onCancel;
config.macros.importTiddlers.onCancel = function(e)
{
var wizard = new Wizard(this);
if (!wizard.getValue('inFileImport')) {
return _onCancel.apply(this, arguments);
}
var place = wizard.clear();
config.macros.fileImport.restart(wizard);
return false;
};
var _step3Html = config.macros.importTiddlers.step3Html;
var _onGetTiddlerList = config.macros.importTiddlers.onGetTiddlerList;
config.macros.importTiddlers.onGetTiddlerList = function(context, wizard) {
var fileImport = config.macros.fileImport;
var importTiddlers = config.macros.importTiddlers;
if (wizard.getValue('inFileImport')) {
importTiddlers.step3Html = fileImport.step3Html;
} else {
importTiddlers.step3Html = _step3Html;
}
_onGetTiddlerList.apply(this, arguments);
};
})(jQuery);
//}}}
ok - thanks to Logitech's $99 fire sale of their Revue - we got pulled into GoogleLand pretty quickly. this table is not bad:
http://goo.gl/P3CEu
not surprisingly, I still think AppleTV is a more refined product (thus I disagree with the writer's conclusion)
the TippingPoint is when Apple releases the AppleTV AppStore - I expect an implosion of HighQualityApps TriedAndTrue through iterations and iterations of iPhone and iPad development. Not to mention this will be yet another extension of the AppleEcosystem thus you can expect SeamlessIntegration assuming you've committed to AppleProducts which is a whole other debate!
heh - I stumbled back into GoogleReader and it was simple to create this [[View]] of MyUniverse!
http://goo.gl/EmWQr
and MyDanceUniverse! http://goo.gl/pZZYZ
note the large majority of [[Hyperlinks]] will not resolve and this page is just to show what's possible :)
the best example I can think of is the iPhone - a device that can be transformed into anything you want - "There's an [[app]] for that" is probably a term you've heard used quite often. the fact that it is an IntegratedPieceOfMachinery - it's got it's own display, it's completely [[Reconfigurable]] due to MinimalButtons - it has Internet AnytimeAnywhere - it has its own storage... the PossibilitiesAreEndless and it brings new avenues to GeneralPurposeComputing. Kudos to [[Apple]] for creating such a MallablePlatform (despite the fact that these devices were never meant to be [[Jailbroken]] - once done, it's a [[Hacker]]'s dream!
http://www.o2.co.uk/tariffs/simplicity
simple indeed!
A big props up to the TiddlySpace team for all their hard work and effort making a unique [[wiki]] [[Technology]] available to [[everyone|OpenSource]]!
@jermolene is the [[Visionary]] behind [[discoursive|Discoursive]]@frontpage [[non-linear|Non-linear]]@frontpage [[web|The Web]]@frontpage [[notebooks|Notebooks]]@frontpage
<<<
TiddlySpace is a platform for intellectual discourse that allows people to build their own universe of understanding that interlinks with those of other individuals.
<<<
I dabbled around with TiddlyWiki 5 years ago and it's great to see the vision articulated in such a way that it captures what I felt in my gut while I was in [[Thailand]] in 2006.
I continued to have challenges communicating what I saw possible in TiddlyWiki and thanks to the [[Execution]] of the TiddlySpace team, the vision is now more [[Tangible]] to others and I no longer need to use [[Wikispaces]] as a crutch.
Sharing my LifelongExploration here expresses what I believe to be possible and was delighted all the work we invested documenting DanceChalat in a TiddlyWiki was moved to TiddlySpace in minutes and @chalat was born!
TiddlySpace goes many steps further by allowing me to share a perspective on say DanceInnovation, allows others to form their own perspective on what innovating through dance is, discover each other, and begin to see the intersection or even divergence - it effectively brings researchers around the world together in a highly structured way - I get to structure my thoughts and work independently of yours - contrast this to just throwing researchers with CommonInterests into a SinglePlace - imagine the conflicts that arise shaping StrongOpinions - what people are saying are NotJustComments and it becomes a matter of [[Domination]] and who has the StrongestVoice or is willing to put the most time into maintaining that face. Not exactly a WorkableModel.
TiddlySpace (a collection of [[TiddlyWikis|TiddlyWiki]]) has the unique capability to subdivide thoughts/concepts as needed to drive your [[Conclusions]] and [[Insights]]. You have in your BackPocket a facility to CompareNotes with others in a way that brings your [[Thoughts]] together. (see [[Discoursive]] for this said yet another way!)
@chalat plants the seeds for the creation of WorkshopDesignSoftware. The flexibility of the TiddlySpace platform transforms this reality as I tiddle and will always be grateful of OpenSource.
My mission to find the best WikiServer stops here - thanks [[Osmosoft]]! :)
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
/***
|''Name''|TiddlySpaceConfig|
|''Version''|0.7.7|
|''Description''|TiddlySpace configuration|
|''Status''|stable|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceConfig.js|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlyWebConfig ServerSideSavingPlugin TiddlyFileImporter|
!Code
***/
//{{{
(function($) {
var tweb = config.extensions.tiddlyweb;
var recipe = config.defaultCustomFields["server.workspace"].split("recipes/")[1];
var currentSpace; // assigned later
var disabledTabs = [];
var coreBags = ["system", "tiddlyspace"];
var systemSpaces = ["plugins", "info", "images", "theme"];
systemSpaces = $.map(systemSpaces, function(item, i) {
return "system-%0_public".format(item);
});
// hijack search macro to add custom attributes for mobile devices
var _search = config.macros.search.handler;
config.macros.search.handler = function(place, macroName, params) {
_search.apply(this, arguments);
$(".searchField:input", place).
attr({ autocapitalize: "off", autocorrect: "off" });
};
// arg is either a container name or a tiddler object
// if fuzzy is truthy, space may be inferred from workspace (for new tiddlers)
// returns space object or false
var determineSpace = function(arg, fuzzy) {
if(typeof arg == "string") { // container name
var space = split(arg, "_", "r");
return ["public", "private"].contains(space.type) ? space : false;
} else if(arg) { // tiddler
var container = determineContainer(arg, fuzzy);
return container ? determineSpace(container.name, fuzzy) : false;
} else {
return false;
}
};
// if fuzzy is truthy, container may be inferred from workspace for new tiddlers
// returns container object or false
var determineContainer = function(tiddler, fuzzy) { // TODO: expose?
var bag = tiddler.fields["server.bag"];
var recipe = tiddler.fields["server.recipe"]; // XXX: unused/irrelevant/redundant!?
if(bag) {
return { type: "bag", name: bag };
} else if(recipe) {
return { type: "recipe", name: recipe };
} else if(fuzzy) { // new tiddler
var workspace = tiddler.fields["server.workspace"];
if(workspace) {
var container = split(workspace, "/", "l");
return ["bags", "recipes"].contains(container.type) ? container : false;
} else {
return false;
}
} else {
return false;
}
};
// hijack removeTiddlerCallback to restore tiddler from recipe cascade -- TODO: move into TiddlyWebWiki?
var sssp = config.extensions.ServerSideSavingPlugin;
var _removeTiddlerCallback = sssp.removeTiddlerCallback;
sssp.removeTiddlerCallback = function(context, userParams) {
var title = context.tiddler.title;
var recipe = context.tiddler.fields["server.recipe"];
_removeTiddlerCallback.apply(this, arguments);
if(recipe) {
context.workspace = "recipes/" + recipe;
var callback = function(context, userParams) {
if(context.status) {
var dirty = store.isDirty();
store.saveTiddler(context.tiddler).clearChangeCount();
store.setDirty(dirty);
} else {
store.notify(title, true);
}
};
context.adaptor.getTiddler(title, context, null, callback);
}
};
// splits a string once using delimiter
// mode "l" splits at the first, "r" at the last occurrence
// returns an object with members type and name
var split = function(str, sep, mode) {
mode = mode == "r" ? "pop" : "shift"; // TODO: use +/-1 instead of "l"/"r"?
var arr = str.split(sep);
var type = arr.length > 1 ? arr[mode]() : null;
return { type: type, name: arr.join(sep) };
};
var plugin = config.extensions.tiddlyspace = {
currentSpace: determineSpace(recipe),
coreBags: coreBags.concat(systemSpaces),
determineSpace: determineSpace,
isValidSpaceName: function(name) {
return name.match(/^[a-z][0-9a-z\-]*[0-9a-z]$/) ? true : false;
},
getCurrentBag: function(type) {
return "%0_%1".format(currentSpace, type);
},
getCurrentWorkspace: function(type) {
return "bags/" + this.getCurrentBag(type);
},
// returns the URL for a space's avatar (SiteIcon) based on a server_host
// object and an optional space name
// optional nocors argument prevents cross-domain URLs from being generated
getAvatar: function(host, space, nocors) {
if(space && typeof space != "string") { // backwards compatibility -- XXX: deprecated
space = space.name;
}
var subdomain = nocors ? currentSpace : space;
host = host ? this.getHost(host, subdomain) : "";
var bag = space ? "%0_public".format(space) : "tiddlyspace";
return "%0/bags/%1/tiddlers/SiteIcon".format(host, bag);
},
// returns the URL based on a server_host object (scheme, host, port) and an
// optional subdomain
getHost: function(host, subdomain) {
if(host === undefined) { // offline
tweb.status.server_host = {}; // prevents exceptions further down the stack -- XXX: hacky workaround, breaks encapsulation
return null;
}
subdomain = subdomain ? subdomain + "." : "";
var url = "%0://%1%2".format(host.scheme, subdomain, host.host);
var port = host.port;
if(port && !["80", "443"].contains(port)) {
url += ":" + port;
}
return url;
},
disableTab: function(tabTiddler) {
if(typeof(tabTiddler) == "string") {
disabledTabs.push(tabTiddler);
} else {
for(var i = 0; i < tabTiddler.length; i++) {
plugin.disableTab(tabTiddler[i]);
}
}
},
checkSyncStatus: function(tiddler) {
if(tiddler) {
var title = typeof(tiddler) === "string" ? tiddler : tiddler.title;
var el = story.getTiddler(title) || false;
if(el) {
refreshElements(el);
}
}
},
isDisabledTab: function(tabTitle) {
var match = new RegExp("(?:\\[\\[([^\\]]+)\\]\\])", "mg").exec(tabTitle);
var tabIdentifier = match ? match[1] : tabTitle;
return disabledTabs.contains(tabIdentifier);
},
getCSRFToken: window.getCSRFToken || null // this may not have been processed yet
};
currentSpace = plugin.currentSpace.name;
tweb.serverPrefix = tweb.host.split("/")[3] || ""; // XXX: assumes root handler
tweb.getStatus(function(status) {
var url = plugin.getHost(status.server_host);
tweb.status.server_host.url = url;
config.messages.tsVersion = status.version;
});
if(window.location.protocol == "file:") {
// enable AutoSave by default
config.options.chkAutoSave = config.options.chkAutoSave === undefined ?
true : config.options.chkAutoSave;
} else {
// set global read-only mode based on membership heuristics
var indicator = store.getTiddler("SiteTitle") || tiddler;
readOnly = !(recipe.split("_").pop() == "private" ||
tweb.hasPermission("write", indicator));
// replace TiddlyWiki's ImportTiddlers due to cross-domain restrictions
if(config.macros.fileImport) {
$.extend(config.macros.importTiddlers, config.macros.fileImport);
}
}
// hijack saveChanges to ensure SystemSettings is private by default
var _saveChanges = saveChanges;
saveChanges = function(onlyIfDirty, tiddlers) {
if(tiddlers && tiddlers.length == 1 &&
tiddlers[0] && tiddlers[0].title == "SystemSettings") {
var fields = tiddlers[0].fields;
delete fields["server.recipe"];
fields["server.bag"] = plugin.getCurrentBag("private");
fields["server.workspace"] = plugin.getCurrentWorkspace("private");
}
return _saveChanges.apply(this, arguments);
};
// ensure backstage is always initialized
// required to circumvent TiddlyWiki's read-only based handling
config.macros.backstageInit = {
init: function() {
showBackstage = true;
}
};
// disable evaluated macro parameters for security reasons
config.evaluateMacroParameters = "none";
var _parseParams = String.prototype.parseParams;
String.prototype.parseParams = function(defaultName, defaultValue, allowEval,
noNames, cascadeDefaults) {
if(config.evaluateMacroParameters == "none") {
arguments[2] = false;
}
return _parseParams.apply(this, arguments);
};
var _tabsMacro = config.macros.tabs.handler;
config.macros.tabs.handler = function(place, macroName, params) {
var newParams = [params[0]]; // keep cookie name
for(var i = 1; i < params.length; i += 3) {
var tabTitle = params[i + 2];
if(!plugin.isDisabledTab(tabTitle)){
newParams = newParams.concat(params[i], params[i + 1], tabTitle);
}
}
_tabsMacro.apply(this, [place, macroName, newParams]);
};
// disable ControlView for XHRs by default
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader("X-ControlView", "false");
}
});
// TiddlyWeb adaptor currently still uses httpReq, which needs extra magic -- XXX: obsolete this!
var _httpReq = httpReq;
httpReq = function(type, url, callback, params, headers, data, contentType,
username, password, allowCache) {
headers = headers || {};
headers["X-ControlView"] = "false";
_httpReq.apply(this, arguments);
};
// register style sheet for backstage separately (important)
store.addNotification("StyleSheetBackstage", refreshStyles);
// option for default privacy setting
config.optionsDesc.chkPrivateMode = "Set your default privacy mode to private";
config.optionsSource.chkPrivateMode = "setting";
config.options.chkPrivateMode = config.options.chkPrivateMode || false;
saveSystemSetting("chkPrivateMode", true);
config.defaultCustomFields["server.workspace"] = plugin.
getCurrentWorkspace(config.options.chkPrivateMode ? "private" : "public");
config.paramifiers.follow = {
onstart: function(v) {
if(!readOnly) {
var bag = "%0_public".format(currentSpace);
story.displayTiddler(null, v, DEFAULT_EDIT_TEMPLATE, null, null,
"server.bag:%0 server.workspace:bags/%0".format(bag));
story.setTiddlerTag(v, "follow", 1);
story.focusTiddler(v, "text");
}
}
};
var fImport = config.macros.fileImport;
if(fImport) {
fImport.uploadTo = "Upload to: ";
var _createForm = config.macros.fileImport.createForm;
config.macros.fileImport.createForm = function(place, wizard, iframeName) {
var container = $("<div />").text(fImport.uploadTo).appendTo(place);
var select = $('<select name="mode" />').appendTo(container)[0];
$('<option value="private" selected>private</a>').appendTo(select);
$('<option value="public">public</a>').appendTo(select);
wizard.setValue("importmode", select);
_createForm.apply(this, [place, wizard, iframeName]);
};
var _onGet = config.macros.importTiddlers.onGetTiddler;
config.macros.importTiddlers.onGetTiddler = function(context, wizard) {
var type = $(wizard.getValue("importmode")).val();
var ws = plugin.getCurrentWorkspace(type);
wizard.setValue("workspace", ws);
_onGet.apply(this, [context, wizard]);
};
}
config.extensions.ServerSideSavingPlugin.reportSuccess = function(msg, tiddler) {
plugin.checkSyncStatus(tiddler);
msg = config.extensions.ServerSideSavingPlugin.locale[msg];
var link = "/" + encodeURIComponent(tiddler.title);
displayMessage(msg.format([tiddler.title]), link);
};
})(jQuery);
//}}}
* when you find someone willing to CliffJump with you - don't [[Overwhelm]] them with lots of [[Input]] or at the very least, set their expectations it's only temporary and that you intend to help cut back and move forward!
this is a really impressive extension that is able to send and receive texts thru GoogleVoice even thru WiFi
<<<
GoogleVoice doesn't support sending texts internationally right now (boo! they could make a lot of moula! but i digress)
could you extend GVDialRules to extend to your SMS extension and consider a general "domestic" vs international behavior?
for example - perhaps I could define a "profile" like this:
* SMS
** Domestic: GV
** International: Carrier (could even have "None" for those who are not interested in paying for InternationalTexts)
* Phone
** Domestic: Carrier [for highest quality call, [[GV]] if you're committed to VoIP!]
** International: GV
I think lots of people would be interested in something like this - let me know if you disagree or see it from a DifferentPerspective!
<<<
attempt to make a tiddler private on the cached version - works if you are connected to TiddlyWeb server
the ability to mark individual tiddlers private is awesome.
EVAL: ability to default new tiddlers to private (esp for DailyJournal entries...) - prolly can do this through software
ACK: I can include members to see my private ones (hmmm...bad joke)
Do you know what to do in the event of an [[Earthquake]]?
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/fNMT652-UOo" frameborder="0" allowfullscreen></iframe>
</html>
Type the text for 'New TiddlMany thanks to Keith for sharing this with us... I am reminded over and over (and over!) again of the great people in my life who allow me to see the part of myself I can give up to create bringing absolutely nothing back to the table!
http://www.creationsmagazine.com/articles/C100/Osho.html
this tiddler would automatically query and return my 7 active roles at any given moment. This is all inside the game of [[100Roles]] and being a [[RenaissanceMan]] like BenFranklin. gee @renaissanceman once KeyDistinctions are defined ;-)
!Prototype StateCompass
<<tiddler WeeklyCompass>>
!Prototype ActiveWeeklyCompass
<<tiddler ActiveWeeklyCompass>>
on a new GoogleVoice adventure thanks to an AdventurousSoul who ported his MobileNumber to GoogleVoice to run OneBigExperiment and see what might happen if one were to commit to GoogleVoice to [[Triage]] all one's calls?
Turns out it's pretty straight forward to port your number to Google - it would be nice if I could port numbers in as secondary numbers - if you signed onto GoogleVoice quite early - chances are you got a VanityNumber you're happy with and at some point, you might seriously consider moving your MobileNumber to GoogleVoice to manage.
In the spirit of being [[Jailbroken]] - my iPhone got new life today thanks to the [[GV Extensions for iPhone|http://gvexts.appspot.com]]
what really rocks is I'm able to use the [[Native]] SMS and Phone application using GoogleVoice as the underlying CommunicationLayer - 2 primary benefits:
# recipients receive texts and calls from my GoogleVoice # (consider the [[Abstraction]] of using GoogleVoice as a LogicalLayer and your MobileCarrier as the PhysicalLayer which depending on what part of the world you're in (or what [[Configuration]] you're in - can be swapped at will without others having to know about the switch.
# texting works completely through Google over the Internet - provides some insight into how [[iMessages]] would work if implemented beyond just [[iOS]] devices.
GVConfigurations discovered thus far and GVBackupProcedures being developed
Thought [[AT&T]]'s GoPhone plan (http://goo.gl/IcP7Z) might be a good option as the days where I have heavy DomesticCallUsage, I just pay $2 and put down [[VoIP]] all together. The biggest DataPlan they provide is 500MB for $25 which is steep given you get 2GB with an [[iPadDataPlan]]
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
Guardians of the ICT in schools: it's time to move out of the way! We represent the new generation, and we're tired of your outdated [[curriculum]]. We want change and we want it now!
We want to:
*[[Be taught to tinker]]
*[[Have the confidence to experiment]]
*[[Know how to hack]]
*[[Be educated not trained]]
*[[Understand computers under the covers]]
*[[Know the way of The Web]]
*[[Be engaged to create]]
*[[Recognise the role of software in society]]
*[[Be equipped to entrepreneur]]
A direct result of [[Composting]] are pesky FruitFlies around the house - I made one of these...
http://frugalliving.about.com/od/doityourself/qt/Rid_Fruit_Flies.htm
It caught 3 in the like the FirstHour - wow!
This will be sure to surprise MomAndDad ;-)
Janice is a WealthOfKnowledge! I thought I'd take a creative approach to capturing a few of the interesting references received I won't be looking into immediately...
# MOVIE: Buck
# BPAFreeCans - TraderJoes communication - watch out for canned tomato products
# DrMercola.com - sunglasses - ref: ArtOfSeeing
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
/***
|''Name''|ActivityStreamPlugin|
|''Version''|0.5.4|
|''Description''|Provides a following macro|
|''Author''|Jon Robson|
|''Requires''|TiddlySpaceFollowingPlugin|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''Source''|https://github.com/jdlrobson/TiddlyWiki/raw/master/plugins/TiddlySpaceInstaller/ActivityStreamPlugin.js|
!Usage
{{{<<activity>>}}}
!!Supressing activity
You can supress notifications by id:
"plugin", "shadow", "standard", "follow", "followYou", "siteInfo", "siteIcon", "ownSiteIcon", "notify", "reply"
e.g. {{{ <<activity supress:siteIcon>> }}} will hide siteIcon activity from you.
!!Supressing people
{{{<<activity ignore:person}}} will ignore all activity where person is the subject of the activity. eg. person followed other-person will not appear in the feed.
!!Controlling displayed dates.
{{{<<activity timestampFormat:"<0hh o' clock>" headingFormat:"0DD/0MM" >>}}} will display date headings as date/month eg.
3rd of January would be displayed as 03/01. This particular timestamp example gives you the hour of the activity.
!!Even more content
{{{<<activity limit:no>>}}} will show you all possible activity in the last X days where X is set at a macro level (advanced developers should see config.macros.activity.RECENTNESS).
!StyleSheet
.activityStream .externalImage, .activityStream .image {
display: inline;
}
.feedItem .siteIcon {
display: inline;
}
.activityStream .error {
background-color: red;
color: white;
font-weight: bold;
}
.activityStream .feedItem {
list-style: none;
}
.activityStream .notification {
background-color: yellow;
color: black;
}
.activityStream .activityGroupTitle {
font-weight: bold;
margin-top: 8px;
}
.activityStream .feedItem {
margin-left: 8px;
}
!Code
***/
//{{{
(function($) {
var name = "StyleSheetActivityStream";
config.shadowTiddlers[name] = store.getTiddlerText(tiddler.title +
"##StyleSheet");
store.addNotification(name, refreshStyles);
var followMacro = config.macros.followTiddlers;
var tweb = config.extensions.tiddlyweb;
var tiddlyspace = config.extensions.tiddlyspace;
var scanMacro = config.macros.tsScan;
var modifierSpaceLink = "<<view modifier spaceLink>>";
var spaceTiddlyLink = "<<view server.bag spaceLink server.title>>";
var bagSpaceLink = "<<view server.bag spaceLink>>";
var bagSiteIcon = "<<view server.bag SiteIcon width:24 height:24 label:no preserveAspectRatio:yes>>";
var modifierSiteIcon = "<<view modifier SiteIcon width:24 height:24 label:no preserveAspectRatio:yes>>";
var timestamp = "[<<view modified date '0hh:0mm'>>]";
var replyLink = "<<view server.title replyLink>>";
config.shadowTiddlers.ActivityStreamTemplates = [
"!notify\n%3 {{notification{%0 %1 has modified %2 in %0 %1 and flagged it for your attention!}}} %8\n",
"!reply\n%3 {{notification{%0 %1 replied with %2 to your %4 %5 post.}}} %8\n",
"!userSiteIcon\n%3 %6 %7 has a new ~SiteIcon.\n",
"!spaceSiteIcon\n%3 %6 %7 updated the SiteIcon for the %0 %1 space.\n",
"!image\n%3 %6 %7 drew the image %2 in the %1 space.\n",
"!plugin\n%3 %6 %7 modified a plugin called %2 in the %0 %1 space.\n",
"!shadow\n%3 %6 %7 modified a shadow tiddler %2 in the %0 %1 space.\n",
"!geo\n%3 %6 %7 modified a geo tiddler called %2 in the %0 %1 space <<view title maplink 'view on map'>>. %8\n",
"!followYou\n%3 %0 %1 is now following you.\n",
"!follow\n%3 %0 %1 is now following %4 %5 <<view server.title link follow>>\n",
"!siteInfo\n%3 %6 %7 <<view server.bag spaceLink server.title label:described>> the %0 %1 space.\n",
"!video\n%3 %6 %7 modified a video entitled %2 in the %0 %1 space. %8\n",
"!standard\n%3 %6 %7 modified %2 in the %0 %1 space. %8\n"
].join("").format(bagSiteIcon, bagSpaceLink, spaceTiddlyLink, timestamp,
"<<view server.title SiteIcon width:24 height:24 label:no preserveAspectRatio:yes>>", "<<view server.title spaceLink>>",
modifierSiteIcon, modifierSpaceLink, replyLink);
story.refreshTiddler("ActivityStreamTemplates", null, true);
config.annotations.ActivityStreamTemplates = "This is a special tiddler used by the ActivityStreamPlugin. It is used for templating notifications. Templates at the top have preference over templates at the bottom.";
var macro = config.macros.activity = {
default_limit: 50,
templates: [],
init: function() {
var templates = [];
var regex = new RegExp(/^!(.*)\n/gm);
var text = store.getTiddlerText("ActivityStreamTemplates");
var match = regex.exec(text);
while(match) {
templates.push(match[1]);
match = regex.exec(text);
}
macro.templates = templates;
},
// order matters - earlier templates override older ones
RECENTNESS: 2, // in days
TIMESTAMP_FORMAT: "<0hh:0mm>",
info: {},
locale: {
pleaseWait: "please wait while we load your stream...",
errorLoading: "The activity stream failed to load. Please make sure you have an internet connection and try again.",
userHeading: "Below is the activity stream for spaces that this space follows with the follow tag. (%0/%1 spaces have been loaded)",
emptyStream: "Activity stream currently empty. (%0/%1 loaded)"
},
getTimeStamp: function() {
var today = new Date();
macro._lastRun = today.getTime();
var previous = new Date(today.setDate(today.getDate() - macro.RECENTNESS));
return previous.convertToYYYYMMDDHHMM();
},
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var container = $("<div />").text(macro.locale.pleaseWait).appendTo(place).
attr("refresh", "macro").attr("macroName", macroName).attr("paramString", paramString);
var space = tiddlyspace.currentSpace.name;
var options = macro.getOptions(paramString);
$(container).attr("activity-limit", options.limit);
macro._session = Math.random();
var activityType;
var sourceActivity = function(user) {
macro.CURRENT_USER = user.name;
macro.USER_AT_TAG = "@%0".format(user.name);
followMacro.getFollowers(function(users) {
macro.getActivity(container, users, activityType, options);
}, macro.CURRENT_USER);
container.attr("activity-type", activityType);
macro._renderStream(container, activityType, options);
};
if(options.user) {
sourceActivity({name: options.user});
} else {
sourceActivity({ name: tiddlyspace.currentSpace.name });
}
},
getOptions: function(paramString) {
var options = {};
var args = paramString.parseParams("name")[0];
var toMap = ["timestampFormat", "headingFormat", "limit", "user"];
var i;
for(i = 0; i < toMap.length; i++) {
var map = toMap[i];
options[map] = args[map] ? args[map][0] : false;
}
var supress = args.supress || [];
var templates = [];
var show = args.show ? args.show : macro.templates;
for(i = 0; i < show.length; i++) {
var template = show[i];
if(supress.indexOf(template) === -1) {
templates.push(template);
}
}
options.ignore = args.ignore || [];
options.templates = templates;
return options;
},
_getActivityQuery: function(user, timestamp) {
timestamp = timestamp || macro.getTimeStamp();
if(user) {
return "/bags/%0_public/tiddlers?select=modified:>%1".format(user, timestamp);
} else {
return false;
}
},
refresh: function(container) {
var type = $(container).attr("activity-type");
var limit = $(container).attr("activity-limit");
var options = macro.getOptions($(container).attr("paramString"));
options.limit = parseInt(limit, 10);
macro.renderStream(container, type, options);
},
getActivity: function(place, users, type, options) {
var i;
var timestamp = macro.activityTimestamp;
var firstRun = timestamp ? false : true;
macro.info.loaded = firstRun ? 0 : macro.info.loaded;
var afterAjax = function(tiddlers) {
if(firstRun) {
macro.info.loaded += 1;
}
macro.updateStream(tiddlers, type, options);
macro.renderStream(place, type, options);
};
var success = function(tiddlers) {
afterAjax(tiddlers);
};
var error = function() {
afterAjax([]);
};
if(macro._lastRun > new Date().getTime() - 300000) { // leave 5 minutes between calls
afterAjax([]);
return;
}
macro.info.queries = users.length;
for(i = 0; i < users.length; i++) {
var user = users[i];
ajaxReq({
url: macro._getActivityQuery(user, timestamp),
dataType: "json", success: success, error: error
});
}
macro.activityTimestamp = new Date().convertToYYYYMMDDHHMM();
},
reportError: function(place) {
var error = $("<div />").addClass("error").text(locale.errorLoading);
$(place).empty().append(error);
},
createFeedEntry: function(container, tiddler, options) {
var item = $("<li />").addClass("feedItem");
var content = $("<div />").appendTo(item);
var wikifyPlace = $("<span />").appendTo(content)[0];
var author = tiddler.modifier;
if(author && !options.ignore.contains(author)) {
$(container).append(item);
config.macros.view.views.activityItem(null, wikifyPlace, null, null, null, tiddler);
return item;
}
return false;
},
renderStream: function(place, type, options) {
window.clearTimeout(macro._renderTimeout);
macro._renderTimeout = window.setTimeout(function() {
macro._renderStream(place, type, options);
}, 100);
},
_renderStream: function(place, type, options) {
$(place).empty();
var limit = options.limit;
var container = $("<ul />").addClass("activityStream").appendTo(place);
var textHeading = macro.locale.userHeading.format(macro.info.loaded, macro.info.queries);
$("<li />").addClass("listTitle").text(textHeading).appendTo(container);
var tiddlers = store.sortTiddlers(store.filterTiddlers("[server.activity[true]]"), "-modified"); // TODO: sort headings instead if possible (conflicts with limit)
var headings = [];
var groups = {};
var processed = 0, i, j;
var atEndOfActivityFeed = true;
for(i = 0; i < tiddlers.length; i++) {
var tiddler = tiddlers[i];
if(options.templates.contains(tiddler.fields["server.activity.type"])) {
if(!limit || processed < limit) {
var modified = tiddler.modified;
if(modified) {
// format date.
var modifiedString = modified.formatString(options.headingFormat || config.macros.timeline.dateFormat);
if(headings.contains(modifiedString)) {
groups[modifiedString].push(tiddler);
} else {
headings.push(modifiedString);
groups[modifiedString] = [ tiddler ];
}
}
processed += 1;
} else {
atEndOfActivityFeed = false;
}
}
}
var somethingRendered;
for(i = 0; i < headings.length; i++) {
var heading = headings[i];
var _tiddlers = store.sortTiddlers(groups[heading], "-modified");
var headingEl;
if(_tiddlers.length > 0) {
headingEl = $("<li />").addClass("listTitle activityGroupTitle").text(heading).appendTo(container);
}
var rendered = [];
for(j = 0; j < _tiddlers.length; j++) {
var item = macro.createFeedEntry(container, _tiddlers[j], options);
if(item) {
rendered.push(item);
}
}
if(rendered.length === 0) {
headingEl.remove();
} else {
somethingRendered = true;
}
}
if(!somethingRendered) {
var msg;
if(macro.gotActivity) { // it has been run before
msg = macro.locale.emptyStream.format(macro.info.loaded, macro.info.queries);
} else {
msg = macro.locale.pleaseWait;
}
$(container).text(msg);
}
if(!atEndOfActivityFeed) { // show more button
$("<input />").attr("type", "button").val("more").click(function(ev) {
var currentLimit = $(place).attr("activity-limit");
var newLimit = parseInt(currentLimit, 10) + 50;
macro.default_limit = newLimit;
$(place).attr("activity-limit", newLimit);
macro.refresh(place);
}).appendTo(place);
}
this.gotActivity = true;
},
updateStream: function(jstiddlers, type, options) {
// assume already sorted.
var tiddlers = scanMacro._tiddlerfy(jstiddlers, options);
var _dirty = store.isDirty();
$.each(tiddlers, function(i, tid) {
var info = config.macros.view.activity.getActivityInfo(tid, options);
tid.fields["server.activity.type"] = info.type;
tid.fields["server.activity"] = "true";
if(!tid.tags.contains("excludeLists")) {
tid.title = tiddlyspace.getLocalTitle(tid.title, tid.fields["server.workspace"]);
tid.tags = tid.tags.concat(["excludeLists", "excludeMissing", "excludeSearch"]);
tid.fields.doNotSave = "true";
store.addTiddler(tid); // save caused unsaved changes alert and slowdown
}
});
store.setDirty(_dirty);
}
};
config.macros.view.views.activityItem = function(value, place, params, wikifier,
paramString, tiddler) {
var info = config.macros.view.activity.getActivityInfo(tiddler, {});
wikify(info.template, place, null, tiddler);
};
var helper = config.macros.view.activity = {
_isNotification: function(tiddler) {
return tiddler.tags.contains(macro.USER_AT_TAG) || tiddler.tags.contains("@all");
},
_repliesOn: function() {
return tiddlyspace.currentSpace.name === macro.CURRENT_USER;
},
types: {
video: function(tiddler) {
return tiddler.tags.contains("video");
},
geo: function(tiddler) {
return tiddler.fields["geo.lat"] && tiddler.fields["geo.long"];
},
siteInfo: function(tiddler) {
var title = tiddler.fields["server.title"];
return title === "SiteInfo";
},
userSiteIcon: function(tiddler) {
var modifierBag = "%0_public".format(tiddler.modifier);
var title = tiddler.fields["server.title"];
return title === "SiteIcon" && modifierBag === tiddler.fields["server.bag"];
},
spaceSiteIcon: function(tiddler) {
var title = tiddler.fields["server.title"];
return title === "SiteIcon"; // note userSiteIcon above does the bag check
},
shadow: function(tiddler) {
var title = tiddler.fields["server.title"];
return title in config.shadowTiddlers;
},
plugin: function(tiddler) {
return tiddler.tags.contains("systemConfig");
},
followYou: function(tiddler) {
var title = tiddler.fields["server.title"];
title = title.indexOf("@") === 0 ? title.substr(1) : title;
return tiddler.tags.contains("follow") && title === macro.USER_AT_TAG;
},
follow: function(tiddler) {
return tiddler.tags.contains("follow");
},
reply: function(tiddler) {
var title = tiddler.fields["server.title"];
var myTiddler = store.getTiddler(tiddler.title);
var myTiddlerIsOlder = myTiddler && myTiddler.modified < tiddler.modified;
return store.tiddlerExists(title) && myTiddlerIsOlder && helper._repliesOn(tiddler);
},
notify: function(tiddler) {
var title = tiddler.fields["server.title"];
var myTiddler = store.getTiddler(title);
var myTiddlerIsNewer = myTiddler && myTiddler.modified > tiddler.modified;
return helper._isNotification(tiddler) && helper._repliesOn(tiddler) && !myTiddlerIsNewer;
},
standard: function(tiddler) {
return true;
},
image: function(tiddler) {
return config.macros.image.isImageTiddler(tiddler);
}
},
// each type should point to a slice in ActivityStreamTemplates tiddler
getActivityInfo: function(tiddler, options) {
var repliesOn = tiddlyspace.currentSpace.name === macro.CURRENT_USER;
var activityType, i;
if(tiddler) {
for(i = 0; i < macro.templates.length; i++) {
var type = macro.templates[i];
if(!activityType && helper.types[type]) {
if(helper.types[type](tiddler)) {
activityType = type;
}
}
}
}
template = store.getTiddlerText("ActivityStreamTemplates##" + activityType) || locale.standardTemplate;
return activityType ? { template: template, type: activityType } : false;
}
};
config.macros.view.views.link = function(value, place, params, wikifier,
paramString, tiddler) {
var el = createTiddlyLink(place,value,true);
if(params[2]) {
$(el).text(params[2]);
}
};
config.macros.view.views.maplink = function(value, place, params, wikifier,
paramString, tiddler) {
var lat = tiddler.fields["geo.lat"];
var lng = tiddler.fields["geo.long"];
var label = params[2] || value;
if(lat && lng) {
$("<a />").attr("href", "http://maps.google.com/maps?saddr=%0,%1".format(lat, lng)).text(label).appendTo(place);
}
};
var _displayS = tiddlyspace.displayServerTiddler;
tiddlyspace.displayServerTiddler = function(src, title, workspace, callback) {
var localTitle = tiddlyspace.getLocalTitle(title, workspace);
var localTiddler = store.getTiddler(localTitle);
var _callback = function(src, tiddler) {
if(callback) {
callback(src, tiddler);
}
if(localTiddler) {
tiddler.fields["server.activity"] = "true";
tiddler.fields["server.activity.type"] = localTiddler.fields["server.activity.type"];
}
};
return _displayS.apply(this, [ src, title, workspace, _callback ]);
};
}(jQuery));
//}}}
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
looks like eBay's answer to Amazon - looking to own the niche of being the interface between online and offline commerce...
http://is.gd/e0HaFj
I have a lot to say in regards to [[Education]] - if I were to rollback the clock and wave a MagicWand in regards to what I wish someone taught me...
# EntrepreneurialSkills - babysitting, mowing the lawn, selling GreetingCards was a start :D SocialEntrepreneurship would be awesome :)
# FinancialFreedom - the conversation around PassiveIncome, having a GoldenGoose - get this stuff straight now while a kid is inspired!
# HealthyDiet - and one not based on meats and diary!
# SustainableEarth - [[Recycling]], [[Composting]] - if someone even explained the pros and cons of MassTransit - I may never have bought my first car and put this money to better use!
# [[Communication]] - I don't ever remember being taught how to communicate with my family, building EmotionalSkills, learning to create with my family!
# [[Intimacy]] - SexEducation is about avoiding diseases and what not - what about all the interesting stuff in regards to how to relate to the OppositeSex - why wait until you've had a few BadRelationships and learn the hard way - especially when those early relationships tend to scar and impact the rest of one's relationships?
I'm sure I could come up with a lot more stuff. You bet I'll be teaching my kid lots of stuff :)
you may be interested in [[The ICT Pupils' Bill of Rights]]@howITworks and DesignThinking@chalat
http://brooksreview.net/2011/08/ipad-buyers/
# uses Dropbox to store lists
# lists are plain text
# lists can be edited from multiple clients
great friend KatherineChen research on our BurningMan community:
http://enablingcreativechaos.com
additional references she was kind to share....
# [[Rules for Radicals|http://is.gd/GsaNW5], Saul Alinsky
# [[Streetwise for Street Smarts|http://is.gd/gNRuYT]]
# Freire - approach to organizing...
# Archon Fung - Participatory Practices
# graduate center
** [[William Kornblum|http://is.gd/74poyu]] - "community"
** consider: performance studies at NYU
PhD often serves as a "first draft" to one's book!
getting a bit of a late start today... I followed through on assisting for an entire weekend and while CommuntiySunday was great - I got a chance to notice where I don't pay attention to my WellBeing while I'm out InTheField. I still found myself rather rushed in the morning and in the evening, I'm glad I get hungry at 5pm but it's not really when others around me are hungry (or at least they don't say so!) - I also realize it takes something to get home by 8pm and paradoxically, not rush getting home or stay true to my promise to begin WindingDown the day from 8-10.
// going to play with references to other tiddlers rather than expecting myself to review entire journal prose "later" (which is likely never to happen!) This would be the beginnings of what an automated parse would do or help the journalist//
* RemoteSpeakers
* [[Groceries]]
looking forward to getting a CommunityUpdate out before end of the week. however, I don't think there's much I can say beyond what I am already writing and sharing in this TiddlySpace!
I also look forward to watching a DVD called TransformingGriefIntoAliveness - the whole field of [[Hypnotherapy]] catches my fascination as I am curious how it applies to DanceLabs.
I look forward to focusing on following up with CGT2011 now that I'm clear my participation with the WisdomCourse CityTeam this year is CommunitySunday of each weekend.
I've got an TechnologyUpdate to deliver this Tuesday to summarize happenings over the last few weeks that excite me like TiddlySpace and to some extent glad [[Apple]] has gotten their act together and decided to can MobileMe in favor of [[iCloud]]
it's definitely exciting to discover a participant in SF using Corkulous to put his autobiography together - it serves as an approximate front-end for the GlobalInterconnect I find myself continuing to architect BetweenTheCracks!
I continue to enroll people in what's possible with dance and what I'm up to at [[CGT2012]] and my challenge in bringing dance and technology together in a way that lands for people as a contribution to their own lives and communities. being in communication with my [[CGT]] community would probably make a difference :)
Be learning to cook a MiddleEasternLentilStew - guess anyone who is actually reading this [[Journal]] interested in being a GuineaPig (yes, I am always in demand for peeps just OpenToLife :) - come over for dinner :)
oh - one more thing - the difference between <<tag news>> and <<tag Journal>> is the former are less-frequent updates summarizing the daily, prose, StreamOfConsciousness nature of the latter. so they say... the DevilIsInTheDetails ;-)
curious how long you think it will be before [[Facebook]] realizes adapting TiddlyWiki paradigms is critical to their survival?
//currently just [[iPhone]] apps at the moment...[[Android]] apps soon :)//
!Premium (ie. paid) apps worth noting...
# OmniFocus
# SleepCycle
# CoPilot USA
# MotionX GPSDrive
# [[Keynote]]
# LogMeIn
# [[TWEdit]]
# [[iMovie]]
![[Freemium]] models worth noting...
# [[Evernote]]
# MiniBooks
# [[last.fm]]
# [[Skype]]
# [[Dropbox]]
# GoogleVoice
# [[mint.com]]
# LiveJournal
# [[Amazon]]
# [[Facebook]]
# [[Twitter]]
# [[foursquare]]
# HP [[iPrint]]
!just [[Free]] and useful!
# TadaList
# [[Intuition]]
# [[Checkmake]]
# [[Flashlight]]
!while combing for AppsInTheTrash....
# OpenTable - interesting idea around automating the RestaurantReservation process....
// merge with SmartPhoneMatrix//
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="100%" width="100%" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 40 40"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><defs><linearGradient id="lG3826" x1="7.0996" gradientUnits="userSpaceOnUse" y1="18.829" gradientTransform="matrix(1.5858347,0,0,1.8078238,1098.1851,351.13716)" x2="1.5461" y2="-0.95166"><stop stop-color="#000" offset="0"/><stop stop-color="#9c9b99" offset="1"/></linearGradient><linearGradient id="lG3828" y2="372.44" gradientUnits="userSpaceOnUse" y1="375.7" x2="1111.7" x1="1097.7"><stop style="stop-color:#ac9393;" offset="0"/><stop style="stop-color:#c8b7b7;" offset="1"/></linearGradient></defs><g transform="translate(-1080.9375,-357.3329)"><path style="stroke-width:0;stroke-miterlimit:4;fill:url(#lG3826);" d="m1080.9,357.32,39.996-0.0426-0.01,40.008c-15.507-25.519-15.36-25.95-39.988-39.965z"/><path style="stroke-dashoffset:0;stroke:#7aa3be;stroke-linecap:round;stroke-miterlimit:4;stroke-width:1.49999988;fill:#c1e6fd;" d="m1091.9,363.55c6.5716-6.4925,16.576-7.3925,23.147-0.90003,6.5717,6.4925,6.5717,17.019,0,23.511-4.4424-8.6113-12.288-15.713-23.147-22.611z"/><path style="stroke-dashoffset:0;stroke:#ce81b0;stroke-linecap:round;stroke-miterlimit:4;stroke-width:1.5;fill:#f4c4e2;" d="m1110.2,367.62c3.217,3.2168,3.217,8.4323,0,11.649-3.8194-4.2357-8.3307-8.1824-11.649-11.649,3.217-3.2168,8.4325-3.2168,11.649-0.00002z"/><path style="stroke-linejoin:bevel;stroke:#000000;stroke-linecap:round;stroke-dasharray:none;stroke-miterlimit:4;stroke-width:0.80000001;fill:url(#lG3828);" d="m1081,357.34c18.79,6.4752,32.53,16.56,39.894,39.892-11.19-17.028-14.878-19.19-27.352-14.96,6.2984-12.098,3.9371-13.19-12.542-24.932z"/></g></svg>
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
!anatomy
# what is available in a public space like Akbar which is authentic, how it opens up potential participants freely (with the only structure being a specific type of music conducive to PlayfulPartnership)
# invite participants to bring whatever [[Barriers]] they saw for themselves in the above space to our workshop, and then
# invite them to go back the following week with whatever they got out of the workshop and cause a breakthrough back out in public!
# have them witness their [[Transformation]] and their NewWayOfBeing on the DanceFloor for themselves
!players
# someone good at doing the "surgery" and working with participants in a safe, private space
# someone working with people in public, no holds barred and pushing people to see their edge and giving them space to be with it.
!key
the trick is once people are present to their edge - to offer them the space to work through it!
choosing a "niche" in [[Technology]] is critical
* fwds WellBeing
* support for [[philanthropists|Philanthropist]], generous individuals
* [[transformative|Transformational]] & [[Experimental]] - [[Failure]] is part of the [[Game]]
* [[Partnership]] in [[Discovery]]
* [[playful|Play]], anything goes
/***
|''Name''|TiddlySpaceFollowingPlugin|
|''Version''|0.7.1|
|''Description''|Provides a following macro|
|''Author''|Jon Robson|
|''Requires''|TiddlySpaceConfig TiddlySpaceTiddlerIconsPlugin ErrorHandler|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
Tag a tiddler with "follow" to express a list of followers.
Using the {{{<<followTiddlers X>>}}}
will reveal the number of tiddlers with name X in the set of spaces the *current* user viewing your space follows.
{{{<<following jon>>}}} will list all the users following Jon.
{{{<<followers jon>>}}} will list all the followers of jon.
{{{<linkedTiddlers>>}}} will list all tiddlers across TiddlySpace linked to the current tiddler
{{{<linkedTiddlers follow:yes>>}}} will list all tiddlers across TiddlySpace that come from your list of followers
adds spaceLink view type {{{<<view server.bag spaceLink>>}}} creates a link to the space described in server.bag
{{{<<view server.bag spaceLink title>>}}} makes a link to the tiddler with title expressed in the field title in space server.bag
If no name is given eg. {{{<<following>>}}} or {{{<<follow>>}}} it will default the current user.
!StyleSheet
.followTiddlersList li {
list-style:none;
}
.followButton {
width: 2em;
}
.followTiddlersList li .siteIcon {
height:48px;
width: 48px;
}
#sidebarTabs .followers li a,
.followers .siteIcon,
.followers .siteIcon div {
display: inline;
}
.followTiddlersList li .externalImage, .followTiddlersList li .image {
display: inline;
}
.scanResults li {
list-style: none;
}
!Code
***/
//{{{
(function($) {
var LIMIT_FOLLOWING = 100;
var tweb = config.extensions.tiddlyweb;
var tiddlyspace = config.extensions.tiddlyspace;
var currentSpace = tiddlyspace.currentSpace.name;
var shadows = config.shadowTiddlers;
config.annotations.ScanTemplate = "This tiddler is the default template used in the display of tiddlers founding using the tsScan macro. To access attributes use the view macro e.g. {{{<<view title text>>}}}";
shadows.ScanTemplate = "<<view modifier SiteIcon width:24 height:24 spaceLink:yes label:no>> <<view title link>>";
shadows.FollowersTemplate = "<<view server.bag SiteIcon width:24 height:24 spaceLink:yes label:no>> <<view server.bag spaceLink>>";
shadows.FollowingTemplate = "<<view title SiteIcon width:24 height:24 spaceLink:yes label:no>> <<view title spaceLink>>";
shadows.FollowTiddlersBlackList = "";
shadows.FollowTiddlersHeading = "There are tiddlers in spaces you follow using the follow tag which use the title <<view title text>>";
shadows.FollowTiddlersTemplate = ["* <<view server.space SiteIcon width:24 height:24 spaceLink:yes label:no>> ",
"<<view server.space spaceLink title external:no>> modified by <<view modifier spaceLink>> ",
"in the <<view server.space spaceLink>> space (<<view modified date>> @ <<view modified date 0hh:0mm>>).\n"].join("");
var name = "StyleSheetFollowing";
shadows[name] = "/*{{{*/\n%0\n/*}}}*/".
format(store.getTiddlerText(tiddler.title + "##StyleSheet"));
store.addNotification(name, refreshStyles);
// provide support for sucking in tiddlers from the server
tiddlyspace.displayServerTiddler = function(src, title, workspace, callback) {
var adaptor = store.getTiddlers()[0].getAdaptor();
var localTitle = tiddlyspace.getLocalTitle(title, workspace);
var tiddler = new Tiddler(localTitle);
tiddler.text = "Please wait while this tiddler is retrieved...";
tiddler.fields.doNotSave = "true";
store.addTiddler(tiddler);
src = story.displayTiddler(src || null, tiddler.title);
tweb.getStatus(function(status) {
var context = {
host: tweb.host, // TODO: inherit from source tiddler?
workspace: workspace,
headers: { "X-ControlView": "false" }
};
var getCallback = function(context, userParams) {
var tiddler = context.tiddler;
tiddler.title = localTitle;
store.addTiddler(tiddler);
story.refreshTiddler(localTitle, null, true); // overriding existing allows updating
if(callback) {
callback(src, tiddler);
}
};
adaptor.getTiddler(title, context, null, getCallback);
});
};
tiddlyspace.scroller = {
runHandler: function(title, top, bottom, height) {
var i;
var handlers = tiddlyspace.scroller.handlers;
var tidEl = story.getTiddler(title);
if(tidEl) {
var topEl = $(tidEl).offset().top + 20;
if(top === false || (topEl > top && topEl < bottom)) {
var h = handlers[title];
for(i = 0; i < h.length; i++) {
h[i]();
}
tiddlyspace.scroller.clearHandlers(title);
}
} else {
tiddlyspace.scroller.clearHandlers(title);
}
},
clearHandlers: function(title) {
tiddlyspace.scroller.handlers[title] = [];
},
registerIsVisibleEvent: function(title, handler) {
tiddlyspace.scroller.handlers[title] = tiddlyspace.scroller.handlers[title] || [];
tiddlyspace.scroller.handlers[title].push(handler);
},
init: function() {
this.handlers = {};
this.interval = window.setInterval(function() {
var top = $(window).scrollTop();
var height = $(window).height();
var bottom = top + height;
var title;
for(title in tiddlyspace.scroller.handlers) {
if(title) {
tiddlyspace.scroller.runHandler(title, top, bottom, height);
}
}
}, 2000); // every 2 seconds check scroll position
}
};
tiddlyspace.scroller.init();
var followMacro = config.macros.followTiddlers = {
locale: {
followListHeader: "Here are tiddlers from spaces you follow using the follow tag which use this title.",
noTiddlersFromFollowers: "None of the spaces you follow contain a tiddler with this name.",
errorMessage: "There was a problem retrieving tiddlers from the server. Please try again later."
},
init: function() {
followMacro.lookup = {};
},
followTag: "follow",
getHosts: function(callback) {
tweb.getStatus(function(status) {
callback(tweb.host, tiddlyspace.getHost(status.server_host, "%0"));
});
},
getBlacklist: function() {
return store.getTiddlerText("FollowTiddlersBlackList").split("\n");
},
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var args = paramString.parseParams("anon")[0];
var containingTiddler = story.findContainingTiddler(place).getAttribute('tiddler');
var title = (args.anon && args.anon[0]) || tiddler.fields["server.title"] || tiddler.title;
var tid = store.getTiddler(title);
var user = params[1] || false;
if(tid) {
followMacro.makeButton(place, {
url: "/search?q=title:%22" + encodeURIComponent(title) + "%22",
containingTiddler: containingTiddler,
blacklisted: followMacro.getBlacklist(), title: title, user: user,
consultFollowRelationship: (args.follow &&
args.follow[0] === 'false') ? false : true });
}
},
makeButton: function(place, options) { // this is essentially the same code in TiddlySpaceFollowingPlugin
var title = options.title;
var blacklisted = options.blacklisted;
var tiddler = store.getTiddler(title);
var btn = $('<div class="followButton" />').addClass("notLoaded").appendTo(place)[0];
if(blacklisted.contains(title)) {
$(btn).remove();
return;
} else {
var user = options.user;
window.setTimeout(function() { // prevent multiple calls due to refresh
tiddlyspace.scroller.registerIsVisibleEvent(options.containingTiddler, function() {
var mkButton = function(followers, ignore) {
if(!followers && !ignore) {
$(btn).remove();
} else {
$("<a />").appendTo(btn);
var scanOptions = { url: options.url,
spaceField: options.spaceField || "bag", template: null, sort: "-modified",
callback: function(tiddlers) {
$(btn).removeClass("notLoaded");
followMacro.constructInterface(btn, tiddlers);
}
};
if(!ignore) {
scanOptions.showBags = followMacro._getFollowerBags(followers);
}
scanOptions.hideBags = [tiddler.fields["server.bag"]];
scanMacro.scan(null, scanOptions, user);
}
};
if(options.consultFollowRelationship) {
followMacro.getFollowers(mkButton);
} else {
mkButton([], true);
}
});
}, 1000);
}
},
constructInterface: function(container, tiddlers) {
var txt = tiddlers.length;
var className = txt > 0 ? "hasReplies" : "noReplies";
var el = $(story.findContainingTiddler(container));
$(container).empty().addClass(className);
var btn = $("<a />").addClass("followedTiddlers").text(txt).
click(function(ev) {
followMacro.followingOnClick(ev);
}).appendTo('<div class="followedTiddlers" />').appendTo(container)[0];
$.data(btn, "tiddlers", tiddlers);
},
followingOnClick: function(ev) {
var target = ev.target;
var locale = followMacro.locale;
var el = $('<div class="followTiddlersList" />')[0];
var popup = Popup.create(target,"div");
$(popup).addClass("taggedTiddlerList followList").click(function(ev) { // make it so only clicking on the document outside the popup removes the popup
if(ev.target.parentNode != document) {
ev.stopPropagation();
}
}).append(el);
var tiddlers = $.data(target, "tiddlers") || [];
scanMacro.template(el, tiddlers.slice(0,1), "FollowTiddlersHeading");
scanMacro.template(el, tiddlers, "FollowTiddlersTemplate");
if(tiddlers.length === 0) {
$("<li />").text(locale.noTiddlersFromFollowers).appendTo(el);
}
Popup.show();
ev.stopPropagation();
return popup;
},
_getFollowerBags: function(followers) { // XXX: private or not?
return $.map(followers, function(name, i) {
return name != currentSpace ? "%0_public".format(name) : null;
});
},
getFollowers: function(callback, username) {
// returns a list of spaces being followed by the existing space
var followersCallback = function(user) {
if(!user.anon) {
scanMacro.scan(null, {
url: "/search?q=bag:%0_public tag:%1 _limit:%2".format(user.name, followMacro.followTag, LIMIT_FOLLOWING),
spaceField: "title", template: null, cache: true,
callback: function(tiddlers) {
var followers = [];
for(var i = 0; i < tiddlers.length; i++) {
followers.push(tiddlyspace.resolveSpaceName(tiddlers[i].title));
}
callback(followers);
}
});
} else {
callback(false);
}
};
return !username ? tweb.getUserInfo(followersCallback) : followersCallback({ name: username });
}
};
var scanMacro = config.macros.tsScan = {
init: function () {
this.scanned = {};
},
_tiddlerfy: function(jsontiddlers, options) {
var tiddlers = [];
var spaceField = options.spaceField || "bag"; // TODO: phase out use view types instead
$.each(jsontiddlers, function(i, t) {
var use = false;
if(!options.showBags || (options.showBags && options.showBags.contains(t.bag))) {
use = true;
}
if(options.hideBags && options.hideBags.contains(t.bag)) {
use = false;
}
if(use) {
var spaceName = t[spaceField];
var tiddler = config.adaptors.tiddlyweb.toTiddler(t, tweb.host);
tiddler.fields["server.space"] = tiddlyspace.resolveSpaceName(spaceName);
tiddlers.push(tiddler);
}
});
return tiddlers;
},
_scanCallback: function(place, jsontiddlers, options) {
var locale = followersMacro.locale;
var tiddlers = scanMacro._tiddlerfy(jsontiddlers, options);
if(options.sort) {
tiddlers = store.sortTiddlers(tiddlers, options.sort);
}
if(options.filter) {
var _store = new TiddlyWiki();
config.lastStore = _store;
for(var i = 0; i < tiddlers.length; i++) {
var clone = tiddlers[i];
clone.title = tiddlyspace.getLocalTitle(clone.title, clone.fields['server.workspace']);
_store.addTiddler(clone);
}
tiddlers = _store.filterTiddlers(options.filter);
}
if(place) {
$(place).empty();
var list = $("<ul />").appendTo(place)[0];
scanMacro.template(list, tiddlers, options.template);
if(tiddlers.length === 0) {
$("<li />").text(options.emptyMessage || locale.noone).appendTo(list);
$(list).addClass("emptyList");
}
}
if(options.callback) {
options.callback(tiddlers);
}
},
constructSearchUrl: function(host, options) {
if(options.url) {
return options.url;
}
var inputs = options.searchValues;
var tag = options.tag;
var searchField = options.searchField || "title";
var searchQuery = [];
for(var i = 0; i < inputs.length; i++) {
searchQuery.push('%0:"%1"'.format(searchField, inputs[i]));
}
var query = searchQuery.join(" OR ");
query = tag ? "(%0) AND tag:%1".format(query, tag) : query;
query = options.query ? "%0;%1;".format(query, options.query) : query;
query = options.fat ? "%0&fat=1".format(query) : query;
return '%0/search?q=%1'.format(host, query);
},
scan: function(place, options) { // TODO: make use of list macro with url filter
var locale = followersMacro.locale;
options.template = options.template ? options.template : "ScanTemplate";
followMacro.getHosts(function(host, tsHost) {
$(place).text(followersMacro.locale.pleaseWait);
options = options ? options: {};
var url = scanMacro.constructSearchUrl(host, options);
if(options.cache && scanMacro.scanned[url]) {
var tiddlers = scanMacro.scanned[url].tiddlers;
var run = function(tiddlers) {
scanMacro._scanCallback(place, tiddlers, options);
};
if(tiddlers) {
run(tiddlers);
} else {
scanMacro.scanned[url].callbacks.push(run);
}
} else {
var callback = function(tiddlers) {
scanMacro._scanCallback(place, tiddlers, options);
};
if(scanMacro.scanned[url] && scanMacro.scanned[url].callbacks) {
scanMacro.scanned[url].callbacks.push(callback);
} else {
scanMacro.scanned[url] = {
callbacks: [callback]
};
}
ajaxReq({
url: url,
dataType: "json",
success: function(tiddlers) {
scanMacro.scanned[url].tiddlers = tiddlers;
var callbacks = scanMacro.scanned[url].callbacks;
while(callbacks.length > 0) {
callbacks.pop()(tiddlers);
}
},
error: function(xhr) {
$(place).empty();
$("<span />").addClass("annotation error").text(locale.error.format(xhr.status)).appendTo(place);
}
});
}
});
},
template: function(place, tiddlers, template) { // TODO: make use of list macro.
for(var i = 0; i < tiddlers.length; i++) {
var tiddler = tiddlers[i];
var item = $('<li class="spaceName" />').appendTo(place)[0];
var spaceName = tiddler.fields["server.space"] || "";
var templateText = store.getTiddlerText(template).replace(/\$1/mg, spaceName);
wikify(templateText, item, null, tiddler);
}
},
getOptions: function(paramString, tiddler) {
var args = paramString.parseParams("name", null, true, false, true)[0];
var options = { query: false, sort: false, tag: false, template: false, showBags: args.show || false,
hideBags: args.hide || false, filter: false, spaceField: "bag", searchField: "title", fat: false,
emptyMessage: false };
for(var name in args) {
if(name != "name") {
if(name == "fat") {
options[name] = true;
} else {
options[name] = args[name][0];
}
}
}
// if user has set searchField to modifier, then use the modifiers value if available otherwise use searchValues.
var searchField = options.searchField;
var searchValues = args[searchField] ? args[searchField] : args.searchValues;
// if neither of those were used use the first parameter
var defaultValues = tiddler ? [ tiddler.title ] : [];
options.searchValues = searchValues ? searchValues : ( args.name ? [args.name[0]] : defaultValues);
return options;
},
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var container = $("<div />").addClass("scanResults resultsArea").appendTo(place)[0];
var options = scanMacro.getOptions(paramString, tiddler);
scanMacro.scan(container, options);
}
};
var followersMacro = config.macros.followers = {
locale: {
loggedOut: "Please login to see the list of followers",
noSupport: "We were unable to retrieve followers as your browser does not support following.",
pleaseWait: "Please wait while we look this up...",
error: "Error %0 occurred whilst retrieving data from server",
noone: "None."
},
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var locale = followersMacro.locale;
var args = paramString.parseParams("name", null, true, false, true)[0];
var username = args.name ? args.name[0] : false;
var container = $('<div class="followers" />').text(locale.pleaseWait).
appendTo(place)[0];
var followersCallback = function(user) {
if(user.anon) {
$("<span />").text(locale.loggedOut).appendTo(container);
} else {
var options = scanMacro.getOptions(paramString);
$.extend(options, {
url: "/search?q=title:@%0 OR title:%0 tag:%1 _limit:%2".
format(user.name, followMacro.followTag, LIMIT_FOLLOWING),
spaceField: "bag",
template: options.template ? options.template : "FollowersTemplate"
});
scanMacro.scan(container, options);
}
};
return !username ? followersCallback({ name: currentSpace }) : followersCallback({ name: username });
}
};
var followingMacro = config.macros.following = {
locale: {
pleaseWait: followersMacro.locale.pleaseWait,
loggedOut: "Please login to see who you are following",
noSupport: followersMacro.locale.noSupport,
error: followersMacro.locale.error,
noone: followersMacro.locale.noone
},
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var locale = followingMacro.locale;
var args = paramString.parseParams("name", null, true, false, true)[0];
var fat = args.fat ? true : false;
var username = args.name ? args.name[0] : false;
var container = $('<div class="following" />').text(locale.pleaseWait).
appendTo(place)[0];
var followingCallback = function(user) {
if(user.anon) {
$("<span />").text(locale.loggedOut).appendTo(container);
} else {
var options = scanMacro.getOptions(paramString);
$.extend(options, {
url: "/search?q=bag:%0_public tag:%1 _limit:%2".format(user.name, followMacro.followTag, LIMIT_FOLLOWING),
spaceField: "title",
template: options.template ? options.template : "FollowingTemplate"
});
scanMacro.scan(container, options);
}
};
return !username ? followingCallback({ name: currentSpace }) : followingCallback({ name: username });
}
};
var linkedMacro = config.macros.linkedTiddlers = {
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var args = paramString.parseParams("anon")[0];
var title = params[0] || tiddler.fields["server.title"] || tiddler.title;
var tid = store.getTiddler(title);
var containingTiddler = story.findContainingTiddler(place).getAttribute('tiddler');
if(tid) {
followMacro.makeButton(place, {
spaceField: "recipe",
url: "/bags/%0/tiddlers/%1/backlinks".format(tid.fields['server.bag'],
encodeURIComponent(tid.title)),
blacklisted: followMacro.getBlacklist(),
title: title,
containingTiddler: containingTiddler,
user: params[1] || false,
consultFollowRelationship: args.follow ? true : false });
}
}
};
if(config.options.chkFollowTiddlersIsLinkedTiddlers) {
merge(config.macros.followTiddlers, config.macros.linkedTiddlers);
config.shadowTiddlers.FollowTiddlersHeading = "These are the other tiddlers that link to this tiddler.";
}
})(jQuery);
//}}}
"wow - this book really did a great job capturing my current worldview - it was very validating! i found the shift he describes in [[Healthcare]] fascinating - he backs up a lot of what he is sharing with lots of research and examples - i was left quite inspired by his mention of the use of "ParallelCharts" with patients in particular. he has definitely presented a [[Framework]] I can work within!"
//Written on Jul 10, 2009 at 04:54AM//
!six new senses
# [[Design]]
# [[Story]]
# [[Symphony]]
# [[Empathy]]
# [[Play]]
# [[Meaning]]
!rough PersonalExpression
<html>
<iframe src="https://docs.google.com/present/embed?id=dhjhk7vs_164g4bbdjc8&interval=5&autoStart=true&size=m" frameborder="0" width="555" height="451"></iframe>
</html>
Have some appreciation for the ingenuity of the open, PC architecture with special thanks to the [[Linux]], OpenSource community - it just works - no [[Proprietary]] stuff to deal with (unless u are dealing w [[Compaq]] which I lost respect for!)
Linux chooses to take its time refining its UserInterface and is clearly evolving towards the refinement of [[MacOSX]] - CollaborativeInnovation shall win out long-term. OpenSource is fueled by [[Play]]!
!Questions to ask
# Can I live comfortably on Social Security?
# How good is the health care?
# What will I owe in taxes?
# What about foreign taxes?
# Do retirees get special senior benefits?
# How do I collect my Social Security payments?
# Can I own land abroad?
# Are the crime rates high?
# Will I have to learn a new language?
# Can I get domestic and garden help?
# Can I see American television and movies?
# Can I buy my favorite American foods?
http://goo.gl/H6wSw
these iPad apps made the cut...
!Video
# AirVideo
# VideoLoopPresenter
# Netflix
# Slingbox
# TED
# Crackle
# VEVO
!Documentation
# Dropbox
# Pages
# Keynote
# iDisk
# FreeMindLite
# GoodReader
# TWEdit
!Admin
# LogMeIn
# Remoter
# RemoteHD
# Onavo
!Music
# DI
# djay
# RjVoyager
!Health
# Superfood HD
!Phone
# Talkatone
# GoogleVoice
!Play
# BannerFree
# MazeFingerPlus
# AngryBirds
!Navigation
# CoPilotLive
# Mapquest
# GPSDriveHD
!Education
# Elements
# Starwalk
# WestwardExpansion
# AppStart
# ToyStoryRead-Along
!Business
# OmniFocus
# WebEx
# GuardianEyewitness
<<<
Supplementation with β-alanine has been shown to increase the concentration of carnosine in muscles, decrease fatigue in athletes and increase total muscular work done
<<<
http://en.wikipedia.org/wiki/Beta_alanine
I don't think I've ever had pasta so perfect before! It was a spaghetti & red sauce w olive & basil. I requested the dish be vegan and realized I didn't make it clear I was also requesting a no SaltSugarOil diet. I'm quite certain there was OilveOil and the salt was so overpowering on my tastebuds, I'm clear I would have enjoyed the fresh, natural herbs without any salt! slap on the hand & look forward to next time :)
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="434 218 68 68"
width="30" height="30">
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
<g>
<path d="M 478.39694 232.53705 L 478.39694 232.53705
C 477.1145 231.85132 475.77875 231.30147 474.41058 230.88734 L 474.41058 218.24994 L 461.58942 218.24994
L 461.58942 230.88734 C 460.22125 231.30147 458.8855 231.85132 457.60306 232.53705 L 448.66824 223.60214
L 439.6022 232.66814 L 448.53717 241.60304 C 447.8515 242.8854 447.30157 244.22116 446.88745 245.58936
L 434.25 245.58936 L 434.25 258.41052 L 446.88745 258.41052
C 447.30157 259.77869 447.8515 261.11447 448.53717 262.39688 L 439.6022 271.33173 L 448.66824 280.3978
L 457.60306 271.46283 C 458.8855 272.14862 460.22125 272.69846 461.58942 273.11252 L 461.58942 285.74988
L 474.41058 285.74988 L 474.41058 273.11252 C 475.77875 272.69846 477.1145 272.14862 478.39694 271.46283
L 487.33176 280.3978 L 496.39767 271.33173 L 487.46286 262.39688
C 488.14853 261.11447 488.69836 259.77869 489.11255 258.41052 L 501.74988 258.41052 L 501.74988 245.58936
L 489.11255 245.58936 C 488.69836 244.22116 488.14853 242.8854 487.46286 241.60304 L 496.39767 232.66814
L 487.33176 223.60214 Z M 475.3328 244.66714 C 479.3825 248.71698 479.3825 255.2829 475.3328 259.33273
C 471.28296 263.3826 464.71704 263.3826 460.66724 259.33273
C 456.61737 255.2829 456.61737 248.71698 460.66724 244.66714
C 464.71704 240.61734 471.28296 240.61734 475.3328 244.66714" fill="#111"
class="glyph"/>
</g>
</g>
</svg>
!Followers
<<followers>>
!Activity
[[Replies and Notifications]]
<<activity>>
!Following
All spaces tagged follow
<<list filter [tag[follow]][sort[title]]>>
<<followSuggestions>>
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/YQGBjj4vzCg" frameborder="0" allowfullscreen></iframe>
</html>
my GoogleProfile is pretty much now one and the same with [[Google+]]
I like this idea of a [[cloud phone|http://news.discovery.com/tech/cloud-phones-work-like-email.html]] - a phone that just gets passed around as a resource where people just "log in"... this is definitely what I had in mind while thinking about "Burnie" as a community resource!
With Apple's release of the iCloud, while proprietary, the advantage being is we can expect developments on this front to move at quite a rapid clip - with the announcement of wireless backups - the reality of reconfiguring an iPhone on demand is technically already here!
https://www.facebook.com/moversandshakerscoaching
ShivaSleeps is my first WordPress blog.
An RSSPlugin aggregates blog content [[transparently|Transparency]] into your TiddlySpace.
it is probably not worth the [[Overhead]] of keeping Tiddlers synced - new entries are imported once regardless of whether you go back and change previous entries.
I've been holding a vision for being a "dance executive" - to me this means someone who loves dance, has a passion for building GlobalCommunity, and will leverage EnterpriseStructures to have dance show up as a transformative experience for everyone.
I've made it my own mission to assemble to the toolset to allow this to happen and thankful to everyone who finds this useful for their own work and passion.
I've switched to RockMelt as my primary browser.
RockMelt has a proprietary UI much like Apple's [[MacOSX]] on top of BSD.
It will be interesting to watch the BrowserWars - I haven't been so entertained in years and my heart will always be with OpenSource!
If you feel quite passionate about [[Firefox]], please do reply to this tiddler and share your thoughts!
http://www.chezbettay.com/pages/dinners1/dinrs_eggplant_crispy.html
after focusing on living in Thailand for 4 years and coming back to the states via Japan, I didn't realize it would take me a few years to adjust in a few areas:
# MassTransit - I'd burnt out my legs so badly, I actually have become appreciate of this thing we call the automobile!
# diet - came back shocked how much more salt & oil my folks have learned to use in their ThaiCooking!
# [[Technology]] - we are quite blessed with the abundance of technology options and explorations. lucky for those outside the states - TiddlySpace is in your hands! Explorations in areas of communications and media with stuff like GoogleVoice and [[Netflix]] are more restricted so you don't quite get to experience to full breadth of what's possible overseas...
feelings of [[Focus]]
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/mz-0XtjK-4Q" frameborder="0" allowfullscreen></iframe>
</html>
<<closeAll>><<permaview>><<newJournal "MMM DD, YYYY" Journal>><<newTiddler>>
fiddling around with TheMatrix and [[Reality]] using SliTaz, TinyCore and FamilyComputer ChopShop...
* hda - null (IDE2 master)
* hdb - //was RW-241040 (40x), not using on-board IDE//
* hdc - null (IDE2 master)
* hdd - null (IDE2 slave)
* hde - WDC (EXT partition) (clones of FIREBALL, W2K)
* hdf - WDC (/usr/mm)
* hdg - DVD-ROM (20x) MWDMA2
* hdh - [[Fireball]] max UDMA33 (CS jumper fail?)
The first time I heard of the term "discourse" was in reference to a year-long discussion in the WisdomArea of LandmarkEducation.
While sharing with a friend my excitement about TiddlySpace - it dawned on me that what is wonderful is TiddlySpace allows you to "discourse" (yes, as in the verb) about what you are passionate about in life - in many senses, you ''are'' the authority on your own life!
I assert an IntentionalCommunity will use TiddlySpace to capture their own universe, their own understanding of the world they began to create when they were born. As we each share with each other what matters to us - a NetworkOfConversations (as defined by the WisdomCourse) arises. Being rooted in our own understanding of the universe creates a lot of space for [[Engagement]] and [[Play]]. The comments and/or opinions of others are not personal. [[Creation]] is naturally born as people are [[Unattached]] to what's happened in their lives in the past and take an interest in creating newly. What's left is the JoyOfLife!
This developer deserves a medal of honor! After being let down by the LogMeIn folks re: Lion support - Remoter comes to save the day for $2 w SSH support!
What's on my wishlist:
# Lion UI to request permission from current user to share screen or to create a VirtualDesktop (if u can get this to work, this app will be king!)
# storing setups in the cloud so my iPhone & iPad have access to the same configs (perhaps in [[iCloud]]?)
# PIN code for the app for extra security
# when asking for a user/pwd - label dialog box w SSH or VNC so avoid confusion
# indicator that an SSH session is active (still says "Start") - it is a really awesome feature to map client VNC ports via a separate SSH session!
# UI for deleting configs to be more consistent w other iOS apps
GREAT job overall - this is the app u want!!!
<<<
Type 1: One person in the relationship takes up most of the EmotionalSpace.
In this type of relationship, one partner seems to be super involved, expressing most of everything in the relationship. This person may seem extreme, emotional, needy, intense, and possessive, while the other person may appear to be uninvolved in the relationship, seeming to have hardly any needs at all.
The partner that seems super involved is typically filling up the most EmotionalSpace in the relationship, often out of fear that there will not be a relationship if the EmotionalSpace is not occupied.
Unfortunately this is a mistake. The EmotionalLife of the relationship needs to be generated by two people as equally as possible. Otherwise, you end up with a lopsided relationship and with both people unhappy. One will be unhappy because he or she is always working on the relationship and the other one will be unhappy because he or she seemingly can’t get a break from the drama.
What’s more, the person who is generating the relationship will eventually get BurnedOut and will need to stop. If the lopsided relationship has been going on for too long, it may simply fall apart.
<<<
source: http://goo.gl/IaVdE
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
* StorytellingApproach to ProgramEvaluation
* http://dancelabs.wikispaces.com/Community+Partners
* http://dancelabs.wikispaces.com/Working+For+Good
* EngineerTurnedDancer ThaiCommunityDevelopmentCenter: http://chinarut.livejournal.com/319547.html
* structure of 1.5 Trailer -> Documentary [[Screenwriting]]
* BusinessStructure - BusinessPlan
* CommunicationsPlan - PRPlan
* Fundraising - ExecutiveDirector - http://director.dancelabs.com
* no to email - [[Wiki]] - GoogleDocs WorkshopDesignSoftware
* TedKo: http://completesociety.org/
There are various constructs to achieve this goal as I hop from one ComputingEnvironment to another...
# TiddlySpace
# [[Firefox]]
# GoogleApps
# OmniFocus //(a bit [[Heavyweight]] but makes a difference)//
# [[last.fm]]
I've been toying around with this service for a few weeks and it got put into prime time now that I've been invited to experiment with porting a [[Verizon]] mobile number to GoogleVoice and explore what might be possible to make GoogleVoice your primary portal.
Given we have an UnlimitedDataPlan at our disposal - I plan to actively move as many calls over to VoIP whether it's traditionally through [[Skype]], GoogleVoice, or through now through Talkatone which allows you to make and take GoogleVoice calls without a CellularNetwork. This will be particularly interesting to experiment with in making and receiving InternationalCalls from [[Europe]] without the usual RoamingFees by using a local SIMCard.
this service is another key to DataOnlyMobileComputing!
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/W6Et_HT49ZU" frameborder="0" allowfullscreen></iframe>
</html>
ok - since I've having this with [[Soba]] - thought about calling it VegetarianNoodleSauce but this doesn't imply the TomatoBase
* [[Eggplant]], 1 lb, 1 inch cubes
* 1 GreenPepper & RedPepper (I like organge & yellow ones too :)
* [[Carrot]] - chopped finely
* [[Onion]] - 1 medium
* [[Garlic]] - 4 cloves
* [[Tomato]] - 28 oz can stewed
* [[TomatoPaste]] - been leaving this out, seems to be fine!
* ChiliPepper, deseeded & chopped
* [[Oregano]] - 1 tsp, dried
* [[Basil]] - 1 tsp, dried
* [[Rosemary]] - 1 tsp, dried
* CrackedPepper - to taste
* [[Olives]] - for garnish - seeking unsalted olives right now!
chop chop chop and cook in a VityClay on StewMode for 45 min to an hour and presto - enough for a whole family!
/***
https://raw.github.com/tiddlyweb/chrjs/master/main.js
***/
//{{{
// TiddlyWeb adaptor
// v0.14.3
/*jslint vars: true, unparam: true, nomen: true, white: true */
/*global jQuery */
var tiddlyweb = (function($) {
"use strict";
var tw = {
routes: {
// host is the TiddlyWeb instance's URI (including server_prefix)
// placeholders "_type" & "name" refer to the respective bag/recipe
root : "{host}/",
bags : "{host}/bags",
bag : "{host}/bags/{name}",
recipes : "{host}/recipes",
recipe : "{host}/recipes/{name}",
tiddlers : "{host}/{_type}s/{name}/tiddlers",
tiddler : "{host}/{_type}s/{name}/tiddlers/{title}",
revisions: "{host}/{_type}s/{name}/tiddlers/{title}/revisions",
revision : "{host}/{_type}s/{name}/tiddlers/{title}/revisions/{revision}",
search : "{host}/search?q={query}"
}
};
var convertTimestamp, supplant;
// host (optional) is the URI of the originating TiddlyWeb instance
tw.Resource = function(type, host) {
if(arguments.length) { // initialization
this._type = type;
if(host !== false) {
this.host = host !== undefined ? host.replace(/\/$/, "") : null;
}
}
};
$.extend(tw.Resource.prototype, {
// retrieves resource from server
// callback is passed resource, status, XHR (cf. jQuery.ajax success)
// errback is passed XHR, error, exception, resource (cf. jQuery.ajax error)
// filters is an optional filter string (e.g. "select=tag:foo;limit=5")
get: function(callback, errback, filters) {
var uri = this.route();
if(filters) {
var separator = uri.indexOf("?") === -1 ? "?" : ";";
uri += separator + filters;
}
var self = this;
return $.ajax({
url: uri,
type: "GET",
dataType: "json",
success: function(data, status, xhr) {
var resource = self.parse(data);
resource.etag = xhr.getResponseHeader("Etag");
callback(resource, status, xhr);
},
error: function(xhr, error, exc) {
errback(xhr, error, exc, self);
}
});
},
// sends resource to server
// callback is passed data, status, XHR (cf. jQuery.ajax success)
// errback is passed XHR, error, exception, resource (cf. jQuery.ajax error)
put: function(callback, errback) {
var self = this;
var options = {
url: this.route(),
type: "PUT",
contentType: "application/json",
data: JSON.stringify(this.baseData()),
success: function(data, status, xhr) {
callback(self, status, xhr);
},
error: function(xhr, error, exc) {
errback(xhr, error, exc, self);
}
};
if(this.ajaxSetup) {
this.ajaxSetup(options);
}
return $.ajax(options);
},
// deletes resource on server
// callback is passed data, status, XHR (cf. jQuery.ajax success)
// errback is passed XHR, error, exception, resource (cf. jQuery.ajax error)
"delete": function(callback, errback) {
var self = this;
var options = {
url: this.route(),
type: "DELETE",
success: function(data, status, xhr) {
callback(self, status, xhr);
},
error: function(xhr, error, exc) {
errback(xhr, error, exc, self);
}
};
if(this.ajaxSetup) {
this.ajaxSetup(options);
}
return $.ajax(options);
},
// returns an object carrying only the essential information of the resource
baseData: function() {
var data = {},
self = this;
$.each(this.data, function(i, item) {
var value = self[item];
if(value !== undefined) {
data[item] = value;
}
});
return data;
},
// returns corresponding instance from a raw object (if applicable)
parse: function(data) {
return data;
},
// list of accepted keys in serialization
data: [],
// returns resource's URI
route: function() {
return supplant(tw.routes[this._type], this);
}
});
var Container = function(type, name, host) {
if(arguments.length) { // initialization
tw.Resource.apply(this, [type, host]);
this.name = name;
this.desc = "";
this.policy = new tw.Policy({});
}
};
Container.prototype = new tw.Resource();
$.extend(Container.prototype, {
tiddlers: function() {
return new tw.TiddlerCollection(this);
},
parse: function(data) {
var type = tw._capitalize(this._type),
container = new tw[type](this.name, this.host);
data.policy = new tw.Policy(data.policy);
return $.extend(container, data);
},
data: ["desc", "policy"]
});
// attribs is an object whose members are merged into the instance (e.g. query)
tw.Collection = function(type, host, attribs) {
if(arguments.length) { // initialization
tw.Resource.apply(this, [type, host]);
$.extend(this, attribs);
}
};
tw.Collection.prototype = new tw.Resource();
tw.TiddlerCollection = function(container, tiddler) {
if(arguments.length) { // initialization
tw.Collection.apply(this, [tiddler ? "revisions" : "tiddlers"]);
this.container = container || null;
this.tiddler = tiddler || null;
}
};
tw.TiddlerCollection.prototype = new tw.Collection();
$.extend(tw.TiddlerCollection.prototype, {
parse: function(data) {
var container = this.container;
return $.map(data, function(item, i) {
var tiddler = new tw.Tiddler(item.title, container),
bag = item.bag;
tiddler = tw.Tiddler.prototype.parse.apply(tiddler, [item]);
if(!tiddler.bag && bag) { // XXX: bag always present!?
tiddler.bag = new tw.Bag(bag, container.host);
}
if(!tiddler.recipe && item.recipe) {
tiddler.recipe = new tw.Recipe(item.recipe, container.host);
}
delete item.recipe;
return $.extend(tiddler, item);
});
},
route: function() {
var params = this.container;
if(this.tiddler) {
var container = this.tiddler.bag || this.tiddler.recipe;
params = {
_type: container._type,
host: container.host,
name: container.name,
title: this.tiddler.title
};
}
return supplant(tw.routes[this._type], params);
}
});
tw.Search = function(query, host) {
tw.Collection.apply(this, ["search", host]);
this.query = query;
};
tw.Search.prototype = new tw.Collection();
$.extend(tw.Search.prototype, {
parse: function(data) {
this.container = { // XXX: hacky
_type: "bag",
host: this.host
};
var tiddlers = tw.TiddlerCollection.prototype.parse.apply(this, arguments);
delete this.container;
return tiddlers;
}
});
// title is the name of the tiddler
// container (optional) is an instance of either Bag or Recipe
// optionally accepts a single object representing tiddler attributes
tw.Tiddler = function(title, container) {
tw.Resource.apply(this, ["tiddler", false]);
this.title = title;
this.bag = container && container._type === "bag" ? container : null;
this.recipe = container && container._type === "recipe" ? container : null;
var self = this;
$.each(this.data, function(i, item) {
self[item] = undefined; // exposes list of standard attributes for inspectability
});
if(title && title.title) { // title is an object of tiddler attributes
$.extend(this, title);
}
};
tw.Tiddler.prototype = new tw.Resource();
$.extend(tw.Tiddler.prototype, {
revisions: function() {
return new tw.TiddlerCollection(this.bag || this.recipe, this);
},
route: function() {
var container = this.bag || this.recipe;
var params = $.extend({}, this, {
host: container ? container.host : null,
_type: this.bag ? "bag" : (this.recipe ? "recipe" : null),
name: container ? container.name : null
});
return supplant(tw.routes[this._type], params);
},
parse: function(data) {
var tiddler = new tw.Tiddler(this.title),
container = this.bag || this.recipe;
if(data.bag) {
tiddler.bag = new tw.Bag(data.bag, container.host);
delete data.bag;
}
delete data.recipe;
tiddler.created = data.created ? convertTimestamp(data.created) : new Date();
delete data.created;
tiddler.modified = data.modified ? convertTimestamp(data.modified) : new Date();
delete data.modified;
if(this.recipe) {
tiddler.recipe = this.recipe;
}
return $.extend(tiddler, data);
},
data: ["created", "creator", "modifier", "modified", "tags", "type", "text",
"fields"],
ajaxSetup: function(options) {
var self = this;
if(this.etag && (options.type === "PUT" || options.type === "DELETE")) {
options.beforeSend = function(xhr) {
xhr.setRequestHeader("If-Match", self.etag);
};
}
if(options.type === "PUT") {
var callback = options.success;
options.success = function(data, status, xhr) {
var loc = xhr.getResponseHeader("Location"),
etag = xhr.getResponseHeader("Etag");
if(loc && etag) {
self.etag = etag;
if(!self.bag) {
var bag = loc.split("/bags/").pop().split("/")[0];
self.bag = new tw.Bag(bag, self.recipe.host);
}
callback(self, status, xhr);
} else { // IE
self.get(callback, options.error);
}
};
}
}
});
tw.Revision = function(id, tiddler) {
var container = tiddler.bag || tiddler.recipe;
tw.Tiddler.apply(this, [tiddler.title, container]);
this._type = "revision";
this.revision = id;
};
tw.Revision.prototype = new tw.Tiddler();
$.extend(tw.Revision.prototype, {
revisions: false,
data: false,
put: false,
"delete": false
});
tw.Bag = function(name, host) {
Container.apply(this, ["bag", name, host]);
};
tw.Bag.prototype = new Container();
tw.Recipe = function(name, host) {
Container.apply(this, ["recipe", name, host]);
this.recipe = [];
};
tw.Recipe.prototype = new Container();
$.extend(tw.Recipe.prototype, {
data: ["recipe"].concat(Container.prototype.data)
});
tw.Policy = function(constraints) { // TODO: validation?
var self = this;
$.each(this.constraints, function(i, item) {
self[item] = constraints[item];
});
};
tw.Policy.prototype.constraints = ["read", "write", "create", "delete",
"manage", "accept", "owner"];
/*
* utilities
*/
tw._capitalize = function(str) {
return str.charAt(0).toUpperCase() + str.slice(1);
};
// convert YYYYMMDDhhmmss timestamp to Date instance
convertTimestamp = function(t) {
if (t.match(/^\d{12,17}$/)) {
return new Date(Date.UTC(
parseInt(t.substr(0, 4), 10),
parseInt(t.substr(4, 2), 10) - 1,
parseInt(t.substr(6, 2), 10),
parseInt(t.substr(8, 2), 10),
parseInt(t.substr(10, 2), 10),
parseInt(t.substr(12, 2) || "0", 10),
parseInt(t.substr(14, 3) || "0", 10)
));
} else {
return new Date(Date.parse(t));
}
};
// adapted from Crockford (http://javascript.crockford.com/remedial.html)
supplant = function(str, obj) {
return str.replace(/{([^{}]*)}/g, function (a, b) {
var r = obj[b];
r = typeof r === "string" || typeof r === "number" ? r : a;
return $.inArray(b, ["host", "query"]) !== -1 ? r : encodeURIComponent(r); // XXX: special-casing
});
};
return tw;
}(jQuery));
//}}}
!Picture
!YoungConversations
*
!Events
#
#
#
#
!People
*
Consider [[Play]] is an access to your [[Life]]. What do you love about your [[Life]]?
Give your space an identity to make it recognizable to others. A good site icon will be square and at least 48x48 pixels size.
<<binaryUploadPublic title:SiteIcon>>
!Picture
!YoungConversations
*
!Events
#
#
#
#
!People
*
!Picture
!YoungConversations
*
!Events
#
#
#
#
!People
*
!Picture
!YoungConversations
*
!Events
#
#
#
#
!People
*
/***
|''Name''|LoadMissingExternalTiddler|
|''Version''|0.1.0|
|''Author''|Jon Robson|
***/
//{{{
var _loadMissing = Story.prototype.loadMissingTiddler;
Story.prototype.loadMissingTiddler = function(title,fields,callback) {
var matches = title.match(/([^\*]*) \*\(@([^\)]*)\)\*/);
if(matches && matches.length > 0) {
var sTitle = matches[1];
var space = matches[2]; config.extensions.tiddlyspace.displayServerTiddler(story.getTiddler(title),
sTitle, "bags/%0_public".format(space));
} else {
_loadMissing.apply(this, arguments)
}
};
//}}}
I love it! this is like having an AppleTV InYourPocket!
<html>
<iframe width="560" height="349" src="http://www.youtube.com/embed/tv7BfMIikvc" frameborder="0" allowfullscreen></iframe>
</html>
<<<
some of you know that inside the 2nd generation Apple TV is iOS, the operating system that runs the current iPhone, iPad, and iPod Touch. it's was inevitable that someone would get this to work! this will work really great in a few configurations:
1) to transform my iPhone into an Apple TV and connect it to an external by VGA, composite, or HDMI (which includes audio!)
2) to have my iPad serve as a "big screen" and stream video over AirPlay from my iPhone (kinda like a video remote)
in any case - this is a neat hack - have fun w it!
<<<
now it remains to be seen if I end up packing an AppleTV with me anyways on my next trip overseas (probably - can't wait for the AppStore for AppleTV to arrive - what's taking so long?!? [[iOS5]]? ;-)
http://is.gd/M5S8Ic
my relationship to open source has been a hit or miss given [[Linux]] was my stake in the ground for a very long time... I thought perhaps MediaWiki or Plone might do the trick but nope....
then TiddlySpace came along and yup - I'd say this one's a winner :)
I'm an ABT (American-born Thai :)
<html>
<a href="http://www.flickr.com/photos/chinarut/93038144/" title="Peace in Thailand by chinarut, on Flickr"><img src="http://farm1.static.flickr.com/33/93038144_67966b365e.jpg" width="500" height="378" alt="Peace in Thailand"></a>
</html>
you might find [[a quick & dirty wrapup|http://chinarut.wikispaces.com/Thailand]] of how all this panned out (ie. in [[Reality]]) after 4 years insightful...
and while a bit dated, the infamous [[Thailand cheatsheet|http://chinarut.wikispaces.com/Thailand+Cheatsheet]] I've been told has been useful to peeps traveling to Thailand!
/***
|''Name''|TiddlySpaceInitialization|
|''Version''|0.7.3|
|''Description''|Initializes new TiddlySpaces the first time they are created|
|''Status''|@@beta@@|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/blob/master/src/plugins/TiddlySpaceInit.js|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlySpaceConfig RandomColorPalettePlugin chrjs ImageMacroPlugin|
!TODO
* robust error notification and recovery
!MarkupPreHead
<!--{{{-->
<link href="/bags/%0_public/tiddlers.atom" rel="alternate"
type="application/atom+xml" title="%0's public feed" />
<link rel="canonical" href="%1/" />
<!--}}}-->
!Code
***/
//{{{
(function($) {
var versionField = "tiddlyspaceinit_version";
var markupPreHead = store.getTiddlerText(tiddler.title + "##MarkupPreHead", "");
var tiddlyspace = config.extensions.tiddlyspace;
var currentSpace = tiddlyspace.currentSpace;
var tweb = config.extensions.tiddlyweb;
var plugin = config.extensions.TiddlySpaceInit = {
version: "0.6",
SiteTitle: "%0",
SiteSubtitle: "a TiddlySpace",
flagTitle: "%0SetupFlag",
flagWarning: "Please do not modify this tiddler; it was created " +
"automatically upon space creation.",
dispatch: function(ev) {
var title = plugin.flagTitle.format([currentSpace.name]);
config.annotations[title] = plugin.flagWarning;
if(currentSpace.type != "private") {
return;
}
var tiddlers = [];
var tid = store.getTiddler(title);
if(tid) {
curVersion = parseFloat(tid.fields[versionField]);
reqVersion = parseFloat(plugin.version);
if(curVersion < reqVersion) {
plugin.update(curVersion, tid);
tid.fields[versionField] = plugin.version;
tid.incChangeCount();
tid = store.saveTiddler(tid);
tiddlers.push(tid);
}
} else { // first run
tid = new Tiddler(title);
tid.tags = ["excludeLists", "excludeSearch", "excludePublisher"];
tid.fields = $.extend({}, config.defaultCustomFields);
tid.fields[versionField] = plugin.version;
tid.text = "@@%0@@".format([plugin.flagWarning]);
tid = store.saveTiddler(tid);
tiddlers = tiddlers.concat(plugin.firstRun(), tid);
}
autoSaveChanges(null, tiddlers);
},
update: function(curVersion, flagTiddler) {
if(curVersion < 0.2) {
this.createAvatar();
}
if(curVersion < 0.3) {
flagTiddler.tags.pushUnique("excludePublisher"); // XXX: never persisted
}
if(curVersion < 0.5) { // v0.4 was faulty
this.setupMarkupPreHead();
}
if(curVersion < 0.6) {
this.purgeSystemSettings();
}
},
pubTid: {
tags: ["excludeLists", "excludeSearch"],
fields: $.extend({}, config.defaultCustomFields, {
"server.workspace": tiddlyspace.getCurrentWorkspace("public")
})
},
makeTiddlerIfNot: function(tiddler) {
if (!store.tiddlerExists(tiddler.title)) {
$.extend(true, tiddler, plugin.pubTid);
return [store.saveTiddler(tiddler)];
} else {
return [];
}
},
firstRun: function() {
var tiddlers = [];
// generate Site*itle
$.each(["SiteTitle", "SiteSubtitle"], function(i, item) {
var tid = new Tiddler(item);
tid.text = plugin[item].format([currentSpace.name]);
tiddlers.push.apply(tiddlers,
plugin.makeTiddlerIfNot(tid));
});
// generate public ColorPalette
var tid = new Tiddler("ColorPalette");
tid.text = config.macros.RandomColorPalette.generatePalette({
saturation_pale: 0.67, saturation_light: 0.53,
saturation_mid: 0.43, saturation_dark: 0.06,
pale: 0.99, light: 0.85, mid: 0.5, dark: 0.31
},
false);
tiddlers.push.apply(tiddlers, plugin.makeTiddlerIfNot(tid));
this.createAvatar();
this.setupMarkupPreHead();
return tiddlers;
},
// remove _cookie slices (TiddlyWiki 2.6.2 beta 6 remnants)
purgeSystemSettings: function() {
var ss = store.getTiddler("SystemSettings");
if(ss) {
var lines = ss.text.split("\n");
var persistentOptions = $.grep(lines, function(line, i) {
return line.indexOf("_cookie:") == -1;
});
ss.text = persistentOptions.join("\n");
ss = store.saveTiddler(ss);
autoSaveChanges(null, [ss]);
}
},
createAvatar: function() {
var avatar = "SiteIcon";
var host = tweb.host;
var notify = function(xhr, error, exc) {
displayMessage("ERROR: could not create avatar - " + // TODO: i18n
"%0: %1".format([xhr.statusText, xhr.responseText]));
// TODO: resolve!?
};
var pubBag = tiddlyspace.getCurrentBag("public");
var tid = new tiddlyweb.Tiddler(avatar);
tid.bag = new tiddlyweb.Bag(pubBag, host);
var callback = function(data, status, xhr) {}; // avatar already exists; do nothing
var errback = function(xhr, error, exc) {
if(xhr.status != 404) {
return;
}
// copy default avatar
var _notify = function(tid, status, xhr) {
displayMessage("created avatar"); // TODO: i18n
var image = config.macros.image;
if(image && image.refreshImage) {
var uri = "/%0/tiddlers/SiteIcon".
format(tiddlyspace.getCurrentWorkspace("public"));
image.refreshImage(uri);
image.refreshImage("SiteIcon");
}
};
var _callback = function(tid, status, xhr) {
tid.title = avatar;
tid.bag.name = pubBag;
delete tid.etag;
tid.put(_notify, notify); // TODO: add to current session document (via adaptor?)
};
tweb.getUserInfo(function(user) {
var avatarTitle = currentSpace.name == user.name ?
"defaultUserIcon" : "defaultSiteIcon";
var tid = new tiddlyweb.Tiddler(avatarTitle);
tid.bag = new tiddlyweb.Bag("common", host);
tid.get(_callback, notify);
});
};
tid.get(callback, errback);
},
savePublicTiddlerText: function(title, text, pubWorkspace) {
var tid = new Tiddler(title);
tid.text = text;
tid.tags = ["excludeLists"];
tid.fields = $.extend({}, config.defaultCustomFields);
tid.fields["server.workspace"] = pubWorkspace;
tid.fields["server.page.revision"] = "false";
tid = store.saveTiddler(tid);
autoSaveChanges(null, [tid]);
},
setupMarkupPreHead: function() {
var pubWorkspace = tiddlyspace.getCurrentWorkspace("public");
var existing = store.getTiddler("MarkupPreHead");
if(!existing || existing.fields["server.workspace"] != pubWorkspace) {
var context = this;
tweb.getStatus(function(status) {
var text = markupPreHead.format(currentSpace.name,
tiddlyspace.getHost(status.server_host, currentSpace.name));
context.savePublicTiddlerText("MarkupPreHead", text,
pubWorkspace);
});
}
// also set up DefaultTiddlers
var title = "DefaultTiddlers";
existing = store.getTiddler(title) || new Tiddler(title);
if(existing.fields["server.workspace"] != pubWorkspace) {
var text = existing.text || store.getShadowTiddlerText(title);
this.savePublicTiddlerText(title, text, pubWorkspace);
}
}
};
$(document).bind("startup", plugin.dispatch);
})(jQuery);
//}}}
/***
|''Name''|DiffFormatter|
|''Description''|highlighting of text comparisons|
|''Author''|FND|
|''Version''|0.9.0|
|''Status''|beta|
|''Source''|http://svn.tiddlywiki.org/Trunk/contributors/FND/formatters/DiffFormatter.js|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/contributors/FND/|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''Keywords''|formatting|
!Description
Highlights changes in a unified [[diff|http://en.wikipedia.org/wiki/Diff#Unified_format]].
!Notes
Based on Martin Budden's [[DiffFormatterPlugin|http://svn.tiddlywiki.org/Trunk/contributors/MartinBudden/formatters/DiffFormatterPlugin.js]].
!Usage
The formatter is applied to blocks wrapped in <html><code>{{{diff{..}}}</code></html> within tiddlers tagged with "diff".
!Revision History
!!v0.9 (2010-04-07)
* initial release; fork of DiffFormatterPlugin
!StyleSheet
.diff { white-space: pre; font-family: monospace; }
.diff ins, .diff del { display: block; text-decoration: none; }
.diff ins { background-color: #dfd; }
.diff del { background-color: #fdd; }
.diff .highlight { background-color: [[ColorPalette::SecondaryPale]]; }
!Code
***/
//{{{
(function() {
config.shadowTiddlers.StyleSheetDiffFormatter = store.getTiddlerText(tiddler.title + "##StyleSheet");
store.addNotification("StyleSheetDiffFormatter", refreshStyles);
var formatters = [{
name: "diffWrapper",
match: "^\\{\\{diff\\{\n", // XXX: suboptimal
termRegExp: /(.*\}\}\})$/mg,
handler: function(w) {
var el = createTiddlyElement(w.output, "div", null, "diff");
w.subWikifyTerm(el, this.termRegExp);
}
}, {
name: "diffRange",
match: "^(?:@@|[+\\-]{3}) ",
lookaheadRegExp: /^(?:@@|[+\-]{3}) .*\n/mg,
handler: function(w) {
createTiddlyElement(w.output, "div", null, "highlight").
innerHTML = "…";
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
w.nextMatch = this.lookaheadRegExp.lastIndex;
}
}
}, {
name: "diffAdded",
match: "^\\+",
termRegExp: /(\n)/mg,
handler: function(w) {
var el = createTiddlyElement(w.output, "ins", null, "added");
w.subWikifyTerm(el, this.termRegExp);
}
}, {
name: "diffRemoved",
match: "^-",
termRegExp: /(\n)/mg,
handler: function(w) {
var el = createTiddlyElement(w.output, "del", null, "removed");
w.subWikifyTerm(el, this.termRegExp);
}
}
];
config.parsers.diffFormatter = new Formatter(formatters);
config.parsers.diffFormatter.format = "diff";
config.parsers.diffFormatter.formatTag = "diff";
})();
//}}}
# GoogleVoice focus is on CallManagement
# [[Skype]] focus on Telephony perspective
# [[Talkatone]] is filling in the gap between GoogleVoice and [[Skype]] at the cost of fully embracing the benefits of VoiceCarrierIPDelegation
# [[Talkatone]] is where [[Skype]] was 8 years ago. CallQuality shaky and will only improve over time. [[UI]] shall improve over time as well
most commonly associated with [[Alcohol]] or [[Sex]] - lots o stuff I'm abstaining from - ideally this would be a [[Dynamic]] list...
# [[Alcohol]]
# CasualSex
# RecreationalDrugs
# PrescriptionDrugs
# LateNightParties
# [[Meat]]
# [[Poultry]]
# [[Seafood]]
# [[Dairy]]
# [[Eggs]]
# ProcessedFoods
# [[Salt]]
# [[Sugar]]
# [[Oil]]
# FastFood
# [[Pornography]]
# [[Netflix]] - clearly temporary...
# [[email]] - this is a tough one but I'm definitely transforming this OldHabit
# [[Soda]]
# [[Chocolate]]
"Compersion begins the first time we are turned on by someone else's pleasure, or the idea of someone else's love for anyone besides us."
http://goo.gl/uPJpO
ok with the help of [[Amazon]]'s [[Listmania]] - I kickstarted this list!
http://goo.gl/nYaX2
<<<
[[Oxytocin]] is released upon intimate touch and greatly increases feelings of love, trust, security, and bonding. It also decreases feelings of stress. When you cuddle, kiss, or engage in other forms of significant physical contact with another person, oxytocin is released and bonding occurs.
<<<
http://goo.gl/53TLT
!Upload an icon
<<tiddler spaceIcon>>
!Describe your space
If you haven't already done so, you should provide a brief decscription of yourself and what you're using this space for. To do this, just edit the [[SiteInfo]] tiddler (keeping the title the same of course).
!Change the title
<<tiddler spaceTitle>>
!Change the theme
<<tiddler colorScheme>>
!Change the menu
If you'd like to change the menu items along the top, you can edit the [[MainMenu]] tiddler.
!Change the default tiddlers
<<tiddler setDefaultTiddlers>>
!More Advanced customisations
If you know HTML and CSS, you can edit some or all of the following tiddlers to customise your space further:
* PageTemplate
* EditTemplate
* ViewTemplate
* StyleSheet
won't get into details here - just find this a [[fascinating|Fascination]] path :)
lost of people have [[Polyamory]] mixed with Polygamy.
I've been in an OpenRelationship and taken on some really extraordinary relationships. I find this set of pages quite educational and insightful:
http://goo.gl/2EpX0
yet another space...but this is it! :)
I am very thankful to the following works, people, and organizations:
* FreedomToAsk
* RaiseTheFrequency
* DanceLabs
* DanceChalat
* LandmarkEducation (CurriculumForLiving, WisdomDivision)
* AppleComputer
* [[Squid&SquashFoundation]]
* KM&Co
* Conference for GlobalTransformation
* and of course MyFamily!
It is because of everyone's willingness to play with me that makes my life possible.
part of WisdomDivision at LandmarkEducation
Anyone may be a part of Burning Man. We welcome and respect the stranger. No prerequisites exist for participation in our community.
ok i'm clearly in a bit of a [[Whirlwind]] of sorts... decided to clean out and organize all the ITGear out of the garage and this has turned into a huge [[project|Projects]]!
If you're finding you're not moving forward on things here and there, consider you haven't found a context big enough to make it happen. Some recent examples...
# cracking open my PhotoCrate to get my [[Autobiography]] done for my WisdomCourse
# assisting in [[Thailand]] when the first LandmarkForum was delivered
# taking care of my WellBeing so I can be of service to the world not to mention position myself as a [[Resource]] in an area of life that matters to me - right [[Now]]!
# unplugging from [[Facebook]] and OnlineCommunication in general to [[Focus]] on WellBeing and commit to OnlineCollaboration - TiddlySpace being one expression of this.
# taking care of my parent's house inside a vision of being a GuestHouse, CommunityHouse, CollaborativeSpace for DanceLabs
# @chalat coming forth as a means of sharing what's possible with TiddlySpace and prototyping WorkshopDesignSoftware
# this TiddlySpace (@chinarut) coming forth inside of a commitment to participate in OpenNotebookScience
# pulling all the data out of 4 ancient Pentium PCs for the love of my parents - they've asked me to clean up the garage for years and clear I'm not stepping foot outside this country til it got done! Discovering SliTaz as a means of recycling what I feel are perfectly usable computers
# hacking away at MyWi as a means to turn my [[iPad]] into a PersonalHotspot - just to see and demonstrate what's possible (WiFi and USB tethering works, Bluetooth only works in reverse) ([[iPhone]] uses built-in implementation)
ok - this has been my world as of late - glad I have the space to make the house a mess! lol...
----
Had a great chat with my brother - made me realize I'm quite passionate about this experiment putting my life into TiddlySpace - went as far to want to experiment with modeling the conversations of famous inventors like [[Einstein]], ThomasEdison, BenFranklin in their own spaces and what it would mean to let TiddlySpace discover (via following) the NetworkOfConversations you have in common and provide ExplorationPoints into their lives. One could argue those who enjoy writing [[Biographies]] to chronicle the lives of those who have already past away could use TiddlySpace to continue to discover interesting aspects of their lives and presence conversations for their followers that would otherwise seem to be "missing" - ''still'' thinking about how TiddlySpace is a more practical backend to drive the front-end of PersonalBrain!
<!DOCTYPE html>
<html manifest="/bags/common/tiddlers/takenote_manifest.appcache">
<head>
<title>takenote</title>
<link type="text/css" rel="stylesheet" href="/bags/common/tiddlers/notabene.css" />
<link type="text/css" rel="stylesheet" href="/bags/common/tiddlers/jquery-ui.custom.css">
<link rel="apple-touch-icon" href="/bags/common/tiddlers/touchicon_takenote.png"/>
<link rel="apple-touch-icon-precomposed" href="/bags/common/tiddlers/touchicon_takenote.png"/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=0,initial-scale=1.0">
</head>
<body>
<ul id="backstage">
<!-- no not add a newline between li elements or you will get a margin with inline blocks -->
<li><a href="/dashboard">dashboard</a></li><li><a href="/takenote">takenote</a></li>
<li><a class='connectionStatus'></a></li>
</ul>
<div class="takenotedashboard">
<div class='messageArea' style="display: none;"></div>
<div class="header">
<div class='siteicon'></div>
</div>
<div class="toolpanel viewer">
<div class='section searchSection requiresConnection'>
<h2>All Notes</h2>
<input class="findnote" type="search" placeholder="type search term" />
<ul>
<li>Access all your notes from <a href="/tiddlers?select=tag:!excludeLists">tiddlers</a></li>
</ul>
</div>
<div class="section incompleteSection">
<h2>New Notes</h2>
<ul id="createNotes"></ul>
<h2>Recently Started Notes</h2>
<ul id="incomplete"></ul>
<a class='syncButton' title="save all notes in the list to the web">sync these notes</a>
</div>
<div class="section recentSection">
<h2>Recently Created Notes</h2>
<ul id="recentnotes"></ul>
</div>
</div>
<div class='footer'>
<span class='version'>v. 0.7.3</span>
</div>
</div>
<noscript>
Takenote requires javascript to work correctly. Sorry!
</noscript>
<script src="/bags/common/tiddlers/backstage.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/bookmark_bubble.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/jquery-ui.custom.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/tiddlyspace/tiddlers/chrjs" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/chrjs-store.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/jquery-json.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/notabene.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
dashboard($(".takenotedashboard")[0], {
host: "/"
});
</script>
</body>
</html>
!Installed - [[iPhone]]
# AppleShatterLogo (BigBoss)
# AppSync for iOS 4.x (SiNfuL) //(I really haven't seen this work....)//
# ControlPad (for SNES-HD) (wherethewoozlewasnt) //Wii-motes better!//
# FaceBreak Cracked (SiNfuL) //enables FaceTime over 3G//
# FakeCarrier (BigBoss) //FWED//
# GAMEBOY A.D.X. Plus Cracked (SiNfuL)
# mame4iphone (ZodTTD & MacCiti) //haven't found a ROM that works//
# MiTime (Pushfix.info) //FaceTime activation to work//
# TetherMe (BigBoss) //purchased//
# ultrasn0w (repo666) //unlock!//
# YouMail (Cydia)
!Installed - both
# BTstack (BigBoss) //enable BTkeyboard//
# DisplayMirroring (BigBoss) //this works AWESOME//
# GENESIS A.D.X. Plus Cracked (SiNfuL)
# MobileTerminal (iJailbreak) //local shell access to DisplayMirroring//
# NES A.D.X Plus Cracked (SiNfuL)
# SNES A.D.X Plus Cracked (SiNfuL)
!Installed - [[iPad]]
# MyWi 4 Cracked (SiNfuL) //tethering over bluetooth works//
# SNES (HD) (wherethewoozlewasnt) //ProofOfConcept//
Starting to see the challenge in distinguishing NextAction in the @chalat TiddlySpace that pertains to me vs the community - does it matter? I moved the BurningMan tiddler here as it was more about finding out the [[Timeline]] of my personal experience where I'm clear BurningMan@chalat would talk about our GreenBurn@chalat!
//be great to insert & aggregate tiddlers from outside spaces - see source of this tiddler to see code below//
<<tiddler Discoursive@frontpage>>
<<tiddler Non-linear@frontpage>>
Went to bed / woke up: 11:00 / 3:01
Total time: 4h 00m
Make that waking up at 5:35 and a total time of: 6h 34m
I didn’t plug Burnie (didn’t @claudia give my original iPhone such a cute name after going to BurningMan and back?) into the wall & well, he um went to sleep after 4 hrs!
Good news is I cycled the battery once which is healthy for a Li-ionBattery
It’s official, I’m going back home to TiddlySpace until I find a programmer who can create a WordPressPlugin for TiddlySpace – I’m likely to play with a VirtualAssistant from a place like BrickworksIndia and see what happens.
You’ll be able to read more about today here:
http://goo.gl/CJ5rr
Analysis made by the Sleep Cycle iPhone app.
My sleep graph for the entire night:
[img[http://shivasleeps.files.wordpress.com/2011/06/sleepgraph4.jpg?w=280&h=201]]
GodDamn - part of me really appreciates the fact I'm going with the flow & that I discovered a [[TASC]] mixer last night & took on sharing what is possible as a ThaiAmerican. The number of great AsianAmericans I met was really awesome & I even won the raffle for a free ThaiMassage from a ThaiSpa downtown with a rooftop PoolParty on the FourthOfJuly to boot - score! :)
I succeeded in getting back before 11 and got into a [[Breakdown]] with [[Mom]] - I'm making so many changes in my WellnessPractice, she has opinions of some of the things that were recommended to me, like AmericanGinseng. I completely blewup out of frustration - I'm not really clear what's there - I just want to be [[acknowledged|Acknowledgement]] for the progress im making, the [[Breakthrough]] it is I created these past 4 months, transforming my vision of the FamilyHouse into a CommunityHouse, and having the [[Balls]] to go out and [[Socialize]], get out of my head and [[listen|Listening]] to what actually inspires people.
Now as a [[Leader]] - people get curious and the barrage of [[Requests]] & [[Invitations]] come my way - now, don't get me wrong, it's nice to be InDemand and this is one of the most [[Sensitive]] times to [[keep my space open|keeping my space open]]. I'm not interested in being an immediate yes and neither am I interested in being an immediate no - one my running jokes since the FreedomToAsk is that it a huge for me to take on being a NoMan & own my sense of space and be with the reactions of others opposed to what our [[Culture]] generally puts out there in regards to being a YesMan - or said another way a YesToLife!
I'm in an [[Inquiry]] around what it means to be a NoToLife not in a bad way but a way that's [[empowering|Empowerment]]
So it's already almost 10am - [[Thursday]] is the day I reserve for DanceLabs and it hasn't been the easiest thing to [[Focus]] on to be honest.
I'm OnAMission to complete reading the [[CGT2011Journal]] and BeInCommunication with my [[CGT]] community. I expect to get this done today - I have no interest in leaving the [[Sanctuary]] I call home or really what I'm relating to my HomeOffice.
I still have quite a few LooseEnds to iron out with [[Dad]] - it would serve me to say hello and thank people for creating a connection last night and point them to my TiddlySpace as a means for staying current. Im still debating whether or not to forward our DanceLabs domain to @chalat as it represents who I especially in the ThaiCommunity. It's what i can speak to best, am interested in recreating and fielding [[Volunteers]], and gives me [[Energy]] to be honest.
For the record, I did make custom BusinessCards for the event last night as I am FieldTesting the following:
# DanceLabs as an [[Organization]] - preserving a logo designed by one of our first [[Volunteers]]
# [[Declaration]] as a CommunityArchitect - a ConversationStarter - make people curious - be sourceful & demonstrate my [[Creativity]]
# EngineerInside [[Logo]] - not just your ordinary view of [[Dance]]
# a DanceChalat VanityNumber (ie CHALAT) that points to our DanceLabs GoogleApps instance & serves (and behaves) as a landline - when I am [[Grounded]] away from the DanceFloor, you'll be able to reach me when I choose to be PluggedIn.
# GoogleVoice as my MobileNumber - a number that is primarily in FieldMode. One that accesses the [[Dancer]] in me - one you wouldn't relate to sitting behind a desk at the office. This is the [[Distinction]] I am making and it is another of my WildAndCrazy [[Experiments]] I [[Play]] whether you realize it or not, just interacting with me - you've implicitly chosen to become a GuineaPig in my life - in a good way and you are welcome to [[Experiment]] with me! ;-)
# to address the [[Noise]] around the presentation & content of DanceLabs main WebSite, the URL on the card points to http://chalat.dancelabs.com (effectively @chalat) to share the perspective of the CommunityArchitect in regards to WhatsPossible in using TiddlySpace to keep a community alive and [[Global]] on the [[Internet]] and at the same time, current with my TechnologyExplorations making the TechnologyEvangelist in me happy to share an [[Extraordinary]] view of [[Technology]] - FirstImpressions are golden & what I love speaking to :)
So there you have it - how I chose to present myself (didn't mention the CleanCut HairCut quite a few people noticed) and whenever the opportunity rose, I shared about my TrueNorthHealthDiet, my commitment to my WellBeing, my willingness to be [[Unreasonable]] and it was really great to discover a Thai woman who assists her cousin in a VeganRestaurant in Hollywood - nice :)
Now the challenge is to stay true to my commitment to put the LateNightDanceScene down & [[make it all work|MakingItAllWork]] - it's easy to just hide in a cave and not forward all the invites and interactions I found quite inspiring.
So it's going to take something to enlist my parents in the idea of a CommunityHouse for the benefit of my WellBeing - it would be a radical transformation of this space & it's something id like to work out - what do we need to make it happen and not be attached that it be this house (it could be someone else's house - someone who is open and ideally embraces the DanceLabs vision & [[Execution]] coming to their house with all the joy and surprises!
So am I looking for a CommunityManager - one who understands the dance between our OnlineSpace and an [[Offline]] CommunitySpace? My gut says yes - this person would be [[MyCounterpart]].
we now get into RandomThoughtCompletionMode (what it is to be a LateralThinker)...
BusinessCards as a DeckOfCards or Self-Expression as a BoxOfChocolates.
That my EatingSchedule is whacked today - I passed out at 11:15 and slept until 9:30 - SocialNetworking is a bit exhausting at the moment & this could possibly been addressed by getting home by 8:30 or 9
I'll just have to have a BigAssSalad with leftover SteelCutOats and lots o Fruit & probably a BakedYam
Not clear what to say to mom when I see her - need to take responsibility over how irritable I am if I don't meet my [[Bedtime]] and feel a bit stressed after a NetworkingEvent - that coming home I need PeaceAndQuiet, not [[Analysis]] and [[Interpretation]] - very easy for me not to come out of thus room and just work on a CommunityHouseManual which is coming along thanks to the SquidAndSquashFoundation!
Anything else? Time to channel any FutureThoughts into Tiddlers in the various spaces here on TiddlySpace and what you've just observed is the importance of grounding to one's HomeSpace - whether or not you choose to make your thoughts Public as I have is not the point - you are in a network of DeepKnowledge and [[Wisdom]] and the TiddlySpace community is counting on you to express yourself and ManageYourself as well - it's important you have a sense of [[Identity]] on the [[Internet]] or you will continue to experience the chaotic nature of jumping from one space to the next & generally be left with that feeling of "where did my time go?"
This is not WebSurfing - in fact this is a method of Healing!
ColorLaserPrinter - budget budget budget! Ha - talk about LeftField - I truly enjoyed my first BaseballGame - the AngelsVsWashington - I didn't stay to the bottom of the 6th & it had the pace of a BasketballGame or specifically NBAJam.
Shall I move to Thaitown?
Decisions decisions - enough [[Thinking]] for now.
People are counting on me to BeInCommunication - so if nobody reads this entry - I'm [[complete|Completion]] - LoveYou ;-)
Apple makes great products and they are in the process of incorporating a WikiServer in every mac you own as soon as MacOSX Lion (10.7) rolls out!
my explorations with the Apple Wiki sit here:
https://server.squidandsquash.org
proud to say an Apple Wiki instance sits inside CanyonElementary :)
this landing page is quite nice: http://www.rowlandblogs.org
* if we are a [[Startup]], we don't communicate to everyone - we pick IdealTeammates & IdealParticipants who develop w us
* we get the [[Campaign]] & materials put together & make a BigSplash
* [[Positioning]]
** Individuals (empowering [[Creatives]] like actors)
** Corporate (all about ROI)
<html>
<script src="http://widgets.twimg.com/j/2/widget.js"></script>
<script>
new TWTR.Widget({
version: 2,
type: 'profile',
rpp: 30,
interval: 3000,
width: 400,
height: 300,
theme: {
shell: {
background: '#8886c0',
color: '#ffffff'
},
tweets: {
background: '#e1e1ef',
color: '#42407c',
links: '#251fdb'
}
},
features: {
scrollbar: true,
loop: true,
live: true,
hashtags: true,
timestamp: true,
avatars: false,
behavior: 'default'
}
}).render().setUser('chinarut').start();
</script>
</html>
!Browsers
# AtomicWeb
# Terra
!BooksMags
# iBooks
# Kindle
# Alice
# ForrestFriends
# Maxim
# VanityFair
!Education
# BrainPOP
# TapTyping
# HumanJapanese
!Music
# Beatwave
# Bjork
# iDaft2
# VirtuosoPiano
# Looptastic
# TuneWiki
# ClassicalGuitar
# Groovemaker
# i505
# PatternMusic
!Games
# Castlecraft
# CutTheRope
# Labyrinth
# MultiPong
# PocketLegends
# RAGEHD
# SandSlides
# ShianghaiMahjong
# GameChannel
# ParachuteNinja
# ArrivingHD
# CheckersHD
# ChessHD
# CrazyPenguin
# CutTheRope
# MahjongElements
# MonkeyIsland2
# PuppetShow
# RealSolitaire
# StickmanGolf
# TinkerBox
# TowerMadness
# Trundle
# WeRule
# WeThieves
# WordSearch
!Video
# AutoPlay
# ABCPlayer
!Util
# Emoji
# PrintNShare
# AirfoilSpeakers
!Reference
# Epicurious
# GoogleEarth
# IMDB
# HelloBaby
# Steelcase
# ISTEMobile
# WhiteHouse
# CraftFinder
# HowStuffWorks
# HowTo
# WebMD
!Play
# Fingerpaint
# Gravitarium
!Thai
# ThaiNews
# ThaiTVRadio
# 123Fun
!Admin
# MochaVNC
# VPNExpress
!News
# CNBCRealTime
# CNN
# CoolHunting
# Engadget
# NPR
# USAToday
# WSJ
!SocialMagazines
# Friendly
# MyPad
# sobees
# Flipboard
# Editions
# Zite
# Newsy
!misc
# Flixster
# XMBCConstellation
# FML
# DIRECTV
# Discovery Channel
# eBay
# Inkling
# OpenTable
# SalesforceChatter
# Wikihood
# DisasterAlert
# Roambi
# Animoto
!(others)
# SportsTap
# Wells Fargo
# Chase
# Yahoo!
!Shopping
# ShopSavvy
# SnapTell
/***
|''Name''|TiddlySpaceSearcher|
|''Version''|0.2.5|
|''Requires''|TiddlySpaceConfig TiddlySpaceFollowingPlugin|
***/
//{{{
(function($) {
var tiddlyspace = config.extensions.tiddlyspace;
var tsScan = config.macros.tsScan;
config.shadowTiddlers.SearchTemplate = "<<view server.bag SiteIcon label:no width:24 height:24 preserveAspectRatio:yes>> <<view server.bag spaceLink title external:no>> in space <<view server.bag spaceLink>>";
config.shadowTiddlers.StyleSheetSearch = [".resultsArea .siteIcon { display: inline; }",
".searchForm {text-align: left;}"].join("\n");
store.addNotification("StyleSheetSearch", refreshStyles);
var search = config.macros.tsSearch = {
locale: {
advanced: "Advanced Options",
header: "Search",
resultsHeader: "Results (%0)",
find: "find",
noResults: "No tiddlers matched your search query",
query: "QUERY: ",
error: "please provide a search query or a tag, modifier or title!",
titleAdvanced: "where the title is",
modifierAdvanced: "where the last modifier is",
spaceAdvanced: "only in the space: ",
notspaceAdvanced: "but not in the spaces: ",
tagsAdvanced: "with the tags: "
},
andConstructor: function(container, label, fieldname, negationMode) {
var tags = $("<div />").appendTo(container);
$('<span />').text(label).appendTo(tags);
var id = "area" + Math.random();
container = $("<span />").attr("id", id).appendTo(tags)[0];
function add(container) {
var el = $('<input type="text" />').attr("field", fieldname).appendTo(container);
if(negationMode) {
el.attr("negation", "true");
}
}
add(container);
var el = $("<button />").text("AND").click(function(ev) {
add($(ev.target).data("container"));
ev.preventDefault();
}).appendTo(tags);
$(el).data("container", container);
},
fieldConstructor: function(container, label, field) {
container = $("<div />").appendTo(container)[0];
$("<span />").text(label).appendTo(container);
$("<input />").attr("text", "input").attr("field", field).appendTo(container);
},
advancedOptions: function(form) {
var locale = search.locale;
var container = $("<div />").addClass("tsAdvancedOptions").appendTo(form)[0];
$("<h2/ >").text(search.locale.advanced).appendTo(container);
$("<div />").addClass("separator").appendTo(container);
search.fieldConstructor(container, locale.titleAdvanced, "title");
search.fieldConstructor(container, locale.modifierAdvanced, "modifier");
search.fieldConstructor(container, locale.spaceAdvanced, "space");
search.andConstructor(container, locale.notspaceAdvanced, "space", true);
search.andConstructor(container, locale.tagsAdvanced, "tag");
},
constructSearchQuery: function(form) {
var data = [], select = [];
var query = $("[name=q]", form).val();
if(query) {
data.push("q=%0".format(query));
}
// add tags, fields etc..
$("[field]", form).each(function(i, el) {
var val = $(el).val();
var name = $(el).attr("field");
var negate = $(el).attr("negation") == "true";
if(val && name) {
val = encodeURIComponent(val);
val = negate ? "!" + val : val;
if(name == "space") {
val += "_public";
name = "bag";
}
if(negate) {
select.push("select=%0:%1".format(name,val));
} else {
var prefix = data.length === 0 ? "q=" : "";
data.push('%0%1:"%2"'.format(prefix, name, val));
}
}
});
var dataString = data.join(" ");
if(dataString.length === 0 && !query) {
return false;
}
var selectStatement = select.join("&");
if(dataString.length > 0 && selectStatement.length > 0) {
dataString += "&";
}
dataString += selectStatement;
return "/search?%0".format(dataString);
},
constructForm: function(place) {
var locale = search.locale;
$("<h1 />").text(locale.header).appendTo(place);
var form = $("<form />").appendTo(place)[0];
$('<input type="text" name="q" />').appendTo(form);
$('<input type="submit" />').val(locale.find).appendTo(form);
search.advancedOptions(form);
var query = $('<h2 class="query"/>').appendTo(place)[0];
var results = $("<div />").appendTo(place).addClass("resultsArea")[0];
var lookup = function(url) {
if(!url) {
results.empty().addClass("error").text(locale.error);
return;
}
config.extensions.tiddlyweb.getStatus(function(status) {
$(query).text(locale.query);
var href = status.server_host.url + url;
$("<a />").attr("href", href).text(href).appendTo(query);
tsScan.scan(results, { url: url, emptyMessage: search.locale.noResults, cache: true,
template: "SearchTemplate", sort: "title", callback: function(tiddlers) {
$("<h2 />").text(locale.resultsHeader.format(tiddlers.length)).prependTo(results);
}
});
});
};
$(form).submit(function(ev) {
ev.preventDefault();
var url = search.constructSearchQuery(form);
config.macros.tsSearch.lastSearch = url;
lookup(url);
});
if(search.lastSearch) {
lookup(search.lastSearch);
}
return form;
},
handler: function(place) {
var container = $("<div />").addClass("searchForm").appendTo(place)[0];
search.constructForm(container);
}
};
})(jQuery);
//}}}
A partnership between the creators of the FranklinPlanner (which I used at [[Intel]]) and StephenCovey's [[7HabitsOfHighlyEffectivePeople]]
* FranklinCoveyCompass
/bags/common/tiddlers/jquery.js
/htmljs-takenoteedit.js
# http://www.dancelabs.com (currently points to our [[wikispace|Wikispaces]])
# http://twitter.com/dancelabs
# @dancelabs (a TiddlySpace)
!SpaceUnplugged
{{unpluggedSpaceTab{
{{wizard{
<<image unsyncedIcon width:48>> Sync is currently unavailable in ~TiddlyWiki due to security constraints in modern browsers. Research is being done to build a suitable alternative. In the meantime if you have changed content in an offline ~TiddlyWiki, you can get your content back into ~TiddlySpace by using the ''import'' functionality from the backstage of the online wiki.
}}}
}}}
!Menu
<<message messages.memberStatus>> <<homeLink>>
{{unsyncedList{<<message messages.syncListHeading>> <<list filter [is[unsynced]]>>}}}
running TiddlySpace@glossary version <<message extensions.tiddlyweb.status.tiddlyspace_version>>
{{autotable{
<<tiddler Backstage##Resources>>
}}}
!Resources
[[blog|@@blog]] [[documentation|@@docs]] [[featured spaces|@@featured]]
!ImportExport
<<fileImport>>
You can download this TiddlySpace as an offline TiddlyWiki:
{{chunkyButton{<<exportSpace>>}}}
!BackstageTiddlers
|upload a <<message messages.privacySetting>> file: <<binaryUpload>>|<<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>>|
|>|<<search>>|
|>|<<tiddler Backstage##Tiddlers>>|
!Tiddlers
<<tabs
txtMainTab
"Recent" "Recently edited tiddlers" TabTimeline
"All" "All tiddlers" TabAll
"Public" "All public tiddlers" [[TiddlySpaceTabs##Public]]
"Private" "All private tiddlers" [[TiddlySpaceTabs##Private]]
"Tags" "All tags" TabTags
"Spaces" "Tiddlers grouped by space" [[TiddlySpaceTabs##Spaces]]
"Missing" "Missing tiddlers" TabMoreMissing
"Orphans" "Orphaned tiddlers" TabMoreOrphans
"Shadows" "Shadowed tiddlers" TabMoreShadowed
>>
!BatchOps
<<tabs
txtPublisherTab
"Private" "Move tiddlers from private to public" Backstage##BatchPrivate
"Public" "Move tiddlers from public to private" Backstage##BatchPublic
>>
!BatchPrivate
<<TiddlySpacePublisher type:private>>
!BatchPublic
<<TiddlySpacePublisher type:public>>
!Plugins
''Note:'' Many of these plugins are core TiddlySpace plugins and cannot be changed unless first cloned.
<<tiddler PluginManager>>
!Tweaks
These options change behavior in TiddlyWiki //only// and may be ineffective in TiddlySpace.
<<tiddler AdvancedOptions>>
/***
|''Name''|TiddlySpaceRevertRevision|
|''Description''|Revert to a previous revision|
|''Author''|BenGillies|
|''Version''|0.1|
|''Status''|unstable|
|''Source''|http://github.com/TiddlySpace/tiddlyspace|
|''CodeRepository''|http://github.com/TiddlySpace/tiddlyspace|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.6.0|
|''Requires''|TiddlyWebAdaptor TiddlySpaceRevisionView|
!Usage
Add a control button to revert to a particular revision.
The button must be called from within a revision, as generated by TiddlySpaceRevisionView
!Code
***/
//{{{
(function($) {
config.commands.revert = {
text: "revert",
tooltip: "make this revision the current one",
handler: function(ev, src, title) {
var revElem = story.getTiddler(title);
var tidToRevert = store.getTiddler($(revElem).attr("revName"));
var revision = store.getTiddler(title);
if ((revision) && (tidToRevert)) {
tidToRevert.text = revision.text;
var newFields = merge({}, revision.fields);
for (var fieldName in newFields) {
if (fieldName.substr(0, 7) === "server.") {
delete newFields[fieldName];
}
}
merge(tidToRevert.fields, newFields);
tidToRevert.tags = merge([], revision.tags);
tidToRevert.fields.changecount = 1;
delete tidToRevert.fields.doNotSave;
store.saveTiddler(tidToRevert.title, tidToRevert.title,
tidToRevert.text, null, null, tidToRevert.tags,
tidToRevert.fields, false, tidToRevert.created, tidToRevert.creator);
autoSaveChanges(true);
}
}
};
})(jQuery);
//}}}
<!DOCTYPE HTML>
<html>
<body style="display:none">
topics: <ul id="topics"></ul>
<button id='addtopic'>add topic</button>
stream:
<ul id="stream"></ul>
<script type='text/javascript' src='/bags/common/tiddlers/jquery.js'></script>
<script type='text/javascript' src='/bags/tiddlyspace/tiddlers/chrjs'></script>
<script src="/twikifier.js" type="text/javascript" charset="utf-8"></script>
<script type='text/javascript'>
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader("X-ControlView", "false");
}
});
function renderTopic(topic) {
var item = $("<li />").appendTo("#topics");
$("<button class='show' />").text(topic).appendTo(item);
$("<button class='delete'>x</button>").appendTo(item);
return item[0];
}
var host = '/';
var space = "jon";
var active_topics = [];
var current_topic, offset;
function renderTopics() {
var topics = active_topics;
$("#topics").empty();
for(var i = 0; i < topics.length; i++) {
var topic = topics[i];
if(topic) {
renderTopic(topic);
}
}
$("body").show();
}
// Array Remove - By John Resig (MIT Licensed)
Array.prototype.remove = function(from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
var topicList = new tiddlyweb.Tiddler("Topics", new tiddlyweb.Bag(space + "_public", host));
topicList.get(function(tid) {
active_topics = tid.text.split("\n");
renderTopics(active_topics);
$("#topics .show:first").trigger("click");
},
function() {
active_topics = ["tiddlyspace"];
renderTopics(active_topics)
}
);
$("#addtopic").click(function(ev) {
var text = prompt("What topic would you like to watch?");
if(active_topics.indexOf(text) === -1) {
active_topics.push(text);
}
var el = renderTopic(text);
topicList.text = active_topics.join("\n");
topicList.put(function() {
$("button.show", el).trigger("click");
}, function() {
alert("eek!")
});
});
$("#topics .delete").live("click",function(ev) {
var topic = $(".show", this.parentNode).text();
active_topics.remove(active_topics.indexOf(topic));
renderTopics();
topicList.text = active_topics.join("\n");
topicList.put(function() {}, function() {
alert("eek!")
});
});
w = createWikifier(window, jQuery, { host: host, container: "recipes/" + space + "_public" });
$("#topics .show").live("click",function(ev) {
var tag = $(this).text();
current_topic = tag;
offset = 0;
$("#stream").empty();
var search = new tiddlyweb.Search('tag:"' + tag + '" &fat=y', host);
search.get(function(tiddlers) {
for(var i = 0; i < tiddlers.length; i++) {
var tiddler = tiddlers[i];
var item = $("<li />").appendTo("#stream")[0];
$("<h2 />").text(tiddler.title + ": ").appendTo(item);
$("<div class='text' />").text(tiddler.text).appendTo(item);
$("<div class='author' />").text(tiddler.modifier).appendTo(item);
}
}, function() {
$("<li>no topics :-(</li>").appendTo("#stream");
});
});
$(window).scroll(function(){
if($(window).scrollTop() == $(document).height() - $(window).height()) {
offset += 10;
// find a way to get all tiddlers created before the ones above
console.log("loadMore();");
}
});
</script>
</body>
</html>
/***
|''Name''|ImportExternalLinksPlugin|
|''Author''|Jon Robson|
|''Version''|0.3.0|
|''Requires''|TiddlySpaceConfig TiddlySpaceLinkPlugin TiddlySpaceCloneCommand|
|''Description''|Turns space links into ajax links so you don't have to leave the comfort of your own TiddlyWiki|
!Notes
This maybe should hides the editTiddler, cloneTiddler commands. Ideally the toolbar commands should hide themselves but we need a strong concept of "this is a sucked in tiddler" to do that.
***/
//{{{
(function($){
var tiddlyspace = config.extensions.tiddlyspace;
_createSpaceLink = createSpaceLink;
if(_createSpaceLink) {
createSpaceLink = function(place, spaceName, title, alt, isBag) {
var tooltip = "Click to open in current document. Right click to open in original space.";
_createSpaceLink(place, spaceName, title, alt, isBag);
var workspace;
if(isBag) {
workspace = "bags/%0".format(spaceName);
} else {
workspace = "bags/%0_public".format(spaceName);
}
if(title && spaceName != tiddlyspace.currentSpace.name) {
var link = $("a:last", place);
var newlink = $("<a />").text("[link]").after(link[0]);
// very hacky
var updateInterval = setInterval(function() {
var href = link.attr("href");
if(href) {
$(newlink).attr("href", href);
clearInterval(updateInterval);
}
}, 200);
if(link.parent(".replyLink").length == 0) { // don't suck in a reply link.
link.attr("title", tooltip).addClass("importLink").click(function(ev) {
if(config.floorboards) {
config.floorboards.pushUnique("%0_public".format(spaceName));
}
tiddlyspace.displayServerTiddler(ev.target, title, workspace, function(el) {
// TODO: the commands should disable themselves based on the meta information.
//$("[commandname=editTiddler], [commandname=cloneTiddler]", el).hide();
});
ev.preventDefault();
});
}
}
};
}
var _cloneHandler = config.commands.cloneTiddler.handler;
config.commands.cloneTiddler.handler = function(event, src, title) {
var _tiddler = store.getTiddler(title);
var source = _tiddler ? _tiddler.fields["server.bag"] : false;
var imported = _tiddler ? _tiddler.fields["tiddler.source"] : false;
var realTitle = _tiddler ? _tiddler.fields["server.title"] : title;
_cloneHandler.apply(this, [event, src, title]);
var tidEl = story.getTiddler(title);
$(story.getTiddlerField(title, "title")).val(realTitle);
if(source) {
$("<input />").attr("type", "hidden").attr("edit", "tiddler.source").val(source).appendTo(tidEl);
$("<input />").attr("type", "hidden").attr("edit", "server.activity").appendTo(tidEl);
}
}
})(jQuery);
//}}}
I get a deluge of invites from a friend of mine who is a [[DJ]] and a ClubPromoter so I decided to chime in on a [[is it possible to block someone from inviting you to events?|http://goo.gl/N3JvG]] thread (I'm post #404!)
<<<
what I really need is to "mute" event invites from cities I'm not currently in. If I'm in bangkok, I don't need to know about LA events and when I'm in LA, I don't need to know about bkk invites! of course, there's an event here and there that would actually get my booty movin - that'd prolly be an ole fashioned phone call :)
<<<
I did the [[Workaround]] to put my friend on a BlockEventInvites BlockList - hope I remember when I get back to Bangkok - though how the hell could I possibly forget to go [[Dancing]] when I step foot in another city - I don't think I'll need [[Facebook]] for this :P
to be fair, [[meetup.com]] starts to solve the issue a bit by having you subscribe to topics and allowing you to see what meetups are happening in the city you're currently in. I don't think it's quite perfect yet - but it was a step forward when I observed what happened when I transitioned from [[Bangkok]] to [[Tokyo]] to LosAngeles.
at the heart of this is not so much the city you're in but the [[Context]] you're in.
RockMelt is a good example of a browser that acknowledges peeling off the SocialLayer when you are QuietMode
One could argue you could abstract the notion of an [[Invite]] to a [[Request]]
If you're lucky enough to have such a plan, you might as well experiment with the following games:
# embrace GoogleVoice and see how many texts & calls you can receive and make without using your [[Cellular]] line. Services like [[Talkatone]] make it even easier. You may find you may not need as many minutes as you needed before.
# give up CableTV and start watching content thru services like [[Netflix]] and [[Hulu]]
# get your iTunes library down the NittyGritty and play with services like [[last.fm]] and [[Pandora]]
# from time to time, leave your SmartTablet at home and hook your SmartPhone up to an [[HDTV]]. Start realizing you can have it all, have a BigScreen, and eat your cake too. Might as well share [[Netflix]] movies in HD while you're at it!
# if you have the feature, might as well put that PersonalHotspot feature to use - ShareTheWealth!
the whole point of this game is to maximize the resources you already have. and if you're a [[Dancer]] - all you want is a SmartPhone for those times you get bored but then again, maybe you should play the game of accepting things exactly how they are and discover the [[Beauty]] in your [[Environment]] rather to turning to that PeskyLittleDevice or the [[Internet]] ;-)
Once you have some content then you may choose to determine a tiddler, or set of tiddlers to display each time you load ~TiddlySpace. This is determined by the [[DefaultTiddlers]].
var user, userbag;
var friends = [];
var host = "http://tiddlyspace.com";
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader("X-ControlView", "false");
}
});
function printMessage(txt) {
alert(txt);
}
function printError(txt) {
alert(txt);
}
var simpleDate = (function() {
var measures = {
second: 1,
minute: 60,
hour: 3600,
day: 86400,
week: 604800,
month: 2592000,
year: 31536000
};
var chkMultiple = function(amount, type) {
return (amount > 1) ? amount + " " + type + "s":"a " + type;
};
return function(thedate) {
var dateStr, amount,
current = new Date().getTime(),
diff = (current - thedate.getTime()) / 1000; // work with seconds
if(diff > measures.year) {
amount = Math.round(diff/measures.year);
dateStr = "about " + chkMultiple(amount, "year") + " ago";
} else if(diff > measures.month) {
amount = Math.round(diff/measures.month);
//if(typeof amount == "")
dateStr = "about " + chkMultiple(amount, "month") + " ago";
} else if(diff > measures.week) {
amount = Math.round(diff/measures.week);
dateStr = "about " + chkMultiple(amount, "week") + " ago";
} else if(diff > measures.day) {
amount = Math.round(diff/measures.day);
dateStr = "about " + chkMultiple(amount, "day") + " ago";
} else if(diff > measures.hour) {
amount = Math.round(diff/measures.hour);
dateStr = "about " + chkMultiple(amount, "hour") + " ago";
} else if(diff > measures.minute) {
amount = Math.round(diff/measures.minute);
dateStr = "about " + chkMultiple(amount, "minute") + " ago";
} else {
dateStr = "a few seconds ago";
}
return dateStr;
};
})();
function prettyDate(t) {
var date = new Date(Date.UTC(
parseInt(t.substr(0, 4), 10),
parseInt(t.substr(4, 2), 10) - 1,
parseInt(t.substr(6, 2), 10),
parseInt(t.substr(8, 2), 10),
parseInt(t.substr(10, 2), 10),
parseInt(t.substr(12, 2) || "0", 10),
parseInt(t.substr(14, 3) || "0", 10)
));
return simpleDate(date);
}
function endsWith(str, suffix) {
return str.indexOf(suffix) == str.length - suffix.length;
}
function isShadow(tid) {
var shadows = ["MarkupPreHead", "DefaultTiddlers", "PageTemplate", "SideBarTabs",
"GettingStarted", "MainMenu", "SiteTitle", "SiteSubtitle", "ColorPalette",
"SiteIcon", "ViewTemplate", "EditTemplate", "ServerSettings", "MarkupPostHead",
"MarkupPostBody", "MarkupPreBody"];
return tid.title.indexOf("StyleSheet") === 0 ||
tid.title.indexOf("SideBar") === 0 ||
shadows.indexOf(tid.title) > -1 || endsWith(tid.title, "SetupFlag") ? true : false;
}
function isPlugin(tid) {
return tid.tags.indexOf("systemConfig") > -1 ? true : false;
}
function isArtifact(tid) {
var follow = tid.tags.indexOf("follow") > -1;
var type = tid.type;
if(follow || type) {
return true;
} else {
return false;
}
}
function chooseTiddlers(tiddlers) {
var _tiddlers = [];
for(var i = 0; i < tiddlers.length; i++) {
var tid = tiddlers[i];
if(!isPlugin(tid) && !isShadow(tid) && !isArtifact(tid)) {
_tiddlers.push(tid);
}
}
return _tiddlers;
}
function bubbleDown() {
var friends = $(".friend");
friends.css({ position: "relative" });
var target;
friends.each(function(i, el) {
if(!target && $(el).hasClass("silentFriend") &&
$(el).next(".friend").hasClass("noisyFriend")) {
target = el;
}
});
if(target) {
var other = $(target).next(".friend");
// we want to move target above the prev element
// target is an element which has the class noisy and the previous node is quiet
var swapDuration = 50;
var otherHeight = other.height();
var thisHeight = $(target).height();
$(target).animate({ top: + otherHeight }, { duration: swapDuration });
$(other).animate({ top: - thisHeight }, { duration: swapDuration,
complete: function() {
var newTarget = $(target).clone(true).insertAfter(other)[0];
$(target).remove();
$(other).css({ top: 0 });
$(newTarget).css({ top: 0 });
bubbleDown();
}
});
}
}
function renderTiddlerList(container,friend) {
var tidList = $("<ul />").appendTo(container)[0];
$("<li />").text("loading").appendTo(tidList);
var oncompletion = function() {
if($(".errorFriend,.silentFriend,.noisyFriend").length === $(".friend").length) {
bubbleDown();
}
}
$.ajax({ dataType: "json",
url: "/search?q=modifier:" + friend + "&select=modified:>3d&sort=-modified",
error: function() {
$(container).addClass("errorFriend");
oncompletion();
},
success: function(tiddlers) {
$(tidList).empty();
tiddlers = chooseTiddlers(tiddlers);
if(tiddlers.length === 0) {
$(container).addClass("silentFriend");
$("<li />").text("No recent activity.").appendTo(tidList);
oncompletion();
return;
} else {
$(container).addClass("noisyFriend").removeClass("inactiveFriend");
oncompletion();
}
for(var i=0; i < tiddlers.length; i++) {
var tiddler = tiddlers[i];
var item = $("<li />").appendTo(tidList)[0];
var win;
var space = tiddler.bag.split("_")[0];
var spaceUrl = "http://" + space + ".tiddlyspace.com";
var path = "/bags/" + tiddler.bag + "/tiddlers/" + encodeURIComponent(tiddler.title);
var link = $("<a />").text(tiddler.title).
attr("href", spaceUrl + path).
data("path", path).
click(function(ev) {
var win = $(ev.target).data("win");
if($(ev.target).hasClass("active")) {
$(win).toggle(1000);
} else {
$(ev.target).addClass("active");
$(".text", win).text("loading...");
$(win).show();
$.ajax({
url: $(ev.target).data("path"),
data: {
render: "y"
},
dataType: "json",
success: function(tiddler) {
$(".text",win).html(tiddler.render);
$(win).show(1000);
},
error: function() {
$(".text", win).text("error loading that tiddler");
}
});
}
ev.preventDefault();
}).
appendTo(item)[0];
var space = tiddler.bag.split("_")[0];
$("<span />").text(" in ").appendTo(item);
$("<a />").attr("href", spaceUrl).text(space).appendTo(item);
$("<span />").text(" (" + prettyDate(tiddler.modified) + ")").appendTo(item);
win = $("<div />").addClass("tiddler").appendTo(item)[0];
$("<div />").addClass("text").appendTo(win);
var toolbar = $("<div />").addClass("toolbar").appendTo(win)[0];
var extra = $("<div />").addClass("extra").appendTo(win)[0];
$("<button />").data("bag", tiddler.bag).data("title", tiddler.title).text("give feedback").
data("revision", tiddler.revision).click(function(ev) {
var title = $(ev.target).data("title");
var revision = $(ev.target).data("revision");
var bag = $(ev.target).data("bag");
var revisionURL = host + "/bags/" + bag + "/tiddlers/" + encodeURIComponent(title) + "/revisions/" + revision;
var space = bag.split("_")[0];
var area = $(ev.target).parents(".tiddler").children(".extra")[0];
$(area).hide();
$("<textarea />").appendTo(area);
$("<button />").text("save feedback").click(function(ev) {
var tid = new tiddlyweb.Tiddler("Feedback for " + title, userbag);
tid.tags = ["feedback", "@" + space];
tid.text = ["In reply to [[", title, "]]@", space,
" (revision [[", revision, "|", revisionURL, "]])\n\n"].join("") + $("textarea", area).val();
tid.put(function(tiddler) {
$(area).empty();
$("<span />").text("your comment: ").appendTo(area);
$("<a />").attr("href", "/" + encodeURIComponent(tiddler.title)).text(tiddler.title).appendTo(area);
}, function() {
printError("error commenting!");
});
}).appendTo(area);
$(area).show(1000);
ev.preventDefault();
$(ev.target).remove();
return false;
}).appendTo(toolbar);
$(win).hide();
$(link).data("win", win);
}
}
})
}
function removeFriend(friend) {
var tiddler = new tiddlyweb.Tiddler("@" + friend, userbag);
var success = function() {
printMessage("User removed from friends");
var newFriends = [];
for(var i = 0; i < friends.length; i++) {
var f = friends[i];
if(f !== friend) {
newFriends.push(f);
}
}
friends = newFriends;
$("#friend-" + friend).hide(2000);
};
tiddler["delete"](success, function() {
var old = new tiddlyweb.Tiddler(friend, userbag);
old["delete"](success, function() {
printError("Unable to remove friend " + friend);
})
})
}
function renderFriend(list, friend) {
var bag = friend + "_public";
var item = $("<li />").addClass("friend").attr("id", "friend-" + friend).addClass("inactiveFriend").appendTo(list)[0];
$("<img />").attr("alt", friend).attr("title", friend).
attr("src", host + "/bags/" + bag + "/tiddlers/SiteIcon").css({ width: 48, height: 48 }).appendTo(item);
var heading = $("<h2>").appendTo(item)[0];
$("<a />").attr("href", "#friend-" + friend).attr("name", "friend-" + friend).text(friend).appendTo(heading);
$("<button />").data("who", friend).text("remove from friends").
click(function(ev) {
if(confirm("Are you sure you want to remove " + friend + " as a friend?")) {
removeFriend($(ev.target).data("who"));
}
}).appendTo(item)[0];
renderTiddlerList(item,friend);
}
function renderFriends() {
var list = $("<ul />").appendTo("#friends")[0];
$("<li />").text("Activity of your friends will appear below when available").appendTo(list);
for(var i = 0; i < friends.length; i++) {
var friend = friends[i];
renderFriend(list, friend);
}
}
function followWidget() {
$("#friends").empty();
var container = $("<div />").addClass("addfriends").appendTo("#friends")[0];
$("<input />").attr("name", "friend").appendTo(container);
$("<button />").text("add friend").click(function(ev) {
var friend = $(ev.target).parent().children("[name='friend']").val();
if(friends.indexOf(friend) > -1) {
return printError("You already follow " + friend + "!");
}
var title;
if(friend.indexOf("@") !== 0) {
title = "@" + friend;
} else {
title = friend;
}
$.ajax({ dataType: "text", url: "/users/" + friend,
success: function() {
var tid = new tiddlyweb.Tiddler(title, userbag);
tid.tags = ["follow", "excludeLists"];
tid.put(function(tiddler) {
printMessage("Added friend " + friend);
renderFriend($("#friends ul")[0], friend);
window.location.hash = "#friend-" + friend;
}, function() {
printError("Failed to add friend " + friend);
})
},
error: function() {
printError("No one with name " + friend + " exists!");
}
});
}).appendTo(container);
renderFriends();
}
$.ajax({
url: "/status",
dataType: "json",
success: function(status) {
user = status.username;
userbag = new tiddlyweb.Bag(user + "_public", "/");
$.ajax({ url: "/bags/" + user + "_public/tiddlers?select=tag:follow", dataType: "json", success: function(tiddlers) {
for(var i = 0; i < tiddlers.length; i++) {
var title = tiddlers[i].title;
if(title.indexOf("@") === 0) {
title = title.substr(1, title.length);
}
friends.push(title);
}
friends.sort();
followWidget();
}
});
}
})
so when to [[Partition]] [[Knowledge]] out of one's Space?
http://www.activelearningusa.org
I still have quite a bit to do in regards to cleaning up @chalat!
For a RainyDay!
config.options.chkSearchListTiddler=true;
config.options.chkSearchTitlesFirst=true;
# ComponentCable
# VGAAdaptor
# MatchSticks
# PrintedResume
# [[Probiotics]]
I'm looking for [[Alternatives]] and ouch...
<<<
The liquid aminos product is heat processed and made with hydrochloric acid. Salt apparently forms in its processing, plus
glutamic acid which is the same substance that is in MSG. Thus it is processed with heat and chemicals and the final result is a dead food and not a living one as Bragg claims.
<<<
http://goo.gl/JtEz8
[[Replies and Notifications]]
<<activity>>
http://goo.gl/du3XY
I personally like http://goo.gl (if you can't already tell above :) (http://goo.gl/vtZbS for ChromeExtension)
Greetings! This space is dedicated to LifeExplorations - that we follow every path that inspires and go forward with what sticks!
In July 2011, I created a new [[Wiki]] in TiddlySpace to bring together lots of things I'm excited about. You can check out my prior explorations including TiddlyWiki and [[Wikispaces]].
On my quest to become a ProfessionalSpeaker, I did not expect [[ManInTheMirror]] to inspire me to play with integrating video in this space.
Enjoy!
find email sent to Ian (ex-TENF) summarizing experiences by year.
http://www.mkprojects.com/fa_emotions.html
I'd like to join @gtd and help shape that world :)
without the ability to request participation, we risk creating GhostSpaces akin to what you see on [[Twitter]] - can't tell you how many organizations choose a different handle when the [[Trademark]] is rightfully theirs!
/***
|''Name''|tsScanCountPlugin|
|''Description''|Provides ability to count tiddlers at a given tiddlyspace url and display a button that when clicked lists them. Also upgrades tsScan to replace any options containing with $1 with the current space|
|''Version''|0.2.0|
***/
//{{{
(function($) {
var tsScan = config.macros.tsScan;
var tiddlyspace = config.extensions.tiddlyspace;
var macro = config.macros.tsScanCount = {
cache: true,
countCache: {},
handler: function(place, macroName, params, w, paramString, tiddler) {
var container = $("<a href='#' class='button' />").attr("refresh", "macro").attr("macroName", macroName).appendTo(place)[0];
$(container).data("params", paramString);
macro.refresh(container);
},
refresh: function(container) {
var paramString = $(container).data("params");
var options = tsScan.getOptions(paramString, tiddler);
var url = options.url;
options.cache = macro.cache;
options.callback = function(tiddlers) {
options.cache = true;
macro.cache = true;
var count = tiddlers[0] ? tiddlers[0].fields['server.page.revision'] : 0;
var lastCount = macro.countCache[url] || 0;
if(lastCount != count) {
var interval, step = 0;
interval = window.setInterval(function() {
var last = step;
step += 1;
$(container).removeClass("step" + last);
if(step > 10) {
macro.countCache[url] = count;
window.clearInterval(interval);
} else {
$(container).addClass("step" + step);
}
}, 500)
}
$(container).empty().addClass("enabled").text(tiddlers.length).click(function(ev) {
$(ev.target).addClass("active");
var target = options.popupSelector ? $(options.popupSelector)[0] : ev.target;
var p = Popup.create(target, "div");
var container;
if(options.heading) {
container = $("<div />").addClass("heading").appendTo(p)[0];
wikify(store.getTiddlerText(options.heading) || "", container);
}
container = $("<div />").addClass("followTiddlersList").appendTo(p)[0];
tsScan.scan(container, options);
Popup.show();
ev.stopPropagation();
return false;
});
};
tsScan.scan(container, options);
}
}
var _getOptions = tsScan.getOptions;
config.macros.tsScan.getOptions = function(paramString, tiddler) {
var options = _getOptions.apply(this, arguments);
var optionsClone = {};
for(var i in options) {
if(typeof(options[i]) == "string") {
optionsClone[i] = options[i].format(tiddlyspace.currentSpace.name);
} else {
optionsClone[i] = options[i];
}
}
return optionsClone;
}
// every 5 minutes make tsScan update.
window.setInterval(function() {
macro.cache = false;
$("[macroName=tsScanCount]").each(function(i, el) {
macro.refresh(el);
});
}, 1000 * 60 * 5);
})(jQuery);
//}}}
# TiddlyWiki
# TiddlyWeb
# TiddlySpace
ever since 2001, I've been in StartupMode and happy I've gotten to a place where I can slow my life down a bit and deal with the degree I had been ignorant of my WellBeing and just taking my body for granted. [[Sleep]] is the one factor I've been experimenting with that makes the biggest difference.
Woke up rather wired yesterday at 6am and my body clearly wanted to shutdown by 8 or 8:30pm. Tried to take a quick nap and thought I was fine to just chat on the couch from 9 til 11. Certainly didn't expect to wake up at 5:30 feeling completely BurntOut and it was interesting to look at my SleepCycle and see I passed out pretty good into DeepSleep and that my body was up by 4am.
Now given my experience meditating for 10 days in [[Thailand]] and my last experience at BurningMan, my NaturalRhythm is to be up by 4 or 5am and just be the one that says GoodMorning to the whole community ;-)
now getting to sleep by 8 or 9pm is a complete LifestyleChange for me given my DancingRoots are in the the late-night Electronica scene and happy I'm finding spirits to DanceByDay and even WakeUpAndDance :)
many hugs 2 u @claudia! [[♥]]
Damn I'm hungry at 5:45.. I've been up since 4:20 and really debated even sending a text to let my friend know I was up & open to doing a TopOfTheMorning session with her - I didn't and decided to LetThingsBe and my old partner in Thailand who is now in [[Indonesia]] sent me a message in [[Thai]] and realized it'd be easier to talk & got shut down by the StateOfTechnology pretty quickly. I'm in some divide between wanting to interact and play with someone first thing in the morning vs BeingWithMyself vs a Mode where im not really interested in interacting in real-time online right now - it's a bit of a Quandary - to be or not to be online :)
AlwaysOnInternet - so easy to assume everyone's got it so what excuse could u possibly have for being OutOfTouch?
So I was sharing my passion for Technology & my friend helped me see that AdSense must do some kind of ConversationAnalysis already. I also recalled a [[Startup]] I interviewed for back in 2000 called [[Tacit]] - which did analysis at the level of [[Enterprise]] so as to identify the KnowledgeExpert or GotoPerson in a company.
In many ways - I can see how this kind of system has been promoted to the web in many ways through FacebookUpdates and Twitter (consider how TrendingTopics are probably created)
So I'm excited about the opportunity I have to meet one of the founders of Twitter - I feel like I need to get up to speed & at the same time, this is such a LeisurelyIntroduction, I feel I shouldnt sweat it.
My explorations with GoogleVoice are settling down after 3 very intense days and committing to a DataOnlyMobileComputing configuration.
So one method for transforming blogging is to use this to not only create prose but to also stitch thoughts & concepts from the day before as I did above with DataOnlyMobileComputing.
The other side of all that was an opportunity to spend QualityTime with a friend in town at the KoreanCulturalCenter where they were honoring KoreanAnimators.
We didn't go [[Salsa]] dancing as we decided to go Monday evening since she's on a trip inside a BusinessTrip today thru tomorrow.
Debatable what to do today - I'm getting lazy around FoodPreparation for the week - in almost feel the role my new diet has played is complete & to bring this level of awareness & open up the realm of recipes I can cook for the week might make it more fun & more practical now that my dad & mom can show me how to cook Thai - but it might serve me better to just figure out how to cook [[Tempeh]] or find a substitute & cook GaiKraPow without using [[Chicken]] for the first time. FollowThrough is important right now.
Speaking of [[Now]] - I'm reminding myself to learn to [[Chillout]] and take it easy - my ImpatienceStreak often occurs as very demanding esp if you're newly creating a [[Relationship]] with me.
You'll find I'm wanting to explore different facets of a relationship in as little time as possible- things like:
# ability to focus on each other
# ability to focus on others
# how [[Coachable]] you are
# to what degree im willing to let u coach me
# [[Dance]]
# eating preferences - would we have fun [[Cooking]] together?
# LifestyleChoices
# socializing
# ability to crash
# ability to maintain a household
# ability to play w [[Technology]] together
# ability to create together
# ability to cause results together (esp SocialEvents)
# ability to explore esp TheUnknown
# ability to maintain an agenda and stay OnTask
# ability to be Spontaneous
# ability to go with the flow & synchronize plans & keep our intentions in existence
Ok - thats a [[Brainstorm]] and perhaps slightly redundant - it probably sounds like a bit like [[Dating]] for a SeriousRelationship -well - as much as I'm ChillingOut, I still have my eyes open - and yes, I've got HighStandards for a ProfessionalRelationship -I just want it all without being Blind.
Sooo -sharing resources is another conversation that comes up.
Am I alone in sharing out here? I'm public and dont know who's listening if anyone!
I suppose there are things I'd love to write about openly that would make me quite vulnerable - like this state of not feeling fulfilled -feeling like there is an [[Abundance]] of resources available to me but I'm moving at the pace of Molasses - like I dont accept what is being accomplished and perhaps it's a matter if integrating what I do create so there is a sense of ForwardProgress.
So easy to go back to sleep - 2 hrs in my head, fiddling w my iPhone is enough to make you pass out.
Am I just [[Bored]]?
Today is the day I start plugging into others who share & collaborate on their experiments.
It's taken me almost 5 months to get to a place I feel grounded and can share the various aspects of the MadScientist in me & have enough ReferencePoints to bring everything together and/or come back home if that's what I want to do.
Maybe others disagree but I feel it's ''very'' important to have a sense of HomeOnTheInternet where you choose to create your own site, MySpace, Facebook, TiddlySpace, a blog, what have you. You have the right to have a voice & it's a matter of BeingUnattached to how yr voice lands for others. Who gives a shit?
Ok - give myself a breather - [[Breakfast]] is simple, a drop off at the airport, and not to concerned what I do or dont get done today!
Do I have any specific questions around what makes a good [[Hypnotherapist]]?
You know, I think I may!
[[;-)]]
/***
|Article|http://blog.spacelag.com/2007/10/tracking-tiddlywiki-with-google.html|
***/
{{{
// Specify your account number here!
_uacct = "UA-567455-1";
// 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) {
urchinTracker.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();
}}}
!contexts
# DataOnlyMobileComputing - the most extreme of [[Configurations]] not using a CellularVoice connection. Simulated by using an [[iPad]] DataOnly SIM and is a superset of the experience using a MobilePhone abroad in WiFiOnlyMode
# VoiceCarrierVoIPDelegation - uses a CellularVoice (or [[Landline]]) connection to enhance the quality of calls. First discovered this through [[Jajah]]
!implementations
# [[Android]] - while I personally have no experience with it - I'm guessing it to be the most refined GoogleVoice experience that will get better over time. It appears to be Google's [[Strategy]] to capture and [[Monetize]] the [[Telecommunications]] space
# GVExtensions - requires [[Jailbreaking]] and provides a [[Native]] experience of GoogleVoice through the built-in Phone and SMS apps on the [[iPhone]]. Has DialRules to help you [[Optimize]] the connection.
# iPhone [[app]] - goal: a UnifiedExperience
## [[Talkatone]] - most useful [[Overseas]] where a US CellularVoice connection is not available. All calls get routed through Talkatone servers through GoogleVoice. VoiceQuality is along the lines of [[Skype]] (opposed to VoiceCarrierVoIPDelegation). ExtraFeatures: InstantMessaging
## iPhone GoogleVoice [[app]] - not VoIP solutions.
### GoogleVoice - official app that does the job. UI has RoughEdges but Simple.
### GVMobile+ - smoother UI. supports MultipleAccounts.
### GVConnect - NotEvaluated
!shortcomings
# no [[MMS]]
# can't send InternationalTexts
# no VisualVoicemail
/***
|''Name''|TiddlySpaceCloneCommand|
|''Version''|0.5.8|
|''Description''|provides a toolbar command for cloning external tiddlers|
|''Status''|stable|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceCloneCommand.js|
|''Requires''|TiddlySpaceConfig TiddlySpaceFilters|
!Code
***/
//{{{
(function($) {
var cmd = config.commands;
var tiddlyspace = config.extensions.tiddlyspace;
var fieldsCache = {};
cmd.cloneTiddler = {
text: cmd.editTiddler.text,
tooltip: "Create a copy of this tiddler in the current space",
errorMsg: "Error publishing %0: %1",
isEnabled: function(tiddler) {
return !config.filterHelpers.is.local(tiddler) && !readOnly;
},
handler: function(ev, src, title) {
var tiddler = store.getTiddler(title);
if(tiddler) {
fieldsCache[title] = $.extend({}, tiddler.fields);
tiddler.fields["server.workspace"] = tiddlyspace.getCurrentWorkspace(config.options.chkPrivateMode ?
"private" : "public");
tiddler.fields["server.permissions"] = "read, write, create"; // no delete
delete tiddler.fields["server.page.revision"];
delete tiddler.fields["server.title"];
delete tiddler.fields["server.etag"];
// special handling for pseudo-shadow tiddlers
if(tiddlyspace.coreBags.contains(tiddler.fields["server.bag"])) {
tiddler.tags.remove("excludeLists");
}
} else { // ensure workspace is the current space
var el = story.findContainingTiddler(src);
el = $(el);
var fields = el.attr("tiddlyfields");
if(fields) { // inherited via TiddlyLink
fields = fields.decodeHashMap();
fields["server.workspace"] = config.
defaultCustomFields["server.workspace"];
} else {
fields = config.defaultCustomFields;
}
fields = String.encodeHashMap(fields);
el.attr("tiddlyfields", fields);
}
cmd.editTiddler.handler.apply(this, arguments);
if(tiddler) {
tiddler.fields["server.permissions"] += ", delete";
}
return false;
}
};
cmd.editTiddler.isEnabled = function(tiddler) {
return !cmd.cloneTiddler.isEnabled.apply(this, arguments);
};
// hijack cancelTiddler to restore original fields
var _cancelHandler = cmd.cancelTiddler.handler;
cmd.cancelTiddler.handler = function(ev, src, title) {
var tiddler = store.getTiddler(title);
if(tiddler) {
tiddler.fields = fieldsCache[title] || tiddler.fields;
delete fieldsCache[title];
}
return _cancelHandler.apply(this, arguments);
};
// hijack saveTiddler to clear unused fields stash
var _saveHandler = cmd.saveTiddler.handler;
cmd.saveTiddler.handler = function(ev, src, title) {
delete fieldsCache[title];
return _saveHandler.apply(this, arguments);
};
})(jQuery);
//}}}
http://www.westonaprice.org/component/finder/search?q=soy
http://search.mercola.com/search/Pages/results.aspx?k=soy
I've been playing around with modeling the import of [[Journal]] entries from ShivaSleeps [[Verbatim]] and struggling with the fact that TiddlySpace was built for [[Refactoring]] and meant to break that [[Paradigm]] and it was a matter of discovering how ''I'' was going to do that. I think I figured it out.
[[July 2, 2011 (ShivaSleeps)]] is probably the last entry (of 4) imported in this manner and DeadAsADoorknob is the first where I'm giving a name to the notion of my SleepPattern which may in fact change as refactoring happens.
The idea will be to use these MorningPages as RawCopy. Content meant to be ChoppedAndDiced, creating new tiddlers as needed, at will. Now because TiddlySpace keeps revisions of your tiddlers - the state of the initial import is preserved. The ShivaSleeps WordPress blog itself captures the [[Traditional]] StaticNature of entries.
this allows tiddlers like DeadAsADoorknob to be just as malleable as any other tiddler that gets refactored over time. Now admittedly, I probably won't be refactoring any time soon and still want to put the idea out there that there is a way to reassemble tiddlers in such a way it is capable of regenerating the OriginalCopy. (in fact, one could go as far to say, one could create the ShivaSleeps WordPress blog from [[Nothing]] and go even further to say, one could [[Reexpress]] Shiva in a TransformedWay - now that would be neat!)
ok - that's enough [[Vision]] for now - gotta deal with [[Reality]] :D
ps. there is something [[Recursive]] about this process - what about refactoring ''this'' tiddler?!? an AcademicExercise for another time... ;-)
<<tabs
txtMainTab
"Recent" "Recently edited tiddlers" TabTimeline
"All" "All tiddlers" TabAll
"Public" "All public tiddlers" [[TiddlySpaceTabs##Public]]
"Private" "All private tiddlers" [[TiddlySpaceTabs##Private]]
"Drafts" "All draft tiddlers" [[TiddlySpaceTabs##Drafts]]
"Tags" "All tags" TabTags
"Spaces" "Tiddlers grouped by space" [[TiddlySpaceTabs##Spaces]]
"Activity" "What people you are following are up to" TabFollowing##Activity
"Following" "People you are following" TabFollowing##Following
"Followers" "People who are following you" TabFollowing##Followers
"Missing" "Missing tiddlers" TabMoreMissing
"Orphans" "Orphaned tiddlers" TabMoreOrphans
"Shadows" "Shadowed tiddlers" TabMoreShadowed
>>
Went to bed / woke up: 1:50 / 8:10
Total time: 6h 20m
Getting into an [[Argument]] with mom on thu really got me rather [[Depressed]] all day yesterday – in fact, I begin [[sabotaging|Sabotage]] myself, finding ways to kill time, and next thing I know it’s 1:30 and I feel bad about throwing my [[Discipline]] out the door at 10 – hell, when 8pm came around, I already decided [[F*ckIt]] when it was time to WindDown. I purposely stayed home to create space to get a good night’s sleep [and clearly didn't] and sure enough, I’m up at 8am, I look [[Restless]] through the night, and I don’t feel all that great waking up – practically feeling like GroundhogDay, thinking I have to [[forgive|Forgiveness]] myself and try again.
I originally had a plan to meet my friend yesterday, didn’t tell him how important it was to meet regardless of what we each had on our plates – had I known I was going downhill, I would have said otherwise.
This is definitely not a space Im looking to socialize, talk to new people I’ve met, go [[Dancing]] – it’s kinda rough.
I think what I’m most upset about is that it [[seems|Seeming]] like my parents have no comprehension of WhatIDoForALiving, HowIChooseToLeadMyLife, WhatExcitesMe, how much I want to create a family that works together on everything – the good and the bad.
I have a [[Vision]] for [[Thailand]], our family, BeingHealthy, OurHouse, [[Travelling]] & it’s frustrating feeling like I’m working on it alone & my family is not aligned – they think it sounds great but they don’t see a path there.
I guess I’m seeing my own resignment & as a result, I see theirs.
Last thing I want to do is find a SignificantOther just because I want to build the kind of family I want to build. I would hope she is just as enrolled in building an ExtraordinaryFamily & that she has ideas of her own & is willing to take initiative in what she believes in & works things out ongoingly.
I told myself I’d be doing a [[Disservice]] attempting to have a family now while I am attending to myself. Though, as many of you know, life never works according to plan – all there is to do is be honest about what’s going on & if I go OutOfCommunication, it’s because it’s likely I have a concern around [[overwelming|Overwhelm]] you with TooMuchInformation. I retreat to sort things out and well, can be happy I’m sharing publicly here rather than just hiding. Though it is a matter of letting people know I am actually sharing here and in my [[TiddlySpace|http://chinarut.tiddlyspace.com]]
In fact, if I haven’t mentioned it already, the digital side of the ModernNomad in me keeps http://chinarut.com current & up to date.
So I was asked by a friend in my Facebook community about [[Google+]] – the preview video I saw looked interesting but overall, I just saw it as a [[Hodgepodge]] of technologies Google has in development that admittedly, will be useful (like [[Hangouts]]). Though my concern is I am not seeing development of KnowledgeStructures -tools to assist what they call [[Circles]] (effectively your SocialCircles) to [[Synthesize]] and create SharedKnowledge and share this with circles outside your own, effectively.
That is why I’m putting many (not all) of MyEggs in TiddlySpace – I’m interested in building a community intrerested in slapping together their rich lives, their [[Wisdom]] in ways humanity has never done before the Internet.
Now don’t get me wrong, I’m sure there are some really bright folks at Google (in fact I know quite a few, hello if you’re reading this – I’m sure they’ve got their own [[Strategy]] in regards how they intend to [[Mobilize]] their community, attract new people, and ensure their own [[Sustainability]].
I’m guessing GoogleWave was quite the [[Writeoff]] and hope to dear god they still have a plan of how to reap its benefit long after they’ve passed the engineering work onto the ApacheFoundation which created the technology most web servers run on today. I have my data in GoogleWave and while someone hacked a quickway to export my waves, it’s not nearly as portable as a Tiddler in a TiddlyWiki or TiddlySpace – [[Portability]] was put in ByDesign – not an [[Afterthought]] – but you can’t really blame Google, they took on tremendous risk to venture into unknown territory and invite the brightest of the GoogleCommunity to come on board – unfortunately this failure may cost them when it comes to pulling people to [[Google+]] – there will certainly be a percentage of people who will be skeptical from the get go & it’s no surprise they hired a [[Designer]] who used to be at Apple to complete the interface so it looks like EyeCandy – and that it succeeds if you notice how [[Circles]] are created and even the tour!
In any case, I gotta eat, sort out to what degree I wish to be social today (and what degree I wish to spend out if the house!), and I think one of the most important things i’d like to be clear in my sharing is what do I intend to accomplish as a result of having a breakthrough in my WellBeing?
Why have such a hard focus – how will it pay off? Think of it like an investment I’m willing to make. My decisions today are greatly influenced by “what’s in it for my health?”
If you don’t have an answer or you’re just a bunch of [[Baloney]] or you just haven’t taken the time to understand where I’m at & my circumstances – I say take a hike and come back later if you’d like – not take you should take any of this personally.
I think it’s fair to say that Shiva is learning not to use the [[Ruse]] of [[Chaos]] right now and it’s a different beast!
Ok feel better now / can you tell what I turn to when I’m not feeling so hot?
Amazing my leg feel like they are burning inside this morning – but this is an artifact of not anticipating lots of [[Standing]] in the [[Kitchen]] and lots of [[Walking]] while GroceryShopping! Enough for the [[Novelty]] of this all to have worn off yesterday!
Time to get back on my err… [[Horse]]?
Analysis made by the Sleep Cycle iPhone app.
My sleep graph for the entire night:
[img[http://desmond.yfrog.com/Himg32/scaled.php?tn=0&server=32&filename=sleepgraphvvs.jpg&xsize=640&ysize=640]]
I've been playing with Ta-daList for quite sometime and it's an excellent tool for managing impromptu lists - in other words, not on some random StickyNote or not formalized in a system like OmniFocus or a ProjectManager.
one of the things I'm noticing is how important having a SemiAmbiguous areas for [[Agendas]] and GroceryShopping that can kind of float and let be. it should be super simple to input these items and review from time-to-time - much of which you'll find handle themselves esp as you let people and things be :)
I've also discovered that things like [[movies you want to watch|MovieQueue]] are best managed in their respective domains like [[Netflix]] however, this said, I have ratings stuck in [[IMDB]] and reviews stuck in [[Flixster]] - the fact that I cannot port this data has me abandon these platforms in favor of putting my data here in TiddlySpace where it is ''highly'' portable and just a matter of interfaces being developed.
This brings us to a whole other conversation around what your PersonalDataLocker is and why you want one.
VideoTrailer@chalat opens up, has the correct tags, and contains no content :/
/***
|''Name''|RefreshTiddlerCommand|
|''Version''|0.3.0|
***/
//{{{
(function($) {
var cmd = config.commands.refreshTiddler = {
text: "refresh",
locale: {
refreshing: "Refreshing tiddler..."
},
tooltip: "refresh this tiddler to be the one on the server",
handler: function(ev, src, title) {
var tiddler = store.getTiddler(title);
if(!tiddler) {
tiddler = new Tiddler(title);
merge(tiddler.fields, config.defaultCustomFields);
}
$(story.getTiddler(title)).find(".viewer").
empty().text(cmd.locale.refreshing);
var dirtyStatus = store.isDirty();
story.loadMissingTiddler(title, {
"server.workspace": tiddler.fields["server.recipe"] ? "recipes/" + tiddler.fields["server.recipe"] :
tiddler.fields["server.workspace"] || "bags/"+tiddler.fields["server.bag"],
"server.host": tiddler.fields["server.host"],
"server.type": tiddler.fields["server.type"]
}, function() {
store.setDirty(dirtyStatus);
});
}
};
})(jQuery);
//}}}
<html>
<object width="446" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param> <param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/DanielPink_2009G-medium.flv&su=http://images.ted.com/images/ted/tedindex/embed-posters/DanielPink-2009G.embed_thumbnail.jpg&vw=432&vh=240&ap=0&ti=618&lang=eng&introDuration=15330&adDuration=4000&postAdDuration=830&adKeys=talk=dan_pink_on_motivation;year=2009;theme=speaking_at_tedglobal2009;theme=not_business_as_usual;theme=the_creative_spark;event=TEDGlobal+2009;tag=Business;tag=Science;tag=brain;tag=creativity;tag=social+change;tag=work;&preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="446" height="326" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talks/dynamic/DanielPink_2009G-medium.flv&su=http://images.ted.com/images/ted/tedindex/embed-posters/DanielPink-2009G.embed_thumbnail.jpg&vw=432&vh=240&ap=0&ti=618&lang=eng&introDuration=15330&adDuration=4000&postAdDuration=830&adKeys=talk=dan_pink_on_motivation;year=2009;theme=speaking_at_tedglobal2009;theme=not_business_as_usual;theme=the_creative_spark;event=TEDGlobal+2009;tag=Business;tag=Science;tag=brain;tag=creativity;tag=social+change;tag=work;"></embed></object>
</html>
"first got introduced to this material through Daniel's TED talk. The book is very validating for anyone committed to living a life they love! If you feel you've been autonomous and been going about life "on your own" and maybe even got burnt out in the process, this is the book for you. You'll discover why it's so important to *retain* that sense of [[Autonomy]], choose a PathOfMastery and DefineYourPurpose. I think the real value of this book, much like a WholeNewMind, is he has gathered a tons of resources in the form of books, people and suggested exercises for further inquiry. easy read overall - it will surely take something to follow up on all the references and speaks to Daniel's commitment to be a LifelongLearner - cheers!"
//Written on Mar 17, 2010 at 01:16AM//
<html>
<iframe src="http://player.vimeo.com/video/15488784?title=0&byline=0&portrait=0" width="400" height="227" frameborder="0"></iframe><p><a href="http://vimeo.com/15488784">RSA Animate -- Drive: The surprising truth about what motivates us</a> from <a href="http://vimeo.com/user418351">Daniel Pink</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
</html>
<html>
<!--copy and paste--><object width="334" height="326"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param> <param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/DavidLogan_2009-medium.flv&su=http://images.ted.com/images/ted/tedindex/embed-posters/DavidLogan-2009.embed_thumbnail.jpg&vw=320&vh=240&ap=0&ti=651&lang=eng&introDuration=15330&adDuration=4000&postAdDuration=830&adKeys=talk=david_logan_on_tribal_leadership;year=2009;theme=the_rise_of_collaboration;theme=not_business_as_usual;event=TEDxUSC;tag=Business;tag=Culture;tag=communication;tag=leadership;tag=society;&preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="334" height="326" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talks/dynamic/DavidLogan_2009-medium.flv&su=http://images.ted.com/images/ted/tedindex/embed-posters/DavidLogan-2009.embed_thumbnail.jpg&vw=320&vh=240&ap=0&ti=651&lang=eng&introDuration=15330&adDuration=4000&postAdDuration=830&adKeys=talk=david_logan_on_tribal_leadership;year=2009;theme=the_rise_of_collaboration;theme=not_business_as_usual;event=TEDxUSC;tag=Business;tag=Culture;tag=communication;tag=leadership;tag=society;"></embed></object>
</html>
been fiddling around with GoogleVoice non-stop for almost a week now - making GoodProgress and tests my ability to allow [[Technology]] and others who choose to [[Play]] with me to be and not react and in fact, allow them to discover.
I'm giving up the [[Anxiety]] I create and can trust the process of [[Life]] and that it always works out no matter how harrowing the experience.
It doesn't pay to [[lose sleep|DeadAsADoorknob]] over this stuff!
Oh I so feel like I want to hide - I'm not *really* interested in sharing my feelings about how frustrated I am with people when they don't share the same values in regards to keeping things in existence as I do. Sometimes I wonder what the point is in sustaining a Friendship that feels like it has no workability in it. Am I being [[Unreasonable]] or do I have too HighExpectations of others?
It's 2:30 - a context around "what's the point" "I give up" doesn't create Excitement or Motivation or any drive to Perform, or maintain my own Integrity.
What has me chuck my own Integrity out the window when im disappointed in others? It's like I don't care anymore & begin sabotaging myself - like my suffering will get the attention of others.
I'm no longer committed to being this way.
I can't do the work & not FollowThrough quickly.
I'm getting tired.
GoogleVoice is consuming me - getting caught up with StateOfAaffairs with the VoIP games ppl play today.
JailbreakMe - couldnt be any easier - SMS GV extension works like a charm.. Need to show how to default to using carrier instead of GoogleVoice.
PotentialPitfalls
# walking out of WiFi network may drop call
# may not be able to make a GoogleVoice call from overseas
# Springboard crashing
# change in VisualVoicemail
Enough for now!
ok - my latest CuriousAdventure turned into a ThoughtExperiment by swapping the micro-SIMs in my [[iPad]] and [[iPhone]] and [[inquiring|Inquiry]] what might be possible (yes, I seem to do this ForALiving in general and it's not just with [[tech|Technology]]!)
ThoughtExperiment no more - it's real! A partner of mine & I decided to embrace GoogleVoice like no tomorrow (call it a CliffJump if you will) - I have to admit I didn't expect my iPad to be my FallbackPhone (a [[Parachute]]!) when all else fails with the GoogleVoice experiment - half of which is documented below.
This is an [[Inquiry]] as to what might be possible if the TraditionalMobilePhone as we know it went [[Poof]]!
!iPhone
# [[AT&T]] SIM card accessing Internet over 3G using an [[iPadDataPlan]] ($15 for 250MB, $25 for 2GB)
# Native (ie. not a separate app) send and receive SMS vs SMSGVExtension via GoogleVoice
# Native iPhone user interface for making calls via PhoneGVExtension over GoogleVoice (CallerID on other end is my GoogleVoice number)
** turns out this only works if you have a VoiceCarrier. what is required is another mode that is able to access [[Talkatone]]'s core functionality of achieving GoogleVoice through [[VoIP]]
# Receive PhoneCalls using GoogleVoice numbers through [[Talkatone]] (premium allows for MultipleAccounts):
** [[Personal]]: [[Me]] and [[Play]]
** [[Work]]: DanceLabs, TeamMinutemen (soon to add SquidAndSquashFoundation)
# [[GVMobile+]] dispatches calls thru [[Talkatone]]
# TranscribedVoicemail thru [[GVMobile+]]
# VisualVoicemail for T-Mobile line via YouMail
** note: no red dot to notify of NewMessages
# [[Skype]] - VoIP backup
# [[Facebook]] for SocialNetworking
# [[Twitter]] for QuickUpdates
# TiddlySpace for ConversationBasedBlogging
# [[email]] for ActionableItems
# PersonalHotspot will tether by USB to my MacBook when out in the field
# FaceTime over 3G
!iPad
# [[T-Mobile]] [[SIMCard]] successfully accessing data over EDGE (whether it's [[Unlimited]] remains to be seen - the performance of the EDGE network on my iPhone 4 is sketchy enough to justify experimenting with this configuration - EDGE worked flawlessly on my iPhone 2G in [[Thailand]] for years)
# will connect to the iPhone's PersonalHotspot over WiFi or preferably [[Bluetooth]] when I need the extra juice or EDGE flakes out
# Native Phone & SMS app thanks to [[iPhoneIslam]]'s PhoneIt-iPad
** PhoneGVExtension allows you to choose whether PhoneCalls go through [[T-Mobile]] CellularVoice or GoogleVoice
** SMSGVExtension for sending SMS
** GoogleMail work around for receiving SMS
** YouMail for VoiceMail (though will check primarily on iPhone)
# [[Talkatone]] only active when iPad is in WiFi-Only mode
# [[Troubleshooting]]: FaceTime over [[T-Mobile]]
![[Discoveries]]
* [[Talkatone]] over [[3G]] at StandardQuality sounded great over a 30 min phone call. Makes you wonder what the point of WiFi?!? (they get this in [[Japan]] and [[Korea]] - peeps often do away with WiFi all together & just get [[Broadband]] over Cellular connections)
* after 3 years of really crappy EDGE, quality 3G connection is refreshing - I won't be needing [[4G]] for awhile - I'm about 3 years behind [[Throttling]] my AppetiteForData ;-)
* nice to see 3 PhoneLines going into my iPhone using MultipleAccounts of TalkatonePremium
* //curious if the iPad has the hardware to ring as a MobileTelephone (ie. ''not'' [[VoIP]])//
** ANSWER: PhoneIt-iPad!
** BYE BYE SwirlySMS by SwirlSpace!
* elimination of a need to have a BackupPhone and embedding it in my iPad - HardwareReuse and [[demos|Demo]] OnTheFlyReconfiguration
* [[GVMobile+]]
* [[Standby]] on [[iPad]] even with CellularVoice is excellent. With MinimalUsage here and there for over a week, 4% remains which make it great as a BackupPhone for those truly committed to being [[Unstoppable]]!
* AirVideo is able to turn DesktopComputer into a MediaServer and stream over 3G!
![[Snafus]]
* PhoneGVExtension requires CellularVoice
* AirportExpress (possibly downgraded to 802.11g) couldn't sustain a call over WiFi even with TalkatonePremium on HighQuality
* intuition to get a 2GB plan for $25 was correct. already used 40+MB of a $15 250MB plan in less than 2 of 30 days! NoRegrets
* BatteryDrain appears to be high. Assuming iPhone is optimized to make CellularCalls - be interesting to see AppleEngineers optimize the iPhone for DataOnly (which is the realm the iPad plays in right now!)
* those pesky EarlyTerminationFees...
* goes into SafeMode if you try to dial "tel:" prefix using [[GVMobile+]]
* Talkatone premium trial ended & didn't receive a notification for whatever reason. impact is my main GoogleVoice # went down and just wondered for a whole day why my phone wasn't ringing! Possible solution: sign in with your primary GoogleVoice account :)
* bandwidth required for SoundCloud StreamingAudio is 2x that of VoIP (~1MB/min)
* DataPlan just bottoms out - didn't get a notification and figured this is what happened while trying to upload a 2nd photo to a Facebook event I attended
* no incoming texts - SMSGVExtension doesn't receive PushNotifications from stock GoogleVoice app
* Talkatone seems to go to sleep quite often, MissedCalls
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
<!--{{{-->
<div macro='slideRevision'></div>
<div class='heading'>
<span class="titleBar">
<div class='title' macro='view title text'></div>
</span>
<span class='modifierIcon'
macro='view modifier SiteIcon label:no height:48 width:48 preserveAspectRatio:yes'>
</span>
<div class='toolbar'
macro='toolbar [[ToolbarCommands::RevisionToolbar]] icons:yes height:48 width:48 more:popup'>
</div>
<div class='tagClear'></div>
</div>
<div class='content'>
<div class='viewer' macro='view text wikified'></div>
</div>
<div class='tagInfo'>
<div class='tidTags' macro='tags'></div>
<div class='tagging' macro='tagging'></div>
</div>
<!--}}}-->
one could argue these are the OpenLoops DavidAllen talks about in [[GTD]]...
! questions
<<list filter [tag[Question]]>>
! [[Requests]]
<<tiddler Requests>>
! quirks
# GettingStarted has strange CamelCase behavior when excludeMissing tag is removed. It also doesn't seem to parse @teamminutemen-community correctly either
# the dropdown menu of [[♥]] does not contain any references even though [[RiptheTrip]] has a link to it (and so does this tiddler!)
# embed of an Amazon Widget in LostInJuly is blank
<<list filter [tag[Quirk]]>>
! monitor
# EVAL: @customtracker: @chinarut
# EVAL: @gatracker
** EventTracking: @teamminutemen, @dancelabs, @chalat, @landmarkeducation, @wisdom, @autobiography, @claudia
** PageTracking: @chinarut-dev
** NotNow: @burningman
! [[Disambiguation]]
# consider creating a separate space for my "eval" notes and requests
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>Reply</title>
<link rel="stylesheet" href="//tiddlyspace.com/bags/benspa_public/tiddlers/bootvelcro.css">
<style>
html,
body {
overflow: hidden;
background-color: transparent;
}
#container {
/* prevent a fouc if no images present */
display: none;
}
.modal-header {
border-bottom: none;
padding: 5px 0 0;
position: absolute;
width: 100%;
background-color: #e0e0e0;
-webkit-border-radius: 6px 6px 0 0;
-moz-border-radius: 6px 6px 0 0;
border-radius: 6px 6px 0 0;
cursor: move;
}
.form-actions {
position: absolute;
bottom: 0;
box-sizing: border-box;
-moz-box-sizing: border-box;
width: 100%;
margin: 0;
border-radius: 0 0 6px 6px;
background-color: #e0e0e0;
border-top: 1px solid gray;
}
.form-actions input.btn {
width: auto;
float: right;
margin: 0 0.2em;
}
.closeBtn {
background-color: #DCE7F1 !important;
}
.primary {
background-color: #09F !important;
}
h1 {
margin-bottom: 9px;
margin-top: 9px;
}
body {
width: 100%;
height: 100%;
position: absolute;
}
.modal {
margin: 10px;
top: 0;
left: 0;
bottom: 0;
width: 510px;
position: absolute;
box-shadow: #444 0px 0px 10px 2px;
border-radius: 6px;
background-color: white;
border: 1px solid gray;
background-color: #F0F4F8;
}
label em {
cursor: pointer;
}
.modal-body {
overflow: auto;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: 65px 20px 67px;
background-color: transparent;
}
.nav-tabs {
padding-left: 1%;
margin: 0;
width: 99%;
border-color: gray;
}
.nav-tabs > li {
cursor: pointer;
}
.nav-tabs > li > a {
line-height: 2.4em;
font-weight: bold;
font-size: 100%;
}
.nav-tabs > li.active > a{
background-color: #F0F4F8;
border-color: gray;
border-bottom-color: #F0F4F8;
}
.active {
display: block;
}
input,
textarea,
select,
.uneditable-input {
color: #606060;
}
.imagePicker {
-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
border: 1px solid #CCC;
height: 110px;
overflow: auto;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
margin-left: 0;
}
.imagePicker img {
margin: 5px;
border: 2px solid transparent;
}
.imagePicker .current {
border: 2px dotted #555;
}
label {
font-weight: bold;
}
.form-actions label {
float: left;
margin-top: 0.75em;
}
fieldset input,
fieldset textarea {
width: 90%;
border-color: gray;
}
@media all and (max-width: 550px) {
.modal {
width: 95%;
}
}
#help {
position: absolute;
border: 0;
right: 4px;
top: 5px;
text-indent: -9999px;
color: transparent;
height: 16px;
width: 16px;
background: none;
background-image: url(/bags/common/tiddlers/help.png);
background-repeat: no-repeat;
background-color: white;
z-index: 2;
border-radius: 10px;
}
#help-info {
padding: 0;
border: 1px solid gray;
width: 60%;
height: 50px;
color: #404040;
background-color: white;
position: absolute;
top: 5px;
right: 5px;
z-index: 1;
cursor: auto;
border-radius: 5px;
}
#help-info p {
padding: 10px 25px;
margin-bottom: 0;
}
</style>
</head>
<body>
<div id="container">
<form action="#" class="modal">
<div class="modal-header">
<button id="help">help</button>
<div id="help-info" style="display:none;"><p>
Found something interesting? Write about it in your own space. <a href="//docs.tiddlyspace.com/Reply to this Tiddler" target="_blank">Find out more</a>
</p></div>
<ul class="nav nav-tabs" data-tabs="tabs">
<li class="active" data-tab-name="post"><a href="#postForm">Reply</a></li>
</ul>
</div>
<fieldset id="postForm" class="modal-body">
<label>Title
<input type="text" name="title">
</label>
<input type="hidden" name="url">
<label>Post
<textarea name="text" rows="8"></textarea>
</label>
<label>Tags
<input type="text" name="tags" value="">
</label>
</fieldset>
<div class="form-actions">
<label class="checkbox">
<input type="checkbox" name="private" val="private">
keep private
</label>
<input type="submit" class="btn primary btn-large" value="Done">
<input type="button" class="btn btn-large closeBtn" value="Cancel">
</div>
</form>
</div>
<script type="text/javascript"
src="/bags/common/tiddlers/jquery.js"></script>
<script type="text/javascript" src="/bags/tiddlyspace/tiddlers/chrjs"></script>
<script type="text/javascript" src="/bags/common/tiddlers/_reply.js"></script>
</body>
</html>
Radical self-expression arises from the unique gifts of the individual. No one other than the individual or a collaborating group can determine its content. It is offered as a gift to others. In this spirit, the giver should respect the rights and liberties of the recipient.
you bet [[I am Grateful]]!!!
[img[https://playfoursquare.s3.amazonaws.com/pix/CNNBSADJ41A42MNYX5VGG1SSEMDXHGM1ILDOT5MFGLCVW02G.jpg]]
http://goo.gl/LM0kS
/***
|''Name''|TiddlyWebAdaptor|
|''Description''|adaptor for interacting with TiddlyWeb|
|''Author:''|FND|
|''Contributors''|Chris Dent, Martin Budden|
|''Version''|1.4.10|
|''Status''|stable|
|''Source''|http://svn.tiddlywiki.org/Trunk/association/adaptors/TiddlyWebAdaptor.js|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/association/|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.5|
|''Keywords''|serverSide TiddlyWeb|
!Notes
This plugin includes [[jQuery JSON|http://code.google.com/p/jquery-json/]].
!To Do
* createWorkspace
* document custom/optional context attributes (e.g. filters, query, revision) and tiddler fields (e.g. server.title, origin)
!Code
***/
//{{{
(function($) {
var adaptor = config.adaptors.tiddlyweb = function() {};
adaptor.prototype = new AdaptorBase();
adaptor.serverType = "tiddlyweb";
adaptor.serverLabel = "TiddlyWeb";
adaptor.mimeType = "application/json";
adaptor.parsingErrorMessage = "Error parsing result from server";
adaptor.noBagErrorMessage = "no bag specified for tiddler";
adaptor.locationIDErrorMessage = "no bag or recipe specified for tiddler"; // TODO: rename
// retrieve current status (requires TiddlyWeb status plugin)
adaptor.prototype.getStatus = function(context, userParams, callback) {
context = this.setContext(context, userParams, callback);
var uriTemplate = "%0/status";
var uri = uriTemplate.format([context.host]);
var req = httpReq("GET", uri, adaptor.getStatusCallback, context,
null, null, null, null, null, true);
return typeof req == "string" ? req : true;
};
adaptor.getStatusCallback = function(status, context, responseText, uri, xhr) {
context.status = responseText ? status : false;
try {
context.statusText = xhr.statusText;
} catch(exc) { // offline (Firefox)
context.status = false;
context.statusText = null;
}
context.httpStatus = xhr.status;
if(context.status) {
context.serverStatus = $.evalJSON(responseText); // XXX: error handling!?
}
if(context.callback) {
context.callback(context, context.userParams);
}
};
// retrieve a list of workspaces
adaptor.prototype.getWorkspaceList = function(context, userParams, callback) {
context = this.setContext(context, userParams, callback);
context.workspaces = [];
var uriTemplate = "%0/recipes"; // XXX: bags?
var uri = uriTemplate.format([context.host]);
var req = httpReq("GET", uri, adaptor.getWorkspaceListCallback,
context, { accept: adaptor.mimeType }, null, null, null, null, true);
return typeof req == "string" ? req : true;
};
adaptor.getWorkspaceListCallback = function(status, context, responseText, uri, xhr) {
context.status = status;
context.statusText = xhr.statusText;
context.httpStatus = xhr.status;
if(status) {
try {
var workspaces = $.evalJSON(responseText);
} catch(ex) {
context.status = false; // XXX: correct?
context.statusText = exceptionText(ex, adaptor.parsingErrorMessage);
if(context.callback) {
context.callback(context, context.userParams);
}
return;
}
context.workspaces = workspaces.map(function(itm) { return { title: itm }; });
}
if(context.callback) {
context.callback(context, context.userParams);
}
};
// retrieve a list of tiddlers
adaptor.prototype.getTiddlerList = function(context, userParams, callback) {
context = this.setContext(context, userParams, callback);
var uriTemplate = "%0/%1/%2/tiddlers%3";
var params = context.filters ? "?" + context.filters : "";
if(context.format) {
params = context.format + params;
}
var workspace = adaptor.resolveWorkspace(context.workspace);
var uri = uriTemplate.format([context.host, workspace.type + "s",
adaptor.normalizeTitle(workspace.name), params]);
var req = httpReq("GET", uri, adaptor.getTiddlerListCallback,
context, merge({ accept: adaptor.mimeType }, context.headers), null, null, null, null, true);
return typeof req == "string" ? req : true;
};
adaptor.getTiddlerListCallback = function(status, context, responseText, uri, xhr) {
context.status = status;
context.statusText = xhr.statusText;
context.httpStatus = xhr.status;
if(status) {
context.tiddlers = [];
try {
var tiddlers = $.evalJSON(responseText); //# NB: not actual tiddler instances
} catch(ex) {
context.status = false; // XXX: correct?
context.statusText = exceptionText(ex, adaptor.parsingErrorMessage);
if(context.callback) {
context.callback(context, context.userParams);
}
return;
}
for(var i = 0; i < tiddlers.length; i++) {
var tiddler = adaptor.toTiddler(tiddlers[i], context.host);
context.tiddlers.push(tiddler);
}
}
if(context.callback) {
context.callback(context, context.userParams);
}
};
// perform global search
adaptor.prototype.getSearchResults = function(context, userParams, callback) {
context = this.setContext(context, userParams, callback);
var uriTemplate = "%0/search?q=%1%2";
var filterString = context.filters ? ";" + context.filters : "";
var uri = uriTemplate.format([context.host, context.query, filterString]); // XXX: parameters need escaping?
var req = httpReq("GET", uri, adaptor.getSearchResultsCallback,
context, { accept: adaptor.mimeType }, null, null, null, null, true);
return typeof req == "string" ? req : true;
};
adaptor.getSearchResultsCallback = function(status, context, responseText, uri, xhr) {
adaptor.getTiddlerListCallback(status, context, responseText, uri, xhr); // XXX: use apply?
};
// retrieve a particular tiddler's revisions
adaptor.prototype.getTiddlerRevisionList = function(title, limit, context, userParams, callback) {
context = this.setContext(context, userParams, callback);
var uriTemplate = "%0/%1/%2/tiddlers/%3/revisions";
var workspace = adaptor.resolveWorkspace(context.workspace);
var uri = uriTemplate.format([context.host, workspace.type + "s",
adaptor.normalizeTitle(workspace.name), adaptor.normalizeTitle(title)]);
var req = httpReq("GET", uri, adaptor.getTiddlerRevisionListCallback,
context, merge({ accept: adaptor.mimeType }, context.headers), null, null, null, null, true);
return typeof req == "string" ? req : true;
};
adaptor.getTiddlerRevisionListCallback = function(status, context, responseText, uri, xhr) {
context.status = status;
context.statusText = xhr.statusText;
context.httpStatus = xhr.status;
if(status) {
context.revisions = [];
try {
var tiddlers = $.evalJSON(responseText); //# NB: not actual tiddler instances
} catch(ex) {
context.status = false; // XXX: correct?
context.statusText = exceptionText(ex, adaptor.parsingErrorMessage);
if(context.callback) {
context.callback(context, context.userParams);
}
return;
}
for(var i = 0; i < tiddlers.length; i++) {
var tiddler = adaptor.toTiddler(tiddlers[i], context.host);
context.revisions.push(tiddler);
}
var sortField = "server.page.revision";
context.revisions.sort(function(a, b) {
return a.fields[sortField] < b.fields[sortField] ? 1 :
(a.fields[sortField] == b.fields[sortField] ? 0 : -1);
});
}
if(context.callback) {
context.callback(context, context.userParams);
}
};
// retrieve an individual tiddler revision -- XXX: breaks with standard arguments list -- XXX: convenience function; simply use getTiddler?
adaptor.prototype.getTiddlerRevision = function(title, revision, context, userParams, callback) {
context = this.setContext(context, userParams, callback);
context.revision = revision;
return this.getTiddler(title, context, userParams, callback);
};
// retrieve an individual tiddler
//# context is an object with members host and workspace
//# callback is passed the new context and userParams
adaptor.prototype.getTiddler = function(title, context, userParams, callback) {
context = this.setContext(context, userParams, callback);
context.title = title;
if(context.revision) {
var uriTemplate = "%0/%1/%2/tiddlers/%3/revisions/%4";
} else {
uriTemplate = "%0/%1/%2/tiddlers/%3";
}
if(!context.tiddler) {
context.tiddler = new Tiddler(title);
}
context.tiddler.fields["server.type"] = adaptor.serverType;
context.tiddler.fields["server.host"] = AdaptorBase.minHostName(context.host);
context.tiddler.fields["server.workspace"] = context.workspace;
var workspace = adaptor.resolveWorkspace(context.workspace);
var uri = uriTemplate.format([context.host, workspace.type + "s",
adaptor.normalizeTitle(workspace.name), adaptor.normalizeTitle(title),
context.revision]);
var req = httpReq("GET", uri, adaptor.getTiddlerCallback, context,
merge({ accept: adaptor.mimeType }, context.headers), null, null, null, null, true);
return typeof req == "string" ? req : true;
};
adaptor.getTiddlerCallback = function(status, context, responseText, uri, xhr) {
context.status = status;
context.statusText = xhr.statusText;
context.httpStatus = xhr.status;
if(status) {
try {
var tid = $.evalJSON(responseText);
} catch(ex) {
context.status = false;
context.statusText = exceptionText(ex, adaptor.parsingErrorMessage);
if(context.callback) {
context.callback(context, context.userParams);
}
return;
}
var tiddler = adaptor.toTiddler(tid, context.host);
tiddler.title = context.tiddler.title;
tiddler.fields["server.etag"] = xhr.getResponseHeader("Etag");
// normally we'd assign context.tiddler = tiddler here - but we can't do
// that because of IE, which triggers getTiddler in putTiddlerCallback,
// and since ServerSideSavingPlugin foolishly relies on persistent
// object references, we need to merge the data into the existing object
$.extend(context.tiddler, tiddler);
}
if(context.callback) {
context.callback(context, context.userParams);
}
};
// retrieve tiddler chronicle (all revisions)
adaptor.prototype.getTiddlerChronicle = function(title, context, userParams, callback) {
context = this.setContext(context, userParams, callback);
context.title = title;
var uriTemplate = "%0/%1/%2/tiddlers/%3/revisions?fat=1";
var workspace = adaptor.resolveWorkspace(context.workspace);
var uri = uriTemplate.format([context.host, workspace.type + "s",
adaptor.normalizeTitle(workspace.name), adaptor.normalizeTitle(title)]);
var req = httpReq("GET", uri, adaptor.getTiddlerChronicleCallback,
context, { accept: adaptor.mimeType }, null, null, null, null, true);
return typeof req == "string" ? req : true;
};
adaptor.getTiddlerChronicleCallback = function(status, context, responseText, uri, xhr) {
context.status = status;
context.statusText = xhr.statusText;
context.httpStatus = xhr.status;
if(status) {
context.responseText = responseText;
}
if(context.callback) {
context.callback(context, context.userParams);
}
};
// store an individual tiddler
adaptor.prototype.putTiddler = function(tiddler, context, userParams, callback) {
context = this.setContext(context, userParams, callback);
context.title = tiddler.title;
context.tiddler = tiddler;
context.host = context.host || this.fullHostName(tiddler.fields["server.host"]);
var uriTemplate = "%0/%1/%2/tiddlers/%3";
try {
context.workspace = context.workspace || tiddler.fields["server.workspace"];
var workspace = adaptor.resolveWorkspace(context.workspace);
} catch(ex) {
return adaptor.locationIDErrorMessage;
}
var uri = uriTemplate.format([context.host, workspace.type + "s",
adaptor.normalizeTitle(workspace.name),
adaptor.normalizeTitle(tiddler.title)]);
var etag = adaptor.generateETag(workspace, tiddler);
var headers = etag ? { "If-Match": etag } : null;
var payload = {
type: tiddler.fields["server.content-type"] || null,
text: tiddler.text,
tags: tiddler.tags,
fields: $.extend({}, tiddler.fields)
};
delete payload.fields.changecount;
$.each(payload.fields, function(key, value) {
if(key.indexOf("server.") == 0) {
delete payload.fields[key];
}
});
payload = $.toJSON(payload);
var req = httpReq("PUT", uri, adaptor.putTiddlerCallback,
context, headers, payload, adaptor.mimeType, null, null, true);
return typeof req == "string" ? req : true;
};
adaptor.putTiddlerCallback = function(status, context, responseText, uri, xhr) {
context.status = [204, 1223].contains(xhr.status);
context.statusText = xhr.statusText;
context.httpStatus = xhr.status;
if(context.status) {
var loc = xhr.getResponseHeader("Location");
var etag = xhr.getResponseHeader("Etag");
if(loc && etag) {
var bag = loc.split("/bags/").pop().split("/")[0];
context.tiddler.fields["server.bag"] = bag;
context.tiddler.fields["server.workspace"] = "bags/" + bag;
var rev = etag.split("/").pop().split(/;|:/)[0];
context.tiddler.fields["server.page.revision"] = rev;
context.tiddler.fields["server.etag"] = etag;
if(context.callback) {
context.callback(context, context.userParams);
}
} else { // IE
context.adaptor.getTiddler(context.tiddler.title, context,
context.userParams, context.callback);
}
} else if(context.callback) {
context.callback(context, context.userParams);
}
};
// store a tiddler chronicle
adaptor.prototype.putTiddlerChronicle = function(revisions, context, userParams, callback) {
context = this.setContext(context, userParams, callback);
context.title = revisions[0].title;
var headers = null;
var uriTemplate = "%0/%1/%2/tiddlers/%3/revisions";
var host = context.host || this.fullHostName(tiddler.fields["server.host"]);
var workspace = adaptor.resolveWorkspace(context.workspace);
var uri = uriTemplate.format([host, workspace.type + "s",
adaptor.normalizeTitle(workspace.name),
adaptor.normalizeTitle(context.title)]);
if(workspace.type == "bag") { // generate ETag
var etag = [adaptor.normalizeTitle(workspace.name),
adaptor.normalizeTitle(context.title), 0].join("/"); //# zero-revision prevents overwriting existing contents
headers = { "If-Match": '"' + etag + '"' };
}
var payload = $.toJSON(revisions);
var req = httpReq("POST", uri, adaptor.putTiddlerChronicleCallback,
context, headers, payload, adaptor.mimeType, null, null, true);
return typeof req == "string" ? req : true;
};
adaptor.putTiddlerChronicleCallback = function(status, context, responseText, uri, xhr) {
context.status = [204, 1223].contains(xhr.status);
context.statusText = xhr.statusText;
context.httpStatus = xhr.status;
if(context.callback) {
context.callback(context, context.userParams);
}
};
// store a collection of tiddlers (import TiddlyWiki HTML store)
adaptor.prototype.putTiddlerStore = function(store, context, userParams, callback) {
context = this.setContext(context, userParams, callback);
var uriTemplate = "%0/%1/%2/tiddlers";
var host = context.host;
var workspace = adaptor.resolveWorkspace(context.workspace);
var uri = uriTemplate.format([host, workspace.type + "s",
adaptor.normalizeTitle(workspace.name)]);
var req = httpReq("POST", uri, adaptor.putTiddlerStoreCallback,
context, null, store, "text/x-tiddlywiki", null, null, true);
return typeof req == "string" ? req : true;
};
adaptor.putTiddlerStoreCallback = function(status, context, responseText, uri, xhr) {
context.status = [204, 1223].contains(xhr.status);
context.statusText = xhr.statusText;
context.httpStatus = xhr.status;
if(context.callback) {
context.callback(context, context.userParams);
}
};
// rename an individual tiddler or move it to a different workspace -- TODO: make {from|to}.title optional
//# from and to are objects with members title and workspace (bag; optional),
//# representing source and target tiddler, respectively
adaptor.prototype.moveTiddler = function(from, to, context, userParams, callback) { // XXX: rename parameters (old/new)?
var self = this;
var newTiddler = store.getTiddler(from.title) || store.getTiddler(to.title); //# local rename might already have occurred
var oldTiddler = $.extend(true, {}, newTiddler); //# required for eventual deletion
oldTiddler.title = from.title; //# required for original tiddler's ETag
var _getTiddlerChronicle = function(title, context, userParams, callback) {
return self.getTiddlerChronicle(title, context, userParams, callback);
};
var _putTiddlerChronicle = function(context, userParams) {
if(!context.status) {
return callback(context, userParams);
}
var revisions = $.evalJSON(context.responseText); // XXX: error handling?
// change current title while retaining previous location
for(var i = 0; i < revisions.length; i++) {
delete revisions[i].revision;
if(!revisions[i].fields.origin) { // NB: origin = "<workspace>/<title>"
revisions[i].fields.origin = ["bags", revisions[i].bag, revisions[i].title].join("/");
}
revisions[i].title = to.title;
}
// add new revision
var rev = $.extend({}, revisions[0]);
$.each(newTiddler, function(i, item) {
if(!$.isFunction(item)) {
rev[i] = item;
}
});
rev.title = to.title;
rev.created = rev.created.convertToYYYYMMDDHHMM();
rev.modified = new Date().convertToYYYYMMDDHHMM();
delete rev.fields.changecount;
revisions.unshift(rev);
if(to.workspace) {
context.workspace = to.workspace;
} else if(context.workspace.substring(0, 4) != "bags") { // NB: target workspace must be a bag
context.workspace = "bags/" + rev.bag;
}
var subCallback = function(context, userParams) {
if(!context.status) {
return callback(context, userParams);
}
context.adaptor.getTiddler(newTiddler.title, context, userParams, _deleteTiddler);
};
return self.putTiddlerChronicle(revisions, context, context.userParams, subCallback);
};
var _deleteTiddler = function(context, userParams) {
if(!context.status) {
return callback(context, userParams);
}
$.extend(true, newTiddler, context.tiddler);
context.callback = null;
return self.deleteTiddler(oldTiddler, context, context.userParams, callback);
};
callback = callback || function() {};
context = this.setContext(context, userParams);
context.host = context.host || oldTiddler.fields["server.host"];
context.workspace = from.workspace || oldTiddler.fields["server.workspace"];
return _getTiddlerChronicle(from.title, context, userParams, _putTiddlerChronicle);
};
// delete an individual tiddler
adaptor.prototype.deleteTiddler = function(tiddler, context, userParams, callback) {
context = this.setContext(context, userParams, callback);
context.title = tiddler.title; // XXX: not required!?
var uriTemplate = "%0/bags/%1/tiddlers/%2";
var host = context.host || this.fullHostName(tiddler.fields["server.host"]);
var bag = tiddler.fields["server.bag"];
if(!bag) {
return adaptor.noBagErrorMessage;
}
var uri = uriTemplate.format([host, adaptor.normalizeTitle(bag),
adaptor.normalizeTitle(tiddler.title)]);
var etag = adaptor.generateETag({ type: "bag", name: bag }, tiddler);
var headers = etag ? { "If-Match": etag } : null;
var req = httpReq("DELETE", uri, adaptor.deleteTiddlerCallback, context, headers,
null, null, null, null, true);
return typeof req == "string" ? req : true;
};
adaptor.deleteTiddlerCallback = function(status, context, responseText, uri, xhr) {
context.status = [204, 1223].contains(xhr.status);
context.statusText = xhr.statusText;
context.httpStatus = xhr.status;
if(context.callback) {
context.callback(context, context.userParams);
}
};
// compare two revisions of a tiddler (requires TiddlyWeb differ plugin)
//# if context.rev1 is not specified, the latest revision will be used for comparison
//# if context.rev2 is not specified, the local revision will be sent for comparison
//# context.format is a string as determined by the TiddlyWeb differ plugin
adaptor.prototype.getTiddlerDiff = function(title, context, userParams, callback) {
context = this.setContext(context, userParams, callback);
context.title = title;
var tiddler = store.getTiddler(title);
try {
var workspace = adaptor.resolveWorkspace(tiddler.fields["server.workspace"]);
} catch(ex) {
return adaptor.locationIDErrorMessage;
}
var tiddlerRef = [workspace.type + "s", workspace.name, tiddler.title].join("/");
var rev1 = context.rev1 ? [tiddlerRef, context.rev1].join("/") : tiddlerRef;
var rev2 = context.rev2 ? [tiddlerRef, context.rev2].join("/") : null;
var uriTemplate = "%0/diff?rev1=%1";
if(rev2) {
uriTemplate += "&rev2=%2";
}
if(context.format) {
uriTemplate += "&format=%3";
}
var host = context.host || this.fullHostName(tiddler.fields["server.host"]);
var uri = uriTemplate.format([host, adaptor.normalizeTitle(rev1),
adaptor.normalizeTitle(rev2), context.format]);
if(rev2) {
var req = httpReq("GET", uri, adaptor.getTiddlerDiffCallback, context, null,
null, null, null, null, true);
} else {
var payload = {
title: tiddler.title,
text: tiddler.text,
modifier: tiddler.modifier,
tags: tiddler.tags,
fields: $.extend({}, tiddler.fields)
}; // XXX: missing attributes!?
payload = $.toJSON(payload);
req = httpReq("POST", uri, adaptor.getTiddlerDiffCallback, context,
null, payload, adaptor.mimeType, null, null, true);
}
return typeof req == "string" ? req : true;
};
adaptor.getTiddlerDiffCallback = function(status, context, responseText, uri, xhr) {
context.status = status;
context.statusText = xhr.statusText;
context.httpStatus = xhr.status;
context.uri = uri;
if(status) {
context.diff = responseText;
}
if(context.callback) {
context.callback(context, context.userParams);
}
};
// generate tiddler information
adaptor.prototype.generateTiddlerInfo = function(tiddler) {
var info = {};
var uriTemplate = "%0/%1/%2/tiddlers/%3";
var host = this.host || tiddler.fields["server.host"]; // XXX: this.host obsolete?
host = this.fullHostName(host);
var workspace = adaptor.resolveWorkspace(tiddler.fields["server.workspace"]);
info.uri = uriTemplate.format([host, workspace.type + "s",
adaptor.normalizeTitle(workspace.name),
adaptor.normalizeTitle(tiddler.title)]);
return info;
};
// create Tiddler instance from TiddlyWeb tiddler JSON
adaptor.toTiddler = function(json, host) {
var created = Date.convertFromYYYYMMDDHHMM(json.created);
var modified = Date.convertFromYYYYMMDDHHMM(json.modified);
var fields = json.fields;
fields["server.type"] = adaptor.serverType;
fields["server.host"] = AdaptorBase.minHostName(host);
fields["server.bag"] = json.bag;
fields["server.title"] = json.title;
if(json.recipe) {
fields["server.recipe"] = json.recipe;
}
if(json.type && json.type != "None") {
fields["server.content-type"] = json.type;
}
fields["server.permissions"] = json.permissions.join(", ");
fields["server.page.revision"] = json.revision;
fields["server.workspace"] = "bags/" + json.bag;
var tiddler = new Tiddler(json.title);
tiddler.assign(tiddler.title, json.text, json.modifier, modified, json.tags,
created, json.fields, json.creator);
return tiddler;
};
adaptor.resolveWorkspace = function(workspace) {
var components = workspace.split("/");
return {
type: components[0] == "bags" ? "bag" : "recipe",
name: components[1] || components[0]
};
};
adaptor.generateETag = function(workspace, tiddler) {
var revision = tiddler.fields["server.page.revision"];
var etag = revision == "false" ? null : tiddler.fields["server.etag"];
if(!etag && workspace.type == "bag") {
if(typeof revision == "undefined") {
revision = "0";
} else if(revision == "false") {
return null;
}
etag = [adaptor.normalizeTitle(workspace.name),
adaptor.normalizeTitle(tiddler.title), revision].join("/");
etag = '"' + etag + '"';
}
return etag;
};
adaptor.normalizeTitle = function(title) {
return encodeURIComponent(title);
};
})(jQuery);
/*
* jQuery JSON Plugin
* version: 1.3
* source: http://code.google.com/p/jquery-json/
* license: MIT (http://www.opensource.org/licenses/mit-license.php)
*/
(function($){function toIntegersAtLease(n)
{return n<10?'0'+n:n;}
Date.prototype.toJSON=function(date)
{return this.getUTCFullYear()+'-'+
toIntegersAtLease(this.getUTCMonth())+'-'+
toIntegersAtLease(this.getUTCDate());};var escapeable=/["\\\x00-\x1f\x7f-\x9f]/g;var meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};$.quoteString=function(string)
{if(escapeable.test(string))
{return'"'+string.replace(escapeable,function(a)
{var c=meta[a];if(typeof c==='string'){return c;}
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"';}
return'"'+string+'"';};$.toJSON=function(o,compact)
{var type=typeof(o);if(type=="undefined")
return"undefined";else if(type=="number"||type=="boolean")
return o+"";else if(o===null)
return"null";if(type=="string")
{return $.quoteString(o);}
if(type=="object"&&typeof o.toJSON=="function")
return o.toJSON(compact);if(type!="function"&&typeof(o.length)=="number")
{var ret=[];for(var i=0;i<o.length;i++){ret.push($.toJSON(o[i],compact));}
if(compact)
return"["+ret.join(",")+"]";else
return"["+ret.join(", ")+"]";}
if(type=="function"){throw new TypeError("Unable to convert object of type 'function' to json.");}
var ret=[];for(var k in o){var name;type=typeof(k);if(type=="number")
name='"'+k+'"';else if(type=="string")
name=$.quoteString(k);else
continue;var val=$.toJSON(o[k],compact);if(typeof(val)!="string"){continue;}
if(compact)
ret.push(name+":"+val);else
ret.push(name+": "+val);}
return"{"+ret.join(", ")+"}";};$.compactJSON=function(o)
{return $.toJSON(o,true);};$.evalJSON=function(src)
{return eval("("+src+")");};$.secureEvalJSON=function(src)
{var filtered=src;filtered=filtered.replace(/\\["\\\/bfnrtu]/g,'@');filtered=filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']');filtered=filtered.replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered))
return eval("("+src+")");else
throw new SyntaxError("Error parsing JSON, source is not valid.");};})(jQuery);
//}}}
/9j/4AAQSkZJRgABAQIBLAEsAAD/4hrESUNDX1BST0ZJTEUAAQEAABq0YXBwbAIQAABtbnRyUkdCIFhZWiAH3gABAAIADgAfACFhY3NwQVBQTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLWFwcGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFkZXNjAAABUAAAAGJkc2NtAAABtAAAA7hjcHJ0AAAFbAAAACR3dHB0AAAFkAAAABRyWFlaAAAFpAAAABRnWFlaAAAFuAAAABRiWFlaAAAFzAAAABRyVFJDAAAF4AAACAxhYXJnAAAN7AAAACB2Y2d0AAAODAAABhJuZGluAAAUIAAABj5jaGFkAAAaYAAAACxtbW9kAAAajAAAAChiVFJDAAAF4AAACAxnVFJDAAAF4AAACAxhYWJnAAAN7AAAACBhYWdnAAAN7AAAACBkZXNjAAAAAAAAAAhEaXNwbGF5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWx1YwAAAAAAAAAeAAAADHNrU0sAAAAWAAABeGNhRVMAAAAYAAABjmhlSUwAAAAWAAABpnB0QlIAAAAYAAABvGl0SVQAAAAUAAAB1Gh1SFUAAAAUAAAB6HVrVUEAAAAcAAAB/GtvS1IAAAAMAAACGG5iTk8AAAASAAACJGNzQ1oAAAAWAAACNnpoVFcAAAAMAAACTGRlREUAAAAQAAACWHJvUk8AAAASAAACaHN2U0UAAAAQAAACenpoQ04AAAAMAAACTGphSlAAAAAOAAACimFyAAAAAAAUAAACmGVsR1IAAAAiAAACrHB0UFQAAAAWAAACzm5sTkwAAAAWAAAC5GZyRlIAAAAWAAAC+mVzRVMAAAASAAACaHRoVEgAAAAMAAADEHRyVFIAAAAUAAADHGZpRkkAAAAQAAADMGhySFIAAAAUAAADQHBsUEwAAAASAAADVHJ1UlUAAAAkAAADZmVuVVMAAAASAAADimRhREsAAAAcAAADnABGAGEAcgBlAGIAbgD9ACAATABDAEQATABDAEQAIABlAG4AIABjAG8AbABvAHIgDwBMAEMARAAgBeYF0QXiBdUF4AXZAEwAQwBEACAAQwBvAGwAbwByAGkAZABvAEwAQwBEACAAYwBvAGwAbwByAGkAUwB6AO0AbgBlAHMAIABMAEMARAQaBD4EOwRMBD4EQAQ+BDIEOAQ5ACAATABDAETO7LfsACAATABDAEQARgBhAHIAZwBlAC0ATABDAEQAQgBhAHIAZQB2AG4A/QAgAEwAQwBEX2mCcgAgAEwAQwBEAEYAYQByAGIALQBMAEMARABMAEMARAAgAGMAbwBsAG8AcgBGAOQAcgBnAC0ATABDAEQwqzDpMPwAIABMAEMARCAPAEwAQwBEACAGRQZEBkgGRgYpA4gDswPHA8EDyQO8A7cAIAO/A7gDzAO9A7cAIABMAEMARABMAEMARAAgAGEAIABDAG8AcgBlAHMASwBsAGUAdQByAGUAbgAtAEwAQwBEAEwAQwBEACAAYwBvAHUAbABlAHUAcgBMAEMARAAgDioONQBSAGUAbgBrAGwAaQAgAEwAQwBEAFYA5AByAGkALQBMAEMARABMAEMARAAgAHUAIABiAG8AagBpAEsAbwBsAG8AcgAgAEwAQwBEBCYEMgQ1BEIEPQQ+BDkAIAQWBBoALQQ0BDgEQQQ/BDsENQQ5AEMAbwBsAG8AcgAgAEwAQwBEAEwAQwBEAC0AZgBhAHIAdgBlAHMAawDmAHIAbXRleHQAAAAAQ29weXJpZ2h0IEFwcGxlLCBJbmMuLCAyMDE0AFhZWiAAAAAAAADzUgABAAAAARbPWFlaIAAAAAAAAGEXAAA3NAAABwBYWVogAAAAAAAAbDwAAK94AAAcXVhZWiAAAAAAAAApgwAAGVMAAK/QY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA2ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKMAqACtALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNm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
I pretty much wake up and plug into the matrix - but in a different way - i'm not on email, browsing websites or anything like that...I'm learning how to use this TiddlyWeb server and create my own web pages the TiddlySpace way.
I find it ''much'' more relaxing to tinker and hack away in the morning than to stay up late at night!
more later! (might be interesting to just publish at the end of the day...)
// effectively a brainstorm for the day...
# MorningPages
# wellness
** complete: [[100Gong]], TrueNorthHealth
** contribution: WellnessMap
** focus: [[Yin]]
** changes: No SaltSugarOil, EarlyBird
** evangelize: [[DietForANewAmerica]]
** eval: [[Distractions]], [[EarthingMat]], [[AmericanGinseng]], [[TrueNorthHealthDiet]]
# DanceLabs
** complete: [[CGT2011]] [[TiddlyWiki]]
** contribution: [[CGT2011Poster]] [[DanceChalat]]
** invite: [[Ning]]
** eval: [[TiddlySpace]] [[WorkshopDesignSoftware]]
** intent: [[WorkshopLeader]] [[CGT2012]]
** evangelize: [[DanceChalat]] [[TiddlySpace]]
** invite: [[CommunityHouse]]
** choice: [[dancelabs.com]] [[TiddlySpace]] [[NeedVolunteers]]
# [[Communication]]
** complete: [[GoogleMail]], [[Facebook]], [[MobilePhone]], [[GoogleWave]]
** changes: [[HomeOffice]], [[chinarut.com]]
** eval: [[Twitter]]
# TechnologyEvangelist
** complete: [[Netflix]]
** what's possible: [[iPhoneLaptop]]
** changes: [[teamminutemen.com]]
** eval: [[Android]], [[Twitter]]
** contribution: TeamMinutemen
** invite: [[TiddlySpace]]
feel like a TiddlySpaceAddict - this is a good thing ;-)
Where it all starts!
Other spaces that are in this conversation (that I follow) are marked in the upper right.
So I get to form my own thoughts around this topic & follow other's thoughts - we don't clobber each other and when we decide it's time to create a separate space and/or invite each other into our respective spaces is where the sweet spot hits
DanceLabs and DanceChalat
If you're playing with your life, hacking is a natural part of MakingItAllWork
Also made popular by AdamHash: http://lifehacker.com
the American variety differs in that it supports one's "yin" opposed to "yang" of the Chinese variety. This is an important when you are aware one's intent is to ground rather than get all excited!
//can also envision a new TiddlySpace for the purpose of wellness. if the intent is to play....why not just create it and see what happens? worst thing that could happen is I import the tiddlers from there back to here! of course, preserving dates during ImportTiddlers is key to moving tiddlers around at will :)//
//anyhoo - all this text is likely to get "factored" out (ie. it isn't relevant to the topic at hand, AmericanGinseng, but provides context thus it is here....//
I'm realizing the recommendation to take 2 caps/3x a day of the Solaray variety is a bit cost prohibitive right now (50 ct, 450mg/cap costs $11.64 + $6.95 S&H [[on Amazon|http://www.amazon.com/gp/product/B000I4ABL6]]) - that works out to be $0.3718/cap or 22.5 g (approx 0.05 lbs) or $0.8262/g - this lasts 8 days at most at $2.23/day
compare this to getting 1/2 lb [[in bulk in powder form|http://www.amazon.com/Ginseng-American-Powder-Organic-quinquefolium/dp/B002DXZG24]] at $42.26 + $6.70 S&H - 226.8 g which is the equivalent to 504 cap at the equiv of $0.097/cap which translates to $0.5828/day - a 84 day or 12 week supply at a 74% savings ($187.39 vs $48.96 at the capsule rate!) just by boiling down the process to just grinding the original root and tossing the vcaps, packaging, and bottles!
capsules are great for the "convenience" factors esp while traveling...
wondering how easy it is to "pack" capsules yourself....
after finding a [[reference that the Stakich variety is organic|http://www.stakich.com/gfolder/ginsengpowder10oz.htm]] - it's the winner for quality, quantity, and price!
|!product|!cost|!S&H|!weight|!per oz|
|[[Solaray,50vcap,450mg|http://www.amazon.com/gp/product/B000I4ABL6]]|$11.64|$6.95|0.7937 oz|$23.42|
|[[Root to Health/Hsu's|http://www.amazon.com/Root-Health-Hsus-Ginseng-Specialty/dp/B000VG5KAS]]|$7.99|$6.00|1oz|$13.99|
|[[Root To Health|http://www.amazon.com/Cultivated-American-Ginseng-Powder/dp/B000153R6]]|$18.95|$8|4 oz|$6.74|
|[[Starwest,powder,USDA organic|http://www.amazon.com/gp/product/B002DXZG4W]]|$42.26|$6.70|8 oz|$6.12|
|[[Starwest,powder,USDA organic|http://www.amazon.com/Ginseng-American-Powder-Organic-quinquefolium/dp/B002DXZG24]]|$81.65|$7.60|16 oz|$5.58|
|[[Frontier|http://www.amazon.com/Ginseng-White-American-Root-Powder/dp/B000UY8698]]|$54.08|$9.99|16 oz|$4.00|
|[[Megacare|http://www.amazon.com/100-Pure-American-Ginseng-Powder/dp/B00266F9NO]]|$24.99|$5.99|8 oz|$3.87|
|''[[Stakich,organic|http://www.amazon.com/Stakich-AMERICAN-GINSENG-POWDER-10-OZ/dp/B001LR2CMU]]''|$19.00|$7.64|10 oz|$2.664|
|[[Starwest,powder|http://www.amazon.com/American-Cultivated-Ginseng-Powder-quinquefolium/dp/B002DXTZ7G]]|$28.64|$7.80|16 oz|$2.28|
//the above table took about 30-45 min to complete - what I need is a CostComparison tool that takes into account the per oz (or any other arbitrary unit) and the S&H games peeps seem to play on Amazon!//
/*{{{*/
.tiddler .originButton div {
display: inline-block;
}
.tiddler .spaceSiteIcon .siteIcon {
_display: inline; /* IE doesn't like inline-block */
}
.tiddler .originButton {
display: block;
}
.selected .tagging,
.selected .tagging:hover {
border: none;
background: none;
}
.tagging {
float: none;
background: none;
border: none;
}
.tagging li.listTitle {
margin-left: 0px;
}
.tagging li {
margin: 0 8px;
}
.tagging .tiddlyLink {
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
padding: 1px 2px;
line-height: 1.2em;
}
/* for following */
#popup .siteIcon {
float: left;
height: 25px;
}
.content {
width: 100%; /* IE */
font-size: 0.9em;
}
.editorHeading {
height: 48px;
}
.heading {
left: 0;
margin-bottom: 40px;
position: relative;
top: 32px;
}
.followButton a {
display: block;
margin-top: -20px;
}
.tiddler .followPlaceHolder {
display: block;
position: absolute;
top: 16px;
right: 64px;
_right: 138px; // add width of modifierIcon
}
.tiddler .followButton {
position: relative;
height: 24px;
text-align: left;
color: #fff;
background: [[ColorPalette::PrimaryMid]];
padding: 10px 0px 0px 10px;
width: 38px;
margin: -16px -8px 24px 0;
}
/* creates the larger triangle */
.followButton:before {
content: "\00a0";
display: block; /* reduce the damage in FF3.0 */
position: relative;
bottom: -20px;
right: 0;
width: 0;
height: 0;
border-width: 0 0 20px 20px;
border-style: solid;
border-color: transparent [[ColorPalette::PrimaryMid]];
}
.toolbar svg {
height: 16px;
width: 16px;
}
.toolbar svg .glyph {
fill: #ccc;
}
.toolbar a:hover .glyph {
fill: black;
}
.toolbar a:active .glyph {
fill: [[ColorPalette::Background]];
}
.originButton,
.followPlaceHolder,
.tiddler .subtitle {
cursor: pointer;
}
.editSpaceSiteIcon .originButton {
cursor: auto;
}
.tiddler .subtitle:hover {
font-weight: bold;
background: none;
}
.originButton img,
.originButton svg {
margin-left: 0px;
}
.modifierIcon {
position: absolute;
width: 74px;
top: 0px;
right: 0px;
_right: 74px; /* in IE6 positioning works incorrectly so use -width instead */
text-align: right;
}
.modifierIcon img,
.modifierIcon svg {
margin-right: 8px;
}
.tiddler .viewer {
padding-bottom: 16px;
margin: 0 0 0 56px;
line-height: 1.4em;
}
.viewer pre {
margin-left: 0;
}
.siteIcon .label {
color: [[ColorPalette::TertiaryDark]];
}
.tiddler .spaceSiteIcon {
float: left;
margin-right: 0;
margin-top: 0;
position: relative;
display: block;
}
.tiddler .titleBar {
display: block;
margin-right: 136px;
margin-left: 56px;
}
.followButton a {
color: [[ColorPalette::Background]];
}
.tiddler {
position: relative;
padding: 0;
margin-bottom: 3em;
border-top: 3px solid [[ColorPalette::PrimaryMid]];
background: #fff;
}
.tiddler .editor {
padding: 0px 8px;
}
.tiddler .heading .title {
position: relative;
display: block;
word-wrap: break-word;
font-size: 32px;
line-height: 32px;
}
.tiddler .heading .editor.title {
font-size: 1.7em;
line-height: normal;
}
.tiddler .headingClear {
clear: both;
}
.tiddler .subtitle {
font-style: italic;
font-size: 0.9em;
color: #a6a59e;
margin-top: 0;
}
.toolbar {
position: absolute;
padding: 0;
top: 8px;
right: -8px;
}
.toolbar .moreCommand.highlight {
background: none;
}
.tiddler .toolbar .button {
border: none;
display: inline;
padding: 0px;
margin-right: 16px;
}
.tiddler .toolbar a:hover {
background: none;
}
.tiddler .tagged .listTitle {
display: none;
}
.revButton {
float: right;
}
/*! EditTemplate specific*/
.tiddler .privacySettings {
text-align: center;
}
.tiddler .privacySettings .originButton {
display: inline;
}
.editSpaceSiteIcon, .privacyEdit {
float: left;
}
.editSpaceSiteIcon svg,
.editSpaceSiteIcon img,
.editSpaceSiteIcon .roundelLabel {
float: left;
}
.tagTitle {
position: absolute;
text-align: center;
width: 48px;
top: 0px;
left: -56px;
}
.editSpaceSiteIcon .originButton img,
.editSpaceSiteIcon .originButton svg {
height: 16px;
margin-left: 24px;
margin-right: 32px;
width: 16px;
}
.tagAnnotation {
margin-top: 8px;
padding-bottom: 8px;
}
.annotationsBox {
margin-top: 8px;
}
.editorFooter {
position: relative;
padding: 0;
margin-top: 16px;
margin-left: 64px;
}
.tiddler .editorFooter .editor {
padding-left: 0px;
}
.heading .editor input {
width: 100%;
font-size: 1.5em;
}
.spaceSiteIcon .externalImage .image a:hover,
.modifierIcon .externalImage .image a:hover {
background: none;
}
div.toolbar {
visibility:hidden;
right:-16px;
}
.selected div.toolbar {
visibility: visible;
}
.followButton a:hover {
background: [[ColorPalette::PrimaryMid]];
text-decoration: underline;
}
a.image:hover {
background: transparent;
}
@media all and (max-device-width: 480px) {
div.toolbar {
visibility:visible;
}
}
@media only screen and (device-width: 768px) {
div.toolbar {
visibility:visible;
}
}
@media all and (max-width: 960px) {
.tiddler .titleBar {
margin-left: 36px;
margin-right: 80px;
}
.tiddler .heading {
margin-bottom: 48px;
}
.tiddler .heading .title {
font-size: 32px;
line-height: 32px;
}
.tiddler .modifierIcon img,
.tiddler .modifierIcon svg,
.tiddler .spaceSiteIcon .originButton img,
.originButton svg {
width: 32px;
height: 32px;
margin-left: 0px;
margin-right: 0px;
}
.tiddler .followPlaceHolder {
right: 48px;
}
.tiddler .followButton {
width: 24px;
}
.tiddler .viewer {
margin: 0px 0px 0px 36px;
padding-top: 0;
}
br {
line-height: 0.5em;
}
}
/*}}}*/
interesting snafu I hit while DataModeling WorkshopDesignSoftware in TiddlySpace...
!Desired Outcome
@chinarut includes @landmarkeducation which in turn includes @wisdom
!Workaround
@chinarut includes @landmarkeducation ''and'' @wisdom
!Model
a C preprocessor (guessing it resolves CircularReferences, it's been awhile!)
// to be written up in [[Stories]]@tiddlyspace//
// see also [[ChangeManagement]] (TWEdit as an example as one space may discuss multiple "products")//
# REQUEST: TiddlySpace flag to import Tiddler history
# REQUEST: TiddlySpace flag (-p) to preserve tiddler creation and modifications dates on import
# REQUEST: TiddlySpace MergeManager (think: ClearCase)
# REQUEST: TiddlyWiki TiddlyAlias
# REQUEST: TiddlyWiki EnhancedSearch - search "Opens" put this tiddler at the top of SearchResults
<<list filter [tag[Request]]>>
Burning Man encourages the individual to discover, exercise and rely on his or her inner resources.
/%
Hello,
If you choose to change this GettingStarted tiddler, you may wish to add the following to your new content if you expect you space to be included:
<<<
----
Hello,
''This ~GettingStarted tiddler has been customized.''
If you want to see the original system tiddler just click the following link: GettingStarted@system-info at system-info.
<<<
%/
Welcome to your brand new [[TiddlySpace|http://docs.tiddlyspace.com/TiddlySpace]].
You're almost ready to go, there are just a couple of things left to do.
!Customise your space
Go to [[SpaceSettings]] to finish customising your space. When you're done, come back here (just scroll up). Don't worry though, this will still be open when you've finished.
!Further Customisation
For advanced options, the [[ServerSettings]] tiddler is used to enable the following features:
#index: The value is the name of a tiddler that will be presented when loading the space. For example, when set to {{{Hello}}} for the space hello.tiddlyspace.com, navigating to that URL will present the Hello tiddler. If there is no {{{Hello}}} you will get an error.
#editor: The name of an [[editor application|http://docs.tiddlyspace.com/Example%20Tiddler%20Editors]] to edit tiddlers with. Applications come from [[included spaces|http://docs.tiddlyspace.com/How%20do%20I%20include%2Fexclude%20spaces%3F]]
//If you do not need or understand these features there is no need to create a ServerSettings tiddler.//
To edit these options:
* click [[here|ServerSettings]] to open the [[ServerSettings]] tiddler
* click on the edit button (the pencil icon)
* add the options you wish to set
* click on the save button (the tick icon).
An example [[ServerSettings]] tiddler:
{{{
index: HelloThere
editor: /edit#{tiddler}
}}}
The additional text after /edit allows a tiddler to be opened in edit mode e.g:
{{{http://hello.tiddlyspace.com/edit#MyTiddler}}}
!!See Also
* [[ServerSettings shadow tiddler|http://docs.tiddlyspace.com/ServerSettings%20shadow%20tiddler]]
* [[Choosing a non-TiddlyWiki Default Application for your Space|http://docs.tiddlyspace.com/Choosing%20a%20non-TiddlyWiki%20Default%20Application%20for%20your%20Space]]
!Finished customising?
You can [[Start writing]] some [[tiddlers|http://docs.tiddlyspace.com/Tiddler]].
If you're not done tweaking yet though, you can always [[Customise this space|SpaceSettings]] a bit more.
You can also [[access and read other tiddlers in various ways|http://docs.tiddlyspace.com/Viewing%20Tiddlers]].
!Administration
If you'd like to change your password or create another space, visit "Your Account" from the [[Universal Backstage|http://docs.tiddlyspace.com/UniversalBackstage]] (the blue dot in the upper right of the page). If you'd like to add a member or [[include a space|http://docs.tiddlyspace.com/How%20do%20I%20include%2Fexclude%20spaces%3F]] visit "This Space" from the [[Universal Backstage|http://docs.tiddlyspace.com/UniversalBackstage]].
You can have as many spaces as you like and each space can have as many members as you or your group need.
!Stuck?
If you're stuck, and would like some help, please visit the [[help|http://help.tiddlyspace.com]] space, which can point you in the right direction.
/***
|''Name''|TiddlySpacePublishingCommands|
|''Version''|0.8.5|
|''Status''|@@beta@@|
|''Description''|toolbar commands for drafting and publishing|
|''Author''|Jon Robson|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpacePublishingCommands.js|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlySpaceConfig TiddlySpaceFilters|
!Usage
Provides changeToPrivate, changeToPublic and saveDraft commands
Provides TiddlySpacePublisher macro.
{{{<<TiddlySpacePublisher type:private>>}}} make lots of private tiddlers public.
{{{<<TiddlySpacePublisher type:public>>}}} make lots of public tiddlers public.
!TODO
* add public argument?
!Code
***/
//{{{
(function($) {
var tiddlyspace = config.extensions.tiddlyspace;
var originMacro = config.macros.tiddlerOrigin;
tiddlyspace.getTiddlerStatusType = function(tiddler) {
var isShadow = store.isShadowTiddler(tiddler.title);
var exists = store.tiddlerExists(tiddler.title);
if(isShadow && !exists) {
return "shadow";
} else if(!exists) {
return "missing";
} else {
var types = ["private", "public"];
var type = "external";
for(var i = 0; i < types.length; i++) {
var t = types[i];
type = config.filterHelpers.is[t](tiddler) ? t : type;
}
if(config.filterHelpers.is.unsynced(tiddler)) {
type = type == "private" ? "unsyncedPrivate" : "unsyncedPublic";
}
return type;
}
};
var cmd = config.commands.publishTiddler = {
text: "make public",
tooltip: "Change this private tiddler into a public tiddler",
errorMsg: "Error publishing %0: %1",
isEnabled: function(tiddler) {
return !readOnly && config.filterHelpers.is["private"](tiddler);
},
handler: function(ev, src, title) {
var tiddler = store.getTiddler(title);
if(tiddler) {
var newBag = cmd.toggleBag(tiddler.fields["server.bag"]);
this.moveTiddler(tiddler, {
title: tiddler.fields["publish.name"] || tiddler.title,
fields: { "server.bag": newBag }
});
}
},
toggleBag: function(bag, to) {
var newBag;
if(typeof bag != typeof "") {
var tiddler = bag;
bag = tiddler.fields["server.bag"];
}
if(bag.indexOf("_private") > -1) { // should make use of endsWith
to = to ? to : "public";
newBag = bag.replace("_private", "_" + to);
} else {
to = to ? to : "private";
newBag = bag.replace("_public", "_" + to);
}
return newBag;
},
copyTiddler: function(title, newTitle, newBag, callback) {
var original = store.getTiddler(title);
newTitle = newTitle ? newTitle : title;
var adaptor = original.getAdaptor();
var publish = function(original, callback) {
var tiddler = $.extend(new Tiddler(newTitle), original);
tiddler.fields = $.extend({}, original.fields, {
"server.bag": newBag,
"server.workspace": "bags/%0".format(newBag),
"server.page.revision": "false"
});
delete tiddler.fields["server.title"];
tiddler.title = newTitle;
adaptor.putTiddler(tiddler, null, null, callback);
};
publish(original, callback);
},
moveTiddler: function(tiddler, newTiddler, callback) {
var info = {
copyContext: {},
deleteContext: {}
};
var _dirty = store.isDirty();
var adaptor = tiddler.getAdaptor();
var newTitle = newTiddler.title;
var oldTitle = tiddler.title;
delete tiddler.fields["server.workspace"];
var oldBag = tiddler.fields["server.bag"];
var newBag = newTiddler.fields["server.bag"];
var newWorkspace = "bags/%0".format(newBag);
cmd.copyTiddler(oldTitle, newTitle, newBag, function(ctx) {
info.copyContext = ctx;
var context = {
tiddler: tiddler,
workspace: newWorkspace
};
store.addTiddler(ctx.tiddler);
tiddler.title = oldTitle; // for cases where a rename occurs
if(ctx.status) { // only do if a success
if(oldBag != newBag) {
adaptor.deleteTiddler(tiddler, context, {}, function(ctx) {
info.deleteContext = ctx;
var el;
if(tiddler) {
tiddler.fields["server.workspace"] = newWorkspace;
tiddler.fields["server.bag"] = newBag;
}
el = el ? el : story.refreshTiddler(oldTitle, null, true);
if(oldTitle != newTitle) {
store.deleteTiddler(oldTitle);
store.notify(oldTitle, true);
}
if(el) {
story.displayTiddler(el, newTitle);
}
if(oldTitle != newTitle) {
story.closeTiddler(oldTitle);
}
if(callback) {
callback(info);
}
store.setDirty(_dirty);
});
} else {
if(callback) {
callback(info);
}
}
refreshDisplay();
}
});
}
};
var changeToPrivate = config.commands.changeToPrivate = {
text: "make private",
tooltip: "turn this public tiddler into a private tiddler",
isEnabled: function(tiddler) {
return !readOnly && config.filterHelpers.is["public"](tiddler);
},
handler: function(event, src, title) {
var tiddler = store.getTiddler(title);
var newBag = cmd.toggleBag(tiddler, "private");
var newTiddler = { title: title, fields: { "server.bag": newBag }};
cmd.moveTiddler(tiddler, newTiddler);
}
};
config.commands.changeToPublic = cmd;
/* Save as draft command */
var saveDraftCmd = config.commands.saveDraft = {
text: "save draft",
tooltip: "Save as a private draft",
isEnabled: function(tiddler) {
return changeToPrivate.isEnabled(tiddler);
},
getDraftTitle: function(title) {
var draftTitle;
var draftNum = "";
while(!draftTitle) {
var suggestedTitle = "%0 [draft%1]".format(title, draftNum);
if(store.getTiddler(suggestedTitle)) {
draftNum = !draftNum ? 2 : draftNum + 1;
} else {
draftTitle = suggestedTitle;
}
}
return draftTitle;
},
createDraftTiddler: function(title, gatheredFields) {
var tiddler = store.getTiddler(title);
var draftTitle = saveDraftCmd.getDraftTitle(title);
var draftTiddler = new Tiddler(draftTitle);
if(tiddler) {
$.extend(true, draftTiddler, tiddler);
} else {
$.extend(draftTiddler.fields, config.defaultCustomFields);
}
for(var fieldName in gatheredFields) {
if(TiddlyWiki.isStandardField(fieldName)) {
draftTiddler[fieldName] = gatheredFields[fieldName];
} else {
draftTiddler.fields[fieldName] = gatheredFields[fieldName];
}
}
var privateBag = tiddlyspace.getCurrentBag("private");
var privateWorkspace = tiddlyspace.getCurrentWorkspace("private");
draftTiddler.title = draftTitle;
draftTiddler.fields["publish.name"] = title;
draftTiddler.fields["server.workspace"] = privateWorkspace;
draftTiddler.fields["server.bag"] = privateBag;
draftTiddler.fields["server.title"] = draftTitle;
draftTiddler.fields["server.page.revision"] = "false";
delete draftTiddler.fields["server.etag"];
return draftTiddler;
},
handler: function(ev, src, title) {
var tiddler = store.getTiddler(title); // original tiddler
var tidEl = story.getTiddler(title);
var uiFields = {};
story.gatherSaveFields(tidEl, uiFields);
var tid = saveDraftCmd.createDraftTiddler(title, uiFields);
tid = store.saveTiddler(tid.title, tid.title, tid.text, tid.modifier,
new Date(), tid.tags, tid.fields);
autoSaveChanges(null, [tid]);
story.closeTiddler(title);
story.displayTiddler(src, title);
story.displayTiddler(src, tid.title);
}
};
var macro = config.macros.TiddlySpacePublisher = {
locale: {
title: "Batch Publisher",
changeStatusLabel: "Make %0",
noTiddlersText: "No tiddlers to publish",
changeStatusPrompt: "Make all the selected tiddlers %0.",
description: "Change tiddlers from %0 to %1 in this space"
},
listViewTemplate: {
columns: [
{ name: "Selected", field: "Selected", rowName: "title", type: "Selector" },
{ name: "Tiddler", field: "tiddler", title: "Tiddler", type: "Tiddler" },
{ name: "Status", field: "status", title: "Status", type: "WikiText" }
],
rowClasses: []
},
changeStatus: function(tiddlers, status, callback) { // this is what is called when you click the publish button
var publicBag;
for(var i = 0; i < tiddlers.length; i++) {
var tiddler = tiddlers[i];
var newTiddler = {
title: tiddler.title,
fields: { "server.bag": cmd.toggleBag(tiddler, status) }
};
cmd.moveTiddler(tiddler, newTiddler, callback);
}
},
getMode: function(paramString) {
var params = paramString.parseParams("anon")[0];
var status = params.type ?
(["public", "private"].contains(params.type[0]) ? params.type[0] : "private") :
"private";
var newStatus = status == "public" ? "private" : "public";
return [status, newStatus];
},
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var wizard = new Wizard();
var locale = macro.locale;
var status = macro.getMode(paramString);
wizard.createWizard(place, locale.title);
wizard.addStep(macro.locale.description.format(status[0], status[1]),
'<input type="hidden" name="markList" />');
var markList = wizard.getElement("markList");
var listWrapper = $("<div />").addClass("batchPublisher").
attr("refresh", "macro").attr("macroName", macroName).
attr("params", paramString)[0];
markList.parentNode.insertBefore(listWrapper, markList);
$.data(listWrapper, "wizard", wizard);
macro.refresh(listWrapper);
},
getCheckedTiddlers: function(listWrapper, titlesOnly) {
var tiddlers = [];
$(".chkOptionInput[rowName]:checked", listWrapper).each(function(i, el) {
var title = $(el).attr("rowName");
if(titlesOnly) {
tiddlers.push(title);
} else {
tiddlers.push(store.getTiddler(title));
}
});
return tiddlers;
},
refresh: function(listWrapper) {
var checked = macro.getCheckedTiddlers(listWrapper, true);
var paramString = $(listWrapper).empty().attr("params");
var wizard = $.data(listWrapper, "wizard");
var locale = macro.locale;
var params = paramString.parseParams("anon")[0];
var publishCandidates = [];
var status = macro.getMode(paramString);
var pubType = status[0];
var newPubType = status[1];
var tiddlers = params.filter ? store.filterTiddlers(params.filter[0]) :
store.filterTiddlers("[is[%0]]".format(pubType));
var enabled = [];
for(var i = 0; i < tiddlers.length; i++) {
var tiddler = tiddlers[i];
var title = tiddler.title;
if(!tiddler.tags.contains("excludePublisher") && title !== "SystemSettings") {
publishCandidates.push({ title: title, tiddler: tiddler, status: pubType});
}
if(checked.contains(title)) {
enabled.push("[rowname=%0]".format(title));
}
}
if(publishCandidates.length === 0) {
createTiddlyElement(listWrapper, "em", null, null, locale.noTiddlersText);
} else {
var listView = ListView.create(listWrapper, publishCandidates, macro.listViewTemplate);
wizard.setValue("listView", listView);
var btnHandler = function(ev) {
var tiddlers = macro.getCheckedTiddlers(listWrapper);
var callback = function(status) {
$(".batchPublisher").each(function(i, el) {
macro.refresh(el);
});
};
macro.changeStatus(tiddlers, newPubType, callback);
};
wizard.setButtons([{
caption: locale.changeStatusLabel.format(newPubType),
tooltip: locale.changeStatusPrompt.format(newPubType),
onClick: btnHandler
}]);
$(enabled.join(",")).attr("checked", true); // retain what was checked before
}
}
};
})(jQuery);
//}}}
!Spaces
<<groupBy server.bag>>
!Private
<<list filter [is[private]]>>
!Public
<<list filter [is[public]]>>
!Drafts
<<list filter [is[draft]]>>
# Time
# Talking
# Touching
# Trust
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
/***
|''Description''|Sanitisation for dynamically pulling tiddlers into your space and displaying them|
!Notes
Works both inside and outside TiddlyWiki. Uses the HTML Sanitizer provided by the Google Caja project
(see http://code.google.com/p/google-caja/wiki/JsHtmlSanitizer for more on this), which is licensed under
an Apache License (see http://www.apache.org/licenses/LICENSE-2.0).
!Code
***/
//{{{
(function($) {
var cleanURL = function(url) {
var regexp = /^(?:http|https|mailto|ftp|irc|news):\/\//;
return (regexp.test(url)) ? url : null;
};
$.sanitize = function(html) {
return html_sanitize(html, cleanURL);
};
/*
* HTML Sanitizer, provided by Google Caja
*/
/* Copyright Google Inc.
* Licensed under the Apache Licence Version 2.0
* Autogenerated at Tue May 17 17:39:24 BST 2011
* @provides html4
*/var html4={};html4.atype={NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10},html4.ATTRIBS={"*::class":9,"*::dir":0,"*::id":4,"*::lang":0,"*::onclick":2,"*::ondblclick":2,"*::onkeydown":2,"*::onkeypress":2,"*::onkeyup":2,"*::onload":2,"*::onmousedown":2,"*::onmousemove":2,"*::onmouseout":2,"*::onmouseover":2,"*::onmouseup":2,"*::style":3,"*::title":0,"a::accesskey":0,"a::coords":0,"a::href":1,"a::hreflang":0,"a::name":7,"a::onblur":2,"a::onfocus":2,"a::rel":0,"a::rev":0,"a::shape":0,"a::tabindex":0,"a::target":10,"a::type":0,"area::accesskey":0,"area::alt":0,"area::coords":0,"area::href":1,"area::nohref":0,"area::onblur":2,"area::onfocus":2,"area::shape":0,"area::tabindex":0,"area::target":10,"bdo::dir":0,"blockquote::cite":1,"br::clear":0,"button::accesskey":0,"button::disabled":0,"button::name":8,"button::onblur":2,"button::onfocus":2,"button::tabindex":0,"button::type":0,"button::value":0,"canvas::height":0,"canvas::width":0,"caption::align":0,"col::align":0,"col::char":0,"col::charoff":0,"col::span":0,"col::valign":0,"col::width":0,"colgroup::align":0,"colgroup::char":0,"colgroup::charoff":0,"colgroup::span":0,"colgroup::valign":0,"colgroup::width":0,"del::cite":1,"del::datetime":0,"dir::compact":0,"div::align":0,"dl::compact":0,"font::color":0,"font::face":0,"font::size":0,"form::accept":0,"form::action":1,"form::autocomplete":0,"form::enctype":0,"form::method":0,"form::name":7,"form::onreset":2,"form::onsubmit":2,"form::target":10,"h1::align":0,"h2::align":0,"h3::align":0,"h4::align":0,"h5::align":0,"h6::align":0,"hr::align":0,"hr::noshade":0,"hr::size":0,"hr::width":0,"iframe::align":0,"iframe::frameborder":0,"iframe::height":0,"iframe::marginheight":0,"iframe::marginwidth":0,"iframe::width":0,"img::align":0,"img::alt":0,"img::border":0,"img::height":0,"img::hspace":0,"img::ismap":0,"img::name":7,"img::src":1,"img::usemap":11,"img::vspace":0,"img::width":0,"input::accept":0,"input::accesskey":0,"input::align":0,"input::alt":0,"input::autocomplete":0,"input::checked":0,"input::disabled":0,"input::ismap":0,"input::maxlength":0,"input::name":8,"input::onblur":2,"input::onchange":2,"input::onfocus":2,"input::onselect":2,"input::readonly":0,"input::size":0,"input::src":1,"input::tabindex":0,"input::type":0,"input::usemap":11,"input::value":0,"ins::cite":1,"ins::datetime":0,"label::accesskey":0,"label::for":5,"label::onblur":2,"label::onfocus":2,"legend::accesskey":0,"legend::align":0,"li::type":0,"li::value":0,"map::name":7,"menu::compact":0,"ol::compact":0,"ol::start":0,"ol::type":0,"optgroup::disabled":0,"optgroup::label":0,"option::disabled":0,"option::label":0,"option::selected":0,"option::value":0,"p::align":0,"pre::width":0,"q::cite":1,"select::disabled":0,"select::multiple":0,"select::name":8,"select::onblur":2,"select::onchange":2,"select::onfocus":2,"select::size":0,"select::tabindex":0,"table::align":0,"table::bgcolor":0,"table::border":0,"table::cellpadding":0,"table::cellspacing":0,"table::frame":0,"table::rules":0,"table::summary":0,"table::width":0,"tbody::align":0,"tbody::char":0,"tbody::charoff":0,"tbody::valign":0,"td::abbr":0,"td::align":0,"td::axis":0,"td::bgcolor":0,"td::char":0,"td::charoff":0,"td::colspan":0,"td::headers":6,"td::height":0,"td::nowrap":0,"td::rowspan":0,"td::scope":0,"td::valign":0,"td::width":0,"textarea::accesskey":0,"textarea::cols":0,"textarea::disabled":0,"textarea::name":8,"textarea::onblur":2,"textarea::onchange":2,"textarea::onfocus":2,"textarea::onselect":2,"textarea::readonly":0,"textarea::rows":0,"textarea::tabindex":0,"tfoot::align":0,"tfoot::char":0,"tfoot::charoff":0,"tfoot::valign":0,"th::abbr":0,"th::align":0,"th::axis":0,"th::bgcolor":0,"th::char":0,"th::charoff":0,"th::colspan":0,"th::headers":6,"th::height":0,"th::nowrap":0,"th::rowspan":0,"th::scope":0,"th::valign":0,"th::width":0,"thead::align":0,"thead::char":0,"thead::charoff":0,"thead::valign":0,"tr::align":0,"tr::bgcolor":0,"tr::char":0,"tr::charoff":0,"tr::valign":0,"ul::compact":0,"ul::type":0},html4.eflags={OPTIONAL_ENDTAG:1,EMPTY:2,CDATA:4,RCDATA:8,UNSAFE:16,FOLDABLE:32,SCRIPT:64,STYLE:128},html4.ELEMENTS={a:0,abbr:0,acronym:0,address:0,applet:16,area:2,b:0,base:18,basefont:18,bdo:0,big:0,blockquote:0,body:49,br:2,button:0,canvas:0,caption:0,center:0,cite:0,code:0,col:2,colgroup:1,dd:1,del:0,dfn:0,dir:0,div:0,dl:0,dt:1,em:0,fieldset:0,font:0,form:0,frame:18,frameset:16,h1:0,h2:0,h3:0,h4:0,h5:0,h6:0,head:49,hr:2,html:49,i:0,iframe:4,img:2,input:2,ins:0,isindex:18,kbd:0,label:0,legend:0,li:1,link:18,map:0,menu:0,meta:18,nobr:0,noframes:20,noscript:20,object:16,ol:0,optgroup:0,option:1,p:1,param:18,pre:0,q:0,s:0,samp:0,script:84,select:0,small:0,span:0,strike:0,strong:0,style:148,sub:0,sup:0,table:0,tbody:1,td:1,textarea:8,tfoot:1,th:1,thead:1,title:24,tr:1,tt:0,u:0,ul:0,"var":0},html4.ueffects={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2},html4.URIEFFECTS={"a::href":2,"area::href":2,"blockquote::cite":0,"body::background":1,"del::cite":0,"form::action":2,"img::src":1,"input::src":1,"ins::cite":0,"q::cite":0},html4.ltypes={UNSANDBOXED:2,SANDBOXED:1,DATA:0},html4.LOADERTYPES={"a::href":2,"area::href":2,"blockquote::cite":2,"body::background":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2};var html=function(a){function x(b,c,d){var e=[];w(function(b,e){for(var f=0;f<e.length;f+=2){var g=e[f],h=e[f+1],i=null,j;if((j=b+"::"+g,a.ATTRIBS.hasOwnProperty(j))||(j="*::"+g,a.ATTRIBS.hasOwnProperty(j)))i=a.ATTRIBS[j];if(i!==null)switch(i){case a.atype.NONE:break;case a.atype.SCRIPT:case a.atype.STYLE:h=null;break;case a.atype.ID:case a.atype.IDREF:case a.atype.IDREFS:case a.atype.GLOBAL_NAME:case a.atype.LOCAL_NAME:case a.atype.CLASSES:h=d?d(h):h;break;case a.atype.URI:h=c&&c(h);break;case a.atype.URI_FRAGMENT:h&&"#"===h.charAt(0)?(h=d?d(h):h,h&&(h="#"+h)):h=null;break;default:h=null}else h=null;e[f+1]=h}return e})(b,e);return e.join("")}function w(b){var c,d;return v({startDoc:function(a){c=[],d=!1},startTag:function(e,f,g){if(!d){if(!a.ELEMENTS.hasOwnProperty(e))return;var h=a.ELEMENTS[e];if(h&a.eflags.FOLDABLE)return;if(h&a.eflags.UNSAFE){d=!(h&a.eflags.EMPTY);return}f=b(e,f);if(f){h&a.eflags.EMPTY||c.push(e),g.push("<",e);for(var i=0,j=f.length;i<j;i+=2){var k=f[i],l=f[i+1];l!==null&&l!==void 0&&g.push(" ",k,'="',r(l),'"')}g.push(">")}}},endTag:function(b,e){if(d)d=!1;else{if(!a.ELEMENTS.hasOwnProperty(b))return;var f=a.ELEMENTS[b];if(!(f&(a.eflags.UNSAFE|a.eflags.EMPTY|a.eflags.FOLDABLE))){var g;if(f&a.eflags.OPTIONAL_ENDTAG)for(g=c.length;--g>=0;){var h=c[g];if(h===b)break;if(!(a.ELEMENTS[h]&a.eflags.OPTIONAL_ENDTAG))return}else for(g=c.length;--g>=0;)if(c[g]===b)break;if(g<0)return;for(var i=c.length;--i>g;){var h=c[i];a.ELEMENTS[h]&a.eflags.OPTIONAL_ENDTAG||e.push("</",h,">")}c.length=g,e.push("</",b,">")}}},pcdata:function(a,b){d||b.push(a)},rcdata:function(a,b){d||b.push(a)},cdata:function(a,b){d||b.push(a)},endDoc:function(a){for(var b=c.length;--b>=0;)a.push("</",c[b],">");c.length=0}})}function v(c){return function(d,e){d=String(d);var f=null,g=!1,h=[],j=void 0,l=void 0,m=void 0;c.startDoc&&c.startDoc(e);while(d){var n=d.match(g?t:u);d=d.substring(n[0].length);if(g){if(n[1]){var o=b(n[1]),p;if(n[2]){var q=n[3];switch(q.charCodeAt(0)){case 34:case 39:q=q.substring(1,q.length-1)}p=k(i(q))}else p=o;h.push(o,p)}else if(n[4]){l!==void 0&&(m?c.startTag&&c.startTag(j,h,e):c.endTag&&c.endTag(j,e));if(m&&l&(a.eflags.CDATA|a.eflags.RCDATA)){f===null?f=b(d):f=f.substring(f.length-d.length);var r=f.indexOf("</"+j);r<0&&(r=d.length),l&a.eflags.CDATA?c.cdata&&c.cdata(d.substring(0,r),e):c.rcdata&&c.rcdata(s(d.substring(0,r)),e),d=d.substring(r)}j=l=m=void 0,h.length=0,g=!1}}else if(n[1])c.pcdata&&c.pcdata(n[0],e);else if(n[3])m=!n[2],g=!0,j=b(n[3]),l=a.ELEMENTS.hasOwnProperty(j)?a.ELEMENTS[j]:void 0;else if(n[4])c.pcdata&&c.pcdata(n[4],e);else if(n[5]&&c.pcdata)switch(n[5]){case"<":c.pcdata("<",e);break;case">":c.pcdata(">",e);break;default:c.pcdata("&",e)}}c.endDoc&&c.endDoc(e)}}function s(a){return a.replace(m,"&$1").replace(n,"<").replace(o,">")}function r(a){return a.replace(l,"&").replace(n,"<").replace(o,">").replace(p,""").replace(q,"=")}function k(a){return a.replace(j,g)}function i(a){return a.replace(h,"")}function g(a,b){return f(b)}function f(a){a=b(a);if(c.hasOwnProperty(a))return c[a];var f=a.match(d);if(f)return String.fromCharCode(parseInt(f[1],10));if(!!(f=a.match(e)))return String.fromCharCode(parseInt(f[1],16));return""}var b;"script"==="SCRIPT".toLowerCase()?b=function(a){return a.toLowerCase()}:b=function(a){return a.replace(/[A-Z]/g,function(a){return String.fromCharCode(a.charCodeAt(0)|32)})};var c={lt:"<",gt:">",amp:"&",nbsp:"240",quot:'"',apos:"'"},d=/^#(\d+)$/,e=/^#x([0-9A-Fa-f]+)$/,h=/\0/g,j=/&(#\d+|#x[0-9A-Fa-f]+|\w+);/g,l=/&/g,m=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,n=/</g,o=/>/g,p=/\"/g,q=/\=/g,t=new RegExp("^\\s*(?:(?:([a-z][a-z-]*)(\\s*=\\s*(\"[^\"]*\"|'[^']*'|(?=[a-z][a-z-]*\\s*=)|[^>\"'\\s]*))?)|(/?>)|[\\s\\S][^a-z\\s>]*)","i"),u=new RegExp("^(?:&(\\#[0-9]+|\\#[x][0-9a-f]+|\\w+);|<!--[\\s\\S]*?-->|<!\\w[^>]*>|<\\?[^>*]*>|<(/)?([a-z][a-z0-9]*)|([^<&>]+)|([<&>]))","i");return{escapeAttrib:r,makeHtmlSanitizer:w,makeSaxParser:v,normalizeRCData:s,sanitize:x,unescapeEntities:k}}(html4),html_sanitize=html.sanitize
// stop here if we're not in TiddlyWiki
// XXX: is this the correct way of checking for TiddlyWiki?
if (!window.TiddlyWiki || !window.store || !store instanceof TiddlyWiki) {
return;
}
var tiddlyspace = config.extensions.tiddlyspace;
var _subWikify = Wikifier.prototype.subWikify;
var cleanedTitle = 'This section has been cleaned of any potentially harmful code';
var replaceFunctions = {
html: function(w) {
var sanitizedHTML, spanEl;
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
sanitizedHTML = $.sanitize(lookaheadMatch[1]);
spanEl = createTiddlyElement(w.output, 'span', null, 'sanitized');
spanEl.innerHTML = sanitizedHTML;
spanEl.setAttribute('title', cleanedTitle);
w.nextMatch = this.lookaheadRegExp.lastIndex;
}
},
customFormat: function(w) {
switch(w.matchText) {
case '@@':
var e = createTiddlyElement(w.output, 'span');
var styles = config.formatterHelpers.inlineCssHelper(w);
if (styles.length === 0) {
e.className = 'marked';
}
w.subWikifyTerm(e, /(@@)/mg);
break;
case '{{':
var lookaheadRegExp = /\{\{[\s]*([\w]+[\s\w]*)[\s]*\{(\n?)/mg;
lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = lookaheadRegExp.exec(w.source);
if(lookaheadMatch) {
w.nextMatch = lookaheadRegExp.lastIndex;
e = createTiddlyElement(w.output,lookaheadMatch[2] == "\n" ? "div" : "span",null,lookaheadMatch[1]);
w.subWikifyTerm(e,/(\}\}\})/mg);
}
break;
}
}
};
Wikifier.prototype.subWikify = function(output, terminator) {
var tid = this.tiddler,
spaceName = tiddlyspace.currentSpace.name,
tidSpace, recipeName, stripped;
try {
recipeName = tid.fields['server.recipe'] ||
tid.fields['server.workspace'];
tidSpace = tiddlyspace.resolveSpaceName(recipeName);
if (tidSpace !== spaceName) {
// external tiddler, so replace dangerous formatters
stripped = stripHTML(tid, this.formatter);
}
} catch(e) {
// do nothing. There's no tiddler, so assume it's safe (?!?!?)
}
_subWikify.apply(this, arguments);
if (stripped) {
// change back to the original function
unstripHTML(stripped, this.formatter);
}
};
// replace potentially unsafe formatters with versions that strip bad HTML/CSS
var stripHTML = function(tid, formatter) {
var popped = {}, _handler;
for (var i = 0; i < formatter.formatters.length; i++) {
var f = formatter.formatters[i];
if (replaceFunctions[f.name]) {
_handler = f.handler;
popped[f.name] = _handler;
f.handler = replaceFunctions[f.name];
}
};
return popped;
};
// put the original formatters back where they belong
var unstripHTML = function(stripped, formatter) {
for (var i = 0; i < formatter.formatters.length; i++) {
var f = formatter.formatters[i];
if (stripped[f.name]) {
f.handler = stripped[f.name];
}
};
};
})(jQuery);
//}}}
I think of of the ingenious things about WordsWithFriends if you're willing to look OutsideTheBox is that it has the opportunity to bring the social aspect of BoardGames back - the chit chat that happens between moves and the eventual "will you make a move dammit!"
So the idea of AutoResign is nice if you're in a CompetitiveLandscape. But if you're in KeepInTouch mode with friends around the world, I think it'd be better to just allow us to play at our own pace - nobody says "it's been 10 days, it's time for you to write that letter!" but you do hear "hey, I haven't heard from you, do write!"
<<<
I'd appreciate it if you would just repeatedly nudge me instead of auto-resigning my games.
I have deadlines to meet and value the games I'm having with my friends which we're happy to play "between the cracks" without any kind of time-limit. we're already happy to be in touch, have a means of creating a tempo around out chats, and we're happy games complete when they're complete.
if it takes months to complete, so what?
please do not pressure even if we are a small percentage of your community and give us a choice to create games without auto-resign. we can always decline such a request. thanks!
<<<
<!--{{{-->
<link rel="shortcut icon" href="/recipes/chinarut_public/tiddlers/favicon.ico" />
<link href="/bags/chinarut_public/tiddlers.atom" rel="alternate"
type="application/atom+xml" title="chinarut's public feed" />
<link rel="canonical" href="http://chinarut.tiddlyspace.com/" />
<!--}}}-->
//<waiting for [[Nobody]] to send me an image of [[Shiva]] sleeping to insert here>//
ok - as much as I hate BranchingData inside my commitment to make TiddlySpace work, I am experimenting with WordPress to implement an EmailGateway from SleepCycle that wasn't working with [[Blogger]]:
http://shivasleeps.wordpress.com
must say the default WordPress setup looks quite nice! the [[Spirits]] must be working :)
The RecyclingNut in me really reared its head after taking on a TrueNorthHealthDiet - I was producing FruitAndVeggieScraps UpTheWazoo!
Phase 1 - we spent like $20 on a CompostBin
Phase 2 - on our [[Wishlist]] is to get a WormBin to put in the backyard and have our scraps go to work!
[[163 Things You Can Compost|http://www.plantea.com/compost-materials.htm]]
You may need to make a FruitFlyTrap...
I'm totally addicted to SteelCutOats after going up to TrueNorthHealth and it is impossible to go back to RolledOats!
McCann's IrishPorridge method seems to get the closest to perfection and still practicing (been at it for a year so far!)
<<<
Into four cups of briskly boiling water sprinkle one cup of oatmeal, stirring well. When the porridge is smooth and beginning to thicken, reduce heat and simmer uncovered for 30 minutes, stirring occasionally. Traditionally served with fresh buttermilk, Irish porridge is also good with milk or cream and brown sugar or honey, or with butter. [[(source)|http://www.mccanns.ie/preparation.html]]
<<<
of course, I've been skipping [[Dairy]] and [[Sugar]] - try it without adding anything once to just get a sense of the pure [[Goodness]] of SteelCutOats with NothingAdded!
!tweaks
# 3 cups liquid to 1 cup oats gives it a lot more thickness
# CleverTrick: use 1 cup AppleJuice 2 cups Water (50/50 if you prefer sweeter, AppleCider works great too!)
# add [[Pecans]] and/or RawWalnuts right after you reduce heat and let it simmer.
# skip [[Dairy]] and [[Sugar]]
# FreshBlueberries and FreshStrawberries are a real treat - put them in 25 minutes in to soften them up a little so they get saucy
finally - buying [[Organic]] SteelCutOats by the pound is clearly the most economical way (much like as AsianFamily would buy a 20 lb bag of [[Rice]]! :)
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/GuAWOXvIxm4" frameborder="0" allowfullscreen></iframe>
</html>
# [[Facebook]]
# [[TiddlySpace]]
## [[Self]] @chinarut
## [[DanceChalat]] @chalat
## [[TeamMinutemen]] @teamminutemen @teamminutemen-community
## [[DanceLabs]] @dancelabs
# [[Ning]] - [[CGT]]
# Twitter
## http://twitter.com/chinarut //(integrated into [[Facebook]])//
## http://twitter.com/dancelabs
# LiveJournal //(beginning to get depreciated now that I am journaling here...)//
[[Google]] fits in here somewhere some almagam of GoogleApps which inevitably includes GoogleMail, GoogleVoice, GoogleWave, GoogleDocs to name a few that are most active in this space.
# [[Radical Inclusion]]
# [[Gifting]]
# [[Decommodification]]
# [[Radical Self-reliance]]
# [[Radical Self-expression]]
# [[Communal Effort]]
# [[Civic Responsibility]]
# [[Leaving No Trace]]
# [[Participation]]
# [[Immediacy]]
([[learn more|http://www.burningman.com/whatisburningman/about_burningman/principles.html]])
<table id="footer" cellspacing="0" cellpadding="0" align="center" border="0" width="100%">
<tr>
<td align="center">
<table align="center" border="0" width="960">
<tr>
<td align="left" width="200">
<a href="http://www.chinarut.com"><img border="0" src="SiteIcon" width="48"></a>
</td>
<td align="right" style="word-spacing:6px;font-size:80%;padding-right:10px;">
<a href="#" target="_top">TOP</a> |
<a href="http://chinarut.wikispaces.com" target="_blank">WIKISPACE</a> |
<a href="http://facebook.com/chinarut" target="_blank">FACEBOOK</a> |
<a href="http://twitter.com/chinarut" target="_blank">TWITTER</a> |
<a href="http://resume.chinarut.com" target="_blank">RESUME</a>
</td>
</tr>
<tr>
<td valign="top" colspan="2" align="center" style="padding-top:7px;color:#404040;">
<!--Creative Commons License--><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" target="_blank"><img alt="Creative Commons License" style="border-width: 0" src="http://creativecommons.org/images/public/somerights20.png"/></a><br/>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/" target="_blank">All content contributed to http://chinarut.tiddlyspace.com is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License</a>.<!--/Creative Commons License--><!-- <rdf:RDF xmlns="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<Work rdf:about="">
<license rdf:resource="http://creativecommons.org/licenses/by-nc-sa/3.0/" />
<dc:type rdf:resource="http://purl.org/dc/dcmitype/InteractiveResource" />
</Work>
<License rdf:about="http://creativecommons.org/licenses/by-nc-sa/3.0/"><permits
rdf:resource="http://web.resource.org/cc/Reproduction"/><permits rdf:resource="http://web.resource.org/cc/Distribution"/><requires rdf:resource="http://web.resource.org/cc/Notice"/><requires rdf:resource="http://web.resource.org/cc/Attribution"/><prohibits rdf:resource="http://web.resource.org/cc/CommercialUse"/><permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/><requires rdf:resource="http://web.resource.org/cc/ShareAlike"/></License></rdf:RDF> -->
</td>
</tr>
</table>
<br />
</td>
</tr>
</table>
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
[[iPhone]] plans in Thailand are extremely inexpensive (start at US$13/mon!)
http://www.truemove.com/iphone/en/price.html
no 2 year commitment does mean they phones are more than full price (~US$688) - you do save on tax and as of June 2011, you even get an UnlockedPhone InterestFree for 10 months.
now if it becomes that critical to receive calls on my Thai mobile # - it's great to see RoamingRates are reasonable (about 1/2 to 1/3)
if I were to declare Thailand home, i'm likely to be putting in a local US SIM ([[T-Mobile]] or [[AT&T]]) and restrict my data usage to just WiFi.
and if I travel to the UK...[[Simplicity]]!
a RelationshipModel built on KenWilber's IntegralFramework whose CompatibilityMatrix does a great job giving insight to the types of Partnership that occur between people of varying LevelsOfConsciousness.
Abstract: http://goo.gl/cKSs1
thanks to the StilTaz community, it's alive!!! a MinimalServer with a 166Mhz Pentium, 96MB of RAM, and 400GB of storage for the heck of it!!
got our old FamilyComputer up and running with their [[Firefox]] flavor too - nice.
Let it be known I really appreciate the OpenSource [[Community]] and look forward to [[Modeling]] its efforts as DanceLabs! :)
lots of players in this game - a matter of which slant on [[Communication]] you decide to take on - this particular slant is a very [[Mobile]] and [[Software]] centric view. Most likely to be at home with the [[Android]] folks!
# [[Texting]]
# InstantMessaging
# VisualVoicemail
# VoicemailTranscription
# UnifiedInbox ([[Texts]], [[Voicemail]], [[Recordings]])
# [[Dialer]]
# [[Settings]] (for example, GoogleVoice KnobsAndDials in MobileInterface)
!AdvancedFeatures
# MultipleAccounts
# VoIP
# VideoCalling
# VideoConferencing (more than 2)
# TeamCollaboration (ie. with [[Documents]])
# selectable CallQuality
# custom NotificationHandling
# MultimediaMessaging (MMS) - [[Photos]], [[Contacts]], [[Location]] - sending a contact to someone was a success of [[Nokia]]!
# InternationalCallingSwitchover
# MultipleCallMethods
# WebInterface
# CallRouting
# DialRules
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="506 234 68 36" width="30" height="30"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2010-09-16 14:51Z</dc:date><!-- Produced by OmniGraffle Professional 5.2.3 --></metadata><defs></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><rect width="1118" height="783"/><g><path d="M 538.68195 244.31807 C 540.43927 246.07547 540.43927 248.9247 538.68195 250.68204 C 536.92456 252.4394 534.07532 252.4394 532.318 250.68204 C 530.5606 248.9247 530.5606 246.07547 532.318 244.31807 C 534.07532 242.56075 536.92456 242.56075 538.68195 244.31807 M 511.12607 257.99356 C 511.26108 258.13019 511.39728 258.26608 511.53473 258.40121 C 527.2556 273.86606 552.74414 273.86606 568.46515 258.40121 C 568.60248 258.26617 568.73853 258.13037 568.87354 257.9938 C 568.8736 257.99374 568.8736 257.99371 568.8736 257.99362 C 568.87366 257.99371 568.87366 257.9938 568.87372 257.9939 C 570.72504 256.12051 572.35046 254.11153 573.74994 252 C 573.74994 251.99997 573.74994 251.99994 573.74994 251.99992 C 572.35046 249.8884 570.72504 247.87938 568.87372 246.00606 C 568.87366 246.00613 568.87366 246.00621 568.8736 246.00627 C 568.73865 245.86966 568.60254 245.73383 568.46515 245.5987 C 552.74414 230.13387 527.2556 230.13387 511.53473 245.5987 C 511.39728 245.73383 511.26108 245.86974 511.12613 246.00635 C 511.126 246.00624 511.126 246.00616 511.12595 246.00606 C 509.2748 247.87938 507.64954 249.88837 506.24994 251.9998 L 506.24994 251.99983 C 506.24994 251.9999 506.25 251.99992 506.25 251.99997 C 506.25 252 506.24994 252.00005 506.24994 252.00009 L 506.24994 252.00012 C 507.64954 254.11157 509.2748 256.12051 511.12595 257.9939 C 511.126 257.99377 511.126 257.99365 511.12607 257.99359 Z M 515.44916 252 C 515.8548 251.55469 516.27502 251.11778 516.71014 250.68985 C 522.16632 245.32257 529.06055 242.23206 536.17273 241.41824 C 534.6662 241.96199 533.2525 242.83762 532.04498 244.04512 C 527.65155 248.43852 527.65155 255.56163 532.04498 259.95502 C 533.2522 261.16226 534.6656 262.03778 536.17175 262.58154 C 529.05988 261.76761 522.16608 258.6771 516.71014 253.31009 C 516.2751 252.88219 515.85486 252.44528 515.44922 252 Z M 564.55054 251.99995 C 564.14502 252.44525 563.7248 252.88217 563.28973 253.31009 C 557.83368 258.67712 550.93988 261.76764 543.828 262.58157 C 545.33423 262.03781 546.74756 261.1623 547.9549 259.95502 C 552.34833 255.56163 552.34833 248.43852 547.9549 244.04512 C 546.74744 242.83765 545.33374 241.96202 543.82715 241.41824 C 550.9394 242.23206 557.83356 245.3226 563.28973 250.68985 C 563.7248 251.11775 564.14502 251.55467 564.55054 251.99995 Z M 568.8736 257.99362 C 570.7249 256.12033 572.35028 254.11139 573.74988 252.00002" fill="black" class="glyph"/></g></g></svg>
in this day of [[Autonomy]] - being able to see your or your client's desktop is golden.
I was a LogMeIn user for awhile and now I'm a big fan of going the classic SSH/VNC route and RemoterVNC is the winner at just 2 bucks!
RemoterVNC supports MacOSXLion's PerUserScreenSharing feature meaning you'll be able to log into a different desktop (say to administrate the computer) even while someone is logged in OnConsole.
apps that lost the race:
# iSSH
# Screens
# VNCPocketPro
# LogMeIn
see also this thread: http://goo.gl/rI0s0
chkPrivateMode: false
txt_GATracker_id: UA-567455-1
txt_GATracker_track: 0%2C0%2C1%2C1%2C1%2C0%2C0
what is a CommunityArchitect you ask? Someone who designs, develops, and uses tools to build IntentionalCommunity.
What is fascinating about this role is the ability to use both [[Technology]] and [[Dance]] to bring communities together.
DanceChalat is a community I built in [[Thailand]] and @chalat is its online representation for others to freely benefit from our work.
This is the expression I chose to be at my first ThaiAmerican NetworkingMixer on June 29, 2011 (see [[June 30, 2011]])
in case it wasn't obvious to anyone - I've been using a [[Jailbroken]] iPhone ever since it was released in 2007 - I will never forget the day I was sitting in a park in [[Bangkok]], lush green & people all around me, and getting on [[Facebook]] to share the moment - sold me on the whole concept of a [[SmartPhone]] even further not to mention it carved a particular space for me around MobileComputing in [[Thailand]]!
I've been using T-Mobile on my [[iPhone]] for a bit over 2 years now and it's on its last legs - my $20 grandfathered data plan is now unreliable (not to mention slow) and with all the SpringCleaning I've been doing - it also includes patching my LifeHacks - which means to use a SmartPhone legitimately as much as I care about the freedom one has to use their device however it is they wish to use it once purchased (20k baht was quite an investment considering that was about 3-4 months rent if I remember correctly!) I am now inquiring, if I were to have a kosher iPhone the way Apple intends it to be used - what might be available not having this issue on my mind?
rumor is out that T-Mobile may get the iPhone (thus things may resolve itself), AT&T is acquiring T-Mobile in the next 12 months, [[TrueMove]] is amazingly inexpensive in Thailand, I could easily accept owning an [[Android]] so clearly, AllRoadsLeadToRome :)
http://www.eweek.com/c/a/Mobile-and-Wireless/Apples-iPhone-5-Carried-by-Sprint-TMobile-Report-361558/
I assist with workshops and transformational courses because it gives me hands-on experience in regards to the finer details that need to be managed through software designed to facilitate all aspects of a workshop from inception to design to execution to automation.
Upon full execution, such software is effectively CommunityContributionSoftware.
[[Acknowledgements]]
I've stepped away from Facebook for well over 2 weeks (don't take this personally, I will attend to that space from time to time as I create time!)
This post by @cdent sums up my thoughts as to why platforms like TiddlySpace reveal a direction Facebook must embrace to continue to be successful as we all wake up to contributing and adapting to each other :)
http://cdent.tumblr.com/post/1350976279/bye-bye-facebook-hello-tiddlyspace (please excuse any technical [[Jargon]], it's still a good article!)
[[my historical personal impressions & collection of article|http://chinarut.wikispaces.com/Facebook]] - a page in [[Wikispaces]] that continues to get page hits - I swear the writers of TheSocialNetwork visited my page at one point in time & proud to be a [[Contribution]] ;-)
http://jailbreakme.com is very impressive - be sure to search for "PDF Patcher 2" on the [[Cydia]] [[app]] it installs to cover up the [[Exploit]] [[Apple]] will need to patch in the next FirmwareUpdate.
I've played around with MediaWiki and AppleWiki instances and always seem to migrate back to hosted, cloud-based platforms like TiddlySpace...the fact that you can host your own TiddyWeb server is just icing on the pie!
what distinguishes other servers from TiddlySpace:
# MediaWiki has a large, active user base thanks to sites like Wikipedia
# AppleWiki has wiki/blog integration and video integration (PodcastProducer)
# [[Wikispaces]] is admittedly a no-brainer to use - expect more of a rampup curve using TiddlySpace
finer details of what distinguishes the TiddlyEcosystem:
# you can render pure HTML like [[this example|http://wc.tiddlyspace.com/form]]
# encourages synthesis (see [[Facebook]])
# allows individual tiddlers to be private (no need to pay $20/month to [[Wikispaces]])
# allows you to host your own server (this can be critical with education where sandboxing inside school firewall is a requirement)
# CamelCase rocks to both foreshadow future links and it just saves time (no more editing just to turn a link into a hyperlink)
# tiddler-based programmatic plug-in model
# multi-layer hacking - at the TiddlyWeb (server), client (TiddlyWiki), structural/CSS (StyleSheet), content (tiddlers themselves) and collaborative (TiddlySpace) - you'll find the hacker in you :)
# offline operation on iOS platform via TWEdit
# TiddlyWiki is easily skinnable - very sophisticated content-synthesis model for tiddlers themselves - very easily ported DanceChalat tiddlers into default TiddlySpace skin
# HTML embeds (GoogleVideo, GoogleVoice, Flickr) are trivial
# Tiddlers can move freely from one space to another - when one has created sufficient content to justify a separate space - extremely easy to do
# wikitext formatting
# revision of tiddlers built into server architecture
# tiddlers work at the micro-level (think micro-blogging like Twitter)
# tags will cross-reference to their tiddlers
# multiple tiddlers can be edited at once - supports refactoring and parallelism
# double-click to edit - nice!
This paradigm supports the [[Geek]] in everyone ;-)
I'm liking Google's incantation of TheSocialNetwork. I was doubtful before using it and now what I'm seeing is it succeeded in coordinating the myriad of ConversationThreads one may be part of in this universe we call the [[Internet]]!
Now to be fair, [[Facebook]] still feels like MissionControl given the large majority of MyCommunity is there.
That said, my GoogleProfile is evolving nicely!
http://gplus.to/chinarut
if you click the "About" tab, you'll even see an iconified list of MajorSpaces I have on the net on the right.
can't wait until BitsAndPieces of GoogleWave and GoogleDocs show up - I can be patient :)
/***
|''Name''|TiddlySpaceFollowingWizard|
|''Version''|0.7.0|
|''Description''|Provides a following wizard macro and deleteButton view type|
|''Author''|Jon Robson|
|''Requires''|TiddlySpaceConfig TiddlySpaceFollowingPlugin TiddlySpaceTiddlerIconsPlugin|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
{{{ <<followWizard>> }}}
!StyleSheet
.followWizard ul,
.followWizard li .siteIcon,
.followWizard li {
list-style: none;
display: inline-block;
}
.followWizard li {
margin-right: 8px;
background-color: #eee;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
padding: 4px;
}
!Code
***/
//{{{
(function($) {
var tweb = config.extensions.tiddlyweb;
var tiddlyspace = config.extensions.tiddlyspace;
var currentSpace = tiddlyspace.currentSpace.name;
var shadows = config.shadowTiddlers;
shadows.FollowersTemplate = "<<view server.bag SiteIcon width:24 height:24 spaceLink:yes label:no>> <<view server.bag spaceLink>>";
shadows.FollowingTemplate = "<<view title SiteIcon width:24 height:24 spaceLink:yes label:no>> <<view title spaceLink>> <<view title deleteButton>>";
var name = "StyleSheetFollowingWizard";
shadows[name] = "/*{{{*/\n%0\n/*}}}*/".
format(store.getTiddlerText(tiddler.title + "##StyleSheet"));
store.addNotification(name, refreshStyles);
var wizard = config.macros.followWizard = {
locale: {
mission: "Which user or space would you like to follow?",
badpermissions: "Only members of the space can maintain followers.",
follow: "follow"
},
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var locale = wizard.locale;
var container = $("<div />").addClass("followWizard").appendTo(place)[0];
if(!readOnly) {
var form = $("<form />").addClass("followForm").appendTo(container)[0];
$("<span />").text(locale.mission).appendTo(form);
var input = $("<input />").attr("name", "space").attr("type", "text").appendTo(form);
$("<input />").attr("type", "submit").val(locale.follow).appendTo(form).click(function(ev) {
wizard.addFollowing(ev, input.val());
ev.preventDefault();
});
} else {
$(container).addClass("annotation").text(locale.badpermissions);
}
},
addFollowing: function(ev, space) {
var name = tiddlyspace.resolveSpaceName(space);
if(!name) {
alert("That doesn't appear to be a valid space name. Please check and try again.");
return;
}
var title = "@" + name;
var tiddler = store.getTiddler(title);
if(tiddler) {
tiddler.tags.push("follow");
} else {
tiddler = new Tiddler(title);
tiddler.tags.push("follow");
merge(tiddler.fields, config.defaultCustomFields);
}
store.saveTiddler(tiddler);
autoSaveChanges();
}
};
config.macros.view.views.deleteButton = function(value,place,params,wikifier,paramString,tiddler) {
var tid = store.getTiddler(value)
if(tid && config.commands.deleteTiddler.isEnabled(tid)) {
var handler = function(ev) {
config.commands.deleteTiddler.handler(ev,ev.target,value);
};
createTiddlyButton(place, "X", "delete this tiddler", handler);
}
};
})(jQuery);
//}}}
it's quite a different world EatingOut, [[Cooking]], GroceryShopping from the eyes of not adding any more salt, sugar, or oil than what nature provides.
now that I've taken adding salt out of my diet for almost a month, my taste buds are hyper-sensitive - I just don't need to over-stimulate my taste buds as a lot of our food is prepared today.
It's nice to appreciate the subtleties of the food I'm eating without being overpowered by stuff we just add to our food seemingly out of habit!
less processing, less waste - go [[Environment]]! :)
I did a QiGong intensive recommended to me called MedicineBeginsWithMe - what was great about the whole experience is I found a really simple way to FollowThrough on a commitment to [[30Minutes]] of QiGong for 100 days (a [[100Gong]])
it was awesome. While I've decided not to keep up a morning QiGong practice, the [[Awareness]] I now have of [[30Minutes]] of my life is amazing and made a RealDifference in my life - it's just part of my life!
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AP8zZgAAAGYA//8zAADMMwD/mTMAAGYzAP8zMwAAADMAzP8AAADMAADMmQAAAGYAAMwzAAAAAADuzAAA3QAAALvMAACqAAAAiMwAAHcAAABVmQAARAAAACKZAAARAADuAJkA3QAAALsAmQCqAAAAiACZAHcAAABVAJkARAAAACIAZgARAADuAABm3QAAALsAAGaqAAAAiAAAZncAAABVAABmRAAAACIAAGYRAAAA7u7uM93d3QC7u7szqqqqAIiIiDN3d3cAVVVVM0RERAAiIiIzERERAAAAADMBAQEBAQEBAQEBpXl5eXl5eXl5eXmlAQEBAQEBAQEBAQEBAQEBAQEBgHl5eXl5eXl5eXl5eXl5gAEBAQEBAQEBAQEBAQEB/Xp5eXlVT04qKioqTk9VeXl5ev0BAQEBAQEBAQEBAaV5eXlPKioqKioqKioqKioqT3l5eaUBAQEBAQEBAQGAeXlVTioqKioqKioqKioqKioqTlV5eYABAQEBAQEBgHl5VSoqKioqKioqKioqKioqKioqKlV5eYABAQEBAaV5eVUqKioqKioqKioqKioqKioqKioqKlV5eaUBAQEBeXlVKioqKioqKioqKioqKioqKioqKioqKlV5eQEBAXl5eU4qKioqKioqKjExMTExMSoqKioqKioqTnl5eQEBeXlPKioqKioqKjEyMjIyMjIyMjEqKioqKioqT3l5AXp5eSoqKioqKioxMjIxBwcHBzEyMjEqKioqKioqeXl6eXlVKioqKioqMTIxBwcHBwcHBwcxMjEqKioqKipVeXl5eU8qKioqKioyMgcHBwcHBwcHBwcyMioqKioqKk95eXl5TioqKioqMTIxBwcHBwcHBwcHBzEyMSoqKioqTnl5eXkqKioqKioxMgcHBwcHBwcHBwcHBzIxKioqKioqeXl5eSoqKioqKjEyBwcHBwcHBwcHBwcHMjEqKioqKip5eXl5KioqKioqMTIHBwcHBwcHBwcHBwcyMSoqKioqKnl5eXkqKioqKioxMgcHBwcHBwcHBwcHBzIxKioqKioqeXl5eU4qKioqKjEyMQcHBwcHBwcHBwcxMjEqKioqKk55eXl5TyoqKioqKjIyBwcHBwcHBwcHBzIyKioqKioqT3l5eXlVKioqKioqMTIxBwcHBwcHBwcxMjEqKioqKipVeXl6eXkqKioqKioqMTIyMQcHBwcxMjIxKioqKioqKnl5egF5eU8qKioqKioqMTIyMjIyMjIyMSoqKioqKipPeXkBAXl5eU4qKioqKioqKjExMTExMSoqKioqKioqTnl5eQEBAXl5VSoqKioqKioqKioqKioqKioqKioqKipVeXkBAQEB+nl5VSoqKioqKioqKioqKioqKioqKioqVXl5+gEBAQEBenl5VSoqKioqKioqKioqKioqKioqKlV5eXoBAQEBAQEBeXl5VU4qKioqKioqKioqKioqKk5VeXl5AQEBAQEBAQEBenl5eU8qKioqKioqKioqKipPeXl5egEBAQEBAQEBAQEB+nl5eXlVT04qKioqTk9VeXl5efoBAQEBAQEBAQEBAQEBAXl5eXl5eXl5eXl5eXl5eXkBAQEBAQEBAQEBAQEBAQEBAQF6eXl5eXl5eXl5eXoBAQEBAQEBAQEB/+AH//+AAf/+AAB//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADgAAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAYAAAAHAAAADwAAAA+AAAAfwAAAP+AAAH/wAAD/+AAB//4AB///gB/8oAAAAIAAAAEAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAwAAAAMAAAADAAAABG1bSA61m3JXuqB4mbuhd8m9o3jqvaF4+b2hePm9o3jqu6F3ybqgeJm1m3JXbVtIDgAAAAQAAAADAAAAAwAAAAMAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAUAAAAGAAAACI98Wye0nXWavKF4876kev++pHr/vqR6/76kev++pHr/vqR6/76kev++pHr/vqR6/76kev+8oXjztJ11mo98WycAAAAIAAAABgAAAAUAAAADAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAQAAAAHAAAAChwcHBKulnGJvaN5+L6kev++pHr/y7GJ/9/Fnv/s1K7/9t25//rivv/64r7/9t25/+zUrv/fxZ7/y7GJ/76kev++pHr/vaN5+K6WcYkcHBwSAAAACgAAAAcAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAEAAAADAAAABwAAAAtuYkUst552z76kev++pHr+1LuS//Latf/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD/8tq1/9S7kv++pHr+vqR6/7eeds9uYkUsAAAACwAAAAcAAAADAAAAAQAAAAAAAAABAAAAAgAAAAQAAAAIi3hbNbqgd+a+pHr/xayD/+3Vr//85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA/+3Vr//FrIP/vqR6/7qgd+aJdVg0AAAACAAAAAQAAAACAAAAAQAAAAEAAAACAAAABIl8WSW8oXjlvqR6/8yyiv/54Lz//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//ngvP/Msor/vqR6/7yheOWJfFklAAAABAAAAAIAAAABAAAAAAAAAAFfXz8Iu6F4zL6kev/Msor/+uK+//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//rivv/Msor/vqR6/7uheMxfXz8IAAAAAQAAAAAAAAAAAAAAAbqid4K+pHr/xayD//ngvP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//fgvP/FrIP/vqR6/7qid4IAAAABAAAAAAAAAAC3l28gvaN5+L6kev7t1a///OXA//zlwP/85cD//OXA//zlwP/85cD//OXA/+/Twv/Qq8f/u5HK/7OGzP+zhsz/u5HK/9Crx//v08L//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA/+3Vr/++pHr+vaN5+LeXbyAAAAAAAAAAALuheJa+pHr/1LuS//zlwP/85cD//OXA//zlwP/85cD//OXA//riwP/Pq8f/r4HM/6+Bzf+vgc3/r4HN/6+Bzf+vgc3/r4HN/6+BzP/Pq8f/+uLA//zlwP/85cD//OXA//zlwP/85cD//OXA/9S5kv++pHr/u6F4lgAAAACii3MLvKF4876kev/y2rX//OXA//zlwP/85cD//OXA//zlwP/64sD/w5vJ/6+Bzf+vg83/w5vc/9W06v/dwPD/3cDw/9W06v/Dm9z/r4PN/6+Bzf/Dm8n/+uLA//zlwP/85cD//OXA//zlwP/85cD/8tq1/76kev+8oXjzootzC72feFW+pHr/y7GJ//zlwP/85cD//OXA//zlwP/85cD//OXA/8+rx/+vgc3/tIfQ/9a16//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//Wtev/tIfQ/6+Bzf/Pq8f//OXA//zlwP/85cD//OXA//zlwP/85cD/y7GJ/76kev+9n3hVvaF4mL6kev/fxZ7//OXA//zlwP/85cD//OXA//zlwP/v08L/r4HM/6+Dzf/Wtev/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//Wtev/r4PN/6+BzP/v08L//OXA//zlwP/85cD//OXA//zlwP/fxZ7/vqR6/72heJi8oXfIvqR6/+zUrv/85cD//OXA//zlwP/85cD//OXA/9Crx/+vgc3/w5vc/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//Dm9z/r4HN/9Crx//85cD//OXA//zlwP/85cD//OXA/+zUrv++pHr/vKF3yL2jeOq+pHr/9t25//zlwP/85cD//OXA//zlwP/85cD/u5HK/6+Bzf/VtOr/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/9W06v+vgc3/u5HK//zlwP/85cD//OXA//zlwP/85cD/9t25/76kev+9o3jqvaF4+b6kev/64r7//OXA//zlwP/85cD//OXA//zlwP+zhsz/r4HN/93A8P/hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/3cDw/6+Bzf+zhsz//OXA//zlwP/85cD//OXA//zlwP/64r7/vqR6/72hePm9oXj5vqR6//rivv/85cD//OXA//zlwP/85cD//OXA/7OGzP+vgc3/3cDw/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//dwPD/r4HN/7OGzP/85cD//OXA//zlwP/85cD//OXA//rivv++pHr/vaF4+b2jeOq+pHr/9t25//zlwP/85cD//OXA//zlwP/85cD/u5HK/6+Bzf/VtOr/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/9W06v+vgc3/u5HK//zlwP/85cD//OXA//zlwP/85cD/9t25/76kev+9o3jqvKF3yL6kev/s1K7//OXA//zlwP/85cD//OXA//zlwP/Qq8f/r4HN/8Ob3P/hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/w5vc/6+Bzf/Qq8f//OXA//zlwP/85cD//OXA//zlwP/s1K7/vqR6/7yhd8i9oXiYvqR6/9/Fnv/85cD//OXA//zlwP/85cD//OXA/+/Twv+vgcz/r4PN/9a16//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/9a16/+vg83/r4HM/+/Twv/85cD//OXA//zlwP/85cD//OXA/9/Fnv++pHr/vaF4mL2feFW+pHr/y7GJ//zlwP/85cD//OXA//zlwP/85cD//OXA/8+rx/+vgc3/tIfQ/9a16//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//Wtev/tIfQ/6+Bzf/Pq8f//OXA//zlwP/85cD//OXA//zlwP/85cD/y7GJ/76kev+9n3hVootzC7yhePO+pHr/8tq1//zlwP/85cD//OXA//zlwP/85cD/+uLA/8Obyf+vgc3/r4PN/8Ob3P/VtOr/3cDw/93A8P/VtOr/w5vc/6+Dzf+vgc3/w5vJ//riwP/85cD//OXA//zlwP/85cD//OXA//Latf++pHr/vKF486KLcwsAAAAAu6N3l76kev/Uu5L//OXA//zlwP/85cD//OXA//zlwP/85cD/+uLA/8+rx/+vgcz/r4HN/6+Bzf+vgc3/r4HN/6+Bzf+vgc3/r4HM/8+rx//64sD//OXA//zlwP/85cD//OXA//zlwP/85cD/1LmS/76kev+7oXiWAAAAAAAAAAC3l28gvaN5+L6kev7t1a///OXA//zlwP/85cD//OXA//zlwP/85cD//OXA/+/Twv/Qq8f/u5HK/7OGzP+zhsz/u5HK/9Crx//v08L//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA/+3Vr/++pHr+vaN5+LeXbyAAAAAAAAAAAAAAAAC6oneCvqR6/8Wsg//54Lz//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/34Lz/xayD/76kev+6oneCAAAAAAAAAAAAAAAAAAAAAH9/VQa8oHjLvqR6/8yyiv/64r7//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD/+uK+/8yyiv++pHr/vKB4y39/VQYAAAAAAAAAAAAAAAAAAAAAAAAAALKhbh67o3nkvqR6/8yyiv/54Lz//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//ngvP/Msor/vqR6/7ujeeSyoW4eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALqbdim7o3nkvqR6/8Wsg//t1a///OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/t1a//xayD/76kev+7o3nkupt2KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALKhbh68oHjLvqR6/76kev7Uu5L/8tq1//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/y2rX/1LmS/76kev6+pHr/vKB4y7Khbh4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH9/VQa6oneCvaN5+L6kev++pHr/y7GJ/9/Fnv/s1K7/9t25//rivv/64r7/9t25/+zUrv/fxZ7/y7GJ/76kev++pHr/vaN5+Lqid4J/f1UGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3l28gu6F4lryhePO+pHr/vqR6/76kev++pHr/vqR6/76kev++pHr/vqR6/76kev++pHr/vKF487uheJa3l28gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAootzC72feFW9oXiYvKF3yL2jeOq9oXj5vaF4+b2jeOq8oXfIvaF4mL2feFWii3MLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/gB///gAH//gAAf/wAAD/4AAAf8AAAD+AAAAfAAAADwAAAA4AAAAGAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAABwAAAA8AAAAPgAAAH8AAAD/gAAB/8AAA//gAAf/+AAf//4Af/
<<<
Your miles won’t expire as long as you have qualifying activity at least once every 18 months. Expiration is set at 18 months from the most recent qualifying activity date.
<<<
The activity feed is best for sharing opinions on something. To make best use of it create a tiddler and tag it with a username you would like to share thought with on this subject.
For instance I might create a tiddler called [[Animal I'd least like to be stuck in a cage with]]. I might say
<<<
I would least like to be stuck in a cage with a lion as it could tear me apart amongst other reasons.
<<<
I then tag it @matias to get @matias's attention to see what he think. This flags it in @matias's activity feed and tells him that I am interested in his thoughts. Of course @matias can ignore it, and if he is not using the activity feed feature he may not even know about the message. If he wants to respond all @matias then has to do is create his own tiddler [[Animal I'd least like to be stuck in a cage with]]. Matias might say
<<<
A lion would be not as bad as a great white shark... not only would you be stuck in a cage with it but you would be underwater with a likelihood of drowning to increase suffering.
<<<
It's not over yet.. now I can refine my original post with the thoughts of Matias. I might think mm, @matias has got a point there with the water, but I think a crocodile would more likely eat me then a great white shark and I fancy my chances with the great white.
I then update my tiddler to say
<<<
I would least like to be stuck in a cage with a crocodile as it could tear me apart amongst other reasons. A lion would also be scary however I'm not a good swimmer so would be less likely to be able to make an escape. A crocodile is worse than a shark as shark attacks on humans are rare, so I'd fancy my chances.
<<<
We continue replying this way revising our tiddlers till the process finishes and I have a tiddler which clearly explains the [[Animal I'd least like to be stuck in a cage with]] with very detailed reasoning.
CACHE MANIFEST
# version 0.6.3
CACHE:
/takenote
/dashboard
/bags/common/tiddlers/jquery-ui.custom.css
/bags/common/tiddlers/jquery-ui.custom.js
/notabene.css
/notabene.js
/bags/common/tiddlers/jquery-json.js
/bags/common/tiddlers/jquery.js
/bags/tiddlyspace/tiddlers/chrjs
/bags/common/tiddlers/chrjs-store.js
/touchicon_takenote.png
/bags/common/tiddlers/cancelTiddler.png
/bags/common/tiddlers/saveTiddler.png
/bags/common/tiddlers/deleteTiddler.png
/bags/common/tiddlers/HtmlBackground
/bags/common/tiddlers/icon-search.png
/bags/common/tiddlers/icon-incomplete.png
/bags/common/tiddlers/icon-recent.png
/bags/common/tiddlers/bookmark_bubble.js
NETWORK:
*
love TiddlySpace as a tool for #aggregation - look forward to insights from this #experiment of yours!
What is happening here on TiddlySpace is absolutely fascinating - it is the interaction of [[Possibility]] with [[Reality]]
Said more concretely, [[Possibility]] created DanceLabs and much work has been put into ReverseEngineering the organization based on WhatHappened in various contexts. This has in turn produced a set of [[Distinctions]] that defines DanceLabs which now becomes a [[Framework]] for DanceChalat to "speak" inside of - to share WhatHappened in [[Thailand]] and make what is effectively a [[Blueprint]] become real for people. The more we link these [[Concepts]] to AudioVisualAids like [[Games]], [[Video]], [[Workshops]], etc. the more it becomes an interactive (ie. real) experience for people.
DanceChalat has the opportunity to be a ModelCommunity through Discourse and effectively refine the DanceLabs [[Blueprint]] further. This in turn be used by other DanceLabs programs to define their realities to the point where new realities can be created and sourced without [[Experimentation]]
The [[Blueprint]] becomes a [[Collaboration]] and a NetworkOfConversations which exists out there in the world.
This is the manner in which DanceLabs wishes to be a [[Contribution]]!
Special thanks to EuphoriaLovesRawvolution in SantaMonica for this inspiration!
# CollardGreens
# [[Nori]]
# AlfalfaSprouts
# [[Avocado]]
# GreenOnions
# RedOnions
# [[Olives]]
# [[Cilantro]]
tastes great with MangoGingerDressing!
/***
|''Name''|BinaryUploadPlugin|
|''Version''|0.3.16|
|''Author''|Ben Gillies and Jon Robson|
|''Type''|plugin|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/BinaryUploadPlugin.js|
|''Description''|Upload a binary file to TiddlyWeb|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlySpaceConfig TiddlyWebConfig|
!Usage
{{{
<<binaryUpload bag:<name> edit:tags edit:title tags:<default tags> title:<title> >>
}}}
* {{{bag:<name>}}}: optional; if left out, the file will be saved to the current workspace
* {{{edit:tags}}}: specifies that you want to tag the file being uploaded
* {{{edit:title}}}: specifies that you want to set the title to something other than the filename
* {{{tags:<default tags>}}}: specifies a default set of tags to apply to the file (requires {{{edit:tags}}} to be set)
* {{{title:<title>}}}: predefines the title of the binary tiddler
!Requires
TiddlyWeb
tiddlywebplugins.form
!Code
***/
//{{{
(function($) {
var tiddlyspace = config.extensions.tiddlyspace;
var macro = config.macros.binaryUpload = {
locale: {
titleDefaultValue: "Please enter a title...",
tagsDefaultValue: "Please enter some tags...",
titlePrefix: "title: ",
tagsPrefix: "tags: ",
loadSuccess: 'Tiddler %0 successfully uploaded',
loadError: "An error occurred when uploading the tiddler %0",
uploadInProgress: "Please wait while the file is uploaded...",
membersOnly: "Only members can upload."
},
renderInputFields: function(container, options) {
var locale = macro.locale;
var editableFields = options.edit;
var includeFields = {
tags: editableFields && editableFields.contains("tags") ? true : false,
title: editableFields && editableFields.contains("title") ? true : false
};
var fields = ["title", "tags"];
for(var i = 0; i < fields.length; i++) {
var fieldName = fields[i];
var userDefault = options[fieldName];
var defaultValue = userDefault ? userDefault[0] : false;
if(includeFields[fieldName] || defaultValue) {
var localeDefault = locale["%0DefaultValue".format(fieldName)];
var className = defaultValue ? "userInput" : "userInput notEdited";
var inputEl;
var val = defaultValue || localeDefault || "";
var iContainer = $("<div />").addClass("binaryUpload%0".format(fieldName)).
appendTo(container);
if(defaultValue && !includeFields[fieldName]) {
var label = locale["%0Prefix".format(fieldName)];
$("<span />").text(label).appendTo(iContainer);
$("<span />").addClass("disabledInput").text(val).appendTo(iContainer);
inputEl = $("<input />").attr("type", "hidden");
} else {
inputEl = $("<input />").attr("type", "text");
}
inputEl.attr("name", fieldName).
addClass("%0Edit".format(fieldName)).
val(val).addClass(className).appendTo(iContainer);
}
}
},
getTiddlerName: function(fileName) {
var fStart = fileName.lastIndexOf("\\");
var fStart2 = fileName.lastIndexOf("/");
fStart = fStart < fStart2 ? fStart2 : fStart;
fileName = fileName.substr(fStart+1);
return fileName;
},
errorHandler: function(fileName) {
displayMessage("upload of file %0 failed".format(fileName));
},
uploadFile: function(place, baseURL, workspace, options) {
var pleaseWait = $(".uploadProgress", place);
var iframeName = options.target;
var form = $("form", place);
var existingVal = $("input[name=title]", form).val();
var fileName = existingVal || $('input:file', form).val();
if(!fileName) {
return false; // the user hasn't selected a file yet
}
fileName = macro.getTiddlerName(fileName);
$("input[name=title]", place).val(fileName);
// we need to go somewhere afterwards to ensure the onload event triggers
var redirectTo = "/%0/tiddlers.txt?select=title:%1".
format(workspace, fileName);
var token = tiddlyspace ? tiddlyspace.getCSRFToken() : "";
var action = "%0?csrf_token=%1&redirect=%2"
.format(baseURL, token, redirectTo);
form[0].action = action; // dont use jquery to work with ie
form[0].target = iframeName;
// do not refactor following line... won't work in IE6 otherwise
$(place).append($('<iframe name="' + iframeName + '" id="' + iframeName + '"/>').css('display','none'));
macro.iFrameLoader(iframeName, function() {
var content = document.getElementById(iframeName).contentWindow.document.documentElement;
if($(content).text().indexOf(fileName) > -1) {
options.callback(place, fileName, workspace, baseURL);
} else {
macro.errorHandler(fileName);
}
form.show(1000);
pleaseWait.hide(1000);
});
form.hide(1000);
pleaseWait.show(1000);
return true;
},
createUploadForm: function(place, options) {
var locale = macro.locale;
if(readOnly) {
$('<div class="annotation" />').text(locale.membersOnly).
appendTo(place);
return;
}
var bag = options.bag;
options.callback = options.callback ? options.callback :
function(place, fileName, workspace, baseurl) {
macro.displayFile(place, fileName, workspace);
displayMessage(locale.loadSuccess.format(fileName));
$("input[type=text]", place).val("");
};
var defaults = config.defaultCustomFields;
place = $("<div />").addClass("container").appendTo(place)[0];
var workspace = bag ? "bags/%0".format(bag) : config.defaultCustomFields["server.workspace"];
var baseURL = defaults["server.host"];
baseURL += (baseURL[baseURL.length - 1] !== "/") ? "/" : "";
baseURL = "%0%1/tiddlers".format(baseURL, workspace);
//create the upload form, complete with invisible iframe
var iframeName = "binaryUploadiframe%0".format(Math.random());
// do not refactor following line of code to work in IE6.
var form = $('<form action="%0" method="POST" enctype="multipart/form-data" />'.
format(baseURL)).addClass("binaryUploadForm").
appendTo(place)[0];
macro.renderInputFields(form, options);
$(form).
append('<div class="binaryUploadFile"><input type="file" name="file" /></div>').
append('<div class="binaryUploadSubmit"><input type="submit" value="Upload" disabled /></div>').
submit(function(ev) {
this.target = iframeName;
options.target = iframeName;
macro.uploadFile(place, baseURL, workspace, options);
})
.find('[type="file"]').bind('change', function() {
$(form).find('[type="submit"]').prop('disabled', false);
}).end();
$('<div />').addClass("uploadProgress").text(locale.uploadInProgress).hide().appendTo(place);
$("input[name=file]", place).change(function(ev) {
var target = $(ev.target);
var fileName = target.val();
var title = $("input[type=text][name=title]", place);
if(!title.val()) {
title.val(fileName);
}
});
},
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
params = paramString.parseParams(null, null, true);
macro.createUploadForm(place, params[0]);
},
iFrameLoader: function(iframeName, callback) {
var iframe = document.getElementById(iframeName); //jQuery doesn't seem to want to do this!?
var locale = macro.locale;
$(".userInput").addClass("notEdited"); // reset editing
var finishedLoading = function() {
callback();
};
var iFrameLoadHandler = function() {
finishedLoading.apply();
return;
};
iframe.onload = iFrameLoadHandler;
//IE
completeReadyStateChanges = 0;
iframe.onreadystatechange = function() {
if (++(completeReadyStateChanges) == 3) {
iFrameLoadHandler();
}
};
},
displayFile: function(place, title, workspace) {
var adaptor = store.getTiddlers()[0].getAdaptor();
var context = {
workspace: workspace,
host: config.defaultCustomFields['server.host']
};
adaptor.getTiddler(title, context, null, function(context) {
if(context.status) {
store.addTiddler(context.tiddler);
story.displayTiddler(place, title);
var image = config.macros.image;
if(image && image.refreshImage) {
image.refreshImage("/%0/tiddlers/%1".format(workspace, title));
image.refreshImage(title);
image.refreshImage("/%0".format(title));
image.refreshImage("%0/%1/tiddlers/%2".format(config.extensions.tiddlyweb.host, workspace, title));
}
} else {
displayMessage(macro.locale.loadError.format(title));
}
});
}
};
if(tiddlyspace) {
config.macros.binaryUploadPublic = {
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var options = paramString.parseParams(null, null, true)[0];
var bag = tiddlyspace.getCurrentBag("public");
options.bag = bag;
macro.createUploadForm(place, options);
}
};
config.messages.privacySetting = config.options.chkPrivateMode ?
"private" : "public";
config.macros.binaryUpload.defaultWorkspace = tiddlyspace.
getCurrentWorkspace(config.messages.privacySetting);
}
})(jQuery);
//}}}
In order to preserve the spirit of gifting, our community seeks to create social environments that are unmediated by commercial sponsorships, transactions, or advertising. We stand ready to protect our culture from such exploitation. We resist the substitution of consumption for participatory experience.
<<activity show:reply show:notify>>
http://www.truthaboutdeception.com/relationship-issues/forming-attachments.html
YetAnotherToy! Looks like the folks at [[Cydia]] have released a service to replace my existing voicemail service on T-Mobile (which I haven't been using for months because I've been forwarding to GoogleVoice which I will unleash temporarily while I test YouMail service out)
I find the following types of forwards curious...
* Voice Call
* Data Call
* Fax Call
* SMS Call
* Sync Data Circuit Call
* Async Data Circuit Call
* Packet Access Call
* Pad Access Call
umm - this goes to show how [[ignorant|Ignorance]] I am about [[Telephony]]! If some DomainExpert could distinguish each of the above, that'd be great :)
/***
|Name|SearchOptionsPlugin|
|Source|http://www.TiddlyTools.com/#SearchOptionsPlugin|
|Documentation|http://www.TiddlyTools.com/#SearchOptionsPluginInfo|
|Version|3.0.10|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|extend core search function with additional user-configurable options|
Adds extra options to core search function including selecting which data items to search, enabling/disabling incremental key-by-key searches, and generating a ''list of matching tiddlers'' instead of immediately displaying all matches. This plugin also adds syntax for rendering 'search links' within tiddler content to embed one-click searches using pre-defined 'hard-coded' search terms.
!!!!!Documentation
>see [[SearchOptionsPluginInfo]]
!!!!!Configuration
<<<
<<tiddler SearchOptions>>
<<option chkSearchResultsOptions>> Include {{{options...}}} slider in "search again" form
<<<
!!!!!Revisions
<<<
2011.04.08 3.0.10 fixed typo in CSS in formatSearchResults_buttons(). Restore missing options in Configuration section.
|please see [[SearchOptionsPluginInfo]] for additional revision details|
2005.10.18 1.0.0 Initial Release
<<<
!!!!!Code
***/
//{{{
version.extensions.SearchOptionsPlugin= {major: 3, minor: 0, revision: 10, date: new Date(2011,3,18)};
//}}}
//{{{
var defaults={
chkSearchTitles: true,
chkSearchText: true,
chkSearchTags: true,
chkSearchFields: true,
chkSearchTitlesFirst: true,
chkSearchList: true,
chkSearchHighlight: true,
chkSearchListTiddler: false,
chkSearchByDate: false,
chkIncrementalSearch: true,
chkSearchShadows: true,
chkSearchOpenTiddlers: false,
chkSearchResultsOptions:true,
chkSearchExcludeTags: true,
txtSearchExcludeTags: 'excludeSearch',
txtIncrementalSearchDelay: 500,
txtIncrementalSearchMin: 3
}; for (var id in defaults) if (config.options[id]===undefined)
config.options[id]=defaults[id];
if (config.macros.search.reportTitle==undefined)
config.macros.search.reportTitle="SearchResults"; // note: not a cookie!
config.macros.search.label+="\xa0"; // a little bit of space just because it looks better
//}}}
// // searchLink: {{{[search[text to find]] OR [search[text to display|text to find]]}}}
//{{{
config.formatters.push( {
name: "searchLink",
match: "\\[search\\[",
lookaheadRegExp: /\[search\[(.*?)(?:\|(.*?))?\]\]/mg,
prompt: "search for: '%0'",
handler: function(w)
{
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
var label=lookaheadMatch[1];
var text=lookaheadMatch[2]||label;
var prompt=this.prompt.format([text]);
var btn=createTiddlyButton(w.output,label,prompt,
function(){story.search(this.getAttribute("searchText"))},"searchLink");
btn.setAttribute("searchText",text);
w.nextMatch = this.lookaheadRegExp.lastIndex;
}
}
});
//}}}
// // incremental search uses option settings instead of hard-coded delay and minimum input values
//{{{
var fn=config.macros.search.onKeyPress;
fn=fn.toString().replace(/500/g, "config.options.txtIncrementalSearchDelay||500");
fn=fn.toString().replace(/> 2/g, ">=(config.options.txtIncrementalSearchMin||3)");
eval("config.macros.search.onKeyPress="+fn);
//}}}
// // REPLACE story.search() for option to "show search results in a list"
//{{{
Story.prototype.search = function(text,useCaseSensitive,useRegExp)
{
var co=config.options; // abbrev
var re=new RegExp(useRegExp ? text : text.escapeRegExp(),useCaseSensitive ? "mg" : "img");
if (config.options.chkSearchHighlight) highlightHack=re;
var matches = store.search(re,co.chkSearchByDate?"modified":"title","");
if (co.chkSearchByDate) matches=matches.reverse(); // most recent first
var q = useRegExp ? "/" : "'";
clearMessage();
if (!matches.length) {
if (co.chkSearchListTiddler) discardSearchResults();
displayMessage(config.macros.search.failureMsg.format([q+text+q]));
} else {
if (co.chkSearchList||co.chkSearchListTiddler)
reportSearchResults(text,matches);
else {
var titles = []; for(var t=0; t<matches.length; t++) titles.push(matches[t].title);
this.closeAllTiddlers(); story.displayTiddlers(null,titles);
displayMessage(config.macros.search.successMsg.format([matches.length, q+text+q]));
}
}
highlightHack = null;
}
//}}}
// // REPLACE store.search() for enhanced searching/sorting options
//{{{
TiddlyWiki.prototype.search = function(searchRegExp,sortField,excludeTag,match)
{
var co=config.options; // abbrev
var tids = this.reverseLookup("tags",excludeTag,!!match,sortField);
var opened=[]; story.forEachTiddler(function(tid,elem){opened.push(tid);});
// eliminate tiddlers tagged with excluded tags
if (co.chkSearchExcludeTags&&co.txtSearchExcludeTags.length) {
var ex=co.txtSearchExcludeTags.readBracketedList();
var temp=[]; for(var t=tids.length-1; t>=0; t--)
if (!tids[t].tags.containsAny(ex)) temp.push(tids[t]);
tids=temp;
}
// scan for matching titles first...
var results = [];
if (co.chkSearchTitles) {
for(var t=0; t<tids.length; t++) {
if (co.chkSearchOpenTiddlers && !opened.contains(tids[t].title)) continue;
if(tids[t].title.search(searchRegExp)!=-1) results.push(tids[t]);
}
if (co.chkSearchShadows)
for (var t in config.shadowTiddlers) {
if (co.chkSearchOpenTiddlers && !opened.contains(t)) continue;
if ((t.search(searchRegExp)!=-1) && !store.tiddlerExists(t))
results.push((new Tiddler()).assign(t,config.shadowTiddlers[t]));
}
}
// then scan for matching text, tags, or field data
for(var t=0; t<tids.length; t++) {
if (co.chkSearchOpenTiddlers && !opened.contains(tids[t].title)) continue;
if (co.chkSearchText && tids[t].text.search(searchRegExp)!=-1)
results.pushUnique(tids[t]);
if (co.chkSearchTags && tids[t].tags.join(" ").search(searchRegExp)!=-1)
results.pushUnique(tids[t]);
if (co.chkSearchFields && store.forEachField!=undefined)
store.forEachField(tids[t],
function(tid,field,val) {
if (val.search(searchRegExp)!=-1) results.pushUnique(tids[t]);
},
true); // extended fields only
}
// then check for matching text in shadows
if (co.chkSearchShadows)
for (var t in config.shadowTiddlers) {
if (co.chkSearchOpenTiddlers && !opened.contains(t)) continue;
if ((config.shadowTiddlers[t].search(searchRegExp)!=-1) && !store.tiddlerExists(t))
results.pushUnique((new Tiddler()).assign(t,config.shadowTiddlers[t]));
}
// if not 'titles first', or sorting by modification date,
// re-sort results to so titles, text, tag and field matches are mixed together
if(!sortField) sortField = "title";
var bySortField=function(a,b){
if(a[sortField]==b[sortField])return(0);else return(a[sortField]<b[sortField])?-1:+1;
}
if (!co.chkSearchTitlesFirst || co.chkSearchByDate) results.sort(bySortField);
return results;
}
//}}}
// // HIJACK core {{{<<search>>}}} macro to add "report" and "simple inline" output
//{{{
config.macros.search.SOP_handler=config.macros.search.handler;
config.macros.search.handler = function(place,macroName,params)
{
// if "report", use SearchOptionsPlugin report generator for inline output
if (params[1]&¶ms[1].substr(0,6)=="report") {
var keyword=params[0];
var options=params[1].split("=")[1]; // split "report=option+option+..."
var heading=params[2]?params[2].unescapeLineBreaks():"";
var matches=store.search(new RegExp(keyword.escapeRegExp(),"img"),"title","excludeSearch");
if (matches.length) wikify(heading+window.formatSearchResults(keyword,matches,options),place);
} else if (params[1]) {
var keyword=params[0];
var heading=params[1]?params[1].unescapeLineBreaks():"";
var seperator=params[2]?params[2].unescapeLineBreaks():", ";
var matches=store.search(new RegExp(keyword.escapeRegExp(),"img"),"title","excludeSearch");
if (matches.length) {
var out=[];
for (var m=0; m<matches.length; m++) out.push("[["+matches[m].title+"]]");
wikify(heading+out.join(seperator),place);
}
} else
config.macros.search.SOP_handler.apply(this,arguments);
};
//}}}
// // SearchResults panel handling
//{{{
setStylesheet(".searchResults { padding:1em 1em 0 1em; }","searchResults"); // matches std tiddler padding
config.macros.search.createPanel=function(text,matches,body) {
function getByClass(e,c) { var d=e.getElementsByTagName("div");
for (var i=0;i<d.length;i++) if (hasClass(d[i],c)) return d[i]; }
var panel=createTiddlyElement(null,"div","searchPanel","searchPanel");
this.renderPanel(panel,text,matches,body);
var oldpanel=document.getElementById("searchPanel");
if (!oldpanel) { // insert new panel just above tiddlers
var da=document.getElementById("displayArea");
da.insertBefore(panel,da.firstChild);
} else { // if panel exists
var oldwrap=getByClass(oldpanel,"searchResults");
var newwrap=getByClass(panel,"searchResults");
// if no prior content, just insert new content
if (!oldwrap) oldpanel.insertBefore(newwrap,null);
else { // swap search results content but leave containing panel intact
oldwrap.style.display='block'; // unfold wrapper if needed
var i=oldwrap.getElementsByTagName("input")[0]; // get input field
if (i) { var pos=this.getCursorPos(i); i.onblur=null; } // get cursor pos, ignore blur
oldpanel.replaceChild(newwrap,oldwrap);
panel=oldpanel; // use existing panel
}
}
this.showPanel(true,pos);
return panel;
}
config.macros.search.renderPanel=function(panel,text,matches,body) {
var wrap=createTiddlyElement(panel,"div",null,"searchResults");
wrap.onmouseover = function(e){ addClass(this,"selected"); }
wrap.onmouseout = function(e){ removeClass(this,"selected"); }
// create toolbar: "open all", "fold/unfold", "close"
var tb=createTiddlyElement(wrap,"div",null,"toolbar");
var b=createTiddlyButton(tb, "open all", "open all matching tiddlers", function() {
story.displayTiddlers(null,this.getAttribute("list").readBracketedList()); return false; },"button");
var list=""; for(var t=0;t<matches.length;t++) list+='[['+matches[t].title+']] ';
b.setAttribute("list",list);
var b=createTiddlyButton(tb, "fold", "toggle display of search results", function() {
config.macros.search.foldPanel(this); return false; },"button");
var b=createTiddlyButton(tb, "close", "dismiss search results", function() {
config.macros.search.showPanel(false); return false; },"button");
createTiddlyText(createTiddlyElement(wrap,"div",null,"title"),"Search for: "+text); // title
wikify(body,createTiddlyElement(wrap,"div",null,"viewer")); // report
return panel;
}
config.macros.search.showPanel=function(show,pos) {
var panel=document.getElementById("searchPanel");
var i=panel.getElementsByTagName("input")[0];
i.onfocus=show?function(){config.macros.search.stayFocused(true);}:null;
i.onblur=show?function(){config.macros.search.stayFocused(false);}:null;
if (show && panel.style.display=="block") { // if shown, grab focus, restore cursor
if (i&&this.stayFocused()) { i.focus(); this.setCursorPos(i,pos); }
return;
}
if(!config.options.chkAnimate) {
panel.style.display=show?"block":"none";
if (!show) { removeChildren(panel); config.macros.search.stayFocused(false); }
} else {
var s=new Slider(panel,show,false,show?"none":"children");
s.callback=function(e,p){e.style.overflow="visible";}
anim.startAnimating(s);
}
return panel;
}
config.macros.search.foldPanel=function(button) {
var d=document.getElementById("searchPanel").getElementsByTagName("div");
for (var i=0;i<d.length;i++) if (hasClass(d[i],"viewer")) var v=d[i]; if (!v) return;
var show=v.style.display=="none";
if(!config.options.chkAnimate)
v.style.display=show?"block":"none";
else {
var s=new Slider(v,show,false,"none");
s.callback=function(e,p){e.style.overflow="visible";}
anim.startAnimating(s);
}
button.innerHTML=show?"fold":"unfold";
return false;
}
config.macros.search.stayFocused=function(keep) { // TRUE/FALSE=set value, no args=get value
if (keep===undefined) return this.keepReportInFocus;
this.keepReportInFocus=keep;
return keep
}
config.macros.search.getCursorPos=function(i) {
var s=0; var e=0; if (!i) return { start:s, end:e };
try {
if (i.setSelectionRange) // FF
{ s=i.selectionStart; e=i.selectionEnd; }
if (document.selection && document.selection.createRange) { // IE
var r=document.selection.createRange().duplicate();
var len=r.text.length; s=0-r.moveStart('character',-100000); e=s+len;
}
}catch(e){};
return { start:s, end:e };
}
config.macros.search.setCursorPos=function(i,pos) {
if (!i||!pos) return; var s=pos.start; var e=pos.end;
if (i.setSelectionRange) //FF
i.setSelectionRange(s,e);
if (i.createTextRange) // IE
{ var r=i.createTextRange(); r.collapse(true); r.moveStart("character",s); r.select(); }
}
//}}}
// // SearchResults report generation
// note: these functions are defined globally, so they can be more easily redefined to customize report formats//
//{{{
if (!window.reportSearchResults) window.reportSearchResults=function(text,matches)
{
var cms=config.macros.search; // abbrev
var body=window.formatSearchResults(text,matches);
if (!config.options.chkSearchListTiddler) // show #searchResults panel
window.scrollTo(0,ensureVisible(cms.createPanel(text,matches,body)));
else { // write [[SearchResults]] tiddler
var title=cms.reportTitle;
var who=config.options.txtUserName;
var when=new Date();
var tags="excludeLists excludeSearch temporary";
var tid=store.getTiddler(title); if (!tid) tid=new Tiddler();
tid.set(title,body,who,when,tags);
store.addTiddler(tid);
story.closeTiddler(title);
story.displayTiddler(null,title);
}
}
if (!window.formatSearchResults) window.formatSearchResults=function(text,matches,opt)
{
var body='';
var title=config.macros.search.reportTitle
var q = config.options.chkRegExpSearch ? "/" : "'";
if (!opt) var opt="all";
var parts=opt.split("+");
for (var i=0; i<parts.length; i++) { var p=parts[i].toLowerCase();
if (p=="again"||p=="all") body+=window.formatSearchResults_again(text,matches);
if (p=="summary"||p=="all") body+=window.formatSearchResults_summary(text,matches);
if (p=="list"||p=="all") body+=window.formatSearchResults_list(text,matches);
if (p=="buttons"||p=="all") body+=window.formatSearchResults_buttons(text,matches);
}
return body;
}
if (!window.formatSearchResults_again) window.formatSearchResults_again=function(text,matches)
{
var title=config.macros.search.reportTitle
var body='';
// search again
body+='{{span{<<search "'+text.replace(/"/g,'"')+'">> /%\n';
body+='%/<html><input type="button" value="search again"';
body+=' onclick="var t=this.parentNode.parentNode.getElementsByTagName(\'input\')[0];';
body+=' config.macros.search.doSearch(t); return false;">';
if (!config.options.chkSearchResultsOptions) // omit "options..."
body+='</html>';
else {
body+=' <a href="javascript:;" onclick="';
body+=' var e=this.parentNode.nextSibling;';
body+=' var show=e.style.display!=\'block\';';
body+=' if(!config.options.chkAnimate) e.style.display=show?\'block\':\'none\';';
body+=' else anim.startAnimating(new Slider(e,show,false,\'none\'));';
body+=' return false;">options...</a>';
body+='</html>@@display:none;border-left:1px dotted;margin-left:1em;padding:0;padding-left:.5em;font-size:90%;/%\n';
body+=' %/<<tiddler SearchOptions>>@@';
};
body+='}}}\n\n';
return body;
}
if (!window.formatSearchResults_summary) window.formatSearchResults_summary=function(text,matches)
{
// summary: nn tiddlers found matching '...', options used
var body='';
var co=config.options; // abbrev
var title=config.macros.search.reportTitle
var q = co.chkRegExpSearch ? "/" : "'";
body+="''"+config.macros.search.successMsg.format([matches.length,q+"{{{"+text+"}}}"+q])+"''\n";
var opts=[];
if (co.chkSearchTitles) opts.push("titles");
if (co.chkSearchText) opts.push("text");
if (co.chkSearchTags) opts.push("tags");
if (co.chkSearchFields) opts.push("fields");
if (co.chkSearchShadows) opts.push("shadows");
if (co.chkSearchOpenTiddlers) body+="^^//search limited to displayed tiddlers only//^^\n";
body+="~~ searched in "+opts.join(" + ")+"~~\n";
body+=(co.chkCaseSensitiveSearch||co.chkRegExpSearch?"^^ using ":"")
+(co.chkCaseSensitiveSearch?"case-sensitive ":"")
+(co.chkRegExpSearch?"pattern ":"")
+(co.chkCaseSensitiveSearch||co.chkRegExpSearch?"matching^^\n":"");
return body;
}
if (!window.formatSearchResults_list) window.formatSearchResults_list=function(text,matches)
{
// bullet list of links to matching tiddlers
var body='';
var co=config.options; // abbrev
var pattern=co.chkRegExpSearch?text:text.escapeRegExp();
var sensitive=co.chkCaseSensitiveSearch?"mg":"img";
var link='{{tiddlyLinkExisting{<html><nowiki><a href="javascript:;" onclick="'
+'if(config.options.chkSearchHighlight)'
+' highlightHack=new RegExp(\x27'+pattern+'\x27.escapeRegExp(),\x27'+sensitive+'\x27);'
+'story.displayTiddler(null,\x27%0\x27);'
+'highlightHack = null; return false;'
+'" title="%2">%1</a></html>}}}';
for(var t=0;t<matches.length;t++) {
body+="* ";
if (co.chkSearchByDate)
body+=matches[t].modified.formatString('YYYY.0MM.0DD 0hh:0mm')+" ";
var title=matches[t].title;
var fixup=title.replace(/'/g,"\\x27").replace(/"/g,"\\x22");
var tid=store.getTiddler(title);
var tip=tid?tid.getSubtitle():''; tip=tip.replace(/"/g,""");
body+=link.format([fixup,title,tip])+'\n';
}
return body;
}
if (!window.formatSearchResults_buttons) window.formatSearchResults_buttons=function(text,matches)
{
// embed buttons only if writing SearchResults to tiddler
if (!config.options.chkSearchListTiddler) return "";
// "open all" button
var title=config.macros.search.reportTitle;
var body="";
body+="@@display:block;<html><input type=\"button\" href=\"javascript:;\" "
+"onclick=\"story.displayTiddlers(null,[";
for(var t=0;t<matches.length;t++)
body+="'"+matches[t].title.replace(/\'/mg,"\\'")+"'"+((t<matches.length-1)?", ":"");
body+="],1);\" accesskey=\"O\" value=\"open all matching tiddlers\"></html> ";
// "discard SearchResults" button
body+="<html><input type=\"button\" href=\"javascript:;\" "
+"onclick=\"discardSearchResults()\" value=\"discard "+title+"\"></html>";
body+="@@\n";
return body;
}
if (!window.discardSearchResults) window.discardSearchResults=function()
{
// remove the tiddler
story.closeTiddler(config.macros.search.reportTitle);
store.deleteTiddler(config.macros.search.reportTitle);
store.notify(config.macros.search.reportTitle,true);
}
//}}}
// // DELIVER [[SearchOptions]] shadow payload
//{{{
config.shadowTiddlers.SearchOptions = store.getTiddlerText('SearchOptionsPlugin##panel','');
config.annotations.SearchOptions = 'created by SearchOptionsPlugin';
//}}}
/***
//{{{
!panel
search in:
{{nowrap{<<option chkSearchTitles>>titles <<option chkSearchText>>text <<option chkSearchTags>>tags}}} /%
%/{{nowrap{<<option chkSearchFields>>fields <<option chkSearchShadows>>shadows}}}
----
{{nowrap{<<option chkCaseSensitiveSearch>>case-sensitive}}} /%
%/{{nowrap{<<option chkRegExpSearch>>match text patterns}}}
{{nowrap{<<option chkIncrementalSearch>>key-by-key search:}}} /%
%/{{threechar smallform nowrap{<<option txtIncrementalSearchMin>> or more characters}}} /%
%/{{threechar smallform nowrap{<<option txtIncrementalSearchDelay>> msec delay}}}<hr>
{{nowrap{<<option chkSearchList>>show results in a list }}} /%
%/{{nowrap{<<option chkSearchListTiddler>>save list in ''[[SearchResults]]''}}}
{{nowrap{<<option chkSearchTitlesFirst>>show title matches first}}} /%
%/{{nowrap{<<option chkSearchByDate>>sort results by date}}} /%
%/{{nowrap{<<option chkSearchHighlight>>highlight matching text}}}
----
{{nowrap{<<option chkSearchOpenTiddlers>>search open tiddlers only}}}
{{nowrap{<<option chkSearchExcludeTags>>exclude tiddlers tagged with:}}}
{{editor{<<option txtSearchExcludeTags>>}}}
!end
//}}}
***/
Plugging into TheMatrix at 6:23am. I can't wait for these tiddlers to be AutomaticallyProcessed. The ideal implementation is to enable someone to write their SteamOfConsciousness (wow this is [[a story|Stories@tiddlyspace]]) and perhaps afterwards they can annotate and/or highlight concepts of importance.
Just made my [[Journal]] entries public and while these entries are a wee bit raw for <<tag news>> - it's a place to start inside accepting my life is all about OpenNotebookScience.
-
ok - my next experiment is anything I "talk" about is stitched into my DailyJournal. the "-" will mark boundaries between updates to a DailyTiddler. One could draw parallels between this method, Twitter, and leveraging "revisions" (see gear in upper right hand corner of this tiddler) to extract this information. One issue I have right now is revisions get lost if you decide to import this tiddler to another TiddlySpace.
It's going to be interesting to refactor journal entries! (another issue is refactoring a DailyEntry in the past does shift its place in the timeline but perhaps this is ok esp if I can order <<tag Journal>> by creation date (rather than modification date)
-
I care about [[Visualization]] because I want to make the [[Autobiography]] I built in PersonalBrain a reality. I want to make the platform accessible to the masses. Everyone should have the right to get their autobiography done and not have to pay subscription fees to do something that is so life changing!
I have thoughts about whether this is really the topic of my journal submission and workshop proposal for [[CGT2012]]!
now about those thoughts I had before waking up...
the JustAnotherPerlHacker (JAPH) in me is really coming back into fruition - can't wait to learn enough JavaScript to do the job of integrating the [[ComponentsThatMatter]]!
-
the idea of a Thailand VacationCourse sounds not only wonderful but it could kill a few (a zillion!) birds w one stone!
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="72 648 70 70"
width="30" height="30">
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
<g>
<path d="M 77.59005 669.34003 C 71.532745 681.90424 73.714462 697.4441 84.135193 707.86475
C 97.315445 721.0451 118.684715 721.0451 131.8649 707.86475
C 145.04515 694.68457 145.04515 673.31537 131.8649 660.13513
C 121.4441 649.7141 105.90419 647.53253 93.339905 653.5899 L 102.047455 662.2976
C 109.58637 660.2373 117.987976 662.16803 123.90997 668.08997
C 132.69673 676.8767 132.69673 691.12317 123.90997 699.90985
C 115.12313 708.6966 100.87699 708.6966 92.09012 699.90985
C 86.168266 693.98804 84.23744 685.58643 86.297653 678.04755 Z M 72 648 L 72 668.25 L 78.75 661.49957
L 99.00019 681.7502 L 105.750175 675.00006 L 85.50013 654.75012 L 92.249985 648 Z" fill="black"
class="glyph"/>
</g>
</g>
</svg>
!empowered to approach
# SteveJobs, AppleComputer
# HughHarlan, TheBrainTechnolgoies
# LizLerman, DanceExchange
# JaredCohen, CarnegieMellonUniversity
# DaveLogan, CultureSync
# LarryHarvey, BurningManProject
# [[Sasha&Digweed]], ProfessionalDJ
# DavidAllen, DavidAllenCo. ([[GTD]])
!clear before contacting
# DanielPink, Author
# MarkZuckerburg, [[Facebook]] - organize presentation ?
# TonyHsieh, [[Zappos]] - read DeliveringHappiness
# [[Google]] - research founders
# [[Panda]] - prep opportunity
# PlanInternational - research roots
# CouncilInternationalDance, Paris - research how they could contribute to Dance Labs
# AnnaHalprin, TamalpaInstitute
# [[Thailand]]
** [[King]]
** PrimeMinister
** [[Governor]] - BKK
# ClayShirky - read HereComesEverything
p172
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/jcqrdOb-DRY" frameborder="0" allowfullscreen></iframe>
</html>
NationalDayOfUnplugging - flip the CircuitBreaker! ;-)
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/DnO18YAkdl8" frameborder="0" allowfullscreen></iframe>
</html>
I will be the first to admit that I didn't give a rat's ass about the [[Environment]] before I went to [[Thailand]] in 2003.
I'm very thankful to [[Germany]] and [[Japan]] for waking me up to [[Recycling]], Stephen with his [[Ecovillage]] (and [[Burner]]!) spirit, and Edward and StuartScott for bringing the InconvenientTurth message to Thailand during my IntroductionLeadersProgram.
I came back to the UnitedStates with a new perspective and it was a DietForANewAmerica and really hit the nail on the head - to reduce my CarbonFootprint by eating healthier? Sounded like a WinWin to me!
a question often asked, why GoogleVoice?
I've seen my dad get all kinds of SpamTexts - it's kinda annoying even though they claim you can reply and OptOut.
It's a natural progression for GoogleVoice to adopt what are WorldClass email spam filters and reapply this [[Technology]] to [[Telephony]]
our [[Household]] gets countless MarketingCalls and porting our HomeNumber to Google is definitely one way to address this issue!
if you've ever taken on life to it's fullest - you probably already know keeping your community UpToDate is a FullTimeJob in itself! You probably have discovered blogs don't quite do the trick either as it just turns you into a [[Journalist]] and [[Reporter]]!
Thus I've put on my [[Inventor]]'s hat on and for the time being, this will have a [[Pointer]] to the LatestAndGreatest!
http://goo.gl/jZ3AW
I'm beginning to have some insight into those [[Millionaires]] who get to the point in their life where they feel like they've accumulated all this [[Stuff]] and feel there is little point in spending the rest of their lives maintaining it (and even extends to the salaries of the people who maintain it!)
I'm not a millionaire by any means but with a focus on my WellBeing and realizing the distraction [[Technology]] has in taking me away from maintaining my body exactly the way it is I want it, it has me in this [[Inquiry]].
!foundation
# PhysicalBody
# EmotionalWellBeing
# Spirit
!ancilliary
# [[House]] (clearly simpler is better)
now the whole realm of [[ICT]] is a beast - there are all kinds of things to maintain from your InternetConnection, to your network, to all the computers and devices you have - the more connected everything comes does create complexity. Long gone is the computer that just had to work on its own - now it must interact with the Internet to be at least from today's perspective, to be useful.
Agreeing to maintain the [[Infrastructure]] of another only multiples the equation creating a need for [[Virtualization]] as at the end of the day, our PhysicalPerspective is what is here, right now, right in front of us.
I did find myself get on it - just staring at my [[iPhone]] and realizing [[Talkatone]] isn't what I anticipated it being and that it would be at least another 6-12 months before it even comes close. (but they are on the right track).
The whole idea of waiting and deciding whether it is worth maintaining what is effectively a cobbled, TemporaryConfiguration is what I'm pondering.
I can tell I introduced a lot of UnknownFactors into TheEquation of what it takes to [[stabilize|Stability] my life. subtle but enough to introduce surprises. I guess calming my ShivaSpirit down is a bit more challenging than I thought - I'm seeking something - there are things I want to see and to just sit and back and [[Chill]] is quite a foreign thought.
I was once coached to [[Receive]] and let things be. I can take a break from excessively putting energy out there and creating creating creating my whole life. Let others create and see what happens!
wow - ever did into your past and unearth some piece of MassiveThinking? Check out this MegaMindmap I put together in November 2008 to sort through all the [[Considerations]] I felt were important to people who create the [[Freedom]] to choose anywhere they wish to live in the world (be sure to click "Full Screen" and the "+" to zoom in or you'll go blind :)
<html>
<font size="1"><a href="http://www.docstoc.com/docs/2667278/Geographical-Preferences-_master-mindmap_">Geographical Preferences _master mindmap_</a></font><br /><object id="_ds_2667278" name="_ds_2667278" width="630" height="550" type="application/x-shockwave-flash" data="http://viewer.docstoc.com/"><param name="FlashVars" value="doc_id=2667278&mem_id=175407&showrelated=1&showotherdocs=1&doc_type=pdf&allowdownload=1" /><param name="movie" value="http://viewer.docstoc.com/"/><param name="wmode" value="opaque" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object><br /><script type="text/javascript">var docstoc_docid="2667278";var docstoc_title="Geographical Preferences _master mindmap_";var docstoc_urltitle="Geographical Preferences _master mindmap_";</script><script type="text/javascript" src="http://i.docstoccdn.com/js/check-flash.js"></script>
</html>
I must have been really bored! at least it got 400+ views :P
wondering what will happen to this text?
* [[Bionaturae]] - http://www.bionaturae.com/balsamic-vinegar.html
We value civil society. Community members who organize events should assume responsibility for public welfare and endeavor to communicate civic responsibilities to participants. They must also assume responsibility for conducting events in accordance with local, state and federal laws.
Went to bed / woke up: 10:18 / 7:18
Total time: 9h 00m
# completion of 6 week commitment to TrueNorthHealthDiet
# DreamJournal
** GoogleVoice – CallQuality
** having all this food & inviting ppl over at LastMinute – InvitingHome and being WhiskedAway
** LettingGo of DanceChalat posters
# SelflessCoach – [[Trust]] & [[Intimacy]]
# RidingTheAlligator – [[Screenwriting]]
# SkinnyJeans – ShoppingInJapan
# CausingTeam – are SteelCutOats the key?
# [[Reapplication]] of Google AdSense technology to AutoCompletingJournal
# impact of [[Others]] on SleepPattern
# MaintainingBoundaries vs GoingWithTheFlow
Ok – that’s quite a list of StuffToWriteAbout
Not inclined to write AdNuseum right now – I can be happy i’ve created a few [[Pointers]] into MyMind and if you’d like to hear more / make some requests!
Speaking of which…the last request I got a few months back was to write about my SoberBurn…
Only issue here is each entry above is not automatically [[Catalogued]] for reference later – so bear with me while the VotingProcess is manual…
Today is WellnessWednesday – a time to focus on CaringForOneself – dropping by CafeGratitude and having that be the subject of their QuestionOfTheDay is quite timely.
I’m finding Sunday to be absolute downtime – Im finding myself CookingForTheWeek today as I didn’t find myself very motivated nor energetic to do anything – I didn’t even make it to a PoolParty downtown with a friend or make it to dinner with another friend I’ve been trying to meet that ended up dropping into LittleOsaka right down the street! Point being, I barely was able to keep up EatingOnTime and having meals prepared OnTime – it felt like a struggle.
So today, I’m going to experiment with preparing all my food on a Wednesday so I’m not in such DireStraits on Sunday & not just eating a BigAssSalad
Ok I’m getting carried away here. Go to:
[[July 13, 2011 (ShivaSleeps)]]
to reveal and be able to click through links above.
Figure out how to create a MasterIndex of my writings later!
Time to eat!
Analysis made by the Sleep Cycle iPhone app.
My sleep graph for the entire night:
[img[http://shivasleeps.files.wordpress.com/2011/07/sleepgraph9.jpg?w=280&h=201]]
Creating a Self-Organizing community
You’ve had an epiphany and all you want is your community to be excited about your new perspective on life and share your level of excitement.
What if one day, you wake up in the morning to find a community banging on your door, excited to play with you and your new life?
This program is designed for you to have this experience. You will:
# Discover a NewArea of life to expand into and explore.
# Establish a NewVoice around these explorations.
# Design a [[1-HourExperience]] moving YourCommunity to engage with you.
# Lead a [[Playshop]] that leaves CommunityMembers sharing your excitement.
Upon successful completion of this program, your experience of community transforms.
!Outcomes
# [[1PageModel]] of [[YourLife]]
# NewChannel to be Discovered
# PlayshopDocumentation
# PlayshopEngagement
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
saw @jermolene's comments in [[Public by Default]]@jermolene and realized that <<newTiddler>> used to be private by default. I'd love to see a setting to toggle this.
in any case, it's no longer so much a concern as I'm finding TiddlySpace has been an inspiration for OpenJournaling again - a space I lost in my [[previous blog|http://chinarut.livejournal.com]] (a LiveJournal) as the interaction I desire with MyCommunity is of the level that is available and possible here!
<!--{{{-->
<div class='header'>
<div id='sidebarSearch'>
<span macro='search'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='clearFloat'></div>
</div>
<div id='menuBar'>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<!--}}}-->
primarily for reference - eagerly anticipating a RealTime Collaborative MindMapper I can use on my iPad...
would go a long ways if it had a [[Dropbox]] integration...
we use Ubuntu successfully for mom's YouTubeMachine - a [[Recycled]] laptop with a broken LCD hooked up to an HDTV - it really does the job well!
playing around with an Ubuntu on VirtualBox. A TripleBoot MacBook is looking not necessary and may very well devote my [[Linux]] partition for [[virtual machines|VirtualMachine]] to avoid [[Fragmentation]] on my [[Media]] partition that was originally meant for [[Music]], [[Photos]], and [[Movies]] - which is fairly [[Static]] once added to one's [[Library]]!
<<<
AlmondMilk made at home from organic, raw, unpasturrized almonds is fine. Very easy to make. Soak almonds overnight, pour off water, rinse, blend in blender with fresh water and strain pulp. Will keep in fridge for 3-5 days. I use that occasionally as a base for smoothies.
<<<
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
fascinated by the [[Discoursive]] nature of TiddlySpace root conversations :)
# [[Vege-Sal]] - http://www.kalynskitchen.com/2008/06/kalyns-kitchen-picks-vege-sal.html
# [[MrsDash]] - http://www.mrsdash.com/
# [[Spike]] - http://www.houseofnutrition.com/075820207779.html
<html>
<iframe width="425" height="349" src="http://www.youtube.com/embed/h1XgDkyu9cw" frameborder="0" allowfullscreen></iframe>
</html>
/***
|''Name:''|TiddlySpaceLinkPlugin|
|''Description:''|Formatter to reference other spaces from wikitext |
|''Author:''|PaulDowney (psd (at) osmosoft (dot) com) |
|''Source:''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceLinkPlugin.js|
|''Version:''|1.4.2|
|''License:''|[[BSD License|http://www.opensource.org/licenses/bsd-license.php]] |
|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev |
|''~CoreVersion:''|2.4|
!!Documentation
This plugin provides wikitext formatters for referencing another [[space|Space]] on the same TiddlySpace server, as in the following examples:
<<<
{{{@space}}} -- @space
{{{~@space}}} -- ~@space
{{{Tiddler@space}}} -- Tiddler@space
{{{[[Tiddler Title]]@space}}} -- [[Tiddler Title]]@space
{{{[[Link text|Tiddler Title]]@space}}} -- [[Link text|Tiddler Title]]@space
<<<
Links to tiddlers with a title begining with an "@" remain as tiddlyLinks:
<<<
{{{[[@tiddler]]}}} -- [[@tiddler]]
<<<
and these may be changed into a space link using {{{@@}}}:
<<<
{{{[[@@space]]}}} -- [[@@space]]
{{{[[Link to an another space|@@space]]}}} -- [[Link to another space|@@space]]
{{{[[@space|@@space]]}}} -- [[@space|@@space]]
<<<
TiddlySpace includes the [[TiddlySpaceLinkPlugin]] which provides WikiText markup for linking to other spaces on the same server. For example @glossary is a link to the {{{glossary}}} space and [[Small Trusted Group]]@glossary a link to an individual tiddler in the @glossary space. Prefixing the link with a tilde escapes the link, for example {{{~@space}}}.
Email addresses, for example joe.bloggs@example.com and mary@had.a.little.lamb.org should be unaffected.
!!Features
The plugin provides external links decorated so that other plugins may be included to add features such as the ability to dynamically pull externally linked tiddlers into the current TiddlyWiki.
Wikitext linking to a space on another server, for example from a tiddler in a space on tiddlyspace.com to a tiddler or a space on example.com, isn't currently supported.
!!Code
***/
//{{{
/*jslint onevar: false nomen: false plusplus: false */
/*global jQuery config createTiddlyText createExternalLink createTiddlyLink */
function createSpaceLink(place, spaceName, title, alt, isBag) {
var link, a, currentSpaceName, label;
try {
if (spaceName === config.extensions.tiddlyspace.currentSpace.name) {
title = title || spaceName;
a = createTiddlyLink(place, title, false);
jQuery(a).text(alt || title);
return a;
}
} catch (ex1) {
currentSpaceName = false;
}
a = jQuery("<a />").addClass('tiddlySpaceLink externalLink').appendTo(place)[0];
if(title) {
jQuery(a).attr('tiddler', title);
}
if(isBag) {
jQuery(a).attr('bag', spaceName);
} else {
jQuery(a).attr('tiddlyspace', spaceName);
}
config.extensions.tiddlyweb.getStatus(function(status) {
link = status.server_host.url;
if (title) {
label = alt || title;
link = link + "/" + encodeURIComponent(title);
} else {
label = alt || spaceName;
}
// assumes a http URI without user:pass@ prefix
if(!isBag) {
link = link.replace("http://", "http://" + spaceName.toLowerCase() + ".");
} else {
link += "/bags/" + spaceName + "/tiddlers.wiki";
}
jQuery(a).attr("href", link).text(label);
});
return a;
}
(function ($) {
config.textPrimitives.spaceName = "[a-zA-Z][a-zA-Z0-9-]*[a-zA-Z0-9]";
config.textPrimitives.spaceNameStrict = "[a-z][a-z0-9-]*";
config.textPrimitives.bareTiddlerLetter = config.textPrimitives.anyLetterStrict;
config.formatters.splice(0, 0, {
name: "spacenameLink",
match: config.textPrimitives.unWikiLink + "?" + config.textPrimitives.bareTiddlerLetter + "*@" + config.textPrimitives.spaceName + "\\.?.?",
lookaheadRegExp: new RegExp(config.textPrimitives.unWikiLink + "?(" + config.textPrimitives.bareTiddlerLetter + "*)@(" + config.textPrimitives.spaceName + ")", "mg"),
handler: function (w) {
if (w.matchText.substr(w.matchText.length - 2, 1) === '.' && w.matchText.substr(w.matchText.length - 1, 1).match(/[a-zA-Z]/)) {
w.outputText(w.output, w.matchStart, w.nextMatch);
return;
}
if (w.matchText.substr(0, 1) === config.textPrimitives.unWikiLink) {
w.outputText(w.output, w.matchStart + 1, w.nextMatch);
return;
}
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if (lookaheadMatch && lookaheadMatch.index === w.matchStart) {
createSpaceLink(w.output, lookaheadMatch[2], lookaheadMatch[1]);
w.nextMatch = this.lookaheadRegExp.lastIndex;
}
}
},
{
name: "tiddlySpaceLink",
match: "\\[\\[[^\\|\\]]*\\|*@@" + config.textPrimitives.spaceName + "\\]",
lookaheadRegExp: new RegExp("\\[\\[(.*?)(?:\\|@@(.*?))?\\]\\]", "mg"),
handler: function (w) {
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if (lookaheadMatch && lookaheadMatch.index === w.matchStart) {
var alt = lookaheadMatch[2] ? lookaheadMatch[1] : lookaheadMatch[1].replace(/^@@/, "");
var space = lookaheadMatch[2] || alt;
createSpaceLink(w.output, space, "", alt);
w.nextMatch = this.lookaheadRegExp.lastIndex;
}
}
},
{
name: "tiddlyLinkSpacenameLink",
match: "\\[\\[[^\\[]*\\]\\]@",
lookaheadRegExp: new RegExp("\\[\\[(.*?)(?:\\|(.*?))?\\]\\]@(" + config.textPrimitives.spaceName + ")", "mg"),
handler: function (w) {
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if (lookaheadMatch && lookaheadMatch.index === w.matchStart) {
var title = lookaheadMatch[2] || lookaheadMatch[1];
var alt = lookaheadMatch[1] || lookaheadMatch[2];
createSpaceLink(w.output, lookaheadMatch[3], title, alt);
w.nextMatch = this.lookaheadRegExp.lastIndex;
}
}
});
// ensure space links don't appear as missing links
config.textPrimitives.brackettedLink = "\\[\\[([^\\]][^@\\]][^\\]]*)\\]\\](?=[^@])";
config.textPrimitives.titledBrackettedLink = "\\[\\[([^\\[\\]\\|]+)\\|([^\\[\\]\\|]+)\\]\\](?=[^@])";
// reevaluate derrived expressions ..
config.textPrimitives.tiddlerForcedLinkRegExp = new RegExp("(?:" + config.textPrimitives.titledBrackettedLink + ")|(?:" +
config.textPrimitives.brackettedLink + ")|(?:" +
config.textPrimitives.urlPattern + ")","mg");
config.textPrimitives.tiddlerAnyLinkRegExp = new RegExp("("+ config.textPrimitives.wikiLink + ")|(?:" +
config.textPrimitives.titledBrackettedLink + ")|(?:" +
config.textPrimitives.brackettedLink + ")|(?:" +
config.textPrimitives.urlPattern + ")","mg");
// treat space links in titledBracketedLink as external links
var missingTiddlySpaceLink = new RegExp("^@@" + config.textPrimitives.spaceName + "$", "");
var isExternalLink = config.formatterHelpers.isExternalLink;
config.formatterHelpers.isExternalLink = function(link) {
return missingTiddlySpaceLink.test(link) || isExternalLink(link);
};
}(jQuery));
//}}}
this is a video of NaomiColb, someone who forever occurs like a [[Godmother]] to me...
http://goo.gl/gV6QW
* What comes to mind when you hear IntentionalCommunity?
* What results has your community created that inspire you?
* What tools do you use to build YourCommunity?
* What you see possible if everyone were to collaborate together?
* How are you training your FutureLeaders?
A creative way to answer these questions is to engage your community, see what shows up, step back and look again.
When you are ready to share your discoveries, click "Reply to this tiddler" (above, on the left, assuming you're logged in).
Thanks for taking on the role of a CommunityEnergizer!
The WisdomDivision has me in a conversation around contribution - I am very thankful to have participated at the conference for GlobalTransformation in 2010.
I look forward to shaping my contribution further and making it clearer what workshop I am to be producing in 2011.
I am wavering back & forth between a DanceExperiment and how to best relate it to the software I am interested in building for and with the community
<<<
Old-school networkers are transactional. They pursue relationships thinking solely about what other people can do for them. Relationship builders, on the other hand, try to help others first. They don't keep score. And they prioritize high-quality relationships over a large number of connections.
<<<
<<<
when connecting with acquaintances, prioritize diversity in order to broaden the overall reach of your network.
<<<
thank you for being part of a deeply ''rich'' network here called TiddlySpace - you are the CreamOfTheCrop!
http://goo.gl/kT2PT
LosAngeles is one of those places UrbanBackpacking comes into reality (with a twist!)
# YogaMat
# YogaPants
# YogaT
# LightweightFleece
I like this distribution of [[Linux]]! even lighter weight clocking in at only 10MB - minimalistic without sacrificing the [[GUI]] - even has a dock that looks surprisingly like MacOSX :)
The MountTool is a nice touch
!June 28, 2011
essentially a result of my not clearing the existence of [[Breakfast]] by 8:30am and a healthy [[Lunch]] by 12pm.
* Bread
* Mustard (probably had Salt)
* Mayonaise
* Turkey (!)
a beautiful park in Hokkaido we'll have to visit in Northern [[Japan]] sometime soon w an [[OperatingSystemInYourPocket]] :)
If you're interested in exploring TiddlySpace further, try one of these...
# [[The ICT Pupils' Bill of Rights]]@HowITWorks (click to see an index into how each of the 9 rights show up for me)
# explore how I've documented a Thai community's efforts: @chalat
# explore @claudia's [[Technology]] RiteOfPassage
# our community's @activity stream an interesting means of [[Discovery]]
# join TiddlySpace and share your thoughts the TiddlySpaceWay!
for the record, TenFold was my first [[Startup]].
[[Startups Must Hire The Right People And Watch Every Penny. Or Fail.|http://goo.gl/YVhaV]]
I spent the summer of 2008 here in [[Tokyo]].
some [[thoughts I wrote|http://goo.gl/Ms2qf]] upon returning to the UnitedStates including a PersonalPerspective of the stabbings that happened.
It's great to see my LandmarkForumLeader, DavidCunningham, share a perspective on one's [[Career]] that I can attest really works!
<html>
<iframe width="425" height="349" src="http://www.youtube.com/embed/VNrJG7sdO2c" frameborder="0" allowfullscreen></iframe>
</html>
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
when someone invites you to VideoCalls, wouldn't it be nice to SEE the person before you answered? this is not much different than looking through the door peep hole when someone knocks on your door and deciding whether or not to open the door.
I know, I know - VideoCalls are a wee bit more personal but imagine it was a good buddy of yours - in this day of age when we're [[Inundated]] with [[Communication]] - why not give the PersonOverTheWire a chance to GetYourAttention just like the PersonAcrossTheTable can get your attention?
A person who makes you laugh may very well entice you to PickUpThePhone or your son waving a Trophy he just won will create a context for you even before you pick up the phone!
Now the pitfalls are probably quite obvious:
# you're making a JudgementCall whether or not to PickUpThePhone based on how the person looks, is doing, etc.
# kinda spoils the surprise of why they're calling you (in some cases)
# it gives rise to a WholeNewRealm of [[Spam]] - you could unexpectedly get flashed with a PairOfBoobs or SomeoneHavingSex - now depending on your circumstance:
** it could be horribly embarrassing if your boss is at your desk and you receive one of these calls
** you could offend someone say if you're OnTheBus and the person happens to oversee your screen (I actually caught a glimpse of a dude looking at [[Porn]] on the subway in [[Tokyo]] one day!)
now say you could restrict VideoInvitations to just your FriendsAndFamily - or people in your ContactList... it's a whole other conversation to maintain [[Netiquette]] - especially with the girlfriend who decides she wants to surprise you before your HotDate!
Yup SexSells! :D
I can't find the original spreadsheet I put together listing [[100Roles]] I aspired to take on in my life. I don't exactly recall where the inspiration came from but when I was in [[Thailand]] in 2006, I was reminded of this list while skimming a book called GettingUnstuck and discovered it's a legitimate exercise used in CareerCoaching - in 2001, I did it just for fun :)
I do attribute the FranklinCoveySystem and their suggestion to design a WeeklyCompass with 7 roles you intend to take on for the week.
Below is a list of over 100 roles I've taken on, designed, or been inspired by. What you shall see over time is as I share aspects of MyUniverse using TiddlySpace, each link will ComeIntoBeing - think of it as coming alive, sharing another aspect of my life.
A longer-term [[Vision]] I have is this be the basis for a technology that assists people in designing the roles they are committed to in their lives - being able to [[visualize|Visualization]] the roles coming in and out of one's life will help keep all your [[Projects]], [[Actions]], and [[Teams]] in check!
Such a list will no longer be unwieldy and is constantly sorting itself based on the conversations you have in existence, the results produced, and the ones making the maximum impact will "float" to the top. In fact, I've started a prototype of my ActiveWeeklyCompass.
![[Roles]] (or [[Hats]])
# FatherToBe
# [[Consultant]]
# TechnologyAdvisor
# [[Squatter]]
# DanceInnovator
# DanceCatalyst
# CourseDesigner
# SofwareEngineer
# ReleaseEngineer
# SalesEngineer
# ProcessConsultant
# KnowledgeEngineer
# RetailEmployee
# MacSpecialist
# [[Creative]]
# [[Dancer]]
# ValidationEngineer
# WebDesigner
# CommunityArchitect
# ComputerTechnician
# GlobalSupportCoordinator
# SELPCoach
# WisdomCourseLeader
# IntroductionLeader
# LandmarkForumLeader
# UrbanNomad
# [[Lover]]
# [[Philanthropist]]
# AccountManager
# SalesExecutive
# TechnologyEvangelist
# SpaceMan
# [[DJ]]
# [[Composer]]
# [[Inventor]]
# WorkshopFacilitator
# [[Housekeeper]]
# [[Housesitter]]
# [[Boyfriend]]
# [[Prototyper]]
# [[Producer]]
# [[Director]]
# [[Writer]]
# [[Journalist]]
# [[Reporter]]
# [[Son]]
# [[Brother]]
# [[Cousin]]
# [[Nephew]]
# ReverseEngineer
# ConceptDesigner
# InstructionalDesigner
# BusinessDeveloper
# CorporateLiaison
# VentureCapitalist
# ExecutiveAssistant
# LearningAndDevelopmentManager
# CommunicationsManager
# GuestLecturer
# [[Educator]]
# KitchenSink
# CenterManager
# PublicSpeaker
# [[Screenwriter]]
# [[Actor]]
# CapacityBuildingConsultant
# [[Peacekeeper]]
# CircuitRider
# SystemsArchitect
# ICT4DChampion
# MajorGeekGreeter
# InternationalLiasion
# [[Founder]]
# ProjectManager
# DanceTherapist
# FinancialAdvisor
# TurnaroundSpecialist
# [[Professor]]
# [[Researcher]]
# LifeHacker
# MotivationalSpeaker
# [[Diplomat]]
# [[Mediator]]
# TalkshowHost
# [[Fundraiser]]
# FundraisingExecutive
# ProgramManager
# TeamLeader
# [[CEO]]
# [[CKO]]
# [[CTO]]
# DanceAmbassador
# DanceExplorer
# [[Minimalist]]
# [[Artist]]
# [[Strategist]]
# [[Encyclopedia]]
# [[Whirlwind]]
# [[Tutor]]
# [[Chef]]
# [[Geek]]
# [[Handyman]]
# CommunityManager
# MarketingEngineer
# [[Tinkerer]]
# [[Man]]
# [[Shiva]] (see [[ShivaSleeps]])
# ProjectManager
# Manager
# ProductManager
# ListMaker
# IntegrityCop
# [[Einstein]]
# DocumentationNut
# Burner
# MasterOfPossibility
# SocialEntrepreneur
# MadScientist
# DanceExecutive
# LifelongLearner
# SerialLifeExplorer
First a [[Wiki]] history lesson...we founded this [[wikispace|Wikispaces]] in Aug 2006:
http://dancelabs.wikispaces.com/Dance+Chalat
our TiddlyWiki (http://goo.gl/2GSSk) gave birth in Dec 2006.
In June 2011, we've adopted the TiddlySpace platform
Goal is to transform the @chalat into a sustainable operational program by Feb 2012!
Packing for a MiniOuting and I can either
# be patient while my iPhone syncs or
# want UniversalAccess to my PackingChecklist from any device (ie. where CloudComputing shines) or
# have sync just work completely in the background, transparently - i don't need to worry about what's on the client and what's on the server :)
what's your game while you're out & about?
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/IY3oMzexPSs" frameborder="0" allowfullscreen></iframe>
</html>
MoversAndShakersCoaching invited me to participate in a [[30DayChallenge]]: Share yourself on video no more than 3 minutes a day. No other guidelines - just play with the [[medium|Medium]] and see what happens.
<html>
<iframe width="560" height="315" src="//www.youtube.com/embed/-prDTNjg_uc" frameborder="0" allowfullscreen></iframe>
</html>
Even if your goal is not to be a ProfessionalSpeaker, there are plenty of benefits for sharing yourself on video online. Here are four:
# Transform your participation with your [[CommunitiesOnline]]
# Play with the [[medium|Medium]] like an [[Artist]] learns with paint on a canvas
# Discover your [[voice|Voice]] and listen for CommonThemes
# Develop new [[content|Content]] (eg. this TiddlySpace might aid a VideoEditor in creating a kick-ass DemoReel)
Watch the video above for more details how this could be a potentially life changing experience for you.
You are more than welcome to watch [[my day-to-day development|ManInTheMirror]] over 30 days with a bonus SeriesReview at the end!
/***
|''Name''|TiddlySpaceToolbar|
|''Description''|augments tiddler toolbar commands with SVG icons|
|''Author''|Osmosoft|
|''Version''|0.6.6|
|''Status''|@@beta@@|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceToolbar.js|
|''CodeRepository''|http://github.com/TiddlySpace/tiddlyspace|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.5.0|
|''Requires''|ImageMacroPlugin|
|''Keywords''|toolbar icons SVG|
!Description
replaces tiddler toolbar commands with SVG icons if available
!Notes
requires [[ImageMacroPlugin|http://svn.tiddlywiki.org/Trunk/contributors/JonRobson/plugins/ImageMacroPlugin/plugins/ImageMacroPlugin.tid]]
SVG icons are drawn from tiddlers titled {{{<command>.svg}}}
In readonly mode a tiddler called {{{<command>ReadOnly.svg}}} will be used if it exists.
!TODO
* rename (IconToolbarPlugin?)
* support more than one more popup menu in the toolbar.
!Code
***/
//{{{
(function($) {
if(!config.macros.image) {
throw "Missing dependency: ImageMacroPlugin";
}
var macro = config.macros.toolbar;
macro.icons = {
cloneTiddler: "editTiddler"
};
var _handler = macro.handler;
macro.handler = function(place, macroName, params, wikifier,
paramString, tiddler) {
var toolbar = $(place);
toolbar.attr({
refresh: "macro",
macroName: macroName
}).data("args", arguments);
var status = _handler.apply(this, arguments);
if(tiddler.isReadOnly()) {
toolbar.addClass("toolbarReadOnly");
} else {
toolbar.removeClass("toolbarReadOnly");
}
var parsedParams = paramString.parseParams("name")[0];
if(parsedParams.icons && parsedParams.icons == "yes") {
this.augmentCommandButtons(place);
}
if(parsedParams.more && parsedParams.more == "popup") {
// note we must override the onclick event like in createTiddlyButton
// otherwise the click event is the popup AND the slider
$(".moreCommand", place).each(function(i, el) {
el.onclick = macro.onClickMorePopUp;
});
// buttons that are after a less command should not be in more menu.
$(".lessCommand ~ .button", place).appendTo(place);
$(".lessCommand", place).remove();
}
return status;
};
macro.refresh = function(place, params) {
var args = $(place).empty().data("args");
this.handler.apply(this, args);
};
var imageMacro = config.macros.image;
macro.augmentCommandButtons = function(toolbar) {
$(".button", toolbar).each(function(i, el) {
var cmd = $(el).attr("commandname");
cmd = cmd ? cmd : "moreCommand"; // XXX: special-casing of moreCommand due to ticket #1234
var icon = store.tiddlerExists(cmd) ? cmd : macro.icons[cmd];
var text = $(el).text();
if(readOnly) {
var readOnlyAlternative = "%0ReadOnly".format([icon]);
if(store.tiddlerExists(readOnlyAlternative)) {
icon = readOnlyAlternative;
}
}
if(store.tiddlerExists(icon)) {
$(el).css({display: "inline-block"}).empty();
imageMacro.renderImage(el, icon, { alt: text });
}
});
};
// provide onClickMore to provide extra commands in a popup
macro.onClickMorePopUp = function(ev) {
ev = ev || window.event;
var sibling = this.nextSibling;
if(sibling) {
var commands = sibling.childNodes;
var popup = Popup.create(this);
$(popup).addClass("taggedTiddlerList");
for(var i = 0; i < commands.length; i++) {
var li = createTiddlyElement(popup, "li", null);
var oldCommand = commands[i];
var command = oldCommand.cloneNode(true);
command.onclick = oldCommand.onclick;
li.appendChild(command);
}
Popup.show();
}
ev.cancelBubble = true;
if(ev.stopPropagation) {
ev.stopPropagation();
}
return false;
};
})(jQuery);
//}}}
Provide a safe environment, where it's OK to fail, so long as we quickly learn from failing, where we are free to ask stupid questions without punishment. Only good can come of it!
ok - there's all kinds of templating (thus my love for [[Abstraction]])... the @activity space had me notice @closure-report - find the "list" macro used in this way interesting... discovered @questionnaire QMakerPlugin@questionnaire in the process...
<<<
At a very simple level, tiddlers are named chunks of document content (information), potentially with some tags on them for cross-reference.
Think "named, tagged digital 3-by-5 cards", if you wish; it's almost that straightforward.
<<<
(from [[Content Management]]@tiddlywiki)
<!--{{{-->
<div class='toolbar'
macro='toolbar [[ToolbarCommands::EditToolbar]] icons:yes'>
</div>
<div class='heading editorHeading'>
<div class='editor title' macro='edit title'></div>
<div class='tagClear'></div>
</div>
<div class='annotationsBox' macro='annotations'>
<div class='editSpaceSiteIcon'
macro='tiddlerOrigin height:16 width:16 label:no interactive:no'>
</div>
<div class="privacyEdit" macro='setPrivacy label:no interactive:no'></div>
<div class='tagClear'></div>
</div>
<div class='editor' macro='edit text'></div>
<div class='editorFooter'>
<div class='tagTitle'>tags</div>
<div class='editor' macro='edit tags'></div>
<div class='tagAnnotation'>
<span macro='message views.editor.tagPrompt'></span>
<span macro='tagChooser excludeLists'></span>
</div>
</div>
<!--}}}-->
/***
|''Name''|RandomColorPalettePlugin|
|''Description''|Adds a random color palette to TiddlyWiki|
|''Author''|Jon Robson|
|''Version''|1.4.0|
|''Status''|stable|
|''Source''|https://github.com/jdlrobson/TiddlyWikiPlugins/raw/master/plugins/RandomColorPalettePlugin/RandomColorPalettePlugin.js|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
{{{
<<RandomColorPalette>>
}}}
Sets and saves a random color palette on execution
{{{
<<RandomColorPaletteButton>>
}}}
Creates a button, which when clicked will change the color palette
More information at http://macros.tiddlyspace.com/#%5B%5BRandomColorPaletteButton%20macro%5D%5D
!Code
***/
//{{{
RGB.prototype.toRGBString = function() {
return "rgb(%0,%1,%2)".format(parseInt(this.r * 255, 10),
parseInt(this.g * 255, 10), parseInt(this.b * 255, 10))
}
function HSL_TO_RGB(h, s, l) { // h (hue) between 0 and 360, s (saturation) & l (lightness) between 0 and 1
var c = l <= 0.5 ? 2 * l * s : ( 2 - (2 * l)) * s;
var h1 = h / 60;
var x = c * (1 - Math.abs((h1 % 2) - 1));
var r, g, b;
if(typeof(h) == 'undefined') {
r = 0;
g = 0;
b = 0;
} else if(0 <= h1 && h1 < 1) {
r = c;
g = x;
b = 0;
} else if(1 <= h1 && h1 < 2) {
r = x;
g = c;
b = 0;
} else if(2 <= h1 && h1 < 3) {
r = 0;
g = c;
b = x;
} else if(3 <= h1 && h1 < 4) {
r = 0;
g = x;
b = c;
} else if(4 <= h1 && h1 < 5) {
r = x;
g = 0;
b = c;
} else if(5 <= h1 && h1 < 6) {
r = c;
g = 0;
b = x;
}
m = l - (0.5 * c);
return new RGB(r + m, g + m, b + m);
}
(function($){
var macro = config.macros.RandomColorPalette = {
messagesOn: false,
changedPaletteText: "We have assigned you a random theme by adjusting the [[ColorPalette]] tiddler.\nDon't like it? Click <<RandomColorPalette>> for another one.",
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
paramString = paramString || "";
var options = macro.getOptions(paramString);
macro.generatePalette(options, true);
},
optionTypes: {
floats: ["hue", "saturation", "darkest", "lightness", "huevariance", "dark", "pale", "light", "mid",
"saturation_light", "saturation_pale", "saturation_mid", "saturation_dark"
]
},
getOptions: function(paramString) {
var args = paramString.parseParams("name", null, true, false, true)[0];
var options = {};
var numbers = macro.optionTypes.floats;
for(var i in args) {
options[i] = numbers.indexOf(i) > -1 ? parseFloat(args[i][0], 10) : args[i][0];
}
return options;
},
generateRandomNumber: function(min, max, info) {
var num = (Math.random() * 1);
info = !info ? { attempts:0 } : info;
info.attempts += 1;
var good = true;
if(min == max) {
return max;
}
if(min && num < min) {
good = false;
} else if(max && num > max) {
good = false;
}
if(!good) {
if(info.attempts < 5) {
return macro.generateRandomNumber(min, max, info);
} else {
if(max) {
return max;
} else if(min) {
return min;
} else {
return 1;
}
}
}
return num;
},
getExistingPalette: function(asJSON) {
var title = "ColorPalette";
var tiddlerText;
if(store.tiddlerExists(title)) {
tiddlerText = store.getTiddlerText(title);
} else if(store.isShadowTiddler(title)){
tiddlerText = config.shadowTiddlers[title];
}
if(asJSON) {
var json = {};
if(tiddlerText) {
var lines = tiddlerText.split("\n");
for(var i = 0; i < lines.length; i++) {
var definition = lines[i].split(":");
if(definition.length == 2) {
var name = definition[0].trim();
var value = definition[1].trim();
json[name] = value;
}
}
}
return json;
} else {
return tiddlerText;
}
},
generatePalette: function(options, save) {
var outputRGB = options.rgb;
var palette = macro.getExistingPalette(true);
var hue = options.hue || Math.floor(Math.random() * 359);
var saturation = options.saturation || macro.generateRandomNumber(0.3, 0.7);
var dark = options.dark || options.darkest || macro.generateRandomNumber(0, 0.10);
var pale = options.pale || options.lightness || macro.generateRandomNumber(0.90, 1);
var delta = ( ( pale - dark ) / 3 );
var mid = options.mid || dark + delta;
var light = options.light || dark + (delta * 2);
var lightness_values = {Dark: dark, Mid: mid, Light: light, Pale: pale};
var saturation_values = {};
for(i in lightness_values) {
if(true) {
saturation_values[i] = options["saturation_" + i.toLowerCase()] || saturation;
}
}
var opposite_hue = (hue + 180) % 360;
var seed = options.huevariance || Math.floor((85 * Math.random()) + 5); // we want it to be at least 5 degrees
var huetwo = (opposite_hue + seed) % 360;
var huethree = (opposite_hue - seed) % 360;
if(huetwo < 0) {
huetwo = 360 + huetwo;
}
if(huethree < 0) {
huethree = 360 + huethree;
}
for(var j in lightness_values) {
if(true) {
var saturation = saturation_values[j];
palette["Primary" + j] = HSL_TO_RGB(hue, saturation, lightness_values[j]);
palette["Secondary" + j] = HSL_TO_RGB(huetwo, saturation, lightness_values[j]);
palette["Tertiary" + j] = HSL_TO_RGB(huethree, saturation, lightness_values[j]);
}
}
palette.Background = HSL_TO_RGB(hue, saturation, 0.92);
palette.Foreground = HSL_TO_RGB(hue, saturation, 0.08);
palette.ColorPaletteParameters = ["HSL([", hue, "|", seed, "], [", saturation_values.Pale, "|",
saturation_values.Light, "|", saturation_values.Mid, "|", saturation_values.Dark, "],",
"[", dark, "|", mid, "|", light, "|", pale, "])"].join("");
// construct new ColorPalette
var text = ["/*{{{*/\n"];
var colorcode;
for(var id in palette) {
if(true) {
var color = palette[id];
colorcode = outputRGB ? color.toRGBString() : color.toString();
text.push("%0: %1\n".format(id, colorcode));
}
}
text.push("/*}}}*/");
text = text.join("");
if(save) {
macro.saveColorPalette(text);
}
return text;
},
saveColorPalette: function(text) {
var tid = store.getTiddler("ColorPalette");
if(!tid) {
tid = new Tiddler("ColorPalette");
tid.fields = merge({}, config.defaultCustomFields);
} // TODO: detect that the ColorPalette in the space comes from outside recipe
tid.fields["server.page.revision"] = "false"; // edit conflicts dont matter
// save the color palette in tid
tid = store.saveTiddler(tid.title, tid.title, text, tid.modifier, tid.modified,
tid.tags, tid.fields, false, tid.created, tid.creator);
// an interval is used to cope with users clicking on the palette button quickly.
if(macro._nextSave) {
window.clearTimeout(macro._nextSave);
}
macro._nextSave = window.setTimeout(function() {
autoSaveChanges(null, [tid]);
}, 2000);
// temporary workaround for IE.
$.twStylesheet.remove({ id: "StyleSheetColors" });
$.twStylesheet.remove({ id: "StyleSheet" });
refreshAll();
macro.reportChange();
return tid;
},
reportChange: function() {
if(macro.messagesOn) { // only display message once..
var msgPlace = getMessageDiv();
if(!$(".changedPalette", msgPlace)[0]) {
var tempPlace = document.createElement("div");
wikify("{{changedPalette{" + macro.changedPaletteText + "}}}", tempPlace);
msgPlace.appendChild(tempPlace);
}
}
}
};
var btnMacro = config.macros.RandomColorPaletteButton = {
text: "New ColorPalette",
tooltip: "Generate a random colour scheme for your TiddlyWiki",
makeButton: function(place, options) {
var btnHandler = function(ev) {
var t = $(ev.target);
var options = t.data("options");
macro.generatePalette(options, true);
ev.preventDefault();
return false;
};
var btn = createTiddlyButton(place, this.text, this.tooltip, btnHandler);
$(btn).data("options", options);
return btn;
},
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var options = macro.getOptions(paramString);
btnMacro.makeButton(place, options);
}
};
})(jQuery);
//}}}
[[htmlonly]] is now a full HTML-rendered page thanks to @fnd
http://chinarut.com/htmlonly
# create a (public) tiddler "htmlonly" with some HTML in the body
# set server.content-type - e.g. in Firebug:
** store.getTiddler("htmlonly").fields["server.content-type"] = "text/html";
# save (sync) the modified tiddler:
** store.getTiddler("htmlonly").fields.changecount = "1";
** saveChanges();
! Examples from TiddlySpace team
# http://wc.tiddlyspace.com/form
# http://chinarut.com/friends (recently inherited as part of @following)
CACHE MANIFEST
# version 0.7.3
CACHE:
/takenote
/dashboard
/bags/common/tiddlers/jquery-ui.custom.css
/bags/common/tiddlers/jquery-ui.custom.js
/bags/common/tiddlers/notabene.css
/bags/common/tiddlers/notabene.js
/bags/common/tiddlers/jquery-json.js
/bags/common/tiddlers/jquery.js
/bags/tiddlyspace/tiddlers/chrjs
/bags/common/tiddlers/chrjs-store.js
/bags/common/tiddlers/touchicon_takenote.png
/bags/common/tiddlers/cancelTiddler.png
/bags/common/tiddlers/saveTiddler.png
/bags/common/tiddlers/deleteTiddler.png
/bags/common/tiddlers/HtmlBackground
/bags/common/tiddlers/icon-search.png
/bags/common/tiddlers/icon-incomplete.png
/bags/common/tiddlers/icon-recent.png
/bags/common/tiddlers/bookmark_bubble.js
NETWORK:
*
As part of what is now my SpringCleaning effort, I was all set to drop off IT junk that has been cluttering my parent's garage at a local e-waste collection day tomorrow. I figured what the hell and decided to [[post on Craig's list|http://goo.gl/TpzjJ]] - I figured 24 hrs was a good window and someone called within 5 minutes and said they'd take it all! Just makes me think I'm doing the right thing when life seemingly just comes to you!
Ergonomics hasn't been so hot lately over the past week - the issue arises when I start realizing the most optimum place to be in the house is the DiningRoom and the Kitchen! I mean I literally am cooking in more ways than one!
It's also nice to have my bedroom just be that - a [[Bedroom]]. it's like blessing it as a [[Sanctuary]] and not treating it like an [[Office]]
This has me rethink things in regards to have I can have [[Integrity]] to Ergonomics and still have the best of all worlds...
# MonitorHeight - hunched over my MacBook doesn't do it - reminds me when I was in StartupMode on a ThinkPad at a card table... even raising the laptop and using a separate keyboard and mouse helps a lot...
# KeyboardTray - this is ideal and what I had in [[Thailand]]
# ErgonomicChair - I invested what the equivalent to about 2 months salary in [[Thailand]] on a TaskChair - I really do miss it - it was quite nice!
# Apples
# Celery
# Strawberries
# Peaches
# [[Spinach]]
# Nectarines - imported
# Grapes - imported
# SweetBellPeppers
# Potatoes
# Blueberries - domestic
# Lettuce
# [[Kale]]/CollardGreens
<<<
To watch Netflix build an amazing platform, attract a great community of movie lovers, and watch it erode piece by pice is kinda sad :(
I'm banking they are dedicated to being the world's biggest online library fueling all social networks. perhaps it's time to give up coming to one place?
while this transition appears to be poorly executed, I am in favor of being able to freely share my opinions/reviews at whatever site I'm on (with control over which circles see each review) and that it be transparently driven by Netflix under the covers.
I'm guessing this is where Netflix has always wanted to be and we are having pain points making such a transition.
I'm willing to be patient.
<<<
http://goo.gl/g12KZ
Burning Man is devoted to acts of gift giving. The value of a gift is unconditional. Gifting does not contemplate a return or an exchange for something of equal value.
I was really excited about this book application on [[Facebook]] - it really brought the social aspect of sharing books you've read and enjoyed whether it was posting a review on your own wall for everyone to see or making a direct recommendation to a friend.
Well - the SocialBookworms blew it - there are soooo many sites out there from [[Shelfari]] (acquired by [[Amazon]]) to GoodReads. Can't we all just get along? So at the cost of less visibility short term, I'm storing my reviews in TiddlySpace as I'm clear I have 100% DataLiberation (a term coined by the [[Google+]] folks!) - nobody should ever own your data and tell you what you can and can't do with it!
oh, yeah - expect this tiddler to be more and more [[Visual]] over time :)
see also [[Shelfari]] (acquired by [[Amazon]])
sad to say VisualBookshelf closed it's doors on my birthday :( my note to the SocialLiving folks:
<<<
Hi! I apologize for not contacting you sooner - I'm happy that you provided a means to move the data - what I was a bit bummed about is what means to achieve what you began to do really well which is to leverage the social network using something we already socialize and create circles around: books. I have to be responsible for not giving you the feedback to improve your application. It worked really well at first and then when I started to share books with my network, it became really spammy - often putting 3 wall posts for what could have been wrapped into one.
well - not sure if there's much you can do about it now - i still look forward to the future of passing books around my social network - you have a really great model. I'm really curious where things went south for you guys.
I'm also writing to let you know the export file you provided did not contain all the data associated with the review such as when the review was written. it may have been missing other data, but this in particular is important data that is now gone :(
i do appreciate that you created a path. what I feel is missing is a usage model - a means to achieve what we all know to be possible around connecting with each other through great books online.
wishing you the very best in your future!
<<<
!book reviews
<<list filter [tag[BookReview]]>>
User-agent: *
Disallow: /bags
Disallow: /recipes
* porting may take more than [[24Hours]]
* if you're swapping lines, be aware PersonalHotspot feature may need to be readded
"leave people with the experience of exploring partnership as non-attachment. ease of moving on. abundance. fully sharing with your current partner[s]"
<html>
<head>
<title>Friends</title>
<style type='text/css'>
ul {
list-style: none;
}
ul .friend {
border-bottom: solid 1px black;
}
ul .friend .tiddler {
margin-left: 10px;
margin-bottom: 30px;
padding: 10px;
border: dotted 2px #CCC;
color: #006100;
}
textarea {
width: 100%;
height: 150px;
}
.friend h2 {
display: inline-block;
}
button {
display: inline-block;
}
.inactiveFriend {
background-color: #ccc;
opacity: 0.1;
}
</style>
<link rel="stylesheet" href="/HtmlCss" type="text/css">
</head>
<body>
<div id="container">
<div id="header">
<h1>Your friends</h1>
</div>
<noscript>
javascript is required to see friend's activity
</noscript>
<div id='friends' class="section">loading...</div>
</div>
<script src="/bags/common/tiddlers/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/jquery-json.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/tiddlyspace/tiddlers/chrjs" type="text/javascript" charset="utf-8"></script>
<script type='text/javascript' src='/friendjs'></script>
</body>
</html>
http://goo.gl/txuSI
TrueNorthHealth
whether these are just a core part of my being or things that take me away from my [[Mission]] is under [[Inquiry]]... mind you it is a matter of [[Perspective]] and [[Context]] so take all this with a GrainOfSalt. There is an [[Impact]] no matter which way you see it. Of course, there is the list of things I do [[abstain|Abstinence]] from!
# [[Women]]
# [[Facebook]]
# [[Twitter]]
# [[Pornography]]
# [[Movies]]
# CasualDating
# [[Networking]]
# [[Blogging]]
# EvaluatingSoftware (ie. iPhone [[app]]s)
# CatchingUp
# [[Sex]]
# [[Skype]]
# [[Wiki]] !
# [[Internet]]
# [[life hacking|LifeHacker]]
# [[volunteering|Volunteer]]
# [[Organizing]] (email, photos, projects, even people...)
# UrbanBackpacking
# [[Travelling]]
# [[email]]
# CreatingChange
# [[getting up and going places on the fly]]
# iPhone pictures ?
# [[downloading free iTunes music
# [[making lists|ListMaker]]
# [[worrying about others]]
# [[coaching others|Coach]]
# [[Documenting]]
Thanks to VirginAirlines (which is a RockstarAirline!), I was able to play around with one of these puppies - while a bit HalfBaked - I can see its potential. I really appreciated the fact that your ApplicationList sits in the cloud so as you move around with your GoogleAccount, your apps (and configuration) follow you.
This provides insight into where there is an AbundantPool of InternetDevices and you use what's available and we stop filling up our landfills unnecessarily!
# @claudia
# CommunitySunday
# MomAndDad
# MomsOriginatingCircle - Jeyton's 1st (Debbie, Annie, Diana)
while I probably didn't share this with many people, I once had a dream to retire by 40.
What revitalized this conversation is the 4HourWorkweek and the idea of a MiniRetirement - a way to test the waters and like a captain navigating his ship, adjust as needed.
RetiringAbroad is pretty much what I've had in mind since living in [[Thailand]] from 2003-2007!
something the iOS platform has done well is automate pushing of updates. If you have too many apps on your device, it become a ConstantStream of updates to the point of getting annoying. So it causes [[iPadRefactoring]] (which I honestly don't feel I have the time for!)
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="364 157 64 51" width="30" height="30"><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><g><path class="glyph" d="M 364.50006 184.50061 L 386.99985 207.00037 L 396 198.00002 L 373.50003 175.50066 Z M 403.02295 181.97704 C 400.38693 179.34099 396.11307 179.34099 393.47702 181.97704 C 390.841 184.61307 390.841 188.88695 393.47702 191.52298 C 396.11307 194.15903 400.38693 194.15903 403.02295 191.52298 C 405.65906 188.88695 405.65906 184.61307 403.02295 181.97704 M 414.27298 170.72704 C 411.63693 168.091 407.36307 168.091 404.72702 170.72704 C 402.091 173.36308 402.091 177.63693 404.72702 180.27296 C 407.36307 182.90901 411.63693 182.90901 414.27298 180.27296 C 416.90903 177.63693 416.90903 173.36308 414.27298 170.72704 M 425.523 159.47705 C 422.88696 156.841 418.6131 156.841 415.97705 159.47705 C 413.341 162.11308 413.341 166.38695 415.97705 169.02295 C 418.6131 171.65903 422.88696 171.65903 425.523 169.02295 C 428.15906 166.38695 428.15906 162.11308 425.523 159.47705" fill="#020202"/></g></g></svg>
I'm continuing to play around with MacOSXServer (go MacMini!) and its ability to host an iTunesLibrary (instead of having to rely on an iMac to be online all the time...)
ok - it's great that you can now easily download all your iTunes purchases from the cloud... what is a bit braindead is there is no "Download All" - as in ''all'' your music with one click!
# runway: NextActions
# 10k feet: [[Projects]]
# 20k feet: AreasOfFocus & responsibility
# 30k feet: [[Goals]] & objectives
# 40k feet: [[Vision]]
# 50k feet: [[Purpose]] & principles