A Blog by Scott Isaacs

Tag: Professional Page 6 of 25

Happy Easter

Whether you think of it as just another holiday for the kids, or if you, like me, are celebrating something much more important, have a Happy Easter.

Fox Valley Day of .NET

Tomorrow (Saturday) is the first ever Fox Valley Day of .NET in Appleton, WI.  I’m planning to attend, and if you’re anywhere in the area, and are a software developer, I’d recommend you go as well.  They have a good looking lineup of speakers and sessions, and I’m looking forward to it.

Best of all, it’s free.

Their automatic registration process is closed now, but you can still show up and register on site.  If you’re planning to go, I’ll see you there.

Stop Thinking Like A Programmer

Gerry recently posted an interesting article about the mindsets of software developers and software companies.  We had talked about this same topic on the phone for a while a couple days ago.  The same phrase that jumped out at me then also jumped out at me while reading his post: Stop Thinking Like A Programmer.  Of course, it’s the bolded opening statement of his post, so of course it jumps out at me.

But there I go, thinking like a programmer.

Analyzing why something happened, I think, is a lot like debugging.  Describing how to do something is a lot like writing code.  Rearranging sentences and paragraphs, deleting words, and choosing new phrases to replace others while writing this blog post is a form of refactoring, similar to what developers do to improve code quality.  Adding new words to the spell checker to get rid of the annoying squiggle underline — that’s just me being unnecessarily picky.

So many of the things that I do, and that other software developers do, we do like programmers.  So what?  What’s the big deal?  On the whole, developers (and other analytical types like mathematicians, engineers and scientists) are known for being thorough and precise.  Those are good things.  Right?

Yes, if you are in the process of actually writing software (or proving theorems, performing experiments, etc.).  However, if you’re doing just about anything else with anyone who is not an analytical, you have to watch yourself.  Some things I’ve learned over the years are that customers (or your wife, or the project manager, or you father-in-law) do not care:

  • That the changes they want will be accomplished by adding three tables to the database with a foreign key to the Widget table, then using the Suchandsuch Control to display the WidgetDetail properties in a GroupBox on FormMain.
  • That the hardware vendor’s newest firmware release better distributes its resources to make the scanning process more stable.
  • That you will spend 4 hours on designing the data model, 24 hours building the data access objects and business objects, 12 hours on the UI, 3 hours in QA, and 1 hour on documentation.

They do care:

  • Whether or not it can be done.
  • If everything works right now.
  • How much it costs.

CoderSalesperantoThey have different concerns.  They have a different way of approaching the problem.  They’re coming at the problem from an entirely different point of view in the first place.  They’re speaking a different language.  Gerry calls it Salesperonto, and I thought that was pretty clever.

Where I grew up, there were very many native Spanish speakers.  Many of them also knew English, and some knew English very well.  They were capable of talking to me in a language I understood well.  However, when they got excited about something, or focused on something, they would often switch back to Spanish without realizing it, or worse, speak in sentences that were half English and half Spanish.

All to often, I’ve seen developers, including myself, do this.  It’s dangerous for a few reasons.  It can confuse the Salesperonto.  It can stifle their creativity within the business domain by overwhelming them.  It can bore them.  It can make them think that you don’t care or don’t listen to what they are saying.  There is a place for speaking Coderian, but make sure your audience is also fluent first.

Coderian is definitely my native language, but I’ve been working on my Salesperonto.  I still have some practicing to do before I consider myself fluent.  Does anyone know how to say "abstract class" in Salesperonto?

The Weekend Has Officially Started

I’ve recently found a new online comic strip: Garfield Minus Garfield

Garfield Minus Garfield

(Source)

From the site:

Who would have guessed that when you remove Garfield from the Garfield comic strips, the result is an even better comic about schizophrenia, bipolar disorder, and the empty desperation of modern life? Friends, meet Jon Arbuckle. Let’s laugh and learn with him on a journey deep into the tortured mind of an isolated young everyman as he fights a losing battle against loneliness in a quiet American suburb.

I think they’re funny.  If you don’t then you’re just wrong.

Banjo and Open Source

I don’t remember how I found it in the first place anymore, but I recently started listening to a new podcast called PC Load Letter.  It’s two guys that used to work together on Subversion (and now work together at Google) talking about open source software and related topics.  So far, there have only been three episodes, each fairly short, and I’ve enjoyed them.  Especially the banjo in the intro/exit music.  If you like open source software and banjo picking, this might just be what you never knew you were looking for.

The Importance of Grammar, Punctuation and Spelling

So how important do you think correct grammar, punctuation and spelling are in the following situations?

  • Business e-mails
  • Personal e-mails
  • Instant messages
  • Blog posts
  • Twitter tweets
  • Online forum posts
  • Text messages
  • Writing code

I used to be terrible at punctuation and grammar when online.  Not because I didn’t know the rules, but because it took too much effort.  I started back in the last half of the 1990s when I started instant messaging and e-mailing lots of people (friends and family).  When I “grew up” and got a real job, I found that this carried over into a lot of my work e-mails as well.  I had enough sense to send “correct” e-mails to customers and clients, but I didn’t seem to find it important for internal messages.

Let me first say that I am sure that almost every post, e-mail, IM and tweet have one or more errors, but somewhere along the way, I’ve changed.  Now, in all but the shortest, three word e-mail responses to close friends or family I make the extra effort to try to clean it up, even if the other person doesn’t do the same.  Even in 95+% of my text messages I try to spell words out, add apostrophes and punctuate.  Even in my code I’ve found that I am better about things — better variable names, more consistent capitalization, more complete sentences in my comments, etc.

I don’t know why I changed on this.  Maybe because I started dealing with more and more customers and got used to it.  Maybe it was the English class I had to take when I finally finished my B.S. program in 2002.  Maybe it was the four years I spent in the interactive department and a newspaper.  Maybe it’s because I thought it would make me cooler (I need all the help I can get).

Anyway, now I have a little dilemma.  Twitter limits tweets to 140 characters.  It’s sometimes hard to put a well constructed sentence together in 140 characters.  Of my whopping 28 tweets so far, only 4 or 5 fail my tests.  Of the rest, most are complete sentences and some are partial sentences similar to news headlines.

There’s no real point to this post.  It was just something I noticed about myself and wondered what thoughts other people have about this.

New Things I Want To Learn

Over the last 18 months or so, Microsoft has been releasing things faster than I am able to keep up.  Work keeps me really busy, and when I get home, I really haven’t been in the mood to write any code or really learn anything.  That said, there are a number of new things that I would like to get my head around.  The things I am most interested in at the moment are:

  • ASP.NET MVC
  • Silverlight 2.0
  • ASP.NET AJAX — I expect this one to be relatively easy once I get to it.

Additionally, I might be picking up the following over the next couple months at the office:

  • Compact Framework development (2.0 or 3.5, not sure yet)
  • WCF — This one is something I should have picked up right away when it came out.  It could make a big difference in some of the projects I have at work, but the task list has been too long so I’ve been finding other simpler (read: familiar) ways.

At the moment, I’m not looking to become an expert at any one of these topics.  I just want to get familiar enough with them to know the basics, as well as know where to go when I don’t know something.

For the personal list, I think I will start with MVC.  I plan to spend some time poking around www.asp.net as well as watching videos from Scott Hanselman — unless someone has some better suggestions for getting started, that is.

Three Years Of Mind Tapping Gooeyness

So I’ve been writing on this site for just over three years now, and this post is #230.  I really enjoy it and wish that I had more things to say and more time to say them.  That said, I’ve got a few goals for the blog for the upcoming year.  In order:

  1. Write more technical posts
  2. Write more community-focused posts
  3. Write more personal posts
  4. Less blogging about blogging

I’d really like to get up to around a dozen posts per month, but I won’t be too disappointed it stays in the 1-2 per week range.

I also have a goal of becoming more active on other social sites, starting with Twitter.  I’ve twittered about 20 things in the last week.  I have to say that using a desktop client (I’m using twhirl right now, but will try any suggestions) is SO much easier than using the Twitter website.  I’ve also been connecting with more people I know on Plaxo and LinkedIn.  I’ve been using Plaxo for a few years now, long before the whole Pulse networking thing.  I really like how it keeps my contacts and calendar in sync across computers.

I have a Facebook and MySpace account, but still can’t seem to really get interested in those.  I also can’t seem to get into the whole del.icio.us thing — I just don’t bookmark that much stuff, and when I do I use Google bookmarks from the toolbar (that’s really the whole reason I have the Google toolbar these days).  Maybe if I saw someone using del.icio.us in person, I would be inspired.  Maybe not.

So anyway, enough blogging about blogging.  Thanks for reading.

VS2008 DVDs From InstallFest

If you attended a VS2008 InstallFest in the last couple months and registered your trial copy of VS2008, you have probably received the final media in the mail in the last day or two (or probably will in the next day or two).  Someone sent me a note today asking about activated the installed trial version with the "real" software key.  He (and I) thought that it would be done from within the VS2008 IDE.

We were wrong.  In case anyone else is missing it like we were, this tip is for you.  You have to actually run the installer on the new disc.  Choose the option to "modify or uninstall" and after the installer finally loads, click next and you’ll see a handful of choices, including one to add a license key.  Copy the key from the disc jacket and you’re all set.

Looking For Virtualization Info and Advice

For two unrelated projects I am looking into server virtualization.  Both are for production systems and are not developer or consumer focused.  Most of the conversations I’ve had about VMs so far have been in the context of software development and software testing, but I know there are many people out there that have successfully virtualized their production server environment.  In talking about this with the people I’d be working on these projects with, here is a list of pros and cons we came up with based on what we’ve heard or read here and there — none of us are VM experts.

Pros

  • Can setup so that data is on one drive and OS/apps are on another, with each virtual drive being a separate VHD (virtual Hard Disk) file.  With that, we can easily backup the data drive separate from the OS/app drive, and in the event of a major problem, we can restore one without the other.  This can also be done with physical hardware, but we do not have access to the physical hardware.
  • Can create multiple virtual servers.  For example, we can put e-mail on its own server, SQL Server on its own, and web on its own.  We can then run all three VMs on a single physical machine.  If we tax the limits of the physical machine, moving one of the virtual machines to another physical is a simple file copy (for the most part).
  • Backups and restores of entire servers or disks are file copies.
  • If we have two physical servers we can schedule regular backs from one to the other and in the event of one physical server going bad, we can turn on all the VMs on a single physical server while repairing/replacing the first physical server.  Things would run more slowly, but at least they would be up.
  • We can test in other environments, such as Linux/Apache/Mono in a virtual server without having to have new hardware.
  • A problem with one virtual server will not affect the other servers.
  • Adding more servers is easy.  Make a copy of one and change a few settings.

Cons

  • Takes up more disk space as there are multiple copies of OS and some apps — installed for each VM.
  • I would guess that running all three VMs (from the example above) on a single real machine would be less performant that running the three services directly on the real server.
  • Multiple licenses to OS/apps are needed.  Multiple licenses = more $$$.

Questions

So based on what I have here so far, I have a few questions for my readers.

  • What pros and cons have I missed?  What pros and cons have I listed, but are incorrect, or have significant caveats?
  • Can anyone provide any real world advice, info or data that would help us determine if, how and what we should virtualize?
  • Are there some services that should not be virtualized?  POP3 e-mail?  Exchange Server?  SQL Server?  IIS?  If so, why and under what conditions?  Is it OK sometimes, but not in certain cases?
  • How much does the load on one VM affect the host?  What about the other VMs?
  • What about the host server?  Minimum hardware specs?  Recommended hardware specs?  How do I calculate what I need?  Do I simply add the specs of the VMs to calculate the specs of the host?
  • Microsoft Virtual Server?  VMWare Server?

If you have anything to add, please leave a comment here or contact me here or reply on Twitter.  I know there is a ton of info out there, but since this is not my area of expertise, I’d prefer to hear from someone I know who knows — even if what they share is simply their approval/disapproval of another source of information.

Thanks.

Page 6 of 25

Powered by WordPress & Theme by Anders Norén