Excessive JavaScript and AJAX: bad practice & broken pages

AJAX Logo

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

.NET_logo

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

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…

Building a home Network Attached Storage server. Part 1: Hardware

Antec 1200 computer case

Recently I built a home NAS file server to finally consolidate all of my data into one easily managed network location. I have worked with Network Attached Storage systems before, and I’ve even played with SAN solutions before, but this was my first time building one from scratch.

The goal of this project is to have a massive, always-on, redundant, and wicked fast network accessible storage drive where I can save all of the files from my massive media collection for permanent archive. This central location will be my grand file repository for basically everything. Ideally I should be able to loose my desktop and laptop drives without losing anything that I care about.

I’ve had plenty of time to define exactly what I needed in a file server, and requirements were actually pretty simple:

  • Separate system and storage arrays
  • RAID failure protection on both arrays
  • At least 7 terabytes of usable storage
  • At least 60 MB/s of real world network throughput
  • Expandable base that I can add storage to when it become necessary
  • Excellent hard drive cooling
  • Reasonably low power requirements
  • Less than $2,000 total

This is the story of my particular NAS build and some of the stuff I learned during the course of this project.

Read more…