I’ve just completed the 0.1 update of MadComponents, and I’ve put it up onto Google code:
MadComponents are free UI components for Adobe AIR on iPhone, Android, etc. It renders an XML description of your UI, so it is device screen size and resolution independent, and it even handles orientation changes (landscape-portrait).
For an introduction, see: http://madskool.wordpress.com/2011/03/18/madcomponents-wow/
Version 0.1 incorporates the following new features:-
1. Tree Navigation. (Each list option invokes a different list at the next level.)
2. Picker component. (Spin-able list selector)
3. DataGrid. (Tabulated data component).
4. tickOneList component. (like the tickList, but only one may be selected)
5. New “data” tag for specifying list items. (see examples below).
6. New “UI” class. UIFormStart is now deprecated.
7. Improvements to version-0.0 components.
For code examples about how to use the new features,
or download/checkout the code from http://code.google.com/p/mad-components/source/checkout
MadComponents are my contribution to free UI components for Adobe AIR for Mobile. For iPhone, or Android, etc. Buttons, Labels, Image, Lists, List Navigation, View Flipper, Pages, Tab Pages etc. The layout is described using XML. The framework handles different screen sizes and resolutions. When the device orientation changes, the user interface is redrawn and adjusted for landscape or portrait viewing:-
The ability to specify colours and styling on these components is very powerful, as seen here:-
The component library is available for download from:
And further information is available from my new blog:
Further information, and examples about MadSkool will be documented on my madskool blog, as I seem to be abandoning this RIA-related blog now, and focussing my efforts much more on mobile applications.
It’s been a while since I’ve had free time to make any progress with my pet project. e2publish is an AIR application for creating online magazines. I’ve written it for amateur enthusiasts. Not professional writers or publishing houses. Although I think that old-school publishing establishments need to be aware that technology is going to change EVERYTHING. Especially in terms of the contribution and “fan” content that will be created and manipulated by the consumers. In the old days, magazines may as well have been carved in stone, as there was no way for the reader to interact with it (apart from a few “letters to the editor”). So I see the role of publishing houses as changing (at least the role of those that survive the shake-up). As they develop technological solutions to nurture and harness creative and dynamic “fan” participation.
Just as web 2.0 applications enable anyone to “write” to the internet, rather than passively just consume and read its content. The vision of e2publish was to allow people to make their own electronic magazines.
Users can network and collaborate with each other, and share draft articles to their members of their team. It has a powerful editor with capabilities for styling and arranging text and pictures, powerful text-wrapping, and stylising the look of pages. Once published, the magazines can be accessed and read using the “reader” application, e2world.
In fact this project is so “all-encompassing” that I was a fool to embark on it in my own time, with no funding. And now that I’m getting close to a prototype that gets close to part of my vision, I’m really not sure how to popularise it or commercialise it. Any suggestions welcome. But first of all, I’m looking for beta-testers who can help me put this prototype through its paces, and help me to improve the experience.
. . . . . . . . . . . . . . . .
I’m going to describe the publication process in detail. (This time, I’m not going to talk about the powerful TLF-based document editing part, because I’ve done quite enough of that in previous blog posts.)
The AIR applications can be downloaded from http://www.e2easy.co.cc/e2publish.html
If you haven’t been following this project, you’ll find the e2publish tutorial videos helpful. Just click on the HELP drop-down menu.
In e2publish, if you click on the first icon in the toolbar “e:”, this will take you to the author discussion pages. There are many categories to choose from, and this will be the place where enthusiasts might network, and recruit like-minded enthusiasts to collaborate on a magazine together.
The team would appoint an “editor”. This is the person with a few more options and capabilities at their disposal that other team members don’t have. The editor can create a magazine (Publish->Settings…) then click on the big “new magazine” button (you can’t miss it).
After completing the form, nothing is published or visible to the “readers” at this stage. All we’ve done is created a group, and the editor can bring in new users to join this group. (editor options…->invite user).
Members of the group can discuss or share e2publish documents amongst themselves. There’s a “Magazine article pool” in which you can collect articles that you intend to appear in the next issue.
Finally, when you’ve written all the articles, you can publish the next issue of the magazine. (A magazine can have many issues, maybe monthly, or quarterly, etc.). (editor options…->publish magazine).
The publish form allows you to sort the articles into the order you wish them to appear. Or decide which ones not to include. You can write a description and upload a thumbnail to represent the issue.
Finally, you click “publish now” when you’re confident that you wish to go public with your magazine.
Now your magazine is public, and it can be viewed in e2world.
. . . . . . . . . . . . . . .
e2world is the first prototype of the “reader” application. It’s not perfect, it’s not refined, it’s not optimised. (The application could easily be a fraction of its current file size).
But I’ve used this prototype to play around with some user interface ideas, like the page curl effect when you turn a page, and the variation on a radial menu when you click on a page. Let me know what you think about these.
When you first start e2world, it displays all of the currently available magazine articles. I haven’t yet wired up a voting scheme (how many stars do you award a magazine), or the ability to subscribe. That will come later.
Click on a magazine description to download it. Viewing a magazine, you just click to bring up the “radial menu”. The menu allows you to navigate between articles, pages, back to the list of magazines (home), or a chat page for users to discuss the current article that you’re reading.
. . . . . . . . . . . . .
You can download the prototype applications from http://www.e2easy.co.cc/e2publish.html
Please, please, let me know what you think. Any bug reports or suggestions, let me know. If anyone would like to become an official beta-tester just leave a message.
The following thoughts are my response to John Mason’s recent post “Is Mike Chambers a hypocrite?” Well, It’s not really a direct response to John’s arguments. I enjoyed reading what he wrote, as it is nice to see unbiassed and fresh opinions out there. There are too many fan boys with an axe to grind. John’s post got me thinking about some issues. So it was my catalyst for the following stream of loosely related consciousness:-
For years, Flash was the only serious choice for rich media experience on the internet. The success of Flash can be attributed to innovation.
I’ve never seen open-development innovate and popularise anything really new and different. This is why I prefer closed, proprietary, patented, and commercially driven technologies. I’m no tree-hugging free and open idealist. I’ve never seen the open approach plant the seed of innovation. The open approach is only successful when the paradigm had already been defined by (closed architecture) commercially driven innovation pushing the envelope and creating the future.
But if Adobe had innovated faster – there would be more to distinguish Flash from the alternatives now. I’ve also felt held-back waiting years for features in AIR or the flash player. Perhaps they were resting on their laurels. The survival of Flash could depend on more aggressive innovation from Adobe in the years to come. I think a revision of their culture, vision, and technical leadership could be on the cards.
For Adobe, the shortest distance between two points isn’t a straight line. It’s not a path ascending the pinnacle of engineering elegance and excellence.
This is something about Adobe’s commercial approach that I DON’T like.
More often than not, their path is dictated by the maximum incentive to pay to upgrade to the next version. So we took some detours and got stuck in some cul-de-sacs. ActionScript-2. The Bloated Flex Halo Framework. The Advanced Data Grid.
The poor performance of the Flash player on the Mac platform hasn’t won Adobe many Mac allies in the current conflict. (I’m not talking specifically about Video performance – let’s not hear the excuses). To be truly ubiquitous – the performance has to be comparable across all platforms – otherwise you need to engineer your application to the slowest platform, wasting any speed advantages on the faster platform.
What I consider hypocritical about Adobe’s claims to openness is that Flash platform development is not a level playing field.
It appears to be dominated by a clique of best buddies in San Francisco. I’ve been involved in Flash platform programming for a decade. A pioneer of RIAs. Yet always outside the inner sanctum.
My biggest gripe about Adobe’s openness is that Adobe builds applications that compete with the developers who buy their products. It’s a peculiar relationship that Adobe has with its customers. On the one hand, we buy their tools, on the other hand, we compete with their developers and their applications.
While it’s unlikely that Adobe will reject your AIR application from the marketplace – but you may find yourself in a situation where you put a lot of time into a project, only to get into a situation where Adobe will throw a lot of money, development effort, and publicity into a competing product.
Maybe I’m biassed, but I always thought that e2publish, with its clever text wrapping and potential for publishing to be a much more interesting project than BuzzWord. Certainly more ambitious. Just think about what I could have achieved with BuzzWord’s development budget. Nevertheless, I didn’t like the odds of going up against Goliath – so I abandoned e2publish for a couple of years. It’s still an unfunded prototype with a lot of potential.
e2publish is an AIR application that utilises the Text Layout Framework (TLF) and Squiggly spell checking. It has two powerful text wrapping modes, and plenty of features to customise the look of document pages.
The following video tutorials provide an overview of the most important features.
Introduction: Pictures and text…
Advanced text wrapping…
Layouts: Customising page appearance…
Tables and top text shutter…
Sharing documents online…
1. e2publish can import e2spreadsheet graphs, or e2vector illustrations. You can import from your computer’s filesystem, or shared documents online.
2. Because it can import from e2vector, you can import illustrations that originated in Flash. Export them as .fxg files, import then into e2vector, then import the .e2v file into e2publish.
3. Make sure you have the latest versions of e2spreadsheet, e2vector and e2publish.
. . . . . . . . . .
These applications are beta versions. Please let me know about any bugs or feature requests. (You can leave your comments here).
A few weeks ago, Ricardo Cabello (Mr Doob) published an inspirational “procedural drawing tool” called Harmony. I was impressed by the code simplicity of Ricardo’s brush effects, their natural look, and the responsiveness and speed of an application made with HTML5 and Canvas. As a Flash/Flex developer on a Mac, I’m not accustomed to speed and responsiveness.
Anyway, Ricardo’s experiment not only caused me to consider HTML5 and Canvas more seriously, but also to try to implement some harmony-like brushes in e2vector.
I had to employ several simplifications. e2vector imposes smoothing. So drawn shapes are reduced to well-chosen few points to represent them.
I noticed that Ricardo’s brushes respond to how quickly the user makes a brush stroke. In harmony, a slower motion with the brush produces more points, and a darker impression. Unfortunately, these intermediate points would be removed by e2vector’s smoothing – so I couldn’t achieve the same effect.
Also, I tried to do smoothing on-the-fly rather than at the end, but the added computational burden compromised the responsiveness of drawing. So I had to revert to the old scheme and my brushes appear to change appearance slightly once when the brush stroke is complete. Not ideal, but computationally simpler and hence more responsive.
But e2vector brushes incorporate some novel features. Like the ability to edit the path spline of a brush, and the ability to convert any e2vector shape to a brush effect.
(Note: in this latest version, the new brushes feature isn’t entirely recognised by all parts of e2vector – for example, if you export to .svg or .fxg – you’ll just see the path. Not the brush effect. I’ll get round to fixing this when/if I have time in a later version.)
One more thing…
I’ve put some effects like twirl, pinch, and spherize in this latest build of e2vector.
e2vector (AIR application) can be downloaded here.
To be continued…
Comparing my implementation with Mr Doob’s original implementation – while I’m happy with the kinds of novel heuristics and computational complexity reduction techniques I’ve employed – I’ve compromised the “look” of brushes too much. I think I lost sight of aesthetic quality, while I got wrapped up in algorithms.
I’ve since improved the look of my brushes – and I’ll report on that soon.
All will be explained more carefully in the second instalment.
The latest update to e2publish is available from my website here.
It has several enhancements over the previous version. A new user interface. I’ve incorporated my advanced text wrapping feature. You can choose either fast or advanced text wrapping by clicking the new icons at the bottom-left corner of the page template menu.
This new version has tables, which an be styled in the same way as text boxes.
New picture options enable a picture to be displayed with a frame, rounded corners, elliptical mask, or custom shape – for text-wrapping around irregular shaped pictures.
There’s an “edit” button that allows the user to crop a picture, or define the custom text-wrapping border, by simply drawing around the picture.
Download it now from my website!. And please, please leave your comments and bug reports.