(We released a version 2.5.1 yesterday, but found and fixed a problem
with the upgrade mechanism almost immediately, hence the re-release).
The big change is the start of the process of breaking off some of the
unique bits of functionality that TiddlyWiki possesses into separate
jQuery plugins that can be used by other developers in other projects.
Besides being good to bring things like local file operations to a
wider audience, part of the benefit will be that the quality of these
pieces of code
will improve through wider usage. For this release, we've concentrated
on TiddlyWiki's cryptographic library, stylesheet manipulation
functions, and local file system code. There's some documentation here:
Besides the pluginification, there's the usual mix of bug fixes and tweaks:
- Improved separators and "more/less" extenders for toolbars
- Added plugin version information to the PluginManager
- Fixed Tags macro to respect the excludeLists tag
- Fixed problem with saving of extended tiddler fields
For the full list of changes see http://trac.tiddlywiki.org/wiki/History
Many thanks to the contributors and testers for this release. Please
let us have any comments here,
Cheers
Jeremy
--
Jeremy Ruston
mailto:jer...@osmosoft.com
http://www.tiddlywiki.com
> would the following work to bring a javascript into the current page?
> $.twFile.load(<local path to a *.js file>);
> $.twFile.init();
That alone would not suffice, as you'd only be loading the file contents
into a variable (although your sample code is missing the variable
assignment) without actually evaluating the code.
If you just want to dynamically load JavaScript files, try the following:
var filePath = "..."; // relative or absolute URI
jQuery('<script type="text/javascript">').attr("src", filePath).
appendTo(document.body);
However, if you're loading TiddlyWiki plugins there, you might run into
load-order and variable-scope issues with some of them. (See the
previous discussions on this subject.)
-- F.
Alex
Indeed it is - but that's just natural.
> I'd like some updates to the documentation [...]
I think we all agree that there remains lots of work to be done on
tiddlywiki.com - but it's nearly impossible to satisfy everyone.
I believe that much of what's been mentioned actually belongs on a site
that is maintained by the community as a whole - i.e. TiddlyWiki.org.
(There are precedents in many other FOSS communities.)
However, there have been very few substantial contributions to the
community site there.
Perhaps that's due to it being a MediaWiki instance, so we might set up
TiddlyWebWiki there at some point in the future if that's desired - but
I don't think that alone would resolve the issue.
Such a discussion is beyond the scope of this thread though.
-- F.
There was supposed to be a diff, but I guess that didn't quite
materialize yet.
Hopefully we can provide this next week - if not, please remind us over
on the developers' list.
-- F.
I think you're describing a sort of microkernel pattern, where the
goal is to move as much as possible into plugins so as to make it
easier to keep things trim by omitting sections of the code. Although
this has been discussed quite a lot on the list, it's pretty tough to
do with a mature code base like TiddlyWiki.
What we're actually doing is therefore to focus on modularising just
those bits of code that are generic enough to be used elsewhere. It's
less about enabling people to trim the core down to a minimum, and
more about improving the quality of TiddlyWiki's code through more
people using it.
Just to clarify: I don't think it was realistic to expect that end-users
would have to cook their own TiddlyWiki from various modules
While there might be some minor components that might be externalized,
the standard TiddlyWiki distribution should be a stable platform common
to all regular users.
Someone who wants a more customized version of TiddlyWiki can do so by
using Cook to assemble a version tailored to their needs. (Doing so is
likely to result in incompatibilities with certain plugins.)
> on the other side DOUBLING functionality, which for no uses or plugins
> are existing yet - as this seems the case with jQuery.twStylesheet,
> because there are already existing TW ways to toggle css.
I think this is the basic misunderstanding. There is no doubling of
functionality here.
The code that makes StyleSheet et al. work is essentially still the
same. It's only been refactored[1] (rearranged internally) to be a more
distinct module - in this case a reusable jQuery plugin - which
TiddlyWiki itself makes use of.
> Please don't take my differing opinion - by trying to look at it from
> a bigger perspective - the wrong way
Your thoughts are appreciated, as they highlight the need to more
clearly communicate changes - even though it's not always easy to
explain the significance of certain technical decisions.
> this just has a little bid the flavor of going the corporate way
Believe me, none of the core developers are "enterprisey" in the least,
and there is no pressure from BT to change that.
It's also worth pointing out here that the relation between Osmosoft and
the core-development team is mostly coincidental - it's primarily that
way because no outside developer has stepped up to become a regular core
contributor.
TiddlyWiki is neither owned nor controlled by BT/Osmosoft; it is still a
community project.[2] My own involvement, for example, is driven pretty
much entirely by personal motives rather than some corporate or
financial interest (seeing as I'm writing this very message on a Sunday
morning).
Yet (paraphrasing Chris[3]) there seems to be a perpetuating notion that
Osmosoft is solely responsible for development, documentation,
communication etc. - that I believe to be wrong and unfair.
As previously mentioned, I believe these discussions are beyond the
scope of this particular thread.
-- F.
[1] http://en.wikipedia.org/wiki/Code_refactoring
[2] http://tiddlywiki.org/wiki/UnaMesa
[3] http://groups.google.com/group/TiddlyWikiDev/msg/68c66fe468f8c29b
I'm not sure what you mean by the the "code repository for external
jQuery plugin developers".
To be clear, there have been three changes associated with jQuery:
- the inclusion of the jQuery library by default; this is the decision
that you go on to critique. There was a fair amount of discussion
before we did this; the goal was to enable TiddlyWiki to benefit from
the much higher quality browser compatibility layer in jQuery
- the refactoring of some internal TiddlyWiki functions to use jQuery
functionality where it improves performance or code size
- the refactoring of some internal TiddlyWiki functions so that they
can more easily be reused. This is something that's happened since the
beginning of TiddlyWiki; other open source developers plucking out the
unique bits of functionality in TiddlyWiki for their own projects. All
we've done is rearrange the code to make that easier. It sounds like
one of your concerns is that making this functionality into a jQuery
plugin is akin to bloat, which isn't really the case.
> The focus has already changed from TW, as now initially and
> necessarily much more efforts has to be given for advancing this new
> kind of jquery plugins, for which only few or no purposes are
> available yet - or already existing the TW way, plus ironing bugs
> which such a refactoring might bring. This is such a great task...
I'm not sure what you mean here.
> .. I slowly start to see the need for a user only oriented fork again
> - at least for the next 2-3 years.
I need to understand more about why you think this would be desirable,
and how it would differ from the TiddlyWiki we've got today.
> This can't be a one man task. Nevertheless, how about starting a TW
> fork where jQuerry can be included via MarkupPreHead, as it has always
> been the case, but doesn't has to? While including recent bugfixes and
> attracting outside developers again, to contribute and being part of a
> TiddlyWikis evolution without dependency to jQuery.
>
> What does everyone think?
I'd like to understand more why you think that the integration of
jQuery may be such a big problem. Is it primarily the issue of code
size?
> Clear communication has to occur whenever or wherever bluredness
> happens to be perceived. Otherwise it isn't really out in the open
> anymore ..therefore, lets discuss it here and now with everyone
> invited to participate - with as much mutual respect and contrarily as
> possible.
If people are interested, we could set up another conference call for
a discussion as well,
Best wishes
Jeremy
> I'm not sure if there are enough worldly wise people here to see the
> unraveling of a cohesive group taking place. An unraveling that can
> easily slide into a lowering of moral and dampening enthusiasm for
> both users and developers.
Probably shouldn't be speaking up here. I'm literally just a user.
Nevertheless, this concerns me. Some pretty important TiddlyWiki folks
have spoken up. I hope they will be listened to.
> Take the 2.5.x development out of the backstage upgrade path to foster
> certainty for users....
The wisdom of this and everything following it in Morris' post is
transparent -- at least to me, who should not count for much, but
altogether in the end we count for a lot.
I would add one other thing that I think someone -- Wolfgang? -- who
has more right to speak up than me -- the lack of documentation. The
fact that an application like TiddlyWiki should have been around so
long without systematic documentation of features, components,
guidance regarding customization, etc., etc., is a bit on the
ridiculous side. E.g., What exactly does a StyleSheet control? How's
it related to PageTemplate? And on and on and on.
I'm far from being one of the more intensive users, especially when it
comes to customization. My needs are simple and easily met with
existing capabilities. But I've been here a couple years, and the fact
that whenever I want to do almost anything I have ask people to help
me, that there is no reference I can go to to get a sense of how to
start is, again, well, ridiculous.
Regards,
------------------------------------------------------------------------------------------
Eric Weir
Decatur, GA USA
eew...@bellsouth.net
> I think this assessment isn't fair Eric.
I was aware of the respects in which my comment about documentation
was inadequate -- should I say, "inaccurate"? -- Wolfgang. Of course,
I'm aware, too, that it is an open source project.
There is a lot of documentation, a great deal of it actually. Another
manifestation of the generosity of the TiddlyWiki community. But when
you're at work and run into a problem, it's not always easy to know
where to go looking -- to what site, or in what location at that site.
It would be handy to have a manual, a compilation of components,
commands, tweaks, applications, FAQs, solutions to common problems.
Something with a table of contents and index. Not not necessarily
polished and edited for publication. Almost certainly everything
anyone would want to know has already been written up somewhere. If it
were organized and made more accessible, it would probably more than
suffice.
Another example. And again, I've been around at least a couple years.
I know vaguely that TiddlyWiki has standard "fields." Maybe some -- or
all? -- are associated with tiddlers. Looking at a TiddlyWiki, using a
TiddlyWiki, you'd never know it. I still don't know what they are or
what they're for. Maybe as a naive user who'll never gravitate to
developer, I don't need to know. Or, maybe it would be really helpful.
It would be nice to have a book I could pore over and learn about
things like that. Develop some sense of what kind of animal this
TiddlyWiki is. What it's made of. How it works.
As for being open source, TiddlyWiki is not exactly a struggling open
source project. In spite of the concerns that have been expressed on
this thread, it seems to be on relatively solid ground. It's a proven,
highly adaptable application in relatively wide use. It's got a solid
community of developers and users.
Other open source projects that make it this far develop a literature
directed at novices. Perhaps, as in some of those case, it will have
to come from outside the TiddlyWiki community.
The logic for incorporating jQuery in the core code rather than as a plugin is:
1) To allow the core code itself to use jQuery
2) To simplify writing plugins requiring jQuery so that they only need
a version check, and not the dependent plugin logic
It was the first reason that was more compelling: simplifying the
development of the TiddlyWiki core code itself.
There's a chicken/egg thing, though: TiddlyWiki, like most mature
projects, aims for a fairly slow and steady development schedule, to
try to keep the ecosystem stable for plugin authors and users. This
means that, as you observe, it will inevitably take time for the use
of jQuery to make a noticeable difference to end users.
But the chicken/egg thing is invidious. If we don't make the
pre-investment to add jQuery in advance, it's impossible for the core
code to *ever* take advantage of it.
I guess a lot of this depends on your conception of how important or
useful is jQuery. If you're not a developer it seems like a fairly
abstract thing, I guess. But you don't need to take my word for it, or
Eric's word for it: it's really a very mainstream tool, that's been
found to be useful by a great many people:
http://docs.jquery.com/Sites_Using_jQuery
The advantages of working with jQuery are very real.
> And if jQuery really would bring more general advantages, like:
>
> * better compatibility between browsers
As I've mentioned, this is one of the key advantages of jQuery: it
does an excellent job of encapsulating browser differences. This means
that new plugins or core code that's based on jQuery is much more
likely to run correctly across all browsers.
> * allowing to view a TiddlyWiki without javascript enabled browsers
> * increasing the saving speed for large TWs
For what it's worth, after the recent comments about saving speed I've
personally been spending a lot of time profiling and examining the
savechanges code. It'd be nice to give everyone a summer performance
improvement...
Many thanks
Jeremy