Herding Code

Archive for the 'interview' Category Grouped Archives

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!

    This week on Herding Code, we talk to Sean Chambers about migrations in .NET with Fluent Migrator.

    • Sean talks about how Fluent Migrator originated from Migrator.NET
    • Sean discusses how the benefits of a semantic model in Fluent Migrator
    • K Scott and Sean discuss how you’d start using Fluent Migrator in a project
    • Sean talks about some useful features, like InsertData\
    • Jon asks about support for different databases
    • Scott K asks about the benefits of a migration framework over a simple directory of T-SQL scripts
    • We take a question from Aaron Lerch (@aaronlerch) on Twitter about how Fluent Migrator would work with Fluent NHibernate
    • Kevin asks about Schema Update
    • Kevin and Sean talk about possible inefficiencies with objects being added, changed, and removed in successive migrations
    • K Scott asks about extensibility hooks
    • Scott K asks about stored procedures, functions, user defined types, etc.
    • Jon asks about how Fluent Migrator relates to other .NET migration frameworks
    • We take a question from Aaron Jensen (@aaronjensen) on Twitter about the benefits of a migration framework since T-SQL is already a DSL
    • Lightning round: K Scott starts the lightning round by asking what refactoring operations everyone uses most
    • Lightning round: What’s your favorite VM software? (spoiler: VirtualBox wins by a wide margin)
    • Lightning round: What’s your favorite movie that involves an android?

    Show Links:

    Download / Listen:

    Herding Code 70 – Sean Chambers on Migrations in .NET

    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.

    You’re interested in web application scalability and availability, right?  Of course you are!  Well, you’re in luck because Udi Dahan – enterprise development expert, SOA specialist and author of NServiceBus – joins the guys on this week’s episode of Herding Code. 

    • Jon kicks off the show by asking Udi if one can run a high-availability and high-scalability site (like stackoverflow.com) on two servers with ASP.NET?  Udi asks “how high is high” and talks about the importance of defining the scope of the architectural problem.
    • Udi comments on the how site behavior (high reads or writes, static or dynamic content, etc) dictates the way availability and scalability concerns can be handled.
    • Udi talks about how websites can be broken into fragments and how one can take advantage of content distribution networks and caches.
    • Udi stresses that high-availability inherently makes scaling more difficult and how scalability is a multidimensional cost function.
    • Kevin asks about common scalability mistakes and solution patterns. Udi replies with talk of SOA, web services, REST, one-way messaging, pub/sub and offloading things to the background in an asynchronous way.
    • Kevin follows up with additional questions: Why don’t more developers turn to messaging patterns to solve their scalability issues and can one introduce scalability changes incrementally?
    • Udi discusses the scalability patterns employed by RIA Services for Silverlight and gives his opinion on Azure as a scalability system.
    • Scott K asks about geographical distribution and Udi gets to the heart of the matter – high-availability means writing data to multiple places which means you are slowing your system down.
    • K Scott asks Udi about the AppFabric service bus provided by Microsoft and how it compares to already available distributed cache solutions like .NET Service Bus, MassTransit, and NServiceBus.

    [Note: The sound quality for Udi's voice is kind of rough. We tried to clean it up, and this is as good as it's going to get. Just pretend we're talking to him on a CB and things will be fine]

    Show Links:

    Download / Listen:

    Herding Code 67 – Udi Dahan on Scalability

    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 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.

    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!

    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!

    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!

    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. Download the latest version here. You also need to have JavaScript enabled in your browser.

    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!

    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 we talk to Chad Myers and Jeremy Miller about the FubuMVC project.Topics

    • What is FubuMVC?
    • History of the project
    • Built to take advantage of static typing
    • Composition over inheritance
    • Dependency injection tricks
    • IFlattener<T> for JSONification
    • Application of SOLID prinicples in FubuMVC and AltOxite
    • View engines
    • TextboxFor and no magic strings – advantages for refactoring support
    • Thin controllers, fat models
    • FubuMVC as the Ruby On Rails for ASP.NET
    • Benefits and problems of using generics for static typing
    • Use of meaningful generic type names rather than <T,U,K> ugliness
    • Testing tools for Javascript
    • FubuMVC’s Behaviors
    • Partial rendering strategies
    • Why they’re using NHibernate for AltOxite
    • IOC benefits
    • Strategies for Javascript management
    • qUnit for Javascript unit testing
    • How do I sell this to my boss?
    • Why FubuMVC as opposed to Microsoft’s ASP.NET MVC?
    • Why MVC isn’t just classic ASP revisited
    • Benefit of FubuMVC – removing choices through opinions
    • Ways an open source MVC framework keep up with Microsoft
    • FubuMVC futures and misc. benefits
    • Use of Rake as a build script

    This is the second half of our discussion with Miguel de Icaza about Mono, Moonlight, open source, and other fun stuff.

    Topics

    • When re-implementing .NET, do you match re-implement known bugs?
    • The test / regression system to maintain compatibility
    • How do you support so many platforms
    • What parts of Mono are written in managed code? Which are written in C?
    • Support for iPhone and Xbox
    • Mono’s static compilation options
    • Differing agendas in open source development
    • Microsoft’s emerging open source strategy
    • How the web has driven open source strategies and assumptions
    • Why Mono used licensed codecs instead of using a library like ffmpeg
    • Font distribution in Linux
    • Frustrations with the Windows multimedia API’s
    • What Miguel thought was insteresting at PDC
    • When will we be able to run ASP.NET MVC on Mono?
    • When will we get to use the C# 4.0 dynamic features in Mono?
    • How does Novell make money on Mono?
    Links

    Download / Listen

    Herding Code 29: Miguel de Icaza (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.

    This week we talk with Miguel de Icaza about Mono, Moonlight, and other fun stuff.

    Topics

    • Overview and update on Mono
    • Mono’s roots as a tool for desktop applications on Gnome / Linux
    • The need for a package manager in Windows
    • Managed operating systems (like Microsoft Research Singularity)
    • New areas of focus for Mono – portability and extension
    • Mono’s use in cross-platform gaming
    • SIMD optimizations in Mono
    • Mono’s implementation of the C# compiler as a service
    • How the Mono team determines what to work on next
    • Breaking changes in public API’s
    • Framework design
    • Mono’s relationship with Microsoft
    • The state of Linux desktop application development
    • Silverlight as a platform for desktop applications
    • When will Moonlight ship?
    • The challenges of building the Mono compiler
    • The Linear IL compiler enhancements in Mono 2.0
    Links

    Download / Listen

    Herding Code 28: Miguel de Icaza (part 1)

    Jon talks to Laurent Bugnion about WPF and Silverlight. Laurent’s an expert on WPF and Silverlight, and is the author of Silverlight 2 Unleashed.

    Topics

    • Differences between WPF and Silverlight
    • Thoughts on Silverlight offline
    • Model-View-ViewModel pattern and applications in Blend
    • WPF Disciples mailing list
    • Why use WPF instead of Winforms
    • Non-visual benefits of WPF and Silverlight
    • Benefits of the XAML format
    • Silverlight’s VisualStateManager compared to WPF triggers
    • Laurent’s experiences writing Silverlight 2 Unleashed
    Links

    Download / Listen
    Herding Code 26: Laurent Bugnion on WPF and Silverlight

    This is the first half of our interview with Phil Haack on the ASP.NET MVC Beta Release.

    Topics

    • The MVC Elevator Speech
    • MVC and Codebehind files
    • How MVC differs from Webforms
    • How MVC changes your development process
    • The difficulty in unit testing UI
    • What’s the threshold for testing your programs?
    • The File / New / MVC experience
    • How MVC is built for extensibility
    • How MVC is stress tested
    • Is there a controls story for MVC?
    Links

    Download / Listen

    Herding Code 23: Phil Haack on the ASP.NET MVC Beta Release (part 1)

    This week we talk to Brad Abrams and Tim Heuer about the Silverlight 2 release.

    Topics

    • What’s new?
    • The releationship between the DLR and Silverlight 2
    • The Eclipse for Silverlight development
    • The Open Specification Promise for XAML
    • Progress on Mono / Moonlight
    • The elevator speech on Silverlight
    • How Silverlight fits in with AJAX
    • Can Silverlight support separation of concerns and testability?
    • Will Microsoft be shipping frameworks for Silverlight?
    • Will Silverlight support offline scenarios
    • Silverlight as a “line of business” platform
    • The WPF / Silverlight connection
    • The Silverlight open source community
    • The Flash question
    • The casual gaming market
    • Silverlight performance vs. Javascript
    • Speculation on Silverlight 3 features…
    • The non-Windows development experience
    • The Silverlight story for iPhone and other mobile platforms

    Questions from listeners

    • What’s the story on Prism for Silverlight 2? What’s the story for enterprise Apps? (Chris Bilson)
    • What’s being done to encourage enterprise adoption, in a climate where many enterprise shops are still on IE6? (Eric Kemp)
    • What’s IE’s relationship with Silverlight? (Matt Hamilton)
    Links

    Download / Listen

    Herding Code 22: Brad Abrams and Tim Heuer on the Silverlight 2 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.

    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 Matt Podwysocki puts the fun in functional programming with a deep dive into F#. We’ve heard plenty of high level discussions of F# and functional programming lately, so we tried to dig into the gory details as much as possible:

    • What is functional programming, and why should we care?
    • Types of applications that would and wouldn’t benefit from F#
    • How F# differs from C# 3.x and Javascript
    • How F# is being used (games, scripting, data analysis and scrubbing, etc.)
    • F# pattern matching
    • Using F# in your C# or VB based applications today
    • Getting started: F# Interactive, reading the F# source, books and resources
    • Interaction with DLR
    • Functional features we’d like to see in C# and VB
    • Spec# and Sing#

    Links:

    Download / Listen

    Herding Code 18: Matthew Podwysocki on F# and Functional Programming

    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.

    Additional F# References:

    Books:

    Blogs:

    Podcasts/Videos

    F# Examples

    Chris TavaresThis week we talk with Chris Tavares, a developer on the Microsoft patterns & practices team, where he was the lead developer on Unity. He is also a virtual member of the ASP.NET MVC team, helping to design the new framework. Back in the day, he helped test out the effect of reference counting on .NET by building an experimental version of Rotor.

    Links:

    Download / Listen

    Herding Code 15: Chris Tavares

    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.

    Category Archives Other categories