February 2007

Monthly Archive

I love the intro quote.

Merlin Mann, founder of 43 Folders, is the most organized person on earth. Merlin Mann has a waste bin just for sandwich crusts. Merlin Mann can?t do anything with you on April 20th, 2025, because he has to get his oil changed. Merlin Mann drinks soda by descending tensile strength of each bubble. When Merlin Mann takes a dump it comes out like Tetris. Merlin Mann folds his shoes.

Link

Add this post to: del.icio.us:Dethroner interviews Merlin Mann digg:Dethroner interviews Merlin Mann spurl:Dethroner interviews Merlin Mann simpy:Dethroner interviews Merlin Mann newsvine:Dethroner interviews Merlin Mann blinklist:Dethroner interviews Merlin Mann furl:Dethroner interviews Merlin Mann reddit:Dethroner interviews Merlin Mann Y!:Dethroner interviews Merlin Mann google:Dethroner interviews Merlin Mann technorati:Dethroner interviews Merlin Mann stumbleupon:Dethroner interviews Merlin Mann windowslive:Dethroner interviews Merlin Mann

Pleasanton, CA - February 13, 2007 - InnerWorkings announced today that it has created a partnership with Adventos to deliver an intensive three week workshop to jumpstart migration from Visual Basic 6.0 to Visual Basic 2005 and the .NET Framework 2.0. Adventos Logo
Both firms advocate an approach to .NET learning for developers that goes beyond traditional training to ensure skills transfer through structured practice, on-the-job training, coaching, and mentoring.

The first week of this collaborative offering incorporates a foundation workshop on Object-Oriented Design and Development with the .NET Framework 2.0. Participating developers also complete 20+ hours of real coding challenges within Visual Studio using InnerWorkings’ unique structured practice methodology and code judging engine. Participants then move into two weeks of post-classroom work delivered by Adventos, with a focus on software architecture and building a real application with use cases. The entire program is fully supported by Adventos experts who will provide dedicated tuition, coaching, and mentoring.

“Adventos is excited to team up with InnerWorkings to bring to market a compelling solution for Visual Basic 6.0 to .NET migration,” said Mariano Delle Donne, CEO of Adventos LLC. “Our goal in providing these intensive workshops is to embrace industry best practices and ensure developer self sufficiency in migrating to Visual Basic 2005 and the .NET Framework.”

“InnerWorkings is proud to partner with Adventos for this important Visual Basic migration initiative,” said Francis McKeagney, CEO of InnerWorkings. “Now that mainstream support for Visual Basic 6.0 has ended, it is imperative that organizations move their Visual Basic developers to the .NET Framework. We are excited about working with Adventos to speed this important transition for organizations that rely heavily on their Visual Basic developers and code base.”

Under the terms of this migration primer, customers can send up to 16 Visual Basic developers for a three week engagement that includes an InnerWorkings foundation workshop on OOD&D with the .NET Framework 2.0, access to InnerWorkings’ coding challenges and reference framework for 90 days, and three weeks of onsite support and guidance from Adventos experts. This package also provides access to the Adventos Mobile Lab, which includes 16 mobile computers deployed on site for the duration of the workshop.

Please contact us at sales@innerworkings.com for pricing information and further details on how to sign-up for this joint VB migration initiative from InnerWorkings and Adventos.

About InnerWorkings
InnerWorkings offers a unique structured practice methodology for .NET developers set in a learning environment that is fully integrated with Visual Studio. Developers solve coding problems in a safe and supportive environment, while Inferent, our patented real-time code-judging engine, provides instant feedback. We offer an extensive reference framework that includes MSDNĀ® articles and Safari Books OnlineĀ®, while dedicated Personal Tutor support is available to individual developers for every Drill. In addition, developers can access our extensive library of proven code samples which is fully indexed for easy code search and retrieval.

About Adventos
Adventos (Advanced Enterprise Offerings and Solutions) is a Microsoft Gold Certified Partner that helps organizations to achieve higher levels of effectiveness. Adventos’ focus is on helping clients become self sufficient, increase knowledge and skill levels throughout the development lifecycle. Adventos goes beyond traditional training and ensure skills transfer through on-the-job training, coaching, and mentoring.

All products and company names herein may be trademarks of their respective owners.

Company Contact
Brian Finnerty
bfinnerty@innerworkings.com
+1 (925) 737 0600Adventos Logo

Add this post to: del.icio.us:InnerWorkings & Adventos Announce Visual Basic Migration Primer digg:InnerWorkings & Adventos Announce Visual Basic Migration Primer spurl:InnerWorkings & Adventos Announce Visual Basic Migration Primer simpy:InnerWorkings & Adventos Announce Visual Basic Migration Primer newsvine:InnerWorkings & Adventos Announce Visual Basic Migration Primer blinklist:InnerWorkings & Adventos Announce Visual Basic Migration Primer furl:InnerWorkings & Adventos Announce Visual Basic Migration Primer reddit:InnerWorkings & Adventos Announce Visual Basic Migration Primer Y!:InnerWorkings & Adventos Announce Visual Basic Migration Primer google:InnerWorkings & Adventos Announce Visual Basic Migration Primer technorati:InnerWorkings & Adventos Announce Visual Basic Migration Primer stumbleupon:InnerWorkings & Adventos Announce Visual Basic Migration Primer windowslive:InnerWorkings & Adventos Announce Visual Basic Migration Primer

We’ve just released a new Drill on Unit Testing with Visual Studio Team System - I was pleasantly surprised to discover that it is possible to have fun (and learn something useful) while creating unit tests against your existing code. The very first coding challenge we set developers in this 3 hour Drill is to create a unit test for a gaming application in which two crafts negotiate their way around a game area avoiding obstacles and trying to shoot each other. Normally I wouldn’t condone this type of violent behavior between two rival programmatic “entities”, but it is all in the service of further educational goals…really….

In this coding challenge, the sample project contains a Ship class which represents the two game entities and the behavior of the ships is controlled by two different state classes, SearchingState and AttackingState. There is no rope-a-dope strategy in this scenario, by the way - both ships are just out to seek and destroy each other, no questions asked. The state can be set by calling the SetState method of the Ship class and passing an instance of the required state object. There is no way to verify the behavior of the SetState method, the solution doesn’t contain a VSTS test project, and there are no unit tests. So your job is to add a new test project to the existing solution, and to create a unit test which verifies the behavior of the SetState method of the Ship class. Not a bad way to create your first unit test in VSTS, now is it?

You’ll be glad to hear that we stay with the destructive gaming theme for the rest of this Drill, focusing on the following tasks:

  • Introduction to Unit Testing with Visual Studio 2005
  • Implementing the dependency injection pattern
  • Implementing the test stub pattern
  • Implementing the mock object pattern
  • Using shared fixtures to improve test performance
  • Using custom assertion and finder methods

Incidentally, we use a number of reference materials throughout this Drill that will really help to further your knowledge of VSTS, including the book Working with Microsoft Visual Studio 2005 Team System by Richard Hundhausen (Microsoft Press, ISBN-10: 0-7356-2185-3). Another VSTS source that I’ve found to be pretty informative is Jeff Behler’s Blog, which gives you the inside track on Microsoft’s use of VSTS to manage internal software projects. Have fun and remember that we only encourage use of the AttackingState in sample applications that serve a higher purpose!

Add this post to: del.icio.us:Can you create unit tests with VSTS and still have fun? digg:Can you create unit tests with VSTS and still have fun? spurl:Can you create unit tests with VSTS and still have fun? simpy:Can you create unit tests with VSTS and still have fun? newsvine:Can you create unit tests with VSTS and still have fun? blinklist:Can you create unit tests with VSTS and still have fun? furl:Can you create unit tests with VSTS and still have fun? reddit:Can you create unit tests with VSTS and still have fun? Y!:Can you create unit tests with VSTS and still have fun? google:Can you create unit tests with VSTS and still have fun? technorati:Can you create unit tests with VSTS and still have fun? stumbleupon:Can you create unit tests with VSTS and still have fun? windowslive:Can you create unit tests with VSTS and still have fun?
I've been working with animation in WPF recently, and overall I'm really impressed. Like most of WPF, I'm finding it takes a mind shift in the way you think about how you would normally go about implementing certain features. In a lot of ways, you need to give up control of elements that you traditionally would have had pretty tight control over, such as the layout of UI elements. You just hand over some excruciatingly verbose XAML, and off it goes and does its thing. But anyway, mindless rambling aside, today I was trying to animate the position of a GeometyModel3D object using a key framed animation. The GeometryModel3D class exposes a Transform property that allows you to control the position and rotation of a model. So I added a TranslateTransform3D element to my geometry's XAML, named it so it could be manipulated directly from my code behind, and went to add a Point3DAnimationUsingKeyFrames assuming that the TranslateTransform3D class would expose either a Point3D property, or at the very least a Vector3D. But no, said WPF, no dice. No property for you! The TranslateTranform3D class exposes three properties by which you can affect position, OffsetX, OffsetY, and OffsetZ, which means that if you want to do a key-framed animation of the position of a 3D object, you have to create three separate DoubleAnimationUsingKeyFrames timelines, targeting the x, y, and z offset properties of the TranslateTransform3D respectively. Within each of those timelines, you then have to create the key frames for the x, y, and z positions individually. "My arse", I said to WPF. "Ok then", said WPF, "how about this. I can animate any dependency property that belongs to a class that inherits DependencyObject and implements IAnimatable, and is of the same type as one of my built in animation classes, those being Double, Boolean, Byte, Color, you know, pretty much every type you'd ever want to animate." That sounded good. If I could wrap the three offset positions from the TranslateTransform3D class behind a single dependency property, then that property could be animated and the three offset positions could be set from inside the property setter. So I created a dependency property with the following code:
public static readonly DependencyProperty PositionProperty =

DependencyProperty.Register(?Position?, typeof(Point3D), typeof(TurntableItem),

new PropertyMetadata());
and the CLR property:
public Point3D Position

{

  get { return (Point3D)GetValue(PositionProperty); }

  set { SetValue(PositionProperty, value); }

}
with the intention of setting the offsets from the setter of Position. Unfortunately, the setter isn't called as the animation updates because before the first frame of an animation is run, a copy of the target property is created and used over the duration. After much contemplating of my navel, a colleague sent me a link to this blog post - WPF Animation. This guy had the same problem, and a slightly different solution, but it turns out that you can use a PropertyChangedCallback delegate as a parameter to the PropertyMetaData argument in the dependency property Register method, which does get called every animation update. So what I now have is the following:
public static readonly DependencyProperty PositionProperty =

    DependencyProperty.Register(?Position?, typeof(Point3D), typeof(TurntableItem),

    new PropertyMetadata(new PropertyChangedCallback(PositionChangedCallback)));private static void PositionChangedCallback(DependencyObject d,

    DependencyPropertyChangedEventArgs e)

    {

        TurntableItem item = (TurntableItem)d;

        item.TurntableItemTransform.OffsetX = ((Point3D)e.NewValue).X;

        item.TurntableItemTransform.OffsetY = ((Point3D)e.NewValue).Y;

        item.TurntableItemTransform.OffsetZ = ((Point3D)e.NewValue).Z;

    }
Works a treat!
Add this post to: del.icio.us:Animating a 3D translation in WPF...the easy way! digg:Animating a 3D translation in WPF...the easy way! spurl:Animating a 3D translation in WPF...the easy way! simpy:Animating a 3D translation in WPF...the easy way! newsvine:Animating a 3D translation in WPF...the easy way! blinklist:Animating a 3D translation in WPF...the easy way! furl:Animating a 3D translation in WPF...the easy way! reddit:Animating a 3D translation in WPF...the easy way! Y!:Animating a 3D translation in WPF...the easy way! google:Animating a 3D translation in WPF...the easy way! technorati:Animating a 3D translation in WPF...the easy way! stumbleupon:Animating a 3D translation in WPF...the easy way! windowslive:Animating a 3D translation in WPF...the easy way!

Pleasanton, CA - February 5, 2007 - With the release of InnerWorkings Developer Interface v3.6, administrators now have access to extended product customization features.InnerWorkings Logo

Custom Links & Notes
It is possible to add your own links and notes directly into the InnerWorkings learning environment for the benefit of developers within your organization. For example, you could use this facility to intersperse InnerWorkings’ learning material with links to company-specific information such as internal coding guidelines and established practices. These links can be updated or deleted at any time, and usage is tracked across your organization. In addition, the new note feature allows you to insert notes that can direct your developers towards specific content and highlight additional details that might be relevant to your development process.

Detailed Drill Descriptions

The Developer Interface v3.6 also includes detailed Drill descriptions which provide developers with key information about InnerWorkings’ coding challenges. Each Drill description includes the following details:

  • Drill overview Intended audience
  • What you’ll learn
  • Prerequisites
  • Duration
  • Difficulty level
  • Release status

We hope that you’ll find these updates useful and will continue to give us your valued feedback on the future direction of our products.

Add this post to: del.icio.us:InnerWorkings Releases Developer Interface v3.6 digg:InnerWorkings Releases Developer Interface v3.6 spurl:InnerWorkings Releases Developer Interface v3.6 simpy:InnerWorkings Releases Developer Interface v3.6 newsvine:InnerWorkings Releases Developer Interface v3.6 blinklist:InnerWorkings Releases Developer Interface v3.6 furl:InnerWorkings Releases Developer Interface v3.6 reddit:InnerWorkings Releases Developer Interface v3.6 Y!:InnerWorkings Releases Developer Interface v3.6 google:InnerWorkings Releases Developer Interface v3.6 technorati:InnerWorkings Releases Developer Interface v3.6 stumbleupon:InnerWorkings Releases Developer Interface v3.6 windowslive:InnerWorkings Releases Developer Interface v3.6