Building a home Network Attached Storage server. Part 2: RAID Setup

This is Part 2 in the Building a home Network Attached Storage server series. In this article I will talk about some of the options for the RAID arrays and the art of RAID configuration.

Now that we know what hardware this system is going to be built on we have to decide what technology is going to run it all. We still have several options for RAID controllers and software.

One item that really needs to be mentioned is that if you use Windows computers to access the NAS you will want to use Windows Vista, 7 or Server 2008 as the NAS operating system. This is for one simple reason, Windows Vista in 2006 introduced Server Message Block 2.0. SMB2 is a massive boost to network file transfer speeds. Where an XP machine may only be able to send 50MB/s over the network, the same machine running SMB2 will be pushing 80MB/s. So if you are going to be using Windows on your desktop, you probably want to be using Windows on your NAS.

The first step is deciding what RAID controller you are going to use for the system.

Read more…

Excessive JavaScript and AJAX: bad practice & broken pages


I’ve written tens of thousands of lines of JavaScript code and I love the language. I have used it on almost every site that I’ve worked on in the last 10 years. It makes web pages and web applications so much better in every way. That is, if it’s used correctly, in moderation.

However, for the last few years it feels like I’ve had to spend more time explaining why we should not use JavaScript than I do actually writing scripts. This is a trend that I’ve noticed more and more as the web matures. An ever increasing number people believe that JavaScript is the solution to everything. Many take this idea so far that they believe it’s okay to say that we don’t support users without JavaScript.

Read more…

Reporting of unhandled exceptions in your distributable .NET desktop application

If you’re writing a .NET desktop application that you intend to distribute then you may find it very helpful to build a system for reporting any exceptions that end-users experience back to you. Being able to gather raw exception reports from an app somewhere in the wild will make it much easier to find problems that never appeared on your development and testing environments.

This can save you a lot of headaches when dealing with users complaining about problems that you simply cannot reproduce. An error reporting system has the added benefit of improving end-user morale. It makes people feel much better when they know the developer has received a real report about the problem they encountered.

My method for handling exceptions and reporting them is very simple. However, it does require a little extra work to setup. I’ll walk you through my particular method and give you the basic C# code that I use.

Read more…

An IDE for PHP that doesn’t suck

phpDesigner Logo

A few months ago I commented on how PHP needs an IDE and a membership provider. Well, I’m still waiting on the membership provider, but I’m happy to say that I’ve finally found an IDE that doesn’t suck, phpDesigner. phpDesigner is a complete IDE for PHP based web development. It is a pretty simple idea but this one seems to have actually pulled it off. If you’re looking for a Windows PHP IDE, this one is certainly worth a look.

This development environment isn’t perfect, that is to say it’s not Visual Studio smooth, but it is far better than anything else that I’ve tried for PHP. It has all of the basic features that I’ve been looking for in a PHP IDE that runs on Windows.

Read more…

Graceful degradation theory, IE and CSS3

As most web developers know, CSS level 3 is in the works, and has been for quite some time now. Unfortunately it is still just a working draft and cannot be adopted in full by the standards compliant web browsers. But that doesn’t mean we can’t start benefiting from the technology today.

CSS3 offers a wide array of very important and useful features. All of which will give web developers increased productivity, better maintainability and better design practices. There are so many new features that you will have to do some serious reading to get caught up.

But I can tell you about the ones that I’ve fallen in love with and offer up some theory and advice on using them in the wild world of the web.

Read more…