Hashes vs. PowerSets

Reminder to self:
Think more about fun comparisons of hashes
(allows decomposing of problems by N) and power sets (causes problems
to increase in complexity by 2^N)

The former is the standard technique I’ve used to make hard problems easy
or fast: divide-and-conquer. The latter is a a natural result that for any body of N nodes, full connectivity goes as 2^N: applicable in social networks, etc.

Sounds lke hashing fails to decompose power-set problems.
Can we use power-sets to decompose?

Flash-based display for RRD data

RRDtool is a great gizmo for storing and displaying time-series data.
Normally it creates PNG or GIF graphs to display info,
but often I want to zoom in/out, turn on/off data lines, etc.
This is normally non-trivial. But a Flash-based UI for RRD display would make it easy.

Linguistic PageRank

(from an email to a friend 2 July 2003)

Language is a recursive web of syntax and semantics. A.I. systems seem
to have faltered in the last 20 years as they try to parse seemingly
simple sentences. Given a string of words, one can interact with this
recursive web, finding the interrealtionships (and bring in past conversations,
‘knowledge’ about the world, etc), but intead of diving off the end into
recursive looping, could one use a PageRank-like calculation to help converge
on the useful nodes that are what the sentence ‘means’. (by which I mean:
prune down the web to the small set of interconnected base principle nodes
that can then be machine parsed, sorta like finding the ‘concentrator’ nodes
in a web graph)

Has anyone done this?

Music Event Visualization

[from an email to friends on 13 Aug 2003]

Okay, so the problem with all these ‘eye-candy’ music visualization programs
(stand-alone or part of iTunes, Winamp, XMMS, etc.) is that they have to go
thru the process of sleuthing out interesting ‘events’ in the audio, in
real-time, to act as triggers and modifiers for the visuals.
As we’ve all seen this is pretty hard (because the results mostly suck)
and they usually just devolve into the “twirly oscillosope with color fade”
effect. The time difference between audio and video signal must be very
small to be not noticable, meaning there’s not much time for real-time
analysis.

If instead there existed a visualizer that used a pre-computed ‘event track’
for a song, the visualizer could spend its time doing much more interesting
and meaningful things besides FFTs and such. And let’s say that there exists,
CDDB-style, various network- or disk-available caches of these ‘event tracks’
that the visualizer would search for before displaying pretty pictures.
Soon a whole community exists that creates and submits these event tracks
exists, just like how CDDB avalanched into usefulness because of the network
effects of having more CDs in its database.

What are these ‘event tracks’? At its simplest, I was imagining something
small (32 bits, one bit for a frequency band (each 1/4 octave wide say))
for each 100ms chunk of audio. Perhaps later we create extended events that
indicate something very high-level like ‘intro’, ‘verseA’, ‘bridge’,
‘chorus’, ‘break’, ‘drum solo’, etc.

How do we create these ‘event tracks’? For the simplest event type,
perhaps we start out with a very good (and thus not real-time) method of
analyzing audio into the 32 bins per 100ms. That would be a start.
Maybe we create a GUI that shows the audio with semi-transparent overlays of
what, where & when the algorithm thinks the bins should be and allows users
to nudge the events, clean them up, add the higher-level events
(“the chorus starts here, the break happens here”).

You may be thinking that at some point these ‘event tracks’ start looking
like MIDI data. Hey good idea, there’s another way we could pre-generate
the higher-level events, if we’re given a sufficiently accurate MIDI track
of a song (many MIDI files exist on the Net, would be interesting to see how
accurate they are when compared against the recording)

And maybe as a value-add we include the lyrics too. Instant Karaoke with
trippy visuals!

Imagine what else one could do with an accurate ‘event track’ of a piece of
audio? Besides really nice visuals, a video-editing suite could import it as
a template for when (and what kind of) wipes or other video manipulations
should occur. Auto-editing of video! (well almost) DJs could find a use
for the events I’m sure.

Oh and how do we make money with it? Fuck if I know. Maybe we sell the
really kick-ass GUI event creation tools and leave the punters with the
command-line Perl modules. Maybe we use the event tracks as some sort of
digital signature that artists can use to determine which version of their
song gets out on the Net. (and thus who leaked it) Maybe like GPS we offer
the ‘low-res’ version to the public for free, but if you want the
higher-res/higher-quality version (for your DMX light system you’re using for
your nightclub or theater troupe) you gotta pay. Maybe we apply a special
super-secret algo that generates only high-level rhythm events and then sell
it to music producers with “Want to make your track have the same ‘feel’ as
the latest Beastie Boys track, just apply this event template!”

SOAP to REST converter?

Has anyone made a converter that converts SOAP servers to REST?
Perhaps you specify a converter, with the query args you want to use
to then fill in the SOAP query, and an XSLT for output. This could be
automated.

Does this exist?

Why I want it: I imagine a large universe of simple clients,
either by virtue of their capabilities (no RAM) or their programmers
(SOAP can be needlessly complex),
which cannot do SOAP. But everyone can do REST.