Wednesday, June 4, 2008

Cleveland Day of .NET 2008 is History!

ClevelandDODNOn Saturday, May 17th, we held the first Cleveland Day of .NET and it was, from all accounts, a success.  It sounds like everyone had a good time, met a lot of new people and learned about technologies they would not have been exposed to in their normal jobs.  This is exactly what we were trying to accomplish.

How it got started

All of this came about because a few community members were talking on twitter about Cleveland needing a Code Camp or something similar and deciding to do something about it.  Myself, Sarah Dutkiewicz and Michael Letterlie, none of whom new each other in person, decided to create this.  A few days later was an ArcReady where Joe Fiorini and Corey Haines also joined in.  By the time we had our first meeting Sam Nasr was also an organizer and by the second meeting, Mike Slade was with us as well.  From the very first meeting, where most of us actually met each other, until the Cleveland Day of .NET took place was just under three months.  This group of people pulled off a great conference without any of us having done anything like this before.  If you see any of these organizers out in the community, thank them, they all deserve a big congratulations.

A Good Day

In the weeks since Cleveland Day of .NET I have heard directly and indirectly from many people that all say it was a good event.  Sponsors, speakers, attendees and organizers alike all feel that it was a good day.  Of course there are things that can be improved upon for next year, that is true of any event, but the day did accomplish what we set out to do: Provide a locally hosted developer focused event for fellow developers.

Thanks!

In addition to the people that worked so had to pull this together, plenty of other people are deserving of our thanks.

Speakers

When we were first organizing this, we dreamed big but were skeptical of getting very many speakers.  We were wrong.  After deciding on time and tracks there was room for 24 sessions and 4 vendor sessions.  When we placed the call for speakers, hoping to get 24 good responses, we had almost 50 talks proposed, it ended up being quite a task to trim that down to the 24 that we had room for.

Some drove long distances, some spoke at very little notice, some were speaking in front of a group for the first time.  All of them did it completely for free, no gas money, no free hotel.  Ok, so some of them may have just come for the opportunity to drink with fellow geeks :).

Please thank all of these speakers when you see them around:

Community

Without the support of the local development community this event would have been pointless.  Both of the relevant user groups, the Cleveland C#/VB. NET SIG and the Cleveland .NET SIG helped to spread the word and offered any support we needed.  The community members that attended put up with the narrow hallways, lack of lunch and no good meeting place yet offered nothing but praise.

Sponsors

There was also a lot of support for Day of .NET from local companies as well.  Without the generous sponsors all the effort put in would never have been enough since it always ends up coming down to money.  We had a great bunch of sponsors that all were very supportive and adaptable, even when we weren't sure what we were doing.  If you would like to thank them yourself (and please do) here they are:

We also had a number of companies donate books, software and swag to give away:

Finally

It's all over now, we're all finally caught up on rest and back to life as normal.  But let's not let the momentum die, we've started something here, lets keep it going.  And I'll see you in the community.

Wednesday, May 7, 2008

Review: ArcReady 4/30

So this review is a little late (and a little short) but don't worry, I took notes :).

This was Brian Prince's first appearance at an ArcReady event as the Microsoft Architect Evangelist and well, he did a great job.  Personally I don't know how long he can call himself "the new Josh Holmes" because personally, I dug this presentation more than most of the ones Josh gave.  I could be biased though since this topic is one that directly relates to my job more than most have.

Content

The title of the presentation was "Architecting for Scalable and Usable Web Applications" and was broken into two sessions, one on scalability and the other on usability.  The first session was definitely the better of the two in that it had more meat protein.  I would say that this is partially due to the fact that there are more concrete ways to tackle scalability than there are on usability design.  Usability is much more abstract, a "you know it when you see it" kind of thing.

Both sessions had many techniques to try and tools to use when tackling their respective issues.  Personally I learned a lot from both sessions, I will use many of the items in the future, no question.

Presentation

Brian did a great job.  If you've never seen him speak, you are missing out.  He comes across as clearly knowledgeable yet humble, is free to admit when he doesn't know something, and is guaranteed to throw in some obscure Sci-Fi reference that most of us understand but wouldn't have been able to pull out on the spot.  He also has a way of speaking that keeps you engaged and learning, which for some tech talks is no minor feat.  In our area Brian is giving a talk on soft skills at Cleveland Day of .NET on May 17th, come see him, you'll be glad you did.

Day of .NET Is Almost Here!

IClevelandDODNt's almost here! 

The first Cleveland Day of .NET is in a week and a half (assuming you read this the day I post it).  Everything is moving very quickly now.  Sponsors have stepped up to donate the money to pay for the venue, t-shirts and all the other things.  So many great speakers came forward from the entire Heartland District that we had to turn half of them away.  With only word-of-mouth advertising, there are nearly 200 attendees registered.  All of this has been pulled together by a small group of dedicated volunteers.

Generous Sponsors

In the last few weeks we have had a lot of great sponsors come forward.  Without them this event wouldn't have a chance of succeeding.  Please visit their tables, attend their presentations and listen to their pitches.  Visit our site for the most up to date list of these sponsors.

Great Speakers

We had nearly 50 proposals for talks but only have the space for 24 sessions.  This made it very difficult to choose which talks to accept and which had to be cut.  I can honestly say that not even one talk was cut because we didn't think the presentation or the speaker were appropriate or skilled enough.  The list we did come up up with covers both new and upcoming technologies like LINQ and Silverlight but also what people are using today like ASP.NET and SharePoint, we even have a few methodology style talks in there.  The only thing I see as wrong with the schedule is that I can only physically attend one talk at a time :).

Almost at capacity!

As of this morning there were 192 people that had registered and indicated that they would attend.  Another 16 had registered but have since said they cannot make it.  What this means is that there are only 58 more slots for registrations before we have to cut it off and turn people away.  If you haven't registered yet, or keep forgetting to tell your co-workers about it, time is running out.

Hard Work

A lot of people have been working very hard to bring this thing together but it is finally almost here.  We all truly hope for this event to be a great success and for people to come away with a wealth of new knowledge and a better appreciation for the local development community.  That sense of community, or rather a lack of it, is what caused us all to get together and start planning this event.  Please come and learn about some technology, tool or technique to help you in your job, and meet the fellow developers that can help you in your career.  Oh, and lets all have a good time doing it!

Tuesday, April 29, 2008

Silverlight 2 TextBlock Responds to Mouse Events when Truncated

ANOTHER UPDATE: I received confirmation from Joe Stegman that yes, this is indeed a bug in Silverlight 2 Beta 1 but has been fixed in the forthcoming Beta 2.

UPDATE: This behavior can be fixed by adding a clip to the bounding control which in this case is a Rectangle.

I finally had time to sit down and really debug the Silverlight animation problem I described in a previous post.  I recommend heading over there and reading that post, it also displays the problem in action.

The issue is that when using the Height or MaxHeight properties to restrict a TextBlock, if the text is longer than is allowed by the defined size, even though visually the text is truncated, the area in which the text would be still responds to mouse actions.  It does not matter if the properties are set on a parent object like a StackPanel or on the TextBlock itself, the issue is the same.

Unless I'm missing something if the text is visually truncated, the non-visible area should not respond to mouse events.  If anyone knows of a reason for this or a way to fix it, please let me know.

Below is a sample app demonstrating the problem.  To see the grid working normally, move the mouse around and watch the squares change color.  What should happen is that the square that the mouse is in turns red, and when the mouse leaves the square goes back to green.  If you click an item so that the text changes, then the mouseover action changes.  Now the area about two and a half squares below the selected one will also turn the square red instead of the square that the mouse is over.  If you click the square again to set it back to normal, it acts as it should.

You can download the code for the example from here.

Friday, April 25, 2008

Silverlight 2 Beta 1 Problem with Animations on User Controls

YET ANOTHER UPDATE: I received confirmation from Joe Stegman that yes, this is indeed a bug in Silverlight 2 Beta 1 but has been fixed in the forthcoming Beta 2.

ANOTHER UPDATE: I found what is causing this, you can read about the exact cause and download sample code in a newer post.  If this is a bug in Silverlight or if there is a nuance with the TextBlock of which I'm not aware has yet to be determined.

UPDATE: This is most likely NOT a bug in Silverlight itself but probably has something to do with how I am implementing it.  I will post a detailed description of what caused it and how to avoid it as soon as the cause is identified.

Let me start by saying that this issue is one that I doubt will be seen by many people, even if it does persist into the RTM version.  Even describing this issue without using lots of pictures (or better yet a (mal)functioning sample) is not an easy task, so let me see how well I do.

Background

As I said in a previous post, I started a CodePlex project to build a session scheduler in Silverlight.  Within this application there is a User Control defined that represents a single session which includes the information about the session, the graphical representation of that data and an animation.  When the app reads in data from an XML file it creates a number of instances of this user control in specific locations in a Grid.

Matt Casto joined the project this week and the first thing he did was to create a more elegant way to catch the MouseEnter, MouseLeave and MouseLeftButtonDown events by adding them to the user control declaration tag instead of to the transparent rectangle that I had been using previously.  This made for a nicer experience as the area that handled the events would expand with the control during the animation.

Issue

From the picture above you can see what the animation looks like in it's final (open) state.  When in this state, there is a path that overlaps a section of another instance of the user control below the currently active one.  With the new behavior if you move the mouse into this path covered area of the active user control, nothing happens since the mouse is still within the defined area of the user control.  So far this is all good.

The problem arises when you have one instance of the user control in an open state, then move the mouse into the area of another instance of the user control that would be covered by the expanded path.  The area I'm talking about is the top/left part of the small version of the control. 

The result is that if ANY animation is in it's open state, the instance of the User Control that would be covering that section is activated, not the instance of the control that the mouse is actually over.

Finally

I've reported this issue to Joe Stegman and may also post it to the forums at silverlight.net.  If I hear from Joe or someone else that it's actually a problem with our code and not a real Silverlight 2 bug, I'll gladly update this post with that information.

This one is most likely a rare issue that will not effect the vast majority of Silverlight applications, but it does appear to be a real issue.  For our application we decided that we can live with the odd behavior but for a business application that would be a hard case to make.

Thursday, April 24, 2008

Review: Cleveland C#/VB.NET SIG 4/22

sig_logo Once again this review is coming a couple days late, I'll try to get a little more punctual but since I've been working on that for decades, don't count on it any time soon.

First, the venue/crowd.  It was held at the Berbee office in Brecksville as usual, although most likely for the last time.  Sam Nasr, who coordinates this SIG, is leaving Berbee so will be looking for a new location (if you want to host it contact him through the site above).  The room was fine although it looked like we were about at max capacity for the room with around 30-35 people.  Pizza was a little late but no one seemed to mind, at least not that I noticed.  It also got a little warm but with that many people in a small room that is to be expected.  And they were all staring at me, so maybe I was the only one warm.

This month at the Cleveland C#/VB.NET SIG the presentation was Silverlight 2 in ASP.NET presented by well, me.  This was my first time giving a presentation like this in a long time so I was a tad nervous that day.  Ok, more than a tad, I was VERY nervous. I felt like my presentation was weak and that I wasn't ready to give it.  I may be my harshest critic (at least I hope so) and in thinking about it later I definitely have some things to work on, but overall I think people learned a lot from the presentation.  I actually surprised myself with the number of questions that I actually knew the answer to, and there were a lot of questions.  Lots of questions.

What did I do wrong?

  • I was unorganized
    • I had notes to keep me on track but didn't follow them
  • I let questions derail me
    • I would go too deep into an explanation and had a hard time getting back on track
  • I didn't prove my thesis
    • I don't know that anyone noticed this until I pointed it out over beer.

The good part about everything that went wrong is that I know how to fix it. Practicing in front of real people will help quell the nerves and let me pay attention to my notes.  Practice will also help me handle off-the-wall questions better.  A small change in my slides and a more focused demo will prove the thesis better.

Overall the feedback I've been getting from people is that is was a very good presentation.  Personally I know I have a lot of room to improve, but you have to start somewhere.

P.S. Go register for Cleveland Day of .NET, I'll be posting some exciting updates about that event soon.

Sunday, April 13, 2008

Silverlight Session Scheduler at CodePlex

Guitar2 As many of you know, I am one of a group of local developers that is organizing Cleveland Day of .NET, a free one-day developer conference on May 17th.  As part of this we wanted a cool way to allow for registrants to select the sessions they want to see from the conference website.  Naturally when the words "cool" and "web" are in the same sentence, Silverlight comes to mind.  So I built one.

Description

What I came up with is a simple way to view and select sessions for a one-day conference.  I hope to expand it to multi-day capable eventually.  It marks your selections and also shows them in a list to the side.  Eventually I would like to make it easy to print and submit your selections back to the server.  None of that is in it yet but still, I think it is kinda cool.

scheduleshot

The above image is just a screenshot.  The actual one does some neat stuff though, like an animation on mouseover to display more information.

expanded

And when you select an item, two things happen: 1) an overlay with "Selected" is placed on the box and; 2) The title is added to the proper place in your schedule list.

selected

Open Source

In the true nature of Cleveland Day of .NET, I've posted the entire source for this app at CodePlex under the name Conference Session Scheduler.  Feel free to join and help me add more features or fix what's there.  You can also just download the code and use it as is if you want to, the choice is yours.  This is a good project to learn about User Controls, global variables (i.e. singleton object) and loading objects based on XML data. 

I'll pass along one tiny piece of code in this post:  How to set a Fill color from a string color value in code.

this.myRectangle.Fill.SetValue(SolidColorBrush.ColorProperty, "#FF386E1B");



I know the above looks simple but believe me, finding it was anything but easy.




Sample




If you have the Silverlight 2 Beta 1 plugin installed you should be able to see the scheduler in action.  I won't promise to keep this up to date as we update the code but at least it is as of 4/13.

Ok, so this is already out of date but I promise I'll replace the one in this blog with the real Cleveland Day of .NET schedule when it is posted next weekend.





  kick it on DotNetKicks.com