Sunday, May 3, 2009

The Dalai Lama in Boston!

Yesterday I went to hear His Holiness The Dalai Lama speak at Gillette Stadium in Foxboro. He is one of the most down-to-earth spiritual leaders I have ever heard. There is no arrogance or appeals to incomprehensible mystical forces-- just plain simple concepts.

Before the Afternoon Session

I arrived for the afternoon session around 12pm during the lunch break. The crowd was pretty diverse... Tibetans, a few Buddhist monks, some yoga and tai chi people out on the grass, New Agers, hippies, yuppies, families... people. I wandered around the level behind the seating where all the food vendors were-- they had set up some Tibetan cultural displays and shops. (It was a little odd seeing these nestled among the pretzel vendor and the McDonalds.)

The event was sponsored by the Tibetan Association of Boston and funds raised are going towards the construction of a new Tibetan Cultural Center in Boston. I went out and found my seating and listened to a concert of Tibetan culture being performed on the stage. Here's a sampling:



The video clip shows some dancing and the Tibetan musician Penpa Tsering. Some of the flute music reminds me of Native American music I grew up with in Arizona. Indeed, another one of the musicians at the event Nawang Khechog collaborated with Navajo flutist R. Carlos Nakai. Nawang performed an song dedicated to the Dalai Lama.

Penpa Tsering's piece with the stringed instrument really fascinated me... it reminded me of an oud, both in the intonation and in the rythmic style. It got me thinking about the connections in a paper on Russian music history I'm writing -- Arab influences traveled up through the Crimea from Persia and along the Silk Road later inspired composers like Rimsky-Korsakov in music like Scheherazade -- did they also make their way into the musical traditions of Tibet? Certainly the historical trade routes suggest that.

Immersed in these thoughts, I realized that the concert portion was over and The Dalai Lama's talk was about to begin.

"The Path to Peace and Happiness"
(The following is my recollection of parts of his talk, so I may paraphrase or interpret or quote parts out of order -- this is not a transcript.)

He walked out onto the stage and sat in his chair. His movements were calm and unrushed, without any tightness of formality. He drew his legs up into a crossed position in the chair, wrapped in his robes and searched around for something in the cloth bag he brought with him... then he found it and let out a chuckle to himself and everyone joined in when they saw that he had put on a New England Patriots cap to keep the sun out of his eyes. He gave a big thumbs up and a smile.

He started very simple. "We are all human beings." He pointed out that if he said "religious" it would exclude all the "non-religious", or "Tibetan" might exclude all the non-Tibetan or anti-Tibetan... so our commonality first and foremost is human. We all want to be happy. Our happiness must not be at the expense of others, for they too want to be happy.

He said that some people have attributed magical healing powers to his blessings, but he explained "if that were so, I wouldn't have needed surgery," and chuckled. However he offered another interpretation -- he noted that his doctor remarked how young his organs looked relative to his age -- this perhaps can be attributed to long practice in calm thought and compassion. He noted that scientists have studied the effects of stress on people and the positive health effects of happiness, so this is not too hard to believe.

The Dalai Lama is different than most spiritual leaders in that he embraces and supports science. He enjoys connecting scientific and Buddhist insights, and it seems for him to be a way to more deeply understand the nature of things. This is very refreshing in a world where the choices seem increasingly between spirituality devoid of reason and reason devoid of spirituality. (This effort goes beyond such narrow confines as "religion" -- for example, he is helping to launch a spirtual center at MIT focusing on ethics in business and science.)

Tying into his focus on essential humanity, he notes that ethics, compassion.. these things are more basic than institution, religion, etc. We need them as human beings. In this way, the Dalai Lama is trying to broaden his message beyond Tibet, beyond Buddhism... beyond religion... to something that applies to all of us in the world.

Then he gave some advice for how to attain happiness. For one, if you can widen your focus from yourself to the larger context, this can reduce your stress. He gave some examples, but I thought of the most striking example I know, the famous picture "Earthrise". When you realize your troubles next to all the other thousands of human beings who are going through similar things... it helps to calm your stress.

He noted that sometimes scientists and politicians tend to use the words "I" and "me" a lot. These words narrow one's focus, making small problems seem much more stressful.

Another thought he offered was that even when there is very bad news, there are also positive effects. For example, although being exiled from his homeland was bad, it has given him the opportunity to talk to many different people and spread awareness in the world. So, every time he hears or experiences something bad, he tries immediately to shift his perspective to notice something good that will come out of it... this also calms stress.

He did touch on the question of "freeing Tibet"-- he said that Tibet would even be willing to be part of the PRC if they were allowed to keep their culture and their language. Of course, this opens up a much larger and more complex set of issues that he didn't get into. He did invite observers from all nations into Tibet -- "if you see that conditions are as the Chinese say, then my information was wrong and I humbly apologize." I assume he is speaking here of the spiral of violence between rebel and PRC forces.

Perhaps it is impossible at this point to separate The Dalai Lama's message from the conflict in Tibet, however he says he wants to keep the dialogue open, searching for a non-violent "win-win" solution that benefits both sides. There is much I don't know or understand in this conflict. The U.S. and China are interested in this area strategically for different ends... for China, it serves a similar strategic interest to our historical "Manifest Destiny," which places us in a difficult position to claim moral superiority or defense of an indigenous culture. Yet, we have a greater recognition and respect for these cultures now... to lose them would be a incredible loss to the world. I think many people agree that we should do all we can to preserve these traditions for historical reasons if nothing else.

But, at least in The Dalai Lama's case, these traditions are surprisingly modern in their application. Regardless of our technology, the principles of how we relate to each other and form meaningful relationships have not changed in thousands of years. The Dalai Lama is remarkably clear in applying Buddhist principles to everyday modern life.

We need his voice in this world, now more than ever.

Sunday, March 15, 2009

web 3.0 needs a javascript package manager

Javascript has gotten huge with Web 2.0 techniques. Libraries like jQuery, Scriptaculous, etc. etc. have helped redefine the role of Javascript from being a rag-tag script-kiddie language to becoming a viable platform for the web, competing with the likes of Flex and Silverlight. Javascript is getting serious attention from Google (ala V8) as a serious language with serious compiler design. In short, it's a glorious time to be using Javascript on the web.

So while the iron of Javascript infrastructure is hot, I have an idea for the next generation of the web:

the time has come for a javascript package manager.

No, I'm not talking about javascript loaders like jspkg or sprockets (although those are awesome efforts). I'm talking about a real package manager like Debian. Let me describe the growing problem and why I think a package manager might be a good solution.

The Problem:

Different sites require certain versions of scripts to run. Right now, site maintainers do this by downloading a copy of the library to serve from their site. This is fine if the site is simple and self-contained, but if you add several portlets to your site (a couple ad-rotators, some captchas, social site scripts), pretty soon you run the risk of accidentally including several copies of the same library in your page, all from different domains.

This sops up an enormous amount of bandwidth. Rich pages routinely download 1-2 Mb per page load... this is only going to get worse.

The Solution:

What we need is a package manager for Javascript like Debian's APT or Ruby's rubygems. Some way that the page can say "I need so-and-so version of this Javascript library in order to run." Then the browser can manage these javascripts in a secure cache -- if you have already retreived the version required, good. If not, then the browser will get a copy for you. The browser only gets new javascript if the page contains an updated version dependency. Furthermore, if a library depends on another library, the version dependency tree can be managed and sub-libraries can be automatically loaded once and only once.

Because the browser would be taking a more active role in managing scripts for separate domains in the same store, some work along the lines of Chrome needs to be done to make sure that script execution across multiple site clients remains secure and robust. Chrome is already leading the way on this, so I think it's doable.

A robust, integrated package management system for browsers would reduce bandwidth costs and at least double or triple the loading speed of AJAX web applications. That's something everyone would like.

Friday, March 13, 2009

Communism 2.0? More like 0.2 alpha.

Bruce Sterling's post, "Communism 2.0" over at WIRED caught my eye today. He talks about a new resurgence of communist ideas thanks to the global market meltdown -- Marxist philosophers are meeting in London this week with the thesis "from Plato onwards, communism is the only political idea worthy of a philosopher."

When the Soviet Union "fell" down many people thought this meant that Communism utterly failed (according to our vastly simplified propaganda). Well, now that the global market meltdown is laying waste to the economy, many people are saying that Capitalism has utterly failed (according to their vastly simplified propaganda).

This is dangerous talk, and not simply because of "our side" vs. "their side"... it's dangerous because irrational debate of utopia/dystopia is still volatile enough to end millions of lives in this century just like it did in the last century. Capitalism is just as loaded a word as Communism thanks to the Cold War, but if you strip away all the rhetoric and attached meanings, there is a simple fact at the core of Capitalism that is testable and proven:

Capitalism has a means for generating income, not simply dividing it.

Communist theory is oddly silent on the subject of generating income. The idea is that everyone will simply do the right thing. Marx neglected to say anything specific about how his Communist ideal would be attained... the underlying mechanism is left for the reader to "feel" as would a 19th century Romantic. Marx says that in the perfect Communist society, resources are distributed exactly where they need to go and people do exactly the work they need to do since they work for each other.

But how? How does a resource distribution system just magically know how to work? The 20th century answer to this was that an "appointed" leader makes the decisions for you. However the whole period from the 18th to the 20th centuries was about showing the flaw and futility of top-down aristocratic rule. Even when the ruler is kind and "works for the people", it doesn't work. Things change faster than a central authority can react -- if you can't react, you don't adapt -- you die.

Some would argue that matches the evidence of what happened in the USSR and nearly happened in China before Deng Xiaoping's reforms. Or what is still happening in Cuba. There should be little doubt at this point that top-down communism (like any aristocracy) simply does not work. It's not because we didn't try hard enough, or weren't selfless enough.

So, is there another way that Communism might work without being top-down? Something closer to Marx's ideal, rather than some of the transition states he described? Well, think seriously about how that ideal would work... it's a difficult problem to solve.

The only underlying mechanism I can think of is a distributed network of technology and humans that can make their own decisions and adapt locally to changing situations. But this sounds an awful lot like a democracy... there's no one to "enforce" that you do things for someone you don't interact with. And if you follow that idea further, you ask how will resources be optimally distributed in such a network and you come straight back to something that sounds an awful lot like a market driven economy.

But the Communist philosophers haven't gotten unstuck from the 19th century to answer these difficult questions. They are still arguing that you should believe them because of their passions. Until they can describe an underlying mechanism of Communism they are simply promoting unfounded speculation as a socio-economic theory and playing a very dangerous and foolish game with our lives in the process.

This crisis is real. The millions who died in the name of 19th century utopian ideologies were real. It's time to "set aside our childish things" and face these problems rationally or embrace utter destruction as a species.

Monday, February 23, 2009

the bigger picture...

The previous post about the importance of technical managers is just a small example of what I think is the importance of mathematics and science education in general.

At first people don't pay much conscious attention to design principles. They simply do whatever works. For a time this is sufficient. But soon people begin to think about efficiency. Maybe it's their competition or scarce resources, or their customers can't pay as much as they once did. Whatever the motivation, when people first start considering the constraints of a problem and how to solve those problems esthetically, designers are born.

But there is another layer beyond this. When economies drive down the costs of design and organizations must no longer consider the merits of a few designs, but rather must select against an endless sea of millions of designs and practices, the question becomes "what is the optimal design?"

This is the point where mathematics gets involved. Math is the language for describing systems and calculating their optima.

This pattern should not be surprising to anyone, but sometimes the conclusions are surprising. For one, it seems that any sufficiently advanced and refined problem domain comes to mathematics. Whether it's how to ship a million packages a day, or how the basic building blocks of life are sequenced in various creatures -- large scale almost begs for mathematical solutions. For another, it implies that no matter what your particular artistry entails, if you follow it long enough, you will end up having a mathematical interest of some sort.

This isn't that remarkable if you look at the trends of modern science: biologists are talking with computer scientists are talking with physicists... and all of these are talking with mathematicians. Even linguists, who started with a love and study of languages and etymology have branched into computational linguists who study language origins using statistical methods in mathematics. Some of the fields developed their own systems and specializations in the infancy of their fields that are only now being realized as special cases of more generalized fields in mathematics. Core topics like Set Theory and Ring Theory are now prerequisites for dozens of studies in the arts and sciences from biology to finance.

The lesson is clear: if you want to be the best at what you do, science and math education are the prerequisites.

non-technical managers...

I recently read Sid Savara's article about how engineers can more effectively communicate with non-technical managers. I think Sid does a great job on the engineer's side with some really good insights as to how engineers think of communication. It's a great article that brings an honest (if somewhat naive) assumption that people simply want to communicate.

But it takes two to tango, and I'd like to challenge the assumption that a non-technical* manager can be an effective manager of a technology group with the right communication.

Let's use some simple logic first: Say it is possible to manage a technical group without being "technical". Then you are implying that management decisions essentially have nothing to do with technology; management is management - maybe it's about people, maybe it's about process, but it has nothing to do with technology in any fundamental way.

This leads to two supporting fallacious assumptions (which are very common in business):
  1. ideally all management decisions in a technology group can be translated into non-technical terms. Any failures in this communication are ultimately the responsibility of your technical team to address (otherwise you'd have to learn something about technology, which you've already decided is essentially irrelevant to management concerns).

  2. management issues are essentially simple and easy to act upon unless someone is making them needlessly complex and/or resisting doing any real work (i.e. your technical team).
Let's put it another way: Would you say that a non-sailor Captain could be an effective manager of a ship? Would you say that a non-diplomat could be an effective manager of an embassy? Would you trust a non-mechanic crew chief as an effective manager of a NASCAR race car team? Would you say that an untrained civilian could be an effective manager of a military unit?

Would you say that you can be an effective owner of a sports team without knowing anything about sports or the sports business?

No, because in each of these areas a knowledge of the specific problems and solutions is a requirement of the role of leader. Yet popular business philosophy has started with the assumption that all manager positions are essentially identical in their demands and execution.

It's time to start recognizing that technology isn't always simple and that effective technology managers have to be at least somewhat technical -- it's a requirement of the job.

* I'd like to point out that some managers consider themselves "non-technical" because they lack the domain-specific jargon or experience in a technology group. Maybe they were a biologist, instead of a computer scientist or at least they have some appreciation or experience with science issues. I consider these managers "technically capable" -- they are capable of understanding the arguments with some effort in learning or developing common terminology. This is a more amenable situation because these kind of managers don't make the fallacious assumptions noted above. They are eager to think through problems and find solutions even if they don't have the specific vocabulary. Given Sid's points of effective communication, they will rise to the very technical challenge of running a technology group.

Thursday, January 22, 2009

iTunes is bad at eclectic collections

My music collection is kind of eclectic (genre-wise). You never really know what you'll find in there... it might be Bach performed by Emile Autumn (Electronic?) or Angry Skies (Dance Pop?!)... ok so I noticed that the genres on a lot of the music are completely out of sync with reality. They seem to assign the genre label based on the artist rather than the individual song.

So I tried "TuneUp Companion," but this just made it worse. Now I have 57 very specific subgenres ("Electronica Mainstream", "Post-Modern Electronic Pop").. yikes! It made everything more specific, but now my music collection is fragmented along 57 branches in a completely alien non-intuitive way. The "Genius" feature isn't much of a help because it unfortunately ties into the same organization system to help construct it's playlists - "garbage in, garbage out" as they say.

So what's wrong with this? I know iTunes is just trying to leverage existing ways of cataloging music, but the traditional ways of cataloging were born of record companies and promoters, not listeners. Other contemporary software allows multiple tags so that you can capture all the different terms that apply to an item (such as a blog post).

iTunes needs to realize that there's more than one way to organize things in the world.

Monday, December 15, 2008

KillerNIC: trend or OS "epic fail"?

I was following a friend's twitter the other day that turned me on to a product called KillerNIC.

This is a high-end gaming network card that advertises superior network performance in games. At first glance, I think there's nothing to this, after all, network interfaces have become commodity items for years now -- hardly anyone buys a dedicated NIC card that isn't part of a motherboard or laptop these days.

But then I come across the striking claim: "Completely bypasses the Windows Network Stack"

Wha-what?! Ok, part of me thinks this is really cool. Maybe its the beginning of hardware optimization of parts of the stack that were previously tightly integrated with a particular OS. DMA and asynchronous bus access is the future! Building-block integration stacks maybe?

But another part of me says "wow, windows has really epic failed to get to this point." Let's see, it was cheaper and more effective to create separate hardware and completely bypass Windows Network stack than it was to deal with the cruft of 10 years and bad plug and play interrupt models? Having been a Win32 developer... yeah, actually I can totally believe that.

Apparently this card also reigns in the "spoiled child" model of modern application behavior. Now when McAfee or Windows Update "calls home" for updates in the middle of your game, you won't be disconnected. The card can be configured to give maximum priority to your current focus application and idle-priority other background apps.

This points to another epic failure of application developers. It's gotten so bad that we simply can't trust you any more to do the right thing, so we're taking away your network privileges at the hardware level. Ouch! Once again, I can totally believe that.