Articles from Charlie Calvert

Monday, March 13, 2006
Open for Business: Diversity and Change
Major trends seen in web development, and in the businesses that use the web, are not easily defined. No one company or technology dominates the modern economy. We live in a complex, heterogeneous, world. New economic forces arise daily, and trends that were important five years ago are today as obsolete as a Model T Ford. It is difficult to stay well informed and up to date, and it is dangerous to cling to the past.
Read More..
Saturday, March 04, 2006
Unit Testing In Visual Studio 2005
Visual Studio 2005 has a built in system for creating and running unit tests. If you are used to using NUnit, you will find that it is easy to move over to the Visual Studio testing system. If you are new to unit testing, then you will find that this is a good environment in which to learn the basics.

Read More..
Thursday, January 26, 2006
Windows Makeover: Exploring the New Microsoft Shell
Microsoft is nearing the release of its new command line shell called MSH. The new shell is currently at Beta 3, and has been released to the public under the code name Monad. This article provides a simple introduction to the Monad scripting language, and the MSH shell itself. I'm working with Beta 3 of the shell, which runs on top of .NET 2.0.


Read More..
Wednesday, January 18, 2006
Subversion and the ASP .NET Hack
An anomaly in the way Visual Studio 2003 treats web applications has caused a problem for developers who use the version control system called Subversion. The most recent release of Subversion now has an official fix -- or perhaps one should call it a work around -- for this problem. This article discusses that fix, and the problem that it is designed to solve.

Read More..
Thursday, December 15, 2005
A Factory for Mock Objects Part II

This is the second part of a two part article on mock objects and the Inversion of Control pattern. In this article, you will see how to use the code presented in the last article. The previous article dealt mostly with theory, this article shows how easy it is to use the code shown in the last article. You will, of course, need to be familiar with the first part of this series in order to understand this article. Articles on NUnit can be found here and here.

Read More..
Monday, December 12, 2005
A Factory for Mock Objects: Part I

This relatively advanced article describes a solution to a particular problem that can arise when you are designing unit tests. Unit tests frequently rely on mock objects. In many cases, mock objects are fairly easy to use. However, there are occasions when it can seem quite difficult to interject a mock object into your tests. This paper is designed to demonstrate the solution to one such occasion when it might not be obvious how to use mock objects.

Read More..
Monday, December 05, 2005
The Varities of Testing Experience

There are many different types of tests that are commonly discussed in the literature on this subject. In fact, there are at least six main types of tests, and the boundaries between them can be fuzzy at times. Nevertheless, it is possible to make at least a few generalizations which can help you navigate the lingo found in most texts and web sites. This article is designed to give you basic definitions for each of the following types of tests:

  • Unit Tests
  • Integration Tests
  • Functional Tests
  • Stress, Load and Performance Tests
  • Acceptance Tests
  • Regression Tests
Read More..
Wednesday, October 26, 2005
Creating Repositories and Projects in Subversion: Trunk, Tags, Branches.

This article explains how to create projects and repositories in a free, open source version control system called Subversion. The online documentation for Subversion is excellent, but the information found here may help people who are still getting up to speed with the product. I will assume that you have already installed Subversion and TortoiseSVN.

Read More..
Monday, October 17, 2005
Using NUnit in Visual Studio 2005

This article describes how to use NUnit with Visual Studio 2005. In particular, I am using Visual Studio 2005 v 8.50727, which is similar to release candidate 1. This is a solid build of Visual Studio, but NUnit needs to be reconfigured to work with it smoothly. The solution to this problem is simple and fairly well known by this time, but I thought I would spell it out here, just so I would have an easily accessible written record of it.

Read More..
Tuesday, September 27, 2005
Creating Custom NAnt Tasks
This article is the fourth in a series of articles on the build tool called NAnt. It describes how to use C# to create custom NAnt tasks stored in a .NET assembly. The techniques provided for extending NAnt represent an excellent example of modern code design. The whole concept of plug and play, extensible, architectures is very much at the apex of current application design theory, and the folks who brought us NAnt demonstrate exactly how this kind of architecture should behave. As you will see while reading this article, the concepts involved are easy to understand, and easy to use. This is an excellent example of the kind of intuitive, cutting edge program design that lies behind the best modern software.
Read More..
Monday, September 26, 2005
Using NAnt to Update .NET Config Files, Part 02

This article completes the two part series on using NAnt to alter .NET config files. The previous article in this series demonstrated how to use NAnt properties, how to use multiple NAnt build files in a single project, and how to use xmlpeek and xmlpoke. This article will show how to pass data back and forth between NAnt files, how to reuse NAnt code, and how to add some simple C# scripts into your build files. This later technique will allow you to add the expressive power of C# to a simple NAnt XML build script.

Read More..
Tuesday, September 20, 2005
Using NAnt to Update .NET Config Files, Part 01
This is the first part of a two part article on updating .NET app.config or web.config files with the open source tool called NAnt. This is a relatively advanced article designed to teach you some of the useful features found in the NAnt build tool. Topics covered include using multiple build files, using the xmlpoke and xmlpeek tasks, and an introduction to working with xpath syntax.
Read More..
Wednesday, July 27, 2005
Weaving the Post Factual Internet

We live in a post factual world. When confronted with an inconvenient fact, politicians, marketers and bloggers never acknowledge its truth. Instead, they attempt to "spin" the facts, to distort reality. Such behavior is so common that most of us no longer blink when confronted by even its most blatant expressions. We believe that WMD simultaneously exists and does not exist, we think the definition of the word "is" might be open to interpretation. The sin is not confined to any one party, it is universal. No place is the distorting influence of the post factual world felt more clearly than on the Internet.

Read More..
Wednesday, July 06, 2005
Ranking Languages: Fear as a Career Move
We all worry about our careers, and wonder about our future. But trying to find our way in the career marketplace is not always easy. When we want to study for the future, where should we focus our attention? Is learning a language with big marketing clout like C# or Java necessarily better than learning "small fry" scripting languages like Python or Perl? Is it even true that Python or Perl are less popular than C#? The answers to these questions are not as simple as they might seem.
Read More..
Wednesday, June 22, 2005
NUnit CodeCoverage with NCover

Unit tests work best when you have close to 100 percent coverage of the methods in your project. The problem, of course, is that it is not always easy to know if you have tested every method in your application. Problems also occur when tests do not thoroughly cover all the paths through a particular method. For instance, there may be logical branches in a method that are never explored. The solution to problems of this type is a tool called NCover, which is based on the JCover tool and similar utilities.

Read More..
Sunday, June 19, 2005
Building C# Projects with NAnt

NAnt is a cross platform, open source, build tool for use with Mono or .NET. You can use it for automating builds, automating unit testing runs, or for version control. NAnt has no built in GUI interface, nor will it write your unit tests for you. Instead, it provides a powerful means of scripting these tasks so that they are performed automatically with a single command. With NAnt, it is easy to write scripts that work unchanged on both Linux and Windows.

Read More..
Friday, June 10, 2005
Test Your DotNet GUI with NUnit and Mock Objects

Unit testing is an easy technology to learn, but very difficult to master. In particular, problems often occur when developers try to start testing user interfaces, modules that are not complete yet, database code, or code that depends on network interactions. There are various ways to solve these kinds of problems, but one of the most interesting involves the use of mock objects.

 

Read More..
Wednesday, June 08, 2005
Globalization: Fiddling While Rome Burns

Thomas Friedman, the author of “The World is Flat,” explains in this morning's New York Times that the economic engine in Bangalore, India is reaching a new phase. "We're going from a model of doing piecework to where the entire product and entire innovation stream is done by companies here," the CEO of a large Indian company told Friedman.

Read More..
Monday, June 06, 2005
Installing the Java 1.5 JDK on Linspire
This article describes several techniques for installing the Java 1.5 JDK on Linspire. Two of the techniques outlined here would also work on any Debian based system.
Read More..

NAnt Updates Include .NET 2.0 Support

As of the March 4, 2006 build, NAnt has begun including .NET 2.0 support and NUnit 2.2.7 support. These builds have not become part of a release candidate yet, but you can pull down a nightly build, or simply subscribe to the CVS process.

posted @ Saturday, March 18, 2006 11:23 AM by charlie

Advertising Revenues on the Internet

According to an article on eWeek, Google pulled in $6 billion in web based advertising revenue in the last fiscal year, while Yahoo generated $4.6 billion. Microsoft, which generated $1.4 billion in online ad revenue, hopes to double their numbers in the next 3 to 5 years. All three companies are competing for a slice of a pie that is expected to reach $26 billion by 2009.

posted @ Monday, March 13, 2006 12:30 AM by charlie

Run Linux in the VMWare Player on Windows

If you download the free VmWare Player, you can also download free, prebuilt versions of Redhat, Ubuntu or SUSE Linux to run inside it. Thus, without needing to go through a Linux install, you can get Linux running on your Windows desktop for free. Alternatively, you can run Ubuntu or another distribution in a virtual machine inside your regular copy of Fedora Core or some other Linux distro.

posted @ Saturday, March 04, 2006 2:42 PM by charlie

Advanced Google Search Operators

It's hard to keep up with all the cool technologies being developed by Google. For instance, you can use Google to define the word "category" by typing in define: category at the Google prompt. Besides define, there are ten other special Google search operators that can, for instance look up stock symbols, search only in the title of articles, or find pages that link to a particular page.

posted @ Thursday, February 16, 2006 12:57 PM by charlie

MySql and Dual Software Licences

A few of us at Falafel had a very brief discussion the other day about MySql. During that discussion we mentioned the licensing for this product. Cofusion arose because MySql is both a free product, and a commercial product. To help clarify the issue for myself, I decided to write up this brief description of the dual licensing of free software.

posted @ Friday, February 03, 2006 11:24 AM by charlie

SourceForge to Adopt Subversion

It's been a long time coming, but SourceForge is finally ready to adopt Subversion.

posted @ Wednesday, February 01, 2006 8:38 AM by charlie

Fedora 4 and MP3 Files

Simple hints on how to get MP3 support on Fedora Core 4.

posted @ Saturday, January 28, 2006 9:07 PM by charlie

A Simple Way to Backup and Restore a Subversion Repository

You can use the dump and load commands of the svnadmin utility to back up and restore your repository.

posted @ Wednesday, January 11, 2006 11:17 PM by charlie

Compiling GTK Sharp on Fedora Core 3

Right now I have two copies of mono on my system. The out of date one that I installed from binaries when I was running Fedora Core 2, and the up to date one that I am building from source.

posted @ Friday, January 06, 2006 12:45 PM by charlie

Problems with libgobject-2.0-0.dll and libgtk-win32-2.0-0.dll

When running Mono on Linux, you might get errors about libgobject-2.0-0.dll and libgtk-win32-2.0-0.dll:

Unhandled Exception: System.DllNotFoundException: libgtk-win32-2.0-0.dll
Unhandled Exception: System.DllNotFoundException: libgobject-2.0-0.dll

posted @ Friday, January 06, 2006 12:43 PM by charlie

Very Small Computer

It measures 0.75 x 0.75 x 1.4 inches (19 x 19 x 36mm), and weighs 0.64 ounces (18 grams)

http://linuxdevices.com/news/NS8386088053.html

posted @ Friday, January 06, 2006 12:42 PM by charlie

CVS pserver on Debian or Linspire

The following entry in /etc/inetd.conf ended up working for me:

cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/cvs -f --allow-root=/path/to/repos pserver

Then go to /etc/init.d and run

./inetd restart

posted @ Friday, January 06, 2006 12:41 PM by charlie

Calorie Counter

 If you eat fast food, go here to learn about your immanent demise:

http://www.washingtonpost.com/wp-srv/flash/health/caloriecounter/caloriecounter.html?nav=sc

In general, if you eat anything that has 15 or more grams of the bad kind of fat in it, then you are traveling the dark road.

posted @ Friday, January 06, 2006 12:38 PM by charlie

Ajax is here.

All the cool people, like the developers who created Google Maps, are using Ajax, a new approach to JavaScript development.

posted @ Friday, January 06, 2006 12:36 PM by charlie

Windows Command Line Overhaul

In the future, expect some significan improvements to the Windows command line. Click the title of this article to read more.

posted @ Friday, January 06, 2006 12:31 PM by charlie

A Fix for: "ASP.NET is not installed or is not registered with your web server"

I got this error: "ASP.NET is not installed  or is not registered with your web server" To fix it and start ASP.NET, I did this:

[C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322]aspnet_regiis.exe -i

If you have installed VS 2005, and want to move from ASP.NET 2.0 to 1.1, try this:

aspnet_iisreg -u 

posted @ Friday, January 06, 2006 12:27 PM by charlie

Opt out of annoying Credit Card Offers

 Opt out of credit card offers: https://www.optoutprescreen.com/?rf=t

Can this possibly really work? Giving credit, where credit is due, this tip came to me by way of John Kaster!

posted @ Friday, January 06, 2006 12:24 PM by charlie

How do I test for a parameter count of zero in a batch file?

Read this article to learn how to test for a parameter count of zero in a batch file.

posted @ Friday, January 06, 2006 12:15 PM by charlie

Quake 2 Under Java

They have taken the original Quake 2 source files and ported them to Java. If you have Java installed already, then you need only one button click to download, install and start running. The key is to use the WebStart option.

http://www.bytonic.de/html/jake2.html

Perhaps it is a little slower than under the original binaries? It is hard to tell.

posted @ Friday, January 06, 2006 12:12 PM by charlie

Querying Tables and Columns in Microsoft SQL Server

Sometimes you want to query MS Sql server to find out about  existing tables. Here is one way to write a query to get that information

posted @ Friday, January 06, 2006 11:41 AM by charlie

Building C# Projects with NAnt

NAnt is a cross platform, open source, build tool for use with Mono or . NET . You can use it for automating builds, automating unit testing runs, or for version control. NAnt has no built in GUI interface, nor will it write your unit tests for you. Instead, it provides a powerful means of scripting these tasks so that they are performed automatically with a single command. With NAnt, it is easy to write scripts that work unchanged on both Linux and Windows.