Blatent self promotion. Pie Menus. OpenLaszlo. Sims. Content. User Interface. Software.

Sims Content Catalog in Laszlo and Python

This is a large project I'm developing in OpenLaszlo: creating a rich web application for browsing, searching, exploring, collecting, personalizing, shopping and downloading Sims content.

I'm working with SimFreaks to put their entire catalog of thousands of Sims objects and characters into this database driven catalog. I'm using Transmogrifier to automatically export pictures of all the Sims objects.

Besides simply searching the catalog for interesting objects, you can navigate and explore collections of objects, and even interactivally compose your own scenes.

It's like a cross between colorforms playsets, hypercard and graphical adventures, with Sims room backgrounds, objects and characters, including interlinked image maps and text annotations.

The front-end is implemented in OpenLaszlo, and the back-end is implemented in Python, using SQLObject.

It also includes an administrative database interface for browsing and editing the SQL database that is used to model the site, and keep track of the users, objects, collections, pictures, etc. It's extensible by plugging in customizable Laszlo widgets for displaying and editing special data types, like pictures, checkboxes, color selectors, date pickers, pie menus, OPML editors, etc.

Pie Menus are Better than Screen Corners

Pie menus address many of the complaints of this slashdot article, and they've been around a long time.

I'll start by comparing screen corners to pie menus:

To quote Tog on Fitts' Law: "The time to acquire a target is a function of the distance to and size of the target." He points out that "the screen edge is, for all practical purposes, infinitely deep."

But the advantage of "screen corners" is just an indirect and wasteful application of Fitts' Law, which pie menus exploit much more directly, efficiently and flexibly than "screen corners". Tog's "screen corner" argument is just an ex post facto application of Fitts' Law: an after-the-fact rationalization, not the reason they originally designed the menu bar that way. If Fitts' Law was really the reason Apple designed their menu bar that way, then why aren't there four menu bars, one at each edge of the screen? Apple never mentioned Fitts' Law in their infamous menu bar patent.

Pie menus "slices" are better than "screen corners" or "menu bars" because:

Constraints and Prototypes in Garnet and Laszlo

Garnet is an advanced user interface development environment written in Common Lisp, developed by Brad Meyers (the author of the article). I worked for Brad on the Garnet project at the CMU CS department back in 1992-3.

One thing I like about Brad Meyers is that he's a strong programmer, as well as an excellent researcher, so he had a first-hand understanding of the real-world issues involved in programming languages and user interface architecture, unlike many academics who talk a lot of theory but never get their hands dirty. Brad Meyers understands where the rubber hits the road, and how important it is to have good tires.

At the time I worked on it, Garnet didn't have pretty graphics like Flash, but the underlying programming system had some advanced features that are sorely lacking from most modern user interface development environments.

Laszlo is an modern open source GUI programming system, with many of Garnet's advanced "natural programming" features like prototypes and constraints. Laszlo currently uses Flash as its virtual machine, but it's a much higher level way to program dynamic interactive web based applications, without using the proprietary Flash authoring tool.

Laszlo Database Interface

I'm developing a reusable Laszlo component for browsing and editing SQL databases.

Currently it's up and running, built into the Sims Content Catalog Laszlo application, and it talks to a Python/SQLObject/MySQL back-end. But I'm factoring it out and redesigning it to work on its own, and support multiple back-ends.

Laszlo is ideal for implementing specialized user interface components for editing custom data types, like checkboxes, pie menus, color selectors, date pickers, OPML editors, picture viewers, map browsers, etc.

Flex is an Expensive Knock-Off of Laszlo, but OpenLaszlo is Free

Flex is outrageously priced, and its future is in Flux now that Adobe is going to buy Macromedia.

Flex was inspired by Laszlo (in spite of the fact that Tim O'Reilly is confused and mistakenly thinks it's the other way around).

OpenLaszlo is an excellent open source web programming language based on XML and JavaScript. Your class declarations, object instantiations and configuration constraints are all defined in XML, with JavaScript expressions in attributes and JavaScript methods in text content.

OpenLaszlo strikes an elegant balance between XML and JavaScript, so Laszlo code is quite clean and easy to read and maintain. IBM has developed an Eclipse IDE plug-in for creating Laszlo applications with drag-and-drop and XML outline editors.

You can see for yourself how easy it is to develop interactive graphical web applications in XML+JavaScript with OpenLaszlo: Laszlo in 10 minutes. You can actually see, modify and run Laszlo scripts over the web, to learn how it works.

If you like Laszlo and want to learn more, then you can download the entire Laszlo source code, documentation and examples for free, and start developing your own Laszlo applications, without paying any exhorbinant licensing fees like Flex requires (on the order of $12,000 per server).

AJAX Special Hazard Precautions

Anyone who tries to tell you that AJAX is a "new approach to web applications" is just rebranding old technology and hyping buzzwords, not engineering software in the real world. Because of browser and DHTML incompatibilities and limitiations, AJAX is like cocaine: it seems glamorous until you actually start using it, then the unintended consequences totally fuck you up.

Special Hazard Precautions for AJAX:

INGESTION: NAUSEA, VOMITING, AND DIARRHEA. EYES: EYE IRRITANT UPON DIRECT CONTACT. SKIN: MAY CAUSE SKIN IRRITATION UPON PROLONGED CONTACT. INHALATION: NONE UNDER NORMAL USE. PROLONGED INHALATION BY UNORTHODOX USE (NON-WETTED) OR ABUSE (SNIFFING) COULD PRODUCE LUNG DISEASE (SILICOSIS). N/K

Emergency/First Aid Proc: INGEST: IF EATEN/DRUNK--YOU MAY THROW UP. DRINK SIPS OF WATER/MILK. IF VOMIT CONTINUES, CALL POISON CTR/DR. EYES: IRRIT. FLUSH W/WATER 15 MIN. IF IRRIT PERSISTS, CALL POISON CTR/DR. SKIN: IRRIT. REMOVE WET CLOTHES. FLUSH W/WARM WATER 15 MIN. IF IRRIT PERSISTS, CALL DR/POISON CTR. INHAL: IF INHALED, MAY COUGH. TAKE SLOW DEEP BREATHS OF FRESH AIR, SIP WATER. IF COUGH PERSISTS, CALL DR/POISON CTR.

Here's the entire Ajax information sheet, with more warnings and hazard precautions.

Should the Government Treat Video Games like Alchohol and Tobacco?

USAToady wrote an article about the "Battle over violent video games heating up".

First of all, to address the lame-assed attempt at a pun in the article title: I wish USAToady would just stop trying to be mildly but non-offensively funny, or else hire some real stand-up, knock-down, drag-out comedians like Al Franken to write their headlines.

The battle over violence. Ha ha ha not. The only thing they've been able to demonstrate so far, is that video games cause foolish violence and heated battles between fully grown politicians, who should know better. So stop selling video games to politicians.

"Those who favor laws restricting the sale or rental of violent videos to minors say government should treat the games like alcohol or tobacco."

Now there's a great idea: the Government should treat Violent Video Games like they do Big Tobacco.

Price support and production controls for violent video games: The computer game industry could really use the shot in the arm that would bring!

Should the government pay video game developes NOT to produce violent video games? They could keep their employees busy writing harmless cruise missile guidance systems and tactical nuclear warfare simulations for the war on terror, instead of developing violent games for kids.

Would Jesse Helms have mounted a filibuster, to prevent a video game tax hike, and protect the video game industry in his state? Will Texas Senator John Cornyn sell lawsuit protection to the Texas Violent Video Game Industry, just like he protected the Big Tobacco Industry from being sued for killing their customers?

BlogBlox Free Laszlo Applications for Personal Blogs

Blogboxes provide exciting, instantly deployed functionality for your blog or Web site. They are free for non-commercial use. Enjoy them and spread the good word!

Photoblox: Show personal image slideshows on your Web page, customized to suit with dramatic presentation effects, annotations and PayPal integration.

Linkblox: Compactly present your favorite URL links within expandable tabs. Customize the Linkblox with your own external OPML XML file.

Weatherblox: Always have an answer to "How's the weather?". Enhance your blog or homepage with WeatherBlox.

Soundblox: Let your visitors play MP3 format audio directly out of your Web page. Customize the appearance and content of your SoundBlox with your own XML playlist and media.

Pandora Music Discovery Laszlo Application

Pandora has developed a wonderful Laszlo application for the discovery of music, based on the Music Genome Project.

They have a free trial, so you can check it out and see how it works for yourself!

Pandora's CTO Tom Conrad had this to say about using Laszlo to develop Pandora:

Our just-now-launched music discovery service, Pandora, is an OpenLaszlo application. It wouldn't be fair to finish up our launch without a tip of the hat to the amazing Laszlo team and open source community.

Eight months ago when we sat down to figure out how were were going to deliver a compelling zero-install discovery and listening experience across Windows, Mac, and Linux in record time we considered everything you can imagine: plain old HTML, AJAX, Flex, OpenLaszlo to name just a few. In the end, Laszlo was the clear winner on all fronts. Mature, reliable, and the perfect tool for the job. This outcome was only remarkable in that the decision was made by some of the most capable AJAX developers on the planet. I'll have more to say about Laszlo in another post, but for now I just want to publicly say thanks to the great team at Lazslo. Pandora wouldn't be Pandora without you.

NutritionQuest Personalized Surveys in Laszlo

I'm working for NutritionQuest, developing a Laszlo based personalized nutrition survey.

Syndicate content