<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FND's Blag &#187; TiddlyWiki</title>
	<atom:link href="http://fnd.lewcid.org/blog/archive/tag/tiddlywiki/feed" rel="self" type="application/rss+xml" />
	<link>http://fnd.lewcid.org/blog</link>
	<description>Just Another Personal Wobsite</description>
	<lastBuildDate>Thu, 11 Mar 2010 15:19:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>jQuery API Documentation in TiddlyWiki</title>
		<link>http://fnd.lewcid.org/blog/archive/143</link>
		<comments>http://fnd.lewcid.org/blog/archive/143#comments</comments>
		<pubDate>Sun, 14 Feb 2010 09:05:43 +0000</pubDate>
		<dc:creator>FND</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[TiddlyWiki]]></category>

		<guid isPermaLink="false">http://fnd.lewcid.org/blog/?p=143</guid>
		<description><![CDATA[The jQuery folks are nice enough to provide a raw XML dump of their API documentation (http://api.jquery.com). I wrote a quick macro to parse that data and store it as tiddlers: http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/jQueryDocsImportMacro.js Demo: http://fnd.lewcid.org/tmp/jQueryAPI.html http://groups.google.com/group/tiddlywikidev/browse_thread/thread/4974fa9717f669ab]]></description>
			<content:encoded><![CDATA[<blockquote><p>
The jQuery folks are nice enough to provide a raw XML dump of their API documentation (<a href="http://api.jquery.com">http://api.jquery.com</a>).<br />
I wrote a quick macro to parse that data and store it as tiddlers:<br />
<span id="more-143"></span><a href="http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/jQueryDocsImportMacro.js">http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/jQueryDocsImportMacro.js</a><br />
Demo:<br />
<a href="http://fnd.lewcid.org/tmp/jQueryAPI.html">http://fnd.lewcid.org/tmp/jQueryAPI.html</a>
</p></blockquote>
<p><a href="http://groups.google.com/group/tiddlywikidev/browse_thread/thread/4974fa9717f669ab">http://groups.google.com/group/tiddlywikidev/browse_thread/thread/4974fa9717f669ab</a></p>
]]></content:encoded>
			<wfw:commentRss>http://fnd.lewcid.org/blog/archive/143/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git-SVN: Using Git to Interact with Subversion Repositories</title>
		<link>http://fnd.lewcid.org/blog/archive/21</link>
		<comments>http://fnd.lewcid.org/blog/archive/21#comments</comments>
		<pubDate>Sat, 24 May 2008 07:00:12 +0000</pubDate>
		<dc:creator>FND</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[revision control]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[TiddlyWiki]]></category>

		<guid isPermaLink="false">http://fnd.lewcid.org/blog/?p=21</guid>
		<description><![CDATA[Lately I have been reading about and toying with Git a lot &#8212; and I&#8217;m truly fascinated! (In fact, I&#8217;m even using it to track the progress of this very posting.) However, I&#8217;m not primarily interested in the distributed part. More important, to me, is the fact that Git gives me a private revision history [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I have been <a href="http://del.icio.us/Ace_NoOne/versionControl?setcount=100">reading about</a> and toying with <a href="http://en.wikipedia.org/wiki/Git_%28software%29">Git</a> a lot &mdash; and I&#8217;m truly fascinated! (In fact, I&#8217;m even using it to track the progress of this very posting.)<br />
However, I&#8217;m not primarily interested in the <a href="http://en.wikipedia.org/wiki/Distributed_revision_control">distributed</a> part. More important, to me, is the fact that Git gives me a private revision history (local commits). That way I can commit frequently without having to worry about publishing my changes prematurely.<sup>[1]</sup><br />
<span id="more-21"></span><br />
Since for <a href="http://www.tiddlywiki.com">TiddlyWiki</a> we&#8217;re <a href="http://trac.tiddlywiki.org/browser/">using Subversion</a>, I&#8217;ve started looking into Git&#8217;s <a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn.html">SVN module</a>. With this I can use Git locally while still interacting with the public Subversion repository.</p>
<p>The following guide is to serve as a quick introduction to Git-SVN, hopefully making it easy for others (e.g. fellow <a href="http://www.osmosoft.com">Osmosoftonians</a>) to get started.<br />
Note that I&#8217;m an enthusiastic command-line user, which is why this guide does not cover any GUIs. Also, I&#8217;m far from being a Git expert at this point, so feel free to suggest improvements!</p>
<p><strong>Initial Setup</strong></p>
<ul>
<li>
		check out Subversion repository:<sup>[2]</sup><sup>[3]</sup></p>
<pre>git svn clone -T[trunk_subdir] -t[tags_subdir] -b[branches_subdir] [URL]</pre>
<p>		(e.g. <code>git svn clone -TTrunk -tTags -bBranches http://svn.tiddlywiki.org</code>)<br />
		<strong>N.B.:</strong> For TiddlyWiki, it might not be desirable to convert the Trunk, Tags and Branches directories to metadata, as this might interfere with Cook.
	</li>
<li>
		create branch for work in progress (WIP):</p>
<pre>git checkout -b [branch]</pre>
</li>
</ul>
<p><strong>Working with Git</strong></p>
<ul>
<li>
		modify files on WIP branch, creating (and amending) local commits:<sup>[4]</sup></p>
<pre>git add [files]
git commit -m "[message]"
git commit --amend</pre>
</li>
<li>
		switch to master branch:</p>
<pre>git checkout master</pre>
</li>
<li>
		grab changes from WIP branch:<sup>[5]</sup></p>
<pre>git merge --squash [branch]</pre>
</li>
<li>
		commit changes and push to Subversion:<sup>[6]</sup></p>
<pre>git commit -a -m "[message]"
git svn dcommit</pre>
</li>
<li>
		switch back to WIP branch:<sup>[7]</sup></p>
<pre>git checkout [branch]
git reset --hard master</pre>
<p>		(if there are additional commits on the branch, <code>git rebase master</code> should be used &mdash; which might lead to merge conflicts though)
	</li>
</ul>
<p><strong>Useful Commands</strong></p>
<ul>
<li>
		<a href="http://www.kernel.org/pub/software/scm/git/docs/git-branch.html">git branch</a> (list, create or delete branches)
	</li>
<li>
		<a href="http://www.kernel.org/pub/software/scm/git/docs/git-diff.html">git diff [-w] [--color-words]</a> (display changes)
	</li>
<li>
		<a href="http://www.kernel.org/pub/software/scm/git/docs/git-apply.html">git apply</a> (patching)
	</li>
<li>
		<a href="http://www.kernel.org/pub/software/scm/git/docs/git-status.html">git status</a> (working tree status)
	</li>
<li>
		<a href="http://www.kernel.org/pub/software/scm/git/docs/git-log.html">git log</a> (commit history)<sup>[8]</sup>
	</li>
<li>
		<a href="http://www.kernel.org/pub/software/scm/git/docs/git-reflog.html">git reflog</a> (comprehensive history)
	</li>
<li>
		<a href="http://www.kernel.org/pub/software/scm/git/docs/git-svn-rebase.html">git svn rebase</a> (update local repository)
	</li>
<li>
		<a href="http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html">git checkout [files]</a> (revert changes)
	</li>
<li>
		<a href="http://www.kernel.org/pub/software/scm/git/docs/git-config.html">git config</a> (user preferences)<sup>[9]</sup>
	</li>
<li>
		<a href="http://www.kernel.org/pub/software/scm/git/docs/git-gui.html">git gui</a> (graphical user interface)
	</li>
<li>
		<a href="http://www.kernel.org/pub/software/scm/git/docs/gitk.html">gitk</a> (repository browser)
	</li>
</ul>
<p>Thanks to <a href="http://www.kerrybuckley.org">Kerry</a> for getting me started with Git in the first place!</p>
<p><strong>2008-09-30:</strong> minor updates (removed hyphens from <code>git svn</code> commands, updated <code>.gitconfig</code>, note on converting metadata on checkout)</p>
<p><strong>2008-11-03:</strong> changed final <code>git merge master</code> to <code>git reset --hard master</code> (includes a note on <code>git rebase master</code>, as <a href="http://www.kerrybuckley.org/2008/06/18/avoiding-merge-commits-in-git/">recommended by Kerry</a>)</p>
<ol class="footnotes"><li id="footnote_0_21" class="footnote">The same is true for other <a href="http://www.infoq.com/articles/dvcs-guide">DVCS</a>, like <a href="http://en.wikipedia.org/wiki/Mercurial_%28software%29">Mercurial</a> &mdash; though I have only worked with Git so far.</li><li id="footnote_1_21" class="footnote">Cloning an entire Subversion repository can take a while (mostly due to protocol overhead) &mdash; an alternative is to grab only the latest revision:  <code>git svn init [URL]; git svn fetch -r HEAD</code>.</li><li id="footnote_2_21" class="footnote">Instead of manually specifying directory names for trunk, tags and branches, <code>-s</code> can be used for the standard naming convention &#8220;trunk&#8221;, &#8220;tags&#8221; and &#8220;branches&#8221;.</li><li id="footnote_3_21" class="footnote">Use <code>git commit -a -m "[message]"</code> to automatically add all modified files.</li><li id="footnote_4_21" class="footnote">Squashing means that several local commits can be merged into a single commit.</li><li id="footnote_5_21" class="footnote"><code>dcommit</code> will automatically perform an update (<code>rebase</code>).</li><li id="footnote_6_21" class="footnote">The merge operation is required due to the rewritten commit history on the master.</li><li id="footnote_7_21" class="footnote"><code>git log</code> can be used to display the differences between two branches: <code>git log &lt;a&gt;..&lt;b&gt;</code> &mdash; for example: <code>git log origin/master..master</code> (Git repositories), <code>git log remotes/trunk..master</code> (SVN repositories) </li><li id="footnote_8_21" class="footnote">My current <code>.gitconfig</code> file (latest version <a href="http://github.com/FND/homedir/blob/master/.gitconfig">on GitHub</a>):</p>
<pre>[user]
	name = FND
[alias]
	ci = commit
	cia = commit -a
	cim = commit -m
	ciam = commit -a -m
	co = checkout
	diffi = diff -M --color-words
	diffw = diff -M -w
	diffx = diff -M -w --color-words
	merges = merge --squash
[color]
	branch = auto
	diff = auto
	status = auto
[color "branch"]
	current = yellow reverse
	local = yellow
	remote = green
[color "diff"]
	plain = white
	meta = yellow bold
	frag = magenta bold
	old = red bold
	new = green bold
[color "status"]
	header = white
	added = yellow
	changed = green
	untracked = cyan
[svn]
	rmdir = true</pre>
<p></li></ol>]]></content:encoded>
			<wfw:commentRss>http://fnd.lewcid.org/blog/archive/21/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>OpenSocial Hackathon</title>
		<link>http://fnd.lewcid.org/blog/archive/20</link>
		<comments>http://fnd.lewcid.org/blog/archive/20#comments</comments>
		<pubDate>Mon, 07 Apr 2008 10:55:51 +0000</pubDate>
		<dc:creator>FND</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[London]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[OpenSocial]]></category>
		<category><![CDATA[Osmosoft]]></category>
		<category><![CDATA[social networks]]></category>
		<category><![CDATA[TiddlyWiki]]></category>

		<guid isPermaLink="false">http://fnd.lewcid.org/blog/?p=20</guid>
		<description><![CDATA[Yesterday&#8217;s OpenSocial hackathon was the first event of this kind for me &#8212; and I&#8217;m quite glad that Simon had convinced me to attend. The first two hours were rather unexciting, as various social networks were presenting themselves. Afterwards, a few Google representatives gave a quick overview of the OpenSocial concepts and pointed us to [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday&#8217;s <a href="http://opensocialapis.blogspot.com/2008/04/sundays-opensocial-hackathon-in-london.html">OpenSocial hackathon</a> was the first event of this kind for me &mdash; and I&#8217;m quite glad that <a href="http://simonmcmanus.com">Simon</a> had convinced me to attend.<br />
<span id="more-20"></span><br />
The first two hours were rather unexciting, as various social networks were <a href="http://twitter.com/robb1e/statuses/783788064">presenting themselves</a>.<br />
Afterwards, a few Google representatives gave a quick overview of the OpenSocial concepts and pointed us to a brief <a href="http://code.google.com/apis/gadgets/docs/gs.html">tutorial</a>.<br />
Surprisingly, that was all we needed to get started; essentially, OpenSocial gadgets are but web apps wrapped into an XML file, to be displayed within an <em>IFrame</em>.</p>
<p>Our first idea was to use TiddlyWiki to aggregate data from various social networks, turning into a sort of global dashboard for users. However, the OpenSocial API does not permit this (<em>yet</em>, according to Google).<br />
So we went for the opposite approach, embedding TiddlyWiki as an OpenSocial gadget. This opens up quite a number of interesting possibilities &mdash; for example, users composing and sharing notes.</p>
<p>The first step was to simply take the entire TiddlyWiki source code and wrap it into the required XML framework. Apart from having to deal with nested <a href="http://en.wikipedia.org/wiki/CDATA">CDATA</a> sections, this actually worked without too many problems (also thanks to the <a href="http://twitter.com/FND/statuses/783869097">gracious help</a> from a Google expert). We used <a href="http://tinytiddly.tiddlywiki.org">TinyTiddly</a>&#8216;s externalized core to save us the headache of excessive scrolling through the source code. Since gadgets are limited to a certain display size, we decided to apply a <a href="http://api.lewcid.org/chef/chef.cgi?recipe=http://svn.tiddlywiki.org/Trunk/contributors/JamesLelyveld/TiddlyMob/TiddlyMob.html.recipe&#038;stripcomments=true">theme designed for handheld devices</a><sup>[1]</sup> (created by BT&#8217;s James Lelyveld).<br />
The preliminary results can be seen <a href="http://www.flickr.com/photos/simonmcmanus/2393017903/">here</a>; the XML gadget file is located <a href="http://wikidev.osmosoft.com/FND/tinytiddly.xml">here</a>.</p>
<p>The next steps, should we decide to follow up on this, are to integrate this with <a href="http://www.tiddlywiki.org/wiki/CcTiddly">ccTiddly</a>, as this prototype does not yet provide any way for saving the inputs. Also, there are some issues with running TiddlyWiki within a frame &mdash; for example, paramifiers and direct permalinks to specific tiddlers do not work properly.</p>
<p>While I&#8217;m not a huge fan of social networks (apart from <a href="http://twitter.com">Twitter</a>, if that counts), this was a very interesting experience. Overall, the event was very enjoyable and well-organized, with quite a number of interesting attendees.</p>
<ol class="footnotes"><li id="footnote_0_20" class="footnote">using <a href="http://chef.tiddlywiki.org">Chef</a> to build it from source</li></ol>]]></content:encoded>
			<wfw:commentRss>http://fnd.lewcid.org/blog/archive/20/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ThusWare</title>
		<link>http://fnd.lewcid.org/blog/archive/17</link>
		<comments>http://fnd.lewcid.org/blog/archive/17#comments</comments>
		<pubDate>Fri, 29 Feb 2008 20:10:50 +0000</pubDate>
		<dc:creator>FND</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[observations]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[TiddlyWiki]]></category>

		<guid isPermaLink="false">http://fnd.lewcid.org/blog/archive/17</guid>
		<description><![CDATA[While reading an article about UsWare vs. ThemWare (via Jermolene), I&#8217;ve realized that TiddlyWiki, for me, has turned into ThusWare. While I started out as a regular user, the more I code for and care about TiddlyWiki, the less I end up actually using it. That of course carries the risk of losing touch with [...]]]></description>
			<content:encoded><![CDATA[<p>While reading an article about <a href="http://www.codinghorror.com/blog/archives/001066.html">UsWare vs. ThemWare</a> (via <a href="http://jermolene.wordpress.com/2008/02/29/links-for-2008-02-29/">Jermolene</a>), I&#8217;ve realized that <a href="http://www.tiddlywiki.com">TiddlyWiki</a>, for me, has turned into <em>ThusWare</em>.<br />
While I started out as a regular user, the more I code for and care about TiddlyWiki, the less I end up actually using it.<br />
That of course carries the risk of losing touch with regular users&#8217; needs, so I&#8217;ll need to get back to that original spirit. The first step in doing so will be to re-organize my diverse collection of TiddlyWiki documents &mdash; something that I&#8217;ve been wanting to do for ages, actually.<br />
I&#8217;ll report any findings here, so watch this space!</p>
]]></content:encoded>
			<wfw:commentRss>http://fnd.lewcid.org/blog/archive/17/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Community Participation in Open-Source Projects</title>
		<link>http://fnd.lewcid.org/blog/archive/14</link>
		<comments>http://fnd.lewcid.org/blog/archive/14#comments</comments>
		<pubDate>Tue, 12 Feb 2008 18:16:49 +0000</pubDate>
		<dc:creator>FND</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[communities]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[TiddlyWiki]]></category>

		<guid isPermaLink="false">http://fnd.lewcid.org/blog/archive/14</guid>
		<description><![CDATA[A recent discussion within the TiddlyWiki community has made me reexamine the community&#8217;s role in shaping open-source projects. Many people believe that the open-source principle equals grassroots democracy. However, I don&#8217;t think that&#8217;s a fair assessment. While community involvement is generally important and valuable, it is also a double-edged sword. For certain issues, opening the [...]]]></description>
			<content:encoded><![CDATA[<p>A recent discussion within the <a href="http://www.tiddlywiki.com">TiddlyWiki</a> community has made me reexamine the community&#8217;s role in shaping open-source projects.</p>
<p>Many people believe that the open-source principle equals grassroots democracy.<br />
However, I don&#8217;t think that&#8217;s a fair assessment.</p>
<p>While community involvement is generally important and valuable, it is also a double-edged sword.<br />
For certain issues, opening the debate to the community at large can prove an obstacle to making progress. That&#8217;s because discussions involving a large number of people can easily get out of hand &mdash; especially if there is no tangible concept yet to base the discussion on.<br />
Also, many tasks require a certain expertise, and should thus be delegated to qualified contributors. The <a href="http://philwhitehouse.blogspot.com/2008/01/wisdom-of-crowds.html">wisdom of crowds</a> (as <a href="http://en.wikipedia.org/wiki/The_Wisdom_of_Crowds">described by Surowiecki</a>) is no panacea, but only applies to certain kinds of decisions.</p>
<p>That is not to say the community should be excluded though. The entire process needs to be transparent &mdash; not only to avoid alienating contributors and users, but also because diverse opinions and perspectives are essential to achieving optimal results (e.g. to avoid common traps like coders&#8217; tunnel vision).<br />
But this involvement should be timed carefully. Gathering feedback on a well-thought-out concept will often be more productive than starting a discussion without a solid foundation.</p>
<p>Bottom line: In my opinion, open-source projects are more about transparency and a diverse assortment of skills, rather than forcing everyone&#8217;s direct involvement on every single level.</p>
<p>Thanks to <a href="http://lewcid.org">Saq</a> and <a href="http://philwhitehouse.blogspot.com">Phil</a> for their insights on this topic.<br />
I&#8217;d be happy to continue the discussion in the comments&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://fnd.lewcid.org/blog/archive/14/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
