Matthew Podwysocki's Blog
Architect, Develop, Inspire...
-
DC ALT.NET Meeting 4/23/2008 - Jay Flowers and CI Factory
Now that we've somewhat recovered from ALT.NET Open Spaces, Seattle, it's time for another DC ALT.NET meeting. I'm currently finishing up my wrapups for Seattle still and I'm sure I have months worth of material from there. Anyhow, this time Jay Flowers will be talking to us about Continuous Integration and CI Factory which was postponed from last month due to schedule conflicts. As always we have the first hour or whenever the conversation ends for our main topic and the rest is Open Spaces. Food will be served as well.
Below are the details for the meeting:
Time:
4/23/2008 - 7PM-9PM
Location:
2201 Wilson Blvd
Arlington, VA 22201
Parking/Metro:
Best parking on N. Veitch St
Courthouse Metro the best bet
As always you can find out more by joining the mailing list here. Hope to see a great crowd there and to continue some of the great discussions that were held in Seattle. Until next time...
-
ALT.NET Open Spaces, Seattle Day 1 Recap
ALT.NET Open Spaces, Seattle has come to a close. What a great time it was and it met every expectation if not exceeded them. Currently I'm in the Seattle airport waiting for my flight home which just got re-arranged. Anyhow, I'd like to wrap up my thoughts for the first day of the event.
Setting It Up
I arrived one day early for the event to make sure we were set up appropriately. I was able to meet up with Dave Laribee, Glenn Block, Scott Bellware, Jeremy Miller, Greg Young, Scott C Reynolds, Ray Lewallen, Patrick Smacchia and others. Everyone was already burned out from the MVP Summit, so I wasn't sure how well people would be for the event. But it was great to talk to Sam Gentile and I'm glad he's back in the fold with ALT.NET as he announced earlier last week here.
Even though a lot of people were tired, we had plenty of help to set up for the event. Of course the joke is that "How many ALT.NETers does it take to go to Costco?"...
Kicking It Off
One couldn't ask for a more prepared and outstanding facilitator in Steven "Doc" List. What an amazing job he did to bring the Open Spaces together. The event started with a description of Open Spaces Technology. if you're not familiar with the Open Spaces, Technology Format, here are the four basic principles:
- Whoever comes are the right people
- Whatever happens is the only thing that could have
- Whenever it starts is the right time
- When it's over, it's over
The Sessions
I met with Mike Barnett from the Spec# team who was one of the many people I had invited to this event. Spec# as you may have figured from my blog is a passion of mine. It is one of my goals to publicize it enough and to make sure that people are aware of this wonderful technology that the product teams such as Mads Torgersen and Anders Hejlsberg notice. Anyhow, Mike went up and announced a session on Spec# and static verification. I'll cover more of that in subsequent posts again. Start your letter writing campaigns now!
Dustin Campbell also was in attendance and he and I chatted about F# and doing a session on functional programming and F#. It was going to be a great session, but unfortunately when the schedule was finalized, I couldn't possibly attend the Spec# and functional programming and F# talk. I was a little disappointed by that, but luckily Roy Osherove suggested a talk about "Concurrency and Functional Programming" which I was more than willing and able to help out on. I also pulled Harry Pierson, the new Program Manager for IronPython to help in such a session.
Since John Lam wasn't in attendance that night, I volunteered him for a session on IronRuby and the DLR which he was more than happy to oblige. We scheduled that for the first session on Saturday. I'll cover each of these in detail in subsequent posts.
The Fishbowl
From there, we went to a fishbowl style conversation in which there are a number of chairs in the middle of the room. There must be all but one of the chairs filled at any given time. Any person may in turn come and take a seat and another person must leave to keep the balance. The discussion started with Scott Hanselman, Ted Neward, Charlie Calvert and Martin Fowler talking about the Polyglot Programmer. Ted Neward couldn't be there for the whole event, unfortunately as he was also doing No Fluff Just Stuff this weekend as well with Venkat Subramaniam, Neal Ford and others. Luckily I got some time to talk to Ted about some F# related items as well as his upcoming trip to Reston, VA for No Fluff Just Stuff next weekend. So, if you're in the area and interested in seeing Ted and Venkat, that's the place to go! But anyways, the event was great and a lot of people pitched in. There are so many to name, I'd just run out of space.
To Be Continued....
-
Off to Seattle and ALT.NET Open Spaces, Seattle
Well, the day has finally come where I'm heading to ALT.NET Open Spaces, Seattle. It's been a long time of planning for this day with all the other guys mentioned on the site. The weather's not looking so great with a possibility of snow on Saturday. Not looking forward to that part as I'm leaving sunny, beautiful Washington DC where it is around 75F or so right now.
I hope to be live blogging much of the event, well as much as I can. I you're on Twitter, you can follow me at mattpodwysocki. Looking forward to seeing everyone there!
-
NOVARUG with Dave Thomas (PragDave) Recap
Last night I attended the Northern Virginia Ruby Users Group (NovaRUG) meeting in Reston last night with Dave Thomas (PragDave) and Chad Fowler. It was a completely packed house and the temperatures were a bit hight in the room, but it was well worth the sweating to attend.
Paul Barry presented first on Merb and gave a really good demonstration of some of the capabilities in comparison to Ruby on Rails. If you're not familiar with Merb, it is a lightweight Model View Controller framework written in Ruby. It was written by Ezra Zygmuntowicz in response to trying and giving up on making Ruby on Rails thread safe. You can find his presentation materials here.
It was mentioned that there will be a Ruby conference in the Northern Virginia area upcoming I'd like to see if we can get some IronRuby in there instead of all those Java guys with JRuby. We'll see what happens, but for right now, everything seems to be in flux. Stay tuned!
Next up, Dave Thomas talked about the Ruby object model with a very good presentation. Below you can find some of my pictures I took from the event. Forgive the quality of the images, but you can tell that it was a crowded place! Anyhow, it was a really good talk about the object model, how the scoping of self and the resolution of classes and methods are done deep down in Ruby. It was an excellent presentation and I was definitely excited by his passion for the community and the technology.
First we have Dave talking about the inheritance chain of Ruby objects.
Then here's Dave talking about the method resolution.
I had a chance to chat with Dave afterwards on F# as he has been looking into OCaml lately, where F# got most of its functionality from. It's his hope that F# succeeds and I ultimately think it will. So, I told him to give it a try. Anyhow, it was a great night and good to reach out to the community. The DC area has a pretty rich community of .NET, Ruby and Java programmers that's really refreshing to see. Until next time...
-
Metaprogramming in F#
Tonight I will be heading to the Northern Virginia Ruby Users Group (NoVARUG) meeting tonight with Dave Thomas (PragDave) talking about metaprogramming in Ruby. Should be a great time and I'm sure it will be full tonight. For those interested in some introduction to metaprogramming in Ruby, here's a good link to help get you started.
Metaprogramming in F#?
One of the many things that has interested me in F# is that it was originally written as a language to write other languages. This of course leads me to a discussion of F# and metaprogramming. Is it a fit? There are a couple of links well worth visiting and then at a future date, we'll come back to the subject.
Before the links, most of the language oriented stuff comes from quotations. Quotations are a little block of code which turns a particular piece of code into an expression tree. This language tree can then be transformed, optimized and even compiled into different languages. There are two types of these quotations, raw and typed. Typed Quotations contain static typing information whereas the raw do not. For a good introduction to these, check out Tomas Petricek's post here.
- Leveraging Meta-Programming Components with F# - Don Syme
Talks about F# with Quotations and LINQ expressions for expressing metaprogramming in F#
- F# metaprogramming and classes - Tomas Petricek
Talks about Class Quotations and basic metaprogramming capabilities in F# and its limitations
- Leveraging Meta-Programming Components with F# - Don Syme
-
Adventures in F# - F# 101 Part 8 (Mutables and Reference Cells)
class Program
-
ALT.NET on DotNetRocks and the Community
Dave Laribee and Jeremy Miller recently recorded an episode on DotNetRocks and was just posted today. Episode 333 "It's the ALT.NET Show" can be found here. It's a great show that explains ALT.NET for those who may not really know what it is outside of some of the arguments on the altdotnet mailing list. This includes discussions on open source frameworks, agile practices, refactoring and so on.
It's great to see the reaction from this show at least from my perspective. To see the job we're doing from Josh Holmes, Glenn Block, me and others from within to reach out and also present ideas and bridge the gaps. It's been very rewarding to be a part of that.
We're only just a few days away from ALT.NET Open Spaces, Seattle. All of those who are attending should have received a notice of such this morning. I'll be arriving in Seattle on Thursday afternoon to help set up for the event so if anyone wants to hang out beforehand let me know.
Bringing It To The Community
Anyhow, this weekend I did my best to bring some of those ALT.NET practices to the CMAP Code Camp and we had a pretty good turnout. This time I talked about refactoring to patterns, dependency injection and inversion of control containers. I'm hoping to do the same for the Northern Virginia Code Camp coming up on May 17th. Brian Donahue has been rather successful doing so with the Philly Code Camps as well. That reminds me that I'm coming up there in mid-May to do an F# session. Should be a fun time.
-
CMAP Code Camp Wrap Up - Dependency Injection and IoC Containers
I really enjoyed speaking at this past weekend's CMAP Code Camp. I hope you all enjoyed my presentation on "Loosen Your Dependencies with Dependency Injection and Inversion of Control Containers". It was a great discussion to have with everyone and I like to learn there as much as I teach.
I also enjoyed teaming up with Scott Allen on his "A Gentle Introduction to Mocking" where we talked about mocks versus stubs, test pattens and mock frameworks such as Rhino Mocks and Moq. Hopefully we'll be doing some more ping-pong sessions in the future.
Once again, I'd like to plug my DC ALT.NET group that I run. Our next meeting is scheduled for April 23rd and the topic will be Continuous Integration with Jay Flowers. We'll announce the location shortly for our group. You can go ahead and sign up for our mailing list here.
Anyhow, here are some resources that can help point you in the right direction. This includes articles, blogs and such that I find will be useful in your journey to better understand these things:
- Articles
- Blogs
- Books
If you note, I my code uses the following products in order to get it to run:
- ASP.NET MVC Preview 2
- xUnit.net
- Castle Windsor
- StructureMap
- Unity Application Block
- Unity Community Contributions
-
Unity Community Contributions and Interception
public delegate IMethodReturn InovkeHandlerDelegate(IMethodInvocation call,
GetNextHandlerDelegate getNext);
public delegate InovkeHandlerDelegate GetNextHandlerDelegate();
public interface IInterceptionHandler
{
IMethodReturn Invoke(IMethodInvocation call,
GetNextHandlerDelegate getNext);
}
}
-
xUnit.net RC3 Just Released
Well, Brad Wilson and Jim Newkirk must really be busy lately. After I talked about the release of xUnit.net RC2, just today, Brad announced the release of RC3. As always, you can find the latest bits here. This fixes a number of bugs and adds CruiseControl.NET and ASP.NET MVC Preview 2 support as well in addition to the Resharper 3.1 and TestDriven.NET support. For more information about it, check out Brad's post here. More or less, they are feature complete for version 1.0 and the only that I think really is needed at this point is a decent GUI runner and that's well acknowledged as something they are working on. Visual Studio integration would be nice as well...
If you were in attendance at last night's RockNUG appearance, all tests for my demos were using xUnit.net, so I am actively using it right now and will be for my CMAP Code Camp appearance this weekend. However, I did not show the GUI runner because, well, it's not there yet, and instead, the console runner works just fine, thank you. So, go ahead and pick up the latest bits and give the team feedback!
For my other posts in this series, check them out here:
One last note regarding Brad, he was recently interviewed by Scott Swigart and Sean Campbell over at How Software Is Built and gives some interesting insights in the open source world inside and outside Microsoft and his contributions to it. Very good interview and well worth the time to read.