Sep292009

XAML Power Tows

Karl on WPF released the 5.0 version of the XAML Power Toys a little over a week ago. Down load here.

Sep242009

Sparks will fly

Scott Gu announces the launch of a the new WebsiteSpark program from Microsoft. It enables independent wed developers and companies to get software, support and business resources from Microsoft at no cost for three years, and enables you to expand your business and build great web solutions using Microsoft Technologies.

This program joins the BizSpark program for new start ups and the DreamSpark for students looking to get into the development field.

Sep242009

MMS for iPhone has arrived (well almost)

It’s already known that AT&T is activating MMS for the iPhone on Friday, but the company has now narrowed the time frame to within a few hours.

As reported by AppleInsider, AT&T’s official Facebook page said the service will be activated late morning Pacific time Friday. That’s not exactly definitive, but at least no one will need to sit around all morning wondering if it’s on yet.

The iPhone’s multimedia messaging service will allow the transmission of photos, contacts, audio files, and locations with the Messages app, according to Apple.

More here.

Think Text Messaging with pictures.

Sep222009

Free Web Charting

FusionCharts Free is a completely free and open-source Flash charting component. It empowers you to create animated and interactive Flash charts for your web applications, desktop applications and presentations.

Download here (source code included with download).

It is very easy to use. I was able to create this chart within 10 minutes of downloading the component. Nice!

chartsample

Sep222009

Programming 101

MSDN now has a learning center for the absolute beginner.

Find your path to success in a centralized learning environment specifically targeted to beginning programmers. The rich array of content starts with the very basics, and guides you through step-by-step to becoming a full-fledged developer. Once you’re ready, become a Champion and show off your project.

More at Beginner Developer Learning Center.

Sep142009

.NET for the iPhone

The big payoff for Novell’s investment in an open-source version of a platform created by its rival in the operating system category, Microsoft, may come in the unlikeliest of places: Today, Novell begins shipping the 1.0 edition of MonoTouch, its commercial software development platform that extends the .NET Framework and the C# language…to Apple’s iPhone.

See BetaNews for more.

Sep102009

SQL to find the next birthday

SQL to find the next birthday (There is also a VB.Net version here).

On its surface it seems like this would be a trivial task and something that Should be easy to do with SQL. And actually it is very easy but it does require a  little twist. The twist is that you have to consider where you are in the current year before you can discover when it will occur next.

If the birthday precedes the current date the next birthday will occur in the next year.

For instance if the current date is 9/10/2009 and the birthday is 9/1/2009 the next birthday will be  9/1/2010.  Any birth date after the current date will occur in the current year. It makes perfect sense when you think about.

Create Table #Employee(
    LastName VARCHAR(20)
    , FirstName VARCHAR(20)
    , BDate DateTime)
Insert Into #Employee(
    LastName
   , FirstName
   , BDate)
Values(
    'Servo'
    , 'Tom'
    , '1969-09-01')
SELECT    LastName
        , FirstName
        , BDate
        , CASE
           WHEN DATEADD(YEAR, YEAR(GETDATE())- YEAR(BDate), BDate) <= GetDate()
           THEN DATEADD(YEAR, YEAR(GETDATE())- YEAR(BDate)+1, BDate)
           ELSE DATEADD(YEAR, YEAR(GETDATE())- YEAR(BDate), BDate)
        END AS NextBirthDate
FROM #Employee
Drop Table #Employee

Results for the current date 9/10/2009:

LastName FirstName BDate NextBirthDate
Servo Tom 09/01/1969 09/01/2010
Sep102009

Quick & Dirty Email Validation

Imports System.Text.RegularExpressions
Public Class Form3
        Private Sub btnValidate_Click( _
            ByVal sender As System.Object, _
            ByVal e As System.EventArgs)
            Handles btnValidate.Click

        If EmailCheck(txtEmail.Text) = True Then
            MessageBox.Show("The email is valid.")
        Else
            MessageBox.Show("Email address is invalid")
        End If
    End Sub

       Function EmailCheck(ByVal Email As String) As Boolean
        Dim ValidEmail As String = _
        "^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@" & _
        "([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$"
        ' If the passed in email matched the
        ' RegEx pattern a true will get returned.
        Return Regex.IsMatch(Email, ValidEmail)
    End Function
End Class

Sep092009

Fundamental axioms of software development #1873

I am a huge fan of The Daily WTF web site, which is a website dedicated to badly written code. I like the site for so many reasons. However the number one reason I check it out every day is that I have some expectation that I will, one day, see some code I wrote early in my career (please please please let it be code from early in my career). Admittedly there have been a few close calls but so far I have managed to stay under the radar.

Anyway today’s set up included this paragraph, which is pure genius.

One of the fundamental axioms of software development — #9 on the list, actually — is that "there is always a better way." This holds that there is no such thing as Perfect Code, only Good Code which is appropriately correct, appropriately optimized, and appropriately documented for the situation at hand. On the other hand, a lesser-known axioms (#1873, for those keeping count) is that "there is always a worse way." No matter how bad a particular block of code may seem… someone, somewhere, somehow will develop something even worse.

Here is the pay off. And if your not familiar with the site the real fun is in the comments.

Sep082009

Got WordPress? Get updated.

icon_bigKeep Word Press Secure

Right now there is a worm making its way around old, unpatched versions of WordPress. This particular worm, like many before it, is clever: it registers a user, uses a security bug (fixed earlier in the year) to allow evaluated code to be executed through the permalink structure, makes itself an admin, then uses JavaScript to hide itself when you look at users page, attempts to clean up after itself, then goes quiet so you never notice while it inserts hidden spam and malware into your old posts.

The latest version is 2.8.4. More Info.