Tuesday, November 3, 2009

Inland Empire .NET User Group

Three months ago I moved from Temecula, California to Wylie, Texas, which is in the Dallas area. I took some time recently to write down my thoughts reflecting on my time as a member of the Inland Empire .NET User Group.

Joining the Inland Empire .NET User Group was probably the best career decision I've ever made. The exposure I got each month to new techniques and technologies pushed me ahead by leaps and bounds. I remember several times heading up to a meeting (it was about an hour drive) thinking that I probably wouldn't have much use for what was being discussed that evening. Then after being inspired at the meeting, I would drive home thinking of all the ways that I could benefit from what I just learned.

Stephen Rose's talk about virtualization is probably the best example of that. I had just rebuilt my machine and that afternoon had carried another machine up to my desk with the intention of installing some software that I didn't want on my main development machine. Now I do 100% of my development on virtual machines. Using base images with Office and Visual Studio installed means I very rarely need to re-install those tools and I haven't installed (or reinstalled) XP or Vista on a new machine in months! I just grab the virtual machine that is closest to what I need next and copy and paste it to a new vm.

The other talk that was very inspiring was Matt Penner's discussion of keeping the passion in what you do. After that talk I asked him what podcasts he listens to and then I subscribed to Hanselminutes and .NET Rocks! Between those podcasts (and a few more that I've added since then) and the user group meetings I can almost feel my brain expanding!

The first meeting I attended was the Most Valuable Member (MVM) award event for 2007-2008. I love the challenge of a competition, so I decided that night that I would go for it. Getting the MVM points was a huge motivator that prompted me to get on the calendar and give a talk myself. Presenting to the group was very fun and I got a ton of great feedback from members of the group. After that I gave basically the same talk at the SoCal CodeCamp in San Diego, but refined it a bit. One of the user group members (I've forgotten his name) was at my CodeCamp talk and told me that I made good improvements on it. I think every user group should do a MVM award program!

The last meeting I attended before moving to Texas was the MVM award event for 2008-2009 where I was recognized as the 2nd Runner Up winner! I was blown away by how much stuff was part of the prize package. I still haven’t installed all the software I won and haven’t even ordered all the free books of my choice from the 3 different publishers!

I am very thankful for all the hard work James Johnson does in putting together and coordinating the user group. It has had a huge impact on me as a developer and was a great way to gain exposure to the larger developer community.

I have attended a few other user groups and none of them even come close to the quantity and quality of the sponsor provided giveaways each month -- let alone the MVM prizes! I know that is due to James' diligence in contacting those sponsors and telling them what a great group of developers there is in the Inland Empire.

I miss the friends I made there and I hope that the next time I'm in Southern California it can be around the 2nd Tuesday of the month so I can go back and visit the group.

Thursday, August 20, 2009

Twitter URL shortening by convention

To date all the fuss over the various URL shortening services has been about how to get the shortest URL after "http://", but what about shortening that part? We could apply some convention over configuration and declare that a single / was sufficient to decorate a link in a tweet. This would work exactly the same way that # for hash tag links and @ for username links work currently. Instead of http://bit.ly/xxxx or http://tinyurl.com/xxxx, lets just all start using /bit.ly/xxxx and /tinyurl.com/xxxx!

Once a few of the major Twitter apps start recognizing this convention, it will really work great!

Wednesday, March 11, 2009

Bug in VB.NET LINQ to XML

Here is the simple code to reproduce the bug I found in VB.NET LINQ to XML using Visual Studio 2008.


Public Class Class1

Private MyValue As String
Public Property SomeXMLValue() As String
Get
Return <test>
<child><%= MyValue %></child>
</test>.ToString
End Get
Set(ByVal value As String)
Dim ValueXElem = XElement.Parse(value)
Dim XQuery = From child In ValueXElem...<child> _
Select child.Value

' Code that uses XQuery here

End Set
End Property

End Class


I'm expecting the type of XQuery to be inferred as IEnumerable(Of String)
The Value property of child on line 13 has a blue squiggly and the compiler gives the following error:
Range variable 'Value' hides a variable in an enclosing block or a range variable previously defined in the query expression.
In order to get this to compile I must rename the variable on line 10 to something other than 'value'.

Update 3/17: The Visual Studio Team updated my bug report as Resolved (By Design). They suggested changing line 13 to "Select someOtherName = child.Value". Has to do with the "range variable" named Value, which is created by the query. Apparently there are a few bits of the internals of LINQ queries that I don't really get yet. I think this falls into the category of things I can still use even thought I don't fully understand how they work behind the scenes.

Monday, January 26, 2009

I write code

Several years ago I had a t-shirt with this text:

I am a programor
I am a programmor
I'm a progamer
I write code

To this day I have to look up the proper spelling of the word programmer. Now I see that dictionary.com says that programer is an acceptable spelling. I wonder if that's from all of us who couldn't remember to spell it with 2 m's.