Thursday, December 23, 2010

Increasing a Hardware RAID 1 Array Size

In this post, the poster is asking whether or not you can increase the size of a hardware RAID 1 array by installing larger drives in half of the array, rebuilding the array, installing larger drives in the other half of the array and rebuilding again.  The answer seems to be no, you can't.

Rather, after googling around, the answer seems to be that you need to create a image of your system; replace all of the drives in the array with larger ones, create an new, larger and empty array on the new drives; and restore your image expanded it to fill the larger array.

Tuesday, December 7, 2010

Thursday, December 2, 2010

Tooltips With Just CSS

Over at Six Revisions, Alexander Dawson has posted an article to how to create tooltips inside the browser using nothing but CSS.  There is a debate in the comments about whether or not this is correct usage of HTML and/or CSS.  Check it out.

CSS Resets

Prior to reading Michael Tucker's post at Six Revisions, I had not heard of a 'CSS Reset' before.  If you haven't either, Tucker explains the concept:
When you use a CSS "reset," you’re actually overriding the basic stylesheet each individual browser uses to style a web page. If you present a website with no CSS whatsoever, the site will still be styled, to a very limited extent, by the browser’s default stylesheet. 
Edit:  Part 2 has now been posted.

Edit:  Part 3 now posted as well.

Wednesday, November 24, 2010

Visual Studio 2010 Resources

Microsoft's Clint Edmonson posted the "Ultimate Guide to Visual Studio 2010 Resources".

New Code Sample Repository from Microsoft

In this post, Microsoft's Clint Edmonson introduces MS's new code sample repository "All-In-One Code Framework".

Tuesday, November 23, 2010

MVVM Guidance and Training in Visual Studio

In a recent post, Josh Smith points out that there is "Free MVVM Guidance in Visual Studio".  Helpful if you are looking to learn the pattern or need a reference manual.  Said material was authored by Karl Shifflett.

Friday, November 19, 2010

.NET Multi-threading

To date, I have not had to write multi-threaded code in .NET.  With my last project, that has changed.  In the course of learning to do so, I found the articles "Multi-threading in .NET" (old but good) and "Threading in C#" helpful.

Friday, October 15, 2010

Single Page Web Sites and Designing Web Sites

Alexander Dawson has an interesting article on "The Science Behind a Single Page Website" over at the Six Revisions blog.  In addition, Jacob Gube posted an article titled "Information Architecture 101:  Techniques and Best Practices", in which Gube discusses how to structure the pages and information on those pages.

Monday, September 13, 2010

MVVM

MSDN has recently published an article titled 'Problems and Solutions with Model-View-ViewModel.'  The article asks the questions
When is the MVVM design pattern applicable to RIA and desktop apps? When is it unnecessary?

SQL Server Performance Tuning

Buck Woody offers up a virtual cornucopia of links on SQL Server Performance Tuning in this post.

Friday, September 10, 2010

Friday, July 2, 2010

Having Trouble With Windows Search

If you are having trouble using the newer versions of Windows Search, this article on Windows Search syntax may help.  If that doesn't help, here is a list of technical resources, or try WindowsNetworking.com's articles on Windows 7 Search.  If you just want to get rid of the whole thing, consider Google's Desktop.

IIS Express and SQL Server Compact Edition

Scott Guthrie has announced IIS Express--depending on how you look at it, its either a light weight IIS or an advanced ASP.NET development server (otherwise known as Cassini).  The objective is to meet ASP.NET developer's wish:  “I wish I could have the ease of use of the ASP.NET Development Server, but still have all the power and features of IIS”

Secondly, he also announced a new version of SQL Server Compact Edition (SQL CE).  To quote Guthie:

SQL CE works with existing .NET-based data APIs, and supports a SQL Server compatible query syntax.  This means you can use existing data APIs like ADO.NET, as well as use higher-level ORMs like Entity Framework and NHibernate with SQL CE.  Pretty much any existing data API that supports the ADO.NET provider model will work with it.

This enables you to use the same data programming skills and data APIs you know today.
The intention of both seems to be to simply the development and/or deployment of ASP.NET based applications.

Friday, June 18, 2010

Windows 7 and Sysprep

I needed to build some Windows 7 images and as I've used sysprep previously on XP and Vista, it seems like the way to go.  Turns out Win 7 sysprep is pretty close to Vista's, although some of the components have changes.  In short, I used the same options/configuration from my Vista unattend.xml file to build a Win 7 one, and it works fine (you do need to install the newer Win 7 AIK though).  More details here (I didn't do everything that Brian did, but its a good starting point).

Edit:  Mark Minasi has several posts about Sysprep in his Windows Networking Tech Page newsletter.  Specifically "Hands-Off Vista Installs with Answer Files and Windows System Image Manager" in Issue #60, "Using and Automating Vista's Sysprep" in Issue #62 and "You Can Sysprep More Than Three Times... Here's How" in Issue #7.  Lastly, this thread from Minasi's forums may be helpful.

Edit:  You may well be downloading the OS from your MSDN subscription as your starting point, as I did.  In my case, that raised a few questions.

1) There are different types/editions of many product in MSDN's subscriber downloads ('N', 'K', 'KN', etc).  This page explains the differences for Windows 7:

Is there any special SKU version of Windows 7 that exists? (Windows 7 N, Windows 7 K, Windows 7 KN, Windows 7 E)
Yes, there is Windows 7 N, Windows 7 K, Windows 7 KN and Windows 7 E, where each editions of Windows 7 will also have in these flavors other than standard version.
Windows 7 N: Windows 7 N is meant for European market, and includes the same functionality as Windows 7, except that it does not include Windows Media Player and related technologies such as Windows Movie Maker.
Windows 7 K: Windows 7 K is meant for Korean market, and includes the same functionality as ordinary Windows 7, except that it includes links to a Media Player Center Web site and a Messenger Center Web site.
Windows 7 KN: Windows 7 KN is meant for Korean market, and includes the same functionality as Windows 7 K, except that it does not include Windows Media Player and related technologies such as Windows Movie Maker, links to download Windows Live Messenger, or links to a Media Player Center Web Site and a Messenger Center Web site.
Windows 7 E: Windows 7 E is meant for European Commission countries, including UK, and includes the same functionality as ordinary standard flavor of Windows 7, except that it does not include Internet Explorer 8 (IE8).
 2) There are different types of keys as well, as explained by this page:


Key TypeDescription
Not ApplicableNo key is needed to install this product.
RetailThis key allows multiple activations and is used for retail builds of the product.  In many cases, 10 activations are allowed per key, though often more are allowed on the same machine.
Multiple ActivationYou can use the same key to activate multiple copies of the software. MAKs are generally used with Volume Licensing builds of a product.  Typically you will only be provided one MAK for a given edition of a product.
Static Activation KeyA key is required for installation of the product, but the key does not require activation, so it can be used for any number of installations.
Custom KeyThis custom key provides special actions to activate or install.
VA 1.0This is a multiple activation key.
OEM KeyThis is an Original Equipment Manufacturer key that allows multiple activations.
AA Retail KeyThis retail key is for Academic Alliance programs and allows one activation. These keys are issued in batches.
AA Lab KeyThis lab use key is for Academic Alliance programs and allows multiple activations.
AA MAK KeyThis is a multiple activation key for Academic Alliance program customers.
AA VA 1.0This volume license key (VA 1.0) is for Academic Alliance programs and allows multiple installations.

SQL Server and Row-Based Security

Here's an interesting article on how one company implemented row based security in SQL Server.  I'm considering using this technique (or some variation) to replace our application's implementation of 'partitioning', 'roles' and 'data synchronization to hardware'.  It would have the great benefit of replacing 3 different patterns, each of which has its own unique complexities with just one pattern.

Precompiling LINQ Queries

Julie Lerman has posted an article on MSDN on the hows and whys of precompiling LINQ queries.  Worth reading, as the hows aren't necessarily as obvious as you might think.

Dynamic SQL Can Be Good

Right or wrong, I've always believed dynamic SQL was a bad idea, both because the SQL can't be saved to the execution plan cache, but more importantly, it opens the door to SQL injection attacks.  While those concerns are valid, Jonathon Roberts posts an article demonstrating the good (and in this case, arguably necessary) use of dynamic SQL.

The State of HTML5

Jacob Gube posted recently on the state of HTML5 and about developing HTML5 apps.  Check it out.

OT: KRAs (Key Result Areas)

A previous company I used to work for used the KRA concept successfully.  Something to think about.

Monday, June 14, 2010

NoSQL, Non Relational Databases and Object Databases

If you haven't yet encountered NoSQL, it's about non-relationship databases.  Here is a guide to many links on the subject.  Also, here are some links on 'db4o', an object database: http://db4o.com/; http://versant.com/; http://www.codeproject.com/KB/database/LINQ_for_db4o.aspx.

Server Side Data Paging Using SQL Server

Paul White is writing a series of articles on various ways to do server side paging--that is retrieve the total count of rows in a result set, as well as a single 'page' (or subset) of that same data.  Part I, Part I Discussion; Part II, Part II Discussion;

Additionally, Robert Cary has written an article (article, discussion) on the same topic, and so has Lawrence Moore (article, discussion).

Thursday, June 10, 2010

Using Try-Catch Blocks to Handle T-SQL Errors

Bill Graziano has an article on using 'Try Catch' blocks in SQL Server 2005 and above to handle errors.

Using SQL Server Schemas

Alexander Kuznetsov has a post on how he uses schemas to organize and control access to his databases.

Wednesday, June 2, 2010

SQL Server and Google-like Text Searchs

If you need to perform Google-like text searches against your SQL Server databases, here is an article on doing so in SQL Server 2008 using Full Text Search.

Friday, May 14, 2010

Mouse Cursor is a Dot in a Hyper-V Session

I created a new Hyper-V session with Windows 7 as the guest OS the other day.  After installation was complete, even though Win 7 has integration services already available, the mouse cursor rendered as a very small dot, not the usual error.  I googled and found this thread (See the post by Kent Nordstrom near the bottom).  It turns out if you delete the "Microsoft Virtual Machine Bus Input Device Miniport" and reboot, the problem goes away--at least it did for me.

Friday, May 7, 2010

ASP.NET, ASP.NET MVC and Visual Studio 2010 Links

Scott Guthrie has a post listing various links to articles/posts on ASP.NET, ASP.NET MVC and Visual Studio 2010.  Its part of his "link-listing series"--from each post, you can link to the previous one.

Tuesday, April 27, 2010

Learning About WPF

Here are some links/posts to get you started on WPF:

Josh Smith: A Guided Tour of WPF – Part 1 (XAML); WPF.JoshSmith (Control Library)
Sacha Barber: WPF: A Beginner's Guide - Part 1 of n; List of Other Articles
Karl Shifflett: WPF Business Application Series Part 1 of n - Application Structure, Skinning & Custom ToolBar Button Control

Getting Started on ASP.NET MVC

If you are wondering about ASP.NET MVC, here are a couple articles to get you started:

Dr. Dobbs:  Web Development Renewed
www.asp.net:  What is ASP.NET MVC?

Why is Software Engineering So Hard?

I've often thought that calling ourselves 'Software Engineers' and describing what we do as 'Software Engineering' implies that building software should be more like other engineering disciplines.  For example, why is it so hard to accurately plan/predict/estimate what it takes to accomplish building some piece of software?  Why do so many projects fail?  Not that I am an expert on other engineering disciplines, but they don't seem to suffer the same problems we do, at least not too the same extent.  Why is that?

Martin Folwer, in a post completely unrelated to the above, quotes Alistair Cockburn:
...[who] explained that since people are the central element in software development, and people are inherently non-linear and unpredictable - such an effort is fundamentally doomed. Or at least it is until people become predictable agents that can be described with tractable mathematics.
Perhaps that is at least part of the answer to my above questions--people play a much bigger role in software engineering efforts.  Particularly in that it is often impossible to know upfront precisely what needs to be done and what the requirements are, leading to changes as the project moves along.  In short, much more unpredictability.

Visual Studio 2010 and C# 4.0

With the release of Visual Studio 2010, Microsoft's Clint Edmonson offers a load of links on Visual Studio 2010 and C# 4.0.

Friday, April 9, 2010

New in VB 2010

Andrew Troelsen lists three of VB 2010's new features:

  1. Line continuation characters are no longer needed.
  2. Multi-statement lambdas are now supported.
  3. A lambda no longer requires a return value--in other words, lambdas which represent Subs are now allowed, not just lambdas representing Functions as was true previously.

Tuesday, March 30, 2010

Free .NET Development Tools

On Intertech's blog, Andrew Troelsen lists some useful .NET development tools that also have the great benefit of being free.

Friday, March 26, 2010

iPhone App Development Without Objective-C

Here's an interesting way to develop iPhone apps without resorting to Objective-C:  build it in HTML5 and cache.

Thursday, March 25, 2010

The State of Various Technologies--Adopt/Abandon/Consider

Here's link you may want to read.  It's a quick 8 page read on the state of various technologies and whether they may be worth adopting/abandoning.  A lot of these types of things aren't worth much, but this one is by Thoughtworks, which is Martin Fowler's place.  If you aren't familiar with him, suffice it to say he's well respected on the forefront of software engineering, which is why I consider this worth the time and thought.  I'll also point you to this, which covers one of the tidbits in the doc that might otherwise easily be missed.  Last, I'll point you to this, which while old (seems to date from Google's announcement on Chrome/Chromium), is an interesting take on Chrome/Chromium, its true competitors, and its possible impact on them.

Wireless Networking

Supposedly, this company offers better Wireless Networking products.  They have some interesting antenna technology that forms 'beams', instead of just the basic omnidirectional model.

Friday, March 19, 2010

.NET Asychronous Sockets Server

I've been starting work on designing a scalable TCP/IP sockets server in .NET.  Not having done anything like this before, I did some digging around on the web, googling for '.net asynchronous sockets heap fragmentation'.  Here, here, here, here, here, here and here are some posts that were highly worth reading.

Not suprisingly, .NET wraps Win API calls, for instance AcceptEx.  With that in mind, this article provides some good background.

Also, in the course of absorbing the above, references were made to Jeffery Richter's Power Threading Library, as a great way to learn about multithreading, locks and so on.  Said library is available here.

Last, I'm not sure if this one is still relevant, so I need to read again.

Edit:  As .NET uses IOCP under the hood, this introductory article and this more technical one may be useful reads.  The second link in turn references other articles:

Design Patterns

When designing and building software, design patterns can often help.  DoFactory is one place to get sample patterns.  Like anything else they have their pitfalls and need to be applied thoughtfully.  Here's a post on the subject.

.NET Memory Leaks

Since .NET applications run in the CLR as managed code, inexperienced developers may make the assumption they no longer need to be concerned with memory usage--after all, it's managed code and the garbage collector will take care of it, right?  Unfortunately, that isn't true.  Here's a StackOverflow post and here's another post discussing the issue.  Here is a detailed MSDN article.  The article notes these are the most common causes of memory leaks in the .NET world:

  • Static references
  • Event with missing unsubscription
  • Static event with missing unsubscription
  • Dispose method not invoked
  • Incomplete Dispose method
Last, here's a post talking about how to use C#'s 'using' statement as a way of making sure the Dispose method gets called on any Disposable object.

Thursday, March 18, 2010

Martin Fowler on RESTful Web Services

Martin Fowler posted this to his blog on RESTful web services and the 'Richardson Maturity Model'.  Worth reading.

Friday, March 12, 2010

Object Relational Impendance Mismatch

Here's a good post discussing the problems that happen when using relational databases to stores objects.

Tuesday, February 23, 2010

Migrating ASP.NET apps to Windows Azure

Here's a post on migrating an ASP.NET app to Windows Azure.