OPML Editor (Frontier in disguise?)

About window of Frontier 5.1.2

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

Frontier was a genius concept invented by Dave Winer, because it was not only a script language (called „UserTalk”). It also came with an object database and an editor to edit scripts as outlines (something some modern IDEs try to adopt and 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.

Continue reading OPML Editor (Frontier in disguise?)

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?

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

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.

Plone book arrived….

I just received a copy of the Plone book by Andy McKay (german translation). Lot’s of new things are in there. Good for studying after some extensive trial & error sessions.

I had a discussion with Peter Baumgartner two days ago about Plone – and it seems like they’re going to substitute Userland Manila with Plone in their department. This is something I was considering to do several times before as well. But unfortunatly there are two major drawbacks:

a) Plone does not yet come with a full blown bug-free weblog software (I tried Quills, but it is still in development and somewhat undocumented & buggy) and

b) changing designs for Plone is a daunting task. The skinning system is very flexible and advanced but also very complex to learn. You can’t just go a head without deep understanding of the application logic of Plone and advanced knowledge about CSS and Zope. It is too difficult for a youg student to redesign a weblog novice HTML skills. But that is what we need. Redesigning a site according to personal preference is an extremely important must-have-feature for students.

I am using Plone right know to supplement a course I teach. There are approx. 200 students registered. I am using CMFboard, Quills and ZWiki as extensions for Plone. While Zwiki is fine – CMFboard does make some problems: discussion group posts don’t show up in chronological order and the templates for CMFBoard are confusing.

And to make the problem even more difficult: Zope3 is coming up – and I don’t know about any work of Porting Plone to Zope3 (or I think they integrate the best ideas from Plone in Zope3 anyway, huh?).

So without superb weblog-support (and templating easy enough for kids) and without a very good discussion board add on – Plone will remain some kind of community CMS.

There does not seem to be a quick solution for the templating issue at hand. So we think of using WordPress MU for just the weblogging. Maybe Typo3 for the Extranet and Plone+Custom Products for the Intranet.

WebDev is ‘hard stuff’

Jeremy Zawodny with an interesting post about the return of client side web programming. I did my diploma with heavy use of DHTML in 1997. I wanted to do it cross-platform and I stopped to support anything but Internet Explorer after my doctor told me I should try to back-off from whatever I currently do. It wasn’t just a nightmare – it was practically impossible to do and you could become seriously sick trying.

Many years have passed and things look different. The support of DHTML inside the browsers is much better – but that obviously did not really help too much: advanced technical concepts still require a lot of skill to be developed.

Frontier Kernel Open Source Release

Finally Frontier has been released as open source package:

This is a fresh start for the Frontier kernel, the technology under Manila and Radio UserLand, and in the future, possibly many more useful system and network applications. We’re releasing the code under the GPL, the rationale for this is explained in the FAQ and in the audio blog post I recorded about this event.

There is also a mailing list, a download page and a FAQ.

Frontier is a marvelous concept for a scripting application because everything is integrated in one application: scripts, database, GUI. It is perfectly suited for experimentation and it contains a very easy to learn scripting language (here is another documentation). And because it is open source now it may resurrect the interest of creative developers to enhance the system on a very low level.

If you are curious you could read the “Golden Rules for Frontier and Radio Userland” piece from March 2001. (You need to skip the Parts about Manila. Also mainResponder.root is not yet available – so the web server is there – but there is no logic yet that processes an HTTP request).

Potentially a future version of Frontier will make it possible to develop with scripting languages inside this application.term

Bootstrapping with Tinderbox and Zope

I am bootstrapping: The start page of my weblog now renders through a homemade skinning system based on Zope and Page Templates. This means I do not design this pages with the template files Tinderbox uses for the HTML export. For example here is the template of the current start page:

There is still a lot of work to do, but the goal is to use the Tinderbox templates only to define an absolute minimum. I need to get used to this abstraction layer for a while before moving on with the next level: getting rid of the HTML export and FTP upload altogether and importing the Tinderbox file into a database directly.

The ^children(…)^ command will then be replaced with some kind of method that pulls results from a SQL query. I may even consider to have two different Tinderbox files for one weblog: one to author the actual content and the other to design the presentation logic and the hierarchy.

The idea behind this is a) to be much more flexible about the way content is presented, b) to hide the publishing process completely in the background (just save to update) and – most importantly – c) to organize notes and articles in Tinderbox fairly independently from the way it is presented. It can be imagined like working on a creative wiki-style stack of notes here while presenting a weblog and article collections with options for user interactions (subscriptions, comments, RSS) there.

Ruby on rails

It is actually the first time that I blog about Ruby. I had a look at Ruby on Rails – a web application framework based on the Ruby scripting language. Ruby appears to be a very well designed scripting language (see here) for anyone who loves “quick but not dirty” programming.

Ruby is very successful in Japan, where it has already taken over Python in popularity (see here). Quote: “Ruby puts the fun back into programming.”

Frontier Kernel will become open source

Dave Winer —former president of UserLand— convinced UserLand to release the Frontier kernel as open source. Manila, Radio and all web applications built upon that kernel will remain commercial software.

I really hope this will turn out to be a smart move for UserLand. I am using Frontier since 1996 and I have learned a lot from it. It is an application with such a high integration (database, server, scripting interpreter and graphical development environment in one integrated application), that for some reasons it is really a joy to develop web applications with it.

I am looking forward to see what this open source release will look like and if it is possible to integrate it with my own ideas again. There was a rich developer community alive back before Frontier went commercial that has more or less vanished from the stage. I wonder if that will come to life again.