Herding Code 102: Tim Caswell on Node.js

In this episode of Herding Code, the guys talk with avid open source contributor Tim Caswell about Node.js for which he is a community leader.  Listen in as the guys dig into node.js and what it has to offer.

  • Tim gives the node.js elevator pitch and begins to explain what node offers – like event loops, evented IO, callbacks, non-blocking requests, high concurrency, and real-time scalability.
  • K Scott shares that Tim’s wheat blog engine which sits on to of a Git repository was implemented using node.js.
  • Tim notes the greatest use case for node is still web development and touches upon how it differs from other framework like ASP.NET and Rails.
  • Scott K explains that he thinks of node as an abstraction over network programming and shares his excitement around the hundreds of interesting frameworks and modules developed with/for node.
  • Jon prompts Tim to talk about the node knockout competition and the various contest submissions.
  • Kevin asks for further explanation of evented IO and Tim provides further detail using a dentist waiting room analogy.
  • Jon asks how one troubleshoots callbacks and loops and how one manages state with node. Tim explains event based programming and why node.js came about.
  • K Scott asks if server-side js interest has recently exploded due to HTML5, web sockets and leaving connections open to the server. Tim talks about long polling and thread counts as opposed to the the node approach.
  • Jon asks Tim to speak about his extensive community contributions – namely his sharing of 47 repositories including wheat, step library for flow control and hamel.js.  Not to mention the howtonode blog.
  • Scott K and Tim talk about sharing javascript code between the server and client.
  • Jon asks about kiwi, npm and node package managers.
  • Scott K asks how the node.js and server-side javascript got so popular. Tim turns to the need for a real-time web solution, social media and community involvement and Ryan Dahl’s appealing personality and unique design strategy.
  • K Scott asks about Tim’s tutorial on learning javascript through object graphs. Tim explains the importance of understanding that javscript doesn’t operate like Java and the guys talk about jQuery’s impact in learning (or not learning) javascript.
  • K Scott talks about a time before kids when IBM released an OS in javascript.  Or was it Sun’s Lively Kernel?  Either way, it was before kids. You know what they do to one’s memory.
  • Kevin speaks of the early, hyper-experimental days of node and asks if the community is starting to settle down and standardize on a set of libraries.
  • K Scott asks for Tim’s thoughts on ECMAScript.
  • Via Twitter, Jackson Harper asks about no.de, a submission by Joyent into the node knockout competition, and it’s current status.
  • Jon calls out Couch and Mongo and the NoSQL movement and Tim to share the node data story. 
  • Scott K and K Scott talk about running Node on Windows.
  • Scott K dreams of IronJS and porting node modules to the DLR.
  • Jon asks how you get started with node  and Tim recommends the friendly IRC room, the friendly mailing list and suggests a newb move to San Francisco and attend the frequent meet ups.
  • K Scott asks about Tim’s everyday development environment and tools.
  • Kevin asks about the Node.js sweet spot. Is it for basic web development or is it geared towards more complex, real-time scalability problems?  Tim discusses the perks and challenges of Node.js in any development undertaking.
  • Scott K throws out the “E” word and asks about node’s penetration of the enterprise.
  • The show wraps with general conversation about node, Harmony and Javascript and Tim kind of misses his opportunity to pimp.

Show Links:

Show notes compiled by Ben Griswold. Thanks!

Download / Listen:

Herding Code 102: Tim Caswell on Node.js

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0102-Tim-Caswell-on-Node-js.mp3]

Herding Code 101: Kelly Sommers on Mobile Development and User Interface design

In this episode of Herding Code, the guys talk to Kelly Sommers.

  • Jon asks Kelly about her first big post, What fuels my passion for technology & writing code
  • Kelly talks about her experience getting started on Twitter
  • Jon asks Kelly about her post on how desktop UI’s feel boring compared to mobile UI’s
  • Jon and Kelly discuss notification systems like Growl
  • Scott K talks about how non-Windows operating systems have included things like multiple desktops, status widgets, etc. for a while
  • The discussion moves to how Windows is focused on the mouse, and how we’d like to see desktop UI’s that are geared towards touch and keyboard
  • Jon mentions Desktops as a multiple desktop interface for Windows
  • Jon drops his Alt+Space keyboard secret, and Kelly counters that it’s old news
  • The discussion moves on to synchronizing applications and systems
  • Jon brings up Mesh, and Kelly talks about why it didn’t catch on as much as it could have. Jon talks about how there’s a chicken and egg problem with cool Microsoft API’s which aren’t used in Microsoft products, and Scott Koon talks about how he though Mesh applications seemed cool but he just couldn’t get a hold of the SDK.
  • Next, the discussion moves to mobile development. Jon asks Kelly for her opinion of how Windows Phone development compares with other mobile development platforms.
  • Jon and Kelly discuss the Metro UI and UI discoverability in general
  • Kelly talks about performance tips for Windows Phone
  • Jon asks if there is any cross-platform development between mobile platforms
  • K. Scott asks about the upgrade scenario
  • Darrel Miller asks via Twitter about the online brainstorming meetings Kelly had previously proposed
  • Jackson Harper asks via Twitter what’s the most interesting thing Kelly has learned in the past month, and the conversation switches to node.js, threading, fibers, etc.
  • The gang discusses the Await keyword, recently announced at PDC
  • Scott K. asks for bets on how long until Await shows up in the Mono nightly builds
  • Random speculation of whether the Async CTP actually works on .NET 4
  • Kevin compares the Await syntactic sugar approach to hiding asynchronicity with the node.js approach which embraces node.js.

Show Links:

Download / Listen:

Herding Code 101: Kelly Sommers

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0101-Kelly-Sommers.mp3]

Herding Code 100: One Hundredth Show Celebration with Queen Beatrix

One hundred shows! Her Majesty Queen Beatrix shows up and talks with the gang about the previous 99 shows. Jon summarizes the server logs and beatboxes, K Scott talks about his jetset life via a flaky internet connection, Kevin reveals that this isn’t the podcast he thought he was signing up for, and Scott K explains why The Fat Boys follow him on Twitter.

Download / Listen:

Herding Code 100: One Hundredth Show Celebration with Queen Beatrix

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0100-One-Hundredth-Show.mp3]

[music loop during autotune bit courtesy of Incompetech]

Herding Code 99: David Ebbo on NuGet

In this episode of Herding Code, the guys talk to David Ebbo, an architect on the Microsoft Web Platform and Tools team, about NuGet, a new open source package management system for the .NET platform.

  • David describes the history of NuGet – how NuGet evolved from a web-based feature for use in ASP.NET Web Pages and the inspiration from a web-based database admin tool by David Fowler.
  • Jon asks about how NuGet is related to the ASP.NET Web Admin site which was included in ASP.NET 2.0.
  • David then tells about how, at Scott Guthrie’s prompting, the idea involved and how NuGet joined up up with the Nu project.
  • K. Scott asks about how NuGet works in practice using the Package Management Console.
  • There’s a brief discussion of the name, and David foreshadows the impending name change to NuGet.
  • K. Scott asks about which packages are currently available, and what’s involved in contributing a new package.
  • Scott K. asks about creating aliases, and David talks about the ability to change things via PowerShell.
  • David describes some of the logic involved in dependency management.
  • There’s a Twitter question from David Alpert about customizing the package installation folder.
  • K. Scott asks if this is usable in all Visual Studio projects, not just web projects.
  • Kevin asks about configuration transforms.
  • K. Scott asks about the overlap between all the different developer installer systems – Web PI, NuGet, and the Visual Studio Extension manager. David explains how the focus of NuGet is very focused on bringing libraries into one project.
  • Jon asks if they’ve seen people using NuGet in ways they hadn’t anticipated, mentioning a post by Eric Hexter on integrating NuGet and Solution Factory. David talks about how a NuGet package can include PowerShell scripts, which means you can add commands to the Package Manager console, describing how the NUnit package adds commands which allow you to run tests from the console.
  • Scott K. asks about the use of NuGet for… you guessed it… Javascript.
  • Kevin asks if NuGet could be integrated with the new project wizard.
  • Jon asks if there’s any possible integration with Visual Studio Snippets. David explains how packages are including source code with sample code, and how this fits the use of project level source code better.
  • Jon asks about Web Activator.
  • K. Scott asks about how you’d run a local package repository. David talks about how you can do this by just putting packages in a folder.
  • Jon asks about how a package gets officially submitted and added to the feed.
  • Kevin remarks about the way NuGet is working as an open source project which accepts submissions from both Microsoft employees and the community.
  • There’s a Twitter question from Elijah Manor about managing Javascript dependencies.
  • Kevin is happy to see the unit test coverage in NuGet, and asks about the unit test coverage requirements for package submissions.
  • Jon asks if there’s any integration of Mercurial beyond the server-side package submission.
  • K. Scott asks about the possibility of future integration between NuGet and OpenWrap.
  • Jon talks about how he sees a lot of opportunity for NuGet to introduce some great open source libraries to developers and development shops which might not previously have considered using them.
  • Kevin asks if this is another example of a Microsoft initiative squashing existing open source projects. David talks about how NuGet was created to fill a void where they didn’t see any leading package management systems for the .NET platform.
  • K. Scott asks about David’s T4MVC project. David talks about how it’s been really interesting and exciting for him as his first open source project.
  • Jon asks about how T4MVC is run on project build, and David mentions the Chirpy project.
  • Jon asks about how David divides his time between NuGet, ASP.NET Web Pages, ASP.NET in general, and T4MVC.
  • David ends with a call for contributions to NuGet.

Show Links:

Download / Listen:

Herding Code 99: David Ebbo on NuGet

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0099-David-Ebbo-on-NuGet.mp3]

Herding Code 98: Dale Ragan on Moncai

In the previous episode, when the guys were talking to Jackson Harper about Manos de Mono, he mentioned that Dale Ragan was doing cooking up something really exciting for hosting ASP.NET web applications with support for deployment via Git or Mercurial. So, they called him up and recorded a show right then and there. Jackson stayed on, and we got the scoop on Moncaí. Get the scoop and find out how you can get in on the just announced private beta.

  • Jon asks about where we can keep up with information about SineSignal.
  • There’s a discussion of what Heroku is, and how Moncai relates to Heroku.
  • Dale describes how he the idea got started and how deployment works.
  • What’s a Moncaí? Dale explains.
  • Dale explains how the infrastructure works, with Linux and Mono running in virtual environments.
  • Kevin and Jon ask about how Mono hosting affects ASP.NET support.
  • Jon asks about fractional CPU pricing, which leads to another cool feature – free accounts until you need to scale up.
  • Dale talks about how this compares to other virtual hosting offerings.
  • Jackson (still on the call from last show) jumps in with some info on running Mono from Visual Studio.
  • There’s talk about future possibilities – Mercurial, Windows support (and the complexities with SSH), support for other stacks.
  • Jon asks about the next steps for go-live.
  • Kevin asks about batch jobs, and Dale talks about the extension points for add-on and web hooks.
  • Jackson asks about local file access.
  • Everyone decides that this is really cool, and the show ends.

Show Links:

Download / Listen:

Herding Code 98: Dale Ragan on Moncaí

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0098-Dale-Ragan-on-Moncai.mp3]