Revolution, Evolution, Visual Studio 2010 and Borges#

epicycle

In his preface to The Sublime Object of Ideology Slavoj Zizek writes:

“When a discipline is in crisis, attempts are made to change or supplement its theses within the terms of its basic framework – a procedure one might call ‘Ptolemization’ (since when data poured in which clashed with Ptolemy’s earth-centered astronomy, his partisans introduced additional complications to account for the anomalies).  But the true ‘Copernican’ revolution takes place when, instead of just adding complications and changing minor premises, the basic framework itself undergoes a transformation.  So, when we are dealing with a self-professed ‘scientific revolution’, the question to ask is always: is this truly a Copernican revolution, or merely a Ptolemization of the old paradigm?”

In gaming circles, Zizek’s distinction between Ptolemization and Copernican revolution resembles the frequent debates about whether a new shooter or new graphics engine is merely an ‘evolution’ in the gaming industry or an honest-to-goodness ‘revolution’ – which terms are meant to indicate whether it is a small step for man or a giant leap for gamers.  When used as a measure of magnitude, however, the apposite noun is highly dependent on one’s perspective, and with enough perspective one can easily see any video game as merely a Ptolemization of Japanese arcade games from the 80’s.  (For instance, isn’t CliffyB’s Gears of War franchise -- with all the underground battles and monsters jumping out at you -- merely a refinement of Namco’s Dig Dug?)

When Zizek writes about Ptolemization and revolutions, he does so with Thomas Kuhn’s 1962 book The Structure of Scientific Revolutions as a backdrop.  Contrary to the popular conception of scientific endeavor as a steady progressive movement, Kuhn proposed that major breakthroughs in science are marked by discontinuities – moments when science simply has to reboot itself.  Professor Kuhn identifies three such ‘paradigm shifts’: the Copernican revolution, the displacement of phlogiston theory with the discovery of oxygen, and the discovery of X-rays.  In each case, according to Kuhn, our worldview changed, and those who came along after the change could no longer understand those who came before.

Thoughts of revolution were much on my mind at the recent Visual Studio 2010 Ultimate event in Atlanta, where I had the opportunity to listen to Peter Provost and David Scruggs of Microsoft talk about the new development tool – and even presented on some of the new features myself.  Peter pointed out that this was the largest overhaul of the IDE since the original release of Visual Studio .NET.  Rewriting major portions of the IDE using WPF is certainly a big deal, but clearly evolutionary.  There are several features that I think of as revolutionary, however, inasmuch as they will either change the way we develop software or, in some cases, because they are simply unexpected.

  • Intellitrace (aka the Historical Debugger) stands out as the most remarkable breakthrough in Visual Studio 2010.  It is a flight recorder for a live debug session.  Intellitrace basically logs callstack, variable, event, SQL call (as well as a host of other) information during debugging.  This, in turn, allows the developer to not only work forward from a breakpoint, but even work backwards through the process flow to track down a bug.  A truly outstanding feature is that, on the QA side with a special version of VS, manual tests can be configured to generate an Intellitrace log which can then be uploaded as an attachment to a TFS bug item.  When the developer opens up the new bug item, she will be able to run the Intellitrace log in order to see what was happening on the QA tester’s machine and walk through this recording of the debug session.  For more about Intellitrace, see John Robbins’ blog.
  • As I hinted at above, Microsoft now offers a fourth Visual Studio SKU called the Microsoft Test and Lab Manager (also available as part of Visual Studio 2010 Ultimate).  The key feature in MTLM, for me, is the concept of a Test Case.  A test case is equivalent to a use case, except that there is now tooling built around it (no more writing use cases in Word) and the test case is stored in TFS.  Additionally, there is a special IDE built for running test cases that provides a list of use case steps, each of which can be marked pass/fail as the tester manually works through the test case.  Even better, screenshots of the application can be taken at any time, and a live video recording can be made of the entire manual test along with the Intellitrace log described above.  All of this metadata is attached to the bug item which is entered in TFS along with the specs for the machine the tester is running on and made available to the developer who must eventually track down the bug.  The way this is explained is that testing automation up to this point has only covered 30% of the testing that actually occurs (mostly with automated unit tests).  MTLM covers the remaining 70% by providing tooling around manual testing – which is what most of good testing is about.  For more info, see the MTLM team blog.
  • Just to round out the testing features, there is also a new unit test template in Visual Studio 2010 called the Coded UI Test.  Creating a new unit test from this template will fire up a wizard that allows the developer to start a manual UI test which gets interpreted as coded steps.  These steps are gen’d into the actual unit test either as UI hooks or XY-coordinate mouse events depending on what is being tested.  Additionally, assertions can be inserted into the test involving UI elements (e.g. text) one expects to see in the app after a series of steps are performed.  The Coded UI Test can then be run like any other unit test through the IDE, or even added to the continuous build process.  Finally, successful use cases verified by a tester can also be gen’d into a Coded UI Test.  This may be more gee-wiz than actually practical, but simply walking through a few of these tests is fascinating and even fun.  For more, see this msdn documentation.
  • Extensibility – Visual Studio now has something called an Extension Manager that lets you browse http://visualstudiogallery.com/ and automatically install add-ins (or more properly, “extensions”).  This only works, of course, it people are creating lots of extensions for VS.  Fortunately, thanks to Peter’s team, a lot of thought has gone into the Visual Studio extensibility and automation model to make it both easier to develop extensions, compared to VS2008, but also much more powerful. Link.

gallery

  • Architecture Tools – Code visualization has taken a great step forward in Visual Studio 2010. You can now generate not only class diagrams, but also sequence diagrams, use case diagrams, component diagrams and activity diagrams right from the source code.  Even class diagrams have a number of visualization options that allow you to see how your classes work together, where to find possible bottlenecks, which classes are the most referenced and a host of other perspectives that the sort of people who like staring at class diagrams will love.  The piece I’m really impressed by is the generation of sequence diagrams from source code.  One right clicks on a particular method in order to get the generation started.  As I understand it, the historical debugger is actually used behind the scenes in order to provide flow information that is then analyzed in order to create the diagram.  I like this for two reasons.  First, I hate actually writing sequence diagrams.  It’s just really hard.  Second, it’s a great diagnostic tool for understanding what the code is doing and, in some cases, what it is doing wrong.

There is a story I borrowed long ago from the Library of Babel and forgot to return – I believe it was by Jorge Luis Borges – about a young revolutionary who leads a small band in an attempt to overthrow the current regime.  As they sneak up on the house of the generalissimo, the revolutionary realizes that the generalissimo looks like an older version of himself, sounds like an older version of himself, in fact is an older version of himself.  Through some strange loop in time, he has come upon his future self – his post-revolutionary self – and sees that he will become what he is attempting to overthrow.

This is the problem with revolutions -- revolutions sometimes produce no real change.  Rocky Lhotka raised this specter in a talk he gave at the Atlanta Leading Edge User Group a few months ago; he suggested that even though our tools and methodologies have advanced by leaps and bounds over the past decade, it still takes just as long to write an application today as it did in the year 2000. No doubt we are writing better applications, and arguably better looking applications – but why does it still take so long when the great promise of patterns and tooling has always been that we will be able to get applications to market faster?

This is akin to the Scandal of Philosophy discussed in intellectual circles.  Why, after 2,500 years of philosophizing, are we no closer to answering the basic questions such as What is Virtue?  What is the good life?  What happens to us when we die?

[Abrupt Segue] – Visual Studio 2010, of course, won’t be answering any of these questions, and the resolution of whether this is a revolutionary or an evolutionary change I leave to the reader.  It does promise, however, to make developers more productive and make the task of developing software much more interesting.

Posted by James Ashley Monday, February 08, 2010 4:14:23 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]
 del.icio.us | DiggThis

 

Death of the Laughing Man#

9stories

I found out about the passing of J. D. Salinger through, of all places, an article in the Onion called “Bunch of Phonies Mourn J. D. Salinger” written in the style of Holden Caulfield – a brilliant, if overly subtle, homage.

I first read Salinger’s Catcher in the Rye sometime in middle school when it turned out to be the only book on an English class reading list that I could find on my dad’s bookshelf. After finishing it I immediately asked my dad for the remaining books in Salinger’s limited opus and quickly consumed Franny and Zooey, Raise High the Roof Beam Carpenters, and Nine Stories. I re-read these books over the following years up until my first year in college, at which point I discovered John Updike’s critical assessment of Salinger and decided that Salinger was “pretentious and puerile” – a phrase I repeated whenever Salinger’s name came up in my own pretentious and puerile conversations with classmates. 

Nevertheless I maintained a secret, embarrassing and abiding fondness for J. D. Salinger’s characters.  I would criticize myself over the years for sharing too much in common with Holden Caulfield while at the same time looking for other kindred spirits with Holden characteristics.  I made a furtive effort to trace The Laughing Man through literature, at one point, and even chose Magister Ludens as my tag when I first started posting on the Internet.  I have an ongoing crush on Zooey Deschanel in large part because she shares a first name with one of Mr. Salinger’s characters.

J. D. Salinger’s central theme, of course, was puerility: the youthful contempt for the falsity and compromises of the adult world.  Salinger’s approach to his theme, however, was always ironic.  He seemed to recognize – though it only became evident when I reread these books in my first year of college – that there is something naive and self-destructive about this attitude.  It is a stance that cannot abide, and one must eventually outgrow it.  Salinger, in effect, prepared his audience to outgrow him.

Having outgrown him, I nevertheless waited over the years for Salinger to write something new, to find out what comes after the romance of puerility.  His last published work, however, was in 1965, following which he became a recluse and never had another word printed for the public.  While waiting, pointlessly it turns out, I have learned the lessons of adulthood – I have learned how to play by the rules, how to reconcile my views to others’ opinions, how to self-promote, how to betray friends, how to get ahead.  I have gained experience and the sort of wisdom I know that Holden Caulfield would never understand or appreciate.

Posted by James Ashley Sunday, January 31, 2010 1:32:00 AM (Eastern Standard Time, UTC-05:00) #    Comments [0]
 del.icio.us | DiggThis

 

Look at me, look at me#

cat

… I’m the cat in the hat.

While on vacation in Los Angeles, I received an exciting email from Microsoft informing me that I have been given the 2010 MVP award in Client App Dev.

This is an immense honor and a remarkable vote of confidence from Microsoft which I hope to live up to in the coming year.  Hats off to the members of the Atlanta developer community, my local DE Glen Gordon, friends I have met at conferences and Magenic employees past and present who have challenged and encouraged me to always work towards being a better developer.  Of course, great thanks to my wife for her indulgence and patience those many times I have stayed up all night working through the latest MSDN tutorial, polishing a technology presentation or answering Microsoft forum questions.  I couldn’t have done it without you.

Posted by James Ashley Wednesday, January 06, 2010 11:10:10 AM (Eastern Standard Time, UTC-05:00) #    Comments [0]
 del.icio.us | DiggThis

 

A Silverlight CSI Challenge#

caruso

One of the peculiar things about Silverlight applications is that, while SL provides the tools to create new and interesting user interface paradigms, most Silverlight apps currently being written look like revamped winforms or web form UIs.

This smells like a missed opportunity.  The problem, of course, is that it is difficult to come up with new ways for people to interface with their computers.  Developers and designers tend to fall back on the metaphors they are familiar with.

If you want to find interesting UIs, you need to look at your TV or the movie theater.  Movies like The Minority Report, while even more confusing than the Philip Dick story it is based on, succeeded mostly on its ability to show us what the future would look like.  Shows like the various CSI franchises succeed in making that future look like it is available today.

At the office, we get a big kick out of recounting the latest weird, impossible software being used on last night’s procedural drama to catch the bad guy.  What we rarely examine, however, is the fact that we can use Silverlight to build apps to look like – if not actually function like – those fictional software programs.  So why don’t we?

If we want to find new metaphors for the UI experience, it makes sense to go to the experts – television designers.  They have already done the hard creative work.  All we, as software developers, need to do is copy them and see what actually succeeds. 

So put on your Horatio sun glasses and build something from CSI, or Bones, or Criminal Minds, or The Minority Report, or any other technologically fictional world and see if you can make it real.  And when you are done, you can peer over your shades and drop a cheesy line like “Looks like his XAML finally got rendered.”

Posted by James Ashley Thursday, December 10, 2009 8:25:04 PM (Eastern Standard Time, UTC-05:00) #    Comments [0]
 del.icio.us | DiggThis

 

Perversion and the Four Day Weekend#

metropolis

For me, a four day weekend around Thanksgiving is a great opportunity to catch up on work.  On reflection, however, it makes me think that a third section could rewardingly be added to Rousseau’s Discours sur l'origine et les fondements de l'inégalité about our further fall from the mythical natural state and the gentle yokes we place upon ourselves for the sake of both society and financial independence.  Trying to find time to further steal time from my family is clearly a perversion of some sort and I don’t know why it isn’t a pretext for revoking spiritual communion in religious faiths which still take the spiritual realm with a degree of seriousness.

Perhaps it was Hegel (but perhaps it was someone else -- Kierkegaard?) who wrote that the churchmen of today walk around as if God is dead.  No longer in an academic milieu, I’ve lost the habit of striving for accuracy in the archeology of knowledge.  All I know is that someone said it (or perhaps not).  The as if is important. While I was a grad student in philosophy (and before I became a grad school drop out) we often spoke about as if metaphysics, which I took to mean the things we were required to believe in order to have confidence in order and purpose in the physical world.  In truth, however, order and purpose are illusions.  The prevailing philosophy of mind of that time – and currently, as far as I can tell, outside of the brilliant work being done by David Chalmers – holds that consciousness itself is merely an illusion.  That movement in philosophy went back in a revisionist archaeology of knowledge to show that even Descartes never took his arguments for the existence and necessity of God seriously, and so – if one follows this alternative argument read between the lines of the Meditations – neither is the problem of other minds ever resolved nor the ego sum affirmed.

We robots who think we are something more, nevertheless, abide.  I’ll throw in a tentative speculation into the archaeology of knowledge here and remind the reader that robot is a Russian derivative meaning “worker”.

Somewhere in the sediments of unconsciousness that make up our neural pathways we all recognize this Archimedean fixed truth of meaninglessness – we feel it in our bones and experience it in our daily lives.  The secret to success is determined by how we pivot on this truth.

When I was occasionally allowed to teach ethics (so far had academia fallen that we no longer even attempted to teach virtue) I felt a small degree of triumph if I could at least get students to the point of defining ethical behavior as the effort to think about the moral implications of what they were doing before they did something wrong.  It meant they had found the pivot.

So how does one pivot around God – Whom we secretly and sometimes openly suspect to be deceased?  Lucretius the first century B.C. Epicurean posited that the world was made up of chance and freely bouncing atoms – is our modern zeitgeist so different? In a world without order – and consequently without rewards for the good or punishment for the wicked (take the CEOs of our financial institutions as examples if you must have one) – hard work, the cornerstone of Lutheran and Calvinist theology – seems rather pointless.  The common lament of the underachiever is that the bullshitter succeeds while the grunt goes another year without a raise or a promotion.

And so that theology must change.  The theology of election – the notion that there are a set number of souls who will go to heaven – morphed in the 19th century into a doctrine that the elect would be known by their worldly success, for they were blessed by God.  But in a world of pure chance, how does an as if theology make sense of this?

The Atlantic Monthly’s most recent issue posits that mega-churches created the recent economic collapse we are currently all living through.  The argument is that “theology of prosperity” encouraged parishioners to over-extend their credit, to buy homes and cars they couldn’t afford while banks were more than glad to help them do so, because such acts of blind faith in future prosperity constituted faith in God’s goodness.  To act foolishly, and bet one’s future on chance, is as close as we can come to true faith.

I find no immediate reason to excoriate the pastors.  In a world in which we act as if God and rational order are dead and chance rules all, this is sound advice.  Furthermore, for those whom chance blesses, it actually brings souls closer to the absolute.  The recipients of this theologically and fiscally dubious advice were typically the poor, the roboti, looking for ways to improve their stations.  Their pastors used this natural desire to bring them closer to the divine.  As a viewer of reality shows and Lifetime bio-pics as well as a proponent of lottery money as a great source of revenue for education, I have no reason to doubt that this is the future toward which we are all headed.  Why work toward success when all we have to do is wait for it.

Being a software programmer, I have very little sense of history.  I have to look at my resume to discover how long I have worked with a particular language, and I have very little idea where these languages came from.  As an industry, programming always looks to future successes and rarely back at past mistakes.

My spouse, on the other hand, has a rich history she maintains a retells, developing a beautiful tapestry of traditions she freely shares with anyone who enters our lives.  She recently gave several talks at my daughter’s elementary school about the Russian Revolution and its aftermath using her own family narrative as a way to make sense of it.  One great-grandmother was a peasant while the other was an aristocrat.  By chance – and some peculiar contrivance – they knew each other in a private girls school where the poor relative envied the wealthy one for her oranges, which were eaten every day in the gardens of the academy.  Then comes a series of confusing events tied together through rare documents and pictures.  The children of the two schoolmates marry -- there are photos.  The revolution comes.  The poor great-grandmother’s husband is taken away to the gulag – evidenced by a single NKVD document signifying his eventual release after three years servitude.  Letters and a death certificate mark the passage of the relatives who join the White Army as they fight -- and flee -- the Red Army across the broken Russian Empire, eventually surrounded and killed.  The Germans invade the area of Ukraine where the family estates are.  The family leaves Ukraine on the promise of work in Germany, only to end up at a labor camp in Auschwitz for Osterlanders.  They escape when the Red Army liberates the camps and executes the Russians they happen to find there.  They end up at a displaced persons camp (their papers now declare them as apatrie) and eventually make their way to New York, then Washington D.C., where a grandmother works for years at the Voice of America’s Russian Bureau but does not live long enough – none of these émigrés do – to see the fall of the Berlin Wall.

Within the fabric of this narrative there are many more stories, of course, few of which can be verified but all of which are colorful.  There are even more stories lost forever because they were so traumatic no one would speak of them.

The story I want to bring to the fore is of how Baba Neela, the peasant great-grandmother, taught the émigrés the traditions of old Russia which they had either forgotten or never had a chance to learn – how to pray in an Orthodox church, how to pray at home, how to throw a party, how to make traditional meals, how to drink one’s tea, how to enjoy life with one’s family and friends.  Also the lessons embedded in these traditions –that personal rewards only come in the afterlife, while material rewards, in a world dominated by chance, are found in the success and happiness of one’s children.

The problem with long weekends is that it gives one too much time to think.  The aftermath of 9/11 was like a condensed long weekend.  Productivity across the country went down as people realized that there were things more important than work or money.  The roads on Sunday were clogged with people returning to church, realizing that it is the fixed point of consolation in an uncertain world.

We quickly overcame that moment of excited introspection, however.  We returned to more standard patterns of as if theology and as if expectations.

Despite that, my own nagging as if expectations from another time are returning over this holiday.  For the past few months I had been trying to figure out how to get my children into soccer leagues and karate classes, since that is what is expected.  But now I’m stuck on another notion which I imagine to be the traditional education of a well-raised child of the last century.  I want each of my three children to learn a language.  I want them each to learn to play a musical instrument.  And I want them each to be well-versed in poetry and classical literature. 

With languages, they will be able to travel from country to country if required by troubled times.  With music, they will always be welcome at a party.  With literature, they will know how to enjoy their lives.  The public schools, I expect, will get them up to speed on science and mathematics.  And so the XBOX has just been turned off while the TV has been silenced.  I have work to do – promised and as yet undelivered --  but I am picking up a book instead – one by Tim Powers in an attempt to reinvent the lives of Lord Byron and Percy Shelley according to his own peculiar vision of the hidden world.

Posted by James Ashley Sunday, November 29, 2009 4:10:10 PM (Eastern Standard Time, UTC-05:00) #    Comments [2]
 del.icio.us | DiggThis

 

All content © 2010, James Ashley
On This Page
Calendar
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910
Blogroll
Archives
Tag Cloud
Disclaimer

Powered by: newtelligence dasBlog 2.2.8279.16125

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Send mail to the author(s) E-mail

Theme based on design by Jelle Druyts