Embracing and Extending Microsoft: JotSpot's Joe Kraus on the Web Office
Embracing and Extending Microsoft: JotSpot's Joe Kraus on the Web Office: "In this exclusive interview with ex-Excite founder and current JotSpot CEO Joe Kraus, I discuss with Joe the Web Office and his 'Embrace and Extend' theory.
'Our goal wasn't just to build Excel online. In fact I believe that Excel will be 'Excel Online'. Microsoft isn't dumb and they get this revolution about 'software as a service' much more than they got the Internet revolution. They're getting it much more quickly. So we believe where Tracker is headed is not only to embrace the capabilities of Excel - you've got to do that. But you've also got to extend it beyond what Excel is currently envisioned as today, in order to provide lasting value. Because otherwise I think you're going to get your lunch eaten, over time as Microsoft rolls in.'
(Via Read/WriteWeb.)
Embracing and Extending Microsoft: JotSpot's Joe Kraus on the Web Office
Using the HTTP Accept header for Ajax
Using the HTTP Accept header for Ajax: "From one assessibility post to another. David Heinemeier Hansson has posted on Discovering HTTP #1: The Accept header.
Rails 1.1 is going to have a new feature that uses the HTTP Accept header to allow nice degradation from Ajax enabled browsers down the stack.
The code example is:
class CommentController <ActionController::Base
def create
@comment = Comment.create(params[:comment])
respond_to do |type|
type.html { redirect_to :action => 'index' }
type.js
type.xml do
headers['Location'] =
url_for(:action => 'show', :id => @comment.id)
render(:nothing, :status => '201 Created')
end
end
end
endIf an old browser submits this form, we'll have it done through a plain old POST, which the browser sends along with a header like 'Accept: */*'. That means 'I don't care what kind of response you give me, just give me something'. Since the browser doesn't care, we'll decide what to do on the order of the type declarations. The first is type.html, so that's what we'll perform, which in this case simply instructs the browser to go back to the index.
If an Ajax-capable browser submits this form, Prototype will intercept the submission and turn it into an Ajax call. This call will be send along with 'Accept: text/javascript, text/html, application/xml, text/xml */*', which specifies a preference order where Javascript is first, if not available, then HTML, if not, then XML, and finally it'll accept whatever if none of the preferred forms are available.
Notice how the Prototype preference order doesn't match the order of declarations in the respond_to call. That order was significant when */* was used as the Accept header, but when preferences are available, we';; do multiple passes through the declaration in search of a match. The order of declarations won't matter unless neither Javascript, HTML, nor XML is found.
Very nice. Seeing the magic '201' status code also shows how you can fake our old browser (so they can hit the backend without rerendering anything).
(Via Ajaxian.)
Using the HTTP Accept header for Ajax
Memetrackers Go Horizontal and Vertical
Memetrackers Go Horizontal and Vertical: "
Memeorandum, which to date has focused on tech and politics, is wisely starting to branch out horizontally with new vertical sites. The first, WeSmirch, rolls up celebrity gossip from blogs and news sites every five minutes. Digg has expressed an interest in going the same route in the near future.
I believe the memmtrackers will reach a critical mass in the next 12-24 months and will begin to gain market share from traditional news aggregation sites like Google News and others. Wired News hints at this today. The reason is some people have a desire to dig deeper in the areas they care about. The memetrackers help fulfill this role. They are fueled around high-interest topics and they could dramatically alter how millions consume news and information online. (Via Micro Pursuasion.)
Memetrackers Go Horizontal and Vertical
Ajax Templating - Separation of Layout and Logic
Ajax Templating - Separation of Layout and Logic: "In this informative blog entry, BorkWeb.com shares a method for creating a templating system generated wholely with Ajax and PHP.
While Ajax is the cause for the article, the heavy focus is on templating. For the past few years I have been using XTemplate as my templating library (I'm a PHP buff) and have been happily separating my logic from my layout...unitl I ran smack dab into the power of Javascript. My PHP still kept its separation from HTML as is the purpose of XTemplate, but it was my HTML that became littered with little nuggets of Javascript all over the place. No matter the method to my Ajax madness, this was my problem.
They step through the process, noting first what templating is really defined as and how it can be useful to just about anyone. They give their examples in PHP, but it can easily be conformed to just about any other language quickly and easily. They set up a templating situation where all seems ideal, except, of course, for one small problem - dynamic control of (javascript) user events in HTML elements on the page (onClick/onMouseOver/etc).
His solution? He uses the Behaviour libray that's built on top of everyone's favorite Javascript library, Prototype. With a few quick lines of Javascipt, a bulleted list is created so that, onClick the item selected will be removed from the list.
You can find out more about each of the projects mentioned from their homepages:
- XTemplates (PHP Templating Library)
- Prototype (Ajax/Javascript toolkit)
- Script.aculo.us (DOM manipulation library built on Prototype)
- Behaviour (a Javascript event library)
(Via Ajaxian.)
Ajax Templating - Separation of Layout and Logic
MS Office 2007
There are so many changes from the Beta 1 visuals that it would be hard to make a complete list, but a couple of the things you might notice right off the bat: the Quick Access Toolbar in the title bar, group titles on the bottom of groups, and the Office Button


