OpenLaszlo Discussion Forum

This is a forum for discussing OpenLaszlo.

OpenLaszlo YouTube Player Demo and Source Code

I've been working on developing streaming video support for OpenLaszlo: LZX classes to support improved audio and video, including RTMP streaming via Flash Media Server (aka Flash Communication Server) and also the Red5 Open Source Flash Server, as well as streaming video via http. It supports playback of recorded FLVs, recording from camera and microphone, live two-way (or multi-party) audio/video conferencing, and FLV streaming over http.

It's easy to use the OpenLaszlo video components, because they're nicely integrated with the OpenLaszlo programming model. They expose logical attributes and events which make it easy to integrate video into OpenLaszlo applications.

To test it out the code and demonstrate its functionality, I've developed a simple YouTube Player in OpenLaszlo [click here to open it in a window]. It uses the YouTube ReST Web API, and some simple html screen scraping to get the URL parameters to stream the FLV file directly.

Here is the source for the test application wrapper that puts the YouTube video player in a resizable window, and the more interesting source for the youtubeplayer component, that uses the new OpenLaszlo video classes I'm developing (whose source is in this directory).

The new video classes and the YouTube player demo will be checked into the OpenLaszlo svn repository soon.

Here's a live demo:

Spice up PHP applications with OpenLaszlo

Nicholas Chase an I have just written a three part tutorial for the IBM DeveloperWorks web site, about using OpenLaszlo and PHP to develop a distributed Knock Knock Joke (Ha! or Not!) application.

This "Spice up PHP applications with OpenLaszlo" tutorial series shows you how to use OpenLaszlo to create a more interactive interface for your PHP applications and how to use PHP to create more dynamic OpenLaszlo applications. It requires a basic understanding of -- or willingness to learn -- XML, JavaScript, and PHP. Each is well worth knowing for its own merits, plus they plug and play together nicely, since they're all based on synergistic open standards.

What is OpenLaszlo, and what's it good for?

OpenLaszlo is an open source platform for developing user friendly web based applications, which work identically across all popular browsers and platforms (Windows, Mac, Linux, IE, Firefox, Safari, etc). It's ideal for presenting and editing raw XML data generated by PHP and other web services.

OpenLaszlo supports a rich graphics model with scalable vectors, bitmaps, movies, animation, transparency, fonts, audio, streaming media, reusable components, user interface widgets, control panels, property sheets, keyboard navigation, browser "back button" navigation, as well as advanced WYSIWYG text and graphical editing tools. In other words, OpenLaszlo is the velvet glove for the iron fist of PHP. What can OpenLaszlo do?

Laszlo Mail

Laszlo Mail

Open Source SimFaux OpenLaszlo Code Now Available via Subversion

I've published the source code and content of SimFaux as Open Source Software. It's available via read-only anonymous subversion. Here's the command to get all the source code and content:

svn co svn://

I've started writing a README.txt file, but that's about all the documentation there is so far.

SimFaux 1.0 README

SimFaux is an interactive TV station simulator written in OpenLaszlo,
by Don Hopkins, for the HuffingtonPost Contagious Festival.

It's an open-ended framework for plugging together keyword tagged
multimedia character simulations, video, text, quotes, surveys,
interactive games and application.

It's configured with XML files, so non-programmers can easily add
characters, video and other types of content.

It includes tools for validating, processing and compressing the
content into appropriate file formats.


Posted a new version of SimFaux

I've just posted a new version of SimFaux, which has a bunch more features, and many more quotes (tagged with keywords), to go with the new characters. Now there are 136 Frank Zappa quotes!

In Washington, they just look out for #1, and #1 ain't you. You ain't even #2.
-Frank Zappa


FauxCast on Freedom: SimFaux as Open Source Software

Somebody asked me about SimFaux:

This is pretty funny as it stands, but can it parody things Libs don't like to talk about like Dem politicos that flipflop every other speech, or Lib talking heads that forge news on the fly?

Of course SimFaux can parody liberals as well as conservatives, but the fact of the matter is that it's the conservatives who are fucking up the country right now and sending kids to die. The liberals are powerless and aren't the ones to blame for the horrible calamity that Bush has caused. So it's important to call the people who are causing the death and suffering on their lies.

The conservatives had their chance with Clinton's blow job, and they totally blew it with their self rightious indignation over harmless consentual sex. Talk about flip-flops: Where is the furious anger and relentless calls for impeachment now?

It's high time to impeach Bush for going to war based on lies and deception, sending thousands of Americans to their death, killing hundreds of thousands of Iraqis, leaking classified information about a CIA employee out of revenge for her husband telling the truth, breaking the law and subverting the constitution by spying on American citizens, his miserable failure with Hurricaine Katrina, his deep shameless corruption with Haliburton and Abramoff, etc. If you think none of that is any worse than a blow job, then you're a part of the problem.

I just started programming SimFaux at the beginning of this month, and the HuffingtonPost Contagious Festival has a 15 meg limit on size. But after the festival concludes, I'll host it on my own web site without any size limitations, put up a whole lot more content like characters, sound bites and videos, and release the source code as Open Source Software so you can modify it and put your own stuff in. But right now I have to cut it to the bone to stay within the 15 meg limit.

"FauxCasting" is a cinematic leap beyond podcasting and blogging, because it integrates keyword tagged text, video, sound bites, simulated characters and interactive widgets together in a way that the viewer has control over what they see and hear. You can experienced the joy of telling Bill O'Reilly to Shut Up and Go Away! The keyword tagging enables the characters and videos to interact with each other, and results in surprizing juxtapositionings, like Frank Zappa and Dick Cheney finding common ground by using the same cuss word that begins with F.

I'm inspired by ideas like Will Wright's "Designing for Emergent Behavior" and Chris Trottier's "Tuned Emergence" and "Design by Accretion", where the more content you put in, and the better you tune it, the closer you get to a nuclear reaction.

Sims Designer Chris Trottier on Tuned Emergence and Design by Accretion

"If a game isn't tuned, it's a drag, and you can't stand to play it for an hour. The Sims and SimCity were "designed by accretion": incrementally assembled together out of "a mass of separate components", like a planet forming out of a cloud of dust orbiting around star. They had to reach critical mass first, before they could even start down the road towards "Tuned Emergence", like life finally taking hold on the planet surface. Even then, they weren't fun until they were carefully tuned just before they shipped, like the renaissance of civilization suddenly developing science and technology. Before it was properly tuned, The Sims was called "the toilet game", for the obvious reason that there wasn't much else to do!"

I will soon release the source code and content of SimFaux as Open Source Software, so you can see how it works, create your own characters, sound bites, video clips, talking points, surveys, games, etc. If you want to do that yourself, you should become familiar with XML, and you should start learning OpenLaszlo, which is the free Open Source XML/JavaScript based language it's written in.

Here's another more down-to-earth example of what you can do with OpenLaszlo:

Have fun!

SimFaux now has WebCam Support and Simulated Internet Chat Room

I've just uploaded a new version of the SimFaux Interactive Network News Simulation to the Huffington Post's Contagious Festival!

This version has WebCam support: you can display your webcam in one or more frames, FauxCast yourself on any Faux News TV channel, and interview the simulated characters in person! Don't let Bill O'Reilly tell you to shut up and kick you off!

It also has a new simulated internet "Faux Chat" room, which you'll have to try out because explaining how it works would spoil the surprize!

SimFaux Interactive Network News Simulation

I've just uploaded the first version of the SimFaux Interactive Network News Simulation to the Huffington Post's Contagious Festival!

It's pronounced "Sim Foe". Like the Colbert report: it's french, bitch!

It has an cinematic interactive interface consisting of several different screen layouts, each with a different number of frames, which you can configure to display a variety of simulated characters, streaming videos, interactive surveys, and text talking points. Here's the conference screen layout showing several videos, a couple of characters, a survey and talking points:

SimFaux Conference Screen (an OpenLaszlo application, by Don Hopkins)

Relax NG Compact Syntax: no to operator precedence, yes to annotations!

James Clark is a fucking genius! He’s the guy who wrote the Expat XML parser, works on Relax NG, and does tons of other important stuff. Relax NG is an ingeniously designed, elegant XML schema language based on regular expressions, which also has a compact, convenient non-xml syntax.

I totally respect the way he throws down the gauntlet on operator precedence (take that you Perl and C++ weenies!):

There is no notion of operator precedence. It is an error for patterns to combine the |, &, , and - operators without using parentheses to make the grouping explicit. For example, foo | bar, baz is not allowed; instead, either (foo | bar), baz or foo | (bar, baz) must be used. A similar restriction applies to name classes and the use of the | and - operators. These restrictions are not expressed in the above EBNF but they are made explicit in the BNF in Section 1.

You can translate back and forth between Relax NG's XML and compact syntaxes with full fidelity, without losing any important information. Relax NG supports annotating the grammar with standard and custom namespaces, so you can add standard extensions and extra user defined meta-data to the grammar. That's useful for many applications like user interface generators, programming tools, editors, compilers, data binding, serialization, documentation, etc.

Here's an interesting example of a complex Relax NG application: OpenLaszlo is an XML/JavaScript based programming language, which the Laszlo compiler translates into SWF files for the Flash player. The Laszlo compiler and programming tools use this lzx.rnc Relax NG schema for the OpenLaszlo XML language. This schema contains annotations used by the Laslzo compiler to define the syntax and semantics of the XML based programming language.

The schema starts out by defining a few namespaces:

default namespace = ""
namespace rng = ""
namespace a = ""
datatypes xsd = ""
namespace lza = ""

The a: namespace defines some standard annotations like a:defaultValue, and the lza: namespace defines some custom annotations private to the Laszlo compiler like lza:visibility and lza:modifiers. Thanks to the ability to annotate the grammar, much of the syntax and semantics of the Laszlo programming language are defined directly in the Relax NG schema in the compact syntax, so any other tool can read the exact same definition the compiler is using!

To show how truly simple and elegant it is, here is the snake eating its tail: The Relax NG XML syntax, written in the Relax NG compact syntax:

Syndicate content