abm (14) amp (18) ascape (6) biomed (6) business (22) butterflyzer (9) dharma (12) eclipse (62) emf (7) graphics (10) ip (8) java (35) life (5) osx (13) science (13) web (6) xpand (5)

Monday, January 9, 2012

Joining the Tasktop Team

Last week I said that I had some really exciting news to share, and this is it: As of today, I am part of the Tasktop team. I've long been an admirer of Tasktop, for a number of reasons...

First, as all Eclipse users know already, they've built some really cool Eclipse technology including the Mylyn task-focussed interface. But many companies have built cool open source tools...

More impressive is to take those cool ideas, discipline them and build a growing, dynamic company on top of them. But plenty of companies have also done that...

But what's really impressed me about Tasktop -- what's made me want to join rather than observe the effort -- is that Tasktop has gone far beyond the "packaged solution with bundled service and support" that typifies most open source derived business efforts. Many companies take a "fill-in-the-blank" approach to open source business models, creating a captive open source market around their offering. Tasktop has created and nurtured a healthy open source eco-system around core open source offerings, but it then re-imagines and re-purposes the technology, leveraging that technology and expertise to uniquely address real customer pain. That takes real vision, and to me it's a clear signal that the Tasktop leadership is able to imagine and execute at an entirely different energy level.

So I first approached Mik and David in the middle of last year to discuss what they were doing and how I might add real value to the effort. That lead into consulting work with Tasktop last year developing the initial implementation of what has become the Model Focusing Tools project. That was a great opportunity to get to know some of the team and the Tasktop way. Everything I saw then fit nicely with what I'd already intuited. We have a really great combination of engineering excellence, creativity, and light-weight organization.

It's nice to say "we" again after over seven years of working by myself or as part of a small team. Yes, I had a lot of close associations with very smart and capable folks through collaborative science efforts and open source projects, but it just isn't the same thing if you're not working toward a shared set of goals. And I hadn't realized just how much I'd missed having colleagues to work with on hard problems together until I got involved in that last project.

This morning as I've checked in my email, I've been getting emails from everyone at Tasktop welcoming me to the team. I must admit to a bit of cynicism about the whole "team" thing -- like so much else, it often seems an empty set of words that don't match up at all to reality -- but in this case it feels very genuine. So heartfelt thanks to everyone -- I'm working remotely so I won't get to meet you in person right away, but I look forward to it. And don't worry, you won't have to "buy me lunch". ;)

(And yes, I'm afraid to say that you'll still be seeing irreverent and irrelevant blog entries on Eclipse Planet, but I am going to try to keep a closer eye on the four-letter word count.)

Obviously I'm going to be focussed on and very occupied with my new role at Tasktop, and you may be wondering how this will affect the other efforts I'm involved in... With the new Beta, Butterflyzer has grown wings -- or for the crossword lovers out there, it's pre-Imago. That's as much as I can say right now, except I'll continue to keep a close eye on its maturation process. I'll also still be leading the Agent Modeling Platform, doing what I can in my off-time to support builds and provide project leadership. The project provides a wide-array of functionality now, and pretty decent quality. Now it is time for people who are interested in moving the ABM effort forward to step up to the plate with their own time and energy. I think the future of tools for modeling real world systems at Eclipse is very bright.

As I said last week it's an exciting time to be building software tools! I know it sounds funny, but I like to think of software development as a helping profession. That's because I think that software products really can help people live more fulfilling, interesting and even happy lives. And I'm delighted to be at Tasktop helping to create those tools.

Friday, January 6, 2012

Butterflyzer Beta

When Butterflyzer was launched a year ago it was introduced with the following words:

"Butterflyzer is in Alpha now. Before we release more polished versions, we need to know if people really want it. So if you like it and want to see a full version, follow us on twitter, and tell your friends. If we get 10 followers we'll release an alpha version. If we get 100 followers we'll release a beta. If we get 250 followers, we'll make a nicely packaged version available commercially at a decent price. Simple as that."

A minor problem.. the response was so great that we achieved the Beta milestone in a few months. And the software just wasn't there in terms of Beta quality. Plus, I felt that there were a number of key improvements to the interface and other functionality that just had to be made. So, it's been six months since we hit the milestone, and I'm happy to announce that..

The Beta is Finally Here!

Download Butterflyzer Now

We've had a Beta Preview available for some time, so many of the features won't be news to all of our users, but I think the level of polish -- if you can talk about a beta release having polish -- is pretty good. There will certainly be issues with it (that's why we have betas!) but it is otherwise feature complete and ready to go to version 1.0. If you're wondering how much work has gone into the release, I'll throw out one measure: the Beta release is Build #995. Here are just some of the many issues big and small that we've addressed along the way..

User Interface


The application just didn't fit in well with the target audience and their expectations about how web related tools should look and feel. One of the most important pieces of feedback I heard was that the interface just felt overwhelming. There is a lot that you can do with Butterflyzer, and I wanted to find a way to make that functionality easily accessible while de-cluttering the user environment as much as possible.

The Butterflyzer Alpha was a typical Rich Client (RCP) application built on the rock-solid and powerful Eclipse platform -- the same one that IBM and other leading software companies base their applications on. The downside of that is that the current Eclipse UI support is a bit stodgy. And unfortunately, while the Eclipse environment provides a lot of functionality, it is very difficult to change the overall look and feel. (E4 makes huge improvements in this area, but E4 didn't address all of our requirements and isn't quite mature enough yet.) So we went back to the drawing board, moved a bunch of stuff around, and re-implemented key existing functionality, including interface and workbench components. It wasn't simple to make these changes, but I think they were more that worthwhile. In fact, I think they were necessary. You can build the most powerful, feature-rich program in the world, but if the UI isn't any good, the only people who use it will be the people who don't have any other choice. So yep, we sweated those single pixels.

Browser Look and Feel

In the quest for simplification, Butterflyzer copies the overall presentation of a typical web browser like Safari, Chrome or Firefox. Catalogs are like browser tabs and all of the interface elements are consolidated within them. That means that we've essentially turned the typical end-user application inside out, with all of the tools and views being hosted inside each editor.

Here's what the old application looked like:


And here's chrome, our simplicity bogey:


Here's the new and improved Butterflyzer:


Why so dark?

By the way, if you've wondered why Butterflyzer employs a "light on dark" visual style, it's not that we're trying to be trendy or anything. There are sound reasons for keeping the Butterflyzer elements dark:

  1. Colors are easier to distinguish, connect and even read against a black background, and color plays a critical role in establishing implicit relationships within and between the various Butterflyzer user elements. Remember those old green and amber monitors? They really were easier on the eye.
  2. A dark background allows images to pop and reduces the sense of visual clutter, which is a critical issue given the complexity of the information visualized.
  3. Most web pages and other artifacts are black on white, of course -- keeping the Butterflyzer elements dark helps establish the web page elements as the visual foreground for the user. There is the "content manager" and then there is the "content" -- everything we can do to make that separation clear is helpful.
  4. Because we insert the semantic tags directly into the web pages, we need a way to distinguish them clearly from the rest of the web content, and we want those tags to look like the tags in the other views. OK, it's not always that attractive, but you can always turn the semantic feature off if you just want to look at the web page content.
  5. A dark background allows us to employ more obvious color highlights for buttons themselves. That's important because most of the buttons are monochrome and a simple as possible; we can then color them as appropriate for user interaction.
Plus it looks cool, right?

New Help System

We've implemented a new Help System that includes dynamic help, so that when you scroll over an interface item, you can get live help. Speaking of help, there is a lot of it! And since we have it now, I'll use it to help tell the story.


Eclipse software developers might be interested to know that the majority of the documentation is actually produced directly from our properties files. (Yes, Butterflyzer is fully designed for Internationalization, but we don't have any translations for other languages yet.) That means that we only have to maintain this information in one place. Custom Java code reads the properties and converts them to Wiki text and the help system dynamically loads the property information for context sensitive help, including links to related documentation. From there, we use Mylyn Wiki Text to generate the Eclipse Help system artifacts, online documentation, and even a PDF manual.

Palette Menus

One major goal was reducing the number of mouse-clicks needed to perform common tasks. I think that number and frequency of mouse-clicks have a large effect on end-user perception of ease of use and efficiency for an application. We needed to reduce the proliferation of toolbar buttons without causing a lot of mouse thrashing. Popup menus work fine for supporting changes in options, but they have a big usability issue. Every time you want to make a change, you have to reopen the menu. You could put options into a tool widget as many Apple applications do -- and we do that for more complex settings involving sliders -- but then users have to get rid of it when they're done. Instead, we created our own menu type that displays as long as the mouse is within the target menu area. This required replacing a lot of the normal Eclipse menu implementation.

If you still think all of those buttons are a bit bewildering, you can find out what they all do here.






Context Popups

If a mouse-click takes time and mental effort, a right-click takes even more. There is just something that feels slow and uncomfortable about the whole interaction. I think that's a major issue with the Eclipse user experience actually, and one of the reasons that people like Web interfaces so much -- you see something, you click on it, it does something. Simple. At the same time, it's even worse to have to mouse up to a toolbar to perform a common task on an item. And the worst thing of all is a hover. There is nothing like waiting for a machine that can do billions of instructions per second to take half a second to decide that you want to do something!

In Butterflyzer, we wanted to support a sense of flow when working with items. And we need commonality between the different kinds of views so that for example the options that you have when working with an item in the graph view are the same as when you mouse over the item in the browser. The solution was a context menu that appears automatically . It's still a bit experimental -- there are some usability and consistency aspects to fine-tune -- but I think it works pretty well. Currently you hold down that "CTRL" key in order to make the menu appear on any item -- having it appear in all cases made interaction a bit busy feeling.

Windows


Yes, Butterflyzer has always done Windows. Just not very well, frankly. Apologies to the legions (well, dozens anyway!) of Windows downloaders out there..we think this latest version will make you much happier.


Visualization


There have been significant strides in this critical area as well, including innovative approaches to taming, filtering, and cleaning up visualizations and related data. For more on all of that, check out this section in our comprehensive documentation.

Internals


The list of enhancements here is too long to get into, but we've put a lot of effort into creating a system that has the highest throughput and integration without compromising data integrity. It's been a challenge, and there have to be some gotchas lurking out there, but I'm really happy with how the system is handling the large volume of data that we can pull in. To see what I mean by "large volume of data", check out this page for details on what you get from a single Butterflyzer search.

Web Site


The web site has come a long way from the alpha days, where it was deliberately minimal and home grown. Please visit!

New Videos


If you want to see how this all fits together, check out the new videos:





Let's Talk!


As always, I'd love to hear from you. What are you using Butterflyzer for? What would you like to do with Butterflyzer?

One thing I'd like to mention specifically for people already involved in developing software tools for the Semantic Web: Butterflyzer is an end-user product, but there are many other opportunities for employing core Butterflyzer technology. Perhap you have proprietary or specialized Web information sources that you'd like to integrate with the Butterflyzer Content Management and Visualization services. Perhaps you'd like to license or re-brand Butterflyzer or make use of key components. Contact us and let's discus how you can use Butterflyzer to enhance your efforts.

But what I really hope is that you're someone who just wants a good tool that you can use for web research, and that Butterflyzer scratches that itch for you. I'm reading the new biography of Steve Jobs so I can't help indulging in a little reality distortion of my own -- in the best sense of that phrase, naturally. You'd never know it with all of the talk, but we're still in very early days of semantic technologies, and we're nowhere near exploring the possibility surface, let alone exploiting it. When it comes to web exploration tools, what exists now for the average user is... well, it's a lot of dumb shit, with a nod to Steve. I believe that you need a rich, powerful application to make the most of the deep store of knowledge that is out there, but it needs to be as simple as it possibly can be -- in short, a tool that opens up the Semantic Web for the Rest of Us. And that's what Butterflyzer is all about.

It's an exciting time to be building software tools! There are a lot of interesting things happening, and plenty of opportunities for all of us to make positive changes in how people around the world work and live. I've got some other really exciting news to share, but that will wait until next week...

Popular Posts

Recent Tweets

    follow me on Twitter