Posted by Ben Jackson
Sat, 01 Oct 2005 19:49:07 GMT
Flash Ant just put up an interesting article looking at the browser as nothing more than a plugin to the operating system:
Looking forward to the future of the web, we have to realize that the operating system is where web applications are going to be, not in the browser. “Installing” (perhaps purchasing) and using a web application will be no different than using a desktop application from the user's perspective. Today, the fact that web applications (RIAs, smart clients, [insert catchy marketing phrase here]) run in a browser is a limitation of the state of the art rather than an indication of it.
Looking at recent releases like Linotype's fantastic FontExplorer X, Vitalsource Bookshelf, and Adobe Bridge (not to mention the iTunes Music Store), it seems clear that the next revolution in web applications will be the elimination of the browser. After all, it's all about minimizing interruptions, right? Why should I have to open up a browser, go to 10 different stock photo sites and maybe find what I'm looking for when I can open up Adobe Bridge, type in my keywords, download a comp and see it in the context of my spread all without switching contexts?
The current wave of buzzword-compliant web applications is impressive, because it's the closest we've seen to something on the web that is a reasonable approximation of a desktop application. But what I'm seeing is a new trend: using Webkit and .NET, application developers are letting the operating system take care of all the “desktop-like” functionality, and use the browser for what it was originally intended to do: display information.
Posted in Design, Business | no comments | no trackbacks
Posted by Ben Jackson
Tue, 27 Sep 2005 15:30:00 GMT
Gruber has a great analysis on why Applescript fails miserably as a programming language. He makes a good point on the break between the inherent ambiguity of human speech and the rigid constraints of machine language:
But saying what you mean, in English, almost never “just works� and compiles successfully as AppleScript, and so to be productive you still have to understand all of the ways that AppleScript actually works. But this is difficult, because the language syntax is optimized for English-likeness, rather than being optimized for making it clear just what the fuck is actually going on.
While I feel like programming has outgrown trivial conventions like braces and semicolons, Apple is not going to teach your grandma how to program by "talking to the computer". I'd much rather see an extensible scripting interface to Apple events that could be implemented by any language community that had enough interest.
Posted in Development | no comments | no trackbacks
Posted by Ben Jackson
Sun, 25 Sep 2005 22:05:00 GMT
An interesting take on tracking your productivity from David Seah:
When I get to fill in a bubble, I feel a little surge of pleasure…I’ve been conditioned by standardized testing, apparently. I also get visual confirmation that I’ve done something to move my business forward. This is an interesting example of feedback in a game design sense; over the course of a week, it’s easy to evaluate your progress at any given time.
I like the comparison with game design, and even though I'm not filling out the scan-tron just yet, it still helps to bring some focus to my daily activities.
Posted in Design, Business | no comments | no trackbacks
Posted by Ben Jackson
Fri, 23 Sep 2005 18:44:00 GMT
After spending more than a few hours trying to find a decent YAML2XML converter, struggling with CPAN to install the required perl modules for the hack that I found and finding that the output was buggy and incomplete, I decided to have a shot at doing it myself and learn about ruby's XML libraries in the process.
Two and a half hours and 33 lines of code later and I've got a basic converter that will work with sephiroth's XML2Object library for Actionscript. The secret (courtesy of Jim Weirich) is the use of builder.method_missing() to pass an arbitrary tag name instead of the usual syntax:
# normal usage
builder.div {
builder.p("hello world!")
}
# equivalent
builder.method_missing("div") {
builder.method_missing("p", "hello world!")
}
Here's the final script:
# yaml2xml.rb
# converts a yaml document to a corresponding xml
# format for use with XML2Object class from sephiroth.it
# for more details on the class visit
# http://www.sephiroth.it/file_detail.php?pageNum_comments=10&id=129
# usage: ruby yaml2xml.rb input.yml > output.xml
require 'yaml'
require 'rubygems'
require_gem 'builder'
@builder = Builder::XmlMarkup.new(:target=>STDOUT, :indent=>2)
def yaml2xml src, tagname="root"
unless src.is_a?(Array)
@builder.method_missing(tagname) {
process_source src, tagname
}
else
process_source src, tagname
end
end
def process_source src, tagname
if src.is_a?(Hash)
src.each do |name, value|
unless value.kind_of?(Hash) or value.kind_of?(Array)
@builder.method_missing(name, value)
else
yaml2xml value, name
end
end
elsif src.is_a?(Array)
src.each do |value|
yaml2xml value, tagname
end
end
end
yaml2xml YAML::load(File.open(ARGV[0]))
Posted in Development | 1 comment | no trackbacks