Wednesday, August 15, 2007
It's time to get back to functional programming with C# 2.0. This time, I look at how the technique of "currying" fits into the picture.
posted on Wednesday, August 15, 2007 2:35:46 PM (Eastern Standard Time, UTC-05:00)  #    Comments [7]

kick it on DotNetKicks.com
 Tuesday, August 14, 2007
Warning: GEEK ALERT! The following content may contain language that will fill the reader with an involuntary desire to purchase and read comic books, move into their parents' basement, and wear black T-shirts containing copyright-infringing images or stereotype-perpetrating text, possibly indicating that "Han Shot First." Other side effects may include near-sightedness, uncontrollable acne, and an inability to communicate with the opposite sex. Some readers have also indicated an inexplicable desire to be referred to as "the Dungeon Master." You've been warned...

I recently returned home from Wizard World Chicago. For those of you who are unfamiliar with it, Wizard World is an annual pop culture convention that tours several major cities in the US. The conference entails all manner of geek fetishes such as collectable toys, table-top gaming and anime, but the biggest emphasis is on comic books. Attendance at the conference is usually very high. I'm not certain what the final number of attendees was this year, but last year it was around 58,000. If you compare that with this year's Microsoft Tech Ed attendance of 13,000, you'll quickly realize that Wizard World is truly wall-to-wall geek.

Because there are so many people at Wizard World, my trophy wife and I spent $300 to get two VIP passes. This might seem excessive, but the benefits are pretty sweet:

  • Extra swag. At registration, we received several cool items including 9.8 CGC graded copies of Captain America #25 (the issue where Captain America dies).
  • Early entrance. On Friday and Saturday, VIPs were admitted to the conference floor at 9 a.m., before any other attendees. This allows VIPs to be the first to get conference exclusives and to be at the front of the line to get autographs or sketches from comic creators. Early admittance had another huge benefit that I'll talk about shortly.
  • Exclusive signings. For every scheduled signing by a comic creator there was an additional signing only for VIPs.

Purchasing the VIP passes turned out to be a great investment because they helped us to attend a very important event. On Friday, DC announced that they would be giving out wrist bands early Saturday morning which would provide access to a special panel on Saturday evening presented by DC and Warner Bros. There was a limited number of seats available, and they would be given out on a first-come-first-served basis. As VIPs, this wasn't a problem for us. In fact, our early entrance onto the floor on Saturday ensured that we were among the first to get wrist bands and T-shirts printed with the logo for the next Batman movie, "The Dark Knight." We weren't certain what would happen at this special panel. Currently, "The Dark Knight" is filming in Chicago, so we guessed that there might be a bit of early footage shown. However, when we took our seats later that night with a thousand other geeks, it wasn't clear who might be filling the empty seats at the head table.

Paul Levitz, president of DC, opened the panel with a few words about what was going to happen that evening. After mentioning that there were some surprises for us, he moved quickly to introducing the special guests. Here they are in the order that they were introduced:

  1. David Goyer, screenwriter and comic creator. I'm a big fan of Goyer's work so this was a big "fanboy moment" for me. For the "The Dark Knight," Goyer collaborated with...
  2. Jonah Nolan, screenwriter. Nolan is best-known for his short story "Memento Mori," which is the source material for the excellent film "Memento." After Jonah, Paul introduced...
  3. Gary Oldman, actor. That's right, Gary Frickin' Oldman. At this point, I wet my pants. Next to Oldman sat...
  4. Aaron Eckhart, actor. Eckhart is playing the character of Harvey Dent in the new movie. Next, Batman himself was introduced...
  5. Christian Bale, actor. At this point, my trophy wife wet her pants. Bale got the largest reception of any of the special guests (Oldman was next). He appeared to be quite taken aback by the whole thing. And finally...
  6. Chris Nolan, director. Chris is well-known for such films as "Memento", "The Prestige" and "Batman Begins."

After our initial shock, the panel continued with a Q&A session of which I have no memory. Seriously. It was a completely blur. Fortunately, you can read a transcript here if you're interested.

Next up was the movie footage. They showed us a few minutes of quick scene flashes which were a bit rough since the movie is still filming. There were some exciting shots of Heath Ledger as the Joker getting his butt royally kicked. The footage ended with a big surprise which revealed that Two-Face would make an appearance in the film.

I'm still a bit dazed from the panel (Gary Frickin' Oldman!) but a lot of other great stuff went on at Wizard World. If anyone is interested, I'll post some more stories. However, for the moment, I return you to your regularly scheduled technical blog.

posted on Tuesday, August 14, 2007 9:51:57 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]

kick it on DotNetKicks.com
 Wednesday, August 01, 2007
I recently got a comment from a reader thanking me for my blog content (which was nice) and then tweaking me because he couldn't find my name until he started reading the comments. Grrr... What's wrong man? Can't you see it there in the fine print of the copyright text at the very bottom of the sidebar?

OK, maybe that's not so obvious, and I suppose that my readership has grown a little beyond my immediate friends and colleagues. For those of you who are interested, here is the obligatory bio page.

On April 10, 1975, I was born Dustin Russell Campbell in Findlay, Ohio and spent my early years on a steady diet of Star Wars and text adventure games. Fortunately, my father always had a deep interest in computers so there was always some sort of machine around the house. In fact, we owned one of the first TRS-80 Model I machines in the city. MY first computer was a Commodore VIC-20 (eventually graduating to a Commodore 64) on which I became interested in programming (in BASIC of course!). We purcharsed our first PC in 1986-87, and I immediately fell in love.

Junior high and high school were turbulant times for me. In 1987, for the same reasons that most boys do (chicks and dough), I took up guitar. To my mother's shame, I gravitated towards hard rock and heavy metal. I was always that kid in the back of the honors classes with long hair and a Metallica T-shirt. You know the one. (I have pictures, but I'm not showing.) However, it wasn't always black T-shirts and loud guitars. I also played the viola from fourth grade all the way into college. So, even throughout a period of heavy teenage angst, I found enjoyment in many other styles of music (e.g. classical, jazz, etc.).

After high school, I had two choices of career to pursue in college: computer science or music. At the time, music was more attractive (chicks and dough, remember?), so I entered Bowling Green State University in the Fall of 1993 as a Guitar Performance major with a jazz emphasis. That's right dear readers, I went to college for jazz guitar and studied with the masterful Chris Buzzelli. It might surprise some of you to learn that, at BGSU, this is one of the hardest music degrees to get. In fact, out of the 16 guitarists that started with me, I was the only one to earn the degree.

Throughout college, I made ends meet by doing various odd jobs (programming, support, whatever...) for my father's fledgling software firm. He eventually converted me from Visual Basic 6 to Borland Delphi, with which I learned proper object-oriented programming skills.

In August of 1998, I finally graduated with my Bachelor's in Guitar Performance and had no idea what I wanted to do. Programming was certainly a draw, but I wasn't particularly interested in joining the Geek Squad just yet. So, I re-enrolled at BGSU as a graduate student in Guitar Performance. To help pay my way, I took a graduate assistantship as the College of Musical Arts' web developer. I stayed in school for one more year and then dropped out because my interests had shifted. I just didn't have the same passion for music that I had for computers and technology. (It turned out that "chicks and dough" was a myth.)

After dropping out, I stayed on as the web developer and continued programming for my father. It wasn't glorious, but it was fun and I earned a reasonable living.

Eventually, I started using CodeRush for Delphi and developed a friendship with its creator, Mark Miller. In the Spring of 2003, Mark contacted me and asked if I had been working in C# yet. He further elaborated that he was working on a super-secret project and needed me to join him in Las Vegas for a couple of weeks. At this time, I had only been married for a few months, but my trophy wife was gracious and told me to go. When I arrived in Vegas, Mark informed me that Developer Express was aquiring his company and all of his products, including CodeRush. We would be working on the new CodeRush for Visual Studio. I continued on the product as an independent contractor throughout the summer and joined Developer Express as a full-time employee in September of 2003.

Currently, I am the Lead Developer for the IDE Tools division at Developer Express. My responsibilities include much of the low-level plumbing for the DXCore, CodeRush and Refactor! products. I am passionate about becoming a better developer and spend a great deal of my free time learning new technologies. In addition, I enjoy speaking on a variety topics whenever I can get anyone to sit still long enough. For my contributions to the C# community, I was awarded with Microsoft MVP status in April of 2007.

There's more to come—of that I'm certain.

posted on Wednesday, August 01, 2007 10:28:33 AM (Eastern Standard Time, UTC-05:00)  #    Comments [5]

kick it on DotNetKicks.com
 Tuesday, July 31, 2007
...I've moved to new web hosting. The good folks at ORCS Web, Inc. are now hosting my blog. If you are in need of professional web hosting supported by a helpful staff, you should definitely check them out.

In addition, I've upgraded to dasBlog 1.9.7 and found the experience to be quite painless.

posted on Tuesday, July 31, 2007 6:26:31 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]

kick it on DotNetKicks.com
 Wednesday, June 27, 2007
This time, I briefly look at how to use methods available to C# 3.0 that are equivalent to Filter, Map and Reduce.
posted on Wednesday, June 27, 2007 2:54:58 PM (Eastern Standard Time, UTC-05:00)  #    Comments [6]

kick it on DotNetKicks.com
 Thursday, June 21, 2007
After a long break, it's time to return to my informal series of articles on functional programming concepts using only C# 2.0. This time, I'm looking at the idea of higher-order functions and how to implement Map, Filter and Reduce.
posted on Thursday, June 21, 2007 11:37:03 AM (Eastern Standard Time, UTC-05:00)  #    Comments [4]

kick it on DotNetKicks.com
 Saturday, June 09, 2007
This week at Tech Ed, Microsoft announced that the official name of Visual Studio Code Name "Orcas" would be Visual Studio 2008. It seems clear to me from the current beta release that a 2007 ship date is probably within reach. Is the 2008 moniker simply for insurance?

posted on Saturday, June 09, 2007 7:27:03 AM (Eastern Standard Time, UTC-05:00)  #    Comments [4]

kick it on DotNetKicks.com
 Thursday, May 31, 2007
I'm getting this post up just in time to have at least one entry for the month of May. Work has simply been a whirlwind and my blogging duties have been put on hold until post-Tech Ed. I have several articles in a nearly-finished state that I hope to complete in June so stay tuned...

If you're like me, you struggle daily with running iTunes on Windows Vista. OK, most of you probably aren't like me. You are likely far wiser and realized long ago that this is a fruitless exercise. Being stubborn, I dutifully load up each morning iTunes and check to see if Apple has finally released the update that they've been sitting on for so long. Today, after months of frustration, I wasn't disappointed.

iTunes UApple released iTunes 7.2 without much fanfare. This update includes important compatibility fixes for Windows Vista (most notably the painting of the main window is faster) and Apple's new iTunes Plus format for higher-quality, DRM-free music and video. This is very exciting stuff but the feature that I find even most interesting was added a bit more quietly: iTunes U.

iTunes U provides access within iTunes to recorded lectures from several major universities (e.g. MIT, Stanford, UC Berkeley, etc.). Some universities have more offerings than others, but there are plenty of computer science and mathematics lectures available for the nerdiest among us. Need a refresher on algorithms? Try MIT's Introduction to Algorithms course. Looking for more general lectures on programming? Download UC Berkeley's Structure and Interpretation of Computer Programs.

Of course, the best feature of iTunes U is that it's free!

Truthfully, the content that iTunes U offers is not new. MIT, for example, has offered course downloads for several years. However, making the resources available from iTunes greatly extends their reach and gives me one more way to put my iPod to good use.

posted on Thursday, May 31, 2007 12:15:13 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]

kick it on DotNetKicks.com