Jazz of Code

Posted by Michael Cervieri Fri, 08 Sep 2006 14:07:00 GMT

I went to the Jazz Standard in New York City the other night. Hadn’t been there before but will be back again. The acoustics are good and the food’s great. They music? Obviously depends on who you’re there to see.

I saw a violinist. A college friend invited me. I was more interested in seeing my friend than I was the music for the very simple reason that of all the biases I’ve developed in my life, one that tops my list is that the violin is not a Jazz instrument.

It just doesn’t swing. It doesn’t have the vocal earthiness of a horn. It doesn’t have the stomp and swagger of piano.

That’s not to say the violin isn’t a good instrument. It is. It obviously has a place in an orchestra. It’s beautiful in a string quartet. It can play raucus bluegrass.

But my point is that while it has its place, that place is not in a trio, or a quartet or any other scenario where it leads a form that swings. Instead, it works where the music is straigh-ahead no matter the time signature or tonal dissonance.

I’m not sure why this is. A violinist can make beautiful runs, can get behind and ahead of the beat, can do all the other things that single note instruments like trumpets and saxes can do, but it ends up sounding flaccid in a Jazz setting.

This might be a string instrument thing. Few guitarists outside of Charlie Christian, Django Reinhardt and Wes Montgomery have really left their mark. Sure, you can point to people like John McLaughlin but I’d argue that his improvisational innovations and excellence fall outside of Jazz. And when I say ‘fall outside of Jazz,’ I’m simply alluding to the fact that while Jazz is improvisational, not all improvisational music is what we typically think of when we think of Jazz.

(I recognize that’s a giant soggy towel of a statement, and I’m going to sidestep it and let it hang out there to dry since if you want in on a dirty little secret, I’d argue that all improvisational music is Jazz, that Jazz precisely means improvisation and that it further means dialog amongst many members who navigate their own voices as they come together in a collective give and take conversation.

(What I’m saying here though, is that despite the very large and significant exception I just outlined, when we discuss traditional Jazz forms, the violin just doesn’t cut it… and don’t even get me started on the flute.

(Thus ends my giant hedge.)

It might be a timbre thing, because when I mention strings I’m exluding bass. Charles Mingus, Ron Carter, Eddie Gomez, Dave Holland and so many others that have had us bob and weave our heads. Nuff said.

This might be more on point because as I think about it, and all apologies to Benny Goodman, but the clarinet doesn’t grab the gut either. It’s too thin. Too reedy.

I won’t mention the violinist by name because golden rules say that if I don’t have nice things to say, I shouldn’t. Besides, when she came onstage I recognized her. I’d seen her play before in an Americana roots band and her playing in that context was lovely and admirable.

Her pianist is impressive. His name is Jason Moran and his style ebbs, flows and splashes with short phrases and lines. He then stomps, rags and strides before emerging with tonal sheets laid atop one another like McCoy Tyner’s done throughout the years.

What’s important though is construction, of creating wholes out of disparate parts, and of understanding the parts or ingredients used to construct and create the whole. What’s important is choosing the parts that come together to form the whole. This is true be it music, visual art or software.

Software? Yes.

It’s a creative art that comes together to create a platform or environment on and within which users (i.e., audiences) interact.

I choose software deliberately. It’s a provocative art and our code slingers are poets to the highest degree.

They write a syntactic language, they abide by, break and create new rules, they alter and modify, they edit and purify, they create the altogether new, they open up unique possibilities of understanding and interacting with the world with their discoveries.

It’s a shame that most don’t see the craft behind programs but only the programs themselves. This would be like not being able to see Goya’s brush stroke, hear Hendrix’s guitar riff or watch Almodavar’s video frames pass by.

Artistry is hidden in software. Even more, the poetry of code has two distinct anamolies working for and against it.

  • It’s obscured, meaning few see it. Possibly only other coders on a team in closed systems. More, obviously, in open source systems.
  • It’s foundational, meaning that while code is poetry with its own logic and syntax, it also serves as a basis upon which others create objects that are totally unrelated in language if not necessarily in purpose.

For example, the code of Final Cut Pro allows for a music video. The code of Photoshop allows for an image. The code of Abelton Live allows for music. The video, the image, the music are all creations on top of creations and highly significant in that they could not exist if the orginal wasn’t birthed into place by poets slinging, then refining code.

Let’s add this to the mix: Code as collaborative art. Code as Jazz. Developers as a band that brings their unique take together to create a whole.

The reason I suggest this is because the art of software necessitates not just layers, but the interplay of layers. That interplay is an interlocking of back-end and front-end and all possible layers in between.

There’s someone who’s tuned a database and someone who’s written code to get and put information from and into that database.

Then there’s what we interact with. What we “see.” This is user interface. It’s the pretty design colors and buttons we press and how forms act and react to our choices and interaction.

Taken all together is an orchestrated piece, a program. And taken together it’s code as Jazz. It’s a navigated dialogue between the front-end and back-end.

Keeping things simple, the back-end and database is our rhythm section. Our drum and bass. It needs to be tight, it needs to be fluid and can’t falter or fall apart.

Graphics and general user interface — our front-end — are our soloists. The work together to create melody and harmony. They work with the rhythm section to create a composition.

Which brings me back to the violin. As said, it’s a very good instrument but has its place. So too in the Jazz of code.

Just because techniques, languages and other whizbangery can be done doesn’t mean it should be.

Posted in Code, General Musings | 3 comments | no trackbacks

(Riddle / Mystery) * Enigma = Good Stuff

Posted by Michael Cervieri Fri, 01 Sep 2006 18:30:00 GMT

For the past few weeks we’ve read about the solution to some math thing with a French name that we don’t really get.

The Poincaré is a topographical conundrum that deals with measuring three-dimensional spheres. So perplexing was the riddle that the Clay Mathematics Institute selected it as one of seven Millenium Prize Problems and offered a million dollars to whoever could solve it.

Enter Grigory Perelman, a Russian mathematician variously described as reclusive and/or enigmatic. After posting a number of papers online and having them vetted by his peers, it appears he’s solved the Poincaré.

As Dennis Overbye wrote in The New York Times:

Now [mathematicians] say they have finished [reviewing] his work, and the evidence is circulating among scholars in the form of three book-length papers with about 1,000 pages of dense mathematics and prose between them.

As a result, there is a growing feeling, a cautious optimism that they have finally achieved a landmark not just of mathematics, but of human thought.

“It’s really a great moment in mathematics,” said Bruce Kleiner of Yale University, who has spent the last three years helping to explicate Perelman’s work. “It could have happened 100 years from now, or never.”

As a result of his achievement, the International Math Union awarded Perelman mathematics’ highest honor, the Fields Medal, and invited him to its quadrennial congress to receive it. Perelman refused the medal and declined to make an appearance.

And this is what gave the story legs. Add Perelman’s reclusive refusal to articulate why he’s declining the award and we have ourselves a media mini-event. Add a dash of eccentricity — he has really long fingernails— and the story has legs. Not quite John Mark Karr legs but legs nonetheless. You simply don’t turn down the Fields Medal. It’s like turning down the Nobel Prize — which Le Duc Tho did in protest during the Vietnam War and Jean-Paul Sartre did just because — and leads to a lot of head scratching and introspection. What’s gone unwritten and mostly unnoticed are a few words that usually appear with most of the stories: Perelman posted his Poincaré proofs on the Internet.

This makes it sound like he took out a MySpace account or some such haphazard thing. While that would be nice what he actually posted it to arXiv, an open resource run by the Cornell University Library with funding from the university and the National Science Foundation. It contains some 380 thousand science papers that anyone can view and review. This is precisely what some of math’s leading minds did when Perelman alerted them that the first of his three papers was on the server.

This, of course, is untraditional. Academics and scientists submit to peer-reviewed journals. Publication gives them the ever important stamp of legitimacy. Just ask Hwang Woo-Suk. The disgraced South Korean stem cell scientist is in the middle of a court battle fighting fraud charges that could lead to a ten-year prison sentence.

Since Perelman didn’t publish in a traditional, peer-reviewed journal, others such as Shing-Tung Yau could (the one he edits, actually) and attempt to lay claim to solving the Poincaré. You can catch up on a whole cast of characters with reputations to maintain and build if you read Sylvia Nasar and David Gruber’s Perelman profile in this week’s New Yorker (August 28, 2006).

There’s no small irony in the Web/ journal divide. All these Webs got their start as a way for academics to share information and collaborate. That’s all old news.

What’s new news, and what’s missing from the words so far spilled in the traditional press, is the significance that most mathematicians are having none of Shing-Tung Yau’s claim on the Poincaré.

They may find Perelman a little odd — and may be perplexed that he hasn’t sought the imprimatur of an established journal given the significance of his achievement — but the peer review enabled by an open source like arXiv carries enough significance that they credit him with the Poincaré solution.

And while the length of Perelman’s nails and his joy for long walks are all important humanizing details in the Poincaré-IMU congress story line, it’s the way Perelman put his intellectual capital out there, how he delivered his content, openly and freely that will be this story’s lasting legacy.

The story of open source software has been told. It’s lead to tremendous applications and solutions.

The story of content put in the public domain, either freely or under licenses such Creative Commons is a sleeper. But a sleeper with incredible cultural ramifications.

Posted in Code, General Musings | no comments | no trackbacks

And That's a Launch

Posted by Michael Cervieri Fri, 28 Jul 2006 21:27:00 GMT

As I write this it’s summertime. There are lazy days on the beach to be had. And online video, audio, audio slide shows, and PDFs, Podcasts and QuickTime downloads from RailsConf 2006 are now available courtesy of our friends at No Fluff Just Stuff.

To register for or log into the site, please visit RailsConf2006.ScribeStudio.com

In the spirit of all that is incremental in releases, about 85% of all content is there. This weekend and next week sees us polishing off the site and getting the final pieces in place.

Still, a good 30+ hours of extraordinary content and deep thinking is available. If you registered at the conference I just sent you your User Name and Password to the site.

If you want to register now, just head over to the above URL.

Posted in Code, Video on-Demand | no comments | no trackbacks

Rails Core Panel Discussion

Posted by Michael Cervieri Sat, 22 Jul 2006 23:13:00 GMT

Put all the boys in a room, sit them at a table and fire away with questions on all things Rails related.

The following video is taken from the closing session of RailsConf 2006 in Chicago.

Learn about standards and whether they’ll be included, who’s in charge of saying no to feature requests, debugging support, what’s planned for upcoming releases and whether these are are boxers, briefs or cowboy kind of guys.

This video has been moved to a permanent home at ScribeMedia.Org.

Posted in Code, Education Technology | 7 comments

Paul Graham RailsConf 2006 Keynote Address

Posted by Michael Cervieri Mon, 17 Jul 2006 15:35:00 GMT

Contradicting the Old Testament and Yoda in one fell swoop, Paul Graham discusses what it means to be an outsider in the programming world.

He ties Rails developers’ outsider status to other disciplines such as art, and talks about the hopes and joys, fears and frustrations of standing on the outside and looking in on the mainstream.

Paul on Paul: The Biography. (Taken from his Web site.)
Paul Graham is an essayist, programmer, and programming language designer. In 1995 he developed with Robert Morris the first web-based application, Viaweb, which was acquired by Yahoo in 1998. In 2002 he described a simple Bayesian spam filter that inspired most current filters. He’s currently working on a new programming language called Arc, a new book on startups, and is one of the partners in Y Combinator.

Paul is the author of On Lisp (Prentice Hall, 1993), ANSI Common Lisp (Prentice Hall, 1995), and Hackers & Painters (O’Reilly, 2004). He has an AB from Cornell and a PhD in Computer Science from Harvard, and studied painting at RISD and the Accademia di Belle Arti in Florence.

His site paulgraham.com got 8.1 million page views in 2005.

Posted in Code, Education Technology, Video on-Demand | 5 comments

David Heinemeier Hansson RailsConf 2006 Keynote Address

Posted by Michael Cervieri Sun, 09 Jul 2006 22:01:00 GMT

There’s smart, then there’s really smart, and then there’s really damn smart.

We believe David Heinemeier Hansson’s keynote address below from RailsConf 2006 in Chicago is further evidence of the really damn smart tag that’s been placed on him.

Due to the popularity of this video, it has been moved to a permanent home at ScribeMedia.Org

A bit about David, in his own words from his LoudThinking.com:

A product of Danish Design from the Winter of ‘79. Grew up, lived, and graduated in the city of Copenhagen, then moved to Chicago in November of 2005.

As a partner in 37signals, I helped transform the venerable design shop into a product company. Basecamp, Backpack, and Ta-da List are all applications launched since the shift came into effect in February 2004. I did the programming for all of them.

In July 2004, I released the framework Rails (also known as Ruby on Rails) from the work on these applications. I’ve been managing that as an open-source movement ever since. And lately, quite a few people has been taking notice. That means a bunch of speaking engagements including RubyConf, FISL, Reboot, OSCON, ETech, JAOO, and many others.

In August 2005, I won the Best Hacker of the Year award at OSCON from Google and O’Reilly:

In March 2006, I accepted the Jolt award of product excellence for Rails 1.0 and was featured in Wired magazine:

In addition to Rails, I’ve also created the most downloaded Ruby end-user application. It’s a small, light wiki called Instiki. I’m no longer actively developing on it, but still proud of how far I made it go. I even used it to write my final project towards my bachelor’s degree in Business Administration and Computer Science at the Copenhagen Business School.

Posted in Code, Education Technology, Video on-Demand | 19 comments

Martin Fowler RailsConf 2006 Keynote Address

Posted by Michael Cervieri Mon, 03 Jul 2006 20:15:00 GMT

We’ll start Martin Fowler’s RailsConf 2006 keynote off with a little humor during a conference giveaway. Yung Yan, Douglas, Jeremy, Zach, Walker? Where were you? You missed out on the free swag.

Martin Fowler is Chief Scientist at ThoughtWorks, and, in his own words:
I’m an author, speaker, consultant and general loud-mouth on software development. I concentrate on designing enterprise software – looking at what makes a good design and what practices are needed to come up with good design. I’ve pioneered object-oriented technology, refactoring, patterns, agile methodologies, domain modeling, the Unified Modeling Language (UML), and Extreme Programming.

You can learn more about him from his site.

Posted in Education Technology, Code | 7 comments

The Ajax Revolution by Jesse James Garrett

Posted by Peter Cervieri Sat, 01 Jul 2006 23:21:00 GMT

Since we’re rolling out the RailsConf 2006 Keynote Series we thought it would also be interesting to share talks on another key technology: AJAX.

With the closing keynote of The Ajax Experience, Jesse looks at the convergence of technologies that sparked the Ajax revolution and the latest innovations being created by Ajax developers.

to watch all the keynotes and education sessions from the conference, visit the ajax experience conference multimedia web site.

a summary of jesse’s keynote is as follows:

it’s exciting to see all the different things people are doing with ajax these days.

adaptive path, jesse’s company, connects product strategy with user experience. they follow the idea that if you start with the way that people think and behave, and what will have user appeal, and you build out from there to create your products, those are the products that will be successful in the marketplace. it’s important to find ways to make the products we create more attractive to people.

behind a word: ajax an insurance client of adaptive path came to adaptive path to see how they can use user experience to improve their relationship with customers. the question was how can we try to improve the experience of managing this information for our employees to get a competitive advantage in the marketplace? the underlying question was how do business users do their jobs and how do they interact with the applications they need to use to process infomration about their customers?

starting with that question, jesse spent a few months on the road to observe employees in action, what they do, how they do it, the tools they use, etc.

his findings were predictable. the applications that employees at this large insurance company used were uniformly awful to use, confusing, slow, etc.

the goal for the project was to try to create a more responsive experience and cut down the amount of time it took an insurance agent to deal with one of their customers.

adaptive path took that field research and tried to design an application that would provide a more responsive experience. flash was not an option because you can’t control the environment of all these agents around the country. some of them were still on dial up.

so the question was “how far can you go with a web browser?” the goal was to provide all the things people love about the web, but provide it with a level of dynamic experience and rich interaction that they weren’t accustomed to.

after much thinking and searching, the answer came when gmail came out. gmail represented a significant break from the way we historically designed web applications.

with gmail as inspiration, the first thing adaptive path did was build a prototype to be used by some test agents. the response to this prototype application was overwhelming. agents essentially do data entry, an unenviable task. with the prototype application, they were laughing with joy from the experience, a contrast to the normal drudgery of their jobs.

since the pilot was a success, the next step was to embark on a $2 million development project and roll the solution out to the entire company. this required a presentation to the CEO to get his buy-in. Jesse was tasked with presenting to the CEO.

the challenge was as follows…how do you explain to an executive what it was about this that was different from every application he had ever seen on the web and what it was that made it compelling.

jesse went through iteration after iteration of his powerpoint deck and came to the realization that this guy was going to tune out at the first mention of a techy acronym.

with one shot to explain the idea, jesse came to the realization that this bundle of technologies, when used in this specific way, represented a different way of thinking about web applications.

and that different way required a name. the really important concept was the asynchronous way this application worked. and it had javascript. a big issue for the company was cost. so it was a plus that they were going to leverage the web services architecture the company already had in place, so xml was important. from all that came the name ajax.

the presentation was a success. the executive “got it.” after the presentation people all over the insurance company were talking about ajax. people who were never before interested in technology were suddenly excited about technology.

but ajax isn’t about the specific technologies. it is about two fundamental things. first, it’s about creating an asynchronous interaction model where user activity is decoupled from server communications using (the second thing) browser native technologies. if you are doing these two things, you are doing ajax, regardless of technology.

asynchronous interaction: break out of the interaction model we have always used on the web. ingrained in our minds is the fact that a browser provides you with access to pages. we assume that the web is a document retrieval / hypertext system. this is a synchronous model. you want something, you ask for it, someone goes and gets it, and brings it back to you.

the trouble comes when we try to apply this synchronous interaction (i do something, then the server does something, then i do something) idea to web applications because the web is much more than just an information medium. synchronicity creates gaps in the user experience. the user has to wait while the server sends something back.

ajax takes this classic web interaction model and makes it faster by introducing something in between the user and the server to make it seem like we are closer to our data than we are.

now the user activity is a flowing stream because of this middle man in between the user and the server. bruce sterling said “ajax is roller skates for the web.” “ajax introduces a set of constantly spinning wheels between us and the web.”

the important thing to remember for those of us designing ajax applications is how to let users know what is going to happen when they interact with our applications. the expectations of others are key.

web developers have always been jealous of desktop application developers because of the inherent richness and responsiveness of the desktop environment as a place to play and experiment. but the web has it’s own appeal because it is so simple and ubiquitous. once you’ve interacted with one website, you can pretty much navigate any website. you can’t say that about desktop applications.

with ajax, we have the opportunity to deliver the responsiveness of the desktop while maintaining the simplicity of web applications. we don’t need to replicate the experience of desktop apps. we can re-imagine them without any of the constraints of the desktop.

we now have the best of both worlds. interaction design is important. it’s not just about interfaces, where the button goes, but what the button does and how the application behaves and reacts to what the user does. the way you interact with the application now that it is a living thing becomes key as we plan out our work as application developers.

browser native technologies: the big thing with ajax is that there are no longer any compromises one has to make when developing web applications. you don’t need to rely on the user having the right browser with the right plugins, etc.

when migrating a software application to ajax, the appeal is that you can follow a strategy of incremental migration. moving to ajax does not mean that you have to migrate your entire application to a new platform. migrating to ajax can happen gradually, you can implement in bits and pieces. you don’t have to throw out all your old code. this low risk factor is a huge appeal to those who create web applications.

view source you can always look at the work that other people are doing and understand exactly how they did it. web design as a discipline has grown phenomenally over the past 10 years because we are all sharing our work with others.

web designers can apply what they learned from others into their own work. web application developers haven’t always had this luxury because most of the interesting work being done was at the server level. ajax changes that equation. the code you write to run in the browser is as visible as HTML. so once again, we’re all learning from others.

why is all this happening now, even though the technologies have been around for years? the browser wars are over. microsoft and netscape are no longer releasing every six months. the feature wars were followed by a quiet time, which gave developers a chance to sort out what was real versus hype, what was important. CSS was introduced as a standard in 1997, but it took 5-6 years before the web design community began to use it in the real world beyond just a theoretical understanding.

scripting languages are coming to the forefront as well. you can build an industrial strength, consumer grade application in perl. but people didn’t trust scripting languages in the past. they have now been proven to be good technologies. the success of perl led to a greater interest in python and ruby as serious tools for developers. javascript is now shaking off the stigma of being a toy language.

google, through google maps and gmail, has created compelling examples to show how people can now interact with web sites. if you had asked someone a few years ago whether there was any room for innovation in an online mail application, or online maps, they would have said no, that the problem had already been solved for the most part. google came along and reinvented these dead categories with technologies that were at everyone’s disposal.

who benefits from using ajax? first mover advantage is huge again, especially if you are creating consumer focused applications. also, anywhere you are creating applications or features where responsiveness counts, that is where you can benefit from ajax. if you can make your users more productive, all kinds of opportunities open up.

what happens after ajax? there is a fundamental break in the way we think about the web.

the web is becoming a true application medium. as an example, adobe “apollo” will allow flash applications to run outside the browser. it will be interesting to see what comes from that.

collaborationwe need to have lots of cross training between designers and developers.

making applications work for users requires designers and developers to collaborate more than ever before. designers have to understand how the technology works and what it is capable of to create great design solutions. developers that we work with have to understand exactly what that design solution is intended to accomplish in order to create the solution uccessfully. we have to sit at the table together to collaborate successfully.

ajax is the next chapter in web design and development. it’s not the last chapter, but an important one.

Posted in Code, Education Technology | no comments

Powered