Hi Nick, Thank you for your great message. And thank you for your work on TimeMap.
Comments are below. I'm sure that David H and others will also have thoughts. Regards, Larry ________________________________ From: Nick R <[email protected]> To: SIMILE Widgets <[email protected]> Sent: Wednesday, February 18, 2009 4:50:15 PM Subject: Version question and comments Hello - I'm the developer of TimeMap, a JavaScript library that relies on Timeline. So far, I've been using the deprecated Timeline 1.2 API, but I want to make the library compatible with newer versions as well. This brings up a couple of questions and comments that I thought might be appropriate for this list, and I'd love to get your thoughts. Questions: 1. Is there any reliable way to determine what version of Timeline has been loaded? [A good idea. I've added issue 60 to the issues system at the Google code site and will add it. One question is what should the value be for the trunk version. The trunk version is beyond 2.2.0 but will not be the exact same as 2.3.0 until 2.3.0 is out. So should the current trunk version be "2.2.0+"? (But then its a string, not a number.) ] I'd like the library to transparently work with v.1.2 and v.2.2.0, without the end developer having to specify which version they're using. I'm pretty sure I can do this in a messy way by checking for specific objects or attributes (e.g. {if ("DurationEventPainter" in Timeline) ...} ), but I was hoping there might be a more consistent way to check this. It's a little hypocritical of me to ask, because I haven't provided this in my own library (hmm... adding now...), but what I really want is to be able to check a static var like Timeline.version that's consistently accurate. 2. Is there any point in supporting 2.x versions earlier than 2.2.0? Or is everyone who uses 2.x using 2.2.0 or the development version? [Correct, 2.1.0 was really just a placeholder to fix some inconsistencies in the svn revision numbers vs the releases. And really, the current trunk is where people should be. 2.2.0 works well, but a number of things were only partially done or not yet handled within 2.2.0. See the trunk changes.txt for all of the details. I believe that the trunk ver works well and is self consistent with one exception: the trunk zip files need to be updated to handle a change in the underlying Simile Ajax library. But downloading the trunk via svn works well.] In case you're wondering why I want to support the 1.2 version at all, there are several reasons. First, it seemed when I started this project that the 1.2 version was the most stable; this may no longer be the case. [Depends on what you mean by "stable." It has a number of bugs, most minor. It also has many fewer features than ver 2. But if you want to continue to support it, fine by me. The 1.2 branch will not disappear, but it won't be updated either.] Second, I've been worried about the ballooning size of the 2.x versions. According to Firebug, Timeline 2.2.0 is loading a full 100K more script, even when bundled, than Timeline 1.2. [Interesting. A couple of things come to mind: 1. Ver 2.2.0 has two painters in it and localization files. So depending on the usage, some of that can be removed. 2. Probably a bigger issue is the size of jQuery, it may well have grown in the year or so between 1.2 and 2.2.0. 3. As noted, more features. Not sure of the right answer there. I have pushed back against some feature ideas that I felt did not have to be part of the core library. ] I especially have mixed feelings about the wholesale inclusion of jQuery 1.2.3 - first, because my understanding is that 1.3.1 is the latest stable version, and 1.2.6 is the latest 1.2.x version, so if I want to use the latest stable releases I can't without double-loading the library. [The trunk version of Simile Ajax uses JQuery 1.2.6. So an issue is for me or others is to do a release of the Simile Ajax subproject to pick up the 1.2.6 JQuery and a number of bug fixes and features that are in the trunk Ajax project. After that, the next thing would be to try jQuery 1.3.1. To answer your bigger question of the inclusion of jquery: a) The Ajax api file is designed to not load jquery if it is already loaded. But I could easily understand if that sw is not working right, it probably isn't tested much, if at all. If you could test it, that'd be great. b) I agree that the inclusion of jquery should be looked at again. I'd prefer the writing of an api and compatibility layer that would enable libraries other than jquery to be used once the correct compatibility layer was written. Personally, I prefer the YUI library for anumber of reasons. Prototype is also popular. c) Issues at this level require the buy-in of the Timeline and Simile architects. -- It will need to be discussed, alternatives considered, etc. ] It also seems like there's a ton of functionality in jQuery that's duplicated in the SIMILE Ajax library - are you planning to eventually move entirely to jQuery, or will you keep the duplicate features? [Another good point. I've noticed the same issue. This sort of maintenance and refactoring is important to do, but never seems to get much bandwidth :-). I do think that it is important to move as much functionality as possible to a regular library and out of Timeline and the other projects. -- Hopefully via a compatibility api and layer that would not limit the choice of the underlying library. But I think other issues are higher priority: 1) More reference documentation 2) More cookbook-style docs (also know as recipes) 3) Tests, perhaps via http://seleniumhq.org/ That way we can tell if the changes are breaking anything.... There have been a number of changes to the Timeline code base which broke things. I don't really like to spend my open source time testing others' code, finding errors and then backing out their changes. So I've put emphasis on adding to the example files which I use as "poor man's tests." The real thing (Selenium or similar) would be far better. If you could help with that issue (or others), that'd be great! ] Sorry if this comes on strong - I think Timeline is a great project; I just wanted to voice a couple of comments as a developer who uses the library a lot. Let me know what you think - thanks! [ MOST important comment: THANK you for your time with Timeline and the related Simile projects. We'd really really love your help with the project, at any level. Please let us know what parts are of most interest... Regards, Larry ] -Nick --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "SIMILE Widgets" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/simile-widgets?hl=en -~----------~----~----~----~------~----~------~--~---
