Atlanta .NET Regular Guys

Community Blog for two guys in Atlanta that focus on Microsoft and Community.

Quick About

This is the community blog for Brendon Schwartz and Matt Ranlett.  If you want to see their technical posts visit http://www.sharepointguys.com

Back To DevCow

Recent Posts

Tags

Email Notifications

    Archives

    September 2006 - Posts

    Chris found out you CAN make a difference in Microsoft BETA products

    Chris Wallace and I seem to talk about web standards and ASP.NET in the evening due to the fact that it is one of his favorite topics.  Recently he made some suggestions to the ASP.NET team and they listened. 

    Check out how he help give input into Atlas

    Are you interested in speaking at the Alabama Code Camp?

    If you might be interested in speaking at the Alabama Code Camp they are still looking for good people.  The Third Alabama Code Camp is on October 28th, in Montgomery. If you are interested and haven't already signed up, complete the attached speaker form or download it at www.alabamacodecamp.com and send it in.  I have heard that Mark Dunn and Jim Wooley are going.

    INETA Live broadcast is over

    Despite technical SNAFUs preventing some audio connections and me occasionally forgetting to share the desktop as I showed code, the webcast went fairly smoothly.  I didn't get disconnected in the middle of the presentation again.

    Unfortunately there was relatively low turnout.  I'm choosing to blame that on the fact that this presentation was initially set up (accidentally) for 6:30 PM PST.  That's a good bit later than the 3:30 pm EST that I recorded it.  Oh well - anyone who missed it and cares can download it from http://live.ineta.org

    Doggie Play Date

    Kim and I have three dogs.  Two of the three are mid-sized dogs weighing more than 35 lbs each.  The third is a Chihuahua and weighs in at about 10 lbs.  Because Bear, the Chihuahua, is frequently left out of the rough play between the other two mutts, we felt sorry for her and arranged a puppy play-date with some friends.

    Bear is on the left.

    Of course, since we then felt bad that we'd gone out with only one of the dogs, we felt obligated to then take all of them to a local off-leash dog park.  What we didn't know until we got there was that it was the monthly Great Dane owner's club meeting.  The dog park looked like it had been invaded by horses!  There must have been about 25 or so of the giant dogs, each one's shoulder was higher than my waist.  It's a pity I don't have any photos of that.  The Great Danes loved the curiosity that Bear presented, but Bear spent her whole time at the park trying to crawl up our legs to get away from the strange giants.

    Posted: 09-27-2006 10:40 AM by Matt Ranlett | with no comments
    Filed under:
    Matt is Live, on INETA Live! one more time

    http://live.ineta.org

    SharePoint 123! Level 300
    September 27th at 3:30PM EST
    Join us for our next exciting INETA Live! Webcast event on September 27th at 3:30PM EST for the level 300 content from the SharePoint 123 Training Series!

    The final session of the series (level 300) will be presented on September 27th at 3:30PM EST and will dive deep into advanced topics such as connected web parts and the SharePoint Object Model.

    Intended Audience:

    User group leaders, members, or community enthusiasts that are either interested in understanding how to use SharePoint to collaborate with others or gaining foundation knowledge to be used towards developing in the SharePoint environment.

    Just Published, our BETA Newsletter Article

    Check out the BETA Newsletter, Matt did a great job of getting us published in the current newsletter.  Here is our section!  The link for the newsletter isn't up yet, but they sent out the newsletter today.

    From the Community

    Matt Ranlett and Brendon Schwartz

    Business Intelligence and Security

    Matt Ranlett is a Senior Systems Analyst and Brendon Schwartz is a Senior Consultant, they are MVPs, co-Vice Presidents of Technology for INETA, and founders of the Atlanta .NET Regular Guys. As .NET community leaders in Atlanta, they helped create the freely available SharePoint 1,2,3! training material among many other things.
    Please read their article and visit their website.

    Matt makes a fancy dessert

    Last night I had another of my dinners with 10 or so friends.  Kim and I were charged with bringing a non-chocolate dessert since someone else was bringing brownies.  Here's what we brought and it received rave reviews:

    Almond Pear Cream Cheese Torte This Almond Pear Cream Cheese Torte took very little effort and came out looking great.  People really seemed to like it, so I thought I'd share with the group.  I found the recipe on KraftFoods.com.

    Posted: 09-25-2006 10:36 AM by Matt Ranlett | with 1 comment(s)
    Filed under:
    Brendon's personal mascot

    If Brendon was to draw a mascot for himself, this would definitely be it!

    Posted: 09-22-2006 10:02 AM by Matt Ranlett | with 1 comment(s)
    Filed under:
    NonTech: Meatloaf for dinner again?

    For those of you that don't know my crazy music taste, I like a song writer named Jim Steinman who wrote songs for people like Meatloaf.  That being said a new album "Bat Out of Hell 3" is being released soon, word on the street is that it will be released on October 31, 2006.  I hope to be listening to it soon (hint, hint).  Lot's of hints today.  Thanks mystery man!

    Wondering where Jim Wooley's Wonderings are?

    I don't know how he does it, but if you haven't been to one of Jim's presentations on LINQ recently you haven't been out in the community.  Jim has been working overtime at helping out the Code Camps in the southeast.  He has presented at so many of them that I can't even keep up anymore with all of them.  Maybe he can make a list of all of them he went to and presented at. 

    Jim is a great guy in Atlanta and we tried to get him to post his blogs on DevCow, but we were about a week late and he had started a blog somewhere else.  Maybe we can get him over one day to talk about new technologies like LINQ (hint, hint). 

    For now make sure and check him out at his own blog.

    Atlanta's own Chris Wallace helps make Community Server more standard

    Great job to our friend Chris Wallace on helping to make changes to Community Server.  He and DonXML have been working to make the code base for Community Server close to being fully XHTML compliant.  Great job guys!

    Good luck to Shellie with her new business

      Shellie's just chillin'Kim and I are friends with Shellie S,  who is hard at work creating her new business venture, Vonschmalhausen.  The business website isn't up yet, but I've linked to it in the event that it finally does.  The business has something to do with event planning and fashion, but I'll be honest - I don't really know much about either one of those topics.  I guess that means that I should hire her in the event that it becomes important to me!

    I do recall being at an event she organized at the brand new Georgia Aquarium.  Hundreds or even thousands of people were there, but that's not surprising considering the place has been opened for less than a year and has already greeted its three millionth guest.

    Good luck with the new company Shellie!

    Posted: 09-20-2006 6:00 AM by Matt Ranlett | with no comments
    Filed under:
    Atlanta Rules MSDN For October

    If you haven't gotten your issue of MSDN this month, there are some great articles on .NET 3.0 from some of our Atlanta Rock Stars. Make sure to check them out.http://msdn.microsoft.com/msdnmag/

    Peer To Peer: Harness The Power Of P2P Communication In Windows Vista And WCF  by Justin Smith

    SQL Server 2005: Jazz Up Your Data Using Custom Report Items In SQL Server Reporting Services  by Teo Lachev

    Windows Live Writer and Community Server

    Access Granted The Windows Live Writer tool is still in beta, but so many people are out there using it and telling me that I need to try it that I finally gave it a go.  It does seem to have a prettier UI than my trusty BlogJet and it does offer some nice inline image editing tools that Blogjet doesn't have such as the dropshadow effect above or the photo edge seen here on the right.  It doesn't have Blogjet's  ability to get the previously posted blog entries for editing.  While the Live Writer does seem to be able to view the most recent post, BlogJet allows you to go back several entries with it's unique History reader and make modifications to any previous entry.  I'm not sure if that's a big deal to me personally because I don't have a problem editing the older entries via the online editor.  However, I can see that being really annoying to some people.

    Finally, Live Writer does offer the ability to include maps in a blog entry.  This is a nice extension of Virtual Earth and has been gratuitously included in this post just to show it off.  While I chose to show the Street location of the Alpharetta Microsoft offices, I could have chosen the Aerial or even Birds' Eye View.  All in all, this looks like a nice tool, but I'm waiting to post this draft to see if it does something with the blog title and the page URL.  That's my biggest gripe about Blogjet - the title of the blog doesn't automatically become the friendly URL.  Let's see what happens...

     


    Microsoft's Alpharetta Offices
    Posted: 09-18-2006 11:17 AM by Matt Ranlett | with 4 comment(s)
    Filed under:
    Predicates and Generic Lists

    So I’ve been making a conscious effort to try to use generic lists because they save time.  I’m so used to building all of my objects and collections as custom objects and custom collections that some habits are hard to break.  However, part of what is driving me to really want to use the generic lists is what I read in Ken Getz’s recent MSDN article about Predicates and Actions.  I read his article and was thinking “Great – another example of the framework doing my work for me!”

    Unfortuantely my first try didn’t meet with very much success.  I’ve got a custom PurchaseOrder object with tons of properties and behaviors associated.  I wanted to find a specific PO in my generic list based on the PurchaseOrderNumber.  So I try code that looks like this:

    Dim _purchaseOrders As List(Of PurchaseOrder)
    _purchaseOrders.Find(
    AddressOf FindPOByID)

    Because I needed to pass in the PO ID value dynamically, my FindPOByID function would have looked something like this:

    Public Function FindPOByID(ByVal aPO As PurchaseOrder, ByVal POID As Integer) As Boolean
       If aPO.PurchaseOrderNumber = POID Then
          Return True
       Else
          Return False
       End If
    End Function

    Of course, that doesn’t match the signature of the System.Predicate delegate

    System.predicate

    So I ended up with a for each loop:

    Dim isEDI As Boolean
    For Each PO As PurchaseOrder In _purchaseOrders
       If PO.PurchaseOrderNumber = purchaseOrderNumber Then
          isEDI = PO.EDI
       End If
    Next
     
     
    Slightly disappointing for my first attempt, but my next attempt at System.Action worked swimmingly.  I have a custom collection of ReceiveItems.  Each ReceiveItem has a Receive method which does the required database work to import the item into inventory.  My collection (a List of ReceiveItems) also implements a Receive function – receive the entire group.  This is accomplished on the collection level with minimal code:

    Public Function Receive() As Boolean
       Try
          _receiveItems.ForEach(
    AddressOf ItemReceive)
          Return True
       Catch ex As Exception
          Debug.Print(
    "Error receiving items: " & ex.Message)  ‘Not fully implemented yet
          Return False
       End Try
    End Function

    Private Shared Sub ItemReceive(ByVal aReceiveItem As ReceiveItem)
       aReceiveItem.Receive()
    End Sub

     Notice the simple List.ForEach code.  In terms of maintainability, this solution can’t be beat!

    Finally, I tried the Predicate again:

    Public Function ValidateItems() As Boolean
       Dim invaliditem As ReceiveItem = _receiveItems.Find(AddressOf NotMyComputer)
       If invaliditem Is Nothing Then
          Return True
       Else
          Return False
       End If
    End Function

    This works great given the custom business requirement of matching a receive item to the PC it was received on.

    In general my conclusion is that the Predicates and Actions are fantastic methods of reducing the complexity of code, but they feel slightly limited due to the strict adherance to a single delegate function signature.  The only problem I can really point out in Ken’s article is that his examples are somewhat contrived, which gave me initially a hard time understanding just how to use this in my own work.

    Posted: 09-18-2006 7:59 AM by Matt Ranlett | with 2 comment(s)
    Filed under:
    More Posts Next page »