CG’s CodeMash Countdown: The CodeJam

Today’s CodeMash Countdown isn’t about one of the languages, but rather
about one of the Precompiler events. Over the past few months, I’ve been working with Gary Bernhardt, Joe Fiorini, Corey Haines, and John Stockton on planning the CodeJam.

No, we’re not make jams and jellies out of code. Nor are we making music with our code – although that would be quite fun!

So who are these guys that I’m working with?

Gary Bernhardt is the leader of the Cleveland Python Users Group. Joe Fiorini is one of the Cleveland Ruby Brigade organizers. Corey Haines is the famous Corey Haines of the recent pair programming tour. John Stockton was the leader behind Cleveland Day of .NET 2008 and is a co-author of a Silverlight book. I’m always excited to work with these guys – great senses of humor and just great to work with overall. Our bios are included with the event description on the Precompiler page.

And just what is the CodeJam? As John best described it:

Come take a look at how you can cross-breed technologies in your application to take advantage of the advantages of each. In this all-day lab we will be demonstrating an end-to-end solution using Silverlight, Ruby, Python, Django and MySQL. Experts in each technology will be on hand to show you how we did it and help you create a version of your own. Build a single tier or build it all, it’s up to you.

Showing up ready to build in any of these technologies will make the day faster but we can help you install the tools as well. In fact, we will even have a pair of VPCs to provide attendees with the entire source code and trial versions of the dev environments so you can just show up, load up and code.

We’ll have VMware images of a Linux environment and a Windows environment, so that if you want to develop in an environment other than your own, the VMs will work. These virtual machines can be run through the VMware Player.

Come on out to the CodeJam and see what it’s about!

CG’s CodeMash Countdown: F#

First, D-flat… and now G-flat… which note will be the next language?

Amanda Laucher has been talking about F#ing for quite awhile. Although that may look like something obscene, all she’s doing is talking about (and eating, sleeping, and breathing) a language called F#. The first time I heard about F# was at her presentation last spring at Central Ohio Day of .NET. I have since heard her give her F# talk at the GCPCUG VB.NET/C# SIG, and it is still quite interesting to hear, many months later.

Whether you’re new to F# or an advanced user, Amanda covers it all. So if you’re at a conference where Amanda is talking on F#, I’d check it out.

So today’s CodeMash Countdown language is F#.

Language: F#

Website: F# at Microsoft Research

A Little About F#

Okay, so maybe this isn’t a musical language.

Taken from the Microsoft Research site:

F# was developed as a pragmatically-oriented variant of ML that shares a core language with OCaml. Unlike other scripting languages it executes at or near the speed of C# and C++, making use of the performance that comes through strong typing. Unlike many type-inferred, statically-typed languages it also supports many dynamic language techniques, such as property discovery and reflection where needed. F# includes extensions for working across languages and for object-oriented programming, and it works seamlessly with other .NET programming languages and tools.

Where will this be seen at CodeMash?

F# is making its rounds at CodeMash at Dustin Campbell’s talk “Multi-threading Mojo with F#”.

Where can I learn more about F#?

Check out the Microsoft F# Developer Center on MSDN.

For all news F#, I’d recommend checking out Don Syme’s blog.

For those developers familiar with C#, check out What does this C# code look like in F#?.

Dustin’s blog also has many examples of F# in action. Matt Podwysocki also appears to have quite a few examples of F# in his blog.

Dude, I’m Not Getting a Dell – Part 1

I’m interrupting the countdown for a post to find out what others’ opinions are of Dell. My awesome husband ordered me a Mini 9 for Christmas, as he saw it as a great tool for me, especially with giving presentations and stuff. When I found out about that, I was psyched! He ordered it for me at the beginning of December (12/5), and today, he got another shipping delay. It was supposed to ship on 12/19, but they delayed it until today (12/29). Sure, they were going to ship it today. Or maybe now it’s delayed until 1/12.

Looking at their blog, they aren’t saying anything about a delay in shipping, a shortage in parts, etc. So… what’s up with Dell? Why is it that they are going to take more than a month from order to shipping?

I understand that back orders happen, parts can’t get shipped because of strikes, etc. But honestly, with Dell not saying anything, this doesn’t seem right.

He’s got a call in with his rep to find out why there’s such a delay. Unfortunately, the rep didn’t get back to him at the end of the day.

More details will follow.

CG’s CodeMash Countdown: SQL

I love working with databases. When I look at data, I see database tables, stored procedures, and everything that goes with them. Even when I look at everyday things – like this book sitting on my coffee table – I see various parts of it and how it would fit in a database. Author, title, ISBN number, publisher, page count… and that’s just to start. My mind is just geared to see databases and the various relationships that belong to the tables.

My first database project was a freeware address storage app written in Visual Basic 3 with Access as its database. My first experience with databases in the business world was dealing with the ones in my internship right out of high school. For part of that internship, I had to make sure that the data in the database matched the spec sheets. For another part, I worked with a consultant on a VB 6 app that talked to a Microsoft SQL Server database. Towards the end of the internship, the Oracle DBA invited me to his cube to show me how Oracle works.

All of my internships in college dealt with some type of database work. From the one I mentioned above to making FoxPro programs Y2K compliant to upgrading Access forms to VB6/MS SQL, I always had some kind of database experience. Even in my student worker position in college, I co-wrote an inventory system using PHP/MySQL. Getting into the real world, I eventually took on database administration of MS SQL servers, and I am developing apps that work with MS SQL.

Anyhow, enough about my passion for databases and back to the CodeMash Countdown. Today’s spotlight is on SQL – structured query language.

Language: SQL

Website: (FIPS Standard for Database Language SQL)

A Little About SQL

This language is used for manipulating databases. Originally developed by IBM for their System R database system, SQL became the standard language for relational databases. SQL is standardized by both the ANSI and ISO systems.

Although there are standards in place, vendors have added their own features for their implementations, so not all SQL queries can be used across multiple database systems. For example, MySQL has a LIMIT clause that can be extremely useful when developing queries for paged data; however, there is no LIMIT clause in Microsoft SQL Server.

Some of the big database systems out there that use SQL include: Oracle, Microsoft SQL Server, MySQL, and PostgreSQL.

Where will this be seen at CodeMash?

You will see SQL in use at the CodeJam at the Precompiler. We are using MySQL as our database.

As for the CodeMash presentations, check out “Well, Isn’t that Spatial… (SQL Server 2008 Spatial Data)”, presented by Jason Follas.

Where can I learn more about SQL?

For a generic SQL tutorial, check out Webucator’s SQL Tutorial.

If you are using Oracle, check out the Oracle/SQL Tutorial.

If you are working with Microsoft SQL Server, check out the SQL Server Developer Center on MSDN.

For MySQL, check out’s MySQL Tutorial.

Finally, for PostgreSQL, check out the tutorials found in the official PostgreSQL documentation.

SELECT ReaderName FROM BlogReaders WHERE IsAttendingCodeMash = 1

If you’re in that result set, I’ll see you there!

CG’s CodeMash Countdown: Erlang

Here in Cleveland, I have the opportunity to collaborate with a talented and diverse group of developers. Corey Haines is one of those developers, and he’s the first person that I’ve ever heard mention Erlang. I wasn’t sure Erlang was, but Corey’s talk of it sparked my curiosity. Without further ado, featuring Erlang….

Language: Erlang


A Little on Erlang

Erlang was created in the labs at what is now known as Ericsson AB, originally designed for use in telecom applications. Some of the key features of Erlang include native support for concurrency, distribution, and fault tolerance. It can run on a variety of platforms – including Solaris, Windows, Mac OS, and Linux. Nowadays, it doesn’t stay in the lab – it is an open source language.

For more on Erlang, check out Ericsson’s page on Erlang.

Where can this be seen in the wild?

Facebook uses Erlang in their chat system.

Apache’s CouchDB database system is written in Erlang.

The IM daemon ejabberd for Jabber is also written in Erlang.

Where will this be seen at CodeMash?

While looking at the CodeMash session list, it looks like there’s only one Erlang presentation. Check out “Erlang: The Basics” by Kevin Smith.

Where can I learn more about Erlang?

I’d recommend starting with the Erlang Frequently Asked Questions, to get a base understanding of the language. From there, check out the Getting started section of the official Erlang site. has a tutorial called Erlang for the C, C++, and Java Programmers.

Kevin Smith has put out a screencast series called “Erlang in Practice”. Check it out on the Pragmatic Bookshelf.

Me Dev, You Jane also has some interesting articles on Erlang, including a knock knock joke and a series called Erlang Introduction (For the Ruby Guy).

Finally, for all sorts of Erlang news, check out Erlang Inside and Erlang Community (

CG’s CodeMash Countdown: C# and VB.NET

Continuing the countdown, let’s look at the two common .NET languages – C# and VB.NET. Yes, I am combining both of these languages into one post. This may make some C# programmers cringe, as some may find VB.NET inferior. VB.NET seems to be the Rodney Dangerfield language – it gets no respect.

Seriously, though, I’m a C# developer in my day job, but my first foray into the .NET languages was with VB.NET. Before working with C#, I was a VB6 developer, but I knew that the app I was commissioned to make had to be web-based, so no VB6 for that. I figured I’d stick with a language that couldn’t be that much different than what I was used to – how hard could it be to work in VB.NET? Boy was I foolish for thinking that!

These languages have been debated for eons, with Dan Appleman writing an eBook on it, Coding Horror blogging on it, and a little more recently, the DotNet Mafia mentioning it. Microsoft did release a white paper on the difference between the two languages. Though I have to wonder – why argue which one is “better”? Every language has its strong points and weak points – learn both and consider them as more tools in your toolbox when it comes to application building.

Both of these languages have the ability to show up in any Microsoft-related developer presentation, as these are the languages that get the most focus when showing off anything code-wise in the .NET realm.

Language: Visual C#

Language: Visual Basic .NET

Where will these be seen at CodeMash?

I’m going to guess that if a Microsoft-technology developer talk shows any code, it’ll most likely be C#, as that appears to be the language of choice for most of the .NET blogs that I read. Maybe some of the speakers will see this blog post and throw me off by showing mostly VB.NET examples. (Ok… so maybe that’s stretching it.)

Looking at the session list, I’d have to guess that you’ll see C# or VB.NET in some of these sessions:

  • Modern Web Applications with .NET, presented by Drew Robbins
  • Dev Guide: Skinning Silverlight Controls, presented by Jesse Liberty
  • Managed Extensibility Framework, presented by Drew Robbins
  • A Lap Around the Live Framework and Mesh Services, presented by Jeff Blankenburg
  • Scaling Habits of ASP.NET Applications, presented by Richard Campbell
  • Deep LINQ: C# Query Expression Pattern, presented by Bill Wagner
  • Re-thinking UI – WPF DataTemplates, presented by Carey Payette
  • Reverse Engineering Applications, presented by Joe Kuemerle
  • Modeling types with extension methods, presented by Bill Wagner
  • Developing for Microsoft Surface, presented by Jennifer Marsman
  • Cloud Computing with .Net, presented by Wesley Faler

Where can I learn more about C#?

The MSDN C# tutorials cover a variety of features available, each rated either “Simple”, “Intermediate”, or “Advanced”.

The Visual C# Developer Center on MSDN has articles, tutorials, starter kits, and videos just to name a few types of resources. Check out that site for all things C#.

C# Station has a series of tutorials as well, breaking the language into building blocks, similar to my data structures classes in college.

Where can I learn more about VB.NET?

Dan Mabbutt has put together a series of VB.NET tutorials on

Code samples can be found at VBnet™ Visual Basic Developers Resource Centre.

I’ve also found some VB.NET ASP.NET examples over at 4 Guys From Rolla.

Finally, to find all things VB.NET – including starter kits, tutorials, and videos – check out the MSDN Visual Basic Developer Center.

CG’s CodeMash Countdown: PHP

I am starting my CodeMash Countdown by featuring a language that I’ve worked with in the past and that I’ve helped others learn. Introducing one of my favorite web development languages…

Language: PHP


A Little About PHP

PHP, as close to what we know it as today, first appeared in 1997, as PHP 3. What originally started with a guy named a bunch of Perl scripts his “Personal Home Page Tools” eventually evolved into a C implementation language called PHP/FI (“Personal Home Page/Forms Interpreter”). However, a couple guys found PHP/FI underpowered, and they beefed it up into what came out as PHP 3.

PHP 3 brought on a new abbreviation – PHP now is a recursive abbreviation, standing for PHP: Hypertext Preprocessor. It also brought a lot of extensibility – talking to more databases, over more protocols, with more APIs.

For a complete history, check out the history of PHP on the official PHP site.

Where can this be seen in the wild?

PHP has been used in an assortment of applications, including content management systems – such as Joomla, PHP-Nuke, and Mambo. Other popular PHP packages include MediaWiki (Wiki software), WordPress (blogging software), Gallery (photo gallery software), phpBB (bulletin board system), and Zen Cart (shopping software).

Some sites that use PHP include:

Where will this be seen at CodeMash?

Although there are no sessions featuring the language, it is used at the Code Jam on Day 0. This is my language focus, as I had worked with it extensively in the past, co-writing an inventory system in PHP.

If you want a preview of what kind of fun lies ahead at the CodeJam, you can see some of my JSON at my CodeMash PHP test bed on Cleveland Tech Events.

Where can I learn more about PHP?

The language FAQ is definitely a great place to start to learn about the language itself.

If you want to look at the various PHP frameworks available, check out this article that compares the PHP frameworks available.

You can also find links to articles and tutorials on PHP at

CG’s CodeMash Countdown: Introduction

As is true with many of my friends, I’m excited about CodeMash. I had originally heard about it from my friend Russ, who had gone to past CodeMashes and came back excited about what he heard. Many months later, I met Jeff, who made sure to remind me that I missed the 2008 CodeMash and that I should be at 2009. He introduced me to a community, who has a whole have reminded me that I should be there as well. Thanks to everyone and their collective push, I will be at CodeMash this coming January.

So I’m eagerly looking forward to CodeMash 2009, not only as a participant but also as a speaker and precompiler event planner. After getting together for another meeting, I followed the guys to the Winking Lizard, and I managed to join the Code Jam team, bringing on my prior experience in MySQL and PHP. For the past few months, we’ve done weekly meetings, and I’m super excited about what we have to offer. I’ve been working with a talented group of guys, with a wide background of languages.

Speaking of languages, there will be plenty of languages to sample at CodeMash. I’ve always been fascinated with languages, and one of my favorite classes from college was my programming paradigms class. With my love of languages and as part of my countdown, over the rest of the days between now and then, I will give an intro to each language, which sessions may feature it, and links for more information. So look forward to hearing more about PHP, Python, Ruby, Scala, Groovy, Java, C#, VB.NET, IronRuby, SQL, Erlang, IronPython, and possibly other languages.

Towards the end of the series, I will focus on a few things that are going on or other things to note about the event.

Is it CodeMash yet? Hope to see you there!

Here we go a SQL-ing among the leaves so green…

While I code at work, I listen to my Zune, and at this time of year, I’m listening to my holiday songs. One of my favorite holiday songs is “The Twelve Days of Christmas”, in its various forms – the Starcraft version (for the gamer geek in me), Straight No Chaser’s version, John Denver and the Muppets, and even the 12 Pains of Christmas. But many people sing the song without really knowing what the 12 days are.

I always wondered if it was the 12 days leading up to the Christmas in December (12/25) or January (1/6). Sparing the whole religious story, the 12 days of Christmas are actually the 12 nights leading up to the January Christmas, with the 1st day of Christmas starting on 12/25.

I was looking at stored procedures when this song came across, and it inspired the following query:

DECLARE @DaysOfChristmas int,
@DateOfChristmas smalldatetime,
@ChristmasDay smalldatetime,
@GiftOfTheDay varchar(50)

SELECT @ChristmasDay = '12/25/2008',
@DateOfChristmas = @ChristmasDay,
@DaysOfChristmas = DATEDIFF(d, @ChristmasDay, @DateOfChristmas)

WHILE (@DaysOfChristmas + 1 <= 12)
SELECT @GiftOfTheDay =
CASE @DaysOfChristmas + 1
WHEN 1 THEN 'partridge in a pear tree'
WHEN 2 THEN 'turtle doves'
WHEN 3 THEN 'french hens'
WHEN 4 THEN 'calling birds'
WHEN 5 THEN 'golden rings'
WHEN 6 THEN 'geese a-laying'
WHEN 7 THEN 'swans a-swimming'
WHEN 8 THEN 'maids a-milking'
WHEN 9 THEN 'ladies dancing'
WHEN 10 THEN 'lords a-leaping'
WHEN 11 THEN 'pipers piping'
WHEN 12 THEN 'drummers drumming'

PRINT CONVERT(varchar(10),@DateOfChristmas,101) + ': ' + CONVERT(varchar(2),@DaysOfChristmas+1) + ': ' + @GiftOfTheDay

SELECT @DateOfChristmas = DATEADD(d,1,@DateOfChristmas), @DaysOfChristmas = DATEDIFF(d, @ChristmasDay, @DateOfChristmas)


The output looked like this:

12/25/2008: 1: partridge in a pear tree
12/26/2008: 2: turtle doves
12/27/2008: 3: french hens
12/28/2008: 4: calling birds
12/29/2008: 5: golden rings
12/30/2008: 6: geese a-laying
12/31/2008: 7: swans a-swimming
01/01/2009: 8: maids a-milking
01/02/2009: 9: ladies dancing
01/03/2009: 10: lords a-leaping
01/04/2009: 11: pipers piping
01/05/2009: 12: drummers drumming

So now, I know which traditional gift is appropriate for which date.

If my blogging is slow over the next couple weeks, it’s because this geekette spends her time making cookies, of the non-HTTP type. I will be spending time away from the computer and with family and friends. I will also be preparing for CodeMash. If you are going to be there, come say “hi”! I hope to see many of you there!

So to those of my readers who celebrate the various holidays this season, have a safe and enjoyable holiday season!

IronPython 2.0 Released and Other IPy Thoughts…

The big announcement came earlier this week – IronPython 2.0 is now released to the world. Check out the IronPython 2.0 Release Notes to see the changes.

In less than a month, I will be showing off IronPython in my “Pumping Iron into Python: Intro to FePy” talk at CodeMash. Coming from a mixed background, I’m hoping that I can show off the features of IronPython and what FePy can add to those who may not have a Windows background.

If you’re interested in IronPython and are on Twitter, join the IronPython Twitter Group, and let’s get a better way of seeing who all is using this language! I know that DevHawk is a prolific IronPython Twitterer, but there have got to be others. I’m sure there are other IronPython people out there wondering the same thing, so let’s see who else is out there!