My name is Edward Tanguay. I'm an American software and web developer living and working in Berlin, Germany.
5 hours ago: If you are a developer in Berlin and need to improve your English, I'm looking for groups to teach after work: http://tanguay.info/itenglish.
6 hours ago: As far as I'm concerned, the singularity is already here, every time I wake up twitter tells me something amazing was created while I slept.
6 hours ago: We're not suffering from information overload, we're suffering from faulty filtering.
6 hours ago: Classic literature for free as nicely formatted 1-page or 2-page PDF downloads: http://www.planetebook.com/free-ebooks.asp.
6 hours ago: Yes, when you pour coffee, "a lightning storm of neuronal activity occurs almost across the entire brain": http://is.gd/eWO1T @pholdings.
23 hours ago: If you put two spaces after a period or use underlining for emphasis, you were born before 1980.
23 hours ago: Word of the day: infovore, n. an animal with a voracious appetite for information.
yesterday: It's said that on average people use less than 10% of their brain, but I think on average computers use less than 1% of their CPU.
2 days ago: Saturday fun: team drawing on two computers with six-year-old in a shared google doc diagram.
2 days ago: Someday I want to produce a developer podcast called "What's that?" but for now "the developer's life" is a nice genre: http://is.gd/eTURO.
3 days ago: Here's a use-case for datapod format, recording human-readable data that later can be used as a datasource: http://is.gd/eSsLg @pholdings.
WPF CODE EXAMPLE created on Sunday, January 17, 2010 permalink
How to create JQuery-like chaining in C# with Extension methods
After realizing how easy extension methods are to create, you next realize realize how useful it is to chain them together. Here's an example.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TestRemove283423
{
    class Program
    {
        static void Main(string[] args)
        {
            List<string> phrases = new List<string> {
                             "Jim's Book",
                             "It isn't enough.",
                             "Title: C# Programming",
                             "one;two;three"
                         };

            for (int i = 0; i < 3; i++)
            {
                phrases.RemoveBadCharacters().ShuffleList().ForEach(l => Console.WriteLine(l.AddEllipsis().Bracket()));
                Console.WriteLine("---");
            }
            Console.ReadLine();
        }
    }

    public static class ExtensionMethods
    {
        public static List<string> RemoveBadCharacters(this List<string> lines)
        {
            List<string> newLines = new List<string>();
            foreach (var line in lines)
            {
                newLines.Add(line.RemoveBadCharacters());    
            }
            return newLines;
        }

        public static string RemoveBadCharacters(this string line)
        {
            string badCharacters = @"!.,;:""ยง$%&/()=?'";
            foreach (var badCharacter in badCharacters)
                line = line.Replace(badCharacter.ToString(), "");
            return line;
        }

        public static List<string> ShuffleList(this List<string> list)
        {
            return list.OrderBy(a => Guid.NewGuid()).ToList();
        }

        public static string Bracket(this string line)
        {
            return "{" + line + "}";
        }

        public static string AddEllipsis(this string line)
        {
            return line + "...";
        }
    }
}
need markup?