XUL with a Ribbon

I was just goofing around, trying to see what spiffy new UI patterns we could make using XUL. I thought I’d try creating an Office 2007 ribbon style toolbar. My current result is shown here:


I had my mouse over the “cut” button, therefore it is highlighted. Couple of points:

  • I need to add images to the selected tab to give it a rounded look.
  • I have not added any gradients to the ribbon because its harder than it should be. We should add something to CSS to make this easier.
  • I want to add more control types to the example. A dropdown button will be really easy. It will also be easy to add the dialog launchers too
  • I have already started to think about the XBL version of this 🙂 .

Silverlight 1.1 Alpha

Microsoft announced Silverlight 1.1 Alpha at MIX07 today. It’s a perfect example of what Microsoft is capable of doing with its formidable set of resources. Justin Van Patten has a post outlining the new features. Its quite a list:

* Managed code support
* Support for dynamic languages including Managed JScript and Python
* Rich UI control model based on WPF
* Improved networking stack with support for REST, RSS, JSON, POX
* Enhanced, 2-way HTML/AJAX Bridge
* Comprehensive and consistent base class library
* Support for LINQ (LINQ to Objects, LINQ to XML)

The Silverlight community site has several interesting quickstarts that give an indication of the feature set (and the integration with other Microsoft tools). C# and Visual Basic support in a 4+ MB (Windows) and 10+ MB (Mac) download.

It has certainly become a platform for RIA development (Silverlight 1.0 Alpha was nowhere near a platform). Adobe has a very formidable competitor. Microsoft’s developer support is usually very good and you can be sure they will attempt to win Flash converts at the developer level. The Expression tools (v2 will have Silverlight support) may also start to win over some designers too.

Makes me wonder when .NET desktop application development (WPF) will start to appear on the Mac.

FUEL Project Status – 0.1 Lands

FUEL 0.1 landed on the trunk yesterday. Progress had slowed since the last update mainly due to John and I having so many other balls in the air. For those intrepid enough to play with 0.1, you can use the API on the wiki and the code in the unit tests as examples.

The wiki has the plans for 0.2, which should have more features for extension developers to use. The Browser and BrowserTab helpers alone should make life easier.

Tapestry – Yahoo Mail on XUL

I came across an interesting application of XUL and the new Yahoo email web services via Ryan Kennedy. The application is called Tapestry and its a neat little XUL-based email client. From Ryan’s post:

One person in particular, Gopal, was already building something with the web service. I had been in contact with him previously over email and had heard about his application. He invited me down to his desk to have a look and to help debug a few things. What I saw caused my jaw to drop. Gopal had built a XUL interface to Yahoo! Mail using the web service for communication with the backend. It was fast, it was pretty and he had managed to pull off client-side message threading.

Gopal’s post has more details on how he built Tapestry, as well as links to code. Very cool!


Boston Developer Day Wrap-up

The Boston Developer Day was a great time. The group was a bit different than the Mountain View Developer Day. There were many individual attendees, whereas Mountain View had more group attendees. Overall, the attendees were more vocal in Boston too. We also tweaked the schedule to make the lightning talks shorter and more focused – Just say your high points, show your demo and get out. We were able to get to the breakout sessions faster.

Instead of 2 separate breakout sessions, we decided on a single track with hour long sessions. This seemed to work better than separate sessions because it created a bigger group which led to more discussion. We ended up with the following breakout sessions:

  • Streamlining the Mozilla build system – Benjamin Smedberg & Ted Mielczarek: Lots of config and make and client.mk discussion. Benjamin’s blog discusses much of the background on his (and now Ted’s) efforts to move to something more Python in it. We also discussed a little about when extension developers should try to build Firefox and when they should not even think about it.
  • Teaching Mozilla – Dave Humphrey: Dave discussed the success Seneca has had with incorporating Mozilla into curriculum. We also talked a lot about mentoring new Mozilla contributors and extension developers. We covered IRC etiquette, nice-to-have documentation and the various sub-communities inside Mozilla – contributors, extension developers and localizers.
  • Extension security and signing – Window Snyder: This ended up being a rather long discussion of the value of signing extensions and how we can work to contain trojan extensions, should one appear. We talked about AMO‘s security measures and what extension developer’s should use as best practices to get an extension reviewed faster on AMO – no binary components!
  • 3D extensions to <canvas>Vlad Vukićević: Vlad showed a quick demo of an extension that adds 3D capabilities to <canvas> much like the one he did in Mountain View. This time the discussion focused much more on how a 3D <canvas> API could be used to enhance web pages and web apps. We also talked about the next phases – where 3D could be used in the browser UI itself and where 3D features could be controlled in CSS. Vlad should have a blog post and demo ready soon. Channy did a short video of the demo.
  • FUEL and a cool UI effects library – John Resig & myself: We covered much of which I blogged about from the Mountain View. But the discussion leaned more toward how-to implement FUEL and Effects.

Boston Developer Day blogging links:

  • Seth Bindernagel has some posts covering the day.
  • Channy Yun has a post with photos and movies.
  • Eric Shepherd also has some posts during the day.
  • Dave Humphrey did a pre-day post. I suspect he’ll have a post-day post as well.
  • Mike Beltzner – Mr. Versatility

Wow, 2 developer days in 6 days on both coasts is a bit exhausting. But it was a great learning experience and I got to hear from so many Mozilla platform (extensions and XUL apps) developers that I can’t wait to do the next one. Let us know where you think we should have the next one.