Herding Code

Archive for the 'podcast' Category Grouped Archives

This week on Herding Code, the gang discusses Uncle Bob’s self-titled blatherings about DI, IoC and Mocking, Clojure and polyglot programming, managed javascript, and recent support for Mercurial at Codeplex. The show finishes up with another K Scott Lightning Round with questions about the iPad and non-technical blog recommendations.

  • Uncle Bob recently published two articles which are a little down on DI, IoC and Mocking. Was he merely trying to get a rise out of the community or was he sending a subtle message about poor use of our tools?
  • K Scott attended Craig Andera’s Clojure Presentation at a recent DC Alt.NET meet up. This sparks a discussion about Clojure Magic – functional programming, transactional memory, concurrency and multi-threaded programming.
  • The guys talk about the polyglot programmer, Scala running on the JVM and Java interop. Scott K shares his interest in getting a Clojure, Scala and F# guy in the same room and Kevin gives his thoughts about the language explosion.
  • Scott K leads a conversation about managed javascript, node.js, and IronJS.
  • The group offers their opinions on Codeplex support for Mercurial and address questions like “Why not Git?” and “Does this make Codeplex more appealing?”
  • Lightning Round Question #1: Who’s going to buy an iPad?
  • Lightning Round Question #2: What non-technical blogs do you read?

Show Links:

Show notes compiled by Ben Griswold. Thanks!

Download / Listen:

Herding Code 72: Questioning Uncle Bob, Clojure Magic, Mercurial Support at Codeplex, Thoughts About the iPad and Handerpants

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

This week on Herding Code, James Avery and Rob Conery join the cast in a lively discussion about NoSQL, TekPub, the new DotNetKicks and the technical debate du jour, ASP.NET Web Forms vs ASP.NET MVC.

  • Kevin asks Rob and James to share their views on NoSQL and the use of object and document databases.  James challenges the idea that all data must reside in a relational databases. Are ORMs so last year?   What’s going to be happening in 2020?
  • Rob claims he wouldn’t accept a ride to the bar in an 18-wheeler.  Whatever!
  • Jon asks what we’re saving with object databases – don’t ORMs abstract the database away?  So what’s the point?
  • James pimps TekPub
  • Rob talks it bit about domain-driven design and how we marry relational tables to object-oriented system. K Scott fails to see how the choice of a UI pattern is influenced by the type of database one is using. Rob explains.
  • Jon asks about maintainability and supportability issues and what’s your boss going to think if you suggest moving away from your current relation database solution. James gives examples on why non-relational solutions are easy to maintain and support.  Rob talks about quick ramp up time, scalability and performance like he’s given the speech 1000 times before.
  • The guys pleasantly discuss MSDN.and VB.and ASP.NET Web Forms.
  • K Scott shares his opinion on the future of MVC, Web Forms, Silverlight and Sharepoint as they will exist both inside and outside of the firewall.  Scott K, James and Rob also offer their opinions (shocking) and Jon’s chance to interject is taken away when the luminous “Page Lifecycle” crashes down upon him. 
  • James and Rob dig a little deeper into object and document databases and normalized database nightmares are exchanged.
  • Kevin asks how versioning works in an object database, the guys speak of Json and Bison, and serialization and deserialization.  James speculates that object databases will ultimately be more popular than document databases.
  • Rob addresses the idea that he’s condescending and rude.  The group talks about opinions and share their views on recent technical debates – ASP.NET MVC vs Web Forms, VB vs C#, ORMs vs Stored Procedures, and Jets vs Sharks. Can’t we all just get along?
  • Rob and James pimps TekPub again.
  • K Scott kicks off a flash lightning round – one question about VB6.
  • Rob answers Twitter question from @elijahmanor about TekPub’s technology stack and elaborates about video options.
  • James pimps DotNetKicks.

Show Links:

    Download / Listen:

    Herding Code 71: James Avery and Rob Conery on NoSQL and a bunch of other stuff

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

    Length: 1:18:38

    Show notes compiled by Ben Griswold. Thanks!

    What do Brad Wilson and Scott Densmore have in common?  They’re expert .NET developers, a couple of Mac fanboys, and they’re both joining the guys on this week’s episode of Herding Code.  Listen in while Brad and, yet another, Scott talk about the Mac, Windows, and the ins and outs of iPhone development:

    • In case you’ve never heard of them, Brad and Scott D introduce themselves and share their interest in the Mac and iPhone development.
    • Brad and Scott D talk about Objective-C as it compares to other languages including SmallTalk, C, Ruby, Python, and C#. 
    • In order to be a great Cocoa developer, do you need to be a good C developer?  Brad and Scot D discuss.
    • The guys talk about pointers, memory management and the benefits of following language conventions.  Not to be a shill, but Brad notes the brilliance of P/Invoke.
    • The guys talk through Interface Builder, Xcode, Blend, Visual Studio, the difference between Mac and Windows developer workflow, and the passion around UIs in the Mac world.
    • Scott K asks about ADO.NET vs Core Data. Jokingly, he asks if there’s even a way to save anything using Core Data.
    • The group quickly discusses available charting APIs for Cocoa and Core Animation libraries.
    • Brad and Scott D explain that Mac plists are sets of name/value pairs or bastardized xml and Jon asks for clarification on how Mac installations work under the hood.
    • Kevin asks if MonoTouch is best for C# developers due to language familiarity, the benefits of the rich libraries, garbage collection and potential productivity gains.  Brad and Scott D agree that learning the CocoaTouch platform is most crucial. In comparison, one’s language choice a insignificant. So, if one already knows Objective-C, is MonoTouch a waste of time? 
    • The show starts winding down with a quick discussion on how MonoTouch may be providing views to run on Android, the status of Moonlight and the unbelievable pace in which the Mono team develops.
    • The group leaves iPhone-land to talk about real-life work. Brad talks about the ASP.NET MVC 2.0 Template and Model Validation work he’s been up to, and Scott D notes he’s been working on bringing ASP.NET MVC applications the cloud – the Azure Cloud, that is.

    Show Links:

    Download / Listen:

    Herding Code 66 – Brad Wilson and Scott Densmore on iPhone Development

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

    Show notes compiled by Ben Griswold. Thanks!

    In this episode, we talk to Scott Hanselman about Jon’s new job with Microsoft, how (if at all) that affects this podcast, and running Ubuntu on a Dell Mini 9.

    • Scott H talks about how, other than the obvious request to get Scott Koon removed from the show, there’s no need to fear any changes to Herding Code.
    • Scott H bemoans the fact that people are so quick to attribute opinions to “working for the man”.
    • The group discusses whether Scott’s demonstration of a datagrid in Scott Guthrie’s PDC keynote constitutes “selling out”.
    • Scott K asks about what Jon’s new job is, and what Scott Hanselman’s STO group does. Scott Hanselman describes the difference between all the different developer community program manager groups at Microsoft.
    • Scott K asks about the lack of diversity on the STO team, and whether there will be more of a focus on data programmability in the future.
    • Kevin asks if working for Microsoft makes it tougher to criticize Microsoft. Scott K asks if working for Microsoft makes it hard to criticize competitors.
    • Scott Hanselman talks about the irritation of ad hominem attacks which discount opinions under the assumption that they’re job-motivated.
    • Scott H mentions that he’s been test driving Linux and other operating systems on his netbook in passing, which prompts a 5 minute geek-fest between Scott H. and Scott K. about Linux driver troubleshooting.
    • Scott K asks Jon what his top priorities are in his new job.
    • Scott K comments on the recent lack of focus on Web Forms, e.g. all the PDC videos he saw were using ASP.NET MVC.
    • Scott H clarifies who exactly is on his team, and how useful it is to have a team that’s got internal Microsoft access but is separate from the product teams.
    • Scott K takes us on a discussion of Microsoft certifications – whether the STO team can add some more realism to certifications. Best part: Scott K inadvertently complains about some of the VB6 exams that Scott H had written.
    • Scott H and the gang finish thing off with a discussion of certifications, education, and interviews as indicators of effectiveness as a programmer.

    Download / Listen:

    Herding Code 65 – Scott Hanselman on his Ninja Squad and Jon’s new job

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

    The guys grill Phil on ASP.NET MVC2, and introduce a new segment: Abusive Questions From Twitter!

    • Phil starts with the new <%: code block syntax, IHtmlString, HtmlString, MvcHtmlString
    • Jon asks about DisplayFor, EditorFor improvements
    • Phil discusses validation improvements – validation extensibility and client-side validation
    • MVC 2 is built on .NET 3.5 SP1
    • Phil talks about the productivity focus for MVC 2
    • New minimal templates, minimized web.config
    • Phil comments on the recent trend in software development towards streamlining – Windows 7, Snow Leopard, and how that’s also being applied to MVC and Webforms
    • Phil talks about his work on the Webforms Menu Control to clean up the markup, and how developers will opt-in to new but possibly breaking features
    • K. Scott asks about the new Areas feature 
    • Phil talks about Virtual Path Providers working in medium trust, but not until .NET 4
    • Kevin asks about what other features weren’t available due to maintaining .NET 3.5 support, and Phil ruminates on how the dynamic keyword could work
    • Phil speculates how named parameters could be helpful
    • Scott K asks about when MVC will get more opinionated, perhaps including dependency injection by default.
    • Phil talks about how MVC has never really been weak on the Model side, and how often people are really complaining about data access. Nothing new on that now, but it might be a focus in MVC 3.
    • Jon asks about bringing in some focused project templates.
    • Scott K (again) asks Phil about bringing dependency injection into MVC. Phil talks about why it’s not in there yet, and that you should vote for it in connect if you want it.
    • Phil discusses how bugs are prioritized on the ASP.NET team.
    • Scott K asks if Phil has a favorite feature. Phil likes the HTML Encoding syntax best of all.
    • Kevin asks the standard “when will the Spark view engine replace the webforms view engine” question.
    • Jon asks about which frameworks and community projects Phil’s taking inspiration from.
    • Phil talks about how he’s using Subtext to get personal experience with how the new features are working.
    • Scott K asks about adding in auto-mapping
    • Jon introduces a new Herding Code segment: Abusive Question From Twitter. We start with one by @alanstevens: why we should care about ASP.NET when there are so many other web frameworks out there?
    • Scott K talks about how people conflate languages and platforms.
    • Scott K tries to sneak in an abusive Twitter question, but fails.
    • Kevin asks what’s changing to make TDD work better in .NET and Visual Studio.
    • K. Scott talks about how he’s converted his blog over to run on Subtext.
    • Phil talks about his experiences in developing Subtext, and how that’s been a great way to get exposure to other open source projects and developers.
    • Jon asks about how improving the data access system for Subtext, because stored procedures make him cry.
    • Jon asks about the CodePlex foundation, and Scott K complains about how it’s not very transparent.
    • Phil starts complaining about how newborn babies make it hard to sleep, and things fizzle out.

    Show Links:

    Download / Listen:

    Herding Code 64 – Phil Haack on MVC 2

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

    On the heels of his recent Concept Camp 2009 fireside keynote, K Scott brings his opinion about victory in software development to the podcast. Listen in as the guys consider how to define and measure success, how to solve business problems despite our customers and ourselves, and how to focus less on risk and more on the potential reward.

    Show Links:

    Download / Listen:

    Herding Code 63 – Victory in Software Development with K Scott Allen

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

    Show notes compiled by Ben Griswold. Thanks!

    In this episode of Herding Code, Jon and Scott Koon pair up with Miguel de Icaza and Geoff Norton of the Mono Project and discuss MonoTouch:

    • Jon asks Geoff Norton, engineering lead on the MonoTouch project and founder of the Cocoa# and Objective-C# projects, to give the elevator speech about MonoTouch and why one might choose it over other iPhone development tools.  Geoff explains that MonoTouch is a commercial product from Novell. They have ported the Mono runtime to run on the iPhone thus allowing developers to write full native iPhone applications in languages which target the CLR.  Some might be attracted to MonoTouch because they feel C#, for example, is fluent and expressive compared to Objective-C.  Others might use the product so they can reuse existing components or code when moving to iPhone development.
    • Miguel shares that there is a strong pattern in Objective-C where you respond to objects through messaging between classes.  In the .NET space, you are most familiar with listening to events with attached methods such as lambda expression or delegates and MonoTouch uses this programming model and expose Cocoa API to be similar to the way C# does things. For example, the use of events, properties, delegates.  He continues by stating you also have access to .NET APIs in addition to all iPhone APIs.
    • Scott K asks if there are any disconnects with which .NET APIs are available. Geoff shares that MonoTouch is not the entire .NET 2.0 BCL.  In fact, development was started with the Silverlight BCL and additional namespaces were included as development proceeded. 
    • Geoff mentioned Silverlight. Jon’s Pavlovian Trigger is fired, he starts to drool and programmatically inquires about the potential of running Silverlight applications on the iPhone (even though, as Jon mentions, Apple is currently disallowing it.  Miguel speaks to the MonoTouch’s use of the Silverlight profile drops unnecessary dependencies upon the .NET framework thus providing for a leaner precompilation.  Geoff talks about what would be required to getting Silverlight on the iPhone.  Miguel states that Silverlight on the iPhone would not be a standard Silverlight experience.  Most notably, one would have to go through the AppStore and download a Silverlight enabled application rather than access a Silverlight application through the browser.
    • Jon asks about the cost associated with developing iPhone applications with MonoTouch. Miguel shares that Mono and Moonlight were basically developed to improve the Linux ecosystem.  As for Mono for the iPhone, it was difficult for Novell to justify the investment for this highly desired feature request so they decided to charge for it. Geoff notes they have a 100% free, non-time limited evaluation version which works with the simulator. It’s only limitation is you can’t get your application onto the device. Please note that you get a $150 discount on MonoTouch if you register for MonoSpace.
    • Jon asks Geoff for an overview on how to get started with MonoTouch development. Geoff provides the high-level steps – get the iPhone SDK from Apple, pay Apple $99 to become registered iPhone developer, load up Mono Develop, create a new iPhone project from template, start typing C# code, you will be using Interface Builder for layout, build and run.
    • Scott K  calls out how Interface Builder traditionally integrates with XCode.  Geoff comments about Interface Builder with C# and the generation partial classes as code behinds which automatically connects outlets to MonoTouch engine.  Miguel speaks to the advantages of the MonoTouch approach.
    • The guys talks about XIB (pronounced zib) and NIB files and freeze drying.
    • Scott K shares listener questions from @hugeonion: Is there is anything that you can’t do using MonoTouch.NET that you could using Objective-C?  Can you mix Objective-C and .NET when you are writing a MonoTouch project?  Geoff gives the liberal-minded answer and then Miguel finishes with the short answer — “There’s really nothing that you can’t do with MonoTouch that you can do with Objective-C". “I guess you could argue it’s a Turing machine so you can do anything on anything.”
    • Scott K asks another listener question from @shamel: What are the plans to improve the MonoTouch debugging story?  Miguel says the debugger will be available faster than you might think.  It’s coming but the decision was made to push to product out sooner than waiting for MonoTouch (and debugging, profilers, code-generator, more APIs) to be perfect. Geoff talks about the updated compiler and the ability to back-trace crashes using DWARF, the standard debugging format which Apple uses.
    • Jon and Geoff talk about graphics , MonoTouch development on a Power PC Mac and static compilation. Miguel talks about coding on paper (desk checking.)
    • Jon distills MonoTouch development down to two steps: binding to the iPhone APIs and then doing the static compilation to run on the iPhone.  Geoff speaks of support for generics, Cocoa#, Objective-C#, Monobjc and binding the CLR to Objective C. 
    • Scott K asks if they’ll be moving Mono onto the Android. Miguel speaks of Android, Java, managed language, garbage collection, native compilation, current demand and their current focus being Mono for the iPhone. Jon asks if there’s a story for Mono support on Windows Mobile.  After all Windows Mobile does run the .NET compact framework. Jokes and laugh follow…
    • Jon, Miguel and Geoff talk about MonoTouch iPhone application size.
    • Miguel talks about embracing cross platform and getting Windows developers working on Mac – and looking cool at Starbucks.
    • The guys discuss XNA for Silverlight, XNA game developer studio, XNA hosting on iPhone or the fact that you can’t distribution XNA games to the Zune. They also touch upon Mono running on the WII and PS2.
    • Geoff and Miguel finish up the conversation comments about the MonoSpace, the Open Source and Cross-Platform Conference for Mono and .NET which will be held in Austin this October 27-30.

    Show Links:

    Quote of the Show:

    • “Do your HTTP Get and parse the result like a man!” – Miguel

    Download / Listen:

    Herding Code 62 – MonoTouch with Miguel de Icaza and Geoff Norton

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

    Show notes compiled by Ben Griswold. Thanks!

    This episode of Herding Code is a roundtable discussion which includes the entire cast. The guys dedicate the majority of the show to the CodePlex Foundation – what the foundation provides, speculation on what the foundation might accomplished, and how success should be measured.  The guys also offer a glowing review of Bing Visual Search, they dig into the Microsoft Ajax CDN, and give their opinions of the recent Zune HD Release.

    Show Links:

    Download / Listen:

    Herding Code 61: CodePlex Foundation, Bing Visual Search, Microsoft Ajax CDN, Zune HD Release

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

    Show notes compiled by Ben Griswold. Thanks!

    In this episode of the Herding Code Podcast, the guys talk to Louis DeJardin about the Spark View Engine.

    • Louis talks about how the Spark View Engine was inspired by NVelocity and hatched from a comment thread on Phil Haack’s blog.
    • Kevin asks about the HTML-like syntax syntax in a Spark view – how it was designed, how it looks, and some of the benefits of a view engine that looks like HTML.
    • Scott K asks about some of the similarities to Cold Fusion markup. After making Louis squirm a bit, Scott points out the big difference in his eyes is that Spark works as part of an MVC pattern, while Cold Fusion embedded too much logic in the markup.
    • Jon sets Kevin up to look really good by asking about a feature Kevin requested – safe by default HTML encoding.
    • Kevin asks about how Spark’s strongly typed ViewData and strongly typed models work.
    • Jon quizzes Louis about how Master Layouts differ from ASP.NET Webforms MasterPages, Kevin tries to stump him with questions about partial page caching.
    • Scott K and Louis talk about how Spark was developed, and how TDD made writing a view engine easy.
    • Kevin and Louis discuss how Spark is being used to generate more than HTML.
    • Jon asks about how he got all the smarts to write a parser / templating engine.
    • Scott K speculates about the potential for a custom view engine enabling vendors to offer controls for MVC. Louis tells him that he’s crazy, and the two discuss options for visual designers in the MVC world.
    • Jon asks some questions about how an HTML-based syntax like Spark could allow for a better designer surface, but Louis convinces him that an HTML-based syntax is probably the best design interface, both for developers and designers.
    • Kevin asks Louis about the Visual Studio integration for Spark.
    • Louis takes a listener question from Jeremy Miller about caching compiled views.
    • K Scott asks about using Spark’s JavascriptViewResult to do JSON powered updates with the same template for both initial and update rendering. Louis points out that it’s possible to write code that’s both c# and Javascript compatible, so it can be used both client-side and server-side. We all agree that’s crazy, but the right kind of crazy.
    • K Scott asks about his selection of different tracking, source hosting, etc. services for the Spark project.
    • Vladislav II asks about Dynamic Language support.
    • Lt. Col. George Armstrong Custer asks about runtime vs. development time compilation, and how Spark runs under medium trust.
    • Louis explains how Macros allow you to simulate creating reusable helpers inside your templates.
    • Faustus of Byzantium asked about partials are integrated into views.
    • Edward I asks about how performance compares to the Web Forms view engine, and if there are any important tips/tricks to get the best performance out of Spark.
    • Ned Ryerson remembers talking to Louis at PDC, when Louis was pitching Spark to Jeff Atwood The Terrible. Jeff went with the Web Forms view engine which led to his eventual demise in 2012.
    • Duke Konrad I of Masovia asks Louis about the use of multiple view engines in a website to ease transition.
    • Kevin closes with some questions about Spark, such as how it plays with ASP.NET MVC 2 and where the name Spark came from.
    • Postscript – Jon catches up with Louis to ask about his new position at Microsoft.

    Show Links:

    Download / Listen:

    Herding Code 60: Spark View Engine with Louis DeJardin

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

    In this episode of the Herding Code Podcast, the guys sit down with Milan Negovan of ASP.NET Resources to discuss web standards, usability and accessibility.  Milan also shares his opinions on the onslaught of new technologies coming out of Redmond, why developers should avoid big conferences, the benefits of independent consulting, the motivation of Microsoft MVP Program and his impressions of ALT.NET.

    • The show kicks off with Milan’s explanation of semantic markup – thinking first about content and then presentation – and the Web Standards Trinity which includes Structure (HTML, XHTML, XML), Presentation (CSS), and Behavior (JavaScript). 
    • Milan talks about Quirks Mode vs Strict Mode. Jon asks about the benefits of XHTML especially with XHTML 2 recently being shot down in favor of HTML 5. 
    • Milan states that CSS has always been more of a recommendation rather than a true standard.  He asks why anyone would use skins and/or themes. Jon bites and guesses because it is a typical Visual Studio control-first option and themes (unlike cascading style sheets) are always applied last and may enforce corporate design standards. Milan also shares his frustration with the bloated, non-standard markup generated by ASP.NET Server Controls and he names names.  That’s right, DataGrid!  He’s talking about you.
    • Milan provides an overview of his impressive Microsoft.com redesign experiment and speaks briefly of Section 508 and his Color Blindness Simulator.
    • K Scott asks what a .NET developer should do to better adhere to web standards. Milan talks specifically about control development, ASP.NET MVC and the shift back to client-side development.
    • Milan speaks his mind about Silverlight’s poor usability.  He states Silverlight is being marketed to the wrong audience and it is not a replacement for JavaScript. Milan also calls out the educational gap for developers needing to act as designers. Shall I continue?  Jon agrees but provides a rebuttal. 
    • K Scott seeks Milan’s opinion on new technologies, big conferences, independent consulting, the Microsoft MVP Program and ALT.NET.  Milan shares that you’ll go insane if you try to learn everything which is coming out of Redmond and suggests that developers specialize.  Milan describes big conferences as nothing more than “booze and noise” and recommends developers avoid conferences like Mix and participate in the local community instead.  Milan talks about life as a business owner/independent consultant, job security and building one’s personal brand. Milan questions the motivation of the Microsoft MVP program and suggests it is merely another marketing channel for Microsoft.  Milan shares his positive impressions of ALT.NET and comments on the “remarkable crap” published by Patterns and Practices.  Scott K calls Milan out for being too much of a kiss-up marketing shill. Fin.

    Show Links:

    Book Recommendations from Milan

    Download / Listen:

    Herding Code 59: Web Standards with Milan Negovan

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

    Show notes compiled by Ben Griswold. Thanks!

    How about that?  You stuck around!  It was the Waylon Jennings, Good Ol’ Boys, Dukes of Hazzard, freeze frame cliffhanger at the end of Part 1 which hooked you, wasn’t it?  Undoubtedly you have been on the edge of your seat for days, just waiting to see how the show turns out.  Well, wait no further.  Here’s the commercial free, dramatic conclusion to the longest Presentation Patterns discussion ever.

    When we last left our heroes, Jeremy Miller, Ward Bell, Rob Eisenberg and Glenn Block were in the thick of their discussion.  Jeremy had just finished explaining the role of the Screen Conductor and Ward was ready to start flushing out implementation strategies.  That is, implementation strategies which might work across most solutions. 

    But thankfully, Glenn starts by stepping back a bit and asking how the presentation patterns discussion fits in the context of mainstream development.

    Will the guys provide a single answer to the age-old question, “Which came first the View or the ViewModel?”  Is there a one size implementation which fits all solutions?  Will this conversation ever end?  Find out this week on Herding Code.

    Show Links:

    Download / Listen:

    Herding Code 58: Presentation Patterns with Jeremy Miller, Ward Bell, Rob Eisenberg and Glenn Block (Part 2)

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

    Show notes compiled by Ben Griswold. Thanks!

    Have you seen the circus gag where clown after clown emerges from the smallest car one could possibly image?  Well, this week on Herding Code, the guys attempt that very same trick!  Listen in as Jeremy Miller, Ward Bell, Rob Eisenberg and Glenn Block (that’s right, four guests!) join the cast and talk Presentation Patterns.  This conversation started earlier this week on Twitter and it is shows no sign of slowing down.  Join us this week and next for an enlightening and exhaustive discussion about Views and Models and ViewModels and everything in between. 

    • Kevin asks the four guests to introduce themselves and then turns the podcast up to 11.
    • Jeremy kicks off the conversation with the “View First vs ViewModel First” discussion.  Jeremy talks about Views, ViewModels, Presenters, Behaviors, Implementation Detail, Separated Presentation, Passive View, iView Interface, Screen Activation, and User Controls… In summary, he’s pro-ViewModel or Presenter first.
    • Ward asks if anyone wishes to defend the View First position.
    • Rob shares that he tends to create his View and Presenter at the same time (although he’s mostly a Model kind of guy.)  Rob also calls out that he does a lot of prototyping in his workflow.
    • Ward talks about where his development always starts – sketching out the UI with his clients.  The ViewModel is ultimately developed to support the interaction discovered in sketching. 
    • Rob agrees. Talks more about prototyping first, gathering requirements, user feedback, workflow, architecture and conventions.
    • Jeremy considers application navigation, behavioral aspects of screens and the contract for view.
    • Glenn calls out the difference between Balsamiq mockups and screens which are maintained by a designer in Blend.  Which approach best supports the tooling experience, maintainability, and testability?  Glenn references Jonas Follesoe and how his designer girlfriend couldn’t function unless he defined the View first.  Glenn initiates conversations about Service Locators.
    • Jeremy questions whether one needs that level of detail.  Do you need to fake in a service locator for your designer experience or are there alternatives?
    • Glenn stresses that we must think about the designer (albeit there aren’t many right now), consider tradeoffs with varying approaches, talks about Prism and Patterns and Practices experiences, and tooling – particularly Blend.
    • Rob talks about providing simple conventions which are taught to designers in lieu of using an inversion of control containers like Windsor.
    • Glenn asks what the designer would see inside of Blend in this case and Rob isn’t aware of  any limitations with this approach.  Is this an issue of designer not having sample data to work with?
    • Jon shares his experience at Vertigo – applications favor design and tooling, applications don’t have complex business rules, applications are Blendable.
    • Jeremy appreciates that appearance may be the most challenging aspect of some applications.  In this case, maybe View First is the most appropriate approach but having Blend driving workflow is a case of the tail wagging the dog.  We need to consider the line of business applications and in that case ViewModel or Presenter must come first.
    • Glenn notes that the View being created first as part of instantiation does not correlate to whether the ViewModel drives behavior from that point on. View First is at the point of activation.  Whether the view is injected into ViewModel or the ViewModel get set into the View, the ViewModel is the guy which is in control.
    • Jeremy explains the Screen Activation pattern and some fairly complex scenarios where logic is executed before the view is activated. 
    • Ward states that he is not a fan of the view determining the ViewModel or the ViewModel selecting the View and prompts Jeremy by asking if a factory could pull the right pieces together and sequence them.
    • Jeremy takes Ward’s queue and talks about the Screen Activator acting as the gatekeeper which puts screens together.  Jeremy reference the Caliburn approach.
    • Rob clarifies the Caliburn ViewModels hierarchy and the use of screen activators and the composite pattern.
    • Glenn talks a bit about complexity, CAB, debugging hierarchies, event aggregators and messaging.
    • Jeremy calls out the benefit of using a composite pattern on a dashboard type application where a part of the screen may act as an application itself but an event aggregator would be best of cross-piece communication.
    • Rob notes that communication in Caliburn is local – it is parent to child or child to parent and this approach can really simplify development.
    • Jon and Rob discuss the approach of simply navigating between two tabs.  Would you use event aggregation, publishing event, commanding or what?
    • Jeremy gives detail to the Screen Conductor role and pattern and Rob stresses the value of methods such as Initialize, Activate, Deactivate, Shutdown and CanShutdown. Jeremy and Glenn walk through an example.
    • Glenn, Rob and Jeremy consider roles and patterns and if they vary from application to application.  Is there an established best practice?  Jeremy believes roles seem to be consistent but implementation changes from project to project. 
    • Ward wraps up Part 1 stating that he agrees with the idea of like roles but not ready to lock into any implementation.  He suggests we call out the actors and see how it plays… 
    • This conversation just won’t end.  Be sure to tune in next week for Part 2.

    Show Links:

    Download / Listen:

    Herding Code 57: Presentation Patterns with Jeremy Miller, Ward Bell, Rob Eisenberg and Glenn Block (Part 1)

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

    Show notes compiled by Ben Griswold. Thanks!

    You know Markus Völter as the founder and voice of Software Engineering Radio. Well, this week on Herding Code, Markus finds himself on the other side of the microphone – fielding, rather than asking, questions. Listen in as Markus explains model-driven software development and product line engineering. Learn about modeling, domain-specific languages, code generation, Eclipse, development outside of the Microsoft/.NET world and much, much more, this week on Herding Code.

    • K Scott leads the discussion asking about developing with Eclipse. Jon asks how Eclipse’s plugin model compares to that of Visual Studio.
    • K Scott introduce the topic of model-driven development and DSLs. Markus steps back and takes some time to talk about terminology.
    • Markus shares why UML can’t be used to appropriately describe one’s domain and jokes that Microsoft has been ignoring UML for years but that are now gravitating toward it just as everyone else is moving away.
    • Markus discusses the difference between modeling and programming.
    • Kevin asks Markus his opinion of Oslo and M, the Oslo Modeling Language. Markus says it is difficult to compare Oslo to Textual Modeling Framework (TMF) found in Eclipse, talks about code generation being incorporated (or not) into Oslo and shares his thoughts about competition between groups at Microsoft. K Scott and Markus discuss their concern with Oslo becoming an extension of SQL and the mixed messages Microsoft is sending.
    • Markus talks about the blurring lines between External vs Internal DSLs.
    • K Scott and Markus discuss productivity gains when incorporating modeling into one’s development.
    • Markus shares the things which changed and influenced his career – design patterns and modeling. Markus stresses that building languages and generators is more applicable to software development than learning the API-of-the-day. K Scott and Markus talk about learning, focusing on the important stuff and separating technical and domain concerns.
    • Jon asks about Microsoft Axum. Markus explains Axum as “Erlang for .NET” and expands upon the benefits of concurrent and functional programming.
    • The show finishes with Markus providing a very nice overview of Product Line Engineering.

    Show Links:

    Download / Listen:

    Herding Code 56: Markus Völter on Model-Driven Development, DSLs and Product Line Engineering

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

    Show notes compiled by Ben Griswold. Thanks!

    Let’s keep the party going! In this very special episode of Herding Code, Rob Conery puts Jon, Scott K and Kevin on the spot as he turns the tables and asks his own questions and passes his own judgments. Do you want to know how Herding Code came about? Are you curious how Rob and the guys feel Herding Code differs from the other podcasts? Have you ever wondered how the Herding Code members might map to the cast of The View? All in good fun, Rob derails the show and gives us a behind the scenes look into Herding Code productions.

    • The guys try to explain the value of Twitter to Rob. “Twitter makes me more productive.” “You must cultivate your network.” “It is all about who you follow.” “Twitter is a fishing net.” “I can quit at anytime.”
    • Jon shares how Herding Code started with an inadvertent Skype conversation.
    • Scott K talks about Herding Code’s diverse guest list which doesn’t consist of the usual list of suspects which might be regulars on other shows.
    • The Kevin Dente Roast continues…
    • Rob compares the Herding Code with The View, identifies each cast members role and announces that Herding Code needs to build in the happy hour aspect of podcasting. Have another beer, Rob.
    • Jon talks about cannibalism and attacking oneself.
    • The guys discuss Rob’s new spokesmodel spokesman position at Microsoft, ongoing Kona development and a bit about community outreach.
    • Are you missing K Scott? Tune into this week’s show to find out what he’s doing now. You may be utterly surprised.

    Show Links:

    Download / Listen:

    Herding Code 54: Rob Conery interviews the Herding Code guys

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

    Show notes compiled by Ben Griswold. Thanks!

    What? You thought SubSonic was dead! Well, crack open a beer and join the party – the SubSonic 3.0 Release Party!  That’s right. It is finally here and Rob Conery (Herding Code’s first repeat guest) gets a little rowdy announcing the new features.  Listen in as Rob speaks of SubSonic, the new role he’s playing at Microsoft, why he’s given up on Twitter and why Kevin Dente deserves to be roasted.  Does Rob completely derail the show?  Find out this week on Herding Code.

    • Jon kicks off the show asking Rob for some clarity on his job at Microsoft. Rob refuses to answer the question and unveils his plan to completely derail the podcast.  This leads into the first ever Kevin Dente Roast.
    • After things settle down, Rob announces SubSonic 3.0 and the “technical part of the podcast” is initiated.
    • Rob talks to SubSonic details – specifically, ActiveRecord, REST Handler, Linq engine, SimpleRepository, templating system, the use of the iQueryable Toolkit, the new docs site, and auto migrations.
    • “What’s so difficult about building a freakin’ expression parser?”  Rob states that coding is hard and the fact that LINQ leaves him a little afraid. He then speaks a little Mandarin and speaks of going shopping.
    • Jon and Rob have a discussion about the use of ORMs and performance concerns.  Rob states No one ever got fired for using Microsoft and adds a quick comment about SubSonic’s failed acquision of NHibernate
    • Scott K asks what it is like to write your own provider for SubSonic and notes that a SQL Data Service provider would allow one to scale to the cloud.
    • The guys field listener questions from Jeff Atwood (“Why is SQL so awesome?”) and Chip Cray (“How has your view of DDD changed since you started the StoreFront?”)
    • The conversation comes full circle with Jon asking Rob (again) about his job at Microsoft and if he’s paid to work on SubSonic.

    Show Links:

    Download / Listen:

    Herding Code 53: SubSonic 3.0 Release Party with Rob Conery

    Audio clip: Adobe Flash Player (version 9 or above) is required to play this audio clip. Download the latest version here. 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. Download the latest version here. 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. Download the latest version here. You also need to have JavaScript enabled in your browser.

    Show notes compiled by Ben Griswold. Thanks!

    While at MIX09, Jon sat in on a brainstorming discussion about next generation Twitter clients running on WPF and Silverlight 3 with Tim Heuer, Chris Bennage, and Alan Le. This was originally just recorded for a few people who couldn’t be there for our meeting, but we had enough positive feedback that we’re publishing it as a podcast.

    DISCLAIMER: This was recorded in a noisy room, and while I’ve done what I can to eliminate background noise and even out the vocal levels, the audio quality is poor (even by Herding Code standards). You’ve been warned.

    Thanks to Tim, Chris, and Alan for giving their permission to publish this.

    Show Links:

    Download / Listen:

    Episode 41: Next Generation Twitter Client Discusion At MIX09

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

    While K Scott and Jon were at the Microsoft MVP Global Summit, we listened in on a late night debate on NHibernate performance between Oren Eini (a.k.a. Ayende Rahein), David Penton, and Ben Scheirman.

    Show Links:

    Download / Listen:

    Episode 38: NHibernate performance with Ayende, David Penton, and Ben Scheirman

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

    This week, the Herding Code cast talks shop with Scott Watermasysk about cloud computing, blogging platforms, Internet Explorer, the DotNetOpenId project and much more:

    • Scott W, Scott K and Jon discuss Azure, Amazon Web Services and Google App Engine.
    • Jon asks Scott W to share his thoughts on blogging platforms and the difficulties around their development due to their many edge cases and full feature set.
    • Scott W answers a listener question about his thoughts on Silverlight.
    • Scott K, Jon and Scott W rant about corporations continuing to run IE6, why IE8 killed Scott W’s inner child and why, oh why, won’t Microsoft just rewrite Internet Explorer already.
    • Scott W shares his strategy for evaluating and learning new technologies and how to successfully manage remote development teams.
    • Scott W and the guys talk about the demise of SQL and the higher dependency on ORMs and traditional database alternatives like CouchDB.
    • Scott W comments on Silverlight and ASP.NET MVC and whether these technologies help solve his customers’ problems today.

    Show Links:

    Download / Listen:

    Episode 36: Scott Watermasysk

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

    This week on Herding Code, K. Scott kicks off an amusing conversation about office pranks and general fun in the workplace:

    • Jon explains why you might send goat pictures to your coworkers.
    • Kevin comments about the hazards of new carpet installation.
    • K. Scott talks about making an HP Printer come to life.
    • And learn why you must always, always keep one eye on Jon when he’s working…

    Show Links:

    Download / Listen:

    Episode 35: Fun at work

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

    This week Kevin leads a discussion about the inauguration on the web, then we field some questions from listeners.

    Topics
    • Live inauguration video on Silverlight sites
    • Photosynth picture of the inauguration
    • whitehouse.gov on webforms – will Viewstate bring down the presidency?
    • Armchair quarterbacking the whitehouse.gov site
    • whitehouse.gov updates robots.txt
    • And Twitter didn’t die!
    • Question – What is the one thing I should learn this year
    • - K. Scott – SOLID, dynamic languages, WPF
    • - Jon – Pick something, declarative UI, get involved in something
    • - Kevin – SOLID Principles, WPF
    • Question – Comparing working in Web, RIA, and WPF
    • Side discussion: What’s the deal with ClickOnce?
    • Whoa! Scott Koon joins us mid-call!
    • Quick discussion of jQuery 1.3
    • Question – What is the one thing Scott K wants to learn this year?
    • - Scott K. – Expressions
    • - K. Scott – I agree that Scott K should learn expressions
    • Side discussion: Why are companies so slow to upgrade .NET versions?
    • - Jon – Go, go, go!
    • - K. Scott – Not enough must-have features
    • - Kevin – Requires customers to upgrade

    This week Jon leads a discussion of real world development. We talk about how our development practices in our jobs and personal projects match up with the way we’re “supposed to be” developing. Topics:

    • What are the non-negotiable practices that we always use on any code we write?
    • Jon isn’t always Test Driven. Does that make him a bad person?
    • Where do code reuse and maintainability stack up when it comes to other real world priorities, like hard deadlines and short technology lifespans?
    • Is there a place for “forms over data” development? How about System.DraggyDroppy?
    Links

    Download / Listen

    Herding Code 21: Real World Development

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

    This week we talk to Ted Leung. Ted works on dynamic languages and tools at Sun Microsystems and is a member of the Apache Software Foundation. We discussed a variety of issues, including:

    • Ted’s wild ride through Apple, Apache, the Open Source Application Foundation, and Sun
    • How open source development can benefit software companies as well as the development community
    • How open source has worked for Apple, Sun, and IBM
    • Microsoft and open source
    • JavaFX
    • Chandler: what is it, what it does well, and where it disappoints
    Links

    Download / Listen

    Herding Code 20: Ted Leung on Open Source in the corporate world

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

    This week Scott K leads a discussion on remote work, remote access technologies, and synchronization software:

    • What software and services help with remote development
    • The joy of being your own network admin
    • Source control implications (TFS, Subversion, GIT)
    • The social tradeoff – fewer incidental conversations, more intentional conversations
    • Remote access software
    • Synchronization software
    Links

    Download / Listen

    Herding Code 19: Pajama Driven Development (working remote)

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

    This week, we talk with Jeff Atwood (of codinghorror.com fame) about his soon to be released developer Q&A site, StackOverflow.com.

    Links:

    Download / Listen

    HerdingCode 14: Jeff Atwood (codinghorror.com) talks about StackOverflow

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

    This week, we talk about the “back to basics” movement, which begs the question:  what are the basics?

    Download / Listen

    HerdingCode 13: Back To Basics (but which ones?)

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

    This is the second half of our interview with Glenn Block. He talks about the interesting stuff he’s been up to at Microsoft with Prism, Unity, and MEF (the Managed Extensibility Framework). Be sure to listen to part 1 first or Glenn’s crazytalk about MEF will spin your head around.

    Links:

    Download / Listen

    Episode 12: Glenn Block on Prism, Unity, and MEF (Part 2)

    This is the first half of our interview with Glenn Block. He talks about the interesting stuff he’s been up to at Microsoft with Prism, Unity, and MEF (the Managed Extensibility Framework).

    Links:

    Reminder: Geek Dinner with Jon, Kevin, and Jeff Atwood at the Pyramid Alehouse in Berkeley on 8/2 at 7 PM.

    Download / Listen

    Episode 11: Glenn Block on Prism, Unity, and MEF (Part 1)

    K Scott leads us in a discussion of LINQ, including:

    1. What is it
    2. How introducing LINQ to .NET changed the framework
    3. LINQ Providers
    4. LINQ to XML
    5. LINQ to SQL – how it’s different from EF, tips and tricks, when to use it

    Links:

    Also, Scott Koon was gone this week. We did our best to make sure you wouldn’t notice.

    Download / Listen

    Herding Code 10: LINQ

    Category Archives Other categories