Side by side diffs that look great, all in the browser

We knew that we needed VCS support for Bespin. We also knew that we wanted to have support that is richer than just having command line access. Since we are in a rich UI environment we can do more, and one of the features I was excited to play with was diff visualization.

Well, the Atlassian FishEye crew just popped up with a preview of side by side diffs in the browser and the looks great, similar to FileMerge and the like. Pete Moore takes us on a walk through:

  • Share/Bookmark

Chrome Extensions and webOS Applications look quite similar

Reposted from my personal blog

appsandextensions

“If you squint, Chrome Extensions and webOS applications look similar” — a wise friend

Having now written webOS applications and Chrome Extensions I have been struck by how similar they are, and could be.

It may seem weird to see similarity in a browser extension mechanism and a mobile application runtime, but when you look at it, there is plenty to share at a high level:

Breaking out of the sandbox

Both worlds need to break out of the web browser sandbox. Extensions can’t be restricted to the same limitations and Chrome Extensions have various API that relate to UI elements in the browser, as well as getting access to more.

On webOS we have exactly the same issue. When building native applications on webOS you can’t have the same restrictions and thus new APIs, UI widgets, and services.

This issue goes beyond even these too worlds, and is one of the big challenges for Web runtimes in the near future. I expect my runtime to be able to do a lot more and to get access to my data not just through third party server side services, but locally too. This all brings us to…

Permissions

The Web needs a permissioning model. The sandbox doesn’t give us enough, and although people quickly talk about security (which is critical) we forget what happens if the user can’t do something through the Web. They often will download an .exe to their local computer and will just run it, not knowing anything about what it does.

A big challenge for us is to come up with a model that doesn’t Do A Vista and drive our users nuts. We have to balance the desire to not ask the user for something all the time, while making sure the user knows what is happening. For power users at least, I favour the idea of showing me what is going on. Even if I grant an application a lot of power, if I could see when and what it was doing it would help. Of course, being able to restrict access to APIs is fantastic, especially when you get to layer social trust on top of the technical security. The Mozilla team talked a lot about just this and I look forward to more of their ideas and implementation.

(You can see an example of how Chrome does permissions with Cross site XHR.)

Application Bundle Info

The permissions and other metadata need to live somewhere. We have a appinfo.json file that has you declare info on your app. Chrome has a manifest.json.

On the Web we don’t really have this. You hit a URL and you bootstrap from there. The HTML5 manifest does tell the browser which files are in scope for caching and the like, but that is about it. Applications and extensions can tell the system much more. You have ids, versions, pointers to update, icons, main launching points or not…

Headless Chickens

You don’t often think of a headless web app. You can think of headless applications and extensions though. How many services are running on your computer now that have no UI? On webOS you can noWindow away and still provide value through the various services that we offer, the obvious being the rich and varied notification styles. Background apps are nicely supported.

Chrome Extensions have the notion of a background page as a way to manage a long lived lifecycle. Your background page is a singleton:

In a typical extension with a background page, the UI — for example, the browser action or page action and any options page — is implemented by dumb views. When the view needs some state, it requests the state from the background page. When the background page notices a state change, the background page tells the views to update.

In webOS and the Mojo framework we have a rich MVC system with a detailed lifecycle as well as the simple ability to define models, views and controllers.

And on

The more I look at these worlds, and others like them (e.g. Jetpack) the more I hope we come together. There are similar needs, and when you look from Chrome Extensions to Chrome OS, you can see a potential progression if done right.

My first post in the series talked about how the Web runtime is jumping out of the browser and giving us new areas to target our skills and code.

  • Share/Bookmark

The Maturation of a Framework; qooxdoo reaches 1.0

qooxdoo

From the moment I saw qooxdoo, I felt they had an excellent & very polished set of functionality as well as insanely rich UI controls but I never took the time to look at the commitment that the team had put into this project. So when qooxdoo project lead Andreas Ecker buzzed me to tell me that the framework had reached 1.0, I decided to take a peak at the history of the project (at least in terms of first available downloads). I looked at the QooxDoo download repo and was surprised by how mature this project is. When you consider that the project was first registered on SourceForge in January, 2005 and made their first available version of qooxdoo on May 9th, 2005, it shows that an incredible amount of effort & dedication has gone into cultivating the project and framework.

The results are very obvious as qooxdoo v1.0 sports one of the richest feature sets of any JavaScript framework. Apart from the standard JavaScript syntactical sugar and DOM traversal/manipulation capabilities found in all JS libs, qooxdoo’s suite of UI controls are outstanding and are comparable to any of the best UI libs available. Looking at their showcase of demo apps, you can see how appealing the controls & layout capabilities are.

qooxdoo-grid

And it really does focus on the “framework” aspect of things with support for internationalization, dependency resolution, integrated unit & functional testing, build management and more.

There is much more offered in qooxdoo, however, than just a large set of widgets, powerful layout managers and virtually unlimited theming capabilities. As a full-fledged application framework, it comes with an integrated, platform-independent tool chain that covers the entire range of app development and deployment – code validation, JS compiling and linking, compression and optimization, just to name a few. Other built-in tools allow for easy unit testing, automated GUI testing, searchable API reference, or cross-browser debugging a la Firebug. Mastering large-scale JavaScript applications is greatly facilitated by build process features such as automatically combined images (”sprites”) or transparently breaking up an app into various parts that are loaded on-demand.

So congratulations to the qooxdoo for reaching a major milestone in your project. The methodical approach for your releases has certainly paid off as qooxdoo v1.0 looks great!

  • Share/Bookmark

EtherPad Goes Open Source

Following their recent acquisition by Google, AppJet announced they would open source EtherPad, the collaborative, real-time, notepad. That’s now done, and you can find the project home at – surprise, surprise – Google Code.

Checkout Instructions

Browse the Source

What’s especially cool about this is that Etherpad is Javascript on both sides of the wire. In a new ReadWriteWeb article on Server-Side Javascript, I wrote that EtherPad is probably the most popular site powered by Javascript (anyone want to up the ante?). As server-side Javascript is getting interesting again, with Comet a major driver, it’s a big deal that we now have the entire source tree for a Comet-style, server-side Javascript, application that’s been proven in the real world.

AppJet also released appjet.jar when they discontinued the general server-side Javascript platform earlier this year. Unfortunately, the download link is broken on AppJet.com, so I don’t know if there’s any way to get hold of the official version. It does, however, live on as a cloud-hosted offering at JGate.

  • Share/Bookmark

Project Ares: Full mobile development environment from Palm all in the browser

ares_thumb

Project Ares is the first mobile development environment hosted entirely in a browser, lowering the barriers for web developers to jump into mobile development.

I am incredibly excited to see the beta release of Project Ares which has been developed by Matt McNulty and his top notch developers at Palm. I am honored to be working with them.

This project is so exciting as the team has managed to kill a couple of birds with one stone. Creating webOS applications has always been simple for Web folk, but with the layout builder you have a UI up and running in an incredibly short order. I am also very proud that we put our money where our mouth is by developing our tools on the Web platform itself. All you need to get going is a Web browser.

The integration features are fantastic too. You can take your application and preview it live, run it in the emulator, or send it all the way to a device, right from the browser!

There are many great features:

Drag and drop Interface Builder

arescomplexlayout

The UI builder is pretty great. It has a very rich layout system that shows how the constraints of a mobile environment allow you to make life a LOT easier for developers.

There are several layout panels that control how widgets are laid out:

  • VBox Panel: The default behaviour. Widgets are laid out in a vertical stack
  • HBox Panel: Same as VBox but horizontally
  • Absolute Panel: Position widgets exactly where you want them, but watch out for orientation and for supporting multiple screen sizes!
  • Combining panels: You can recursively embed panels within panels to get you the advanced layout that you need
  • Scroller: a special panel that will scroll (default is off)
  • Drawer/Collapsable: show and hide internal content

Debugging

Fancy a step through debugger? Now you have one. Easily and visually debug your code in real-time.

Code Editing

I am also proud that Ares uses the Bespin code editor, and this is the first time we have seen the debugging integration at work. I want to thank the Bespin community for continuing to deliver a web based code editor and look forward to see that evolve along with Ares. I do want to make it crystal clear that Matt and his team did this work, as some will incorrectly surmise that Ben and I went over to Palm to do this, and we didn’t. We are incredibly supportive of the work that Matt and his team have done though and love working with them.

Log viewer

webOS has a log system and the built in log viewer is fantastic.

Source Control

It is important to be able to get your files in and out of cloud based editors, and VCS support is available with more coming.

One click access to a lot

Create a new project. Create a new scene in an application. All available from a click in the browser.

Drag and drop file upload

The bottom left area can be a zone for you to upload a file and have it zoom to the cloud.

Preview apps

Because webOS is a Web runtime based on WebKit and V8, and the Mojo framework sits on top of it, you can preview your applications just in a Web browser. Think about that for a sec ;) We don’t mock out the services…. but you can get your UI just right, and when you are ready you can quickly deploy to the webOS emulator or device!

Can you tell I am excited? I know how Web developers need better tools, and I think this is a great one for mobile development. This is just the beginning too. There are many features that will make life even easier for us developers. In fact, if you have suggestions please join us for a chat!.

Finally, check out how well the app runs. It has surpassed my performance expectations, especially considering how rich the feature set is. Ben and I created Bespin to see if the Web was ready for a desktop class application of that nature. Ares has stepped up and gone even further to prove what the Web can do. I have a great feeling about 2010 as we see the fruits of browser innovation, increased support of HTML5 features, and great work that you all do.

Disclosure: Ben and I work for Palm :)

  • Share/Bookmark

Project Ares: Full mobile development environment from Palm all in the browser

ares_thumb

Project Ares is the first mobile development environment hosted entirely in a browser, lowering the barriers for web developers to jump into mobile development.

I am incredibly excited to see the beta release of Project Ares which has been developed by Matt McNulty and his top notch developers at Palm. I am honored to be working with them.

This project is so exciting as the team has managed to kill a couple of birds with one stone. Creating webOS applications has always been simple for Web folk, but with the layout builder you have a UI up and running in an incredibly short order. I am also very proud that we put our money where our mouth is by developing our tools on the Web platform itself. All you need to get going is a Web browser.

The integration features are fantastic too. You can take your application and preview it live, run it in the emulator, or send it all the way to a device, right from the browser!

There are many great features:

Drag and drop Interface Builder

arescomplexlayout

The UI builder is pretty great. It has a very rich layout system that shows how the constraints of a mobile environment allow you to make life a LOT easier for developers.

There are several layout panels that control how widgets are laid out:

  • VBox Panel: The default behaviour. Widgets are laid out in a vertical stack
  • HBox Panel: Same as VBox but horizontally
  • Absolute Panel: Position widgets exactly where you want them, but watch out for orientation and for supporting multiple screen sizes!
  • Combining panels: You can recursively embed panels within panels to get you the advanced layout that you need
  • Scroller: a special panel that will scroll (default is off)
  • Drawer/Collapsable: show and hide internal content

Debugging

Fancy a step through debugger? Now you have one. Easily and visually debug your code in real-time.

Code Editing

I am also proud that Ares uses the Bespin code editor, and this is the first time we have seen the debugging integration at work. I want to thank the Bespin community for continuing to deliver a web based code editor and look forward to see that evolve along with Ares. I do want to make it crystal clear that Matt and his team did this work, as some will incorrectly surmise that Ben and I went over to Palm to do this, and we didn’t. We are incredibly supportive of the work that Matt and his team have done though and love working with them.

Log viewer

webOS has a log system and the built in log viewer is fantastic.

Source Control

It is important to be able to get your files in and out of cloud based editors, and VCS support is available with more coming.

One click access to a lot

Create a new project. Create a new scene in an application. All available from a click in the browser.

Drag and drop file upload

The bottom left area can be a zone for you to upload a file and have it zoom to the cloud.

Preview apps

Because webOS is a Web runtime based on WebKit and V8, and the Mojo framework sits on top of it, you can preview your applications just in a Web browser. Think about that for a sec ;) We don’t mock out the services…. but you can get your UI just right, and when you are ready you can quickly deploy to the webOS emulator or device!

Can you tell I am excited? I know how Web developers need better tools, and I think this is a great one for mobile development. This is just the beginning too. There are many features that will make life even easier for us developers. In fact, if you have suggestions please join us for a chat!.

Finally, check out how well the app runs. It has surpassed my performance expectations, especially considering how rich the feature set is. Ben and I created Bespin to see if the Web was ready for a desktop class application of that nature. Ares has stepped up and gone even further to prove what the Web can do. I have a great feeling about 2010 as we see the fruits of browser innovation, increased support of HTML5 features, and great work that you all do.

Disclosure: Ben and I work for Palm :)

  • Share/Bookmark

Project Ares: Full mobile development environment from Palm all in the browser

ares_thumb

Project Ares is the first mobile development environment hosted entirely in a browser, lowering the barriers for web developers to jump into mobile development.

I am incredibly excited to see the beta release of Project Ares which has been developed by Matt McNulty and his top notch developers at Palm. I am honored to be working with them.

This project is so exciting as the team has managed to kill a couple of birds with one stone. Creating webOS applications has always been simple for Web folk, but with the layout builder you have a UI up and running in an incredibly short order. I am also very proud that we put our money where our mouth is by developing our tools on the Web platform itself. All you need to get going is a Web browser.

The integration features are fantastic too. You can take your application and preview it live, run it in the emulator, or send it all the way to a device, right from the browser!

There are many great features:

Drag and drop Interface Builder

arescomplexlayout

The UI builder is pretty great. It has a very rich layout system that shows how the constraints of a mobile environment allow you to make life a LOT easier for developers.

There are several layout panels that control how widgets are laid out:

  • VBox Panel: The default behaviour. Widgets are laid out in a vertical stack
  • HBox Panel: Same as VBox but horizontally
  • Absolute Panel: Position widgets exactly where you want them, but watch out for orientation and for supporting multiple screen sizes!
  • Combining panels: You can recursively embed panels within panels to get you the advanced layout that you need
  • Scroller: a special panel that will scroll (default is off)
  • Drawer/Collapsable: show and hide internal content

Debugging

Fancy a step through debugger? Now you have one. Easily and visually debug your code in real-time.

Code Editing

I am also proud that Ares uses the Bespin code editor, and this is the first time we have seen the debugging integration at work. I want to thank the Bespin community for continuing to deliver a web based code editor and look forward to see that evolve along with Ares. I do want to make it crystal clear that Matt and his team did this work, as some will incorrectly surmise that Ben and I went over to Palm to do this, and we didn’t. We are incredibly supportive of the work that Matt and his team have done though and love working with them.

Log viewer

webOS has a log system and the built in log viewer is fantastic.

Source Control

It is important to be able to get your files in and out of cloud based editors, and VCS support is available with more coming.

One click access to a lot

Create a new project. Create a new scene in an application. All available from a click in the browser.

Drag and drop file upload

The bottom left area can be a zone for you to upload a file and have it zoom to the cloud.

Preview apps

Because webOS is a Web runtime based on WebKit and V8, and the Mojo framework sits on top of it, you can preview your applications just in a Web browser. Think about that for a sec ;) We don’t mock out the services…. but you can get your UI just right, and when you are ready you can quickly deploy to the webOS emulator or device!

Can you tell I am excited? I know how Web developers need better tools, and I think this is a great one for mobile development. This is just the beginning too. There are many features that will make life even easier for us developers. In fact, if you have suggestions please join us for a chat!.

Finally, check out how well the app runs. It has surpassed my performance expectations, especially considering how rich the feature set is. Ben and I created Bespin to see if the Web was ready for a desktop class application of that nature. Ares has stepped up and gone even further to prove what the Web can do. I have a great feeling about 2010 as we see the fruits of browser innovation, increased support of HTML5 features, and great work that you all do.

Disclosure: Ben and I work for Palm :)

  • Share/Bookmark

Project Ares: Full mobile development environment from Palm all in the browser

ares_thumb

Project Ares is the first mobile development environment hosted entirely in a browser, lowering the barriers for web developers to jump into mobile development.

I am incredibly excited to see the beta release of Project Ares which has been developed by Matt McNulty and his top notch developers at Palm. I am honored to be working with them.

This project is so exciting as the team has managed to kill a couple of birds with one stone. Creating webOS applications has always been simple for Web folk, but with the layout builder you have a UI up and running in an incredibly short order. I am also very proud that we put our money where our mouth is by developing our tools on the Web platform itself. All you need to get going is a Web browser.

The integration features are fantastic too. You can take your application and preview it live, run it in the emulator, or send it all the way to a device, right from the browser!

There are many great features:

Drag and drop Interface Builder

arescomplexlayout

The UI builder is pretty great. It has a very rich layout system that shows how the constraints of a mobile environment allow you to make life a LOT easier for developers.

There are several layout panels that control how widgets are laid out:

  • VBox Panel: The default behaviour. Widgets are laid out in a vertical stack
  • HBox Panel: Same as VBox but horizontally
  • Absolute Panel: Position widgets exactly where you want them, but watch out for orientation and for supporting multiple screen sizes!
  • Combining panels: You can recursively embed panels within panels to get you the advanced layout that you need
  • Scroller: a special panel that will scroll (default is off)
  • Drawer/Collapsable: show and hide internal content

Debugging

Fancy a step through debugger? Now you have one. Easily and visually debug your code in real-time.

Code Editing

I am also proud that Ares uses the Bespin code editor, and this is the first time we have seen the debugging integration at work. I want to thank the Bespin community for continuing to deliver a web based code editor and look forward to see that evolve along with Ares. I do want to make it crystal clear that Matt and his team did this work, as some will incorrectly surmise that Ben and I went over to Palm to do this, and we didn’t. We are incredibly supportive of the work that Matt and his team have done though and love working with them.

Log viewer

webOS has a log system and the built in log viewer is fantastic.

Source Control

It is important to be able to get your files in and out of cloud based editors, and VCS support is available with more coming.

One click access to a lot

Create a new project. Create a new scene in an application. All available from a click in the browser.

Drag and drop file upload

The bottom left area can be a zone for you to upload a file and have it zoom to the cloud.

Preview apps

Because webOS is a Web runtime based on WebKit and V8, and the Mojo framework sits on top of it, you can preview your applications just in a Web browser. Think about that for a sec ;) We don’t mock out the services…. but you can get your UI just right, and when you are ready you can quickly deploy to the webOS emulator or device!

Can you tell I am excited? I know how Web developers need better tools, and I think this is a great one for mobile development. This is just the beginning too. There are many features that will make life even easier for us developers. In fact, if you have suggestions please join us for a chat!.

Finally, check out how well the app runs. It has surpassed my performance expectations, especially considering how rich the feature set is. Ben and I created Bespin to see if the Web was ready for a desktop class application of that nature. Ares has stepped up and gone even further to prove what the Web can do. I have a great feeling about 2010 as we see the fruits of browser innovation, increased support of HTML5 features, and great work that you all do.

Disclosure: Ben and I work for Palm :)

  • Share/Bookmark

Smart GWT 2.0 turns a year old and get a blue skin for its birthday

Sanjiv Jivan has released Smart GWT 2.0, a big release for the project.

The core updates are:

GWT 2.0 support

Smart GWT supports GWT 2.0 and continues to remain compatible with GWT 1.5, 1.6 and 1.7. This release is a drop-in upgrade for users of earlier versions of Smart GWT. The API’s of Smart GWT have been very stable and as a result there will be no upgrade cost or migration effort for users upgrading to Smart GWT 2.0

New Enterprise Blue theme and significantly improved Enterprise Gray theme

These themes now closely follow the Vista UI specification and guidelines. Incorporating the new theme is as simple as inheriting the new EnterpriseBlue theme module and does not require any other changes.

And other features include:

  • Drop-in upgrade with no upgrade or migration effort
  • Multi-Column sort support
  • Grid Row Expansion support for
    • memo rows
    • detail views
    • nested editable form
    • nested editable grid (useful for representing 1-many relationships)
    • any custom embedded component
  • Collection of standard Window icons, picker icons and transfer buttons as part of every theme
  • Improved Showcase demo with ability to search for samples by keyword. Added several new samples
  • Various other enhancements like Date field masks, improved IE 8 and Safari strict mode support.

To see the breadth of the project, make sure to check out the showcase which is very deep indeed. Nice work guys!

  • Share/Bookmark

Scripty2 in the wiiiild

Thomas Fuchs has some new controls and functionality to show us inthis scripty2 preview:

Try the scripty2 UI demos! (alpha version, so there are some kinks!)

Those controls are written with the super-nice Prototype class system and custom events, so they’re super-tweakable and make it a snap to create extensions and customized versions. More controls are in the works, and there should be a beta release this year (or grab the code from github).

They support full keyboard navigation and provide accessibility hooks through WAI-ARIA.

The best thing is that they’re compatible with Themeroller (from jQuery UI) themes! So you can just reuse/tweak existing themes very easily, plus scripty2 comes with a special scriptaculous theme, thanks to Samo Korošec.

Bonus– here are two new sightings of scripty2 in the wild:

  • Share/Bookmark