Top 5 Attributes of Highly Effective Programmers


What attributes can contribute to a highly successful software developer versus the ordinary run-of-the-mill kind? I don’t believe the attributes listed here are the end-all, be-all list, nor do I believe you have to be born with them. Nearly all things in life can be learned, and these attributes are no exception.


Love of Learning





Philosophical Geek » Top 5 Attributes of Highly Effective Programmers

A command line interface base class


I made the class as simple as possible to create entry point (start up) classes.

class Program :BaseConsole {

    public override string Name {
        get { return "Console Application"; }

    protected override void LoadCommands() {
        this.Commands.Add("print", () => Console.WriteLine("print out"));
        this.Commands.Add("another", () => Console.WriteLine("another print out"));

    static void Main(string[] args) {
        new Program().Run();

A command line interface base class

Subkismet 1.0 Released


A stand-alone comment spam filtering library. Includes Akismet, Invisible Captcha, and Visible Captcha. The Akismet library included is based on code in use by Subtext and DasBlog.

For the current version (1.0) we’ve included following tools in Subkismet core library:

  • Akismet service client: Akismet is an online web service that helps to block spam. This service client implementation for .NET is done by Phil and lets you send your comments to the service to check them against a huge database of spammers.
  • Invisible CAPTCHA control: A clever CAPTHCA control that hides from real human but appears to spammers. This control is done by Phil and you can read more about it here.
  • CAPTCHA control: An excellent implementation of traditional image CAPTCHA control for ASP.NET applications.
  • Honeypot CAPTCHA: Another clever CAPTCHA control that hides form fields from spam bots to stop them. This control is done by Phil and you can read more about it here.
  • Trackback HTTP Module: An ASP.NET Http Module that blocks trackback spam. This module is done by Mads Kristensen and he has explained his method in a blog post and this Word document.
  • Google Safe Browsing API service client: This is done by me and you saw its Beta 2 version last week. Google Safe Browsing helps you check URLs to see if they’re phishing or malware links.

Akismet service client, Invisible CAPTCHA and normal CAPTCHA were a part of 0.2.2 Beta release but other parts are new in Subkismet 1.0.

Online Demo

Via Subkismet 1.0 Released : Keyvan Nayyeri

Great Line-of-Business Controls for WPF


I’m delighted to see that Infragistics have just released their NetAdvantage control set for WPF. In the interest of fairness, I should also highlight some of the other great controls out there: Xceed have a great (free) data grid, ComponentOne also have a data grid and chart control, along with a bunch of calendaring components, DevComponents also have a very impressive Office ribbon and a Visual Studio-esque docking control, IdentityMine have a 3D carousel as part of their Blendables toolkit, and Actipro have yet another Office ribbon along with a wizard control.

Via Great Line-of-Business Controls for WPF

Creating JSON-enabled WCF services in .NET 3.5


Updated: A even simpler approach by the author. WCF 3.5 supports an even simpler model for building script services than the approach I outlined – by setting Factory=”System.ServiceModel.Activation.WebScriptServiceHostFactory” in your .svc file, you can completely remove all configuration file settings. In fact, you can reduce the entire service to a single file if you like by embedding the service class directly in the .svc file


Just over a year ago, I wrote an article for MSDN Magazine detailing how to make client-side web service calls with the ASP.NET Ajax extensions to .asmx web services. While most of the contents of that article still apply today to .NET 3.5 and Visual Studio 2008, there is a fundamental shift going on away from .asmx and towards .svc (WCF) for web services, so I thought it would be timely to post an update to that article to describe how to use WCF for your script-callable web services in .NET 3.5.

My goal with this post is to provide very specific and easy to follow instructions on how to create script enabled WCF services with the final release of Visual Studio 2008 and .NET 3.5.

The simplest way to create an Ajax-enabled WCF endpoint is to use the new Visual Studio 2008 Ajax-enabled WCF Service item template. You can also script-enable an existing WCF service, but to keep this streamlined, we’ll start with this template.



Via Creating JSON-enabled WCF services in .NET 3.5

Facebook Developers | Facebook Developers News


This JavaScript client library allows you to make Facebook API calls from any web site and makes it easy to create Ajax Facebook applications. Since the library does not require any server-side code on your server, you can now create a Facebook application that can be hosted on any web site that serves static HTML. An application that uses this client library should be registered as an iframe type. This applies to either iframe Facebook apps that users access through the Facebook web site or apps that users access directly on the app’s own web sites. Almost all Facebook APIs are supported.

Facebook Developers | Facebook Developers News

Minority Report-like interaction in WPF


Microsoft Surface and Jeff Han’s multi-touch UI seem to be ages behind if compared to Project Maestro, developed by Cynergy.

A NO-Touch interface developed with WPF, XAML and using the WII remote with some custom-built IR gloves.

If you want to do it yourself, here are some pointers to get you started: Connecting the Wii Control to WPF and the Wiimote project.

Via Minority Report-like interaction in WPF

CodeProject: URL Object Serialization: An Effortless Approach to User Account Confirmation. Free source code and programming help



What if one could encode all the information required to complete the registration into the actual confirmation link? The downside is that you end up with a long and not so pretty URL, the upside is that you end up with a new level of ease and flexibility. This is not only for confirming account registration, but also for passing data from emails and between pages etc.

This project consists of a URL Object Serialization component that provides serialization, compression, and encryption of CLR objects so that they can be embedded within URLs, a user-account purging component that performs the periodic removal of unconfirmed user accounts, and a demonstration website that shows the use of the components in an ASP.NET user-account confirmation system.

URL Length Limitations

When generating URLs, we must be aware that some browsers and Web servers have a limit on URL length. URLs using the GET method in Internet Explorer are limited to 2,083 characters. The POST method also limits the URL length to 2,083, but this does not include query string parameters ( This point is important when intending to serialize large object graphs, or instances with a lot of member data. Safari, Firefox, and Opera (version 9 and above) appear to have no such limit. Older browsers such as Netscape 6, support around 2,000 characters.

As far as Web servers go, IIS supports up to 16,384 characters. For those using Mono and Apache, however, Apache supports up to 4,000 characters (Boutell, 2006).

So, the short story is, if you wish to maintain compatibility with most browsers, then you should ensure that all URLs remain under 2,000 characters. This gives us about 8000 bytes or 7.8 KBs to work with. Not too shabby.

Via CodeProject: URL Object Serialization: An Effortless Approach to User Account Confirmation. Free source code and programming help

Web Deployment Projects (WDP) for Visual Studio 2008 – December 2007 CTP Released



Visual Studio 2008 Web Deployment Projects is an add-in to Visual Studio 2008 which provides developers with advanced compilation and deployment options… A Web Deployment project is extensible, enabling web developers to create pre-build and post-build actions…

Download Location

You can download this RTW version from

Feature Summary

A Web Deployment project provides the following features for building and deploying ASP.NET 2.0 Web sites:

  • ASP.NET 2.0 precompilation as part of the build process.
  • More flexible options for generating compiled assemblies from a Web project, including these alternatives:
    • A single assembly for the entire Web site.
    • One assembly per content folder.
    • A single assembly for all UI components.
    • An assembly for each compiled file in the Web site.
  • Assembly signing options.
  • The ability to define custom pre-build and post-build actions.
  • The ability to exclude folders from the build.
  • The ability to modify settings in the Web.config file, such as the <connectionString> element, based on the Visual Studio build configuration.
  • Support for creating .msi files with setup projects.


A tutorial on Web Deployment Projects can be found at Scottgu’s blog


Via Your Websites, Our Passion! : Web Deployment Projects (WDP) for Visual Studio 2008 – December 2007 CTP Released