<%@ Page MasterPageFile="~/Blankenthoughts.master" Title="Blankenthoughts" %>

Tuesday, July 29, 2008

So I've heard the bad press. I've seen the pc vs. mac ads. I've heard my friends' complaints about crashing, security, and speed.

That's why I'm moving to Windows Mojave. It seems Microsoft finally got an OS right.

Check this out:

http://www.mojaveexperiment.com

kick it on DotNetKicks.com

Labels: , , , ,

posted by Jeff Blankenburg, 1:39 PM | link | 21 comments |

Thursday, July 10, 2008

So I was wandering around the Microsoft Research site, and happened upon something I had not heard of before: Asirra. It's a new model for a CAPTCHA test, and it seems to be pretty simple to implement.

For those of you not familiar with the term CAPTCHA, it stands for "Completely Automated Public Turing test to tell Computers and Humans Apart." You've certainly seen them before on sites like Ticketmaster, where you're asked to enter some characters that are all skewed and blurry in an image. Here some examples:



The basic idea behind it is simple. You need a test that a human can pass, but that software cannot. Imagine if Ticketmaster DIDN'T have a CAPTCHA challenge on their site. When baseball tickets went on sale, or seats to the Radiohead concert become available, a scalper could fire up his software, buy ALL of the tickets, and then re-sell them at a significant profit somewhere else. You wouldn't have a chance.

But, by enforcing a CAPTCHA challenge, that scalper is only able to buy tickets in small quantities (maybe 10) at a time, before he's forced to visually interpret some data that only a human can read. A computer has a serious challenge in reading text that has been skewed accurately.

Enter Asirra. While only a project of the Microsoft Research team, it IS available for public consumption. It also challenges the idea that a CAPTCHA challenge needs to be letters and numbers that are jumbled up to be unreadable by optical character recognition (OCR) software. Instead, it presents you with a set of 12 images. They're all pictures of animals. It's up the human to determine which ones are cats. With over 3 million images currently available, and a database that grows in size by roughly 10,000 images per day, there's a good chance you'll never even see the same pictures twice. I've included an example of it on this page, but it's not part of a form, so it's just for display purposes. A link to a working sample of mine is in the next paragraph.





Using some simple javascript and a few lines of C#, I have built a page that demonstrates this powerful tool for keeping your site from being exploited. You can see the Asirra CAPTCHA in C# action here. Also important to note is that they have also provided this tool with code samples for using it with Python, PHP, C#, VB, JScript, and Perl. This is not tied to any Microsoft-specific tools or languages. In fact, the web service that runs the challenge is actually written in Python. My sample code running in C# can be downloaded here.

On top of the technical problem that this solves, it's also good for the pet community. All of the images come from PetFinder.com, and all of those animals are unwanted, but perfectly lovable animals in need of a home. Exposing their pictures and profiles to a larger audience can only help to find a place for some of these needy animals to live. I think these kinds of solutions have a certain elegance that you don't see much in software.

kick it on DotNetKicks.com

Labels: , , , ,

posted by Jeff Blankenburg, 9:11 AM | link | 8 comments |

Tuesday, July 08, 2008

I just took a look at my calendar, and I'm going to be busy for the next few months. Here's an overview of where I'll be. If you're gonna be nearby, make sure to stop and say Hi.

Ann Arbor Give Camp
July 11 - 13 (Columbus, OH)

Northwest Ohio .NET User Group
presenting "Cool Stuff from Microsoft"
July 15 (Toledo, OH)

Microsoft TechReady
July 25 - August 2 (Redmond, WA)

CodeStock
August 9 (Knoxville, TN)

eRubyCon
August 15-17 (Coumbus, OH)

DevLink
presenting on Silverlight 2.0 and Visual Studio 2008
August 22-23 (Nashville, TN)

MS Team Offsite
August 25-27 (Chicago, IL)

Labels: , ,

posted by Jeff Blankenburg, 5:04 PM | link | 0 comments |

Tuesday, June 24, 2008

I like speaking in public. I really enjoy it. But it's been far too long since I've done it. And my next scheduled talk isn't until the end of August, at DevLink.

I'm posting this message to let the world know that I'm ready to get back in the game. Please contact me at jeffrey.blankenburg@microsoft.com if you would like me to come talk to your developers, whether that's internal to your company, or at a user group in your community. I will do my best to accomodate all requests. I've got several new talks ready, as well as a few older favorites that audiences enjoy.

Here they are:

* Building Next Generation Web Apps With Visual Studio 2008
This talk is an overview of Visual Studio 2008 and some of the great new features it has to offer. This includes tools and techniques ranging from the Split view design pane to effectively using LINQ.

* Silverlight 101: The Basics
This talk really is an introduction. We'll talk about XAML, build a basic application, and show the integration with Expression Blend. I would recommend this for any group that wants to get their feet wet with Silverlight.

* Silverlight 301: Way More Than A Spinning Button
In this talk, we will learn how to build a Silverlight application that talks to a SQL server through a WCF web service. We will render the content in a visually appealing way using XAML. And if you ask nicely, I'll even spin a button for ya.

* Cool Microsoft Stuff: The Technologies You Have To Try
This is an overview of some of the amazing things Microsoft is working on behind the scenes. Some of them are available in beta form, but you're guaranteed to see something you've never seen before. This includes technologies like Photosynth, Deep Zoom, and Live Mesh.

* XNA Anyone?
This talk will walk you through the basics of game development using XNA as the platform. We will also talk about game development for the Zune.

Labels: , , , , ,

posted by Jeff Blankenburg, 10:21 AM | link | 0 comments |

Thursday, June 19, 2008

Today I'm going to show how to create a simple WCF service, and consume it from a Silverlight application. This is something you are going to need to do quite often, and if for no other reason, I am documenting this here so that I have it as a reference.

The first thing we need to do is create a Silverlight application. (In order to have all of the Silverlight 2 prerequisites, make sure you visit this page.)

1) I'm going to start from the beginning. First, we need to create a new Silverlight project. I'm naming mine JBWCFService.

Creating a new Silverlight project

2) We will then be prompted to create a web project to accompany our Silverlight project. I choose a Web Application Project from the dropdown.



3) Here is a view of what my solution explorer looks like after the projects are created. I have a Silverlight project called JBWCFService and a Web Application project called JBWCFServiceWeb, not surprisingly.



4) Next, I want to create a SQL database from which to get my data from. I'm not going to walk through all the steps of adding tables, columns, and data. You can certainly find that elsewhere. Here's my adding the SQL database to my project though...



5) OK, it's time to create our service. I'm naming my service MyNewService. It's just another thing to add to our project, so here we go:



6) Once the new service has been created, you will have a few new files in your project. In my case, they are named IMyNewService.cs, MyNewService.svc, and its code-behind, MyNewService.svc.cs. By default, the interface (IMyNewService.cs) will be open and ready for editing. They create a DoWork() method for you, but we're going to delete that and do something more interesting in a little while. First, we need to get LINQ up and running against our data. I am naming mine LINQClasses.



7) In addition to adding the class files necessary, this will also open the LINQ design surface by default. We can just drag items from our data structure right to the left half of the surface, creating ORM class structures that represent our data. In my example, I only have one table, profile, but we can do this for all of our tables, and stored procedures can be dragged to the right half of the surface, creating methods. I have already dragged my table over in the next screenshot (click to enlarge).



8) We also want to make sure that our data is unidirectionally serializable (I like big words). By clicking on the design surface (not one of the table boxes), you can get to the properties of the DataContext, and change the Serialization Mode to "Unidirectional."



9) Now we need our Silverlight project to become aware of our WCF service running in the web application project. To do this, we just need to add a new service reference to the Silverlight project. Click the "Discover" button to find it automatically. This will also automatically spin up a web server for your service to run in. I named my service reference MyNewServiceReference.



10) Ready to write some code? To this point, everything has been handled automatically for us. Now we have to get our hands dirty. Let's go back to our Service interface (IMyNewService.cs). In there, let's get rid of that DoWork() method. Instead, our method is going to return a List of profiles from the database, based on our new classes that were created for us. Because this is an interface, we don't define the actual functionality of the method here, just it's signature. I named my method GetProfilesByLastName.



11) Ok, that was exhausting. Let's have the IDE write some more code for us now. Let's open the code-behind file for MyNewService.svc (MyNewService.svc.cs). You can see that it inherits from the interface we just defined, so right click on the name of the interface, and have it implement the interface for you.



12) Now you've got the shell for the method. We just need to tell this method what to do. Here's where the LINQ comes into play. We need to get a reference to our DataContext from earlier, and then I wrote a simple query to retrieve names from the database based on a last name query. Finally, we return our list of data.



13) Each time we update our service, we will need to update our service reference in the Silverlight project, so that it sees our new methods. Just right click on the service reference and choose "Update Service Reference." Also, we have one small change we need to make to our web.config file as well. If you've been following the instructions, then you can scroll down to the bottom of your web.config and look for the <endpoint binding="wsHttpBinding" /> property. Silverlight only currently supports basicHttpBinding, so we need to change it to that.



14) Next, we need to add one more reference to our Silverlight project before we can finally start working with the XAML. We need to add a reference to System.Windows.Controls.Data so that we can use the DataGrid control in our interface.



15) XAML time. Kinda. We need to include that reference as a namespace in our Page.xaml document. OK, now we can add some controls to our page. I also added a Button, a TextBox, and a DataGrid, inside a couple of StackPanels, for layout purposes.



16) Now, we need to call that method in our service and populate that grid. The first thing we need to do is instantiate our ServiceClient. Now, since we are calling this service asynchronously, we also need to set up an event handler to know when our data has returned so that we can update the DataGrid. There's an excellent bit of shorthand for creating this code automatically. My screenshot shows all of the code I will need, but for the line that starts:

sc.GetProfilesByLastName +=

I only actually typed what is above. After that, I pressed the Tab key twice. The first press of Tab actually finishes out my EventHandler statement. The second Tab press creates my EventHandler method, so that I can add the guts. Finally in my Button_Click method, I need to call the GetProfilesByLastName asynchronously, passing in the value from my TextBox, named DataEntry.



17) The last little touch we need to put on this application is the actual binding of the data to our DataGrid, and we'll do that in the new EventHandler method that was created for us. There's just one line of code in the method:

DataGrid.ItemsSource = e.Result;



So, there you have it. We've created a WCF service that uses LINQ to talk to a SQL server, and a Silverlight 2 application that consumes that service and renders the result. Not bad for 17 steps, and only a few lines of code.

Click here to download the solution files.

Labels: , , , , , , ,

posted by Jeff Blankenburg, 11:34 AM | link | 8 comments |

Friday, June 06, 2008

(See Part 1 and Part 2 first...)

In the third and final installment of this series on Silverlight Layout, we are going to be discussing my preferred option for interface creation: The Grid. In many ways, I would compare this to table based layout in HTML (which is generally a bad word), but I will come to its defense in Silverlight today.

There are many reasons why table-based layouts should not be used in HTML. A few of them are:

1) Tables are very heavy. With all of the <tr> and <td> tags you need, the page bloats quickly.

2) CSS is the right way to do it. Once you harness the power of CSS, you have far greater control of your layout (not to mention accessibility) than you do with tables.

3) Tables are very difficult to manipulate once they are in place. If you've ever tried to move things around in a legacy table layout, you know what I'm talking about.

The reason I am recommending this type of layout is because those problems have been addressed in Silverlight with the <Grid>. So let's take a look at the code.



You'll notice that this doesn't really look like HTML table layout that you've seen in the past. Instead, we've seperated (still in the same file, mind you) the content from the layout. We don't have to wrap each element in a set of table tags. We define a grid, and then we assign each element to a cell of that grid. I've also turned on the ShowGridLines attribute, so we can see exactly what the grid looks like. We can also assign height and width values to the cells of the grid, up to and including the wildcard "*" character. This tells the application to use the rest of the remaining space for that cell. If you have more than one wildcard cell, it will split the unclaimed space evenly between them. Please note that the grid starts with 0,0, not 1,1. So our Red Rectangle is assigned to Grid.Cell="0" and Grid.Row="0" which puts it in the top left corner. Each of the respective rectangles after that is assigned to their respective grid location as well. The design pane of Visual Studio 2008 looks like this with the XAML I just used:



You'll notice that the Black rectangle is missing. That is the one assigned to the wildcard space. In the design pane, there's not a Canvas width and height defined. In the XAML, I did not specify a width and height for my Grid. This causes it to fill the entire space of the window it is rendered in. When we run the application, however, you'll see that the black box is, in fact, there, and takes up the rest of your browser window.

In my next post, I will talk about using templates to create "styles" that can be reused by your XAML elements.

Labels: , , , , , , ,

posted by Jeff Blankenburg, 8:36 AM | link | 0 comments |
(See Part 1 first...)

Today we are looking at a second way to lay out your interface in Silverlight. This will be far more familiar to the CSS fanatics out there. The primary concept is simple...we'll be using a StackPanel control to position our elements.

For those of you less familiar with CSS, this is more of a flow-based layout. As the size of the Silverlight container grows and shrinks, you will find that the elements will move to accomodate that space. I, personally, would not recommend approaching your entire interface with this technique, but it certainly makes sense for small portions, like navigations and lists of data.

Most of our positions will be determined by manipulating the margins of the individual elements on the page. In doing so, we can place our elements specific distances apart without having to specify their exact position on that page.

In the example below, I have 6 buttons that I want to arrange in a 3x2 block. I start with an outer stack panel that, by default, will stack my elements vertically. However, I want to have two rows of 3 buttons each, so I am going to nest two more stack panels. Each of these will have the Orientation attribute of the StackPanel set to Horizontal, to create the rows.



For demonstration purposes, I also modified the margins of a few of the buttons, just to show that we are merely stacking these elements. This is not a grid, or table, and certainly not absolute positioning. These elements are merely stacked, either horizontally or vertically, with margins as the leverage to move things around a bit.

NOTE: I have a major complaint about how margins were implemented in Silverlight.

Again, for those of you familiar with CSS, the de-facto standard for specifying margin sizes was one of two formats:

margin-left:10px;
margin-right:10px;
etc.

OR

margin:0 10px 0 10px;

Each of those examples would have given you a 10 pixel margin on both the left and right of the element you were styling. In the second example, we are using a bit of shorthand to specify ALL of the margins in one line. They start with the top, and go clockwise. margin:Top Right Bottom Left;

In the margin implementation for Silverlight, it would appear that they also offer a shorthand version for margins (actually, the only version is shorthand), and they did not follow the standard convention mentioned above. Instead, they chose to use Margin="Left, Top, Right, Bottom". I've not yet talked with the team to see why this convention was chosen over something more familiar to developers, but if I can find an answer, I will post it here.

(continue to Part 3...)

Labels: , , , , ,

posted by Jeff Blankenburg, 8:35 AM | link | 2 comments |

Tuesday, May 27, 2008

40 days ago, my wife and I welcomed a new child into the world. Miles Robert Blankenburg was 8 lbs. 10 oz. and 19" long (tall?). On that day (April 16), I started my very generous paternity leave from Microsoft.

Prior to Miles joining us, I had aspirations for what I would do with all of this time. First and foremost, I would be able to completely focus on my family. But certainly there would be some time left over to work on a coding project or two, right? Maybe I'll now have the focus to lose some weight? Maybe I can finally catch up on some of the landscaping I've been putting off?

I'm here to report that family is ALL that I focused on (that's the right thing, right?). I actually gained two pounds. And as this blog, my email, Twitter, my fantasy baseball team, and dozens of other sites will attest, I have almost not touched a computer during that time. Sure, I checked the weather a couple of times, and looked up some sports scores, but that would pretty much be the extent of it. It's weird. I feel like I've gone through some sort of 12-step program. The first few days, I tried bringing the baby into my office so that I could get online. But that became harder and harder. Slowly, I weened myself off of the computer entirely. Not because I wanted to, but because it seemed unnecessary during what was supposed to be family time. This past week, I've almost not been interested in using a computer. But now that I'm back to work (and let's be honest, I'm ready to be back), I feel like a smoker who quit, only to go through an entire pack in an evening. Today will probably be very scatterbrained, surfing everywhere and accomplishing nothing.

My corporate network password has expired, so I've got that interesting challenge to overcome this morning. I've got a full inbox to go through (once I get network access, of course) and start responding to. In short, I'm probably going to spend this week catching up on what you've all been doing for the last 40 days.

So, what did you do in the last 40 days?

Here's a list of the things I know I missed (what an amazing 40 days it's been in the Heartland!)

05/10/08 - West Michigan Day of .NET
05/17/08 - Cleveland Day of .NET
A number of new specialized user groups have sprung up, but I will write a new post outlining these later this week.

Labels: , ,

posted by Jeff Blankenburg, 8:21 AM | link | 2 comments |

Sunday, March 23, 2008

I had an opportunity to really get out and meet a great deal of the northern contingent of the Heartland district the past two weeks, and many of you have been asking for my slide deck for reference. The title of the talk was:

"Reach End Users With Next Generation Web Applications"

Here's a link to the slide deck.

I'll write more once this crazy road trip is over!

Labels: , ,

posted by Jeff Blankenburg, 4:01 PM | link | 1 comments |

Wednesday, March 05, 2008

Dean Hachamovich - General Manager, Internet Explorer

1. CSS 2.1 - incompatibilities are detrimental to developer progress. IE 8 seems to WORK! Interoperabilities are core. We've provided 702 test cases to the W3C for CSS standards testing. IE8 will interpret web-standards as precisely as can be interpreted.
2. CSS Certification
3. Performance - modern sites rely heavily on script. IE 8 is performing as well as Firefox and Safari, and it's not done. The Back Button, with AJAX, is currently broken. IE 8 gives that power to the developer, so that Back works the way the user expects it to. Pages can be "connection aware" and change when you lose your connection.
4. HTML 5 Start
5. Developer Tools - in browser debugging of javascript and setting breakpoints, etc. CSS management and review on a LIVE page. Sweetness.
6. Activities - no more cutting and pasting from a web page. highlight, and get a menu with plenty of options like "show on map", look up on ebay, search, etc.
7. WebSlices - save part of a page to the browser, and it updates LIVE when you access it. This is functionality enabled by developers.
8. IE8 Beta 1 is available NOW. http://www.microsoft.com/ie/ie8

Labels: , , , , ,

posted by Jeff Blankenburg, 12:57 PM | link | 4 comments |

Ray Ozzie talking about the "big picture" of Microsoft's development momentum

Advertising is the economic engine for the web.
The internet is the medium for all future technologies. Content is king. Social networking is exploding. Significantly investing in search.

How is the internet shaping and transforming Microsoft's products and services?

  1. The web is a hub. The hub of our technology experiences. There is an explosion of connected devices out there right now.
  2. The power of choice for when businesses embrace the cloud. All MS software will be re-engineered to enable "Server service symmetry." Distributed and federated applications will rise.
  3. We need to embrace small pieces loosely joined. Think SOA. Transparency, standards, and interoperabilty are key. Multi-device development skills are becoming a necessity.

The next five years: everything about software development will change with the impact of the cloud on applications.

Keeps referring to your collection of internet-enabled devices as your " personal device mesh."

Connected Devices: imagine the bi-directional synchronization of all of your devices, with centralized web-based deployment.

Connected Entertainment: individuals will only have to license their media ONCE. And consume that media from all of their devices. Media entertainments services are progressively transforming to share media.

Connected Productivity: office for the PC, office mobile for the phone, office live for the web that will seamlessly integrate together. The web will become an "experience hub." See Office Live Workspace. It will be the hob of our connected productivity strategy. Think Sharepoint, Exchange, etc.

Connected Business: CRM for all, not just the enterprise. Much more to come in 2008. Think Exchange, Sharepoint, and Communicator hosted services. SQL Server data services available to developers in the cloud.

Connected Development: Everything is .NET...ScottGu will expand on this later.

Labels: , , , , ,

posted by Jeff Blankenburg, 12:29 PM | link | 0 comments |

Thursday, February 28, 2008

Tonight at the Columbus .NET Developers Group (CONDG), they are having 8 lightning talks as their presentation. Lightning talks are basically 10-15 minute presentations that go one after another, with 1 minute breaks for setup/teardown.

Here are the subjects that were presented:

Steve Horn - ADO.NET
Matt Casto - Silverlight (consuming ADO.NET)
Amanda Laucher/James Bender - F#
Steve Harman - Rhino Mocks
Brian Sherwin - Log4Net
Jon Kruger - LINQ to SQL
John Vottero - PowerShell 4 Devs

These presentations were also videotaped, and will be made available on the CONDG website.

Also, in the early housekeeping, there were two major announcements made:

1) Brian Prince has accepted the Architect Evangelist role with Microsoft. He'll be working alongside me in the Heartland.

2) Carey Payette was elected the new president of CONDG. Congratulations Carey.

Labels: , , , , , , , , , , ,

posted by Jeff Blankenburg, 6:32 PM | link | 1 comments |

Friday, February 22, 2008

As I hope you'll recall, we had some Visual Studio 2008 Install Fests late last fall. These events sold out in under 48 hours. We gave away 525 disks that could be redeemed for a full version of VS2008 Professional.

I've just heard back from the organization that was running this effort for us, and there's been a surprisingly LOW redemption rate. This is just a friendly reminder to everyone that has a Trial disc and has not gone online to redeem it for their full version.

THAT OFFER EXPIRES ON MONDAY, FEBRUARY 25, 2008!

Please make sure you get yours in. I'd hate to see you miss out on this offer.

Labels: , ,

posted by Jeff Blankenburg, 10:06 AM | link | 9 comments |

Monday, February 18, 2008


For those of you that had the good fortune to get over to one of the Visual Studio 2008 Install Fests we had late last year, today's your day!

The full licensed copy of VS2008 Pro has been mailed, and you should be receiving it as soon as TODAY.

Keep an eye on your mailboxes...

Labels: , ,

posted by Jeff Blankenburg, 1:31 PM | link | 1 comments |

Monday, February 04, 2008


This information will also be going out in the MSDN Flash email, but if you're not subscribed, I wanted to make sure you got it here as well.



ArcReady http://www.arcready.com/
ArcReady is a free half-day series covering the topics important to aspiring and existing software architects.
     Cincinnati 3/3/2008
     Nashville 3/4/2008



DevCares http://www.devcares.com/
DevCares is a FREE half-day technical training series created by Developers for Developers! We’ll address the needs and issues of developers today and show you how to make a real difference in the way that you work!
     Southfield, MI 02/15
     Columbus, OH 02/29


Central Ohio Day of .NET April 19, 2008
The Central Ohio Day of .NET is a joint venture between the Dayton .NET Developers Group, Central Ohio .NET Developers Group and the Cincinnati .NET Users Group. The event originally was called the Cincinnati-Dayton Area Code camp and ran in 2006 and 2007 under that name. With the inclusion of the Columbus group the event has been renamed to the Central Ohio Day of .NET. The event is a FREE day of technology discussions devoted to helping the local development community grow.

Day of .NET events are a series of mini-conferences organized by developers for developers. You can find out more about Day of .NET events, including seeing upcoming events, on the series website at http://www.dodn.org/.





Visual Studio 2008, SQL Server 2008, Windows Server 2008 LAUNCH EVENTS!
     3/13/2008 Cleveland, OH
     3/18/2008 Detroit, MI "Premier Event"
     3/20/2008 Columbus, OH
     4/3/2008 Indianapolis, IN
     4/14/2008 Pittsburgh, PA
     5/1/2008 Nashville, TN
     5/13/2008 Grand Rapids, MI
     5/22/2008 Louisville, KY

Labels: ,

posted by Jeff Blankenburg, 10:29 AM | link | 2 comments |

Wednesday, January 30, 2008

Two days ago, I received an email that really surprised me.

With this job, I am amazed at the people I get to meet. I'm making great friends on a daily basis with some of the smartest people in the Midwest (and the country, if you ask me.)

I do a good amount of speaking, and certainly in Ohio I've done my share lately. With each speaking engagement, I get the chance to leave an impression on a room full of people. Positive or negative, I'm leaving impressions. On Tuesday, I realized how far those impressions travel.

My live.com email address (if you know me, you could guess it) is one I use for places I need a LiveID. I don't really use it for email, or calendar, etc. Just for logging in to sites that require it.

Occasionally (maybe once a month), I'll jump over to the email, just to see if someone might have written me there by mistake. There were 6 messages, 5 of which challenged my masculinity in one way or another. The 6th message though, was from a woman named Paula Caso.

She was contacting me because she teaches at a Cleveland-area high school, and runs the computer club there. They were having a fundraiser, and were building a new computer that they would auction off later this spring. With their allotted budget, they built an amazing machine. High-end gaming system. However, they were short-sighted in their spending. They blew their whole budget on the machine, and forgot to leave something for an operating system. (Before you start talking about free ones, remember that this machine will be auctioned to the public, and Windows is almost certainly a requirement.) Her husband had seen me talk at the Cleveland .NET SIG, and thought she should contact me to see if I could help.

It was her signature line in her email that most intrigued me, however.

(PS: North Olmsted High School is a public 9-12 school on the west side of the Cleveland metropolitan area in Ohio.)

(PSS: Our computer club web site is http://www.nohsteachers.info/PCaso/NOHSCompClub/ -- we maintain our own server, but our site is in need of updating.)


As it turns out, I grew up in North Olmsted, and spent my 4 years of high school at NOHS (as a three-sport athelete, no less). Smallest of worlds. So I'm looking into a way to help them out. And I let her know that. I also gave her a little background on what my role is with Microsoft. I told her that I've been writing/architecting software for the past 10 years, and that now I get to tell everyone about the new, cool things that we're doing at Microsoft.

She immediately asked me if I would be interested in coming to talk to her computer club. Since I will be at the Cleveland .NET SIG on February 12, I told her she could have that entire day, if necessary. She contacted the principal, and got me a small assembly on that day.

They are going to pull math, physics, and computer science students from their classes to come hear what *I* have to say? Whoa. That's flattering. I was expecting 8 kids in a classroom.

Looks like I need to wrap up this post and start writing a presentation.

Labels: , ,

posted by Jeff Blankenburg, 8:51 AM | link | 6 comments |

Tuesday, January 29, 2008



So with my newlyfound Christmas riches, I decided to make a couple of purchases recently for my home office.

1) Microsoft Wireless Entertainment Desktop 8000

2) HP MediaSmart Server EX470

Once my server arrives, I'm sure I'll have a blog post about it. But today's post is about the WED 8000.

First, let me say that the mouse and keyboard work EXCELLENTLY. In fact, I love them. The keyboard is wireless, bluetooth, and BACKLIT. The backlighting comes on as I approach the desk. For a guy that likes to work in the dark, that's a huge plus. It's even got a trackpad (like a laptop) on the keyboard, for when you're leaning back in your chair. Just awesome.

The mouse has what seems like 74 buttons, all configurable. 4 direction scroll wheel...basically everything you've ever heard of in a mouse is there. And it's bluetooth as well.

They both charge on a dock. The dock has 4 USB ports, in case you need to plug other stuff in, and it also is the Bluetooth receiver. This was the cool part of my installation experience. I got everything set up, and it immediately told me that "your device is locked. Unlock your device to connect via Bluetooth." I disregarded the error, since the keyboard and mouse don't have locks. Then I realized what had happened. It was trying to connect to my Palm Treo 700wx in my pocket. Once I unlocked the phone, it immediately connected and allowed me to sync with the computer. Goodbye phone dock.


Now to the appearance of the set. Brushed aluminum. Beautiful. Could be the centerpiece of my desktop. I've been using the mouse for about two weeks now, and every time I walk to my desk, I can't help but notice how pretty this stuff looks.

That's when the trouble begins. This morning, while catching up on email, something stabs me on my wrist. I look down to see a small, roundish fleck of metal. I look around to see where it could have come from, but my desk is messy, so it could have just been laying there. About twenty minutes later, though, I get another stab in the wrist. Another very similar little fleck. As I pull my hand up, I now figure out where these are coming from. On the bottom end of the mouse, the Microsoft logo is there in shiny silver metal foil. Running my finger over it, there are almost no edges. But it now reads: Microso.



They put foil letters right in the place where your hand not only contacts the mouse, but probably where it shifts the most as well. I'm enamoured with this mouse and keyboard, but it just feels a little "ruined" now. I'll certainly get over it, but I just want to know...did anyone use this thing before is was packaged and shipped to stores?

Labels: , ,

posted by Jeff Blankenburg, 10:28 AM | link | 4 comments |

Monday, January 28, 2008


JUXtapose - Episode 3: Popfly - Creating Your First Mashup
JUXtapose - Episode 3: Popfly - Creating Your First Mashup

Labels: , , , ,

posted by Jeff Blankenburg, 3:49 PM | link | 0 comments |

Wednesday, December 05, 2007



This evening, Yahoo! Messenger for Windows Vista went live. You can download the software here. You can read the official release information at the Yahoo! Messenger Blog.

You can skin it.

You can tab it.

You can scale it.

Today, it is one of the largest applications available that is built in WPF. The application is all .NET 3.0 built on top of an unmanagaged legacy layer of code. The bridge is a mixed-mode C++ DLL. These together provide a WPF-friendly data model to the unmanaged code portions.

I think it will set the trend for the next generation of messaging applications. In addition to just looking cool, it's also compatible with MSN Messenger. So you can talk to all of your MSN buddies using this client as well. Now if they would just all play nicely, we'd finally be getting where we need to be.

GTalk, MSN, Yahoo!, AIM, Jabber, etc. Can't we all just get along?

Labels: , , ,

posted by Jeff Blankenburg, 11:48 PM | link | 0 comments |

Tuesday, November 27, 2007



So some of you may have heard rumblings about some piece of software being released recently, and some of you even chided me for not having a super mega blog announcement about it.

Visual Studio 2008 has RTMed!


Now, in other news, we have put together a few events to give away copies of Visual Studio 2008 Pro to y'all. (I'm currently in Texas...my apologies.)

We will be holding a Holiday Bowl-O-Rama & InstallFest event in Nashville, TN on December 3rd, and another one in Detroit, MI on December 7th. These events MUST be registered for in order to get the free bits, so here's the links to these events:

Nashville, TN - December 3
Detroit, MI - December 7

We will be handing out Visual Studio 2008 Pro (90-day trial) disks to everyone that attends. However, we are only able to give away a full version (available in early 2008) to those individuals that register using the links above, AND attend. Registration alone is not going to be enough.

As some of you loyal readers know, I went bowling a few weeks ago, and declared myself the best bowler that reads this blog. This is your opportunity to prove me wrong. These events will be held at bowling alleys, and we'll be picking up the costs of bowling and shoes, and food will be provided as well. All you need to do is show up, and hurl that ball down the alley.

If you can beat my 2-game average, I will have a special gift for you. (This is above and beyond the Visual Studio software you're going to receive). I'm not going to be promoting this contest at the events, so you'll have to come find me with your proof of score. It's one of the many benefits of being a regular reader of this blog.

So, go register for your event. Tell your colleages to register. It's gonna be a blast. We'll also have XBoxes with Guitar Hero III and Halo 3 available for playing.

Labels: , , ,

posted by Jeff Blankenburg, 10:13 AM | link | 6 comments |

Friday, November 09, 2007


1) Keynotes by Steve Ballmer and Scott Guthrie.
2) 3-4 days in Las Vegas, at the Venetian Hotel and Casino.
3) An opportunity to immerse yourself in the technologies that make up "The Next Web," and participate in a 72-hour conversation about the future of web technologies.

OK, since I'm sure that list appeals to very few of you, I'll be brief.

I'm describing Microsoft's MIX 2008 conference. I had the good fortune to attend last year, as an attendee, and had an amazing time. Silverlight was announced, for one. I had an opportunity to meet some incredible speakers, technologists, and Microsoft influentials those days. I had an opportunity to give over $200 of my own, hard-earned money to complete strangers at the poker tables.

In short, it was the best conference I have been to. My expectations are riding pretty high that v2008 will not disappoint. With that, registration is now open.

So, mull it over with your Manager. Blackmail your Boss.* Persuade your Project Manager. Discuss it with your Director. I'd love to have a posse to hang with in Vegas this year.

Are you going? Let me know!


* I do not, in any way, actually endorse blackmailing anyone. Please take it for the alliteration it was meant to provide, and nothing more.

Labels: , , ,

posted by Jeff Blankenburg, 9:36 AM | link | 1 comments |

Wednesday, November 07, 2007

So for those of you I haven't already told...

Live.com email addresses and accounts are now available. Here's the steps you need to take:

1) Go to any "Passport" site and sign out. I recommend http://www.passport.com.

2) Go to http://get.live.com/getlive/overview and create your new Live account.

You're all set! "But Jeff, wait a second...how does that help me? If I want to use this for Messenger, etc., how do I do that easily?"

Here's the rest of the steps:

3) Go back to http://www.passport.com.

4) Sign in with either your new @live.com address, or your old Passport address.

5) Click on the "Settings" section on the left side of the page.

6) Click on "Linked IDs" in the Other Accounts section.

7) Click "Link an existing Windows Live ID"

8) Enter the password for the account you're logged in as, and the email and password for the account you want to link up. Here's more information on linking IDs.

9) Only a few steps left...go to MSN Messenger, and log in as your "old" account. In the Menu Bar, choose Contacts > Save Instant Messaging Contacts.

10) Save the file to your desktop or something.

11) Log out of messenger.

12) Log into messenger with the new account credentials.

13) Choose Contacts > Import Instant Messaging Contacts... and choose the new file we created from your desktop.

14) Change your tagline for a few days to let your messaging contacts know that you're now on their list twice, and that they can delete the "old" account. For example, my tagline currently reads: "I'm on your list twice. Delete the HOTMAIL one."

Ta-da! You now are using a new @live.com address, and you have access to all of your old settings, etc. that you had through your old passport account!

Labels: , ,

posted by Jeff Blankenburg, 11:06 AM | link | 2 comments |

Monday, November 05, 2007



JUXtapose - Episode 2: ComponentOne Sapphire Interviews
JUXtapose - Episode 2: ComponentOne Sapphire Interviews


Oh, and the timing is perfect...they just released the Alpha version of Sapphire today. Just register on their site, and download the installer!

http://labs.componentone.com/Sapphire/

Labels: , , , , ,

posted by Jeff Blankenburg, 12:03 PM | link | 0 comments |

Friday, November 02, 2007

Labels: , , ,

posted by Jeff Blankenburg, 1:27 PM | link | 4 comments |

So I'm sure I'll be posting these everywhere, but I want my blog to at least be the starting place.

JUXtapose is the name of my new webcast series, and it will be primarily focused on the technologies I am most passionate about. This includes user interface technologies like Silverlight and WPF, as well as more general stuff like Javascript and CSS. It will also feature interviews from notable (and soon to be notable) developers in the field that have an opinion to lend on user experience.

The name JUXtapose comes from the subtitle: Jeff on User Experience.

Please leave comments, I'd love your initial thoughts on this, as well as recommendations and volunteerism for future shows.

Labels: , , , ,

posted by Jeff Blankenburg, 1:12 PM | link | 4 comments |

Friday, October 26, 2007

I had an opportunity to speak at the October CONDG meeting last night, and had a great crowd. It was a great talk on Silverlight and some of the other cool things that Microsoft is up to, including Popfly, Surface, and Photosynth.

We also cleaned out the "swag closet," giving away a total of 16 items. This included some rubberized, roll-up keyboards (for typing in the bathtub), some 32MB flash drives, some 128MB flash drives, a few books, and a copy of Vista (congrats to Aaron Ponzani!).

Included in this post are links to the slide decks and demos that I used during the presentation.

Thanks to everyone that attended!

Silverlight 301 Deck & Demos

Innovative Microsoft Stuff Slide Deck

Labels: , , , , ,

posted by Jeff Blankenburg, 10:05 AM | link | 1 comments |

Thursday, October 04, 2007



I'm going to be starting another week-long adventure on Sunday, and I'm looking to meet you. I'm starting to put together a series of webcasts on developing effective UI, UX, and the interface technologies that are used to create them.

If you have thoughts on any of these subjects, or if I just haven't met you yet, please introduce yourself. I want to meet passionate developers.

Here are my expected locations for the next week:

Sunday, 10/7, 1:00 PM - Browns vs. Patriots game
Monday, 10/8, All Day - ReMix07 Boston
Tuesday, 10/9, All Day - ReMix07 Boston
Wednesday, 10/10, 5:00 PM - Cleveland for potential Game #5
Thursday, 10/11, All Day - DevLink Nashville
Friday, 10/12, All Day - DevLink Nashville
Saturday, 10/13, All Day - DevLink Nashville

Labels: , ,

posted by Jeff Blankenburg, 10:55 AM | link | 1 comments |

Wednesday, October 03, 2007

This post is part of a large announcement today. Microsoft is releasing the source code for the .NET framework libraries under the Microsoft Reference License. This license allows viewing of source code, but not modification or redistribution. The source code will be downloadable and viewable by anyone who accepts the license agreement.

This is a very exciting announcement. You'll be able to download a package with all of the source, and then be able to install and browse it locally.

I can continue gushing about this, or I can send you to the official announcement locations:

Scott Guthrie's blog has the primary announcement, with screenshots of the Visual Studio experience.

Also, there is a 30-minute podcast interview with Shawn Burke on Hanselminutes.

Labels: , ,

posted by Jeff Blankenburg, 11:12 AM | link | 0 comments |

Monday, October 01, 2007

Silverlight has to be one of the easiest things I have ever worked with.

Last year, I was asked to put together a logo and site design for a new type of technology conference: CodeMash. (As a sidenote, registration just opened for the 2008 Codemash. For the price, it is by far one of the best conferences you'll attend this year.)

I designed the logo in Adobe Illustrator CS2, knowing that it would be used for print materials, the website, t-shirts, etc. It only made sense to create it using vector graphics. Little did I know at the time, it would also be the way that I turned that logo into an animation for CodeMash v2.0.0.8.

This post is meant to be a tutorial on what it really takes to create a simple Silverlight animation.

First, you are going to need to install some software (I am including links the newest stuff, but you should be able to do this with v1 of expression, and no Silverlight):
* Silverlight 1.1. Alpha
* Microsoft Expression Blend 2 September Preview (This version is good through June 1, 2008)

Once you've got those installed, you're also going to need some base XAML (eXtensible Application Markup Language) to work with. Download the CodeMash logo here. All this markup is at this point is the design. Just save this .txt file down, and we'll use it momentarily.

OK, now on to the tutorial:

1) Open Expression Blend 2, and create a new project.

2) Choose Silverlight Application (.NET)

3) By default, Page.xaml will be open. Choose the XAML view.

4) Cut and paste the contents of the logo.xaml file you downloaded earlier IN BETWEEN the <canvas> and </canvas> tags that are currently provided to you.

5) Flip back to the Design view, and you should now see the CodeMash logo on your canvas.

6) You're probably also noticing that the white canvas we started with isn't really big enough for our design. We should probably make that bigger as well. It needs to be 650px x 777px. We've got two options with this one. This first is just to edit the XAML directly. Take a look at that initial <canvas> tag we started with. It's got width and height properties, so we can just change the values. The second option is much better for those of you that don't want to edit your XAML directly. Click on the element named "Page" (that's our primary canvas) in the "Objects and Timeline" panel. Then, click on "Properties" in the top right. This shows you, much like Visual Studio, the Properties that are available to the element you've selected. Finally, you'll see the width and height properties in the list. You can type the values there, or you can use the innovative "slider" interface to get to the value you desire.

7) Take a look at the Objects and Timeline panel. You should see a well organized list of all of the elements that make up the logo. Gears, glasses, etc. Each one of these elements is defined in the XAML we imported. We are primarily going to be working in this panel the rest of the way.

8) Press F7 on your keyboard. This will take us into the "Animation Workspace." It's not any different from the "Design Workspace" (F6) we were in, except that the panels have been moved.
9) Expand the elements in the Objects and Timeline panel, and look for:
Page > Orange_Gear > Orange_Gear_Teeth. Click on that element once, highlighting it.

10) Under the "Objects and Timeline" panel header, there is a drop-down list with "(No Storyboard open)" as the selected value. Click the ">" button just to the right of that list. This will bring up the storyboard search dialog. Click the "+" symbol to create a new storyboard. Name your timeline/storyboard (it's named Timeline1 by default), and click "OK." Since we're gonna be animating the gears, I named my timeline "GearSpin."

11) You will now see that a timeline has appeared next to our list of elements. Each number (1, 2, 3, etc.) represents one second of time. We will use these times to "schedule" our animations. For those of you unfamiliar with animation software, we are going to be creating keyframes that will do most of the animation work for us. Basically, we define the states we want our elements to be in at certain keyframes, and the software figures out how to get it from Point A to Point B without any other instruction. Please also notice that your canvas now has a red line around it, and in the top right corner, now says, "Timeline recording is on." This means that all of our future actions will be recorded and animated. When we want to make a change that we don't want to be part of the animation, we need to make sure to turn recording off.

12) Make sure that the element "Orange_Gear_Teeth" is still selected. Just above where ZERO seconds is on the timeline, there is an icon with a green "+" in it. Click it. By clicking this, we are creating a keyframe at 0:00 of our animation. This means that it will start as soon as the application does. We could move this to 1 second if we wanted a 1 second delay before our animation began, but for this demo, we want it to start at the beginning.

13) Next, we need to create a new place for these gears to be. So let's say we want to have them rotate 90 degrees in 1 second. Drag the yellow timeline indicator to one second. Click the "+" to set another Keyframe at 1 second. In the "Properties" tab in the top right of Expression Blend, find the "Transform" section, and click the "Rotate" tab inside there. You will see that the current Angle is set to 0 degrees. Let's change that to 90 degrees. You can either click and drag the box to the right, until it says 90, or you can just click on the box, which will allow you to type 90.

14) Whoa! You may have noticed that your gear teeth have derailed from their hub. That's because we didn't define the center of those objects appropriately. Press CTRL + z on your keyboard, to undo the change you just made. Also, because we don't want to animate moving the center of these objects, we need to turn off recording. You can do this by clicking on the red circle in the top right corner of the canvas.

15) Because you have highlighted the "Gear_Orange_Teeth" layer, you should see a blue box surrounding those elements, but probably a bit bigger than just those elements need. You should also see a white dot that indicates where the center of that entire box is. We need to move that. Click on it and drag it to the blue center of the orange gear. That's the point we want our teeth to rotate around, right? To be more exact, I recommend zooming in and placing your center point that way.

16) Once you're confident in your center point, turn recording back on, modify that angle again, changing it to 90 degrees. Now you can click the "PLAY" button (it's right above the timeline) to see your orange gear spin.

17) We've got one other thing to take care of to make this look great. We don't want to have the gears stop after 1 second. We want them to continue spinning forever. This is a simple change. We had selected Orange_Gear_Teeth from the timeline earlier, and now we need to expand it. Inside it, you will see a RenderTransform element. This was created when we changed that rotation angle. Expand it all the way, and you will see an "Angle" element. Right-clicking on this will give you the option to "Edit Repeat Count." We can set this to 1, 2, 100, etc. There's also an "infinity" option. Choose that, and our gears will spin forever.


18) Now, we need to animate the other two gears. We are going to follow the same steps for the Blue and Green Gears. So take steps 9-17, rinse, lather, repeat. The only difference for the other two gears is that they rotate in the other direction. So instead of 90 degrees, they will be set to -90 degrees.
19) You should now have a working Silverlight application, that has the gears spinning. Press F5 to run your project!

Labels: , , , ,

posted by Jeff Blankenburg, 2:32 PM | link | 4 comments |

Tuesday, September 18, 2007


In case you're terribly interested in where I'll be over the next month, here's the short list (I'm sure this will be added to).

September 24 - Halo 3 Pre-Launch Party in Detroit, MI
September 25 - Halo 3 Launch Party in Columbus, OH
September 26 - Halo 3 Launch Party in Cincinnati, OH
September 27 - Columbus .NET Developer's Group Meeting
October 8 - ReMix07 Boston
October 9 - ReMix07 Boston
October 11 - Nashville .NET User's Group
October 12 - DevLink
October 13 - DevLink
October 15 - The Night of AJAX in Cleveland, OH (at the Microsoft office)
October 20 - Day of .NET in Ann Arbor, MI

26 days, 7 cities. Not bad. Where should I go next? Anyone have some great events coming up that I'm not aware of?

Also, in case you're curious, the Night of AJAX is a public event in Cleveland. We are going to be welcoming Jay Kimble of Codebetter.com fame and AJAX guru from Florida. It is planned to be a two hour event in which Jay will present an Intro to AJAX followed up with AJAX best practices and a discussion of Javascript Alternatives (eg. Script#/Silverlight). Please plan to check it out. Be sure to check back for more information as it becomes available. Please leave a comment or email me if you'd like more information. Special thanks to Dave Balzer for getting this great idea put together.

Labels: , , , , ,

posted by Jeff Blankenburg, 9:02 PM | link | 0 comments |

Friday, September 14, 2007

So, this past week, I've been to Cleveland, Detroit (Ann Arbor), Columbus, and Cincinnati. In my driving, I finally used my phone to it's fullest potential.

The backstory: I rented a Jeep Liberty for my travels, it just made more sense. In renting a car, I made an assumption. The radio would actually work. As it turns out, it didn't. So now I've got 5 trips over 2 hours in length with nothing to listen to.

I've got a Palm Treo 700wx. It's running Windows Mobile 5.0, and I've also picked up the TomTom software and GPS device for it as well. With no music, and no real idea where I'm going (other than an address), my phone came to my rescue.

Within a 5 minute period, here's the 8 ways I used my phone:
1) I made a phone call. This one should be obvious.
2) I got turn-by turn directions to my destination.
3) I listened to MP3s using Windows Media Player and the built-in speaker.
4) I sent a text message to accept a friend request on Facebook.
5) I checked my work and personal email accounts (seperately).
6) I surfed to my RSS aggregator to see if
7) Using my RSS aggregator, I used Voice Command to read me some blog posts while I drove. It did surprisingly well turning text into speech.
8) I got notification that I had a conference call scheduled for 3:30.

Man! My phone is still pretty cool. Do that, iPhone.

Labels: , ,

posted by Jeff Blankenburg, 8:57 AM | link | 1 comments |

Wednesday, September 05, 2007

While I was at Mix 07 as a guest of Microsoft, I had an opportunity to witness some amazing products that were coming in the near future. The one I found the most impressive was a technology called Silverlight. The "canned" answer to what Silverlight is, is: Microsoft® Silverlight™ is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web.

For the three of you that I haven't told about it yet, here's some cool examples to see what's capable:

Tafiti - Silverlight Search Engine based on Live Search

Halo 3 Trailers

Major League Baseball Video Streaming

Anyways, the point of this post is to announce that Silverlight 1.0 has been released! You can go to http://silverlight.net/GetStarted/ now to download the final release of the runtime and development tools.

In addition, Microsoft has also announced a partnership with Novell, which will be building a 100% compatible Silverlight runtime implementation called "Moonlight".

Moonlight will run on all Linux distributions, and support FireFox, Konqueror, and Opera browsers. Moonlight will support both the JavaScript programming model available in Silverlight 1.0, as well as the full .NET programming model we will enable in Silverlight 1.1.

UPDATE: Here's plenty more information on Moonlight.

This is an exciting day for user experience. If you want help getting started on your first project, or just want to tell me about the cool way you're using Silverlight, drop me a line!

For all the nitty gritty details about this release, I don't think I can say it as well as Scott Guthrie, so check out his blog post on this as well.

Labels: , , ,

posted by Jeff Blankenburg, 8:56 AM | link | 0 comments |

Monday, August 27, 2007

Just a reminder to all of you in the Southfield/Ann Arbor/Detroit area...I will be presenting the Silverlight DevCares event on Wednesday, August 29.

http://www.devcares.com to sign up.

See ya there.

Labels: , ,

posted by Jeff Blankenburg, 9:22 AM | link | 0 comments |

Saturday, August 25, 2007

I just got an inside tip that Verio is offering free MS web hosting through 2010. So, if you've been meaning to get around to building the next killer app, here's your chance to do it for free.

They even support Silverlight, so if you've been meaning to try it out, GET TO IT!
I believe they are Windows Server 2003, with IIS 6. You don't even need a credit card.

All you have to do is call Verio’s 800-932-7483 to receive your free website. This offer is unfortunately not available online. Please pass it along.

Labels: , ,

posted by Jeff Blankenburg, 8:56 AM | link | 2 comments |

Thursday, August 02, 2007

I always get accused of not announcing the big things in my life (and I generally don't, because I don't want to come across as more arrogant), and so I've decided to let everyone know about this one.

I just recently spent a few days in Redmond, WA interviewing with a small software company located there (Microsoft). They have a position here in Columbus called "Developer Evangelist," and I have been interested in the job since I first heard about it. In short, the job requires me to learn about the new software development technologies that Microsoft has created (well before the general community has access to them), and then announce/demonstrate/teach those technologies to the developer communities in Michigan, Ohio, Kentucky, and Tennessee.

There will certainly be some travel involved with this position, getting around those 4 states, and a great deal of public speaking (something I enjoy, but have much more to learn about). This is a major deviation from what my career has been thus far, which has primarily focused on building software for clients, with budgets, timelines, and all of the other hurdles that generally stress me out.

I am really looking forward to this opportunity, and I think that this is the type of position that will offer me learning experiences on a daily basis. It's a great honor to have even been considered for this position by Microsoft, let alone awarded the job. My first day will be August 13.

This position was previously held by Drew Robbins, who has been an absolutely amazing asset to me and my team at Quick Solutions. He has left behind some enormous shoes to be filled, and I only hope I can succeed where his legacy left off. He has moved on to Redmond, where he will be the Technical Evangelist for the IIS7 team. I'm sure the world is in for a shakeup once he starts doing his magic.

So, in my travels though the "Heartland District," I hope I will have an opportunity to see many of you, if only for a beer.

Labels: , ,

posted by Jeff Blankenburg, 2:31 PM | link | 12 comments |

Thursday, June 07, 2007

I will be speaking at the DevCares event in Cincinnati tomorrow, Friday, June 8.

I will be covering the Expression suite, with a demo on how to create a basic application using the new Expression tools from Microsoft.

I hope some of you will be able to attend!

I will post the presentation materials here afterwards.

Labels: , ,

posted by Jeff Blankenburg, 2:53 PM | link | 0 comments |

Friday, June 01, 2007

They've already announced the dates for the Mix '08 conference. I'm really hoping to get an opportunity to go again. I'm still revelling in the knowledge and experience of the trip.

March 5-7, 2008. Venetial Hotel. Be there or be less than desirable.

Labels: , , ,

posted by Jeff Blankenburg, 4:01 PM | link | 0 comments |

Wednesday, May 30, 2007

Holy cow. This looks awesome. It also looks like I'm holding off on buying a new coffee table.

Microsoft Surface is a new technology that basically uses a multi-touch screen to create an entirely new user experience. I can jabber on at length about this, or I can let the folks at Popular Mechanics demo it for you. Check it out:




And here's Microsoft's site as well:

http://www.microsoft.com/surface/ (why isn't this in Silverlight?)

Labels: , ,

posted by Jeff Blankenburg, 2:28 PM | link | 0 comments |

Monday, April 30, 2007

So it's been hyped for the past few weeks that we were going to see many new things announced by Microsoft this morning. The hype didn't keep up with reality.

It was WAY better than sold.

THe biggest highlight of this conference is the combination of Silverlight with the .NET framework.

We can actually write C# code to function like you would normally expect Javascript to do.

We can create vector based animations to run in a cross-browser, cross platform environment, with all of the instructions stored in XAML.

Designers can completely control the look and actions of these elements in a graphical interface, but that design is then translated down to XAML, which can be edited, updated, etc as a file on the server. This allows the designer to control the looks, and the developer to control the functionality.

Two demos during the keynote were flooring, however.

First, the CEO from a company named Metaliq demoed a new AJAX/Silverlight/.NET application they call Top Banana. It is basically a content editing application, all within a browser. The URL is http://silverlight.metaliq.com/topbanana
It appears they have taken their demo down, but as soon as I can get access to it again. I will post it. It was truly unbelieveable.

The other struck close to home. I'm a huge baseball fan. Mondo big. And having grown up in Cleveland, I've been forced to suffer with the Indians my entire life. THe C-something-something from MLB.oom was here demoing their new MLB.TV application. It acted as I expected. Showed every possible statistic available in an interface that also shows the live games streamed over the internet. All great, all what I would expect. It include a feature that allowed you to add your favorite players (think fantasy baseball) and it would alert you every time your player did something in any of the games. It would also serve up the specific video clip of that notable performance. (On a sidenote, thsi guy said that they generate 10 DVDs worth of data with every pitch of every game. That seems like a little bit. :))

Anyways, even the fantasy player list wasn't the coolest part of this demo. Oh no. He then pulled out his cell phone, and showed us a Silverlight application running there. It showed stats, game scores, even live score updates, and runners on base. Think about the graphics that show up during a TV broadcast. Minus the actual game video. Well, with Silverlight, it appears they are going to be successful in streaming actually live video to your phone, and remember that fantasy player list, statistics, and video feeds? That was all demonstrated as well.

Man, this has been amazing thus far. Thanks again to Quick Solutions for sending me here.

Labels: , , , ,

posted by Jeff Blankenburg, 6:34 PM | link | 1 comments |

Thursday, April 05, 2007

Day of .Net May 5, 2007 - I'll be there!

After returning from Vegas on May 3rd, I'll be heading up to Ann Arbor for the Day of .NET. I was selected as a speaker for the event, and I will be presenting my talk on Google's APIs.

Hopefully, I'll see you there!

Labels: , ,

posted by Jeff Blankenburg, 2:39 PM | link | 1 comments |

Wednesday, January 24, 2007

I'm Going To Mix 07!  Elvis Will Be At Mix 07!  Let's Mix at Mix 07!  Roll the dice with me at Mix 07!


So I know I just got back from an amazing conference in CodeMash, but I've got great news! I'm heading to Mix 07 at the end of April, thanks to the good folks at Quick Solutions. Brian Prince and the rest of the management team do nothing but support me and my technical growth. I can't thank them enough for the opportunities they have provided me.

It's taking place in the Venetian Hotel & Casino in Las Vegas, NV from April 30 - May 2, 2007. I'll actually be heading out the morning of the 29th, and flying home to Columbus on May 3rd, so it should make for an exhausting trip. Based on the preliminary schedule of events, here's how I see my schedule going down:

April 29, 2006
7:00 AM - Get to the Columbus Airport, check in, go through security checkpoints, recover from cavity search.
9:00 AM - Take the flight to Sin City.
10:38 AM - Arrive in Las Vegas. We are now operating on Vegas time people, keep up.
10:39 AM - Lose my first $10 in a slot machine.
11:00 AM - Check in to the Venetian Hotel & Casino.
11:30 AM - Lose another $50 at the blackjack table.
12:00 PM - Grab some lunch.
12:45 PM - Wander the hotel, getting my bearings on where registration, session rooms, etc. are.
4:00 PM - Head over the registration, get checked in for the event.
5:00 PM - Sit down for a long night of Texas Hold-em at the Bellagio Poker Room (or maybe the Venetian Poker Room, it looks to be new)


April 30, 2006
1:00 AM - Go to bed.
8:30 AM - Head down to the Continental Breakfast. Mingle. Meet some people.
9:30 AM - Head over the Keynotes session. Ray Ozzie and Scott Guthrie are expected to be speaking. I really enjoyed Scott's talks at CodeMash, so I hope there is new material for Mix.
12:00 PM - Lunch
1:30 PM - Time for some sessions.


Um, I expected this blog post to be longer, but it doesn't appear that they have decided which sessions will be in which time slots. So, of the sessions that are listed on the site currently, here are the ones I expect to attend:


LINQing Your Web Applications - See how Language-Integrated Query (LINQ) allows for the most seamless integration of your Web applications and relational data. Get a sneak peek at the next version of the .NET Framework and Visual Studio (codenamed “Orcas”).

Driving Your Business through User Experience - Hear how tools, technologies and cutting edge design combine to create the user experiences that drive your business. See how a continuum of user experiences can be a powerful lever to differentiate the products and services you offer via the Web.

Gazing into the Future of Web Development - Be one of the first to see the big advances planned for the next version of ASP.NET for building rich Web applications. Get a sneak peek at technology to help simplify rich content, data, services and more. Learn how to efficiently and effectively create data-driven applications that fully leverage the power of “WPF/E” and AJAX on the client coupled with powerful server-side features provided by ASP.NET.

Thinking in CSS: How to Build Great Looking Sites - Delve into CSS with Molly Holzschlag, and look at the power CSS offers to Web developers and designers. Hear Molly's secrets about how to build stunning sites quickly and easily.

Five Real World Applications that Raise the Bar for User Experience - Come learn about five applications that will change what your customers will expect from tomorrow’s software applications.

IE7 Retrospective: Microsoft's Look at the Good, Bad and Ugly - Hear from Microsoft's IE7 team about the journey from mea culpa to broad market acceptance. Hear what went right, what had to be cut, and how development priorities are set. Learn how to minimize your Web browser support headaches, and move to a more standardized Web.

There are plenty more sessions planned, and my preference may change once I see which sessions are in which time slots. Expect to see many more posts about this in the near future. And for those of you that want me to put $1 on Red 32 for you while I'm there, start saving your pennies.

Labels: , , , , , , , , , , , , , , , , ,

posted by Jeff Blankenburg, 2:33 PM | link | 2 comments |

Friday, January 19, 2007

Codemash. What can I say? This is the first community-driven event I have ever attneded, and I have been blown away by the quality of the attendees here. I have had an opportunity to talk with Microsoft influencers (Drew Robbins, Josh Holmes, Jennifer Marsman, you have all been great, and it's been an absolute pleasure to spend some time talking and working with each of you), community leaders (Todd Kaufman [on the board of COJUG], Rob Stevenson [part of the Columbus Ruby Brigade], and many more), as well as thought leaders in people like Neal Ford, Bruce Eckel, and Scott Guthrie.

Events like this inspire me because it's a constant reminder that I need to keep moving forward in my "commitment to a lifetime of education". I've never mentioned this concept in my blog before, but it basically comes down to this: As an individual in the software development field, I have a choice. I can either commit to a lifetime of learning the new "thing", the new technology, the new way of doing things...or I can be left behind, to become extinct. Just like the carpenter that foo-fooed the hammer, those who mock the future of software development are destined to not be a participant.

I hope that Day 2 is nearly as eye-opening as Day 1. I am having an absolutely amazing (and most of all educational) experience. Codemash!

Labels: , , , , , , , , , ,

posted by Jeff Blankenburg, 1:11 AM | link | 0 comments |
January 2006
February 2006
March 2006
April 2006
May 2006
June 2006
July 2006
November 2006
December 2006
January 2007
February 2007
April 2007
May 2007
June 2007
July 2007
August 2007
September 2007
October 2007
November 2007
December 2007
January 2008
February 2008
March 2008
April 2008
May 2008
June 2008
July 2008
August 2008
September 2008
Credit or Debit?
Reformatting my blog...
TUTORIAL: Using Javascript To Call A WCF Web Servi...
DevLink '08 in pictures...
.NET Rocks at DevLink!
Consuming Web Services In Silverlight
Obscure Knowledge: The Levenshtein Distance
Codestock 2008 - Photos In Review
Streaming Live From Codestock!
NBC Olympics - In Silverlight 2!