Dance with the Devil!
Friday, December 1st, 2006My first youtube video! It’s a music video I created for Necto Nightclub in Ann Arbor to play during our Halloween party in 2005.
My first youtube video! It’s a music video I created for Necto Nightclub in Ann Arbor to play during our Halloween party in 2005.
several paragraphs of ado before nothing:
this is possibly the third time i type this fuckr out:
the first was I think in some email to someone who will henceforth be known as “chad” several months back.
secondly i typed this out about an hour ago here and now in this blog TEXTAREA before I watched homestarrunner which was before i accidentally followed some tangent that one of my cohorts wanted me to follow — linkwise — that (my point:) led to my loosing of the contents of this web-form. (I curse the fact that wordpress doesn’t have gmail’s “autosave” feature. How hard can that be?)
so, the third and last time I will type this out is today:
One of my most heavily-respected colleges asked me off-the-cuff (or on-the-cuff?) if I have any business-ideas for a dot-com. I stammered a bit and said “Um…. i don’t know … let me check my blog.” (A sufficiently advanced blog may one day serve as a great crutch for early Alzheimer’s.)
He or she said something like “well, if you can’t think of anything off the top your head, it’s probably not worth bringing up here [in context that was taking place]”
So then afterwords I was all like “Damn … what was that good idea again?”
I skimmed over my previous (less than many) blog entires and realized I have not yet elucidated on my most prized brainchild — the most prized discovery I have yet to realize I didn’t make:
[And to create even further suspense before the grand exposition of what I know is the invitable future [yes i’ve been drinking]: My whole impetus for wanting to contribute to this blog that my brother so dutifully, dilligently and deftfully created was the fact that I am tired of having “ideas” (as they are called) that seem to either (a) blister in the sun like a dream deffered (or whatever) or (B) that I am tired of coming up with ideas that I find have already been “realized” well before I even “conceptualized” them, often by several years. So, this site [as I conceived it as being] was intended to serve as a digital paper-trail of this absurdity: both of the obvious-to-some naïve megalomaniacal ruminations we all frequently have (right?) (that prove to be a re-invention of some (often secret) wheel) and the occasional “damn-i-should’ve-done-this” flashes of fleeting brilliance. That’s what I wanted this site to be. Please pass the Johnnie Walker Black Label.]
My most prized brain-child (that i see feasible in my lifetime possibly by my own involvement) is this:
Imagine an ebay with a better search. The search is no longer a straight text-search on the arbitrary product-descriptions that vendors type-in freely, but rather it is a search against the unique structure of the data of type of products/services for which you are searching.
The search is simply: “This is what I am looking for (in no imprecise terms). Let me know when you find it.”
As it stands, for every product or service for which a customer searches, he or she has a “criteria” in her head that represents the target product that this customer seeks. Rarely does the application present tools that allow for the customer to express this critieria to a sufficient degree granularity that such that a search is immediately useful.
This is where I come in. Mark Meves.
(It sounds better if you pronouce it “Mavis.”)
…
Um… who farted? oh, sorry. that was me.
Does anybody remember BusinessObjects, circa 1998? This was the twilight of the era when software products were still marketed with MixedCaseNames, because that seemed LikeTheFuture. This app had a nifty query-builder tool (gui) which allowed you to create arbitrarily-deeply nested OR or AND branches to your SQL query. ( I didn’t realize these could be arbitrarily nested until I used this tool.) (The 2-D nature of this tool helped me visualize things I couldn’t easily see in the 1-D context of traditional hand-written SQL.)
Also BusinessObjects offererd the attractive feature of drag-and-drop, gui-based selection of field names and operators ( LIKE, =, IN ( ), <=, etc. ), so that, like any good UI, it was impossible for you to enter an invalid statement (or structure).
But I digress. What if you had an app that created UI elements (”controls”) to facilitate search in the manner that BusinessObjects presents UI elements to model searches for whatever unique schema of data? Because, after all, the search for a car is different than the search for a cell-phone than it is for the search for a therapist than it is for the search for an etc. (new drug? new girlfriend or boyfriend?)
Can we expect consumers to be able to figure out these obscure controls? Probably. If not, I bet we could make a trivial natural-language-esque interface on top of this that would facilitate such a consumer-vendor interaction in a manner that, while still seeming bot-like, would not seem any more venal and assinine than your average interaction with a sales-person.
And for the nay-sayers: You and I can all imagine the issues that this presents. (How do you get the schema? How do you allow for a data-store that dynamically morphs-on to the structure of arbitary new data? How do you validate the obviously biased incoming data from vendors? What is the basis for claiming that you have a basis for validating anyone’s information, in general? Why didn’t I become a furniture-designer, or shepherd, or dentist?)
These questions and more have probably already been answered by someone else. But if not, cheers to me!
And if so, I’m drinking anyway!
Frisco and Mark chat about Ajax and then troubleshoot a server-error and talk about sysadmin utilities that should exist.
[11:43] friscolr: http://ajaxwrite.com/
[11:44] friscolr: ajax implementation of MS-Word compatible word processor
[11:45] manikmarkus: heh. we’ve been watching a few of those, FCKedit , ,others.
[11:46] manikmarkus: what does it mean “MS-Word compatible”? the interface is the same? does it read and write word files?
[11:46] friscolr: yeah, it’s open/save features do MS word docs, though i haven’t tested it fully yet.
[11:47] manikmarkus: wow. very impressive.
[11:48] manikmarkus: javascript could replace java for platform independent software development, er.. anything that is database-backed for sure.
[11:49] friscolr: yeah, and then security lists will truly overflow with XSS
[11:49] manikmarkus: XSS?
[11:50] friscolr: cross site scripting
[11:52] manikmarkus: wonder how they’re making money off this.
[12:01] manikmarkus: Matt tells me that google bought “writely” and now other folks are in a hurry to try and make an ajax-based editor to sell to someone.
[12:02] manikmarkus: I could see a need for a really solid Ajax-based HTML editor. I’m sure such things are under works. Like an Ajax based dreamweaver. Cause all this use of “textile” like markup for content management isn’t cutting it for me. Definately there would be a big market for an HTML editor that is as easy and familiar to use as Word.
[12:04] manikmarkus: Nice — i went to http://ajaxlaunch.com and got a Smarty (yuch) error!!:
[12:04] manikmarkus:
Fatal error: Smarty error: unable to write to $compile_dir ‘/var/chroot/home/content/a/j/a/ajaxpc/html/postnuke/html/pnTemp/pnRender_compiled’. Be sure $compile_dir is writable by the web server user. in /var/chroot/home/content/a/j/a/ajaxpc/html/postnuke/html/includes/classes/Smarty/Smarty.class.php on line 1088
[12:05] manikmarkus: it means they’re using PHP, intersting. I tried combining Smarty and Ajax once — it was a nightmare. The php code that Smarty generates will generate Notices which was breaking my Ajax. Smarty expects that you turn Notices off (not helpful for development) and they don’t mention this anywhere.
[12:05] friscolr: need a bot that constantly crawls a website looking for such errors, and pages me when they occur.
[12:06] manikmarkus: wouldn’t be that hard to write one that pattern matches for PHP-style errors, rite?
[12:06] manikmarkus: (not that I have any experience writing bots)
[12:06] friscolr: but how do you know if the error is supposed to be there or not? as in, a class page that is demonstrating those errors?
[12:07] friscolr: sometimes i do use our search to look for “WARNING” and other keywords
[12:07] manikmarkus: that would have to be an exception to the rule that you could manually flag as OK somehow so the bot ignores it
[12:07] manikmarkus: like in a config file
[12:07] friscolr: probably creating a baseline would be easiest
[12:07] manikmarkus: the amount of AI you would need to have a bot be that context sensitive would be prohibitive
[12:08] manikmarkus: baseline?
[12:08] friscolr: crawl the site once while in a known-good state, if ‘warning’ or ‘error’ appear afterwards, page me
[12:08] manikmarkus: ah
[12:08] friscolr: i mean, if those words appear in different context
[12:08] manikmarkus: why not just keep a watch on the errorlog? I mean, we shouldn’t be outputting errors to the screen on production sites anyway.
[12:09] friscolr: because “we shouldn’t” != “we don’t”
[12:09] manikmarkus: error_repoting = Off; log_errors = On; error_level = E_ALL | E_NOTICE; # no?
[Ed: frisco explains that his users have a business need (my words) to see PHP errror message outputted to the screen, yet he still needs to monitor them in cases where the warning messages are “indicative of larger problems on the site that are [his] responsibility.”]
[12:11] friscolr: in the case of the warning message you showed me, the smarties thing, i wondered if it was a perm issue or a disk full (so still no writes).
[12:11] friscolr: a disk full would be my responsibility (though i monitor for that separately)
[12:12] manikmarkus: i bet it is a perm issue or a disk full issue. check out the nested folders : “a/j/a” that means there might be hundreds of thousands of sites being hosted on this thing?
[12:12] manikmarkus: I still think it’s strage that “ajaxlaunch” folks are outputting this to the screen.
[Ed: in the remainder of the conv., frisco explains to mark what chroot is and its strange occurence in the filepath. All in all we spent like half an hour analyzing this small error message, and I learned a bit from it. Great way to start the day! Thanks, frisco!]
[Oh and keep up the good work, AjaxLaunch folks!]
is probably a well-established field of inquiry, but I know nothing about it.
I was looking for the equivalent of php’s array_diff() in ruby, and I found this:
http://pleac.sourceforge.net/
It’s an attempt to solve a set of common programming problems with an assortment of different languages.
Each time I learn a new programming language I am struck by the awkward fumbly-ness of going from a language I am adept at to another I am a novice at. (java to perl, perl to php, php to javascript, and now ruby). You would expect that each successive language would come easier, and that thereby the process would be progressively more and more rewarding but in fact, the opposite is true: Taking on new languages is like taking on a new lover.  With each new nuance and idiosyncracy you discover, you find yourself missing the comfortable familiarity of the old. You unwittingly gather in your mind a set of all pleasant and fulfilling features against which you impossibly compare each new instance, and as you get progressively more bitter and jaded you accept that the only love you will ever know exists only as a conglomeration-memory of all the good memories of all the lovers you ever new, and by extension you love something that never really existed as an individual in the first place.  Dying is when you finally let go of this unattainable dream.
But what would make this transition-period smoother, I realized, would be an online programming language translator (that would translate function-by-function (or method or procedure)). Surely something like this exists out there?
The fun thing, of course, would be to discover bit by bit the underlying (overarching) babel- (omni- ?)- language among all programming languages, and all the weird constructs that some have that others don’t. (Closures, prototype-based vs. class-based OOP, lamda functions.)
Some random thoughts (ADD-parade):
thanks Sarah, kriskrug and ccote. (This is not a photoshop job. She was actually wearing this shirt.)
Scott, mom tells me that you are now the #1 google-hit for “meves.” Congrats. Having been displaced I feel a little disoriented, but I suppose that is my fault for carelessly leaving my sense of identity with a search engine ;)
I said it here, now: One day in the next 5 years there will be a (successful?) chain of facilities that function as a mix between a video-arcade and fitness club. It will start with a gym installing “Dance Dance Revolution” arcade-game (or, less likely, an arcade installing showers) and/or some other such similar “physical” videogames, (like that boxing one, which seems to tire people out) … and then there will be a bigger market for such games and game companies will start to offer a wider variety of such games.
Research and engineering are of course underway for these games already. And I imagine that we could all come up with some remarkable physical videogames of our own. (I want one that teaches me how to dance to the “My Milkshake” song)
It might be difficult to make this lucrative in a gym-setting, because initial cost and the maintainence for a arcade DDR system is probably more than for an elliptical machine or treadmill (or is it?) and arcades and fitness centers differ in their respective pricing models. Also a challenge will be marketing it to the right demographic. There currently isn’t much crossover between the arcade-game market and the fitness-club set.
Excerpt from David Heinemeier Hansson from the Rails book (pp.215 hardcopy): When discussing using SQL vs. ORM (e.g. DAO, e.g. ActiveRecord) David argues convincingly that there is a time and a place for both ORM and SQL. He says that you should “start out using the object-oriented interface for productivity and pleasure, and then dip beneath the surface for a close-to-the-metal experience when you need it to.” He is in fact referring to SQL as “close-to-the-metal”, which gave me a yet another little wave of progress-vertigo.
(All this time I felt guilty for not being too strong on hardware / networking (to say nothing of compiled languges or that .. what’s it called? assemblism code?), but now I feel more well-rounded for knowing something “low-level” like SQL. The future never ceases to evade me.)
In contrast,strongbad seems to have a handle on things with his succinct definition of technology
Went to the dentist today (my actual teeth pictured). More on this later.
Damn. I guess I shouldn’t be surprised. Someone beat me to it — this is what my first project with Ruby on Rails was supposed to be:
It’s is a tool that dynamically helps you choose among dozens (hundreds?) of content management systems.
(For those shopping for CMS’s see also opensourcecms.com, which lets you try out dozens and dozens of CMS’s and related things. (unfortunately this is limited to apps written in PHP4.))
This “decision maker” matrix is something that I have been wanting since like 2001, when I was sort of working on a version in Perl (or was it PHP?) to make such a thing for cell phones. (Choosing a cellphone plan can be daunting for the newcomer, if you remember that far back.) But then of course, I realized that such a tool would be useful for all kinds of purchasing decisions (Like a layer on top of pricewatch that does queries for you.) Surely, hundreds of other developers (entrepeneurs?) have thought of the value of something like this: Image a “push” ebay that stores your queries for desired items, and stores those items in a massive hyper-normalized (?) database. (A concept net? A knowledge-base?) It then notifies you when it finds items that fuzzy-match your query (within some tolerance).
Oh.. right. Amazon does this (among other online superstores). But does amazon have frontend that lets you construct queries with arbitrarily deep granularity with respect to the “problem domain”? What the hell am I talking about?
Surely, such a thing should be on its way to the surface by now, no? How come I haven’t heard of it? (It’s a rhetorical question — please don’t answer with an insult unless it’s clever ;))
I imagine the biggest challenges facing such a system would include but not be limited to:
As for “keeping data current”, you would want spiders, when possible. I have always wanted a system that recognizes a spider as a “user” or “contributor” along with its human counterparts. (To have both humans and bots in the same table makes me shudder with excitement and reminds me of a story.) As for trust metrics, imagine a slashdot where people contribute not articles but well-defined, structured data?  (If you could get this easy enough for end-users to do, and you could set up an online shop, people would probably come knocking.)
But surely there’s something I’m not thinking of.
Well I can’t wait to see it when it happens. Shouldn’t be long now.
is my business.
(So when do I get used to it?)
[then, on feb. 03:]
Is it possible that software is not like anything else, that it is meant to be discarded: that the whole point is to see it as a soap bubble?
—Alan Perlis
I discoverd Alan Perlis in Jim Weirich’s excellent blog where he is described as:
the first head of the Carnegie Mellon University Computer Science Department and the first recipient of the Turing Award, [who] recorded some of his accumlated knowledge about programming in a series of one sentence statements. You can read more about his Epigrams here
For me it was in like 1998 when I was in a users’ forum IRC chat room with bunch of Debian (linux) users. I kept asking neophyte questions like “how do you use apt-get” and they kept deferring my questions to some guy named Frank.
“Frank, tell Mark about apt-get.”
And Frank spit out a bunch of stuff about apt-get.
Everyone in the room kept sending the really easy questions to Frank, and what struck me was the manner in which they spoke to him: they were really rude and direct. I kept thanking Frank, and did not understand why the others weren’t extending him the same respect.
So anyway… blah blah blah I was engaged in a social interaction with this thing for a good minute or so before I realized that I was talking to a bot. Whatever: my belief was not suspended for that long, but long enough to give me a jolt. The feeling is probably akin to standing next to someone in an elevator and turning to them to ask the time and then realizing they are a mannequin. (one of my pet peeves in fact.)
Although it wore off quickly, the initial novelty of talking to a (somewhat useful) bot was exhilirating.
[more on this later]