Herding Code 124: Anthony van der Hoorn and Nik Molnar on Glimpse

On this episode, the guys talk to Anthony van der Hoorn and Nik Molnar about Glimpse, which allows you to debug your web site or web service right in the browser.

  • Jon asks why Glimpse was created.
  • Anthony gives a high-level explanation of what Glimpse does.
  • Glimpse is for your server what Firebug is for your browser.
  • Glimpse exposes a plugin architecture that allows it to be extended as necessary.
  • Kevin asks if Glimpse can be leveraged from application code. Nik explains it is possible, but 99% of the functionality you need will not require any extra code in your application.
  • You can point your logging framework to Glimpse and then you can see log entries relevant to the request.
  • The guys talk about how Glimpse fits in with NLog, ELMAH, mvc-mini-profiler, etc.
  • Nik says Firebug + Fiddler + Glimpse is the trifecta of development tools.
  • Jon asks how Glimpse can be used to help a user experiencing trouble with a production site.
  • Jon asks about running Glimpse in production.
  • Twitter question from @danielauger: “What was the most difficult metric to tap into?”
  • Anthony and Nik explain all the detail that is tracked in the Execution tab of Glimpse.
  • Anthony talks about how they decided to display all the data that Glimpse has.
  • Jon and Anthony talk about how Glimpse could be used to improve page response times.
  • Kevin asks about the performance overhead of using Glimpse and using it in production.
  • Nik explains how Glimpse plugins are enabled/disabled.
  • Jon asks about seeing the validation rules for a particular request.
  • Anthony talks about what is added in to core Glimpse versus what goes in to Glimpse plugins.
  • Jon asks about how Glimpse handles Ajax.
  • Kevin asks about record-and-replay functionality in Glimpse.
  • Jon asks about the implementation of the client side display of Glimpse data.
  • Nik explains how to configure Glimpse to easily compare differences between test, staging and production environments.
  • Jon asks about the future of Glimpse.

Show links:

Download / Listen:

Herding Code 124: Anthony van der Hoorn and Nik Molnar on Glimpse

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0124-Anthony-van-der-Hoorn-and-Nik-Molnar-on-Glimpse.mp3]

Note: Thanks to @rossfuhrman for typing our show notes this week!

Herding Code 123: Andreas Håkansson and Steven Robbins on NancyFx

On this episode, the guys talk to Andreas and Steven about Nancy, a lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono.

  • Scott Koon asks why Nancy was developed and what are the problems going up against ASP.NET.
  • Andreas explains Nancy is a lighter approach and doesn’t get in the way.
  • Andreas explains a basic Hello World – 5 lines of code, and Steven points out a Nancy app fits in a single Tweet.
  • Nancy has No System.Web dependencies – just depends on the Client profile, and works great on Mono.
  • Jon asks about support for OWIN, a Rack equivalent for .NET. Combining Nancy and OWIN allows you to have an end-to-end OSS solution.
  • Jon asks about support for view engines, and Andreas says that Nancy supports most major view engines including Razor and Spark. There are quite a few Nuget plugins.
  • Andreas points out that you can do most things in Nancy that you can do in ASP.NET MVC.
  • Jon asks if you can add Nancy to an existing ASP.NET MVC app.
  • The group discusses the value of having many competing web frameworks.
  • Steven explains Nancy isn’t about crushing the competition, just providing a different approach that some people might prefer.
  • Jon asks Andreas about his post about the value of OSS being the vision not the code.
  • Jon asks about web application security for Nancy – since it’s a lightweight framework, am I on my own when it comes to security? Steven explains the security features in Nancy, and how they work without requiring a dependency on System.Web.
  • Jon asks how many users of Nancy there are.
  • Kevin asks what the most challenging part of developing Nancy has been. – Steven: HTTP implementation and the syntax simplicity. Andreas: fighting C# syntax limitations.
  • Kevin asks whether Nancy is trying to be ASP.NET MVC.
  • The group discusses extensibility and custom configurations.
  • Andreas explains Nancy will be adding static and trace diagnostics in the future.
  • Twitter question from @bitbonk: “Relate or compare NancyFx with WCF Web API.”
  • Twitter question from @codereflection: “can we get around having to mock httpcontext w/ Nancy? Do we even need to?”
  • Via Twitter, @kppullin asks about how the Nancy team decides how to add features.
  • Jon asks about the best places for interested users to get information, and there’s a discussion of documentation, Google Groups, Twitter, and screencasts.
  • Jon asks about a NuGet packages that would have some samples. Andreas explains why the samples are included along with the source code on Github instead.
  • Kevin asks whether they do performance testing, and how Nancy’s performance stacks up.

Show Links:

Download / Listen:

Herding Code 123: Andreas Håkansson and Steven Robbins on NancyFx

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0123-Andreas-Hakansson-and-Steven-Robbins-on-NancyFx.mp3]

Note: Thanks to @rossfuhrman for typing our show notes this week!

Herding Code 122: Bert Belder on porting Node.js to Windows

This episode of Herding Code the guys talk to Bert Belder, a Node.js developer who’s working on the native Windows port.

  • Kevin asks how Bert got started with Node.js. Bert explains that he was working on a PHP based system which had a good amount of logic in Javascript, and he started looking to node as a way to consolidate that logic.
  • K. Scott ask Bert about how you’d go about sharing Javascript between client and server.
  • Kevin asks how the Windows port of Node.js got started, and whether there was any resistance to it.
  • Jon asks if the eventing model in Windows was one of the more difficult things Bert had to work on. Bert explains that getting REPL (read evaluate print loop) to work on Windows as it did on Unix was actually one of the more difficult challenges at the beginning.
  • K. Scott asks about experience of running Node.js. Bert talks about how Node.js runs as an executable, and it’s up to you to set up an HTTP server.
  • Kevin asks about the team that’s working on the Windows port.
  • Kevin asks Bert for more info on technical challenges on getting Node.js not only working on Windows, but really performing. Bert describes some challenges in implementing I/O Completion Ports, spawning child processes, etc.
  • Jon says that some of the initial negative feedback he’d seen on the announcement of the Windows port was concern over negative performance implications for the Unix version, and Bert says that one of the criteria they’re working under is that Unix performance not be degraded.
  • Kevin asks Bert if he had a background in high performance networking, of if he’d been  figuring things out as he went along. Bert explains that he and the team have had a good amount of time to work on this, so they had a pretty good idea of how to solve this.
  • Jon asks about performance testing, and Bert describes some of the load tests that they use.
  • K. Scott asks about if most Node.js modules will work on Windows. Bert says he guesses 90% will work, and the ones that won’t are making operating-system specific assumptions.
  • Jon asks Bert about his work on libuv, the abstracted platform layer for Node.js, and Kevin asks about the process of designing this abstraction layer.
  • Kevin asks Bert if there are places where Windows is more flexible or powerful than Linux. Bert explains that since node was written for Unix first, it wasn’t built to exploit Windows advantages, but with Windows kernel mode HTTP stack might be useful in the future.
  • K. Scott asks if the port could have been aided by open source projects like Cygwin. Bert explains how Cygwin isn’t really helpful in making node.js work well on Windows.
  • Jon asks if dropping support for Cygwin in Node.js will affect users, and Bert says the only effect may be for addons which are written so as to be Unix-only.
  • Kevin asks about Windows support for NPM.
  • There’s a discussion about the different hosting options on Windows including Azure and iisnode. Kevin asks about service hosting to allow socket level access (below IIS).
  • Kevin asks if there’s a plan for cross-platform system support for modules that need native access. Bert talks about changes to npm to support binary hosting so operating system specific binaries can be automatically downloaded.
  • Kevin asks if there will be a focused effort to get node module authors to support Windows.
  • Jon asks about multi-core scenarios. Bert talks about different options, explaining that iisnode can help with this, but he hasn’t seen options for interprocess communication in iisnode or in in either multi-core scenarios.
  • Kevin asks about the use of gyp for the node.js build process and about Bert’s development environment on Windows.
  • Kevin wraps up by asking Bert how to pronounce his twitter handle.

Show Links:

Download / Listen:

Herding Code 122: Bert Belder on porting node.js to Windows

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0122-Bert-Belder-on-porting-nodejs-to-Windows.mp3]