OPML Editor (Frontier in disguise?)

OPML Editor (Frontier in disguise?)


Over 24 years ago I learned about a Mac application called »Frontier«. This application taught me, that the Internet is actually a programmable environment.

I think originally it was created as an application development tool in 1992 for automating MacOS with a script language called UserTalk (before Apple came up with its own script language called AppleScript).

Frontier was a genius concept invented by Dave Winer, because it was not only a script language (called „UserTalk”). It also came with a object database and an editor to edit scripts as outlines (something some modern IDEs try to adopt to better organize source code!). The scripts were edited and stored as objects in the very same database. The database could contain other stuff like texts, outlines, binary data, simple values — all in a hierarchical structure. An object in the hierarchy would automatically be accessible in the script like a variable. It was all self-contained.

The hierarchy was fundamental:
Everything was organized as collapsible and expandable outlines. The database, the scripts and some texts could be presented and edited in a text window in outline fashion. Outlining is a good way to break down things — and much of what we do in our heads is basically creating meaning by deciding what is inside or outside of a concept. We learned to think this way when we learned to think & understand (or use computers).


It even could interpret and execute AppleScript. But compared to Apples own AppleScript UserTalk was much faster in Frontier.

If Apple would have chosen to include Frontier in MacOS it would really have changed the Internet. AppleScript never really took off, because it was missing a good environment to develop and without a good object oriented persistent storage it always felt like just a macro language to automate some OS tasks.

End of Frontier?

In the 90ies there were other people working with Dave Winer on Frontier at a company called UserLand. Brent Simmons was one of them and he inessential.

UserLand was the company that continued to distribute Frontier (and some applications based on its scripting language). Dave Winer convinced UserLand to open source Frontier as Userland was marketing applications based on Frontier (Manila and Radio).

So Frontier became an open source project in 2006 and a small community continued to work on it for a while.

But there were only few people actually contributing to the Frontier base application. And while the operating systems evolve the original Frontier code does not compile on new OS releases. No one was maintaining it.

I was occupied with teaching and other projects, so I lost track of Frontier.

OPML Editor

In 2005 Dave Winer branched off a release of Frontier which is now called OPML Editor. He basically used the original Frontier application, rebranded it and developed new ideas on top of it (digging heavily into Web APIs, JSON, node.js, JavaScript, a.s.o.).

So what is the state of Frontier today?

Documentary »Hello World! Processing«

Hello World! Processing from Ultra_Lab on Vimeo.

Hello World! Processing is a documentary on creative coding that explores the role that ideas such as process, experimentation and algorithm play in this creative field featuring artists, designers and code enthusiasts. Based on a series of interviews to some of the leading figures of the Processing open programming platform community, the documentary is built itself as a continuous stream of archived references, projects and concepts shared by this community.

It is the first chapter of a documentary series on three programming languages — Processing, Open Frameworks & Pure data — that have increased the role of coding in the practice of artists, designers and creators around the world.

The series explores the creative possibilities expanded by these open source tools and the importance of their growing online communities.

See more information at hello-world.cc

iPhone SDK – a complete solution?

iPhone SDK – a complete solution?

Apple has released the iPhone SDK. The 2.1 gigabyte download is free after registration and includes the latest Developer Tools as well.

I personally don’t use an iPhone. Being able to hack it (or get third party software for it) was a stopper for me. Another argument against the iPhone was the rather limited storage space — 4 and 8 gigs simply did not seem enough space.

Apple still wants to retain some control over which apps are pushed on the phone, but it seems the upcoming operating system of the iPhone has already been hacked. People may be able to install software independently from Apple (e.g. to remove a SIM card lock) on a hacked phone.

But looking at the developer site for the iPhone simply does it right. I get a clear product, a very readable documentation and easy to digest tutorials – developing hardware and software together again pays out in a consistent product.

The Android SDK on the other hand is lacking the simple question: How can I get started (I mean really)? What devices can I deploy an Android application on? In fact the Android FAQ states that there are no phones that Android is running on. So who is supporting Android? Why should I spend time on developing for a theoretical market? Android is nothing more than an approach to an upcoming problem that Apple has already solved from A-Z.

That is the reason why Apple is succsessful: They offer solutions – not concepts.

People that think the stylishness of their products are key to Apple’s success don’t know much about Design.

Hobnox is hiring!

Hobnox (the internet start-up I am CD for) is hiring:

  • art director
  • web/screen designer
  • system administrator
  • senior developers for C, Flash, PHP and Java
  • junior developers for C, Flash, PHP and Java

Work location is Cologne, Germany. More information here. The project is related to WebTV and the entertainment-/music business.

It is an international company. So if you are English only and you are prepared to work in Cologne, Germany, you may also apply.

There is also an open position for a team assistant in Munich.

libavg – Kiss Director goodbye?

libavg is a very interesting package for multimedia installations:

libavg is a high-level multimedia platform with a focus on interactive installations. It is meant to pick up where Macromedia Director leaves off and gives you high-quality hardware-accelerated visuals as well as easy and flexible authoring, testing and deployment. libavg integrates well with other open-source solutions for sound, networking and hardware device support, resulting in a complete and well-integrated package. It uses an xml-based layout language for screen design and python as scripting language.

libavg aims to replace Macromedia Flash or Macromedia Director with following design goals: high-quality visuals, high-quality sound, quick authoring, support for a broad range of systems and openness for expansion (see also the features page for details).

And best of all: it uses Python, which is a clean, simple, fast and easy to learn object-oriented scripting language.

Flickr/Ajax application with Ruby on Rails

Flickr/Ajax application with Ruby on Rails

If there is one word, that could describe what happens in the Ruby on Rails context then it is »elegance«. Just click on the image below to see an elegant screencast of an elegant development framework (Ruby on Rails) with an elegant text editor (TextMate) using an elegant JavaScript technology (AJAX) on an elegant service API of an elegant web application (Flickr):

Image of a Flickr tag search form with found pictures

It took me longer to write this blog post than it took to create this Flickr application shown above (well, at least for the guy doing that demo). I’d like to see a demo of a similar applications that is as much fun to watch from the J2EE or PHP crowd.

There are more screencasts here.

By the way:

If you wonder how the fancy shorthanded MacOS X editor (TextMate) works that is used in so many of these demos – there is an RSS feed with links to screencasts about TextMate as well.

Spry framework for AJAX

Adobe Labs (former Macromedia Labs) offers a framework called »Spry«. It is a JavaScript library that offers easier construction of AJAX applications. Drew McLellan from the Web Standards Project reviews the framework and concludes:

As it currently stands, the framework is certainly not ready for prime-time, and if it’s the sort of framework you’d otherwise find useful, we’d encourage you to investigate it and offer constructive feedback.

First impressions on Ajax frameworks…

I had a (very) brief look into some Ajax/DHTML JavaScript frameworks flying around. There are so many and to really compare them in detail would require time that I don’t have right now. So I can only come up with some first impressions:

  • Backbase appears to be a commercial but extremely clean and well designed framework with impressive examples (look in “Demos”) and documentation. But it is not compatible to Safari and Opera yet (which is bad for a 3.1 release I’d say, but they claim to be working on it). If a framework doesn’t take the burden of browser dependency away from the developer (or the user if the developer doesn’t care) then the nicest framework is worth almost nothing. It might be something to play with. Backbase works by applying styles and behavior to either simple HTML elements or custom Tags within an own XML namespace (a look at their Backbase explorer inside “Demos” shows what that means). There is a free community edition, but commercial licenses seem to be somewhat pricy.
  • Dojo does not look as clean as Backbase and their “examples” area is kind of lame compared to Backbase. But it is open source and so it is the choice above Backbase if you developing in a non-commercial context. The JavaScript methods of Dojo are a little more exposed – you need to write some more code to get the desired behaviors. It does not use own Tags in the source code, so Dojo might be useful to “enhance” a ordninary web page. Some people may prefer this approach over using own tags in the source code like Backbase does. I didn’t look at all their examples, but it seems while most of them are compatible with Safari some are not (e.g. the “nested drop target” example).
  • Script.aculo.us has also some good demos – not as complete as Backbase, but much better than Dojo (see for instance the effects demos). It is distributed with some kind of MIT license (free to be used for anything but the copyright information must be kept). Script.aculo.us has also some connection to Ruby: Ruby on Rails uses the framework and they run their site with a Ruby-based Wiki called Instiki. This framework has also some prominent examples to show: 37signals.com obviously created their much-talked-about-lately applications with it. From the examples I have seen up until now Script.aculo.us seems to be fully compatible with Safari which would be a big plus compared to the other frameworks.
  • MochiKit seems to be very compatible as well. It is also distributed either the MIT license or the Academic Free Licence. This framework is more related to the Python community since TurboGears uses it to provide something like Script.aculo.us does for Ruby on Rails. The demos are better than the ones by Dojo but not as slick as the ones of Script.aculo.us or Backbase.

I imagine a future where a developer of a web application could say something like “take this dataset and provide it as shoppable items in a sortable table to the user with a live recording of all selections to the shopping cart” in few lines of code. The visual look of the resulting web page should be 100% CSS based. Developers happy. Designers happy. But I suppose it’ll take another 1-3 years to achieve that level of integration.

The rise and fall of frameworks

I think the next 6-12 month we will see an incredible buzz about web application frameworks – some on the server side and some on the side of the client:

OpenLazlo is competing with Macromedia Flex. for the so called “Rich” Internet Application market. I am somewhat sceptical about thie RIA-approaches. If you can establish a channel to deliver anything useful – fine. But these systems – while cutting development time – are extremely monolithic and they sort of hijack the user experience for you. And caring for the user experience is a differentiator in the market. I admit that Flex/Lazlo would provide a better experience often compared to using no interface toolkit at all – but generally I feel these systems are bloated and heavy trying to solve so many things at once. But maybe I am just not getting it right. Many internet applications would be “rich” if only they would be designed better and provide some sort of solution to a problem.

For the development of the backends on the server we see frameworks like Ruby on Rails, TurboGears, Twisted, Zope and so on. These can also really cut development cost by providing abstraction layers to common problems. These frameworks do a hell lot of things for a developer, but they usually have a steep learning curve and they also may have issues with reliability, performance and scalability. But from what I see, there are little options to avoid frameworks unless you are ready to invest the time in working around so many different gotchas yourself.

On the client side we see frameworks popping up like mushrooms that try to help developers turn the Web Browser in some sort of HTML-driven application delivery device. There is some comparison already available, but I wonder if some frameworks will recieve wider adoption. Script.aculo.us and Dojo seem to be good candidates. Script.aculo.us is even teaming up with Rails to create nifty little applications in very short time. In other words: these JavaScript framworks provide a quick way to implement certain interaction patterns in web pages (like sorting a list with the mouse pointer).

People were critizising AJAX to break the URL schema. I don’t think that is the case as long as you keep URLs as pointers to resources functional and constrain AJAX to improve the usability of a web application. I don’t want to have to reload a full HTML page or submit a complex form just because I unchecked an option.