NSilverBullet

Complex solutions for simple problems.

  • Posts in category: Ramblings

Reflections on three days at Tech Ed


Wednesday 12 November, 2008 (.Net | BizTalk | Ramblings | Team System | Tech Ed 2008 | Visual Studio)

This is my third day at Tech Ed 2008 in Barcelona, the breadth of the technologies and languages that we as .Net developers now need to at least understand and preferably master to some degree is enormous. I believe that developers will need to specialize more explicitly on certain technology areas to remain productive in the future. It has been impossible to master all of Microsoft's products for many years now but up until a year or so ago it was at least conceivable for a developer to master all of the developer technologies that Microsoft had on offer. With the introduction of cloud based services and all the news in .Net, both libraries and new languages I cannot see how any one person will be able to master it all... I want to sum of some of my thoughts on the sessions that I have attended here at Tech Ed on Visual Studio 2010.

Fixing Continuous Integration

CI is a great principle and has moved into the mainstream along with many other agile principles. While Continuous Integration as such has never been broken there has always been a problem with developer discipline. If you check in something that is broken then it will be discovered quickly with CI but if you don't fix the broken code other developers will be less productive if they cannot get the latest code or have their own checkins fail in CI due to previously broken builds. With Visual Studio Team System 2010 Microsoft is introducing a new concept for CI, the gated check. It is not a big change to the CI flow but a very clever use of a shelving, a feature in TFS which I find generally is underutilized. Instead of doing a standard checking in and then running a build on that code, gated checkins shelve the developers changes and then performs a build on the shelveset. If this build is successful then the shelveset is promoted to a proper check in, if the build fails then the check in is not committed to the mainline. The visibility that CI offers is maintained but using gated checkins other developers will never get failing code from other developers which was discoverable! Obviously undiscovered errors can still sneak into the code due to bad or missing tests or incorrect configuration of the build environment but it I believe that this will lower or eliminate the fear of checking in that some developers have. It will also allow you to check in before you go home without the need to wait and see that the CI build completes successfully. If I check in my code 5 minutes before I go home I should ideally wait to see that the build is successful, if it does not then I need to fix that immediately since other developers will be getting that code tomorrow morning when they come in. Using a gated check in I can go home, let the CI build complete on my shelved changes and if the build is successful then everyone can get my changes in the morning, if it fails I can safely wait until the morning before fixing the code and no one else is impacted by my errors.

Reproduction of Errors and Architecture Compilation Failures

Visual Studio 2010 looks like it contains some pretty good testing tools like the ability to record a testers GUI while performing manual tests and also including debugging and tracing info from remote machines. Pretty powerful stuff! It seems Microsoft have their mind set on eliminating the problem of irreproducible errors.

Another interesting feature is the architecture layer diagram which allows you to specify how the different layers in your application may and may not call each other. This is useful for validating that your code follows the intended architecture at compile time instead of detecting it when problems arise. All of these features (and there are more) are great but unfortunately Microsoft still has silly distinctions between different editions of Visual Studio Team System, so many of the cool demo features will probably be marginalized in most organisations due to them not actually having the appropriate edition of Visual Studio.

Comments [1]


Remember to always have a static customErrors page


Thursday 26 June, 2008 (.Net | Fixes | Ramblings | Web)

I was just surfing around on http://forums.microsoft.com and got a yellow screen of death!

msforumsyellowscreenofdeath

I must say I was slightly surprised. In web projects that I have been involved in we have always added two customErrors pages one to handle generic errors which redirects to an errorpage.aspx page and then a static html page errorpage.html which is only used when an error occurs on the dynamic error page... A sample configuration using location follows:

<configuration>

<system.web>
<customErrors mode="on" defaultRedirect="errorpage.aspx"/>
</system.web>

<location path="errorpage.aspx">
<system.web>
<customErrors mode="on" defaultRedirect="errorpage.html"/>
</system.web>
</location>

</configuration>

That way if we have a problem with our application that affects the entire site, for instance menu and navigational rendering, we can still show a nice error page with a message like "The site is temporarily unavailable, please try again in a few minutes."

Comments [0]


Play games to reduce stress


Friday 08 December, 2006 (Ramblings | Games)

90% of primary care physician visits in the U.S. are stress-related, this is probably the same all over the world. The renowned stress expert (although I have never heard of her) Dr. Kathleen Hall recommends taking short mental breaks to play computer games as a good way to clear your brain and reduce stress. This confirms something that I have believed for a long time and that I have experienced first hand. At previous workplaces all of the developers would spend part of their lunch playing Counter-Strike or Halo. I always felt less stressed and in a better mood those days that we played and I often feel like I need to clear my thoughts in the evenings when I get home, watching TV just doesn't clear your mind the same way that computer or console games do. The only problem is that most games require longer than 10 or 20 minutes to play but some of the games on MSN are quite good, I found the game Zuma earlier today and it really is very good... I found the original link over at Dag Königs blog (in Swedish), he also has a link to a Melitta coffee maker connected MSN!

Comments [0]


What is Web 2.0.


Monday 27 November, 2006 (Business | Ramblings | Web | Web2.0)

Since I have been working on WinForm applications and technical infrastructure projects (yeah real sexy!) for the last year and a half I have not really paid much attention to the whole Web 2.0 debate and hype. Recently I have started to look at web projects again and I came across a good, short explanation of where the money is in Web 2.0 and how it is different from Web 1.0. Now I understand why Google bought YouTube for $1.65 bn, if you do the math then it turns out that they really didn't pay that much per user and each user of YouTube contributes value to the whole.

Basic (flawed) Web 2.0 definition by me: web as a platform for user interaction using data collection and aggregation as the driving force. There is a full explanation on Wikipedia but Ajits blog post made it much clearer for me.

I believe that most of the cause of the Dot Com crash can be derived from the differences between Web 1.0 and 2.0. Most companies and individuals back then failed to realise that the web was an extension of their physical business. We thought that we were building Web 2.0 but we were just extending the reach of our existing business onto the Internet. The Web 1.0 failures that I have seen up close were caused by insufficient logistical support in the physical business, we still need all the infrastructure and logistics of a book store if we want to be Amazon. During the Dot Com Hype we thought that getting the visitors and the orders would automatically solve all our other problems, well they didn't! Web 2.0 is the approach that we should have been using... Get rid of the physical product, use the enabling of social interaction as the value you provide to your users and also as the value that you create. Find someone who either wants to target your users for advertising (Google), wants to partner with you for selling related products (YouTube) or who can use the data that you provide as input into their business (Swedish Lunar Storm).

Comments [0]


First day at TechEd


Tuesday 07 November, 2006 (.Net | Ramblings | SharePoint | TechEd 2006)

My first day at TechEd is over, it actually feels like two days now that I think about it which is kinda weird.

I managed to sneak into the Super Early Bird priority seating for the Keynote, well I really didn't do much sneaking I just walked over and sat down but still... I am always amazed by the way Microsoft tries to sell their products to developers who are already convinced that Microsoft is the way to go. There was a lot of Vista and Sharepoint 2007 in the Keynote, nothing bad in that but the way the tools were demoed is just silly.

Speaker - "Look how easy it is to create a People-Near-Me function in a Windows Presentation Foundation application!" Click, Click, typing (inserts a 200 line snippet)

Speaker - "Now I just start my application again and all the functionality is embedded in my application, all we needed to do was enable the functionality."

Of course you only have to insert and enable functionality that you have a prewritten snippet for! I'm guessing it's a completely different story if you need to write all the code from scratch... I doubt that there is a 500 line InsertCustomBusinessLogic snippet included with Sharepoint 2007 or .Net 3.

Other than that I have enjoyed my first day, I especially enjoyed the last session with Todd Bleeker on Custom Sharepoint sites and features. Although the pace he went through the material at pretty much knocked me out but thats the way it's supposed to be at TechEd. I can read sales presentations at home, while I am here I wan't to see hardcore developer action!

Technorati tags:

Comments [0]


TechEd 2006


Monday 06 November, 2006 (Ramblings | TechEd 2006)

Arrived in Barcelona today for Tech Ed 2006, I am going to try to write down some of my experiences here over the next couple of days.

On the flight down I realized that Tech Ed is so much more that what I have realized. There are the normal technical sessions, sponsor exhibition (probably full of all sorts of freebies and trials), an XBOX360 corner (I hope), donut buffet (confirmed) but there are also 20 or so hands on labs where you can get your hands dirty trying out some of the stuff. I am not sure how the labs are setup, I am presuming they are some kind of Virtual PC setup with code samples that you can run through but we’ll see. The labs seem to be open till late every day so hopefully I’ll get to try some of them while I’m here.

Technorati tags:

Comments [0]


Blog up again


Friday 03 November, 2006 (Ramblings | Blogging)

After a year of inactivity and a move to a new server I have finally got around to setting up my dasBlog again. I hope that it won't be another year till I write a new post!

Comments [0]


My first entry!


Wednesday 10 August, 2005 (Ramblings)

Ok, I have been thinking about starting a blog for a couple of months now but haven't got round to it until now. I have also been uncertain about how I will use it and what to post, I am still not sure but tonight I thought "Hey! Let's give it a shot!".

My aim is to blog about .NET related development issues primarily my views on current topics, code samples/fixes and links to sources that I use. Anyway enough of these preramblings (lets see if my post will even save).

Comments [0]


Page 1 of 1 in the Ramblings category