...composed of an indefinite, perhaps infinite number of hexagonal galleries...

© 1994-2017. David Sklar. All rights reserved.


Over the weekend we launched the “Ningbar” – what Diego, Brian, and the rest of the crew at Ning have been cranking away on for while.

The Ningbar is not just a replacement for the sidebar that used to accompany all Ning apps. It’s the control center for getting the most out of Ning, whether you’re using an app, cloning an app (which now takes just exactly 2 clicks), or writing code behind an app. In the Ningbar, you can get stats about the app you’re using (who else uses it, what do your friends do on the app), check your messages or send messages to others, customize your apps, or clone the app you’re looking at.

Of course (we wouldn’t have it any other way!) the Ningbar is completely customizable and programmable. You can tweak every aspect of its appearance and behavior. And because the Ningbar sits on top of our open Javascript and REST APIs, what the Ningbar can do is only limited by what cool stuff you can think of to build. (This panel showing the current weather was a fun quick hack.)

Gina’s post on the Ning blog has lots of screen shots and gives some more background on Ningbar goodies. As always, has the programming and API details for how to make the Ningbar do your bidding. In particular, check out the sections on our new Javascript APIs and interface customization.

Multimedia Regular Expressions

What would regular expressions for non-text look like? I think many of the quantifiers would be similar, but the notions of “character classes” and what goes in an atom would be totally different.

Two ways of specifying bits to match for audio could be score-oriented or sample-oriented. Score-oriented “classes” could match patterns consisting of particular notes, notes in particular keys, with particular duration, particular chords, parts of particular chords, and so on. These could be built up into multi-note patterns. Other notation would look for other parts of the score – tempo, all those Italian words that describe how to play the notes, etc.

Sample-oriented classes could match particular samples (or subsets of samples), certain rhythms, melodies, etc. With fancy enough signal processing, the classes could match against particular words being sung, a particular singer doing it, or slices that “sound like” some other slice (where “sound like” is implemented by some pluggable algorithm.

A text-based notation might be doable for the score-oriented classes and some of the sample-oriented classes but to fully extend the analogy the expression of the audio-regex could/should be with audio (or visual representations of the audio) as well – “Find the five bars on either side of any music that sounds like this” where this is some scoring or sample that’s either taken literally or has been approrpriately “expression-ified” (with audio processing filters?), or, alternatively, is a visual representation of a score that has been similarly transformed.

Extending this to video is an expansion of the “sample-oriented” audio expression language, but with visual idioms in addition to the auditory ones – some possible classes to match against are things such as frames with human faces in them, frames with a particular face, indoor frames, outdoor frames, frames that are predominantly a particular color, frames from the work identified on IMDB by ID XXX, and so on.

Metaprogramming @ NYPHPCon 2006

Here are slides and sample code from my talk at NYPHPCon 2006.

Cellular Copy Protection

From the novel Olympos, by Dan Simmons:<blockquote>Is he dead? Irretrievably dead?

The Prime Integrator standing near the surgical table watching the procedure does not lift his head as he answers on the common band. No… normally the procedure would be to inject several million nanocytes to repair the human’s damaged aorta and heart muscle, then insert more specialized molecular machines to replenish his blood supply and strengthen his immune system. …[T]his is not possible with scholic Hockenberry.

Why not? asks the Callistan integrator, Cho Li.

Scholic Hockenberry’s cells are signed.

Signed? says Mahnmut. …

Signed - copyrighted and copy-protected, sends Asteague/Che on the common band. … The cells and subcellular machinery ignore our own nano-interrogation and destroy any alien intrusion.</blockquote>

Web 3.0 Comes With Solitaire

Looks like the “Web 2.0” Conference is back for another round this November. The list of topics covered includes “Defining Web 3.0: What’s Next”.

I expect Web 3.0 will mostly be about a better GUI and some bundled applications. I’m more looking forward to Web for Workgroups 3.1, Web 95, and Web XP, though.


I’ll be giving a talk on “Metaprogramming with PHP” at NYPHPCON on June 15 16. Although PHP is not a metaprogramming paradise compared to languages such as Lisp or Ruby, there are plenty of practical techniques and neat-but-less-practical tweaks that let you bend PHP’s syntax to do your bidding.

Plus, it’s always nice when going to a conference means hopping on the A train instead of an airplane.

Update: The talk is on June 15, not June 16 as originally posted. The conference organizers switched a few talk slots around.

Dojo + Prototype

Cow-orker and Javascript fellow traveller Jon Aquino posted his thoughts about working with two different Javascript toolkits (Dojo and Prototype):

Prototype is more of a Porsche, whereas Dojo is more like a Hummer.

I had been ruminating along similar lines (since we’ve both been playing with both toolkits) but ended up instead with this haiku:

Prototype makes your
Javascript look like Perl; but
Dojo? like Java.


BadgerFish is an attempt to have a straightforward way to represent arbitrary XML documents as JSON objects. Think of it as SimpleXML for Javascript.

Me @ OSCON 2006

As Adam and Chris have mentioned, the talks for OSCON 2006 have been selected.

I’m excited that my proposal, I’m 200, You’re 200: Codependency in the Age of the Mashup, was accepted.

Unlike most previous talks I’ve given, this one is less “here’s how to do something with PHP” and more “here’s an interesting problem to think about.” I am also pleased to be doing my part to advance the nascent discipline of HTTP status code humor.

Ning @ etech 2006

Yoz and I gave a talk at the Emerging Technology conference today. I was very pleased at how it went. We went through a few examples of clone-and-customize, talked about apps sharing data with each other, and showed off the brand new Atom API.

What we discussed, links to the apps we used, and more goodies are up at