Dion and I have been wanting to do a podcast series for a long time that is more casual then Audible Ajax–just chatting with some of the luminaries in tech about their careers and such. We collected some content quite a ways back and have finally gotten around to releasing some of it over on TechLuminaries.com.
We think our first episode may be of interest to the Ajaxian community: we interview Brendan Eich, Mozilla’s CTO. As you know, Brendan invented JavaScript and helps steer its evolution both in his role at Mozilla working on a JS implementation and in his participation with the ECMA committee overseeing JavaScript’s future.
We recorded this long before we ever considered coming to Mozilla, which casts a weird perspective on the interview. Hope you enjoy it.
The Appcelerator folks have a big announcement today. They are announcing an early release of Appcelerator Titanium which is easiest if you think of it as an "Open Web version of Adobe AIR" in that it is a runtime that has extended APIs that allows developers to create applications using Web technology.
It is built glueing and moulding WebKit, Chromium, and Gears in very interesting ways indeed. A lot of tough work was done in getting the glue to bind to graphics toolkits on various platforms, and then the work to tear apart Gears and allow it to take in new modules which implement APIs such as:
Native windowing (transparent custom chrome)
Direct file system access
Database integration and storage
Desktop notifications
Application and system menu control
Geo-location
Examples that show off the ti APIs are available. You will note that some of these do not use the Appcelerator Ajax library. This shows that Titanium does not rely on the Appcelerator SDK itself (although you can of course do so!).
Listen to the podcast
We sat down with some of the Appcelerator team, Jeff Haynie and Nolan Wright, and had a detailed conversation with them about why they did this, how they did it, and what it means for developers.
We walk through the implementation, and how developers actually create applications.
A good way to really delve into the details is looking at a sample application. There are some good demos as we mentioned, but the Web 2.0 hello world has to be Tweetanium a twitter client.
Firstly, you will notice the Rakefile, which gives away the Ruby side of the house here. In fact, the build system feels rails-like. If you open config/tiapp.xml you will see a file that is like the Adobe AIR manifest, describing the application. The windows for the app are defined here, for example:
notification.setMessage('Your favorite request was successful'); notification.setIcon('app://images/notification.png');
notification.show();
The database API will look very similar to you (like Gears), but you access it via var db = new ti.Database;.
The app plays sounds when you get Tweets, all via var sound = ti.Media.createSound(path);.
Then you have the tray menu access via var menu = ti.Menu.createTrayMenu(trayIcon,null,function(sysmenu) { ... });.
And you can get access to the native windows, such as i.Window.currentWindow.isVisible()).
For fine control over dragging you simple tie into ti.Extras.setDraggableRegionHandler(..).
This is exciting stuff, and I know that the team is listening to hear your thoughts.
In a related note, I just posted on an App Discover add-on that shows how we could add discoverability of applications like Titanium apps (as well as Greasemonkey, add-ons, plugins, and more).
To link to a Titanium app such as Tweetanium you would simple add a link tag like this:
Dealing with data is one of those areas of software development that we haven't quite gotten right yet; anyone who tells you otherwise is selling something (or has developed an open-source framework). Whether you embed SQL in your code, map objects to data via some kind of tool, mash it all up LINQ-style, or go all sci-fi with funky XML-all-the-way-down tools, each approach has a series of trade-offs and compromises that just don't feel right.
Kris Zip, a researcher with SitePen, is throwing his hat into the ring with efforts he and others at SitePen are leading to provide Ajax developers with a fully coherent JSON stack. That is, frameworks and services that allow developers to deal entirely in JSON from the bits on the disk to the data on display.
In Audible Ajax Episode 30, Kris chats with us about the JSON work in progress, a bit on his background, and a discussion of the talks he'll be giving at the Ajax Experience next week that covers some of this material.
In the run up to The Ajax Experience conference coming up at the end of this month, Dion and I thought it would be fun to interview a few of the speakers. In this episode of Audible Ajax, we talk with Gavin Doughtie, a Dojo contributor and Google employee. The topics range from browser graphics to hiring good JavaScript engineers. Hope you enjoy it!
Everyone knows that the big news of the week is Google Chrome, Chromium, and V8. Ben and I sat down for our podcast update and delve deeper at how all of the browsers are doing interesting things and progressing nicely. We discuss SquirrelFish, TraceMonkey, and of course V8.
We also delve into Canvas land and the fun and frolics that are planned for The Ajax Experience in Boston that happens soon. I am excited about the framework mini-events that happen around the same time too, and gather the crew behind jQuery, Dojo, and Prototype.
Welcome to the inaugural episode of a new podcast to cover news, happenings, and our opinions on the Open Web (download the Open Web Podcast episode one directly or subscribe to it, including via iTunes). When I say "our" I am talking about the founding podcasters: Alex Russell, John Resig, and myself. It is a pleasure to be able to share air time with two of the real leaders of the Open Web, and specifically the Ajax space thanks to Dojo and jQuery.
What is the state of the Open Web?
That is how we started out the podcast, and we got to see very different opinions. John discusses the decentralization and new openness that we see across the Web. Alex was a little more wary, and talks about how he wants the Open Web to progress faster. He noted that a lot of the good work has been a little away from the client, and instead in the area of identity, transport, and formats.
We then move on to HTML 5, where we discuss items in Mark Pilgrim's This Week in HTML 5 piece including Web Workers (think: Gears Workers), and the clarification of alt tag usage in the img tag to have you using alt="{diagram}" and the like.
We have a detailed chat about Web Workers, and where we see them being useful. John talks about issues around not being able to talk to the DOM, Alex talks about mashups, and I talk about some tests showing how they can help performance in a few areas. Matthew Russell did a demo using the Dojo 2d code at OSCON, and showed how he doubled the performance by pushing out computation into a Worker. John also talked about a special case for passing DOM fragments or the like to a Worker with special serialization. Of course, security is a concern for all of this.
John brought up the new data- embedding tactic that showed up in the HTML 5 spec. A conversation ensued around how you should separate your data from presentation. Is the DOM there to store data? Isn't it a good place to keep it? Is "data-" just too long?
It is exciting to think that the W3C Selectors API will soon be implemented in Firefox 3.1, Safari 3, IE 8, and probably Opera 10. That seemed to happen pretty quickly. John and Alex talk about how this is going to mean a lot of chopping code from their frameworks, the increase in performance, and the subtle differences between the spec and how they were doing things.
The discussion leads to a new feature, named scoped CSS, that allows you to say "this CSS only works over here." This could be huge, especially if you have an application such as a CMS, where people upload their own content that can mess with your application structure itself.
Next, we delve into the world of Firebug. John talks about how Firebug development is being bootstrapped by Mozilla and other contributors, and he discusses the upcoming versions and what you can expect. Stability and performance are top of the list. Don't forget the Firebug Lite improvements too, which mean that you get more than just console to play with in non-Firefox browsers. I just posted the notes on that meeting, kindly taken by Steve Souders.
We talked about the Open Web Foundation, and Alex discussed what he would like to see come of it. He is optimistic, and thinks that the real test will be if we see the incubation of projects that really push the Web on the client side, as well as the identity side.
Finally, there is news in the Dojo community and Alex spills the beans. After over 4 years of service, Alex is stepping down as the project lead of Dojo, and handing over the reins to Peter Higgins who has shown great chops as both a commiter and an external leader. We wish Pete the best of luck! Alex isn't sneaking off into the sunset though, as he talks about in his post on the subject, he will see be an active member of the Dojo community for a long time to come.
Finally, thanks again to John and Alex for taking the time to start this up with me. Please let us know what you think, and what you would like us to talk about.
With my Google hat on, I got to interview Michael Marcus and Rui Ma, two recent graduates from a masters program at NYU. They joined me to discuss Gears on Rails, their open source framework that makes it easier than ever to take a Rails code-base offline.
They take the approach of giving you a high level Ruby-ish way of developing your Rails app and having it work offline against local storage.
This means that you end up building actions like this:
def create_local
'
post = Post.build(params("post"));
Post.create_local(post);
window.location.reload( false );
'
end
They build the local framework on the Jester framework that is a "JavaScript client for REST APIs that uses Rails conventions, and is inspired by Rails' own ActiveResource".
This means that you can write client side code like this:
On the back of the iPhone 3G news at WWDC, the next biggest thing was the launch of Mobile Me, a compelling user experience to access Apple services using standard Open Web technology.
The application is written using the SproutCore framework, and I got to sit down with Charles Jolley, one of the founders.
We talked about the history of the project, how it differs from other frameworks that are out there, and where they are going. It is interesting that this podcast comes after the 280 North one, as they are both Cocoa inspired.
SproutCore is much more JavaScript focused though, and gives you MVC in the client in a simple and intuitive way. I found it interesting to see how the framework has developed, from its Rails plugin roots, to now (dispel myth: it has no dependency on Rails, just some build files are Ruby).
Charles talks about techniques that they use to give you fast applications (common global event dispatch seems key, and Prototype 2.0 is adding this) and how he feels that compelling rich browser applications will keep pushing the browser vendors to speed up, and shape up!
As I say in this podcast interview, I got an early look at 280 Slides the application that launched yesterday to much acclaim. People are calling it "Keynote on the Web", which the team finds very humbling, and hope that one day they have all of the great features (and more!).
I really like these guys. A couple of them worked on cool products at Apple, and it turns out that they started the language and runtime work back at school.
Objective-J is the language that takes JavaScript and makes it Objective (as Obj-C did to C). Lots of square brackets. When the browser gets served .j files, it preprocesses them on the fly. This means that you can do things like, use standard JavaScript in places.
Cappuccino is the port of the Cocoa framework.
The guys talk a little about the toolchain an why they did this, and even how it enables future cool things such as generating a native Mac application from the same code.
We also get into the fun cross browser issues that they work around, and how they are abstracting developers high up, so you don't have to deal with these issues.
Finally, I was excited to hear that they will be open sourcing the code at objective-j.org shortly (may not be there yet). They are going through the usual issues of choosing a license (Apache2 please?), a source control system (Subversion vs. Git), and documenting the thing ;)
The team was very interested in learning what JavaScript developers think (They have heard from Objective-C folk who love it), so let them know in the comments!
Today we have Bruce Johnson of the GWT team talking to us about GWT 1.5. He discusses the new features, such as the long awaited Java 5 language support, performance improvements, and much more.
It is very nice to take an application, run it through the new GWT 1.5 compiler, and get an instantly faster running application "for free".
We are having a special week at Ajaxian. Ben and I are giving an Ajax talk at JavaOne this week, and decided to put a little video from Ajax pioneers. As we worked out what we wanted to do, we asked the pioneers for a little time to do an interview. Although only a piece of the interview will be used in the live presentation, we wanted to get the full interviews for the community here.
During the week you will hear from:
Sam Stephenson of Prototype
Bruce Johnson of GWT
Alex Russell of Dojo
John Resig of jQuery
On Wednesday, we will have a special video that features Ben and I having some fun with a new type of Ajax application.
Let's cut to the chase, and listen in to Sam Stephenson. Although we couldn't get to him in person, he kindly recorded himself via his laptop. My voice quality is poor, but we are all hear to listen to his thoughts on:
The future of Prototype
What excites him about new versions of Prototype, and what problems are they trying to solve
Thoughts on the current crop of browsers, and what he wants to see
In the interview he discusses pdoc, a new inline documentation tool, Sprockets, a tool to help package Prototype, and new event delegation techniques.
I had the opportunity to sit down with three fine gents from Aptana to discuss their recent launch of Jaxer, the "server side Ajax framework".
Paul Colton, Uri Sarid, and Kevin Hakman all sat with me to chat about things. I have already played with Jaxer, and created the Google Gears wrapper which can be used seemlessly for use cases such as "If the user doesn't have Gears installed, just do it on the server".
We discussed a lot in the twenty odd minutes including:
Where the idea for Jaxer came from
The difference between a server side JavaScript framework and Jaxer (since there are many of them!)
How Jaxer works (think of a headless Mozilla browser)
Side effects of going this direction
How developers are using it
How does your architecture change if you are using Jaxer?
How can you talk to code in Java and other languages?
How JavaScript 2 fits into the picture
What about deployment?
A lot of good stuff. Thanks to the crew for taking the time to chat with me. What other questions do you have for them?
Ok. In Firefox 3 is the killer browser. And I think I’ve been using the Beta since Beta 1 and Beta 2 is even better. Even in the Beta, we’ve surpassed the quality of Firefox 2. So I already encouraged my mom and my grandmother to update their Firefox 3 Beta 2. I thinks it’s a killer product. It holds up in a lot of new areas. It works well on Mac, on Linux and works well in Windows as always.On labs, there are two things in particular. I’m really excited about the efforts on mobile were working on. I think a lot of folks wondered what about what we’re going to give mobile. And we’ve waited for a pretty long time. But we really felt like we needed to wait until the industry started to open-up a little bit.
We are trying not to overload users with a lot of new features. We’ve done a lot of stream lining. A few years ago we cam out with Firefox 1. It was a good’s a good product, but it was 1.0. With Firefox 2 we started adding a lot of what people were expecting. And then I think Firefox 3 really represents a streamlining and a maturation of the user interface. But it really means it fits into the Mac. The Macintosh theme really works. We have Linux system integration and icons. I think that it’s going to feel like a much better product to people, especially people who give you aren’t
so techy. But I think it will retain all the openness that the techy population, like myself, like.The one featured that everybody really likes, other than the fact that the memory usage is better than ever and the performance is better than ever, is
the URL bar.
Instead of just typing the URL and having it remind you what the URL is, you can type any word in the name of the document. Like if you went to a site about the Simpsons, you could just type Simpsons in the bar and it will show you all the sites with Simpsons in the title. And it’s just one example of maybe 15 different ways we’re helping people find the places they’ve been to before or the place that they want to get to. So I think navigation around the information space is getting increasingly important. The web is pervasive or humungous and getting larger. And just being able to find what you want, find what you’ve visited is the key. So I think that the colloquialism around here is to call it the awesome bar instead of the URL bar.
That’s just one example of hundreds of hundreds of user interface tweaks that we’ve made. And I think are going to make a little difference to people.
So I suspect that we’ll start to participate DataPortability.org. They’ve got to start doing something sooner or later. So like doing the actual work there is going to be the key. Of course OAuth and that kind of stuff we’ve starting to experiments with. That stuff will be very important for Weave. So I suspect we will start to participate in dataportability.org, but we haven’t yet.
Rob Sanheim sat down with Zed Shaw at RailsConf and had an hour long conversation with him that covered his thoughts on the Rails community, the role of the Enterprise, the state of Ajax, JRuby and Rubinius, documentation, tests, tooling, the role of patents in software, and a whole lot of opinion.
It is very interesting to listen to this after the explosion that happened when Zed lambasted the Rails community. When you listen to this interview, you see some of the seeds of the rant, but it is a lot more toned down, and there is some good stuff in there. It is easy to blog a crazy rant.... but when you are talking to someone you get a different side of the coin. This gives you that side, from a time when he wasn't as upset as he may have been when he sat at the computer to type up his post.
He got to tell us about the fun implementation issues behind the rewrite. It turns out that the new system is mostly written in Java itself, and there is a very thin bridge to the browser. The JVM also runs in its own OS process, so if the JVM crashes it doesn't affect the browser.
There were also other tidbits, such as having JNLP working natively in the browser, and how this could be used to allow other scripting engines such as JRuby to run in the browser. One JNLP extension, and everyone can share JRuby.