Dabbleability


#1

i like to call this attribute “dabbleability”, in the sense that anyone
without preconceptions or prerequisite skills (besides posessing a
brain) can pick something up and create something with it…the dabble
factor is influenced holistically by the intuitive easy of use and
comfortability of a system’s underlying framework. this is why artists
have traditionally used macs instead of learn how to edit an
autoexec.bat or lilo.conf, at least until XP/Ubuntu came around…

basically despite hearing the constant mantra about ‘its hard to find
good people’, ive only managed to land one paying contract recently
(this is also influenced by the fact that everyone that has contacted me
has invariably been some kind of bank/hedge-fund (been there, done
that), or recruiters for some kind of dotcom thats doing something like
hosting podcasts that im never going to listen to and tacking on 5
minute targeted advertisements to the end and letting people download
them to their mobile phone and syndicate their listening habits to their
online calendar and email this data to friends via SMS, or what not…)

knowing i didnt want to repeat myself in the process of creating code
and further not wanting to get phone calls when they want to add a
feature, the logical step was allow total customization of the model and
definition of new structured data types and relationships, by the user,
via AJAX. i sort of procrastinated because i wasnt really blown away by
1.0 (eh? i can write the few of the 700 action_helpers im actually going
to use on a regular basis to spit out html or generate sql in a few
minutes in mod_python, thanks), but with 1.1 have fully come around to
kool-aid drinker (in the Wolfe sense) wooed by the ability to truly do
everything in Ruby, thanks to innovations like RJS, MAB, Migrations…
this lack of integration was the main reason i had previously only used
the web mainly for some screen-scraping regex-hacks for my homepage and
market-tracking needs.

how i achieved a basic “DabbleDB” in stock edge-rails was a table for
each of the basic types (sting, integer, etc) and a polymorphic join
table linking these components together into meta-records. say, 2 string
types joined together as a ‘blogpost’. it works fine for their basic
needs of customizable form templates, but i’m already worried about what
happens when the ‘String’ table is too big to fit into RAM…

i’m interested in thoughts on taking rails to the next-level. since it
already has a lot of magic for setting up relationships and
viewing/changing this data, i think it would be great if much of this
was exposed to the user who was not a programmer (in the Ruby, LISP, or
even **** sense) but still has good ideas. instead of the above ‘beastly
join table’ it would obviously make sense to use all of the existing
rails magic, in its current 1.1 state this would probably mean
programatically generating template data and migration scripts for
user/app_prefixed tables and perpetually running the server in
development mode while reloading model state on a per-user-defined-app
basis, etc. in otherwords, probably a touch of refactoring is in order
for efficiency reasons, but given the overall quality of design and
utility of abstraction, probably nothing outside of a .1 revision level
of complexity, given the current state of change…

in the vein of the various ‘could Rails have been built without Ruby’
articles, i’m curious if there are any pondering whether DabbleDB have
been written without Smalltalk - if the languages are truly
spitting-cousins, then perhaps it comes down to why would
Cycling74SignalsVsNoizbow want to create something that would let anyone
create their own Basecamp in 15 minutes. For example, im curious why RoR
has probably several orders of magnitude more users than Seaside,
despite it being around for less time - perhaps due to marketing itself
to everyday people instead of Smalltalk programmers? if that’s the case
i think theres a way its userbase could work to its advantage. Like what
you whipped up in the AJAX Model/UI editor and want to flesh out a few
of the parts youre going to frequently use with a more customized UI by
a wise Javascript/CSS guru and import some of your old data via a custom
regex and have it all installed on a Mac-mini ready to be plugged into
your onside network and need a shinto god to ship it out to you by next
week? just click onto this Rails site to find someone in your area…