Tuesday, October 28, 2008
I also did an interview with Kirill Grouchnikov from Pushing Pixels. You can see the interview here
Saturday, September 20, 2008
The website (http://www.sparseware.com/sage/) has been upgraded and screen casts have been added to show the demo applications as well as demonstrate Guru. The source code for the two main demos can also be browsed online. The source code for all demos as well as the source for Sage itself is available for download on the site.
Monday, November 12, 2007
Version 0.6 Released
Version 0.6 has been released (slowly but surely making my way to version 1.0). This version is functionally complete and the APIs are relatively stable. The developer toolkit now contains a modified version of the Abeille Forms Designer. This version has a new file menu option that allows Abeille forms to be saved as SDF. Most of the property forms in the Widget Explorer were designed with this tool.
The Widget Explorer allows most of the widgets and their associated properties to be visually configured and explored in real-time. You can play around with multi-color gradients, semi-transparent background and overlay images as well as non-rectangular line borders, all of which can be combined to create some interesting visual effects. These features are supported for most widgets.
You can also check out the MS Outlook Demo again which highlights the support for gradient selection painters with custom borders and having the border (and focus rectangle) around the row instead of the column (when columns are not selectable)
A note on colors:
- plus and minus (+- ) are used to adjusts luminance
- when using hex, you can specify the alpha value for a color by adding it to the end of the normal 6 character hex string (e.g. #ffffff80 gives a 50% transparent white) or if you use a named color then you can say “white@50” to get 50% transparent white.
- you can type any shorthand color value into any of the color fields and it will resolve to the correct hex color value
Sunday, August 12, 2007
Introducing Sage
Sage is the realization of an idea I had about 11 years ago after I had built my first Netscape plug-in to provide a table widget capable of doing things that table widgets do in typical desktop applications. I wanted to be able to build desktop caliber apps that are built the way web applications are built, using a markup language to describe the UI and scripting to control the interactions. I also wanted them to be URL centric, such that all resources and data are accessed via an URL.
MS Outlook happens to be one of the three most used applications on my desktop (the other two being FireFox, and NetBeans). One of the goals I had for Sage was to be able to build a UI that looks and functions just like Outlook by simply using markup and scripting. I also wanted the applications capable of being run standalone without the need for a web browser but to also able to be launched via a web browser. Another key requirement was the data model. While there are a number of existing tools out there that allow you to do some of these things, none that I know of, fully addresses the issue of easily populating widgets with data and providing the widgets with some understanding of how to render the data (fonts, colors, action links, icons, tooltips, drag and drop, etc). Basically, to be able to not just markup the UI but also markup data (similar to what you would do if the data was being presented via a web page), yet still able to do typical client-side data manipulations like sorting, filtering, drag and drop etc. It is not that some of these things are not possible with the current technologies, it is the effort required to do them is what I had an issue with.
Thus was Sage born, built on Java (because of the proliferation of the runtime and commercial and open source libraries available), and Swing (because it is written in Java so I could fix bugs and make changes as needed). I do hope to have a .Net version someday. Sage is still in its infancy but the functionality is comprehensive enough and it is stable enough to be officially unveiled to the public. As you might expect, documentation is sparse but there are a couple of full fledged examples (including a MS Outlook clone), and the source code for the engine is also available.
PS. Some of the icons in the MS Outlook clone may be copyright Microsoft. So if you feel the urge to take the demo and make it a real mail application, please change the icons. The icons for Outlook were used merely to demonstrate the ability to easily markup a UI that looks and functions like Outlook.