Powered by discountASP.NET
referal ID: sdtref
Why recommend discountASP.NET?

Archives
Steve Trefethen Steve's RSS Feed Subscribe or via email
What's this?
Contact me Send mail to the author(s)
About Me
View my LinkedIn profile

Add to Google
Subscribe with Bloglines
MCP Microsoft Certified Professional

Falafel Software
ActiveFocus Project Management Solution by Falafel Software
Online or OnSite TestComplete Training
Blogroll
Recent Comments
My Online Tools
Stats
Total Posts: 441
This Year: 46
This Month: 2
This Week: 0
Comments: 1526
Tags
Disclaimer
The posts on this weblog are provided �AS IS� with no warranties, and confer no rights. The opinions expressed herein are my own personal opinions and do not represent my employer�s view in any way.
 Sunday, May 04, 2008

Is it cool when top bloggers have to explain why it's cool?

Posted @ 11:43PM by Steve Trefethen

Categories: Opinion | Technology | Windows

Tags:  |  | 

If you’ve taken a peek at Microsoft Live Mesh would you leave a comment here and tell me what the big deal is? And what the hell is Steve Gilmor talking about? Seriously, read that article if you can get through it. I get the feeling that top bloggers like Gilmore and Scoble use all this social networking buzz like a proverbial hacky sack devised to simply keep a conversation afloat. Scoble even goes so far as say

Microsoft’s fans are delivered to the promised land.
  - Robert Scoble (link)

Where exactly is this promised land? Seriously, that’s out of touch given Mesh’s beta status, numerous missing features and a nebulous definition. Heck, I’m an MS fan and I just don’t get it. I’ve yet to come across a clear description of what Mesh really is or will be? My initial experience completely sucked. The other night I sat down for dinner with Barry Kelly and Adam Markowitz (Adam, you’ve been linked to so get that blog up!) and neither had a good understanding of Mesh and these are bright guys!

I’m actually glad or perhaps even relieved it confounds Joel as well. For now, I’ll take that as a good sign.

Anyway, .NET started out pretty nebulous and poorly defined but the end result has proven extremely satisfying so there is hope. I wonder if Microsoft felt compelled to release something in these days of exploding social networks simply to remain relevant and in the conversation which, in this case, somehow seems to have worked. IMO it seems Mesh was released so customers could try to help Microsoft to figure out exactly what to do with this technology as a number of pieces seems like a rehash of existing services.

Now, had Microsoft announced a Windows based, Amazon-like, elastic compute cloud that would have been really interesting.

 Tuesday, April 15, 2008

C# Source Code Formatting Preferences

Posted @ 1:37AM by Steve Trefethen

Categories: .NET | Opinion | Programming

Tags:  |  | 

I just tried checking in some C# code and ran into a merge error so I fired up Araxis Merge and noticed hundreds of unexpected changes all to whitespace! That was a bummer because I just wanted to check in and call it a night but alas, it’ll have to wait a day. Now, I know code formatting can be a religious issue but...

Here are a few examples, the actual code of which is unimportant for the purposes of this discussion:

1 public void foo(string locator) { 2 try { 3 if (selenium.IsElementPresent(locator)) 4 break; 5 } catch (Exception) { 6 } 7 }
and
1 public void foo(string locator) 2 { 3 try 4 { 5 if (selenium.IsElementPresent(locator)) 6 break; 7 } 8 catch (Exception) 9 { } 10 }

I’d call the latter more "mainstream" as the majority of Open Source projects I’ve looks at (including dasBlog, FileHelpers, RssToolkit, SubSonic, CCNET and SubText) all seem to align the braces with a few exceptions like the empty catch block or a single statement block. I haven’t downloaded the .NET sources yet but I’d be interested to know what Microsoft uses.

Chuck Jazdzewski, a well known 'softie publishes a good deal of C# code on his blog formatted using the top style. A few colleagues, John Waters, Falafel's CTO and Adam Andersen have both blogged using the latter style, here and here respectively.

Which do you prefer? Do you consider either more "mainstream" than the other?

[Update: April 15, 2008] Added a list of OS projects I've looked at.
 Tuesday, April 08, 2008

Google's App Engine and Amazon's web services leading us "into the clouds"

Posted @ 12:01AM by Steve Trefethen

Categories: Development | Opinion | Technology

Tags:  |  | 

S
o, Google releases Google App Engine a cloud computing service for building web applications in Python. Very cool! Over the coming days and weeks I’m sure there will be plenty of comparisons with Amazon’s Elastic Compute Cloud for us to consume. Cloud computing is an interesting model, one where I believe an independent dev tools company could flourish.

image
In fact, before leaving CodeGear I sat down with Jim Douglas to discuss ideas around web development focusing on the growing eco-system of web services that companies are publishing on what now seems like a daily basis. The discussion covered a variety of web services available as well as platforms like Facebook, all things I’ve been thinking about for a long time. To the right is a photo of a page from my developer’s journal which outlines a concept I had (in March 2006) for extending Delphi applications, including the IDE, using web services. For those of you familiar with Delphi’s ToolsAPI it’s like extending the IDE, or any Delphi application, without installing/updating binaries on the local machine. The net effect is it affords the small company the opportunity to deliver more features faster with less impact to their installed base as opposed to getting stuck on a designer. With the advent of so many different API’s from so many different companies I think there’s a good opportunity for a company to stitch these services together and provide developers an entire toolset for use within their applications.

Over the past few years we’ve really witnessed the web grow into an honest to goodness platform and I think Facebook’s salvo really helped lead the way. Initially, we’ve seen the explosion in the world of social networking which I believe is largely due to the allure of ad revenue from millions of page views fueled by viral growth.

Eventually, with things like the Elastic Compute Cloud and Google Apps Engine I believe we’ll see more mainstream web application development move "into the cloud". Today, to leverage Amazon’s services it’s like working with Legos where you need piece things together to build out a site. One example I think illustrates the difference between Amazon and Google is Amazon’s Copy Proposal for S3 read it and let it sink in. I think that illustrates a fundamental difference between how these services are likely to evolve. On the other hand Google’s App Engine appears to be a more well rounded service which will make it interesting to watch Amazon’s response.

One thing is for sure, we won’t likely see Amazon or Google or Microsoft or IBM develop tools that would allow developers to leverage services from many different companies which is where I believe there is an opening for something creative to occur. I guess time will tell who will jump at that opportunity as it’s not likely to come from one of the big name players. I think this idea is already happing in the social network arena where sites like Plaxo and FriendFeed are aggregating data from a number of different services.

Another cool thing about moving "into the cloud" is the opportunity to use whatever OS you want on your local machine. I’m using a MacBook Pro and I’d love the opportunity to boot to the other half of my hard drive and work in OSX for awhile.

Btw, just landed in my inbox:

Thanks for signing up to try Google App Engine!  Your account has been activated, so you can begin building applications!

Looks like it could be a long night!

What’s your take on cloud computing?

 Tuesday, April 01, 2008

Reflecting on the past and the transition to .NET development

Posted @ 12:24AM by Steve Trefethen

Categories: Development | Opinion

Tags:  | 

Having recently released my first major project after having left CodeGear/Borland I’ve found myself reflecting on the last few years and my decision to leave CG. It seems particularly apropos as my first Falafel review was today.

For awhile back in late 2006 early 2007 I’d felt like I was in a rut and watching all kinds of cool things happening in the .NET world. A few years earlier, I’d made the decision to work on Internet technology because I felt it was important and early on had me working on things like ISAPI thread pooling back in 2002 which was cool. Eventually, when Borland decided to get into .NET with C#Builder I got to work on the ASP.NET designer with Jim Tierney which was a great experience and served to "keep my head in the game". I learned a lot about .NET and ASP.NET in particular and had the chance to write my first designer from the ground up. I used to wonder how many people Microsoft had working on their ASP.NET designer? I bet it was more than two.

The up hill battle

Prior to leaving Borland for Microsoft in 1999 I’d spent a great deal of time working on what eventually became the core of the ASP.NET designer, the integration of the MSHTML control. Even with all the capabilities we were able to wring out of it I became very discouraged trying to keep pace with Microsoft’s designer. When VS.NET 2005 RTM’ed it really hit me hard because I knew Delphi’s ASP.NET designer simply wouldn’t catch up at least not on the trajectory it was on. I recall many difficult conversations about which direction to take including dropping the designer entirely and focusing on creating a richer code editor experience geared towards web development. The primary issue was that Microsoft’s WebForms architecture placed an incredibly heavy burden on the design environment in an attempt to make it function like VB, Winforms and VCL designer’s developers had grown to love.

I was frustrated not spending time working on framework code people could leverage in their own applications and instead putting every last minute into the designer which, in the end, is more or less geared towards trivial applications. A fact that’s true even of Microsoft’s ASP.NET designer which has diminishing returns as the complexity of an application grows. Not a good value add proposition. For me, it was a pretty dark time and I didn’t feel my efforts were headed in the right direction, a point amplified when I attended Google Developer Day in May '07. To be honest, I found myself sitting through session after session wondering why I was the only CG developer attending this free conference a mere 15 miles from the office thinking the entire team should have been there. You could say it was an epiphany of sorts 28 days before what would be my last day.

Another issue I struggled with was believing CG would eventually be freed from Borland’s confines. It’s been just over two years since the original announcement and to my knowledge still no word. Then there’s the decline in BORL stock, dropping an astonishing 70% in the eight months following my departure. While I managed to survive a dozen or more layoffs in 15 years I’m glad I dodged what must have been a nerve racking free fall.

Basically, there was a lot on my mind this time last year.

Life in the .NET world

Back to the point, it’s been a welcome change working exclusively in .NET and in many ways a reprieve from Win32. I’m enjoying the .NET ecosystem and learning lots of new tools which is something I wasn’t really aware I missed on the Win32 side. I think one of the key things that Microsoft was missing prior to .NET was a runtime that developers could "party on" (to quote an old Microsoft phrase) and with .NET they have that in spades.

Probably one of the most liberating things has been getting away from the Windows API and focusing less on the individual function calls and more on solving real world problems. The other day Mark Edington called me regarding a SendMessage question and I can’t say I really miss those days. Another exciting piece is knowing that there is lots more to explore like all the new features in C# 3.0. Admittedly, I really struggled not having the constant drum beat of language innovation present in the .NET world.

.NET Tooling

Speaking of tools one of the most enjoyable parts of .NET development for me has been using VS.NET, NDepend, NUnit, NCover and writing code that’s easier to test  supporting things like Mock Objects. Reflection is a beautiful thing. I’ve also enjoyed the .NET Open Source community including dasBlog, CruiseControl.NET, FileHelpers , edtFTP , ScrewTurn , SubSonic and many others. I think the past nine months have done a lot to reinvigorate me as a developer and I’m feeling more engaged and learning more now than I had in years in Win32 land. It’s interesting to think the guy I sat right across the hall from had so much to do with launching both these development communities.

What’s your .NET experience been like?

[UPDATED: April 1] Fix link.

 Tuesday, March 18, 2008

Why Agile isn't good for shrink wrapped Product development

Posted @ 8:28AM by Steve Trefethen

Categories: Development | Opinion

Tags:  | 

Preamble: Here’s a post I wrote nearly a year ago which I’ve sat on until now. I know the Agile vs. Waterfall (or whatever other development methodology) issue has been rehashed a great deal but now that I’m working as a consultant and particularly after having pushed my first project into production, I felt it was time to hit the "post"  button.

First, notice that the in the title the "P" in Product is a capital letter. When I was at CodeGear (CG), there was an effort to use Agile software methodology and I reached a point where I felt it was not good for large, complex, version 10.0 code bases sold through channel sales for profit. To me the Agile Manifesto describes what I’d refer to as a "close combat" software development that calls for the ultimate flexibility necessary to adapt quickly to a dynamic situation. But that level of flexibility comes at a high price, like close combat itself, given the unpredictable nature of a dynamic environment. It’s been my experience that that’s not retail product development and what I’ve come to realize over the years is that if you fail to evolve your development process along with your product your chances for success will likely follow.

For me, what came out of the formal Agile training I received while at CG and a year spent using the process is that it was worth learning but the team would have benefited more by not trying to completely switch lock, stock and barrel (first mistake). The first clue, which admittedly I missed, came during the training where it was made clear there would be a "transition period", lasting potentially several iterations before each mini-team could accurately "calculate" it’s velocity. With 20-20 hind sight I believe a better approach would have been to start with a complete review of what was wrong with the existing process and an analysis of why Agile was necessary. I now believe what we did was probably typical of many teams as the "Agile mentality" washed over the shores of development engulfed us all.

We (the development teams at CG) bought into the whole thing, got training, switched project management software, started SCRUM meetings, daily stand-ups, a backlog the works. That was wrong. I think it was too much change all at once and when the product requirements changed late in the process we reconfigured the team to respond accordingly and wound up relying on an older tried and true development process that had been used for years. At that time, CG polled it’s customer base and with that knowledge decisions where made to refocus on other areas of the product. The interesting thing is that Agile more or less fell by the way-side and no one really seemed to skip a beat. We needed a complete RTM plan with priorities and requirements pitted against hard dates. And yes, dates were, and I presume still are significant as CG works towards becoming an independent company. We desired many of the principles of Agile though many of which aren’t new nor unique to Agile. I mean who doesn’t want:

  • Satisfied customers
  • Sustainable development
  • Technical excellence
  • Motivated individuals

If your team hasn’t switched to Agile or is perhaps considering switching you need to take a long hard look at your current process and at the very least get your ducks in a row before you decide that a true culture change is best for your team.

I think Agile fits particularly well in the world of contractors (of which I’m now a member), internal facing application development and IT and in those worlds makes a lot more sense. I’m now doing contracting work and I think working on small deliverable chunks over short periods of time is a great way to sustain a project. In fact, working as a contractor on a project several years ago, I didn’t focus enough on Agile principle #1:

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Which directly lead to the end of the contract. Needless to say, lesson learned.

Relevant Links

Post-Agilism: Process Skepticism
Agile people still don’t get it
Accountability in a Scrum World
The start of the end for Agile software development?

 Monday, December 03, 2007

After 10 years I'm seemingly still a stranger to Yahoo

Posted @ 1:33AM by Steve Trefethen

Categories: Opinion

Tags:

I’ve been Yahoo user for about a decade, dating back to the mid-to-late 90’s. and I’ve never really had many complaints over the years. I use and rely on a number of Yahoo’s core applications and until recently haven’t had much if any motivation to move elsewhere. I believe Yahoo’s single largest problem is remarkably similar to Microsoft’s dropping the ball after IE 6. Only after some real competition appeared did they realize the error they made and began work on IE 7. Of course, by then they had lost the geek mind share and unwillingly let the "Fox" out of the bag. MS is now faced with far more browser competition with Firefox, Opera and Safari than they ever did back when IE 6 shipped.

For me, Yahoo is slowly fading away as I’ve nearly moved away from every major Yahoo property I’ve used over the past 10 years. Here’s a run down...

Yahoo Mail

Google GMail
For me, Y! mail has more or less been the cornerstone of Yahoo’s applications I use on a regular basis. I’ve considered my Yahoo email address as my single primary personal email address since the mid to late nineties. The UI has changed very little over the past ten years until fairly recently when they rolled out, over an extended beta period, technology acquired from Oddpost. I’ve tried the new UI probably a dozen times and it has yet to stick (for many reasons not the least of which is speed) though I’m sure there’ll come a day in the not too distant future when I’ll be stuck with Yahoo’s Outlook Web Access ripoff.

Of course, along came GMail which is a low tech, low glitz email application that not only kicks Yahoo’s old UI to the curb but beats it’s new UI in both speed and functionality. Why didn’t Yahoo incrementally update the old UI over time to incorporate not only new functionality but leverage knowledge which accumulates daily about me as a user who returns to their site many times a day?

Yahoo Calendar

Google Calendar
The next MVP of Yahoo properties for me is Calendar which, again, has the same aging familiar UI that’s been around for 10+ years. I have no idea when or if it’s going to be upgraded but until Google Calendar appeared on the radar I had no good reason to move. Once again, here is a great example of an application that could have been incrementally improved to keep me interested and locked but that simply hasn’t happened. At this point, I’ve all but switched from Yahoo Calendar in favor of Google. Again, Google’s UI isn’t glitzy but it’s fast, works well and innovates over Yahoo’s beleaguered offering. I’ve left my Yahoo calendar intact but I’ve pretty much moved day-to-day use to Google Calendar.

Yahoo Photos

image
Yet another Yahoo property I used frequently to share photos with my extended family. Of course, Photos has been discontinued in favor of another acquisition, Flickr which I’ve never gotten into. Why? Because once again Google released Picasa which for me was long time missing piece that Yahoo never provided. I never had any luck using any of Yahoo’s Photo upload tools and constantly ran into installation problems and subsequent timeouts and failures. When Yahoo purchased Flickr I knew the writing was on the wall for Y! Photos nudging me enough to look around for other offerings. I’d tried Google Photos but having established a large album of photos on Yahoo I was hesitant to switch until, of course, Google nailed the web upload problem using Picasa and its web upload feature.

My Yahoo

Google News

For over a decade I’ve used My Yahoo as my home page and over the years I’d swapped out various modules on my home page though most of the time I kept it very light as speed was a top priority. Of course, that all came crashing down when I made the colossally stupid decision of merging my Yahoo account with my AT&T DSL account. It’s safe to say that Yahoo still hasn’t recovered my full respect for that complete mess. My once fast loading, succinct home page became a slow loading image laden crapfest that I was only partially able to fix through nearly a dozen Privoxy filters many of which I still use today. Not to mention Yahoo’s half hearted attempt at putting RSS feeds on my home page which I still don’t think work right after all this time. Lastly, along came Google News and there went one more reason I had to look at My Yahoo page.

Yahoo’s LaunchCAST Music

LaunchCAST is Yahoo’s acquired music service which I’ve been a fan of since the very early days. In fact, I’ve been a premium subscriber for a number of years now and I still enjoy the service. In the beginning the innovation around station customization was very good though the last few years have seen little change and no innovation. At this point, I still enjoy my station and the ad free streams so I haven’t had any desire to move but given the lack of attention and new competition I’m considering dropping my premium subscription. I certainly won’t be surprised when either new music ceases to show up or the whole thing gets the Yahoo Photo treatment.

Yahoo Messenger

Since this doesn’t really relate to the site all I’ll say here is that I’ve dropped it in favor of Trillian because MSN interoperability is important to me and Yahoo’s MSN support simply doesn’t work.

Now What?

I look at Yahoo these days with essentially no search presence, a failed social network (Yahoo 360) and all of the above and it sort of makes me sad. Here is this company I’ve visited nearly every day for the past ten years and I feel like I’m a complete stranger yet Yahoo probably "knows" more about me than any other web company on the planet. It seems so strange over all this time they couldn’t manage to figure out how to capitalize on all the information they have about me (along with millions of other people) like my address book, calendar, emails, news interests, shopping purchases, sports interests, stock watches, clicked stories, rated music (~6,500 ratings) and on and on for ten years.

You’d think they’d have some sort of software in place that would trigger an email or something saying "Hey, we notice you’re not 'round these parts much lately, everything ok?" but that’s just not going to happen. At this rate, I’ll walk out the door and have to turn the light off myself.