Herding Code

In this corner, Microsoft Developer Evangelist and author, G. Andrew Duthie. In the other corner, C# MVP, ASP Insider and Open Space Technology facilitator, Alan Stevens. This week, G. Andrew Duthie and Alan Stevens bring their recent “Real Software Development vs Microsoft Bubble Development” Twitter debate to Herding Code. It’s all the open and honest, fun-loving, snarky banter without the 140 character limit.

  • Kevin kicks off the show by announcing our two fighters. Ding. Ding.
  • Alan throws the first punch – He likes Herding Code because it’s about real software development rather than development in the Microsoft bubble.  It’s about the tool users rather than the tool builders and it’s about honest feedback.
  • Andrew jabs back – He likes the stories from the trenches but he feels more credit must be given to the folks at Microsoft who are doing the right thing. In other words, don’t always assume the worst and snark about it.
  • Scott K keeps both fighters on their toes – First taking jabs at Alan because some DevDiv developers dogfood Microsoft’s stuff (e.g. Visual Studio 2010 and .NET 4.0) and then lands a sucker punch on Andrew noting Entity Framework is developing in the dark.  Who could have seen that punch coming?
  • The fight continues with talk about general disgust in drag and drop demos, the role of the Developer Evangelist, Microsoft’s goals and constraints, and the need for candid feedback.
  • If you missed the Twitter exchange, you will definitely want to listen in as The Alan Stevens vs G. Andrew Duthie Debate continues this week on Herding Code.

Show Links:

Download / Listen:

Herding Code 52: The Alan Stevens and G. Andrew Duthie Debate Continues

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. You also need to have JavaScript enabled in your browser.

Show notes compiled by Ben Griswold. Thanks!

This week the guys talk to Greg Young about what he calls “our greatest failure”.

  • Greg talks about how we’ve failed our so completely that they now base their success on our always failing in the same way. He starts with your classic Hello World use-case, the common sex change
  • Greg talks about how we’ve forced our customers to work with data when they’re naturally behavior-centric
  • The problem with losing the historical record – we’ve lost the value of context and intent
  • Scott K asks about determining software behaviors by observing user behavior
  • Greg describes how Command Separation and the Event Sourcing pattern can help in solving this
  • K Scott asks about how this fits in with REST-ful architectures which are generally data-centric
  • Jon asks about the UI space efficiency of designing for behavioral interaction instead of data interaction
  • Some examples from HR: Jon likes to promote people, K Scott enjoys discussions of termination procedures
  • Kevin asks how what Greg’s proposing is different from task based UI’s we’ve already seen
  • Jon asks how to sell this to management, who sometimes doesn’t feel the need to share business process information with the software developers
  • Greg and K Scott talk about how data-centric style applications lose valuable context – educational tracking, shopping carts, medical records, and financial systems.
  • Scott K and Greg talk about how data-centric applications don’t handle histrory well. Greg points out that there’s a big difference between an event and a snapshot model.
  • Jon asks how we persist this kind of event information – do we need to move away from relational databases?
  • Greg talks about why the implementational details are less important than grasping the high level concepts.

Show Links:

Download / Listen:

Herding Code 51: Greg Young on Our GRAND Failure – Thoughts on DDDD

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. You also need to have JavaScript enabled in your browser.

This week the guys talk to Damien Guard, a developer working on LINQ to SQL and Entity Framework. After discussing data access for a while, they talk about the programming font Damien publishes, Envy Code R.

  • Damien assures us that LINQ To SQL is not at all dead and talks about some of the new features in LINQ To SQL 4.
  • Damien discusses the T4 templates in EF/VS2010 as well as the LINQ to SQL T4 templates he’s released on CodePlex as L2ST4.
  • New features in EF 4 (LINQ operators, ObjectSet)
  • Additional LINQ To SQL mocking with ITable<T>
  • Some general discussion of query performance optimization in L2S and EF, including some enhancements in v4.
  • Code-only configuration to enable fluent configuration for EF
  • Kevin compares the code-only configuration to Fluent NHibernate
  • K Scott asks about how code-only configuration would enable TDD with EFF
  • Damien talks about the challenges of TDD and DDD when developing a framework
  • Jon asks the “Should L2S be on CodePlex” question
  • Damien mentions Matt Warren’s LINQ IQueryable Toolkit
  • Jon asks about the experience and improvements to migration from L2S to EF
  • K Scott asks about common L2S mistakes
  • Jon asks about POCO support in EF
  • Kevin bemoans the lack of support for refreshing a L2S model when your schema changes
  • The talk shifts over to the programming font Damien designed, Envy Code R
  • Damien explains the intricacies of TrueType, bitmap fonts and hinting
  • Discussion of font editing software, from FontLab ($500) to FontForge (free, open source), and Microsoft Visual TrueType (free, weird license agreement which must be faxed in)
  • Damien’s crazy font hack to get italic comments in Visual Studio
  • Jon asks about the new typography features in Windows 7, including the new DirectWrite API
  • Damien prefers Mac font rendering for quick glances, Windows for long use
  • Discussion of how fonts affect eyestrain
  • Jon talks about font rendering on Kindle and how he’s using it as an RSS aggregator

Show Links:

Download / Listen:

Herding Code 50: Damien Guard on LINQ to SQL, Entity Framework, and Fontography

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. You also need to have JavaScript enabled in your browser.

Have you binged, bunged or banged using Microsoft’s Bing? Any idea the type of questions you should feed Wolfram|Alpha? This week on Herding Code, the guys talk about “new search things that have happened upon the Intertubes.” Are you planning to catch the Google Wave? Hear the cast’s thoughts on Google Wave and much more in this week’s Lightning Round.

  • Jon digs into the Bing’s core feature list and shares that he is generally impressed with the specialty searches around travel, health, traffic, images, shopping and maps.
  • When it comes to search, the guys ask if Microsoft can really complete with Google. And does it really matter?
  • Scott K talks about Microsoft rebranding and questions what Microsoft is doing with its web properties? He compares Microsoft to Google which does everything web-based. Kevin chimes in and state that he doesn’t use a single Microsoft online property and Microsoft just doesn’t have a good story for this space.
  • The guys discuss usability features in Bing – specifically image and video search, search history and preferences.
  • K Scott brings up Bing’s nice use of Silverlight and speak to tweets stating Bing is Microsoft’s way of tricking you into installing the Silverlight plugin.
  • Jon and Scott K talk about conspiracy theories.
  • Jon kicks off a conversation about Wolfram|Alpha and shares how you can ask just about anything and you will even get an answer if you know exactly how to phrase the question.
  • Kevin states that calling Wolfram|Alpha a search engine is a misnomer. Really, it’s a computational knowledge engine made for academics by academics.
  • Scott K calls out that anything claiming to be related to search must live up to Google. After all, you google information. You don’t altavista.
  • K Scott compares Wolfram|Alpha to a restaurant where the food’s not great but the atmosphere is pretty funky.
  • Jon and Scott K discuss search aggregators, explorer federated search and Kevin compares Wolfram|Alpha to Stack Overflow.
  • K Scott comments on search in general and how competition is a good thing. K Scott is not completely comfortable with Google dominating the market share. It’s the same uncomfortable feeling he had when Microsoft dominated the browser wars and look how that turned out. Take note!

Compliments of K Scott, another Lightning Round Strikes!

Show Links:

Scott K’s Wolfram queries:
How many angels can dance on the head of a pin?
Do these pants make me look fat?

Jon’s Wolfram queries:
GDP of Moldovia divided by Ernest Goes to Camp box office?
Escape velocity of Saturn divided by top speed of a cheetah?
Population of Vatican City divided by the square root of the number of hours in a leap year?
How to cook a Welshman?

K Scot’s Wolfram queries:
How much wood could a woodchuck chuck if a woodchuck could chuck wood?

Jon Udell’s Wolfram query:
(H1N1 Mexico Deaths / Mexico Cases) / (H1N1 US Deaths / US Cases)

Download / Listen:

Herding Code 49: Search with Bing and Wolfram Alpha

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. You also need to have JavaScript enabled in your browser.

Show notes compiled by Ben Griswold. Thanks!

This week on Herding Code, the guys speak with Dustin Campbell about Visual Studio 2010 Beta’s "super exciting" programming, debugging and extensibility features and the F# May CTP.

  • The show kicks off with Jon commenting about the evolution of Visual Studio. Dustin then takes us down memory lane sharing how Visual Studio has been torn down and stitched back together over the years – this time with a new WPF-based IDE and an impressive extensibility model.
  • K Scott notes that F# is now being shipped with Visual Studio 2010 and teases Dustin about working on Project Euler problems in F# with his wife. (There’s a hot dating tip for you.) Dustin squirms a little and then talks in more detail about the latest F# release and the many language refactorings.
  • Scott K asks if dynamic languages like IronRuby and IronPython are scheduled to be shipped with later versions of Visual Studio and Dustin suggests that those languages may not find benefit in doing so.
  • Scott K asks if Microsoft is trying to kill off the competition by introducing IDE features already provided by CodeRush and ReSharper?  Dustin shares that the new extensibility model within VS2010 actually promotes third-party development and refers to the DevExpresses, JetBrains and Whole Tomatoes of the world as “partners” rather than competition.
  • Scott K asks if rewriting the VS2010 editor in WPF will elevate WPF’s exposure inside and outside of Microsoft and effectively force the framework to continually improve. Scott K also asks if componentizing Visual Studio (think Perspectives in Eclipse) is something we might see in future bits.
  • Jon asks about team size and what it takes to build a product like Visual Studio at Microsoft.
  • Scott K calls out Parallel Programming, a highlighted new feature in VS2010, and Dustin drills into IDE support for parallel programming with parallel debugging windows and profiling views.
  • Kevin and Dustin talk about improved TDD support with features like "Generate From Usage."
  • The show wraps up with the guys beating Dustin up a bit with talk about Visual Studio issues such as the Add Reference Dialogue slowness and the "Visual Studio is busy" dialogue.

Show Links:

Download / Listen:

Herding Code 48: Dustin Campbell on Visual Studio 2010

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. You also need to have JavaScript enabled in your browser.

Show notes compiled by Ben Griswold. Thanks!

This week on Herding Code, the guys speak with Joe Brinkman, Co-founder and Technical Fellow at DotNetNuke Corporation, about the ASP.NET MVC vs. Webforms debate, open source development, recent advancements in DotNetNuke and how to improve our industry and the community as a whole.

  • Joe explains that the Webforms vs. MVC debate boils down to a component based vs. object-oriented based approach to web development. Joe also shares that one shouldn’t only think about Webforms when doing the comparison. After all, let’s not forget web services, HTTPHandlers and HTTPModules are also part of the ASP.NET stack.
  • Joe speaks about the lack of a reusability model in ASP.NET MVC and Scott K offers solutions that go beyond mere copy and paste operations. Joe and Kevin explore how the absence of the component model in ASP.NET MVC is rescued by rich functionality packaged within the Javascript frameworks.
  • K Scott and Joe talk about core issues with Webform development. That is, ClientId management, .ASPX in URLs and maintainability concerns around Webform’s event model in the code behind and forcing statefulness in a stateless web environment. K Scott notes that .NET 4.0 will offer URL routing and greater control over ClientId generation so key areas of concern may soon be addressed, but it will take further framework improvement to provide greater control over the Webform abstraction layer.
  • Everyone agrees that Microsoft, vendors and community will provide components to pave the way to richer, easier to implement, ASP.NET MVC applications. Additionally, advancements will continue in the Webforms space.  Most notably, the guys assume there is bound to be a push towards a better Webforms testability story.
  • Kevin gives historical context to Webforms and why the abstraction model was revolutionary and arguably necessary. Knowing full well that hate mail is to come, Jon talks about using the “right” tool for the job and how he plans to continue to use Webforms where appropriate.
  • Jon and Joe summarize four big reasons why EVERY developer should learn MVC and Scott K asks what can be done with senior web developers who just don’t want to learn the new framework?  This leads into a conversation about honing one’s craft, mentorship, leading by example, and following through with supervision and code reviews.  
  • Now that ASP.NET MVC is in the picture, the group wrestles with what to call ASP.NET Webforms.  Classic ASP.NET is kind of catchy (and a little confusing.)
  • Jon and Joe talk about changes in Open Source – inside and outside of the Microsoft community – over the past six years. 
  • Scott K talks about the “promise” of being able to contribute to an open source project and asks about the managing patches – specifically on large open source projects.
  • The guys also dive into open source definition, licenses, legal considerations, protections around intellectual properties and implicit copyright on code.
  • The episode wraps up with a Joe providing a nice overview of DotNetNuke’s past, present and future.

Show Links:

Download / Listen:

Herding Code 47: Joe Brinkman on Webforms vs ASP.NET MVC 

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. You also need to have JavaScript enabled in your browser.

Show notes compiled by Ben Griswold. Thanks!

Everybody makes mistakes. The trick is to learn from your own or, better yet, the mistakes of others!  This week, the guys amuse and educate by graciously sharing some of their past developer mistakes. 

  • Hear tales of recursive website spidering, rogue mass emailers, and hardware snafus which end in puffs of smoke
  • Learn from Jon that simulating nuclear fission on a Cray supercomputer can get wildly out of control
  • Find out why you should think twice before optimizing a relative’s computer on New Years’ Day
  • What’s the quickest way to realize the benefits of a Transaction Server?  Why listening to K Scott’s ATM story, of course.
  • Discover why you might want to rethink flying Kevin out to your company to perform any hardware magic (but if you need to reconstruct a FAT table, he’s your guy.)
  • And get the most sage advice ever offered by K Scott on Herding Code.

As a bonus, the Extended Lightning Round!

Show Links:

Download / Listen:

Herding Code 46: Mistakes and News Recap 

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. You also need to have JavaScript enabled in your browser.

Show notes compiled by Ben Griswold. Thanks!

There’s a lot of community chatter around Domain Specific Languages (DSLs.)  If you’re interested in hearing more, you won’t want to miss this episode as this week on Herding Code the guys interview Larry O’Brien, professional writer and software developer, on Domain Specific Languages, DSL DevCon, Lang.NET Symposium and a number of related talks. 

  • Larry and K Scott summarize their thoughts on the recent DSL DevCon
  • Scott K shares that the hardest part about DSLs is defining what they are and what they aren’t. For example are SQL, CSS or XSLT Domain Specific Languages? Lucky for us, Larry provides a reasonably simple breakdown of Internal and External DSLs and touches upon Functional, Dynamic, Compositional, and Computational DSLs.
  • K Scott questions why one might create a DSL and proposes that communication and productivity are primary drivers. Larry concurs and talks about the miscommunication and inefficiencies associated with programmers translating domain expert’s preferred notation or diagrams into code.  This sparks a conversation about Microsoft’s claims regarding OSLO’s order of magnitude productivity increases and the premises required for this claim to be achieved. 
  • Kevin asks if DSLs and the new tools are targeted to replace developers. Don’t worry, you’re safe for now especially since the idea of letting the business people write programs has been failing since COBOL.  As Larry explains, it isn’t about putting programmers out of work, it’s all about communication, readability and offering domain experts a way to validate our code.
  • Larry explains why writing a language – specifically an external DSL – is hard. 
  • Jon and Kevin recognize similarities between Domain Specific Languages and Domain Driven Development and Larry speaks to their shared concepts – primarily expressing a domain in code.
  • Larry answers listener questions from Shawn Wildermuth and Ben Griswold regarding the difference between an internal and external DSLs and the role of the fluent interfaces and the relationship between functional programming and DSLs, respectively.
  • The guys also talk a bit about growing and roasting your own coffee, Hawaii, magazines and how a Mai Tai can disrupt one’s plan to take over the world.

Show Links:

Download / Listen:

Herding Code 45: Larry O’Brien on Domain Specific Languages 

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. You also need to have JavaScript enabled in your browser.

Show notes compiled by Ben Griswold. Thanks!

Whether you just want to write cool software for yourself or you are looking to kick off a side business, you can get started with little upfront investment. This week on Herding Code, the guys talk about the ease of becoming a one-man independent software vendor (ISV.)

  • Scott K starts off the show with a list of free online invoicing and financial tools along with a number of services which provide free disk space.
  • Jon notes that advertising and micropayments are cheap and easy to setup in minutes.
  • Kevin talks about his recent endeavor, review2Q, an ASP.NET MVC application, hosted in the Azure cloud, which helps automate the management of his Netflix’s queue. It was an itch that he just needed to scratch and, with little overhead on his part, it’s now available for you, too.
  • The guys discuss super cheap hosting and the numerous APIs and Services which provide tons of data available to re-mix.  They also discuss using Azure or Google App Engine to scale up as one grows. 
  • Jon comments on how free site templates and store/blog theme systems can make design a snap. 
  • Jon also calls out the fact that for most web developers the barrier to entry is so low.  Thus, one is somewhat susceptible to having their idea quickly copied.  This raises the question; will your investment pay off long-term? 
  • Kevin jokes that there’s an alternative approach to implementing your own, self-serving solution – just wait long enough and someone else will implement your idea.
  • Kevin and Jon discuss why the web is such an appealing platform to start a venture. It is all about the low barrier to entry, the instant gratification and immediacy of making your product available and easy accessibility.  Not to mention many sites are self-sustaining.
  • The guys brainstorm a few one-man startup website and mobile development ideas, wonder if they would ever again hear from Jon if he came upon 4 million dollars and question whether or not K Scott has fallen asleep.

Show Links:

Download / Listen:

Herding Code 44: Microbusiness

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. You also need to have JavaScript enabled in your browser.

Show notes compiled by Ben Griswold. Thanks!

This week on Herding Code, Kevin leads a conversation with Javier Lozano on ASP.NET MVC and the Model View Controller (MVC), Model View Presenter (MVP), Model View ViewModel (MVVM) and Model Model View Controller (MMVC) patterns.

  • The guys discuss the various patterns as they relate to ASP.NET MVC, Silverlight and WPF and dig into the differences between ViewModels and Models.
  • Scott K brings up the question: “What’s the difference between MVC and MVP?” and then quotes Jeremy Miller in stating, “MVP denotes a stateful conversation between presenter and view whereas MVC is just linear.”
  • K Scott discusses the differences between building applications “the Rails way” and how you can build any type of application any way you want with ASP.NET MVC.
  • The group fields a question via Twitter from Steve Bohlen: "ask about the (relative) importance of persistence ignorance in the M in MVC."
  • The guys talk at length about action filters, custom model binders and object-object mapping.
  • And the show closes with Scott K reintroducing THE LIGHTNING ROUND!

Show Links:

Download / Listen:

Herding Code 43: Javier Lozano on the M in MVC

Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. You also need to have JavaScript enabled in your browser.

Show notes compiled by Ben Griswold. Thanks!

[view list of all posts]