Ionrock Dot Org

by Eric Larson

My Weblog

Vectors of Communication

Tim had some thoughts on communication that struck a chord . I remember a fellow developer coming into my cube and describing how Apple's word processing software handled styles using vectors. Essentially, if a paragraph, word or character fell on the styles vector, it would get applied. This seems really small and simple, but in the world of word processors, this is a very elegant way of working with style.

What Tim describes is very similar to the concept I call communication vectors. The idea is that communication occurs on different vectors that establish the defining details of the communication. For example, the volume of your voice when speaking could help describe whether you are speaking quietly to your child before bed or yelling over a the crowd at a concert. Based on the vectors you can describe different modes of communication and likely predict how best to handle unknown situations.

The context of my theory is MySpace. The issues behind MySpace and most web application thought processes is that they only function on one particular vector. MySpace handles the social acquaintance very well along with casual relationships. Facebook on the other hand arguably appeals to more meaningful relationships. The problem with social networking sites is not that they offer advantages to different vectors. The problem is the user can only communicate on the given vector at one time.

This problem is not specific to social networking sites. The problem occurs because each service that provides communication does so in a silo. This means that users can really only communicate in one vector at at at time. Without the full spectrum of vectors available in communication, you find that there is a lack of expressiveness and subtlety. In some arenas this is probably a good thing, but overall, it becomes clear that extending communications digitally will always be inferior.

The solution is to allow subtlety and expressiveness enter the spectrum of vectors available in digital communication. While it is not clear how this can be accomplished, it seems obvious that removing the barriers between the available vectors is the first step. If it no longer is a problem moving from the casual conversation to a serious issue, then there becomes the potential for a spectrum of vectors. This alludes to moving the services out of the silos and towards the user.

This reflects the real world in that there are times where casual conversations occur in a casual location. In other words, friends go to mall for a casual good time. At the same time though, the mall does not define the conversation as casual. What defines the communication is the tone and the subject matter. You can have conversations anywhere that are casual. What makes the determination regarding the tone of communication are those involved. Again, this means pushing the interaction and communication to occur between users instead of at a location.

Conceptually this is pretty simple stuff, but in practice it is very complicated. Users need to be able to extend their personality and persona on the web while still allowing the social barriers to be present. Users need to have the ability to reveal different sets of information that define who they are. They also need to reliably reveal private details to specific people. This needs to be simple and automatic from the user's perspective, which is very difficult.

Really the issue is essentially how can we create systems that let people express who they are and have that persona effect their communication without forcing users to add each and every bit to the picture of who they are. It is a complex problem, but as we continue to push and pull the structure of the web, people will eventually gain the tools they need to improve communication on the web.

Posted Tue Nov 27 08:02:10 2007 by Eric Larson

XSLTemplates Update

I made a point release to XSLTemplates. I made two changes:

  1. I added a change so that the content type gets unset if it was previously sent as a header. I don't think this is the right thing to do, but for now it is a workaround that helps with using XSLTemplates with something like WebOb Response objects.
  2. I added a node_set function that returns a 4Suite Domlette object, which should make passing XML as a node-set simpler.
Overall, it was pretty simple stuff.

Posted Sat Nov 24 23:04:48 2007 by Eric Larson

Patent Reform

Traditionally, I try not to speak politically. Basically, my view is that unless I plan on alienating someone, it makes more sense to keep things to myself. There are exceptions of course, in a nutshell, I avoid political conversations. While this post is not very political, it could come across that way, hence this short intro.

I read on /. that Amazon managed to get a patent via changing a few words. The patents had to do with "One Click", which is ridiculous. The problem with this kind of patent is that it does not reflect any actual work. It would be unfair to not allow protecting ideas had on a whim, but the patent system does state the idea has to be novel so in theory things should work.

The patent system should add another vector to their qualifications based on the relative impact of the patent as a function of the amount of work. In medicine, a new patent for a drug is obviously helpful. In software often times patents are little more than stating the obvious. One Click is a great example of a silly patent that lets someone buy something with one click. This is ridiculous because the patent is not a technical feat or consistent. Implementing the patent has no technical consequences whatsoever and having the patent on the books only hinders competitors from providing better services. Conceptually, you could consider the gas station speedpass or pay at the pump, more or less, the same thing.

Hopefully, in the case of software, by analyzing the amount of work that was required to come up with the patent it could be possible to claim that a patent like One Click is bogus. Amazon could obviously reveal that it took X years to develop the One Click technology, but that being the case, then their implementation should be what's patented.

The problem here is patenting an idea in software usually means a patent on small detail. Computers and software are still very low level when it comes to degrees of complexity. Even with better languages and more powerful systems hiding complexity, software still deals in 1s and 0s. There is no way around this fact, but if the patent office acknowledged that within the realm of software new ideas come with algorithms and research, it could potentially be better.

The best option is most likely to hold off on issuing software patents. That campaign has not been very fruitful, which means other options are critical in helping the situation.

Posted Fri Nov 23 17:23:35 2007 by Eric Larson

Smashing Pumpkins

Lauren and I saw Smashing Pumpkins tonight. It was a lot of fun to watch and there was a ton to learn. It can be tough at times watching bands because I find myself studying what they are doing moreso than simply enjoying the music. It is interesting to make an effort at finding the special sauce that makes a song someone's favorite.

One characteristic that seems to be present is an element of risk. Most songs that are fan favorites have some piece that pushes the limits of band's sound. If you look at bands like Led Zepplin or The Rolling Stones, you'll find a history of experiments into different sounds. Sometimes you find failure, but other times you find amazing songs that someone can relate to on many levels.

Likewise, there are great bands that have good songs, but never seem to cross that divide between large indie band to a major label kind of act. While it is clear these bands are excellent song writers and musicians, it is tough to find what is holding them back from taking that next step. In some cases it is probably a conscious choice to avoid larger acclaim, but I'm sure many bands trying to make it big want to find out what is lacking.

The idea of taking a risk is not an exact science. The essence of the tactic is keeping things interesting. There are many scopes to this, but overall the idea is that you provide your audience with enough change and variety to keep them interested while providing the comfort of your original style. It is a tough thing to do, but it seems to be consciously doable, which is a positive in my mind.

Posted Wed Nov 14 08:47:41 2007 by Eric Larson

New XSLTemplates

In playing around with some projects I have made quite a few updates to XSLTemplates. Here is a quick rundown of things that were added:

  1. Setting the template via a module url - You can use "pkg://module.to.import#path/to/file.xslt" to use XSLTs that are included in an egg.
  2. Resolver includes a package prefix - You can use the "pkg:" prefix with a "module#path/to/package/file.xslt" wherever the resolver is used.
  3. Default index file middleware - I found that sometimes the template is really just for substitution purposes and that you really aren't matching on anything. So, this allows you to set your own default XML file that will be sent to the processor in the case of an empty response body.
  4. Set/Get functions for setting the template and parameters - This lets you simply do set_params(environ, dict_of_parameters) to update/create the parameters for the template and set_template(environ, template_name) to set the template.

Nothing too major but it makes life a great deal easier. I also hopefully will get around to making compiled transforms via eggs so you could simply include it and hopefully get a slightly faster transform. I've yet to hit any performance issues, but it seems like a nice feature for deployment purposes.

Posted Thu Nov 8 20:46:02 2007 by Eric Larson

OpenSocial Opinions

Tim is right. When I first heard about OpenSocial I was interested. Now, I'm far from impressed and honestly think it is a waste of time.

It seems the idea of creating an API is getting closer and closer to the forefront. Yes, I realize most sites do have an API, but I'm talking about making it possible for publishing an API as simple as publishing content. The great thing about publishing text is that it is immediately consumable by a huge audience of real people and machines. Most web APIs are simply documentation for some text and we need to push this a bit.

I personally see the future with blips, but that is just me.

Posted Thu Nov 8 17:16:05 2007 by Eric Larson

Massaging a New Monitor

Lately my back has been giving me some troubles. It is obviously due to the huge amount of time I sit in front of my laptop. I had thought about going to the doctor about it but Lauren thought it would be a good idea to try a massage. For those that know me, I'm not a massage kind of guy. I generally am not a big fan of being touched by folks, so the thought of a massage was daunting and rather stressful. This was ironic that something meant to help relieve the stress was, in fact, stressing me out. But I digress.

Lauren, being the person who knows me best, found a place she thought would be good. The person mentioned she did not provide a "hippie" experience, which felt like a good way to go my first time. When we actually arrived I was somewhat nervous and didn't know what to expect. The masseuse was very friendly and could tell I was somewhat uncomfortable, so she was very business like about everything, which was a relief.

The actual massage started off rather harmless. Very quickly though, she got to work on knots in my muscles. Most of the time it wasn't anything too terribly painful, but a few times it was pretty bad. It is scary to feel your body muscles and tissues being pulled and rearranged. Every once in a while it felt like something did give way, but that could have just been me.

When it was all said and done it did feel better to some extent. I did feel relaxed but the pain I initially had felt inflamed. That night I couldn't sleep well and woke up early in the morning in tons of pain. I got up and took some alieve and two icy hot patches on, which got me through to the morning.

Seeing as all the pain has been from my computer work I thought I should make some changes. The most obvious to me was to get a monitor and keyboard for my laptop, so I could work like a normal person on a desk. Lauren and I set out to Frys to pick something up. I got a Samsung SyncMaster 226bw and so far I like it. This is the first time I've ever bought a LCD monitor, so I suppose in addition to helping my posture, I've hit a technological milestone. It's kind of fun, but my back is still hurting like crazy, so the fun is coming along very slowly.

Posted Thu Nov 8 08:25:54 2007 by Eric Larson

Back Issues

The past few days I've been having some back and neck pain. My theory is essentially that I have been sitting on my computer too long. I can't say that I have confirmed this theory, but to be honest I see no other reason for my problems other than poor posture and spending too much time in emacs.

In order to combat this pain I have been getting up and walking around a good deal more. I also have been working on my posture and changing positions more so at the very least if I am sitting improperly, it won't have a chance to do that much damage.

I think the other reason my back has been hurting is simply b/c I am wound pretty tight. Most folks who meet me would think me to be insanely laid back, but my wife can attest to my rather wound up nature. I have made an effort to simply relax my body. My wife says I never breathe, which is impossible. Yet, it is clear that I need some help taking more deep breaths.

I also think I need to get out more. We have gone out a few times lately and it just hasn't been much fun for me. I can't put my finger on why I'm not enjoying myself as it is always good company. My guess is I'm just out of practice. I'm fortunate because Lauren does a great job of breaking my bad habits. She is on to my lack of enjoyment and I'm sure she'll figure out a way to get me back in the saddle regarding having fun soon enough

Posted Fri Nov 2 02:53:09 2007 by Eric Larson
using python, jquery and emacs ;)