This page contains recent announcements related to the project.
|
posted Jul 25, 2009 7:03 AM by Riccardo Govoni
posted Jul 24, 2009 5:18 AM by Riccardo Govoni
Lots of new changes have been released today. New SamplesTwo new samples are available for you to play with: - js/sample/picasa.js : fetches 200 pictures via JSONp from Picasa and use Rhizosphere to slice'n'dice them. It shows how Rhizosphere can mimic a traditional desktop with photos scattered around.
- js/sample/bugs.js : displays a sample of issues extracted from chromium issue list. It demonstrates how an Agile project tracker ( like Mingle ) could look like if built on top of Rhizosphere.
You can try both of them by going to this page, and typing in the javascript file paths shown above.
Date FilterA new filter is available, that allow you to filter dates: full dates or partial ones (years, months, days). It supports both filtering and bucketing. Bucketing can be customized by year, year and month or full date.
|
posted Jul 23, 2009 4:03 AM by Riccardo Govoni
After much work, I completed the rewrite of Rhizosphere initialization sequence. This was badly needed because the previous version imposed to much burden whenever a new piece of functionality was to be added. However, this rewrite is not 100% backward-compatible with the previous version, and you may have to apply very small fixes to your codebase.
What Changed
Previously, the implementation of Rhizosphere widgets and components (such as the layout manager, the dynamic filters and so on) was heavily fragmented. The static UI used to reside in the html file containing Rhizosphere chrome (rhizo.html or ig.xml depending on the case) and all the dynamic pieces were scattered through a number of javascript files (mostly in rhizo.ui.js, but not only there). Having all the widgets chrome in an html file imposed serious limitations. For example rhizo.html used to contain the chrome for both the 'normal' rendering and the 'mini' one, with the javascript initialization logic removing part of the DOM depending on the current rendering mode. It also made very difficult to have optional widgets, with the user deciding what to have or not. It was not easy (or entirely not possible) to customize the set of functionalities provided by a Rhizosphere desktop (for example, removing 'actions' support, which is still in its early stage).
The current rewrite introduces a modular initialization sequence, where the final rendering is defined by the assembly of multiple components. A component represents a piece of the Rhizosphere UI (for example: the layout engine selector, or the debug console) and is implemented as a single javascript object that knows a) how to render the component and b) how to react to the events it generates and, in general, how to handle its dynamic nature. The user can then choose what components to include in its Rhizosphere UI. So, for example, it is extremely simple to have a Rhizosphere deployment with no Actions, or no Console, or without layout management.
For futher informations, look at rhizo.ui.component.js ( in particular at the StandardTemplate and MiniTemplate objects). This rewrite includes several benefits. The init sequence now includes a progress bar, making the user aware of the different loading steps to bootstrap Rhizosphere and improving load-time debugging.
More importantly, the Rhizosphere UI can now be rendered inside any DIV element. It doesn't require a full html page anymore! Starting Rhizosphere in a custom DIV is as simple as this:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/DTD/strict.dtd"> <html> <body> .... your html page ... <div id="rhizosphere-container"> </div>
<!-- include jquery and rhizosphere js code here --> <script src="jquery-1.3.2.min.js" /> <script src="..." />
<!-- Start rhizosphere --> <script type="text/javascript" charset="utf-8"> $(document).ready(function() { var options = {autoSize: true}; var model = "http://yoursite.com/yourmodel.js"; rhizo.bootstrap.go($('#rhizosphere-container'), options, model); }); </script> </body> </html>
et voila'! For a complete example, look at rhizo.html .
A few caveats apply: - it is still not possible to have multiple Rhizosphere UIs in the same page. Rhizosphere still relies on a number of global variables and global DOM elements that need to be resolved in order to make it possible.
- Although it's now possible to customize the UI via components, it's still not possible to customize Rhizosphere capabilities. For example, it's not possible yet to prohibit dragging, or model selection. All the supported capabilities are always active, even if you might not want to use them.
Both these items are currently being worked on. What changes do I need to apply to my code?Because of the changes in the initialization sequence, you might need to change your code a bit.
First, the miniRender option (see Developer Docs) has been renamed to miniLayout . Update any references you have in your code.
If you use plain javascript files as your models, you need to change the way you initialize rhizo.Project objects. Before you used something like this:
var metamodel = ... var renderer = ... var models = ... new rhizo.Project(metamodel, renderer, globalOptions); $p.deploy(models);
Now change your code to behave like this:
rhizo.bootstrap.setRenderer(renderer); rhizo.bootstrap.setMetaModel(metamodel); rhizo.bootstrap.deploy(models);
Is the old version still available?Yes. The old version has been frozen in the v1 tag. But be aware that such version is no longer maintained and new features will only be released on top of the new architecture. |
posted Apr 6, 2009 1:04 PM by Riccardo Govoni
[
updated Apr 10, 2009 12:53 PM
]
Following the initial experiments with a cards game based on Magic the Gathering, initially appeared on a DevX.com article I wrote in December 2008 and demoed by this youtube video, Frieder Widmann started playing with Rhizosphere and is creating a first draft implementation. You can see the first screenshot on the left (click on thumbnail for a full size image). Can you imagine a Rhizosphere-powered desktop where you can play your battles laying out your cards carefully? Stay tuned for updates ! |
posted Mar 10, 2009 8:04 AM by Riccardo Govoni
Rhizosphere is built on top of jQuery and relies on it for most of its infrastructure. It also uses various jQuery UI components to handle drag&drop, selection management, effects and widgets ( most notably, the sliders ).
Today a new, updated version of Rhizosphere has been rolled out to support the latest jQuery 1.3.2 and jQuery UI 1.7. There are not that many visible changes ( apart from the now-themed sliders ), but performance have improved thanks to the many improvements.
Give it a try! | |
posted Dec 31, 2008 4:00 AM by Riccardo Govoni
[
updated Dec 31, 2008 4:10 AM
]
I have recently published a couple of articles on DevX.com that illustrate both the backend code that powers Rhizosphere and some upcoming features: The former is an introduction to the Javascript language and some of the powerful paradigms that are used in Rhizosphere code, such as functional programming and closures. The latter describes the very algorithms that power Rhizosphere dynamic features, such as selection management, elements movement, endless desktop panning and more. If you are looking for some introductory material to get started with the Rhizosphere codebase, this is probably a good place to start from. Additionally, it also introduces an upcoming Rhizosphere feature : Zooming ! You will soon be able to zoom in and out of your visualizations. Watch the video on the right for a preview. You can also download the source code attached to the article and start playing with it while you wait its integration into the main codebase. |
Rhizosphere upcoming features
|
posted Nov 25, 2008 8:02 PM by Riccardo Govoni
The latest Rhizosphere code now supports sliders with custom scale mapping!
So far Rhizosphere used the default sliders provided by the JQuery UI framework. These works really good for integer scales, but do not handle properly non-integer scales, such as small decimal scales.
Changeset 93 introduces the support for custom mappers that can be applied on top of a slider. These mappers take care of converting values from your model scale to a scale suitable for a UI slider and viceversa.
It is now really easy to create sliders that span over data ranges that couldn't be handled before. The image shows you a couple of sliders that cover a range of few decimal values, with a granularity of .01 and 0.001.
Since the data-mapping is completely type-agnostic, it is easy to create sliders whose range is not even numeric, such as date sliders, or alphabet sliders! I will soon post an example that demonstrates this! |
posted Aug 24, 2008 5:41 PM by Riccardo Govoni
A new version of Rhizosphere is available and it provides 2 new amazing features!
- Touchscreen support: Rhizosphere is perfectly usable with a touchscreen (as you can see from the image here on the side) and is also a lot of fun! All the Rhizosphere paradigm of dragging things around, selecting and filtering them is much more natural now that you can do it with your finger or a stylus! See the Videos page for a demonstration.
- If you combine this with the fact that Rhizosphere supports a small screen rendering suitable for portable devices, you can even start playing with it on your iPhone! ( more structured support for this is coming soon ).
- the Endless Desktop : when you have big datasets, or extensive visualizations, often the available screen estate is not enough. Now Rhizosphere supports a scrolling and panning mode that gives you a full unlimited desktop to organize your items around !
- If you are familiar with the way Google Maps allows you to move around over the globe ... this feature is pretty much the same, with the difference that you can now navigate over your data! And thanks to some reasonable design choices, panning is still fluid even when you have hundreds of elements on the screen.
Wanna see more?See the Videos page for a demo of the new functionalities.
Wanna try it? Try the prototype. You can get a good example to get started with the new features by typing js/sample/usa.js in the textbox and clicking the Go button.
|
|
posted Aug 18, 2008 6:00 PM by Riccardo Govoni
| Elements in the Tree layout can be positioned in a vertical fashion, in addition to the horizontal one. This has been introduced with revision 77 and 78 . This is particularly useful to display very flat trees ( trees that have an high child:parent ratio ), since it optimizes the available screen space. |
posted Aug 18, 2008 8:19 AM by Riccardo Govoni
| As of revision 69, Rhizosphere now supports a tree layout.
As you can expect, it is completely dynamic and it rearranges itself whenever you remove nodes or apply filters. You can also have multiple roots. This layout is extremely suited to display organizational charts. To test it : - go to the Prototype
- open the js/sample/people.js file
- choose to keep items ordered by Tree and define that parent is defined by the Parent field.
- Click the update button.
|
|