CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Rod Paddock

  • Unlearn

    “You must unlearn what you have learned.”

    Yoda to Luke Skywalker Empire Strikes Back 1981

    I have become convinced that we are entering a new dawn of software development and we must take time to unlearn that which we know. Over the last 2 months I have been researching building business applications using Silverlight 2.0. In case you don’t know Silverlight 2.0 is a tool used to build Rich Internet Applications (RIA’s) Silverlight 1.1 (released in 2007) gave us a small glimpse of the future of RIA development.  This glimpse proved that Silverlight 1.1 was wholly lacking for business developers (it didn’t even have a button). Silverlight Version 2.0 (released at Mix 08 in Las Vegas, NV) is a different story. Silverlight 2.0 has all of the features a business developer might need. The control set includes: textboxes, buttons, watermark textboxes and, drum roll please, a DataGrid component.

    During my research I began experimenting with the DataGrid. I started (in XAML) adding columns to the DataGrid’s columns collection, setting data binding attributes, column widths and header properties. I then turned to the code portion of my research and DataGrid’s ItemSource property to a list of objects. I ran the application and lo-and-behold it worked (not the first time of course but eventually).  After getting my simple grid demo working I wanted to implement a simple, but common use case. I wanted to allow the user to sort the data by clicking on the column.  Here’s how it went:

    1. Look for DataGrid properties called something like “AllowSort”
    2. Look for header properties that would turn this feature on.
    3. Look into the documentation for the DataGrid (samples, online, etc)
    4. Download and open the source code for the DataGrid (yup you read that right its available to developers)

    I struck out on all accounts. It looked like I would be waiting for a new rev for this feature. I did take one more step though. I turned to my trusty search engine Google and typed in “silverilght 2.0 datagrid sort”. And look what I found: Matt Berseth (http://mattberseth.com/blog/) had already figured this out in a very creative and enlightening way. Matt’s unique solution was to put a HyperlinkButton control into the DataGrid’s Header Content property. The Header object’s Content Property is defined as Object. The normal use case for this property is to specify a string as your header. But this is Silverlight and when a property says it’s an object it’s an object. This means you can replace the header content with a Hyperlink rather than a textbox. This is where my epiphany occurred:

    My typical path took me to the control itself. I searched for properties, events and even considered for a moment hacking up a hit test set of code to do this. It hadn’t occurred to me to composite some controls together to do what I wanted.  This is where I told myself I must unlearn what I know.  I must think of new and interesting ways to combine these controls to do new and interesting things.

    This epiphany raised its head again over the last 2 weeks. Over the last 6 months we have started the trek down the Agile Development path. This path has included installing and researching agile development applications including:  Nant, Nunit and Subversion.  We are using Nant and Nunit to automate our testing, and in the last two weeks we moved a large quantity of our source code into a Subversion repository. It’s this last application that has provided me with another epiphany.  Source code control in Subversion is “just different” than in Visual SourceSafe (our previous source code provider).  Visual SourceSafe is a pessimistic version control system (you lock files when you check them out) Subversion is just the opposite. All files are worked on in shared mode. Meaning two developers can work on the same file at the same time. It’s up to the developer to merge changes into the development branch of code when conflicts occur. Along with a different philosophy Subversion uses different terms: In Subversion Checkout means get a fresh set of code from the repository, Import means send source code to the repository. Commit means send your changes to the repository. Visual SourceSafe had different meanings for all of these terms.

    When I started using Subversion I found it difficult until I told myself what Yoda said: “You must unlearn what you have learned.” I closed the book on Visual SourceSafe and opened a new one on Subversion. I consulted the documentation to see what the Subversion philosophy is and what the terms in Subversion really mean. When I “forgot” what I knew about source code control from the VSS POV things began to become clear and the process of migrating much simpler.

    In today’s development world new technologies require new thinking. You need to unlearn what you already know. To find comfort in the unlearning process, take shelter in the words of Jedi Master Obi-Wan Kenobi to Luke Skywalker: “Luke… Let go. Trust the force”. 

    crossposted from blog.dashpoint.com
  • DevTeach Toronto 2008 = Agile Immersion

     

    If you want a good general immersion in Agile practices look no further than DevTeach (www.devteach.com)

    Last DevTeach (in Vancouver) I sat through a number of Agile sessions with a fellow development partner. This parter had virtually no experience with Agile practices. After DevTeach we began discussions on implementing Agile practices in his 15+ developer shop. It was good for him to hear from other developers about their experiences with Agile.

    So if you want to get your management, developers or development buddies on board with Agile then send them Toronto in May for DevTeach.

    PS: You can also stay for a post-con session on Building Business Apps with Silverlight 2.0 given by me and my business partner Jim Duffy

    PSS: Small conferences like DevTeach are MUCH better than large ones. Why: Because the speaker to attendee ratio is much lower and we can all interact much more…. I personally prefer small conferences over large ones.

     

    crossposted from blog.dashpoint.com
  • OT: SilverLight 2.0 = iPhone SDK

    Maybe it's  just a coincidence but I am thinking its not.

    I am at MIX 08 in Las Vegas and am eagerly awating today's keynote with Steve Ballmer and Guy Kawasaki.

    Funny thing is the whole timing of it all....

    1. Apple's iPhone SDK Meeting is at 1:00pm Pacific

    2. MIX 08 Keynote is at 1:00pm Pacific.

    3. Guy Kawasaki is the former evangelist for Apple. Heck he started the whole software/hardware platform concept.

    4. Silverlight is a full functioned player on the Apple.

    5. Steve Jobs hates Flash http://www.informationweek.com/blog/main/archives/2008/03/jobs_flash_not.html

    We got to see that Silverlight is a player in the Nokia space. Will we be developing iPhone and iTouch apps with Silverlight? As the Apple ad's say: Imagine....

    UPDATE: Oh Well! It was a fun thought for a few hours in any case. 

    crossposted from blog.dashpoint.com
  • Public Speaking Anti Patterns

    Public  Speaking Anti-Patterns

    Last week fellow CodeBetter blogger Kyle Baley wrote a blog topic called “Presentation Topics” (http://codebetter.com/blogs/kyle.baley/archive/2008/02/08/presentation-tips.aspx)

    He did a good job of presenting a number of useful tips for speaking.  Well I am going take a shot here and point out a few bad habits that some of my fellow presenters have developed over the years that do nothing but piss me off because they should know better.

    1.       SHUT UP AND LISTEN – I cannot tell you how many speakers I have seen that interrupt questions from the audience. 

           If you are going to allow questions in your sessions you need to shut up, listen, and let the person asking the question finish.  Don’t  interrupt!!!!  Don’t ASSume you know what the rest of the question is.

     

    2.       REPEAT THE QUESTION – Whenever a question is asked:  Repeat it out loud. That dude in the back probably didn’t hear the question from the front row. 

           You need to be courteous to your audience and let them know what is happening.

     

    3.       MAKE SURE YOU KNOW WHAT THE QUESTION IS -  If you don’t know what the question means or don’t understand it here’s a tip: Say this to the questioner: “Can you say that another way?”  This will help you understand what they are really asking.

     

    4.       LESS IS MORE – If you have 60 slides for a 60 minute session you are not going to get to the end.  

     

    5.       DON’T WRITE A BOOK – Slides are supposed to be outlines not dissertations. See #4.

     

    6.       DON’T UPGRADE YOUR MACHINE - The week/day/hour/minute before your session is not the time to install that new alpha, beta, omega version.  

           Just because that beta is ready doesn’t mean your session is.  If you do this you deserve to have your shit break.

     

    7.       DON’T MAKE EXCUSES - If stuff breaks in your session it’s your fault. You didn’t prepare properly. See #6 about upgrades.

     

    8.       DO THE JULIA CHILD – Ever watch cooking shows. They always have one that’s done and ready to serve. You should have a copy of your sample code that runs perfectly.

          If your demo breaks you can always go to that copy.

     

    9.       ARRIVE EARLY, SIT IN BACK – When you give a session you need to arrive early and check the lighting, sound, projection, etc in the room. All rooms are not created equally.  

         Check your colors, fonts, etc. Set up your machine with code on it and go sit in the last row. Can you read it? If not adjust accordingly.

     

    10.   ONE FOR THE AGILE DUDES- You need to have an outline of what you are going cover.  In specifically titled sessions you need to have it planned and not do ad-hoc sessions.  

     

    11.   FINISH ON TIME - At the last conference I attended there were a number of sessions that ran way long.  Don’t do this!!!  It’s RUDE! It’s RUDE to the attendee,

          RUDE to the conference coordinators and the RUDE to the next speaker.

     

    12.   AND FINALLY ----- Don’t Ever Ask: “How much time do we have left” – This is my BIGGEST pet peave.  You might think it’s cute. It’s not… If you ask this in a session you are a total complete idiot. 

          If you want the real  answer to this question here it is:  “Here Mr./Ms./Mrs. speaker  let me look in the conference brochure and see what time the session with YOUR FREAKING NAME  

          on it is supposed to start and end.”  Asking this question is unprofessional and silly.  Get the point?

     

    I hope this lists helps you as a speaker and attendee.

     

     

    crossposted from blog.dashpoint.com
  • Microsoft Team Systems - Open Source Alternatives

    I am heading to a client next week to see a demo of Microsoft Team Systems. My client got a preliminary prices for implementing Team Systems.

    Needless to say. Its not cheap....

    I want to have a good list of open source tools that will provide the same functionality as Team Systems. Maybe we can all contribute to a feature by feature list of open source tools and use this as a reference for later...

    Here's a starting list

    • Testing - Nuniut
    • CI - Cruise Control
    • Build System - Nant
    • Version Control  - SubVersion

    What others should I add to the list ? Remember I need to replace all the functionality of team systems,

    crossposted from blog.dashpoint.com
  • AltNetConf Day2 - Agile and MVC Goodness

    Day 2 went great. The group gathered for some opening remarks and immediately went into sessions.

    I was a participant in a discussion group where we discussed:

    Introducing Agile/Alt.Net into the work place

    Passion for Agile/Alt.Net

    Pragmatic a Agile/Alt.Net

    Being a catalyst for Agile/Alt.Net

    The room was fairly full and some great conversations took place. Here are some of the ideas thrown out and recorded in my trusty Mead notebook:

    JP Boodhoo http://www.jpboodhoo.com/blog/ started with “Passion does not necessarily incite action.” We discussed the concept that just because you are passionate you still need to take action. Passion for passions sake doesn’t do anything.

    One mechanism for facilitating agile adoption is to arrive with a solution in hand. Scott Bellware is famous for saying you won’t understand until you do it.   There is some truth to this. Agile is difficult to explain. It’s easier to see a readily provided solution.

    Another idea is to do a month of iterations and use this as a basis for examining agile success.

    Some stuff to look at:

    The Agile Contract

    The Pragmatic Programmer

    21 Laws of Leadership

    Success is always easy to sell twice.

    You may need to introduce agile at a ground level. Start with one developer.  Teach them. Have them teach too.

    Try lunch and learns.

    More stuff to look into

    Resharper

    Continuious Integration

    Cruise Control

    Maybe you just need to do agile on a project and show the results after the fact. Returns to the statement: “success is easy to sell twice”.

    That was just my notes from session 1.

    Now on to Behavior Driven Development

    This intent of this session IMO was to discuss what BDD is and how to use it in your development process.  I am not convinced that this session was successful as it seemed to degrade immediately.

    The meeting was started off with three moderators discussing their POV of POV. It was never made clear what the hell BDD really is.  The presenters should have started off defining what BDD is. Each person pretty much immediately jumped in discussing their favorite tools for doing BDD

    In any case this session did provide me with some ideas.

    BDD to me looks like a way to gather requirements (stories) in a standardized way then being able to take those requirements and generate programming and acceptance tests.

    Scott Bellware shows a tool called Rspec that takes requirements from Ruby code (I believe) and puts them into a friendly/easy to read web interface. The thing that struck me as cool was the way in which requirements were spelled out. Stuff like:

    Registrants will receive an e-mail

    When signing up the registrant will be required to provide an e-mail address.

    The thing that I liked was the way they documented requirements. The language used was very cool.

    Another moderator showed his tool for recording stories. This persons’ tool showed a nice structure for recording requirements (stories) in a structured way. You can then generate testing artifacts from there system.

    I am not sure if this was the theme or intent. But I did come up with a concept that I would love to explore.

    How do we gather requirements in a more formalized and standard way? Language is important. 

    MVC and DLR (Dynamic Language Runtime) Goodness

    The next sessions that I attended were the MVC and DLR Goodness sessions.

    ScottGu gave a kick ass session showing the new MVC framework. I am not going to write about what we saw as numerous other bloggers have done so.  Let’s just say this is a cool framework and I cannot wait to play with it in a couple of weeks.

     

    After ScottGu was done Scott Hanselman gave a good session on how DLR’s will be implemented in the new MVC framework. I have never written a line of Python or Ruby so this was an interesting session from that angle.

    One thing I liked was that he showed the concepts surrounding creating your own Viewer in the new MVC framework. I can definitely see using the MVC framework when we implement WPF in our shop.

    I am VERY impressed with what the Scott’s. Contrary to other opinions Microsoft seems to get this area and is taking ACTION. (See theme above <G>)

    One side note: When ScottGu  gets Ray Ozzies job. Scott Bellware will go work at Microsoft for ScottGu.  I was there when it was said. I have witnesses <G>

     

     

    crossposted from blog.dashpoint.com
  • AltNetConf Day 1 - Fishbowls Rock!

    OK so I am a newbie to Agile practices and this “conference” is a great place to become immersed in all that is Agile.

    Last night was very interesting. Over 100 people gathered in one room to create this conference. The meeting started a definition of alt.net and Open Spaces.  The definition of Open Spaces is:

    Whoever shows up is the right group. Whatever happens is the only thing that could have. Whenever it starts is the right time. When it's over, it's over.

    A definition of bumblebees vs. butterflies was discussed. Are you a bumblebee or a butterfly?  Bumblebees go from one room to another landing and pollinating. Butterflies find a warm spot in the sun and take in their surroundings.  You can also take on different roles because of the rule of two feet:

    If you feel you aren’t learning or contributing you are encouraged to use the rule of two feet. Get up and move to another place.

    So after a briefing on the “rules” 100+ people introduced themselves. Lots of people from lots of places with very diverse goals for this gathering.  Scott Hanselman  http://www.hanselman.com/blog/ had one of the best intros:

    Hi, I’m Scott Hanselman I hope to bring my entire 3 weeks of experience at MSFT to this meeting. My goal is to find out what we do so bad that it started a movement. 

    Scott and Scott (Guthrie that is: http://weblogs.asp.net/scottgu/) are here to join the conversation. This is a great thing. Of all the people I know from MSFT that listen these two dudes do.

    After the intros we learned about the concept of a fishbowl meeting. I tell you what this was one of the coolest concepts I have participated in. Basically 5 or 6 chairs are put in front of the room. One chair is left empty the others are filled with members of the meeting. The topic that started it all was what does alt.net mean to you. And then it begins. The people in the chairs begin the discussing putting for the there points. When someone wants to contribute they take the empty chair, the person that has been in a chair longest gets up. The discussion continues. There is a constant rotation of people sitting, giving a POV or comment, and getting up. I don’t know if I did this justice but a lot of cool ideas were discussed and it was rather fun.

    After the completion of the fishbowl the agenda was set.  While the fishbowl was going on people were able to take 6*9 post it pads and write down an ideas for things they would like to see or discuss. Immediately after the fishbowl people with session ideas stood up and presented their idea and put that idea on grid with rooms and time slots. I think there were over 50 post its on the board. Not too bad for 100 people.  

    After the agenda was put on the board people “voted” for the sessions they wanted to see by  putting their initials on the post it note. During the “voting process” endless hours of conversations happened. I was definitely a bumblebee. I flew from one small gathering to the next. From looking at a new MVC model being shown by ScottGu , discussions of UI testing with Jeremy Miller,  meeting the new editor of MSDN Magazine and countless others. This meeting is off to a great start.

    The one thing that drew me to this conference was the people. This is a real community of greate people sharing great ideas. This was not a fabricated community but one that formed like all great communities do: IT JUST HAPPENED.

    Now it’s off to Day 2

     

     

  • My First TDD Dividend(s)

    It’s now 6:30am here in Austin, TX and my first forays into TDD have paid their first real dividends.

    Roy Osherove (http://weblogs.asp.net/rosherove/) and I spent a couple of hours yesterday going over my system framework/architecture, installing nUnit and Test Driven.NET. We wrote one very simple contrived test and then left for BBQ with our bud Scott Bellware.

    So it’s 4:00 am and I cannot sleep so I get up, do some client work and then return to so some tests on my own.  So I refactored my customer business object. I added a rule to check that the last name is filled in.  Then I wrote another test. The goal of this test was to make sure my validation engine worked and returned the proper error conditions.

    So I ran the test and it failed. I’m like what? This should have worked. Why didn’t my rule(s) fire? So I looked into the framework code and low and behold. Looks like I never finished wiring in our new validation rules engine. 

    BINGO: Dividend 1 paid. We now need to finish wiring in the new validation engine.

    So now I returned to making the test pass. I had a hook point where I could wire in manual calls to the validation engine. So I did that and restarted the test.  Boom another failure. Now what happened? We have a set of code the integrity of the data being returned. Well when we have a data validation error we don’t return that data.  Nice thing is that this section of the application is created via code-gen. I simply changed the script to test for the error condition. Now our test passed.

    BINGO: Dividend 2 paid. We needed to fix some of our codegen templates.

    So with just a few simple tests I found two very significant bugs in our framework. It’s nice to see that this stuff pays off so quickly.

    The nice thing is that now I am confident that this stuff pays great dividends (and very quickly I might add). Also it’s great to see that it CAN be implemented against our framework.  

     

    crossposted from blog.dashpoint.com
  • In Austin, TX for Alt.Net Conference

    I flew in yesterday from Seattle to attend the Alt.Net conference (http://www.altnetconf.com)  I am here early because I am working with Roy Osherove (http://weblogs.asp.net/rosherove/) to see how we can implement more Agile practices in our framework/architecture.

    Our framework/architecture is rather non-standard and breaks lots of “rules”

    1.       We do all our database access via stored procedures

    2.       We pass datasets over the wire to our service layers.

    3.       These datasets are un-typed datasets.

    4.       We use a combined data access and business rules class.

    Our framework/architecture has a lot of cool features though:

    1.       Works well with windows and web applications using an MVC style controller.

    2.       Is very scalable (we have some sites with a million+ users)

    3.       Does a lot of legwork with templates and code generation.

    4.       Is fairly easy to use and grok.

    5.       It has room for growth and improvement.

    My goals for this weekend:

    1.       Figure out how to implement  TDD using our architecture

    2.       Gather ideas on how we could move our framework forward

    3.       To hang out with the cool kidz coming to AltNetConf

    4.       To learn how other Agile techniques might work in our development environments.

    5.       To have fun!

    So I am here and if you want get in touch for dinner, Guinness, BBQ or just to hang…. Give me a ring 253-906-2342

     

    crossposted from blog.dashpoint.com
  • .NET Framework Code To Be Released

    We will finally have access to the .NET Framework source code...

    http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx
     

    It will be great to use something other than Reflector to see what the heck is going on in there.

     

    crossposted from blog.dashpoint.com
  • Spelunking Silverlight Article Published

    I just received word Part 1 of my Spelunking Silverlight article was published on the VB DevCenter!

     http://msdn2.microsoft.com/en-us/vbasic/default.aspx crossposted from blog.dashpoint.com
  • Accessing External Assemblies from SQL Server CLR Stored Procedures

    Accessing External Assemblies from SQL Server CLR Stored Procedures

    In the last couple of weeks I have been working on a specialized set of CLR Stored procedures for communicating with a mainframe via an ODBC driver. Each CLR stored proc will send an SQL query to the server and then dump the results of that query into a SQL Server table. There will be around 50 CLR stored procedures used to do this.

    During this process I created an abstract class. This abstract class would be the basis for each CLR stored procedure. Because of the nature of CLR stored procedures (they are all shared/static functions) I had to create a new class for each mainframe call and then instantiate that from a separate CLR stored proc.

    The code is like this:

     

    <Microsoft.SqlServer.Server.SqlProcedure()> _      
    Public Shared Sub CardholderNamesCLR(ByVal cAcctNo As String)

    Dim oTest As New CardHolderNamesLib             

    oTest.cAcctNo = cAcctNo             

    oTest.RunProc()     

    End Sub

     

    From the code you can see that I create an instance of the CardHolderNamesLib class which inherits from my abstract class. This was all fine and good when all my concrete classes and abstract class existed in the same assembly.

    So after creating two or three of these classes the client came back to me and said: “We want to put each class and CLR stored proc in its own assembly. Note I said that my abstract and concrete classes existed in the same assembly.

    To a .NET programmer this would be simple. Just create new assembly and reference it from each CLR stored proc assembly. No problem right? Well… I wouldn’t be writing this post if it was that easy.

    So I created an external assembly… Went to my CLR stored procedure project and tried adding my assembly. Right clicked on my project…selected Add Reference and…. The list was rather limited:

     Add Ref Dialog Part1

    As you can see there’s no real way to add a reference to an external assembly.

    Well I did what all good developers do. I hit Google and after consulting numerous blogs and MSDN pages there I found no answer to my question.

    Well today I found my answer…by accident actually but I found it….

    After deploying an assembly to my SQL Server I returned to my project and went to add a reference to one of the built in assemblies and what did I see. The assembly I had just deployed was there in the reference list.  Bingo! Now I could add a reference to an “external” assembly. The only requirement is the “external” assembly must be “pre-deployed” to the server.

    So I created a new SQL Server project from Visual Studio, added my abstract class and deployed that assembly to the server. Then I returned to my CLR stored procedure, went to the Add Reference dialog and there it was my assembly was included in the list of assemblies.

    Add CLR Reference Part 2

    After this it was pretty simple to refactor all my code using the abstract class contained in my "external" assembly. The funny thing about this was the total lack of posts about this subject. I guess the concept of abstract classes, concrete classes and inheritance has not made it far into the SQL Server world.

      

     

    crossposted from blog.dashpoint.com
  • MSDN Canada Speaking Engagements and INETA

     

    I have a couple of speaking engagements coming up in British Columbia.

     

    Tuesday October 9th, 2007

    Vancouver BC

    http://www.netbc.ca/DNCal/NetBcEvents.aspx

     Silverlight Adventures

    At MIX 07 in Las Vegas Microsoft released a new web development platform known as Silverlight. This session will demonstrate a number of features of Silverlight.

    Come prepared to learn: How to create a basic Silverlight application, how to control the Browser DOM with Silverlight, how to retrieve data into your Silverlight application using web services and finally how to send data to your web services from Silverlight. You should walk away from this session with a good understanding of the capabilities and limitations of Silverlight.

      

    Wed October 10th, 2007

    Victoria, BC

    http://vicdotnet.org/Default.aspx

     Ajaxing Your Applications

    Last Year Microsoft released a set of ASP.NET Ajax extensions. These extensions enable you to add Web 2.0 Style features to your ASP.NET Applications with little or no effort. In this session you will learn how to create new ASP.NET Ajax applications, how to incorporate Ajax into existing ASP.NET applications, what happens when you incorporate Ajax features into your web forms and overall how you can make your web forms smoother and more interactive. You will also learn how to incorporate the controls provided by the ASP.NET Ajax Control Toolkit.

     

    November 26 to 30th

    DevTeach

    www.devteach.com

     INETA Bound

    Also some good news… Last week I became an INETA speaker. I look forward to speaking at more user groups around the country and potentially the world. Thanks for all of those who helped make that happen.

     

    crossposted from blog.dashpoint.com
  • Fiddler to the Rescue

    Fiddler to the Rescue

    Last week I was working on a Sliverlight 1.1 article for the Visual Basic DevCenter (http://msdn2.microsoft.com/en-us/vbasic/default.aspx)  and ran into some problems making my Silverlight application communicate with a web service I included in my examples.

    After some discussion with Rick Strahl (www.west-wind.com/weblog) he told me to use Fiddler to diagnose my problem. Fiddler is a free HTTP sniffer that can be found at http://www.fiddlertool.com/fiddler/

    Fiddler is a tool that “sniffs” all HTTP traffic by inserting a proxy between the WinInet stack your web calls.  The proxy then outputs its results to a very cool windows application that will display your traffic real time. The following screen shows the output of the current version of fiddler.

    Flddler 2.0 screen

     

    After installing Fiddler it took me all of 5 minutes to see that I was not properly flushing a send buffer resulting in a bunch of “500” results calls. I added a single line of code and my code was working properly.

    On item of note Fiddler will not trace calls made to 127.0.0.1 or localhost. If you are debugging local applications you will need to address them via your machine name.

     

     

    crossposted from blog.dashpoint.com
  • Server Virtualization the New Snake Oil

    There is a new snake oil on sale and its name is Server Virtualization.

    The salespeople at VMWARE and other server virtualization companies are really good at their jobs. Somehow they have convinced companies that virtualized server environments are better than bare metal installations.  You must be kidding.

    I have two clients that are using server virtualization.

    The first is running a large SQL Server installation on a virtualized set of servers at a hosting company. This is a high availability and supposed to be a high performance system. My question is this: How are you ever going to be able to take full advantage of the hardware underlying your system if you have put a virtualization system over the operating system?

    At the second client we had 8 batch processing machines. These machines run 24*7 and process file transfers, data transformations, data cleanup, data scoring, etc… At least we did have 8 machines.  What we have now is a set of 8 virtualized machines running on one big box…  Not too long after the installation of this environment you know what happened? The single box we use crapped out hard. So now we had 8 dead virtual machines. In the old arrangement we had 8 machines reducing the potential footprint for hardware failure. Now we have one big point of failure. How does this sound like a good idea?

    Virtualization is a great tool for developers.  I feel it is entirely inappropriate for server environments.

    Does your company use virtualized servers? Do your clients use virtualized servers? Good idea or bad idea?

    crossposted from blog.dashpoint.com

     

More Posts Next page »