Archive for June, 2003

Milonga at Maggiano\’s June 13th

Saturday, June 14th, 2003

A big thank you to everybody that attended the milonga at Maggiano\’s tonight, and another thank you to everybody that brought along friends and newbies! We had a good crowd of 37 people there tonight (including about 20 new people that showed up on time for the intro lesson!). We even had two visitors from Philadelphia, and a woman from New York. The hors d\’oeuvres seemed well-received: grilled vegetable antipasto, stuffed mushrooms, a plate of Italian and domestic cheeses, and a plate of Italian meats. The party was still going strong when the restaurant closed us out at 12:40 :-) .

Here are the photos. If you were there, I hope you enjoyed it! If not, then I hope you can make it July 12 for my milonga at George\’s Garage.

Reusable Tango Code

Thursday, June 12th, 2003

Reusable code is another great property of good programming languages and Argentine Tango. Once you find your favorite pieces of code (say a really efficient parser, or a great boleo combination), you can choose when and where to insert it. You know exactly what it does, how it works, and how best to modify it.

It could be a code/combination that you copied from another source, then modified as your own. It could be something that you wrote from scratch, and even if it does the same thing as a similar piece of code written by somebody else, it\’s still your creation. Once you develop your personal style of dancing/coding, people will see the hallmarks of your style in the choices you make and the pieces of code that you choose to reuse and optimize.

If you share that code with others, then others can observe it, learn from it, alter it, and even attribute it to you. \”Dancer F taught a step to Dancer D. Even though F rarely used it himself, D loved it so much he made it one of his signature steps. F taught me combination Z, but then I modified to Z3X to match my style. Meanwhile, I had been tinkering with idea C, and F solved it by turning it into combination M.\” This kind of thing happens all the time in the Tango (and open-source programming) world, and it\’s a process that feeds continuous innovation and enrichment for the art and its practitioners.

Debugging Your Tango

Thursday, June 12th, 2003

This is going to be a lot more meaningful to you if you\’ve got some kind of experience with programming. For the technically minded, one of the convenient things about tango is that you can debug iteratively. Your ability to take advantage of this depends a lot on how you choose to think about tango.

If you\’re focused mostly on memorized patterns (the more traditional method of learning and thinking about social dances), then dancing is like programming in a compiled language (like C). You have to write chunks of your program completely, then compile to binary, then execute, then read cryptic error messages, then make a change somewhere, then compile, then execute, repeat as necessary. If you\’re lucky, then you have access to some well-documented source code and a good IDE to simplify the process of debugging. But very often, you\’re looking at fairly large chunks of code and procedures trying to find out exactly where in the chain things are going wrong.

For me, working with Argentine Tango is a lot closer to writing in Perl or PHP. These are interpreted rather than compiled, and can be written and executed almost on the fly. You can see the output of single lines or control loops simply by adding print statements anywhere you want to check what\’s going on. If the problem seems too large, it\’s trivial to extract a small piece of code, simplify it and build it back up again to something more complex. Even better, you get your results almost in real-time which makes it easier to rapidly prototype, tweak and improve the code you\’re working on.
(more…)

Website Accessibility

Thursday, June 12th, 2003

I think I\’ve got a pretty good handle on separating my semantic markup from my CSS presentation code. It\’s a large part of the reason why the site design has been so straightforward to date. Less crazy presentation markup, the easier the site is to debug.

This also ensures that the site is accessible and easy to use on multiple platforms and browsers (including the browser on your web phone). In addition to the usual plethora of resources I like to consult on these things, it turns out that Mark Pilgrim, one of my students and a wonderful blogger, has published a very helpful site on the topic of accessibility, and I\’ll be implementing a lot of his recommendations on this site over time.

Going forward, you\’ll see some interesting changes to the site that will allow you to view the site under multiple designs (black-on-white vs. white-on-black, images vs. none, etc.) and to choose your favorite. In the Tangophilia spirit, I hope the site will be easy to use and understand, and yet demonstrate the power and beauty of the ideas and techniques behind it.

New Countdown

Thursday, June 12th, 2003

I\’ve rediscovered the joy of functions in PHP, and have cleaned up my pages to separate the presentation logic from the presentation code. Pages are about the same file size, but should be easier for me to maintain. From the perspective of you viewers, here are the two changes you might notice.

  1. Presentation of date information is determined based on the date ranges of the event. Dates are presented differently based on whether the event is a single-date, multi-date or weekly event.
  2. There\’s a little indicator on events that are less than 31 days away to let you know how many days are left until the event, or if a class is in progress, if you can still sign up.

The beauty of logical structures (and database driven sites) is that they make it possible to have things happen automatically because the software can follow the rules I set out. I would never have bothered to put this type of presentation on my old site because it was all hand-coded and I simply can\’t be bothered to update x-number of pages by hand on a frequent basis.

Of course, the question is, will anybody find these changes helpful? Maybe, maybe not. But just like in tango, sometimes it\’s worthwhile to explore some ideas because the exercise will open up other possibilities, and because small and subtle improvements can add up to bigger improvements over the long term.

Tango as a Foreign Language

Tuesday, June 3rd, 2003

Learning to dance the tango is like learning another language.

Lots of resources are available to teach you the \”phrasebook for beginners\” with lots of helpful ready-made phrases like \”good morning\”, \”how are you?\”, \”one more beer, please\”, and \”where is the bathroom?\”. If you find yourself in front of a bar on a sunny morning, these phrases become exceedingly useful because they are easy to say, and fit readily in the context you\’re in. If they\’re a little choppy or uncertain, you can slow down, use lots of hand gestures and still be roughly understood.

The problem arises once you step back into the street and have to negotiate with the taxi, or the hotel check-in, or the police officer wondering why you\’re drunk at 11am. How do you handle these novel situations that weren\’t covered in your phrasebook? If you were studious enough, and had a particularly good phrasebook, you might have been exposed to enough similar and varying phrases to build up some mental framework of the language. \”I know that these three words mean \’where is the\’ so I can substitute another noun here if I can wrap my mouth around it…\’library?\’ \’wombat?\’ \’hospital?\’\” You\’re in better shape if you have a few verbs, a handy adjective, and a couple of well-intentioned curses (with gestures). But again, your knowledge is limited to a handful of possibilities which can only be used in very particular circumstances, and only if you happen to recognize the situation you\’re in. Eventually, if you learn enough phrases you can fake a passing knowledge of the language, but still won\’t be fluent.
(more…)