Wednesday, April 21, 2010

State of Cul-de-sac

I was working with Microsoft Silverlight technology lately.The project I was given had some specific requirement which would be practically impossible to achieve with regular server/client approach. So my options were ActiveX, Flash or Silverlight. For variety of reasons I've decided to go with Silverlight. That seemed to be a simple enough project but nevertheless it plunged me into a state of mind I somewhat reluctantly call a state of cul-de-sac.

There are many different states of mind. Well, I better say states of my mind for I have no idea how other minds function (Malcolm Gladwell has more to say about it). I can spend a lot of not incredibly exciting hours trying to categorize and describe them but it would be better to concentrate on just two of them.

The first is, like I mentioned, is a state of cul-de-sac. That state happened very frequently once I entered high school, then in the university and then again once I started to deal with computer programming. This state is characterized by acute sense of being in some kind of dead-end, like you are browsing in unfamiliar neighborhood, getting lost and ending up in a cul-de-sac. You have no idea where you are, there is no way ahead since it is a cul-de-sac and going back does not look too promising since you just come out from there. So you are standing in front of that cul-de-sac, scratching your head and making serious face so local kids, who play hockey nearby, will not think you are one helpless miserable moron. Descriptive enough?

Being in that state can be quite depressing. That what happened to me once again when I have started digging into Silverlight. I was in one cul-de-sac, then another, then another... I was googling through myriads of highly technical webpages, I was trying to follow video tutorials, I was considering buying a ridiculously expensive programming books... I was almost hearing quiet grinding sound of my overheated mind.

Then, at one undetectable moment, amount of information I was exposed to somehow transformed into very weak, almost intangible sense of connectedness between different parts of the seemingly chaotic whole. It felt like I caught the tail of Silverlight and my grip on it grew stronger and stronger with every minute passed in front of my computer. At some point of time I even thought I had a clear vision of overall Silverlight architecture (it turned out to be just one of the incarnations of that technology) and that thinking really pushed me forward.

And then I have entered into a second state, which is referred to by programming grands like Joel Spolsky as simply "zone". There is no clear-cut beginning of the "zone", and you only understand your being there when you (usually suddenly and roughly) pushed out from that state by some external factor (like co-worker asking something or phone ringing or alarm of a car parked outside goes berserk). The longer you stay in that "zone", the better chances that something good appears although it is not 100% guarantee.

Stay in the "zone" is also not entirely homogeneous. It is rather staccato of iterations "cul-de-sac/zone" with different duration each. Gradually duration of the "zone" gets longer than of cul-de-sac. When it is much longer and when urgent IM of your boss severs your happily creative presence there you can start feeling acute sense of hunger. It was always puzzling me - all you do is sitting in front of your monitor with fingertips flying over the keyboard and nevertheless you feel so terribly hungry like you were playing soccer 3 hours in a row. Something extremely voracious for energy going on while your are in the "zone", no matter what spacial position you are at.

So, I was working on that Silverlight project, feeling frustrated, then hungry, in the cul-de-sac, then in the "zone". Eventually, I found solution and learned several interesting concepts by the way. And while those concepts are related to Silverlight only, there is another one related to the whole process of creative thinking. That concept can be formulated this way:

No matter what you do, you will never find yourself in the "zone" unless you spent some time in a cul-de-sac.

That's honest truth about any creative process and, in my opinion, a major factor in stopping yourself from creative expression. Thinking of potential frustration of being in cul-de-sac can be really scary. The only thing that mitigates it a bit is when you have a genuine interest to the subject matter. And that's probably why myriads of psychologists and HR professionals highly recommend to do for living something you genuinely love.

Saturday, April 10, 2010

Googling around

The sheer process of learning has been reshaped beyond recognition since I was student. Ratio "Search for info/Learn info" greatly shifted towards "Learn info" since Google (and others) make the process of searching pretty damn good. That does not mean of course that it is always easy to find what you need; sometimes it requires certain effort even with all power of Google. But at least you don't have to rush to faraway library or irritate people around you with seemingly repetitive questions. Since Google (and others) keep evolving chances are search process may get even easier in future.

There is even neologism popped up, to google. I heard it first few years back from a strange source - episode of "Law&Order" where Assistant District Attorney was going to google up some secretive criminal. It is a very regular verb nowadays, hardly neologism anymore. Everybody use it. Seems like Microsoft considers it pretty damaging to the future of their newly launched project because numerous blogs of Microsoft educators advise you to "Bing it" when something is required. I did not hear yet "Yahoo it" or "Yandex it" (that's Russian search engine) but that does not mean nobody employs those constructs.

So what do people google up? Simple answer - anything. I know a girl who is crazy about real estate so she googles everything about it, from realtor's reputations to eco-friendly housing. Developers google when they need to find answers for multitude of technical questions. Travelers google best rates for hotels and air tickets. Shoppers google for shoes and books, former residents of Bishkek google for latest news from Kyrgyzstan (it is bloody unrest there at the moment).

Sometimes to google is the only way to get info fast even though it may not be pretty. My cat has walked away outside and did not come back. He always returned before. I was looking for him in vicinity, making those hissing sounds we believe are detectable by cats. Could not find him. Googling brought sad discovery - sometimes cats go away to die alone. My cat was old. That maybe what he did. Why do cats sometimes prefer to die alone? Well, that sounds like another reason to google. Seems like it would also be a very sad googling.

Wednesday, April 7, 2010

The Talent Sourcer and aspen sprouts

Like many who have LinkedIn account I came across that message. It propagated itself across the web with such speed and decisiveness I can't stop thinking of such matters as geometrical progressions and factorials. The message is written by a manager from Microsoft whose title is Talent Sourcer. He goes to Russia to look for software engineers to join Microsoft Bing team and asks for referrals. He wants them to come to work in Redmond, WA - the very cradle of Microsoft.

His mission is pretty understandable. Microsoft is in mortal combat with Google for better piece of Search Engine market pie. Bing, launched not that long ago, needs serious reinforcements to compete better with Google. So fresh ideas and beautiful minds are in need. I am pretty sure they are being searched for everywhere, not only in Russia. It just happened to be that this particular Talent Sourcer was quite successful in exploiting social network to make himself heard.

Knowing roughly what exactly going on in Russia with computer science and science in general, I would say that manager will be overwhelmed with applicants to interview but it may be harder for him to make selection than it used to be few years ago. Russian university centers, where minds and ideas are boiling, are not exactly in perfect shape. So many scientists and technology guys left for the West (and Far East like Japan) and so many are prepared to follow them I keep recollecting the story of Yellowstone National Park.

In Yellowstone wolves were hunted down to extinction and for about half of century there were no wolves at all. Without predators pressure elk herds multiplied and aspen trees began to experience serious decline. Elks just simply ate aspen sprouts in such quantities that very few survived to become full grown trees. Then in 1995 wolves were reintroduced in Yellowstone and aspen woods bounced back to century old level because number of elks decreased.

You may think of those selected applicants for Bing jobs at Microsoft as aspen sprouts. Long before they grow to become real scientists or engineers, they are scooped out of the country by companies like Microsoft. The difference is unlike Yellowstone aspen sprouts they will eventually become full grown scientists and engineers but not in Russia. It is unlikely that some of them will be considering moving back to Russia although it is not altogether impossible. Western businesses take those sprouts and replant them in the extremely fertile soil of places like Redmond or Mountain View.

Now, the very Russian question may pop up - who is to blame and what to do? In general the picture is not extremely favorable for Russia. It loses its best and brightest to faraway land with few prospects getting them back. But look at the picture a little longer. Those kids who will eventually end up in Redmond will have opportunities to realize their potential they may never had in their lives back home. If they stay in Russia, the old country will not gain much if those talents are buried speaking biblically (and there are plenty of reasons for why they may be buried). Is Microsoft to blame? Hardly. Microsoft is a business and it is a business nature to look the very best of human resources everywhere. Its behavior is no different from say some Russian energy company that may be employing experts from abroad.

If Bing gets better everybody would win on the global scale. Internet will be delivering relevant results faster for any web surfer in the world, Russian kids in Redmond will be glad to see their work, Microsoft may profit, and even Russian mass media might offer a new source for national pride just like they did when they mentioned about figure skating trainers who coached Canadian and US medalists in last Olympics (those coaches are from Russia).

Genuinely sad emotions will be experienced by those who perfectly remembers brain power houses of Moscow or Novosibirsk, who used to observe true intellectual giants at work. It will be sad for those people because they understand that with every young "sprout" going overseas probability of Renaissance for Russian science is fading away as steam from breathing in a frosty day. And those people in their bitterness may start blaming different things for that, from collapse of Soviet Union to pandemic corruption.

Experts will be debating about rights and wrongs of that particular manifestation of so universally uneasy phenomenon as globalization. Rest of us should hope that Bing will get better.

Tuesday, April 6, 2010

Distortion

I was listening a podcast today about biblically old topic of Internet security. A guy from Microsoft for about an hour talked on firewalls, account privileges, encryption and other closely related issues. I would not call the whole theme overly exciting but certain facts were interesting nevertheless. Apparently, companies are distorting their security budgets so grotesquely that unusually primitive methods can be employed by hackers to get valuable data.

So much money are being poured into firewalls development and maintenance that other aspects of keeping data safe are suffering big time. He gave a concrete example. Some grocery chain in BC (was not specified) lost a great deal of customers' credit card info to some smart villain. The chain had good network security but the computer with all data was located in unprotected area. So instead of spending time in front of laptop, hacker contracted some drug addict for amount of $400 to break in and steal hard drive. Operation was success and grocery chain faced unpleasant reality to deal with army of not too happy customers.

The bottom line in Internet security though is that it is simply impossible to eliminate security risk completely - it can only be mitigated to a point. The best strategy here is to appear fortified enough so villains would move to softer targets. It is almost evolutionary thinking, a type of hi-tech Darwinism - survival of the fittest in security sense in the wild environment of cyberspace. It is kind of weird but hackers are the main driving force of that evolution. They are pretty valuable in that regard when looking at the big picture. They ensure progress.

Also, Microsoft highly recommends not to invent your own cryptographic algorithms. At least not for production use (they don't mind if you do that for fun). They want you to use the developed ones on the market. It is hard to argue with that statement. There is so much heavy duty math behind commercial cryptography nowadays one can spend years to learn just that. Programming cryptography implementation can be pain in the butt. But what can you do? Security and ease of use are opposite polars of any software development project. To serve both is like riding bicycle while joggling - some of us manage to do that but for a vanishingly short period of time.

Beginning

Well, they say blogging is a serious undertaking. It requires dedication, consistency and, most of all, sheer energy. Individuals prone to depressions are not good bloggers by definition. At the same time blogger should be a creative person and truly creative people are almost always in some kind of crisis (it is also a tax season by the way). So, how to reconcile blogger's energy with blogger's mood swings? Honestly, I have no idea. As one overly optimistic individual told me ones, to test limits of possible one should push himself into impossible. With this newly opened blog I intend to do exactly that.

I will not be overloading this blog with details of my biography (nothing exciting there) or some poetic ruminations about my feelings when I see fresh snow atop of Golden Ears Mountain. I want this blog to be technical but technical humanely so readers who don't care much about difference between Web Spiders and Java Beans would find something interesting in here. Since I do programming chiefly for Internet proportion of material on Web and Spiders supposed to be bigger than any other one here. I am not sure it is possible though.

OK, let this blogging commence and pardon me for my English in advance.