Show Notes:

Hello and Intro to Cake

(00:35) Gary and Mattias introduce themselves and explain what Cake is. Cake is a cross-platform build system that uses the Roslyn compiler and C# – like Grunt or Gulp, but using C# instead of JavaScript.

(01:48) Jon asks about the integrations and CI support. Gary says that’s a key feature: the build you run on your development machine is going to be as close as possible, if not identical to, the build you’re going to run on your CI server. Right now, Cake is set up with at least 10 online CI servers, which has the added benefit of providing them with a ton of badges for their GitHub readme.

(03:15) Jon says that he cloned the getting started repo and ran a script and some magic happened… but what exactly was that magic doing? Mattias explains that the bootstrapper (either build.ps1 or build.sh) fetches Cake from NuGet, then it launches the build.cake file.

(04:07) Jon asks if PowerShell on Linux will have an impact on Cake, or if the build.sh is simple enough that they’ll just stay with that. Gary says that the bootstrappers are very lightweight and normally don’t need to be changed (although you can if you want), so there’s no real advantage to moving to PowerShell since people who are building on Mac and Linux will probably prefer to just run a shell script.

(05:17) Kevin flips it around and asks if it matters for Bash on Windows. Gary says they’ve got this one covered, too, as they’ve already tested out Cake on Bash on Windows. Mattias says the hard part is the platform specific dependencies, and Gary agrees, saying that Cake is just a wrapper around the tools – there’s an expectation that the tools are either installed or available as a NuGet package.

(06:55) Jon asks if tools are well segmented per-project. Mattias confirms that everything is project specific – you can share if you want, but the default is that you can just clone a repository and build without thinking about dependencies.

Docker

(07:50) Jon asks how Cake works with Docker. Mattias talks about the preconfigured Docker images for Cake, which make it easy to easily test builds, handle integration tests, etc. He’s currently testing against Nano Server. Nano Server is very stripped down requires you to install a lot of prerequisites for Cake, so it’s nice to have a preconfigured Docker image for testing. Mattias talks about how versioning with tagged containers help them with integration testing. Gary talk about how they’re using Docker with Bitbucket Pipelines to really speed up their Travis build tests.

Cake Script

(10:25) Jon asks what a Cake script is – is it just C# code? Gary describes some of the additional build DSL features they’ve added, but other than that it’s just standard C# code.

(11:23) Jon muses about how there are build systems available in just about any programming language out there, but as a C# dev, it’s a lot easier to read a build script in C# code. Gary says that he’s a longtime user of PSake (a PowerShell based build system. The problem with that is that often his team members aren’t as familiar with PowerShell, so they don’t want to touch the build script. It’s a mental switch to go from coding in C# all day to switch to PowerShell to work on the build script. For the same reason it’s more comfortable to use a JavaScript based build script like Grunt or Gulp when you’re working on an Angular application and use FAKE when building an F# application, it’s just easier to work with a C# based build script when working on a C# project.

(13:30) Jon said that he opened the Cake file in Visual Studio code and saw there was an extension for syntax highlighting, and asks if there’s additional tools for IntelliSense. Gary talks about the current status of OmniSharp when running against Cake. Note that since this podcast was recorded, this has improved as explained in this blog post: How to debug a Cake file using Visual Studio Code.

(15:28) Jon asks about debugging a Cake script. Mattias says they’ve added a debug switch to the Cake exe, which waits for you to attach so you can debug. Jon says it sounds great to have debugging support for a build script. Mattias says it’s nice, but since your build scripts are often running on build server it’s also important to have good logging support.

Logging

(17:02) Jon asks what the logging support is. Mattias says there’s a built-in abstraction for logging as well as an exception handler, so to break the build you can just throw an exception. Gary say that the default is just to log to the build server like AppVeyor, but if you want to log to something like logstash you can. Mattias says that they log to standard output and standard error, and every build system integrates well with that.

.NET Core support, DI and Modules, Cross-platform Support

(18:06) Jon asks more about the .NET Core port. Mattias says they’re just about done, just working with integration tests. For the most part it’s pretty straightforward, but you can run into things like differences between kernel versions on Linux. The biggest issue has been waiting for dependencies to be available on .NET Core. In the past they’ve relied on Mono for Linux and Mac, and there are slight differences compared to the .NET Framework, so it will be good to be on Core CLR everywhere. (note: the port to .NET Core has since been completed).

(19:52) Jon says he notices they’re using Autofac. Mattias says they use it for dependency injection throughout the codebase, but they’ve replaced it in some places for things like their module system.

(20:33) Jon asks how the module system works. Mattias says you just add a module folder in your tools and implement some attributes on your interfaces that indicate what your module should replace. (22:17) Jon asks about any issues they ran into with the .NET Core cross-platform port. Mattias says there are a lot of dependencies you don’t think about – for instance nuget.exe isn’t available cross-platform or on Nano Server, since it only has the Core CLR. Gary says they made a conscious decision not to implement .NET Core early, so they avoided some of the early adopter pain that some other projects ran into.

(23:47) Jon asks if they’re doing anything specific to handle platform differences. Mattias says that there are a few IFDEFs, but for the most part issues are around tools support, in which case it just won’t launch at all. Gary talks about platform specific criteria you can use in your build scripts to make platform specific decisions.

Cake Tasks, Parallel Tasks, Build System Integration, Unit Tests

(26:36) Jon asks how task names are used in a script. Mattias says that those labels are used to determine task dependencies. Gary says you can also use the labels as entry points which are specific to the build server.

(28:22) Jon asks if tasks are run in parallel. Mattias says it’s not currently multithreaded because logs would be difficult to follow. When you define a task, it’s just added to the graph, and nothing’s actually executed until you call RunTarget. Gary said there is an open issue to allow parallel execution of tasks, but they’re still working on a good story around debugging and logging. Mattias says it’s standard C# so there’s noting stopping you from running async tasks using the standard C# async methods.

(31:46) Jon says he sees support for several build systems and asks about how you integrate with them. Mattias explains how CI systems can call commandline options, and Gary says that all build systems have provisions for environment variables, and Cake provides a typed wrapper around that, so you get a strongly typed object from the build-specific provider to make informed decisions. For instance, when running on AppVeyor their script pushes the NuGet packages to the prerelease MyGet feed from the development branch and the official NuGet feed when running on release.

(34:09) Jon asks about assembly info patching and versions. Cake can update based on version info. It’s got file hash support, which is important for pushing to Homebrew.

(34:55) Jon asks about unit test integration. Gary says they have method aliases for calling common unit test frameworks, and you can easily extend for other frameworks. Unit test harnesses have published return values, so you can make informed decisions based on specific unit test results.

Publishing, Installers, Release Notes

(36:46) Jon asks about publishing options. Cake can build the nuspec for you, you can use your own if you want, or on Core CLR you can use dotnet pack. Jon asks about some of the different ways NuGet is used as a deployment package. (38:42) Jon asks about other installers like WiX, NSIS, etc. Gary says that Cake is really just wrapping tools with strongly typed classes, which makes it easier to pass in property values to tools. There’s no real magic, it’s just bringing it up an abstraction layer, so you don’t have to remember the command semantics of each tool. Jon asks if, in addition to simplifying how you interact with tools, the abstraction makes it a little easier to switch between tools. Gary says that’s true, and describes how this works in practice.

(41:44) Jon asks about the release note parsing feature. Gary says there’s an included release notes parser, which can extract version numbers and bulleted release features from a markdown file assuming it’s in a known format. This allows you to stamp your assembly with the version number, and use the bulleted release notes in your NuGet or Chocolatey release notes. There are also Git Release Notes and Git Release Manager which can be used to generate release notes from issues in a milestone based release on GitHub. Gary says they use this with Cake releases, so just tagging a release gives them an end to end publish process which sets version numbers and writes release notes for all their release endpoints (NuGet, Chocolatey, GitHub release, etc.).

Addins

(44:54) Jon asks about the social network support. Gary and Mattias explain how the different addins can announce builds to Twitter, Slack, Gitter, Hipchat, etc. They describe how things like this that are useful but not essential are available as addins.

(46:28) Kevin asks if there are any addins that they see as missing. Gary says there aren’t at the moment. He’s got a generic build script for all of his addins, so adding to the script rolls out to all of his addins.

(48:08) Jon asks about the discussion in their repo: How do we prevent Addin’s becoming stale? Gary talks about the problem (a community member creates a useful addin, then stops maintaining the addin). Their plan is to set up a cake-contrib organization which can help with long-term ownership and support for community addins, allowing them to push NuGet updates as required if the original creator is no longer available or involved. The plan is to ask users to move their addins into the new cake-contrib organization and make the cake contrib user a co-maintainer. Note: Since this was recorded, they’ve set up this organization, as discussed in the wrap-up after the show.

Open Source Project Case Studies: NancyFx and IdentityServer

(53:14) Jon asks about some of the open source project build conversions to Cake, starting with NancyFx. Mattias explains some of the challenges, as well as the clear payoff: build script pull requests very soon after the conversion. Jon asks some nitpicky details about why the NancyFx build script script is spawning a process instead of using a Cake wrapper. Mattias explains the process by which build scripts are refined, and Gary points out the advantage of always being able to spawn a process if you need to do something Cake doesn’t yet support.

(57:43) Jon asks about the IdentityServer migration. Gary said the IdentityServer team had already done the .NET Core port running under PSake and just wanted to migrate to Cake to get cross-platform builds going. It’s also a lot simple of a build process because it’s doing less.

Assembly Merging

(58:50) Jon asks about ilmerge suport. Mattias says it’s pretty popular for tools, to allow you to distribute the tool as a single exe. Gary says he uses Fody Costura instead to handle assembly merging. Jon says he doesn’t think any assembly merging support is available yet for .NET Core. Gary agrees, and Mattias says that .NET Native support will be helpful when it arrives.

Future Plans and Getting In Touch

(1:00:08) Jon asks about future milestones and what’s on the horizon after the .NET Core release. Gary hints at some upcoming releases, which are covered in the post-show wrap-up.

(1:01:20) Gary talks about some upcoming speaking engagements, and Mattias mentions the Gitter chat, Twitter and GitHub issues as ways for users to ask any questions.

Post-Show Update

(1:03:10) Cake Contributions organizationThe Cake Contributions organization (cake-contrib on GitHub) is now in full motion. It’s a common place where people can put their Cake addins & modules, if they want. They still maintain and for all purposes “own” the code, but they get access to resources like CI services, common build scripts, better exposure and the Cake core team can assist with merging pull requests, fixing issues and pushing to NuGet if addin grows stale or the author just too busy with life in general. It’s been well received and quite a few projects has moved over.

(1:03:52) 0.16 Release with .NET Core supportSo in addition to full .net Framework support, Cake now supports .NET Core (netstandard 1.6). There have been a few patch releases following this, so as of Oct 11 they’re up to 0.16.2. Also, due to adding .NET Core support, it’s now possible to debug a Cake file with Visual Studio Code. That’s cool, because there’s now cross platform debugging support for Cake. There’s a blog post showing how to do that.

(1:04:25) FrostingFrosting is a stand-alone .NET Core runner and host for cake. Cake uses the Roslyn scripting API and provides a DSL for fetching dependencies like tools and addins. Frosting uses the .NET core SDK to handle dependencies, and your cake build script is really just a .NET Core console app. Both are running against the same Cake.Core and Cake.Common packages, they’re just being hosted differently. This gives you some advantages – you’ve got full Visual Studio IntelliSense and tooling support, use the standard methods to package your build as a NuGet package, etc. Frosting also includes a dotnet CLI tool, so you can call dotnet cake.

(1:05:46) Cake for Yeoman supportThis adds a cake generator which makes it easy to bootstrap Cake, including a build script, bootstrapper scripts and config files in the current directory just by typing yo cake. There’s also scaffolding support to create a new .NET Core project using Frosting with yeoman.

(1:06:18) Cake for Visual StudioThis is the first release of the Cake for Visual Studio extension. It includes syntax highlighting, Task Runner Explorer integration, bootstrapper commands in the Build menu, project templates for Cake addins, Cake Addin unit test projects, and Cake Modules

(02:55) Jon asks Matt to overview React. Matt explains how React handles views, components, and unidirectional databinding. Matt says it’s nice that it moves us towards the component model in the HTML world – moving away from the jQuery direct DOM manipulation approach to a more holistic approach.

(05:40) Jon says that he thinks that components introduce some problems of their own and asks Matt how React avoids that complexity. Matt says that’s why Flux and Redux were introduced.

(06:35) Jon asks what React Native is. Eric explains that React Native allows you to take the same concepts and tool used for building React web applications and use them to build native applications. It started at Facebook and has picked up a lot open source momentum.

How React Native compares to Cordova, Xamarin, etc.

(07:33) Jon says there’s always heated discussion when you talk about building native applications using web technology. What’s the overhead? Is this similar to Cordova? Eric explains the differences.

(08:50) Kevin asks you’d build a native application with React when there are lots of great native development tools out there. Eric talks about some of the advantages of building your application’s UI in JavaScript. Also, shipping updates as JavaScript files using CodePush can be a lot simpler than shipping a new binary for every update. Matt says you can also focus your development team on building the same application for all platforms using React skills rather than separate focus and development skills for each platform.

(11:22) Jon asks where React Native fits in on the scale from Cordova to more native tools like Xamarin.

(13:35) Jon asks how UWP fits into React Native and how they implemented it technically. Eric says they took a look at how React Android was built and used that as a guide. He discusses how they handled the runtime, and how the application JavaScript is handled by Chakra.

(15:50) Jon asks about the application is hosted. Eric explains that they first create and navigate to a XAML page, then there’s an initial call to start the JavaScript engine with the application name, then sends back over the bridge a bunch of operations against the UI Manager. The UI Manager will then create subviews and construct the UI tree. In the React view, you have a virtual DOM that represents your UI; that gets translated to operations that are sent over the bridge to create a native UI tree.

(17:30) Jon asks about how elements are styled, since from his experience that’s all done using CSS styles. Eric says they use a subset of CSS called Flexbox using a library by a developer from Facebook. Matt says when they ported over the F8 app to Windows, they leveraged the same styles and platform specific style pattern that had been used for iOS and Android.

(19:23) Jon asks what was most difficult in moving the F8 application to Windows. Eric says the styling part was pretty easy. The hardest part was in handling platform specific support. Matt describes an issue with linear gradient support.

(21:00) Jon asks how they handle data flow. Eric says they use Relay, which runs on top of GraphQL. It all just moved directly over. Matt says that’s the beauty of this – if there’s something written directly in JavaScript it just works.

(21:55) Jon asks about any other platform specific issues. Eric says that it’s conceptually similar to Xamarin in that are you need to keep in mind that you’re writing to a native front end experience. He explains that it’s a happy medium between web front-end (Cordova) and native in that the simple UI components like text are easily shared, but you can target more platform specific controls as needed. He talks about some differences in things like menus, split views and carousels.

(23:50) Jon asks about the cross-platform development experience? Do you use a lot of emulators? Eric says he mostly works on Windows using the Visual Studio Android Emulator. He says when he’s adding a new feature to React Native for Windows, he’ll pop open the Android emulator and use the UI explorer. Matt says he also uses Android Studio and Xcode.

(25:44) Jon asks if there’s a long build step, or if there’s a quick feedback cycle. Eric says that React is built to make the developer experience really fast, and explains how hot module reloading makes it possible to see application code changes without reloading or even losing current running state. Matt says that you also get the full Chrome debugging experience.

(27:15) Jon asks how you package your application for publishing. Matt talks about the publishing steps.

(28:10) Jon asks about the rnpm (React Native Package Manager) command-line tool. Eric explains how rnpm helps you include dependencies in your React Native applications. It’s extensible, so Eric and Matt used that to implement the Windows scaffolding experience.

(29:52) Jon says that in the scaffolded application he got when he ran rnpm, there are OS specific files for each view and asks if it’s possible to use a consolidated view for all platforms when appropriate. Eric says you’ll generally need a platform-specific entry point for each OS, but once you get past that you can do quite a bit with the core React Native elements.

(33:20) Jon asks how he actually runs the application as he’s developing it. Matt says they just read in from the command-line to start the packager and build and run the application using Visual Studio. The docs currently say Visual Studio is required, although that isn’t necessarily the case if you kick off your build using msbuild.

(34:30) Jon asks if it could be possible to create a React Native Windows application on Mac or Linux, or if you’ll always need Windows due to the SDK. Matt says you’ll always need the SDKs, but Eric points out that there is a web-based React Native Playground (rnplay.org), and they’d like to reach out to them to get Windows support added.

(35:33) Jon asks if anyone is using it beyond the F8 application. Matt says not yet, they’re still working on the dev experience before they start heavily onboarding people. Jon asks who’s using React Native in general and Matt points out the React Native Showcase.

(36:50) Since part of the idea of UWP is that it runs on multiple Windows platforms, Jon asks if they’ve done anything with that. Eric talks about how part of their F8 demonstration included showing the application on Xbox, mobile devices with Continuum and desktop. They’re interested in looking into HoloLens and IoT as well.

(38:00) Jon asks if it’d be possible to leverage React web code in a React Native application. Eric says that at F8 he saw a talk on the possibility of bringing React Native to web. There are definite sharing points in code between web applications and React Native apps, although you should expect to write native views, and points out that there is work going on to bring React Native to Tizen and macOS.

(39:35) Jon asks if React Native for Windows is a science project or an ongoing project. Eric and Matt say they’ll be watching for community interest. They expect to keep up with React Native releases, and are hoping for community contributions. Eric says there are hundreds of React Native community modules, and they can’t scale to supporting all of them without some community involvement.

(42:18) Kevin asks about the testing story – can you write unit tests and integration tests for React Native? Eric says it’s similar to building large cross-stack applications with tests for services and clients – where you write integration tests between your JavaScript libraries and native code, unit tests for native modules, and tools like Jest for your pure JavaScript components.

(01:58) Jon notes that they’re using Windows and CentOS and asks why CentOS as opposed to other Linux flavors. Nick says they tried Ubuntu first, but it’s more tuned for clients. CentOS is a variant of Red Hat Enterprise Linux, so all the packages work.

(02:53) Nick says that they use whatever’s the best tool for each job – factoring in the costs of each new tool (training, migrating, supporting, vendor overhead, etc.). They run Elastic Search, Redis, HAProxy and Logstash.

(03:50) Jon asks about how they’re using protobuf to serialize the information they’re persisting Redis. Nick talks about some specifics, including the different levels of caching that they’re doing. They’re using pub / sub with Redis via websockets. They’re not clustering, partly because there’s one Redis cache per SE site. He and Jon discuss how multitenant scenarios often require custom implementations.

(07:20) Jon asks about how they’re using websockets. Nick says that they’re used in a lot of places for optional updates. Their problems come from running on very few servers – they end up with huge connection tables per server.

(08:23) Jon asks about one of their Redis instances that’s handling machine learning with Providence. Nick says they log some metadata and performance information about about every single request. Providence is a system their data team wrote that analyzes the data, figures out locations, suggested user tags, etc. As a user, you have control over the personalization and can download the data or disable recommendations if you want. There’s also a mobile feed, for mobile apps as well. There are 40k ops/sec all day long against Redis. Scott K asks if he can manipulate his feed.

(11:51) Scott K asks about the L1 and L2 cache that Nick’s talked about. Nick clarifies that he’s been referring to HTTP caching on the web server and Redis caching.

(19:48) Jon asks about the Elastic Search implementation. Elastic Search doesn’t really support types, it has field groupings, which makes the upgrade more difficult. Nick explains that things are pretty vanilla now, but they’d like to make some customizations to support nested search results when time permits.

(21:49) Jon asks what version of SQL Server they’re using. Nick says they’re currently running the latest version of SQL Server 2014 and will move to SQL Server 2016 as soon as it releases. [Note: SQL Server 2016 has since released and they’ve upgraded.]

(22:11) Nick talks about some of the top reasons they’re looking forward to SQL Server 2016: string_split and JSON parsing. These are both useful for queries that take a list as a parameter. Jon reminisces about a time long ago when he used XML to pass lists to SQL queries.

(23:32) Kevin asks if they’re able to do a piecemeal migration without downtime. Nick explains how they do upgrades using replicas. They can test on other replicas, then fail over to them, or roll back to the previous master. They hate Windows clustering, and Windows Server 2016 and SQL Server 2016 should soon support distributed affinity groups which would allow them to do simple affinity group based upgrades.

(26:35) Jon asks if they use SQL Server Hekaton / In-Memory OLTP. Nick says they don’t, they run enough memory in their database servers that it’s not needed. Nick says it’s more for high-frequency no-lock access.

(29:27) Jon asks about how they handle migrations. Nick explains how changing tables is handled via a migration file and a ten line bot.

Source Control, Localization, Build

(30:47) Jon asks about their use of GitLab. Nick says it works okay, but they’re testing GitHub Enterprise internally due to performance. GitHub is significantly faster, search works a lot better (due to using Postgres search rather than Elastic Search), and there are some nice new features in GitHub like squashing commits.

(32:23) Jon asks about the localization features and is educated about the ja, ru, pt and es versions of stackoverflow. Nick explains some of the different localization issues that you run into in localization. Most localization solution work by string replacement, which requires string allocations. That doesn’t work at scale. They’ve written a system called Moonspeak which uses Roslyn to precompile view. This allows a direct response.write of the localized string via switch statements, which is a lot more efficient. They haven’t had time to open source it yet, but would like to.

(36:36) Jon asks about their build process using MSBuild. They use it mostly because it’s what the tooling uses. They could customize it more with PowerShell, but that would tie them more to TeamCity and Nick’s not sure there’s a benefit to making that move. Nick’s waiting to see where csproj is going – he’s got some big doubts it’ll be as terse as project.json, but he’s interested to see. Nick says historically MSBuild has been optimized for three-way merge generation; Jon says that was technically Visual Studio’s fault since MSBuild actually has had glob support for a while.

Upcoming Technologies, Visual Studio

(40:35) Nick complains about how slow Visual Studio is to reload projects. Their developers have scripts that just kill and restart Visual Studio, because that’s faster than handling project reloads.

(41:16) Jon asks if Nick’s played with Visual Studio “15”. Nick wonders about the technology used in the installer. He says it’s generally good, but they’re running into some issues with solution files changing when moving between versions.

(42:33) Nick says that they generally don’t ever use File / New, they copy an existing project and rename things. There’s a discussion about whether it’s possible to customize project templates. Jon says you can export a project as a solution template; K Scott mentions that SideWaffle has some capabilities there, too, but there was some “wonkiness”. And what’s the deal with GUIDs in project and solution files?

(46:09) Scott K mentions a command line base project generator that he started on years ago called ProjectStarter. He wishes that it was possible to configure Visual Studio to define a custom build tool rather than assuming everything’s in csproj. He gets that Visual Studio features like IntelliSense depend on controlling the build, but doesn’t like that Visual Studio has to “know everything about everything”.

(48:55) Jon says he sees two ways that cross-platform can work: either make the frameworks able to work without the tools knowing and controlling everything, or updating Visual Studio Code so it’s able to know and control everything. He hopes it’s the first way.

(49:50) Nick complains about how sometimes in-memory builds don’t reflect changes, or csproj doesn’t save before a build. He’d like everything to save before builds. Scott K calls out the Save All The Time extension for Visual Studio that Paul Betts made.

(50:40) Jon asks Nick if they’ve looked at ASP.NET Core. Nick says that they’ll mostly be starting with their internal tools. They have several libs that they’ll need to port, and they’ve got some difficult problems with libraries like MiniProfiler that need to support both .NET 4.x and .NET Core because the underlying APIs have some significant differences. You can’t just multi-target code that targets things like HttpContext. Other libraries like dapper and stackexchange-redis haven’t been as bad, and they’ve been working on them because lots of other developers are depending on them.

(55:03) Jon calls out some of Nick’s recent C# 6 tweets. Nick says he likes null coalescing and ternaries – they see more terse code as a lot more readable, but it of course varies by team. Roslyn has been really big for them, things like Moonspeak rely on it.

Questions from Twitter

(56:23) Matt Warren asks “What performance issues have you had the most fun finding and fixing.” Nick mentions the tag engine and a fun debugging issue they ran into where the TimeSpan int constructor uses Ticks rather than seconds or milliseconds, so their cache code was only caching values for tiny fractions of a second rather than thirty seconds. They find out so many issues using MiniProfiler; he wishes more developers would use MiniProfiler (or another tool like Glimpse) in their applications. They run MiniProfiler for every single request on StackOverflow and the overhead is minimal – if they can do it, you can do it.

(58:17) Matt Warren asks “What the craziest thing they’ve done to increase performance.” Nick talks about the IL related work they’ve done – sometimes instead of conditional code, it’s faster to just swap out the method body. They’re pragmatic, they only do this for extreme cases like things that run for every request and have real performance implications. What’s the trick for StackOverflow? Keep it simple.

Show Notes:

Bash on Windows and Windows Insider stuff

(00:44) Jon mentions the Bash on Windows announcement at Build and asks if Kevin or K Scott have played with it. This devolves into a discussion of Windows Insider previews. Jon likes it and talks about the steps for enabling Windows Insider preview builds. K Scott has been scared to try it, but it sounds like he’s convinced. Kevin is put off by the Insider term – Windows Insider, Visual Studio Code Insider previews, etc. K Scott adds “Windows Insider” it to his e-mail signature.

(05:15) Jon talks about the steps for enabling Bash on Windows. or Windows Subsystem for Linux (Beta), to use the official terminology.

(07:08) Feel the excitement of listening to someone type commands into a console window as Kevin asks questions about what’s installed and Jon tries to apt-get it all. K Scott and Kevin wonder about how things like filesystem and processes work, and Jon tries to make up answers.

(09:50) Kevin says it feels like an admission of defeat to add *nix support to Windows. Jon says it feels practical to him – developers are building for multiple operating systems (especially including mobile), so it’s nice to have it supported.

(11:19) Kevin’s ready for Cygwin to die in a fire, and Jon’s excited about ssh working less horribly on Windows. Kevin says the race is on to get Wine working on Bash on Windows.

Angular 2 and React

(12:55) Jon worked on a hands on lab for Build that had master-details using Angular 2 and ASP.NET Core. He said Angular 2 seemed a lot simpler than Angular 1 now. K Scott said the component model is simpler, but he’s seeing some resistance to the ECMAScript / TypeScript updates, new binding syntax, etc. The Angular 1.5 release also includes a component model that’s a much easier programming model. It almost feels like some older Microsoft component-based programming frameworks going back to Visual Basic 6: you’re working with components that have simple properties and events. The guys speculate on how soon someone will build the big visual editor for Angular 2.

(16:21) Kevin says TypeScript seems like a barrier. K Scott says it’s not strictly required. He rejected TypeScript for a while, but when he was working with Angular 2 and tools and editors supported it he decided he liked it. Jon and K Scott talk about how a lot of things that throw people off about TypeScript are really just modern JavaScript syntax.

(18:50) The guys discuss how Angular 2 and React mindshare will play out. Jon likes React as long as he never views source. Jon thinks the unidirectional flow is really simple, and Kevin agrees – after years of lower level Backbone, the simpler flow in React saves some mental energy.

(20:29) Jon mentions that React Native recently came to Windows, too.

Devices: Surface Book, Kindle and big batteries

(20:56) K Scott got a new Surface Book (after waiting to make sure nothing new was coming out at Build). He says it’s the best piece of PC hardware he’s bought in years – the build quality is good, the keyboard is good, he gives the trackpad of 9 out of 10. He says that the detachable tablet is a bit large as a tablet, so he’s using an older Surface for reading.

(23:58) Jon jokes that K Scott’s not likely to buy a Kindle and says he gradually stopped using his Kindle when he moved to Audiobooks, and kind of associates reading with work now. Kevin says that’s sad. They talk about Kindles for kids’ books.

(27:07) Kevin says the two big things he picked up for the new Kindle are physical page buttons and a three month battery. He says the main thing he likes about Kindle for both him and his kids (as opposed to a tablet) is that it forces you to read instead of getting distracted. The guys decide that tripling the life of an already one month battery isn’t a huge win.

(29:20) Jon says he recently bought a portable battery that can recharge his laptop, which is handy for long flights. (note: he said it was iPad size, it’s a lot smaller but is 1.2 pounds)

(31:15) Jon asks Kevin about new Apple hardware. Kevin says the iPad Pro screen is apparently astounding – he’s expecting them to be amazing in a few generations. Same for Apple Watch – he doesn’t have one yet, he’s waiting for version two. Jon says the improvement from Microsoft Band 1 to Band 2 was pretty nice, especially in the industrial design.

Lightning Round: Will Windows Phone be dead in one year?

(33:40) K Scott asks if Windows Phone will be dead in a year. Jon hopes not, as he just bought a Lumia 950 XL. He’d had a budget Blu Windows Phone since September, and the Windows 10 Insider builds were nice, but the camera wasn’t very good. He really likes Windows 10 as a phone operating system and thinks it’s sad that so few people will actually see it.

(35:55) K Scott got a Lumia 950 XL in January (when he dropped something on his previous phone). He got the docking station, too, and said it worked surprisingly well. The guys discuss how useful docking a phone is; Jon postulates that it could be useful for someone who does everything on their phone and occasionally needs to write a long email or edit their resume – especially if it can be hooked up to a TV.

(38:30) Kevin says that Windows Phone isn’t dead. it’s undead. It will linger on in a zombie-like state indefinitely.

Scott Koon sends us out with a request for further information by e-mail.

(00:54) JG asks Jon if he showed off any scary hacks. Jon describes an attack in which they made an executable editable both on disk and in memory, then edited both the IL and assembly code to do things like inject direct database attacks (bypassing . He describes how that could be defended using enterprise defensible architecture by talking to databases through services which can implement security layers. The goal is to prevent an attack at one layer from moving through the rest of the enterprise.

(1:59) JG says that often hears that major hacks occur by web application attacks that are then escalated to database attacks, often through password reuse. Jon says that’s true, since web applications are often deployed to the same server as a database or authentication server. He recommends using a service that’s locked to a single port, with security unit tests.

(2:43) JG asks which patterns he’s describing are unique to .NET development. Jon says that he’s emphasizing patterns that are easy on .NET – for example, REST services are easy to implement on .NET as compared to C++. He’s advocating architectural changes that are relatively easy to implement in .NET applications provided you start with them early on (rather than trying to retrofit security later).

A specific example: Protecting a medical record

(3:33) JG asks for some specific examples. Jon says they talked about security unit tests and user stories and gives and example from his talk about a medical record that’s being sent through an enterprise securely. To do that, you’d need to encrypt it on an edge node, so the web server and database don’t have decrypted data or decryption keys. Instead, you use a key server on a segmented network. Because of this, at no point could a sysadmin have gotten access to the record because it was encrypted at all steps.

"Above Admin"

(4:49) JG points out that Jon is talking about preventing access to sensitive data by sysadmins. Jon says that you should consider your attackers to have more power than a sysadmin – they refer to attacker privileges as "above admin" because they’ve taken over your AD infrastructure, passwords on routers, dropping new firmware, etc.

(5:50) JG refers to James Mickens’ keynote from the previous night (Herding Code interview here) and asks if there’s any hope. Jon says you need to plan, you need to minimize pivot points to prevent an attacker from moving between servers. He discusses potentially using static HTML that calls into secured REST services rather than web applications with direct database access, because building security around a REST service is much easier than securing a web application and web server.

Mobile and desktop application security

(9:03) JG asks about mobile application security, since he frequently hears about mobile apps that are supported by unsecured (or very poorly secured) backend services. Jon refers to Amazon and Twitter as examples of companies with published patterns for secured backend services.

(9:52) JG asks if for some tips on how different systems on the network should be secured, referring to desktop applications. Jon says that each system should defend itself from the other systems, so in this case the other systems should assume that the desktops could be compromised, the desktop applications should assumed the database can be compromised, there needs to be thought about defending the outgoing APIs, etc. There needs to be a plan for how to take things down and respond.

What do you wish you’d done?

(10:35) As a thought exercise, assume that your database or web server has been compromised: what do you wish you’d have done? Do that for different pieces of your application architecture. Jon says that you can make it a fun exercise, pit dev teams against each other, etc. Security should be fun and easy if you’re doing it right.

Wave 3D: A 3D operating system front end

(12:07) JG asks Jon about the 3D operating system he’d mentioned before the call. Jon describes Wave 3D, a cross platform front-end to multiple operating systems (Windows, Mac, Linux, Android) that gives the same exact experience for all backend systems. It can be connected to Amazon, Google and Dropbox document storage.

(12:56) Jon says it’s running on Mono and Unity and says it compares pretty well with 3D operating systems in the movies, and they’re looking at launching it via Kickstarter. It provides a simple, install-free environment with a document viewer, movie player and more on every platform instantly.

Show Notes:

What’s TrackJS?

(0:20) Jon asks Todd to explain TrackJS. Todd said it’s something he built to help with difficult JavaScript debugging issues a few years ago. JavaScript applications were difficult to debug because it was hard to define the different failure states of his applications. Over time, they worked to add in diagnostic state (e.g. shopping, checkout, etc.). Over time, they added in network state and user state. Over time they came up with telemetry, which defines states and state changes, which can be a lot more helpful than a stacktrace in diagnosing and fixing an error.

Why context is more important than stack traces

(2:34) Jon agrees, saying that it’s really frustrating to try to reproduce an error as a developer, and context is really important. Todd says that stack traces are limited because applications are so asynchronous in nature now – an error may be from a timeout which was a response to an Ajax event which was a response to a user click.

(3:44) Todd says they also track a lot of general information like browser, operating system, and things like date and time information. He once spent a really long time on an error one user was experiencing on a calendaring application because they were stuck in the ’70’s (literally).

(4:56) Jon ask more about how he gets access to the reported information when he’s troubleshooting an error. Todd says there are three problems to solve.

The first problem to solve is alerting: you get daily rollups on top errors and trends.

Second, when you log in, you need to see which errors are which important (filtering out background noise like unsupported useragents, strange Chrome extensions that modify the DOM, etc.). You need to know which errors impact the most people, which cause users to leave, and which are top browser-specific errors.

Third, you need to need to be able to dig into and diagnose a specific error.

(6:45) Jon asks more about how he’d diagnose a specific error. Todd describes the contextual information TrackJS provides for an error (including things like browser, screen size, user information). For example, one issue they diagnosed recently only occurred at a specific screen size due to a responsive design which modified the page so certain elements were only displayed in a range of screen widths.

Common problem: Partial Load Failure

(8:14) Jon asks Todd what running the service has shown him are common problems that developers aren’t considering in building JavaScript apps. Todd says it’s partial loading failure – cases where most of the JavaScript assets on a page load, but just one fails. In one instance, they saw everything on a page but the Stripe library load, which caused payment data to be insecurely posted.

(10:35) Jon asks about the best way to test for and handle partial load failures.

Common problem: Same Origin Policy

(11:36) Todd explains same origin policy restrictions in loading loading libraries from other domains, and using cross-origin headers to handle that.

Business model and subscription overview

(12:30) Jon asks about the business model for TrackJS. Todd explains that they offer free service to charitable and open source projects. For paid accounts, they bill based on page views rather than error count because he feels billing based on errors creates counter-incentives for users.

(2:09) Jon asks how difficult it is to call OpenGL from F#. Sean’s dad, Phil, explains how Sean used a domain specific language – about 50 lines of code. You can use it to create shapes like cubes and spheres, color them, transform them, etc.

(3:30) Phil explains how Sean used the F# REPL to create and modify 3D objects interactively, then used functional composition to put the parts (head, arms, legs) together to build the army man, the used functional composition and aggregation to create the army.

Learning Small Basic and F#

(4:37) Jon asks Sean if F# is his first computer language; Sean says he started with Small Basic. Jon asks if he found it difficult to move from Small Basic to F#, Sean and Phil explain how F# is actually a pretty natural step from Small Basic. Small Basic has no functions with parameters, so when they had a project that ran into that limitation they just moved the code from Small Basic to F# and used the Small Basic library to construct 2D shapes (leveraging WPF).

Fun Basic

(7:02) Phil said that last year he and Sean rewrote Small Basic as Fun Basic (available free in the Windows Store). It’s an IDE with IntelliSense, code completion, etc. It’s got backward compatibility with Small Basic, but includes function with arguments, pattern matching, etc.

Learning programming with video games

(8:02) Jon asks about what next for Sean. Recently they went to a game jam and made a platform game. Phil says the REPL environment is huge for game building.

(9:04) Jon mentions the IoT lab at NDC and asks Sean if he’s done anything with IoT; Sean says no. Jon says it seems like people try to get kids interested in coding with IoT, but maybe games are more fun to get started. Phil says that Sean’s got a Minecraft channel on YouTube. Jon asks Sean about making videos about making games.

(10:38) Phil says he got started on computers with games – he made his first game when he was 11, but his first commercial game was when he was 14 – Flint Eastwood.

(11:44) Jon asks Sean if this is his first time in Olso, and his first conference. It’s his first time in Oslo, and his first "speaking" oriented conference.

11:28 Jon asks if they’ve got any last messages, maybe to encourage kids to get started with coding. Phil recommends the Hour of Code, as well as other resources online. Phil says his older son got into programming by adding levels to games, then writing scripts for AI’s, etc. Phil says that’s how he got started – looking at other peoples’ code and going from there. Don’t necessarily get hung up on fancy coding concepts, just script something and have fun!

]]>http://herdingcode.com/herding-code-213-sean-trelford-on-composing-3d-objects-with-f-and-opengl/feed/0noAt NDC Oslo, Sean Trelford did a lightning talk on composing 3D objects using F# and OpenGL. Oh, and he&#8217;s 8 years old. Sean (and his dad, Phil) talk to Jon about learning coding with Small Basic and F#, and how it&#8217;s fun to learn coding by builHerding CodeAt NDC Oslo, Sean Trelford did a lightning talk on composing 3D objects using F# and OpenGL. Oh, and he&#8217;s 8 years old. Sean (and his dad, Phil) talk to Jon about learning coding with Small Basic and F#, and how it&#8217;s fun to learn coding by building video games. Download / Listen: Herding Code [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-213-sean-trelford-on-composing-3d-objects-with-f-and-opengl/http://herdingcode.com/wp-content/uploads/HerdingCode-0213-Sean-Trelford.mp3Herding Code 212: Steve Sanderson on Web Development in 2020http://feedproxy.google.com/~r/HerdingCode/~3/QeucBNsy2tY/
http://herdingcode.com/herding-code-212-steve-sanderson-on-web-development-in-2020/#commentsTue, 22 Sep 2015 21:22:54 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=724While at NDC Oslo, Jon talked Steve Sanderson about Web Development in 2020 – future JavaScript features, adventurous optimizations, and constraint-based styling.

Steve: That is right – I was trying to predict the future of client-side web application development. I don’t know how accurate my predictions will be but some of them are fairly safe bets like we’re going to start using ES 2015/2016 stuff pretty soon and then there’s a whole raft of other features coming towards us.

[00:00:52]

Jon: Ok. So that was actually the first time I’ve seen ES 2015 and 2016. I think I’ve heard in the past ES 6 and 7.

Steve: Yeah, it’s just a bit of new marketing really. The folks behind the standards there have basically committed to bringing out a new update every year. So we’ve got this annual cycle rather than up until know it’s been every five years or every ten years in one case. So given that it’s going to be annual it it sort of makes sense to give the name a year.

Jon: Right, yeah, definitely. Kind of like Visual Studio has done.

Steve: Exactly.

[00:01:25]

Jon: So what are some great features there in 2015/2016?

Steve: Yeah OK so ES 2015 was previously known as ES 6 has got to be the biggest set of changes that have come in Javascript since it was first introduced. If you look at something that’s written with ES 2015 syntax – if you’ve never seen that syntax before you would probably not even guess it was Javascript. It looks really different. So you’ve got import statements – which give you a clean alternative to having loads of script tags. You’ve got actual classes which are the same at runtime as regular Javascript prototypical inheritance but gives you a nice syntax for declaring that you can remember.

Jon: Can I start using those features? I know there’s some poly-fills and transpilers or whatever.

Steve: Yeah, I’d say if you want to start using ES 2015 today it’s really not as difficult as you might think. Assuming you want to target all browsers since, let’s say IE 9, then you can basically use almost all of the ES 2015 features. You just need to use a transpiler.

The one that everybody seems to be most into at the moment is called Babel (BAY-bel) or some people call it Babel (BAB-bel). I don’t know what the right pronunciation is.

Anyway it’s an open source project that will take your ES 2015 code and produce an ES 5 equivalent of it. It’s really fast, easy-to-setup and to be honest with you I can’t think of any good reason not to be doing that. If you’re not doing that you’re sort of just keeping yourself in the past really because this thing is a fully ratified standard now. We know this thing is definitely landing – all the browser makers are committed to bring this in. There isn’t really a good reason to not be using this today.

[00:03:19]

Jon: I’ve looked at using Typescript for that kind of class support in the past. Is there any kind of downside to continuing with that or are they similar?

Steve: No there’s certainly no downside to that. If you’re getting benefit out of Typescript then absolutely use it. Typescript in a way is a transpiler because it is taking some syntax that is a lot like ES 2015 – it just adds some additional features on top of that to do with strong typing. So if you’re getting some benefit out of that strong typing then yeah definitely use Typescript. On the other hand if you don’t want to use the strong typing then you’ll find that something like Babel will do the compilation, like an order of magnitude, faster.

[00:03:54]

Jon: So that’s kind of a no-brainer as far as a future to dig into. What else did you talk about that’s more forward looking?

Steve: I was also looking at web components which is sort of all tied up with ES 2015. It’s kind of a part of this package of things arriving at the moment but unlike that making that work across all browsers is not quite as guaranteed today. So the best known polyfill for web components is polymer.js but in terms of IE that’s only IE 11 onwards. But it’s a really good feature. Web components is a way of combining together a bunch of scripts and markup and styles to make a reusable package of UI features that you can put in your application and you can assign them to a custom element name so you can have something like sales-chart as an element and when that goes into your application your custom sales chart appears and it has all the behaviors your want. And it can be, to some extend, encapsulated from the rest of your page as well. So this is a feature called Shadow DOM and it’s a way of telling the browser that a certain element should be abstracted away as far the page that contains it is concerned. Code running outside it won’t see the elements inside. If, for example, you were using jQuery and you were using a selector and it happened to match something inside that component it won’t actually match it because it’s considered to be like a separate document. So you don’t get accidental leakages of behavior into your component or out of it – it just makes reuse easier.

Steve: Yeah, it’s the best known polyfill but Polymer is only the way of doing something like web components. If you’re going to use something like React or Knockout or Angular any of those kinds of things they’ve all got their own kind of concept of reusable components with custom elements so if you’re using any of those things you probably can pretty much do this anyway in a fairly cross-browser way.

[00:05:56]

Jon: Right. Ok. So then what other features did you cover?

Steve: I was interested in the upcoming await/async support.

Jon: That’s always been kind of a challenge in Javascript.

Steve: It so is isn’t it. Yeah. So Javascript for the long time was plagued by this everyone’s got a slightly different way of doing callbacks thing which is quite troublesome and then it all got formalized around promises. Promises is a fantastically elegant concept that gives you a really clear way of working with callbacks and chaining them and combining them and so on. So promises are brilliant and they’re now a native browser feature but there’s still a lot of opportunity to get confused with promises because there’s so many way you can chain them together and not necessarily even understand how success and error values are flowing through that chain that you can still get things wrong by mistake. I find this happens all the time in my work. Not me, of course, but other programmers get very confused.

Jon: Right.

[00:06:55]

Steve: I might do sometimes. Whereas as any C# programmer knows with await and async keywords you can write your code as if it was synchronous.

Jon: It’s so obvious what’s going to happen.

Steve: You can’t get that wrong really. That’s part of the ES 2016 proposal and if you want to do that today you can either use Babel which will transpile async/await just directly or you can use the generators feature which is in ES 2015. Slightly different syntax but it gives you the ability to do something almost exactly the same.

[00:07:30]

Jon: Can you explain generators a bit?

Steve: A generator for a C# programmer is exactly like the yield keyword that came in with C# 2. So you can have a function that returns an infinite number of values. Like every time that you ask it for the next value it will give you the next thing and it will never stop doing that. That’s yield in C# and generators in ES 2015 do the same thing. So you can have a function and you put a little asterisk after the keyword function to say that it’s a generator and then inside there you can have yield, return, whatever. You can do that inside a while(true) loop or something like that and then the thing that calls it will receive each of these values.

[00:08:08]

Jon: Do I just throw away promises now?

Steve: No, you still need to use promises. The way you can use this to make promises feel synchronous is by having some other that invokes your generator that gets back the sequence of values. Each time it gets back a value it will say "well what kind of thing is this? If it’s a promise then I’m going wait for that promise to complete before I ask you for the next value." And so, if you are yielding a series of promises in effect it’s like your promises are being called sequentially one after the other. Which is why your code ends up looking synchronous. It’s not very easy to understand verbally but when you see it written down it’s quite straight-forward and nice.

Steve: Yeah, that’s right. So just yesterday or the day before depending on timezones there was an announcement from Brendan Eich that there’s going to be a new bytecode format coming to the web. So instead of Javascript just being expressed in plain text as it always has been it will be possible to describe your code in a binary format. The idea with that really is just to take all of the good work that’s been done with Emscripten which compiles native code to Javascript and Asm.js which is a special subset of Javascript that can be optimized very well and say "Okay, we don’t need to write out Asm.js as legal Javascript any more we can just write it out as binary code and that saves the browser a lot of work in terms of parsing." Asm.js is very fast at runtime but it still imposes a high parsing cost on the browser and that’s particularly noticeable on mobiles where people complain that say a large game might take multiple seconds to start during which the browser CPU is just 100% parsing so it would be nice to eliminate that cost altogether. Also, you get smaller use of network traffic because it’s very compact and also even though the semantics of web assembly are the same as asm.js initially they are open to adding additional web assembly only features in the future. So it might be possible to have new types of parallelism for example that’s only possible in web assembly. If they decide that it would be inappropriate to have it in Javascript it might still be appropriate for there to be a low-level feature that other languages can compile down to.

Jon: Ok.

[00:10:39]

Steve: So yeah, that’s all about performance really. And you can kind of do it today you know. We’ve got Emscripten today, you can compile pretty much arbitrary C code. You can get your asm.js – it will be very very fast in Firefox – the only browser that supports it today but other browser makers have committed to implementing that to. I know IE certainly has, I don’t know about all of them. I’m pretty sure they don’t really have a lot of choice these days.

[00:11:04]

Jon: Yeah.

Steve: That’s useful for a lot of things but one thing that you can’t really do very well with that today, but it’s kind of promised in the future, is compile some other language, that’s not C or C++, into Javascript. So theoretically you could do it because Emscripten takes LLVM bytecode and turns that into Javascript. So in theory anything that compiles to LLVM bytecode can be translated into Javascript but in practice it’s much more complicated than that. So if you take a Swift application for instance, and that uses the whole LLVM toolchain, it will produce LLVM bytecode and you might be able to get Emscripten to produce Javascript but it’s not going to run because you don’t have the Swift runtime there in Javascript. And it’s the same with Go and Rust and so-on and in certain cases people have managed to get little bits of experimental code working but really it’s not a realistic option today but in the future it’s quite likely with web assembly that they’ll be a strong reason for the makers of these other compilers to want to support web assembly.

[00:12:06]

Jon: Ok. I believe you had tons of great demos during your talk – this was one where you said it basically very difficult to get a demo working for it. Was it that one?

Steve: I gave a demo of compiling SQLLite – the embedded database – down into Javascript which is absolutely trivial. It works flawlessly and you need to do nothing clever at all. But SQLite is just written with C so it’s kind of the best case – a very easy thing to get working. The thing I struggled with was – yeah I did try and compile some Swift and some Go and some Rust and none of them would work. I checked all the mailing lists and nobody else can do it either.

[00:12:48]

Jon: Okay. Wow. So next there was shared array buffer.

Steve: Yeah. Shared array buffer. So one of the limitations that Emscripten faces today is that it can only use the features that are available to Javascript. Obviously. Because it’s running on a Javascript virtual machine. And that means that there are certain types of parallelism that you can’t do because Javascript has always worked hard to be single threaded. Now we’ve got web workers with Javascript but they are deliberately limited. With the web worker each of your workers is only allowed to access it’s own private memory space and when you wan’t to communicate between your application and those workers you have to post these serialized messages to say what you want them to do and they post a message back saying what they did. And that’s cool but they can’t really approximate the performance of native code that will spin up multiple threads that all just mutate the same memory simultaneously without any complicated message passing. So shared array buffer provides a way to pass a reference to a block of memory where you’re effectively saying "I opt in to having no control over timings here. I accept the fact that anybody can mutate my memory at any time with no guarantees." And when you opt into that for your shared array buffer then you can get much higher performance in certain cases.

[00:14:05]

Jon: It’s interesting we were talking to Damian Edwards yesterday about some of the server work that they’re doing optimizing serving ASP.NET 5 and that was something they ran into on the server side was this kind of shared buffer and passing and minimizing the transitions and all that kind of stuff.

Steve: It’s funny isn’t it. On one side of the industry we’ve got the move towards functional programming and no shared state and at the other end you’ve got this need for exploiting all the core of many core processors with as little amount of overhead as possible where you do need to mutate shared state. So we’re kind of straddling these two competing goals there and for certain applications like, for example, high performance games or something like that the shared state parallelism is clearly winning and other things like certain types of business applications functional programming seems to deliver much higher benefits than that.

[00:15:00]

Jon: Okay. I remember one of the other ones that I was actually really excited about because I’d looked at before and meant to play with and hadn’t yet was Grid Style Sheets.

Steve: Oh yeah, yeah. So that’s funny. The first thing to know about Grid Style Sheets is that it’s got nothing whatsoever to do with grids. It’s a company called TheGrid which, you know, is a cool name for a company but it’s a little confusing when you make a product called Grid Style Sheets. Anyway the idea with Grid Style Sheets is to kind of break free from all the layout limitations of regular CSS. Any web developer in the world has struggled with making things get vertically centered or shrink-wrapping to their content. You know, that kind of thing. It’s embarrassingly difficult for us, even when we consult on some of the hardest problems in the world, we can’t make something centered inside something else.

[00:15:47]

Jon: And it’s funny because you feel like I can describe the problem. I want this to be here and this to always be here but never bigger than the parent. Or whatever, right?

Steve: And that’s exactly what Grid Style Sheets does. It’s an example of a constraints-based layout engine and with a constraints layout engine you don’t necessarily care so much about hierarchy and padding and things like that you just make a rule that says something like "My popup menu needs to be left aligned with some other element and it needs to be vertically centered in a certain area and it needs to be big enough for it’s content" – that kind of thing. So it’s just a few constraints you give and then the constraints solver will choose the appropriate position for it. And it’s the same technique that’s used in some modern iOS applications. They’ve got a technology called Auto Layout and that allows iOS to have things like – you’ll see they’ve announced the Windows 8 style sidebar thing in iOS 9 I think. Well don’t Apple a good original idea that one. And the way applications can fit into arbitrary sized screens is by using technologies like Auto Layout where the developer just specifies a set of constraints and the operating system positions things. And Grid Style Sheets allows you to do precisely the same thing but on the web. It’s a cool, very cool technology. It’s a bit experimental at this stage, I don’t know of too many people really using it.

Jon: And it’s just Javascript right? So I mean I can start using it today?

Steve: Absolutely. I think that the people building that would aspire to it one day maybe even being a native feature. So you have your style type equals text/gss instead of css and then you have this alternate syntax for defining layout. Which is a heck of a lot more expressive and straight forward than regular CSS in certain cases. It’s also got some really cool powerful features that have got no equivalent in CSS. For example, well a simple example is that it has variables. Now of course if you’re using SASS or LESS you know about variables but these are cool variables. They don’t just have a specific value they have a value where you can define some rules. Like you can say this variable is positive, this variable is less than 250 but you don’t say what actual value it is. The constraints optimizer will choose the value in order to satisfy all the other constraints. Also, it supports if/else conditions so you can say something like "if this element is bigger than a certain size then I want this layout otherwise some other layout which is like media queries but, you know media queries are limited to querying just the window width or some other basic thing like that. Whereas with GSS you can query absolutely arbitrary things and it’s evaluated at run-time so if you mutate the DOM over time then it will update its layout accordingly.

[00:18:34]

Jon: One really nice feature I liked about it too is that it animated between. And so, I watched as you resized the window and not only would it apply the constraints but it would like really nicely smoothly move to it.

Steve: Yeah, so that’s not actually a natively GSS feature. I just put a CSS transition rule in. So like transition * 1 second or something.

Jon: Smart, I like that!

Steve: So in an application when everything to just instantly snap to the correct position you wouldn’t have that rule but it’s quite sweet as you say to see things so of fluidly slide into their correct position. Which is dead easy because GSS internally is using position: absolute or something for everything so all your animations just work.

Jon: Now, because of things like that it might be difficult to use some GSS and some traditional CSS together.

Steve: Yeah, I’m sure that’s probably true. Yeah. I think there’s a lot of reasons why if you are adopting this you should expect to be in for a slightly bumpy ride. You will definitely be one of the first adopters in the world if you pick this up today. You’ll be the one that’s actually figuring out what the best practices are, what stuff does and doesn’t work that well so yeah I wasn’t standing up there trying to advocate that everyone should take this on today but if you’ve got an interesting little side project and you want to try out some really cutting-edge possible future thing then yeah it’s a really fun thing to play with.

[00:19:53]

Jon: And one thing too I was all excited about it and kind of sold on it and you explained too that it can be difficult to debug. If something’s not working it’s like actually solving a constraint and you don’t get that clear understanding of what I did wrong.

Steve: I could imagine some future tooling that shows you visually how things have been anchored and laid out. But at the moment it’s a bit like if you give it not quite enough information it will just make some decision that might completely bizare like it chooses to position an element off the screen or something like that and it may not be obvious until you really think very carefully why it’s done that.

[00:20:30]

Jon: Great, well this is fascinating. I’m looking forward to watching the video again and digging into some of this stuff. I understand you’ve got to run off and catch a plane.

Steve: Yes, that is true.

Jon: So thank-you very much for your time and was great talking to you.

]]>http://herdingcode.com/herding-code-211-james-mickens-on-the-state-of-computer-security-and-bitcoin-and-thomas-jefferson-and-internet-of-terrible-things-and-prawns-and-oslos-terrible-secret/feed/0noWhile at NDC, Jon talks to James Mickens about his terrifying computer security keynote presentation. TLDR you are doomed. Download / Listen: Herding Code 211: James Mickens on The State of Computer Security and Bitcoin and Thomas Jefferson and Internet oHerding CodeWhile at NDC, Jon talks to James Mickens about his terrifying computer security keynote presentation. TLDR you are doomed. Download / Listen: Herding Code 211: James Mickens on The State of Computer Security and Bitcoin and Thomas Jefferson and Internet of Terrible Things and Prawns Oslo&#8217;s Terrible Secret Show Notes: Hello (00:24) All is lost. [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-211-james-mickens-on-the-state-of-computer-security-and-bitcoin-and-thomas-jefferson-and-internet-of-terrible-things-and-prawns-and-oslos-terrible-secret/http://herdingcode.com/wp-content/uploads/HerdingCode-0211-James-Mickens.mp3Herding Code 210: Ian Cooper on Microservices and the Brighter libraryhttp://feedproxy.google.com/~r/HerdingCode/~3/c2WQCccdyaU/
http://herdingcode.com/herding-code-210-ian-cooper-on-microservices-and-the-brighter-library/#respondWed, 02 Sep 2015 19:53:16 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=715While at NDC Oslo, K Scott and Jon talked to Ian Cooper about Microservices and using the Brighter library for Command Dispatcher / Command Processor patterns.

(0:48) Ian explains that "micro" doesn’t imply number of lines of code but "A bounded concept/business capability within your Domain" (put forth by Martin Fowler and James Lewis)

(1:20) Ian talks about breaking the domain problem down further and further for simpler testing, better fault tolerance and incremental releases.

(2:20) "If you can’t QA everything you need to be able to monitor and respond to issues rapidly."

(2:42) Scott Allen asks if Devops is a driver for Microservices rather than physical deployment or team size.

(3:00) Ian talks about the scale limits of developers and teams and how component based architectures.

Have we been here before?

(4:00) Ian talks about how Microservices is the next generation of component-based architectures after DCOM, CORBA, SOA and the importance of understanding what worked, what didn’t and why.

(4:49) Asking a component for a cup of tea vs telling something how to make tea highlighting the difference between Microservices vs RPC. RPC was very coupled to behavior which lead to fragile APIs.

Finding the "micro" sweet spot

(5:50) Jon asks how you manage the complexity of orchestrating many smaller pieces.

(6:15) Ian advises against going too small – Nanoservices – where the overhead of a service overshadows the utility value of it.

(6:30) "It’s really hard to get a feel in a new domain of where those points are that you can slice effectively" – one solution is to start exploring the domain in a traditional monolithic way and to break the parts apart at the seems to get the tradeoff right.

Tooling and support

(7:06) Jon asks what a good way to manage these services including profiling and monitoring.

(00:18) Jon asks Robert what his presentation was about. Robert describes his talk covering in-memory databases, comparing OrigoDB, Redis and Heketon.

OrigoDB and working with in-memory databases

(00:40) OrigoDB is Robert’s open source project. Jon asks why Robert decided to write his own in-memory database when there others available. Robert says that OrigoDB is unique, and that they’ve been working on it for a long time and there was nothing available when they started on it.

(01:18) Jon asks how it compares to relational databases. Robert says that when you move to in-memory, you’re no longer constrained by the need to structure your data in a way that can be easily stored on disk. You can take advantage of the random access nature of memory, and thing more graph oriented than stream oriented.

(02:07) Jon asks if the data is persisted and follows ACID principles. Robert says that the data is in memory in any form you like, and you log transactions when you make changes – writing the events to disk or a database.

(02:48) Jon asks how data is loaded when an application starts up. Robert says it loads the most recent snapshot and then replays all events that occurred after the snapshot. You can choose the serialization format – JSON, binary and Protocol Buffers (protobuf) are supported. Protocol Buffers fast, compact and interoperable.

(03:45) Jon asks what kinds of applications work best with OrigoDB. Robert describes the problem it solves: data access and databases are too slow, so we need to use caching to compensate for that. Traditional relational databases were a good fit when memory was scarce, but now your entire application’s data can fit in memory. Also, historically, relational databases reflected the entity model and allowing business users to run queries; now we’re mapping back and forth between models which don’t match. If you keep all the data in memory, everything’s in one place and the data access is incredibly fast. That allows you to do everything single-threaded, really quickly – on Robert’s laptop he can do 50,000 ACID transactions per second.

(07:35) Jon asks what the difference is between using OrigoDB and just using his own in-memory structures. Robert explains that’s how OrigoDB works – you use your own in-memory structures and do LINQ queries against them. OrigoDB adds in snapshotting, persistence, etc.

OrigoDB support for clustering

(08:22 ) Robert says that in addition to the embedded engine, they also have an out-of-process server product that supports clustering with replication, load balancing, and off-site backup.

(12:35) You work with OrigoDB using commands and queries. You can also send in LINQ commands as text and they’ll be compiled, parameterized and cached.

How Much Memory?

(13:17) Jon asks how much memory it will take. Robert says over the past twenty years, the transactional workloads for the projects he’s worked on have all been under 200GB. You can offload your reporting data to a relational database if needed.

Business Model

(14:18) Jon asks if the server product is commercial software. Robert said they’ve tried the revenue model but haven’t had any sales. In the next release, they’re pivoting to everything free and open source and trying to build a support business.

Case Study

(15:15) Jon asks what kinds of projects he’s built with OrigoDB. Robert talks about a consulting job for a large healthcare company in Sweden. The customer was having really bad performance problems – each service would create business components, which would then create data components. Due to the business requirements, the data transactions were complex, and many were written using cursors. Robert said he traced some database use and found that a single transaction could make thousands of database round-trips. Robert did a proof of concept using simple C# collections in-memory and found they could do tens of thousands of transactions per second. Robert says that transactions in SQL Server require logging pages of data to disk, whereas logging an OrigoDB transaction is often just a few bytes since it’s just logging the command.

Snapshots

(18:18) Jon asks how many snapshots are maintained. Robert says he tries to avoid snapshots since they require a read lock. You can also use an immutable model (using multi-version cursor control).

(19:21) You can truncate events when you snapshot, but then you’re losing information. Robert and Jon discuss how this relates to event sourcing.

Other In-Memory Databases: SQL Server Hekaton, Redis, VoltDB

(20:02) Jon asks what Robert showed off in his talk. Robert says he normally does workshops that are a few days long, so squeezing everything into an hour is difficult. He does demonstrations showing OrigoDB, Redis and Hekaton, but his main message is that your application’s data probably fits in memory and memory is cheap.

(21:03) Jon asks about Hekaton. Robert explains how Hekaton works, pointing out that it supports a hybrid model in which only certain tables are in-memory. The advantage is that you can use your existing SQL Server tools, ecosystem and code.

Redis is a key-value store. Most people use it as a cache, but the values in themselves are structures, so a value can be a hashtable, list, queue, sorted set, etc. There are predefined commands that kind of look like assembler.

(24:45) Jon says he remembers running into some objects that were difficult to serialize. Robert says that the default formatter for OrigoDB is the binary formatter, and you have to mark your objects as serializable. If you use Protocol Buffers require you to define a mapping.

(00:18) Jon says hi to Chris Klug and mispronounces his name and feels bad about it but Chris is understanding and lets it go.

SOLID principles and Pragmatism

(00:27) Chris has been doing SOLID talks for a while, but this time he spoke about when to use SOLID principles and when not to. However, open-closed and Liskov substitution principle are both examples that might not fit into all scenarios. Chris says if you go full-SOLID you might never ship anything… and shipping is a good feature, too.

(01:28) Jon asks Chris if he gets some pushback. Chris says he does, from both sides.

(02:20) K Scott asks Chris about how he applies the Single Responsibility Principle.

Migrating from Silverlight to Angular and TypeScript

(03:35) K Scott asks Chris about the kind of projects he’s building lately. Chris mentions one project moving from Silverlight to Angular, another moving form WPF to Angular. He’s found that patterns he used in Silverlight development – MVVM, dependency injection, data services – translate really well to Angular. The only downside is moving from C# to JavaScript, so he’s using TypeScript a lot now. He recommends starting with JavaScript so you learn the platform, then move to TypeScript.

(05:44) K Scott asks Chris if he’d always use TypeScript. Chris says maybe not for simple projects, since TypeScript makes things a little more complicated due to the transpiler step. But the type safety’s really nice for any larger project.

(06:28) Jon says he thinks that Silverlight was a good bridge to HTML5 since it let you get started with things like video on the web long before HTML5 supported them. Chris kind of agrees, but points out that HTML5 video still doesn’t support DRM, and he still prefers XAML to HTML and CSS.

(08:22) Jon asks what Chris would recommend to developers who are starting on the transition from XAML to HTML5. Chris says just jump in and get started – probably using Angular and TypeScript. It’s really not that hard once you get started.

Kite surfing and being a rock star

(09:00) Jon asks Chris what he does for fun in his free time. Chris says he’s a kite boarder, which is a little tricky because he lives in Stockholm.

(09:42) Jon asks Chris about his picture from the NDC speakers page, and Chris tells the story.

(10:24) K Scott asks Chris about the best spots he’s been kite boarding, and Chris mentions a few in South Africa.

(00:18) K Scott asks about the general status of ASP.NET 5 and what Damian’s been up to. Damian mentions the work the team’s been up to and the two talks and two days of workshops he and Jon just completed.

ASP.NET 5 – portability and cross-platform

(01:16) K Scott asks about the advantages of running ASP.NET 5 on the Core CLR. Damian says the big advantages are portability (bundle the runtime with your app) and cross-platform – anything beyond that is secondary. It is lighter, more compact, etc., but that’s not the main goal.

(03:04) Jon talks about how he went through a depressing smackdown trying to talk managers into letting him upgrade corporate apps to ASP.NET 2.0 (when it first came out) and the "one framework per server" monster shut him down. Damian points out that you do lose some things in translations – there are some Windows abstractions and API’s that will only be available in the full CLR. So if you have a requirement for Windows-specific functionality (COM, directory services, etc.), you’ll need to run your application on the full .NET Framework.

(03:59) K Scott asks about the experience of bundling the runtime with your application. Damian describes how he demonstrated this during his presentation, bundling multiple runtimes (e.g. Linux, Mono, Mac, Windows) with an application.

(04:38) K Scott asks hosting on Linux. Damian describes Kestrel, the web host for ASP.NET 5 that runs on libuv (used by Node and other servers).

ASP.NET 5 HTTP Performance, Pipelining and HTTP 2

(05:50) K Scott asks how Damian expects ASP.NET 5 to perform relative to Node.js. Damian describes the performance testing testing he an his team have started looking at using the TechEmpower benchmarks. He lists several abstractions and implementations they’ve looked at, starting with the simplest benchmark that just tests plaintext response.

(12:17) Jon asks if the useful the HTTP plaintext test is and Damian talks about this test focuses on efficiency in speaking HTTP, there are a lot of other tests and features they’ll need to look at as they move up the stack.

(12:55) K Scott asks why the ASP.NET 5 stack is nearly twice as fast as ASP.NET 4.x for plaintext responses. Damian talks about how legacy compatibility in ASP.NET 4.x extends all the way back to classic ASP, whereas ASP.NET 5 only pulls in specific features as needed by the application.

(15:32) Jon incorrectly guesses that async background work will be important for pipeline scenarios. Damian says that since pipelining only works over the same connection, so this is more relevant for HTTP 2.

Minimizing Kernel / User Mode Transitions

(16:56) Jon asks about the importance of switching between kernel and user mode. Damian explains why that transition is necessary and the performance impact it has. He talks about how some of the memory management techniques they’re looking at.

(24:07) Jon asks if there are some performance impacts he should pay attention to as a web developer. Damian talks about the process ASP.NET MVC pipeline and how content could be double or triple buffered in some cases as it moved through the pipeline. That’s an issue when you’re looking at client-side optimization, because bytes aren’t flushed to the client as early as possible. In ASP.NET MVC 6, it’s now possible to explicitly flush content, and the double and triple buffering has been removed.

(27:14) K Scott asks about the baseline KB allocated per request. Damian said that previously it was 15-40 KB per request before your application code did anything; now it’s under a KB. There are some other buffers they can probably pool as well.

TagHelpers

(28:22) Jon asks TagHelpers. Damian explains some of the problems with HTML Helpers, especially when you need to control the HTML that’s being output. TagHelpers allow you to call HTML Helpers using an HTML-like syntax (tags and attributes) so you get all of the benefits of working in the HTML editor.

What do you do for fun?

(30:33) K Scott asks Damian what he does for fun. Damian talks about craft beers in Redmond and his new espresso machine. K Scott asks Damian about some of his favorite craft breweries; Damian talks about Kilty MacSporran and Hogus Maximus from Postdoc Brewing and Black Raven Brewing Co.

(00:18) Jon starts by asking Rachel what aspects of accessibility she addressed in her talk. Rachel overviews some aspects: visual, auditory, motor and cognitive needs.

(02:20) Rachel describes how increasing font size on a page is a really quick change that helps a lot of people, pointing out that eyeglasses are an accessibility technology.

(02:50) Using HTML semantic tags and ARIA attributes help people who are using screen readers to navigate your site – otherwise screen readers have to read through ads, page headers, etc. for every single page.

(03:45) There are 1.4 billion people with some kind of accessible needs.

(04:06) K Scott asks how well modern screen readers handle things like semantic HTML markup. Rachel says yes, and also mentions alt tags for images. Jon and Rachel discuss how easy it is to just rename divs to semantic tags like header and nav.

(06:44) Rachel recommends that listeners download a screen reader like NVDA or WebAnywhere, blindfold yourself and take some time navigating their sites to understand the experience.

(07:28) K Scott asks about building SPA sites with technologies like React, Angular, Ember. Rachel says that ARIA elements still work, and there are ARIA and semantic elements that indicate to screen readers that navigation is occurring. K Scott asks if navigation within a SPA causes the screen reader to start over; Rachel says that it does and recommends using skip links. Rachel recommends visiting the accessibility site webaim.org, which shows a good example of using skip links.

(09:25) Jon asks how Rachel got interested in accessibility. She’s worked on a lot of government sites which require accessibility standards, but she’s just personally interested in making sites that are easy to use. She describes some of the frustrations in browsing websites with ads and modals, then points out that it’s even worse for users with accessible needs. Users with accessible needs make up 20% of the population, so you can easily justify any extra work as worthwhile just in expanding your user base by 20%.

(12:30) K Scott asks if Rachel has any other resource recommendations. She recommends using the WAVE scanner on the WebAIM site, which indicates a number of issues including contrast.

Jon asks about color blindness considerations. Rachel says that it’s also important – Facebook is blue because Mark Zuckerberg is colorblind. She recommends using a tool called the Color Oracle. Rachel and K Scott discuss a number of considerations to make sure your sites and applications make sense to users with color blindness issues.

Testing

(15:55) Rachel gave another talk about testing with ASP.NET MVC. She covered xUnit for testing application code, qUnit for front-end testing, and UI automation testing. She recommends starting with unit testing, then adding in front-end and automation testing.

(16:50) Rachel thinks UI automation testing is kind of a hidden gem – Visual Studio has coded UI tests, which can emulate user actions, which just records your UI interactions so that it can play them back later. K Scott asks about timing issues and Jon asks about use with single page application. Rachel says just consider coded UI tests as a user – you can even have a QA or actual users click through the site and record their actions. K Scott asks what versions of Visual Studio support it. (ed. note: the recorder is only in Visual Studio Enterprise).

(18:50) K Scott asks what Rachel does to relax when she’s not testing and calling people out for accessibility issues, and Rachel tells us her upcoming travel plans.

Growing from an open source project to commercial product: how and why

(00:41) Udi describes why he started a company to better support the NServiceBus community. On his own, he wasn’t able to both support himself doing NServiceBus training and the NServiceBus project. He decided he was doing his users a disservice by continuing the free open source model, but he wasn’t sure it would work since there weren’t really precedents for taking an open source project commercial in the .NET world.

(03:17) K Scott asks Udi about the global reach of his distributed company.

(07:11) Jon asks what commercial model they settled on. Udi explains that the "call for a quote" model is common for large customers, but for "normal" customers it’s generally $25 per month for a developer machine.

(08:15) Jon asks what changed with respect to the license and code availability. Udi explains that the code is still on GitHub, the license just changed for cases where it’s being used commercially and developers don’t want to release their code. The code is now under the RPL – the Reciprocal Public License.

(09:12) Jon asks about the difference between the RPL and the AGPL licenses. Udi explains that AGPL explains that AGPL only requires releasing your code to your users in order to use the code for free, so there’s a loophole for cases like large intranet deployments. RPL requires releasing your code to the world for free use, not just to your users.

(10:37) Jon says he’s happy to see open source as a thriving business model. Udi clarifies a bit – the common approach is a service based open source model, but this it really pushes you towards working with a few very large customers. The problems with this approach is that you’re both subject to large risk if you lose your giant customers, and you’re competing with enterprise vendors who have deep pockets.

Running a Distributed Company

(13:44) K Scott asks Udi how he manages a growing, distributed company. Udi says that it’s good that the growth doesn’t happen all at once.

(15:15) Jon asks how they handle communications. Udi says it’s important to write everything down and to make use of lots of web conferencing. All web conference meetings are recorded so people can catch up later. Jon says says he thinks that writing everything down makes things easier for your company over time. Udi says he wouldn’t say it’s easier, it’s more of a maturity forcing function – if you’re able to get through it, you’re able to do a lot more and get new employees up to speed a lot faster.

Surprise Lightning Round!

(18:43) K Scott springs a surprise Lighting Round on Udi!

(18:56) Microservices

(20:27) CQR

(22:03) Event Sourcing

(26:43) K Scott asks what Udi does to relax in his spare time. Udi says he’s got four kids, which isn’t necessarily relaxing but definitely occupies his free time.

]]>http://herdingcode.com/herding-code-205-udi-dahan-on-starting-a-company-based-on-an-open-source-project/feed/1noWhile at NDC Oslo, K Scott and Jon caught up with Udi Dahan to discuss his experiences in building a distributed company (Particular Software) to offer support and services for NServiceBus and related technologies. Download / Listen: Herding Code 205: UdiHerding CodeWhile at NDC Oslo, K Scott and Jon caught up with Udi Dahan to discuss his experiences in building a distributed company (Particular Software) to offer support and services for NServiceBus and related technologies. Download / Listen: Herding Code 205: Udi Dahan on Starting a Company Based on an Open Source Project Show Notes: Hello [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-205-udi-dahan-on-starting-a-company-based-on-an-open-source-project/http://herdingcode.com/wp-content/uploads/HerdingCode-0205-Udi-Dahan.mp3Herding Code 204: Sara J. Chipps and George Stocker on Jewelbotshttp://feedproxy.google.com/~r/HerdingCode/~3/THkoyYJAow0/
http://herdingcode.com/herding-code-204-sara-j-chipps-and-george-stocker-on-jewelbots/#respondMon, 01 Jun 2015 23:13:02 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=697The guys talk to Sara J. Chipps and Geroge Stocker about Jewelbots: smart jewelry for a smarter generation.

Note: They were called Jewliebots when the podcast was recorded, but were since renamed to Jewelbots.

(00:55) Sara and George introduce themselves and how they got involved in Jewelbots.

Jewelbot Features and Platform

(02:12) K Scott asks what Jewelbots is all about. Jewelbots are programable wearables for teenage girls. They’re friendship bracelets that help them learn how to code. K Scott remarks that they’re not just wearables that track the number of steps taken each day, and Sara says from their interviews, teenage girls couldn’t care less about that. Out of the box, they have communication and friendship features, but they’re open source so they can be extended to do things like let them know when they have a new Instagram follower or when their mom is on the way. There will be code snippets available to allow them to get started by copy / paste, then to share code they’ve writing. There will be a repository on GitHub for sharing and collaboration.

(05:06) K Scott asks how they decided on this platform. Sara talks about how they were inspired by Minecraft, and how they saw young people learning Java so they could write their own mods. They talked to over 100 girls, and learned that some of their initial assumptions were horribly wrong.

(05:55) Jon asks what was horribly wrong about their assumptions, and Sara says that just having jewelry change color to match their clothes wasn’t that exciting to them – they’re really interested in their friends and friend groups. You configure them to react to your friends and friend groups.

Hardware Specifics

(08:00) Kevin asks what it’s like from a coding perspective. Sara says it’s based on Arduino, so you can use the Arduino library on the bracelet to control the Bluetooth, microprocessor, LEDs and motor. George says the code for the predefined APIs will be available so girls can consult the existing code to see how things were built.

(08:50) K Scott asks if Bluetooth is used to detect nearby friends. Sara explains that it’s a mesh Bluetooth network (something they’ve patented) that allows the bracelets to work without requiring their phones with them.

(09:15) Scott asks why they didn’t use RFID instead of Bluetooth. Sara explains that RFID only works for a few inches, whereas Bluetooth gives them 30 to 50 feed.

(10:10) Jon asks if it’s possible to extend the software, or to connect other devices via Bluetooth.

(11:22) Sara explains that the actual hardware is in a small disk, so it is possible that it could be applied to other use cases.

(12:25) K Scott asks what was the hardest part about developing it. Sara explains that hardware is so much more difficult than software, and how it’s so much harder to change things later.

(13:28) Jon asks about the power and battery life. Sara explains the bracelet stand that can charge via USB charger and says they’re still figuring out the battery life.

(14:32) Scott says they should build in kinetic charging and and asks about adding in sensors. Sara says that for size and cost constraints they decided to leave out sensors.

(15:35) Scott asks if they’re 3D printing them themselves, or working with sweatshops in New Jersey. Sara says they’re working with PCH and will be manufacturing in China for production, but they’re currently working with local manufacturers for small runs.

(16:54) Jon asks what hardware is onboard. Sara runs down the list: a microprocessor / Bluetooth unit that’s 4mm square, a motor, 4 LEDs, and a button and a battery. George says that the button can be used for a lot of things, including morse code or other codes they come up with.

Cost, Funding and Kickstarter

(18:59) Jon asks how much they’ll cost. Sara says they’re shooting for $60 but it will vary based on a lot of factors. They targeted $60 as it’s the cost of a video game.

(19:58) Scott has another product suggestion: a backpack locator that shows hot / cold on the LEDs.

(20:19) Kevin asks about how they got started from a funding perspective. Sara talks about the funding history and hardware projects are more costly.

(21:26) Jon says Jewelbots sounds like something he’d see on Kickstarter. Sara says that they’re planning to launch a Kickstarter soon, but they want to get the Jewelbot cost figured out first. There’s the obligatory discussion of Kickstarter successes and failures. Scott says that the companies that already have their production pipeline figured out before launching are a lot more successful than vague "I have a dream" Kickstarters. Sara says they’ve also heard that you really need to have your costs figured out before launching a Kickstarter.

The First Rule of Introducing Girls To Coding: Don’t Call It Coding

(24:50) Kevin asks if there are concerns that the Arduino IDE may be too low level, and if they might make an easier onramp. Sara says they don’t think they’ll convert every young girl into a coder, but they’ll help a lot of them to look at code in a way they haven’t before. One important thing they’ve learned is not to call it coding as that scares a lot of people off. Sara says that the opposite of maker is not girly – they want to make being a maker accessible. So if a small percentage actually become coders but the rest just become more comfortable with the idea of coding and engineering, they’ll have accomplished their goal. Sara talks about Super Awesome Sylvia – a 13 year old girl who does all kinds of cool things with Arduinos.

Getting Started With Hardware… And Just How Hard Is Hardware, Anyway?

(27:22) Kevin asks how Sara made the jump from software to hardware. Sara talks about her introduction by Emily Rose (@nexxylove) at Node Dublin 2012 with a bullfighting drone and an out of control fog machine, and she was hooked on the spot. She started with getting LEDs to light up – the hardware equivalent of Hello World – and went from there.

(29:30) Scott talks about how much more you have to think about with hardware as compared to software, and how it’s probably a good exercise for software developers to think differently about how they write their code. George talks about how he’s new to hardware, and how power drain and battery life concerns made them think about things like haptic motor startup and different power consumption for different color LEDs.

(31:43) Jon asks for more info on the charging connection. Sara explains the 4 touchpoints on the charger which are used to both charge the bracelet and upload code to the device. Scott asks if they considered using Bluetooth; Sara says that they had and the Bluetooth chip allows for that, but since many of their target users use desktops they didn’t want to require Bluetooth for data transfer.

(32:40) Jon asks if they’re continuing to do user testing. Sara says that they’re doing that constantly, and it’s been really important.

(33:45) Kevin asks how soon they’ll be shipping, and Sara says hoping to ship by late 2015 / early 2016.

(34:24) Jon asks if they’re experimenting different charm designs with 3D printing. Sara says they’re using injeciton molding for the charms, and that Jewelbots will ship with a default charm and band but they’re interchangeable so they’re expecting and encouraging people to make them their own.

(35:35) George talks about the phone app which allows for more of an if-this-then-that style of programming, which will be simpler.

(36:32) There’s a question on twitter about Sara’s thoughts on piglets.

(37:27) Jon asks for more details about the phone app. George says it’s an Android and iOS app that allows you to add new friends and set up how your Jewelbot should react if you’re around different friend groups. He explains a bit more about how things are stored on the bracelet, the phone app, and a central web server.

(39:14) K Scott asks how devices are identified so you can select your friends. George says you’ll identify yourself when you set up the device and standard Bluetooth pairing handles connections. He talks about how some of the Bluetooth things they’re doing use new parts of the BLE spec that nobody’s done yet, so they’re figuring things out.

(40:18) Jon asks if it’s possible to do firmware updates. Sara says that the Bluetooth chip they’re using allows for over the air updates, so they can distribute firmware updates to all devices from Jewelbot Central. George talks about the complications in the hardware world you don’t think about in the software world – for instance, someone can decide not to take a firmware update, so you have to make sure things still work even if they don’t take firmware updates.

(41:20) Sara says that Jewelbots will not help parents find their daughters. You’ll need to manage that yourself.

Important Things You Should Click On

(41:43) Sara talks about the upcoming Kickstarter as well as the (now available) Quire campaign so you can be part of their growth and part of their company.

]]>http://herdingcode.com/herding-code-204-sara-j-chipps-and-george-stocker-on-jewelbots/feed/0noThe guys talk to Sara J. Chipps and Geroge Stocker about Jewelbots: smart jewelry for a smarter generation. Note: They were called Jewliebots when the podcast was recorded, but were since renamed to Jewelbots. Download / Listen: Herding Code 204: Sara ChiHerding CodeThe guys talk to Sara J. Chipps and Geroge Stocker about Jewelbots: smart jewelry for a smarter generation. Note: They were called Jewliebots when the podcast was recorded, but were since renamed to Jewelbots. Download / Listen: Herding Code 204: Sara Chipps and George Stocker on Jewelbots Show Notes: Hello There (00:55) Sara and George [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-204-sara-j-chipps-and-george-stocker-on-jewelbots/http://herdingcode.com/wp-content/uploads/HerdingCode-0204-Jewelbots.mp3Herding Code 203: Rob Eisenberg on Aureliahttp://feedproxy.google.com/~r/HerdingCode/~3/jeDWcoA6_7s/
http://herdingcode.com/herding-code-203-rob-eisenberg-on-aurelia/#commentsWed, 08 Apr 2015 23:59:27 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=695The guys talk to Rob Eisenberg about Aurelia.

(02:05) Kevin asks Rob about his Xaml platform work with Caliburn.Micro. Rob says he’s transferred that work to Nigel Sampson, and it’s alive and well.

Comparing Aurelia with Angular

(03:22) Kevin mentions Rob’s history on the Angular team and asks what’s different about Aurelia. Rob says that he’s focused on vanilla Javascript code and minimizing configuration and metadata. Rob says that’s unique compared to most common frameworks, not just Angular.

(05:25) Rob also wanted to target transpiled languages so it worked well with ES6, ES5, TypeScript and Coffeescript. By comparison, Angular was pretty focused on Dart and AtScript.

(06:12) Jon references Rob’s post comparing Angular and Aurelia code and asks about conventions. Rob describes how conventions work, how you can create your own conventions, and how you can override conventions by providing metadata (but only for overrides, not all the time).

(08:56) Rob describes how binding and the templating syntax work. Aurelia minimizes additional markup for binding, whereas he sees Angular syntax focused on theoretical tooling experiences that could be built, but nobody’s committed to. Also, while Angular’s syntax is technically valid, it doesn’t work with cases like SVG. There’s a secondary binding syntax to work around that, but having two syntax doesn’t seem like a clean solution.

(12:31) Kevin asks for examples of conventions in Aurelia. Rob explains how custom elements work with EcmaScript 6 modules and exports. No metadata is required, as compared to Angular which requires specifying metadata in all cases even if you’re not using them. Rob also explains custom attributes (again using a simple exported class). Naming conventions set up the mappings so no metadata is required. Value converters are yet another example – the naming convention assumes that any class ending in ValueConverter is automatically registered and configured.

(16:24) Jon asks if Angular’s metadata requirements and verbosity are all for tooling support. Rob says yes for the HTML side, he doesn’t see a reason for it on the JavaScript side.

(16:43) Rob says that in Angular you need to declare all directives you’re using in your view models. That really bugs Rob because the implementation details in the view shouldn’t be reflected in the viewmodel. That was required for lazy loading, but he sees it as a design problem and a maintenance problem. Rob says that Aurelia uses an import in the view and doesn’t touch the viewmodel, using the EcmaScript 6 loader. Rob says that this design makes some conventions impossible.

The Aurelia Pitch

(21:08) Scott K says he likes the class-based design in Aurelia and asks Rob for a quick pitch for Aurelia to sell it to a team. Rob talks about the clean, standards based design that allows decomposing complex screens without requiring extra configuration. It’s easy to build, extend and maintain. Rob also talks about the binding syntax, and the ability to plug in other binding strategies by dropping in an adapter. The binding strategy system has been tested out with Breeze.js and Knockout, allowing you to use your existing models without requiring unnecessary dirty checks.

(26:42) Scott K asks how object.observe works with tranpilers. Rob says there’s a polyfill that generates getter / setter pairs if object.observe isn’t available. Rob explains how this works with the micro task queue, and how it allows for queued tasks to handle queued work efficiently. Rob talks about the task-queue in Aurelia, and how it can be used outside of Aurelia as well. Rather than directly observing DOM elements, the task queue allows for batching changes for efficiency.

Persistance

(35:15) Kevin asks if Aurelia handles a persistence layer. Rob says that rather than building that, they’ve worked to make it easy to plug popular persistence libraries in. He also discusses the validation system they’re working on.

(39:40) Jon says he frequently hears people who are tired of JavaScript frameworks and decide to just write their own. Rob describes how it’s easy to get started but quickly falls apart. He describes some of the gotchas he’s run into in building Aurelia, with examples from aria, svg, data- attributes. Rather than writing your own framework, Rob says you should just contribute to Aurelia.

SVG use

(44:40) Jon asks if Rob thinks people will use SVG. Rob says it’s more about building a production-quality framework, then gives some possible usecases like graphs, mapping and custom elements. Rob says that people do all kinds of things you might not expect when they use a framework, and building a real framework requires it. Kevin says at his last job they’d started converting image sprites to SVG, and it was a pretty good use-case.

React

(49:05) Kevin asks about Rob’s thoughts on React. He says it’s a good renderer, but it’s not a framework. He and Scott K agree that React is a library, not a framework. Rob says he wrote a blog post in which a custom Aurelia element uses React as a custom renderer. The Babel transpiler allows mixing JSX with ES6 code, and this allows continuing to use Aurelia binding. In general, Rob says really smart, but if you need a framework you’ll end up cobbling a bunch of things together to use it. Instead, he’d recommend using a framework like Aurelia and just pulling in React when it’s required.

(53:22) Kevin asks if Rob’s considered adding a virtual DOM to Aurelia. Rob says it’s not clear that there would be an advantage in most cases.

Isomorphic rendering

(54:17) Kevin brings up the other JavaScript buzzword of the day: Isomorphic rendering. Rob says Aurelia doesn’t support this, he doesn’t see this sticking around. Jon says he still sees a pretty clear distinction between websites and web apps, and Rob agrees, saying he wouldn’t use Aurelia for websites.

Questions from Twitter

(57:25) Question from Twitter (@cecilphillip): "What’s the rendering perf like compared to ReactJS?" Rob says that React is going to be a lot faster for initial render time, whereas Aurelia is probably going to be faster for updates. It’s hard to give an accurate comparison; Rob says they’re mostly focused on being fast enough rather than the fastest. He says Aurelia’s not slow now, but they’re focusing on some upcoming performance enhancements that he’s expecting big results from.

(1:02:09) Question from Twitter (@csharpfritz): "can you talk about what lead to the choice of architecture with JSPM?" Rob explains how JSPM integrates package management with module loading. Aurelia isn’t directly dependent on JSPM, so you can use other package managers and loaders if you want. Jon says the one thing he wants JSPM to integrate rate limiting so he doesn’t hit the GitHub rate limit; Rob says this is being addressed in a future release since most cases don’t require the hitting the rate limited API.

Scott K’s Packaging Rant(tm)

(1:08:11) Scott K has a "short rant" about NPM, JSPM and all package managers in general: they all use existing config files (like gitconfig) and should be tested behind corporate firewalls and proxies. And then there’s the nested package thing, which doesn’t work well on Windows due to path length limits. Jon says he uses the flatten-packages package. There’s a short group rant about the file path length limit on Windows.

Final questions and wrapup

(1:13:40) Jon asks if there are any patterns or thoughts on server-side development for Aurelia. Rob says there are starter kits on the way, and people are using Aurelia with lots of back ends (.NET, node, MEAN, etc.). He talks about samples on the way, including a Todo app (even though he thinks Todo apps aren’t useful for application frameworks).

(1:17:15) Kevin asks where Aurelia’s at in a release cycle. Rob says it’s currently in preview / alpha phase but targeting a beta around June or later. Don’t go to production with it now, but get ready for the release after that.

(00:17) Jon introduces Ahmet and asks what it’s like being on the Azure Linux team at Microsoft. Ahmet explains what his team does. Ahmet’s mostly a Unix stack developer, he doesn’t use Windows on a daily basis.

(02:20) Jon asks Ahmet if it’s strange working on open source and Linux and Microsoft, and if there are a lot of legal requirements.

Intro to Docker

(03:48) Jon asks Ahmet to describe how Docker works, and how it compares to traditional virtual machines.

(05:54) Jon asks about how the Docker works with the Linux filesystem approach. Ahmet explains namespaces in Linux and describes how namespaces provide separation between instances. One benefit is that each instance is really lightweight, so you can have hundreds of instances on one physical machine.

(09:47) K. Scott asks about a specific example deploying a Ruby on Rails application. Ahmet describes two options for creating a creating an image – either doing it manually or using a dockerfile. K Scott and Ahmet discuss inheritance chains for containers.

(13:35) Kevin asks about how inheritance works when you’ve got an application that relies on services in different parent containers – is there communication between them? Ahmet describes how the application files are based on diffs from each container level. Rather than modifying a running container, you should instead define and deploy a new instance.

(17:07) K. Scott asks how different configuration between machines is handled.

Docker on Windows

(18:13) K. Scott wonders how containers will work on Windows due to the registry. Ahmet talks about how it’s more difficult on Windows, since on Unix everything is a file; Jon remembers the previous interview with Kenji at Spoon about how they’re virtualizing the registry with their container system.

(20:40) Jon points out that since Docker images run on top of a host, they’re not portable between different hosts on different operating systems.

ASP.NET 5 Docker image and User Mode sandboxing questions

(21:21) Jon asks Ahmet about his work on creating an ASP.NET 5 Docker image.

(23:10) Scott K. asks about the difference between Docker images and running in user mode. Ahmet explains that Docker does run in user mode, so things are kept separate due to user mode sandboxing.

(25:14) Kevin asks if the host operating system has visibility to the running containers.

(26:12) K. Scott asks if there were any technical hurdles in creating the ASP.NET 5 Docker image. Ahmet talks about how the image was built and the general process of developing with Docker instances.

Getting started with Docker on Windows

(30:15) Jon asks about different ways of getting started with Docker – Boot2Docker (running on top of VirtualBox), spinning up a Docker instance on Azure, etc.

(31:54) Jon asks about Ahmet’s work on getting the Docker client on Windows. Ahmet talks about some of the differences in Windows operating system API’s, including Go language differences.

(36:00) Scott K. says he’s excited about Docker because it sounds a lot simpler than some of the deployment issues he deals with.

Docker in production and container orchestration

(37:17) Kevin says he’s heard that running Docker in production is more difficult than running it in development. Ahmet talks about some of the orchestration efforts that are underway, and talks about container linking and the datacenter operating system approach.

(43:14) Jon asks about Mesos. Ahmet describes what Mesosphere is doing and how it relates to orchestration.

(44:50) Jon asks if Azure orchestration will be similar. Ahmet says they want to play really well with the other schedulers out there.

]]>http://herdingcode.com/herding-code-202-ahmet-alp-balkan-on-docker/feed/0noThe guys talk to Ahmet Alp Balkan about Docker, containers, building an ASP.NET 5 image for Docker, and working on the Azure Linux team at Microsoft. Download / Listen: Herding Code 202: Ahmet Alp Balkan on Docker Show Notes: Working on the Azure Linux teHerding CodeThe guys talk to Ahmet Alp Balkan about Docker, containers, building an ASP.NET 5 image for Docker, and working on the Azure Linux team at Microsoft. Download / Listen: Herding Code 202: Ahmet Alp Balkan on Docker Show Notes: Working on the Azure Linux team at Microsoft (00:17) Jon introduces Ahmet and asks what it&#8217;s [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-202-ahmet-alp-balkan-on-docker/http://herdingcode.com/wp-content/uploads/HerdingCode-0202-Ahmet-Alp-Balkan.mp3Herding Code 201: Kenji Obata on Spoon, application virtualization, containers, and flying little airplaneshttp://feedproxy.google.com/~r/HerdingCode/~3/hQOSGcr87W4/
http://herdingcode.com/herding-code-201-kenji-obata-on-spoon-application-virtualization-containers-and-flying-little-airplanes/#respondTue, 23 Dec 2014 22:30:53 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=689Jon meets Kenji and Trevor at a small airfield in San Diego to talk about Spoon, an application containierization and streaming platform for Windows. They discuss different virtual machine approaches, Spoon’s features, the container movement, and flying airplanes.

(00:17) Jon says hi to Kenji and describes his first interaction with Kenji – a blog post he wrote in 2007 titled "We should be virtualizing Applications, not Machines" and Kenji’s response saying that’s exactly what they were doing at Xenocode. Kenji describes application virtualization and lists some of the vendors working in that space.

(1:51) Jon asks about the spectrum of virtualization – starting with virtualizing the entire machine and file system and dialing back. Kenji describes how Xenocode started with a solution that would allow for deploying .NET applications without requiring a separate .NET framework installation. This had minimal virtualization – just enough to virtualize the .NET framework.

(06:07) Kenji describes the work to move from virtualizing the .NET framework to supporting application virtualization for any arbitrary Windows application, culminating with virtualizing Office.

Moving from application virtualization to application streaming

(08:24) After solving virtualization for any Windows application, Xenocode moved on to tackling application delivery – solving long downloads, installation, and application conflicts. They also wanted to do this all over the web, which was the genesis of Spoon. This had a lot of appeal to business users rather than just coders, so they rebranded from Xenocode to Spoon.

(11:15) Jon asks about application streaming with the example of Office Click-to-Run. Kenji discusses Click Once and how that relates to MSI installers. While some application streaming solutions solve the problem of "click button, run application" they are still installing on the computer so you hit problems with conflicts between applications.

(13:20) Spoon applications are portable because they’re not installed on the local machine. Kenji and Jon discuss how installing an using an application start changing the state of the machine in many places outside of the application directory – registry, user profile, etc.

(14:30) Kenji describes how many of their enterprise customers have complex legacy applications which blend several technologies and don’t always follow best practices.

Docker and containers

(15:35) Kenji talks about how they’ve grown from looking at the smaller, targeted problem of virtualizing and deploying a single application to a holistic view of containers as a fundamental part of the development and deployment process.

(16:30) Kenji says that the excitement around Docker has got the community thinking more about application virtualization. Jon asks Kenji to explain how Docker-style virtualization is different from traditional virtual machine virtualization. Kenji explains how Docker was originally built on Linux lxc in which the kernel can segregate itself into several namespaces. Jon asks how it relates to file system virtualization, and Kenji says that since in Linux there’s an "everything is a file" philosophy, it’s easier to segregate things this way.

(18:10) Kenji says that there’s really no virtualization engine in Docker, it’s more of a set of scripting languages around Linux features. Kenji says that perhaps Docker’s biggest contribution is the term "container" since it’s more consumer-friendly and makes it more obvious that containerized applications are portable.

(19:55) Jon says that his experience with Spoon is that it felt like git for virtual machines. Kenji says that Docker actually uses git for storage. He explains how the storage needs of application virtualization lend themselves to git-like storage.

(21:44) Kenji says that containers on Windows are more difficult because there isn’t an lxc feature in the kernel. Fortunately, Spoon already has a vm engine that can provide that.

Advantages to running in user mode

(22:12) Kenji mentions that Spoon is running in user mode rather than kernel mode, and explains why it’s important to segregate and run child systems in user mode without any need for kernel access. Users don’t need any special privileges to install Spoon applications, and even if there are security issue in the virtualized applications, they’re always just running as an unprivileged user the host operating system.

Getting started with Spoon

(24:10) Jon talks about the user experience on Spoon.net – quick install with no permission prompts, and a console window pops up.

(25:24) Kenji points out that because Spoon started with virtualizing desktop applications, the Spoon container approach works well with any Windows application, including GUI applications.

Virtual networking features

(26:12) Jon asks how he can add add to a Spoon VM once he’s created it. Kenji points out one approach by spinning up another VM and connecting them using Spoon’s virtualized network feature. He talks about how you can use the virtual network features to point your application with multiple VM’s all using virtualized networking and the virtual DNS service.

(29:20) Jon talks about how virtual networking on other systems like Hyper-V can be problematic because it’s messing with the host operating system’s network adapters and networking configuration.

Spinning up multi-VM environments

(30:28) Jon says that all of these features sound really useful for testing, because he can spin up an entire environment, test it all, and delete it, all from a script. Kenji says they’ve put a lot of focus into those scenarios, and since Spoon VM’s are so lightweight that you can spin up 20 or 30 VM’s on a dev machine. He talks about a customer that has about 20 servers in their test environment and spins them all up for tests on a single host.

Selenium support and legacy Windows features

(32:42) Kenji says they have first class Selenium test grid support, allowing web developers to run automated web tests against a wide variety of operating systems and browsers. Jon asks how this works IE versions are tied to versions of Windows. Kenji talks about the Windows version support they’ve built into Spoon, allowing a Spoon host on Windows 8 to run every IE version back to IE6.

(34:37) Kenji talks about Windows version support and stacks and conditional layer support in Spoon to allow wiring in complex emulation behavior so you can deliver one image that will run on a variety of Windows hosts.

Working with images and state

(35:44) Jon asks about how the "spoon run dotnet,jdk,node,nginx" support works, and Kenji says you can use that to compose an arbitrary number of base images.

(36:36) Kenji says that they heard a lot of customers were bringing in git support to build a project that’s hosted in git, but they didn’t really want it in the image. They added another "using" primitive to allow you to use support from an image without adding it to the base VM.

(37:53) Jon asks how to add features to the Spoon VM after it’s been created, in the case that he really does want them there. Kenji says that I can just save the container’s state as an image, then build another container on top of that image. Images are static, containers are not.

(39:01) Kenji talks about the state abstraction, allowing you to continue from any saved state id. These move between different computers, which is helpful for testing and parallelization.

The Spoon.net hub and what you can do for free

(41:00) Kenji mentions the Spoon.net hub, which is free to use for public use – similar to GitHub. Jon asks about what’s available for free use, and Kenji says Spoon.net use is unlimited (within reason).

(42:01) Kenji explains how their previous version required their Spoon Studio tool to configure applications, similar to App-V sequencing. Things are simplified now with Spoon – you just grab a clean image, install software on it using the standard installers, and commit the image and you’re done.

(44:04) Kenji highlights the advantage of having the clean image readily available, so you can easily get a clean Windows install to try or test software – just by typing "spoon run clean".

Trying things with "spoon try"

(45:13) Jon says he likes to use VM’s to get a clean machine state, and also to be try installing some software without risk. Kenji talks about the "spoon try" command, and explains how try automatically wipes all your state when you’re done (whereas spoon run maintains state).

Deployment options

(47:38) Jon asks how IT managers roll out Spoon solutions to their users. Kenji says they provide a set of tools to integrate with existing deployment models, including support for desktop icon registration, scripting, and the web interface to allow launching from intranets.

Size and performance impact

(49:00) Jon asks about the size of a Spoon VM. Kenji says it’s essentially just the size of the installed software and the state, so it’s pretty minimal. Storage is delta-based, so it’s small. The Spoon database includes de-duplication to allow for frequently saving state without bloat.

(51:01) Jon asks about the performance impact due to virtualizing everything. Kenji says that since the VM’s are so lightweight, it’s very minimal. He gives examples of high-performance users, including AutoCAD and video game developers.

Azure RemoteApp support

(52:29) Jon asks Kenji about something he saw on the site mentioning that Azure support was coming soon. Kenji gives us an exclusive scoop on the upcoming RemoteApp support. This allows you to create a single base VHD on Azure with just Spoon installed on it, then use Spoon’s support to host any application via RemoteApp. He says it’s great to be able to use RemoteApp support when he’s on his Mac to run any Windows applications he needs.

(56:53) Jon recommends for listeners to go to Spoon.net and try it in a few seconds for free.

Flying little airplanes

(57:21) Jon notes that they’re recording the podcast at an airfield and asks Kenji and Trevor about how they got into flying. Jon notes how high-tech the plane controls are and asks how it compares to Microsoft Flight Simulator. Kenji talks about the excitement and terror of his first takeoff.

(1:01:29) Kenji says that an easy way to give flying a try is to contact a flight school at your local airfield and set up an introductory flight for about $100 – $150 to give it a try.

(00:41) Jon asks Kevin what’s going on with the io.js fork. Kevin says the fork is due to the Node team’s slow release cycle. Jon asks what technical things people are looking for, and whether io.js code is supposed to be compatible with Node code. Scott K lists some of the features planned for Node 0.12. There’s some general discussion about what this means long-term and whether this will be a temporary or permanent fork.

Angular angst

(06:21) Jon asks K Scott what is going on in the Angular world. K Scott summarizes why people were bent out of shape over the Angular 2 announcements.

(07:30) Jon asks what this all means from Angular developers – what’s actually changed? K Scott discusses how the team isn’t worrying about migration from Angular 1.x. He mentions AtScript and the guys discuss how it relates to TypeScript. Kevin asks if Google is the new Microsoft, in that everything has to be their way. K Scott says it’s feeling like MEF composition.

(12:09) Scott K says he thinks the radical changes are to support components and dart. K Scott says he also sees that runtime introspection looks like an important goal.

(13:30) Scott K talks about the migration plans and the announcements that 1.x won’t be getting any new features. Kevin says this puts Angular developers in a tough spot, because 2.0 isn’t going to be out for a while and 1.3 is the final release in that branch. Scott K says he’s stopped paying much attention to it for now while waiting for things to shake out. There’s a discussion of Durandal now that Rob’s left the Angular project.

Wearables and the Microsoft Band

(17:30) Jon asks K Scott about his new Microsoft Band. K Scott says he likes the notifications and sleep notifications. Jon asks if the sleep notifications are actionable or just telling you things you already know; K Scott says he’s notices that poor sleep for three nights in a row affect his communication skills.

(20:25) Jon says he hasn’t been able to pull the trigger on Pebble, even on super sale, but the Band looks really interesting. The voice input for Cortana looks neat, too.

Windows Phone interlude

(21:55) K Scott says he helped a friend pick out a Windows Phone and was impressed by the inexpensive models from Blu. Jon talks about how all the new Windows Phone models are nice inexpensive phones rather than flagship models. Jon mentions the app coverage and says that all the big apps seem to be available, the only ones he misses is an app from his bank to deposit checks.

(25:55) Jon asks Kevin what he’s thinking on the Apple Watch. He says he’s intrigued and wants to play with one to see.

(26:55) Scott K says there’s not much you can really do on a tiny screen, so consuming content on a watch is silly. Jon says that he sees room for things like two-way communication and remotely controlling the desktop. Scott K says his Pebble is kind of like a second screen for his phone. He says there isn’t enough horsepower on a watch for voice recognition, but the other guys all jump in to say that the watches use Bluetooth to work with the voice recognition on their phones and it all works pretty well.

Kickstarter

(32:15) Jon says he’s backed ten projects, but only three of them really turned out well: gourmet marshmallows, a web-based font creation program called Prototypo, and a file manager called OneCommander. Scott’s had good success because he does some due diligence on the shipping background for the creators.

(35:15) Scott says he avoids tech projects on Kickstarter because he knows geeks, and he knows the overestimate what they can do: they all think they’re physicists, nutritionists, lawyers… they think they know everything, and they don’t anticipate the cost and effort to go from prototype to shipping product. Jon says he’s seen two software projects that were flawlessly executed – BitCommander (since renamed to OneCommander) and Prototypo. In both cases the creators were very communicative throughout the project.

(39:55) Kevin’s never Kickstarted anything because he doesn’t want more things. Jon says he usually backs things because he wants to support someone doing something cool, not because he wants a project. He says he frequently sees popular new technology Kickstarters that are recreating something he can find already shipping on Amazon for a lot less. Kevin says he finds the whole Kickstarter thing is completely fascinating, and he’s amazed that it seems to work. Scott K talks about how many game manufacturers use it to figure out how many to produce rather than to start figuring out how to produce a project. Jon mentions a Sony epaper watch that was Kickstarted just to gage interest and says that the goal of Kickstarter is to actually graduate to shipping product and lists a few; Kevin talks about the Veronica Mars movie.

Containers

(47:20) Jon talks about Docker and Rocket and asks if the guys are using them yet. Kevin says that poor OSX support (requiring VirtualBox Boot2Docker) has cooled the interest in Docker in his shop.

(48:55) Jon says he thinks the container approach seems like a nice middle ground between running a native process and a full virtual machine. He says that he’d like to talk to the Spoon team soon to hear about their Windows native container system.

(51:15) Scott K talks about the Mesos system – a distributed systems kernel. Jon searches around and finds it’s an Apache project. The idea is that you can move your Linux applications over to it, then scale across commodity hardware. Jon worries about the latency but figures eventually you overcome latency with processing power if it’s distributed right.

Women In Computers, Old

(55:05) Scott mentions an article about Margaret Hamilton, the software engineer who wrote the code for the Apollo Eleven and came up with the term hardware engineer. Scott says that the Apollo source code is up on Google Code.

(56:45 )Jon talks about an article he saw about the programmers who wrote code for the Colossus in World War Two, and they were all women. Kevin says he saw an article about how until the early ’80’s the distribution was even until there was an advertising campaign that was geared to boys, and things changes after that.

(58:20) Scott talks about an article he read about The Sotry of Mel, who was working so close to the metal that he optimized for where the memory would be located on the physical memory drum.

(00:19) Rob explains what Chocolatey is and compares it to package managers on other platforms. Jon talks about how he uses Chocolatey to install all his programs every time he installs Windows.

(02:10) Rob talks about how Chocolatey has grown in the past 3 1/2 years.

Package Moderation

(02:24) Rob explains how package moderation works – whereas previously all packages were immediately published and reviewed later, now they’re reviewed by moderators before they’re listed. One common fix is just getting the naming right.

(05:24) Rob talks about how they’re curating the community feed. They’re currently in a grace period until December 1; some packages are that aren’t broadly applicable are being told to move to MyGet. Jon and Rob talk about other hosting options (anything that host NuGet) and benefits of using the NuGet infrastructure underneath Chocolatey.

(07:25) Rob talks about the checksumming features they’ve added.

Chocolatey Pro

(09:03) Rob explains how Chocolatey has grown, partly due to the OneGet announcement – they’re up to 7 million downloads now, half of them in the past six months. He talks about how the costs have grown over that time.

(11:40) Rob explains what the Kickstarter supports. The free / open source version will always be free. They’re also adding in professional-only feeds and a content delivery network to support the professional feeds. Jon asks and Rob explains the professional feeds work.

(15:31) Jon says it sounds like most of the money is to provide for infrastructure. Rob agrees, but says some will help buy him some time to work on it. He talks about the example of Octopus Deploy – development has really accelerated since it became a full-time endeavor.

OneGet

(17:05) Jon asks what OneGet is. Rob explains that it’s a package manager aggregator and works with the Chocolatey feed right out of the box. Rob and Jon talk about the advantages of having Chocolatey support installed in Windows.

(20:20) Jon asks about the impact to the Chocolatey team. Rob clarifies that they’re a provider, so they build the hooks, and OneGet will read directly from their feed.

Windows Store

(21:02) Jon asks if Rob’s worried that the Windows Store will someday add Win32 app support and make Chocolatey irrelevant. Rob says he doesn’t expect it, but even if they did there are some big differences between a store and a package manager. Jon and Rob discuss package managers, meta-packages, dependency management and package uninstallation.

Kickstarter Benefits

(24:36) Jon asks Rob to explain the different Kickstarter award levels. Rob discusses Chocolatey Pro pricing and some of the higher level awards like a custom workshop. He points out that the pricing is perpetual for business accounts, so by backing the Kickstarter you’re locking in the price.

(29:00) Jon says that even if you don’t care about the rewards, if you’ve been using Chocolatey you should consider supporting the project. Rob describes why they came up with their goal amount, including the Kickstarter and Amazon transaction fees.

Wrap-up

(21:29) Rob and Jon mention ways you can get involved. Of course you can back the Kickstarter, but he’s also really appreciate any press or exposure.

]]>http://herdingcode.com/herding-code-199-rob-reynolds-on-the-chocolatey-kickstarter-chocolatey-growth-and-oneget/feed/0noJon talks to Rob Reynolds about how Chocolatey has grown over the past few years, how OneGet fits in, and the Chocolatey Kickstarter. Download / Listen: Herding Code 199: Rob Reynolds on the Chocolatey Kickstarter, Chocolatey growth and OneGet Show Notes:Herding CodeJon talks to Rob Reynolds about how Chocolatey has grown over the past few years, how OneGet fits in, and the Chocolatey Kickstarter. Download / Listen: Herding Code 199: Rob Reynolds on the Chocolatey Kickstarter, Chocolatey growth and OneGet Show Notes: The state of the Chocolatey (00:19) Rob explains what Chocolatey is and compares it [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-199-rob-reynolds-on-the-chocolatey-kickstarter-chocolatey-growth-and-oneget/http://herdingcode.com/wp-content/uploads/HerdingCode-0199-Rob-Reynolds.mp3Herding Code 198: Damian Edwards on ASP.NET vNext, Tag Helpers and SignalRhttp://feedproxy.google.com/~r/HerdingCode/~3/4REQADaSKXg/
http://herdingcode.com/herding-code-198-damian-edwards-on-asp-net-vnext-tag-helpers-and-signalr/#commentsTue, 14 Oct 2014 21:26:13 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=679The guys talk to ASP.NET team member Damian Edwards about ASP.NET vNext (the next version of ASP.NET), Tag Helpers, and what’s new with SignalR.

(00:18) ASP.NET vNext is the next version of ASP.NET. It’s not just ASP.NET MVC 6 or Web API 3, it’s a total rethink of the ASP.NET platform. In some ways, it’s a bigger change than the move from classic ASP to ASP.NET. In other ways, it can be pretty seamless depending on what you’re doing.

(01:29) Jon asks Damian to talk about what’s crazy and brand new. Damian describes the full stack in a web application, from the operating system up to the code that you write in your application and the libraries you bring in. Starting at the bottom of the stack, ASP.NET vNext is cross platform, meaning it will work and be supported on Linux and Mac.

Cross platform

(02:36) Jon asks Damian to clarify what that means – is it supported cross-platform, or does it just kind of work? Damian says that it’s first class support – they’ll ensure that it works cross-platform, there will be cross-platform documentation, and there will be cross-platform tooling (Damian mentions the Sublime plugin for ASP.NET vNext). They’ll support building and deploying ASP.NET vNext applications cross-platform.

Core CLR

(03:41) Damian continues up the stack, talking about how .NET framework is booted up. In vNext, there is a native code custom CLR loader that is decoupled form the operating system’s .NET loader. Even when you’re running on Windows, you’re not relying on the standard .NET loading mechanism.

(05:56) Jon mentions having seen demos where code was written on one laptop, copied onto a USB drive, and executed on another laptop, asking if the custom .NET loader is what makes that work. Damian explains that’s half of why it works – the next layer of the platform is the managed runtime itself, which is the other half of the magic. There is a new CLR based on core CLR. Damian explains how the .NET runtime runs on a core CLR and the base class libraries. The core CLR is based on the .NET CLR for Silverlight – it was already a lightweight version that ran cross-platform. There are now two options for the CLR you can run on – the full .NET CLR, or the new "cloud optimized" CLR. It’s important because it’s smaller – so small that it can be deployed with your application. Also, because it can be self-contained, multiple versions can run on the same server.

(10:01) Scott K asks what prevents bundling the entire application up into a single EXE. Damian talks about how .NET Native is being used in Windows Store applications and says they’re intending to look at that for ASP.NET vNext in the future. For now they’re achieving isolation by shipping the core CLR and libraries as NuGet dependencies.

(12:30) Scott K asks if you need to have the .NET framework installed at all if you’re running ASP.NET vNext. Damian says no, and if .NET is installed it has no bearing on your application.

(12:12) Jon asks how this affects IT shops that want full control over .NET framework installations on their servers. Damian says this question requires more context on what administrators would be afraid of. He describes how ASP.NET vNext will support servicing, so any urgent vulnerabilities can be patched globally on a server.

How does this affect existing apps? What changes?

(14:50) K Scott brings up a Twitter question from James on how this will affect ASP.NET MVC and Web API applications. Damian says that ASP.NET MVC 6 will include both ASP.NET MVC and Web API. Damian explains how ASP.NET MVC is on version 5 and there are some things they’d do differently today. It also previously depended on System.Web, which dates all the way back to before 2000. ASP.NET MVC 6 has DI built in. It’s OWIN compatible, so you can run it on any OWIN compatible server and run any OWIN middleware. Global configuration (web.config and System.Configuration) are gone, replaced by code-based configuration influenced by Katana. There’s also Entity Framework 7, which is a complete rewrite that doesn’t have ObjectContext or System.Entity – instead it makes model first (DbContext) foundational. EF7 also works with non-relational databases. If you have an existing application with ASP.NET MVC 5 or Web API 2, it should port over pretty seamlessly as long as you’re not working directly with underlying components like System.Web or HttpContext.

Development experience

(19:39) Scott K asks about the development experience – will this work in a new Visual Studio version, or can he just create applications in a text editor? Damian says both will work. This both allows cross-platform development and a more flexible development stack, allowing for things like cloud-based development. Of course, ASP.NET will work work great on Visual Studio. They use Roslyn to do all the code compilation either at design or compile time. This allows for deploying the entire application as source, and eliminates the need for a separate compile step during development (since the code is constantly being compiled as you work).

(25:15) K Scott asks how much churn he should expect if he starts developing with ASP.NET vNext today. Damian says there’s a lot of churn still right now. It won’t release until well into next year some time.

Questions from Twitter

(26:34) Iris Classon asks what features they weren’t able to include that they’d have liked to. Damian says it’s too early to answer that question, since they’re still in pretty early development.

(27:00) Iris Classon also asks where they looked for inspiration. Damian mentions web frameworks like Rails and Node as well as module loading in Java.

(27:38) Ben Maddox asks how Damian sees this improving the feedback loop for code, UI and tests. Damian says it speeds up UI feedback since all of your code is compiled as you type it and continuous testing is enabled due to the continuous compile. Both are available today with other tools or things you set up yourself, but it will be simpler in future.

(29:05) Filip Woj. asks if F# will have first class support – released and supported. Damian says not for version one, although there are demonstrations of F# providers.

(30:40) Steen R. asks how webroot will work in practice. Damian describes how webroot works – it’s a separate directory from which your application is served. Any files not in the webroot folder will not be served by the web server. Your application or uploads folders will be separate from your webroot, so they can’t be served.

Portable areas?

(33:49) K Scott asks about portable areas. Damian says he’s not aware of something like that for ASP.NET MVC.

Tag Helpers

(35:18) Jon asks what tag helpers are. Damian describes how Razor is a templating language that’s designed to allow mixing C# and HTML. It falls down a bit when you’re using HTML Helpers and want to change the output – for instance, if you want to pass in an HTML class to an element. C# gets in the way due to things like class being a reserved word, and you miss out on any HTML IntelliSense or HTML editor smarts, because you’re just working with C# strings. Tag helpers allow you to just write HTML tags with attributes that Razor understands. These can do things like access the model metadata to emit appropriate form HTML.

(41:27) K Scott asks when he can start using it. Damian says that it’s in a separate feature branch now and explains how to use them and says you can ping Taylor Mullen for help – or just wait a few weeks and it’ll be in the main branch.

(42:59) Jon comments on how the Spark view engine provided something similar, and Damian says that Lou works right next to him and has helped with the design. They’re not trying to change the core of how Razor works or feels, just make it easier to work with HTML helpers.

SignalR

(44:10) Jon asks what’s new with SignalR. Damian runs down some of the recent releases and mentions SignalR 3 for ASP.NET vNext. He also mentions the C++ client that’s currently in development.

(45:28) Jon asks if ASP.NET vNext makes some things simpler for SignalR. Damian says the main impact is that things like configuration and tracing are now shared between components like Web API and MVC.

Wrap Up

(46:56) Jon asks Damian what’s coming up for him. Damian mentions some of the talks he’ll be doing at NDC London, including load testing SignalR and ASP.NET vNext.

(47:50) Jon asks Damian how people can keep up with ASP.NET vNext, mentioning the asp.net/vnext page. Damian also recommends the weekly ASP.NET vNext Community Standup meetings, being run as a public weekly Google Hangout hosted by Scott Hanselman and Jon Galloway.

(01:22) What’s new for Kevin? Node, Backbone, working at Brandcast, some talk about how the shop runs. Plus he’s been busy moving.

(03:12) What’s new for K Scott? Lots of JavaScript, C# / MVC, AngularJS, MongoDB. Jon asks how Mongo is working in production in the healthcare application K Scott had mentioned earlier. K Scott talks about some performance issues he’s looked at, including some that came down to C# queries, and an issue with a 16MB document size limit. Jon asks if they’re using Redis or other front end caching outside of Mongo. K Scott says they’re just map-reducing and storing the information in other collections. He’s not travelling quite as much

(06:50) Jon asks K Scott about his recent posts on C# 6 and EcmaScript 6. K Scott talks about looking into traceur to write current code today in ES6, compiling to ES5 to work in current browsers.

(07:25) Jon asks K Scott about his recent C# posts on property initializers and primary constructors. K Scott talks about those as well as the new "using static" feature to invoke static members without needing to use the type name.

(08:42) Scott K mentions a discussion about required properties with property initializers. K Scott says he was hesitant about a few things with the new syntax, and problem being that there’s no initializer body for validation. You can mitigate that a little using an assert in a the initializer. It’s nice not having to write explicit setters.

(11:06) Scott K says he doesn’t even think about property syntax all that much because Resharper and CodeRush handle that for him. Jon speculates how long it will take for Resharper to start yelling at him to use primary constructors everywhere. Scott K says he uses CodeRush for that reason and turns off the code hints.

(12:27) K Scott asks what software Kevin is using: OSX and MacVim.

(12:40) Jon asks if anyone’s using Atom.io. Scott K says he tried it and it was way too slow. Kevin says that after using Vim he has a hard time with heavy IDE’s – even WebStorm. He’s skeptical about the longevity of new code editors, while Vim is eternal. Jon says he’s interested in Atom.io because it’s cross-platform and open source.

(16:05) What’s new for Jon? He’s been doing some courses for Microsoft Virtual Academy – Introduction to ASP.NET MVC and a Bootstrap course including some advanced stuff like Bootstrap Mix-ins. Wrox Professional ASP.NET MVC book is out. He went to Norway for fun and went to pulpit rock. He’s been spending some more time on non-Microsoft web stacks and platforms now that Azure and ASP.NET vNext are cross-platform. Scott K and Kevin talk about the fun of switching operating systems and remembering keyboard shortcuts. Jon says the biggest frustration is that he keeps trying to touch the screen on a MacBook and it doesn’t do anything.

(21:30) What’s New for Scott K? He got a new computer a Lenovo U530 – he calls it the consumer version of the Carbon. He talks about some of the confusing things about the Lenovo keyboard, especially the function keys. Everyone talks about function keys and keyboard problems. K Scott has a newer Carbon, and the keyboard is driving him nuts. Scott K says he’s constantly hitting the touchpad because his keyboard is off-center, which always brings up the Windows charms. Jon mentions touchfreeze and other ways of disabling the touchpad while typing. Jon says he rarely uses the touchpad because he just uses the touchscreen. Scott says he never uses it, he thinks it’s weird that you use two fingers to scroll on the touchpad and one on the screen. K Scott said he accidentally put his Carbon in caps lock, but he doesn’t have a caps lock button so it was hard to turn off. Kevin is unhappy with the Microsoft Sculpt Keyboard’s function keys. Everyone, please stop messing up the function keys.

(34:13) Jon asks if anyone’s use the CODE keyboard. He and Jon both agree that it looks great, but they can’t use non-ergo keyboards. Scott K wants keyboards to keep it simple and last a long time.

(35:27) Scott K get back to telling us about his summer activities. He was working on upgrading a MonoRail that drove him crazy due to being "craftstmanned up" with lots of opinions in the code like fluent extension methods, Brails view engines and difficulty in upgrading libraries due to dependency injection and breaking changes in NHibernate. Jon says that he’s developed an aversion to things that make great blog posts but will be hard to work with in a few years. Scott K says 90% of the problems came from strong naming – binding redirects and ILMerge with aliases didn’t help. They’ve been evaluating MongoDb and AngularJS a bit at work

(41:50) Scott K used React with Grunt in his MonoRail project to allow him to add client-side functionality into a frightening legacy application. Jon asks how he sets it up so it works at dev time and Scott K explains. Kevin’s been hearing a lot about React lately. Scott K like that it’s not trying to be MVC, just the V – e.g. no two-way binding – and the virtual DOM diffing is so fast that people are even using it with AngularJS and Ember just to speed up diffing large lists. Plus it’s used by Facebook for Instagram and the commenting / messenging on Facebook, so it’s been proven to work in big apps. He thinks it’s going to be bigger than Angular and Ember in the next few years.

Lightning round

(46:34) Who’s getting the new Apple Watch? Kevin says it seems iPad 1-ish. Jon likes some things about the watch UI, including the automatic answer prompts from instant messages with questions. He says the Moto 360 looks better, and we haven’t heard anything about battery life. He’s not sure what he’d do with today’s smart watches, but hopes watches will be really cool in a few years. Jon doesn’t like all the proprietary stuff – payment, chargers, etc. Scott K says he could easily switch to Android and it wouldn’t bother him, so he’s not going to be getting the new iPhone. He’s got a Pebble and likes the notifications and battery life. He thinks the Apple Watch is too little too late. He thinks everything from Apple has gone downhill post-Jobs. He also talks about his recent laptop purchase – if he wanted a posix system, he’d rather just buy a laptop and put Linux on it. He starts ranting about npm and K Scott cuts him off. But then the guys start complaining about the live stream and things go off the rails again.

(1:02:32) Jon asks why nobody’s moved to CouchDb. K Scott says the company behind MongoDb is pretty pushy. Nobody had looked at DocumentDb yet, and both Kevin and Scott K are bullish on Postgres.

(01:00) K Scott notes a tweet from Matias that he liked Angular before it was popular and asks Matias about how he got started with Angular and how he became a contributor, primarily contributing to animation. He’s also contributed to angular-dart and forms. (03:17) K Scott asks about the history of Animations. Matias talks about how things evolved to working with CSS classes. K Scott talks about how he found the source code for animations was pretty interesting, and Matias agrees.

Dart and Google Material Design

(04:47) K Scott asks about AngularDart relates to Angular. Matias explains that both are from Google, and they want to make sure that it’s easy to build Angular applications using Dart if you want to.

(05:39) Jon asks is Matias is working in both the 1.x and 2.0 source. Matias says he’s mostly focused on the 1.2 and 1.3 release and lately incorporating Google’s new Material Design, especially with animations and components. Angular Material Design includes styles and animations, but is built to allow you hooks to add your own styles and animations, transparently syncing them together in a consistent way.

Animation internals

(08:14) K Scott asks for Matias’ thoughts on CSS Animations. Matias says the API is too isolated, so there’s no way to hook into the keyframe system. CSS Transitions do allow for that, but you can’t repeat transitions. Putting them together, it’s difficult to create a comprehensive system that’s guaranteed to always run. The Material Design animations work with the Web Animations API, which is a more robust animations API. Currently only Chrome support the .animate method, and the Web Animations API spec is still being written, but Polymer has a polyfill.

(10:16) Jon asks about browser support and whether Matias is able to write to standards or if he has to do a lot of special casing. Matias says that the Polymer polyfill and the animations API covers almost everything without special casing.

(11:11) K Scott asks what the most challenging part of Angular Matias has worked on so far. Matias says the challenge has been the animations, especially in refactoring over time.

Testing in JavaScript

(12:56) K Scott asks how Matias tests animations. He says that the tests are all mocked, so they’re not running against animation engines. He says it’s been difficult testing asynchronous code in a synchronous manner.

(15:15) K Scott asks for Matias’ thoughts on ECMAScript 6. Matias says that Angular 2 is built with ECMAScript 6 using traceur for backward compatibility. He likes the classes and generators an syntactic features, but after working with Dart there are a lot of other features he’s missing. The problem is that JavaScript is non-blocking, so the code will always be a series of callbacks with variables to see if a callback has fired. Promises are great, but they’re just packaged callbacks in a way.

Getting Started, Form Validation

(16:50) Jon asks for pointers for someone who’s new to ngAnimate. Matias says he’s written documentation for 1.2, but some of it isn’t up to date. There’s a SitePoint article about it, and when 1.3 is out Matias will have an article out about it.

(17:38) K Scott asks about form validation. Matias talks about the work they’ve been doing with forms in 1.3.

ECMAScript 6 and JavaScript Development

(18:55) Twitter question from Steve Strong asked for news on Angular 2.0 and how important ECMAScript 6 is to it. Matias talks about how ES6+ (ES6 with annotations support) simplify dependency injection.

(21:13) K Scott asks if Matias liked using JavaScript back when he was doing more full stack development. Matias talks about how he used to write a lot of JavaScript to do things that Angular just handles.

(22:38) K Scott says that Matias’ blog and twitter names, Year Of Moo, made him thing that Matias might have been involved with Moo Tools. Matias says he used to be heavily invested in Moo Tools because it supported proper object oriented programming (as opposed to jQuery’s looser approach). He eventually switched to jQuery and then to Angular. He’d originally named his blog around an idea of writing a new Moo Tools plugin each month for a year, but kept the name because it’s unique.

More Testing

(23:50) K Scott asks Matias when he became passionate about testing. He talks about how valuable tests have been to him.

(24:45) Jon asks if Matias has any recommendations on testing. His suggestion is to pay attention to what you’re after. Your tests are to make sure that the code you’ve written work, so test the main points of functionality. Look for friction points – things that will not change – and test those. Try to write some of your own unit tests first, and when you get frustrated look at how projects like Angular are writing their tests.

Inspiration and Design

(26:12) K Scott asks Matias what he’s been looking to for inspiration. Matias has lately inspired by Clojure and books on software patterns and refactoring.

(26:51) Jon asks Matias about his site’s design and use of color. Matias says the cartoons on his site are by his girlfriend who is a graphic designer. He says that most technical bloggers are not focused on writing articles. His goal is to push the boundaries of technical blogging and to address the frustrations he’s had in reading other technical blogs.

(28:41) Jon says he really likes Matias’ use of multiple em classes with different colors. Matias discusses that, and says that he’s rewriting the website from Jeckyl to Hugo (which is built with Go).

Wrap up

(29:58) K Scott asks what Matias does for fun. He mentions travel (he’s from Finland), golf and going to the gym. But computers is a big passion of his, so it’s rare that he’s away from the computer.

(30:28) K Scott says he used to play golf a lot, but he’s been making an effort to get out golfing at least once a week. Matias says it’s definitely a challenge a lot of programmers face – most of us like what we do, and going outside requires intention. Jon talks about his friends in other professions who leave their work at work. Matias talks about the portability aspect of computing.

(32:24) K Scott asks Matias about what’s on the way for for him. He mentions some posts and upcoming speaking engagements, especially ngEurope in October in Paris, talking about what’s new with Angular and ngAnimate.

]]>http://herdingcode.com/herding-code-196-matias-niemela-on-nganimate/feed/0noThe guys talk to AngularJS committer Matias Niemela about AngularJS and Angular animations with ngAnimate. Download / Listen: Herding Code 196: Matias Niemela on ngAnimate Show Notes: Hello. How&#8217;d you get started with AngularJS and ngAnimate? (01:00Herding CodeThe guys talk to AngularJS committer Matias Niemela about AngularJS and Angular animations with ngAnimate. Download / Listen: Herding Code 196: Matias Niemela on ngAnimate Show Notes: Hello. How&#8217;d you get started with AngularJS and ngAnimate? (01:00) K Scott notes a tweet from Matias that he liked Angular before it was popular and asks Matias [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-196-matias-niemela-on-nganimate/http://herdingcode.com/wp-content/uploads/HerdingCode-0196-Matias-Niemela.mp3Herding Code 195: Michael Mahemoff on Player FMhttp://feedproxy.google.com/~r/HerdingCode/~3/qzFhq_wfIp4/
http://herdingcode.com/herding-code-195-michael-mahemoff-on-player-fm/#commentsFri, 15 Aug 2014 20:46:15 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=668The guys talk to Michael Mahemoff about Player FM, a cloud based podcast application which is focused on discovery and multi-device synchronization that he recently showed off at Google I/O.

(00:48) K Scott asks Mike for a quick introduction. Mike has studies both psychology and software engineering and has worked on a variety of applications, focusing lately on HTML5 web applications. He’s been working for the past few years on Player FM, a cloud based podcast application which is focused on discovery and multi-device synchronization.

(01:55) K Scott asks about the technologies used to build Player FM. Mike talks about the advantages of moving feed fetching to the cloud, the web site (using a PJAX implementation which pushes markup rather than data and HTML5 history) and an API.

Player FM API

(04:33) K Scott asks more about the API. The server is running Ruby on Rails using controllers that supply different format based on the extension in URL. The API is publicly available for experimentation but isn’t officially supported. Mike’s set up using a spectrum of detail levels (none, id, medium and full) rather than allowing clients to select specific fields. This allows you to be efficient in your API requests for hierarchies but is still cachable. He’s created a framework to support that.

(09:10) Jon mentions some of the URLs he’s seeing in browsing the API for listeners who want to play along at home. He asks Mike about the balance of a self documenting API vs the full hypermedia smart client approach. Mike says he thinks the API needs to be pretty mature for that to work and points out some of the curated lists in the feed.

(11:33) K Scott asks if the curation is community based. Mike says that’s the eventual goal, but for now he’s doing that.

(12:23) K Scott asks about the difficulty in tracking when all the feeds have been last updated. Mike says that originally it was a simple loop using feedzilla. Now it’s using sidekick and the PubSubHubbub standard (using the superfeeder service and webhooks). The clients are still polling now, but he’s going to be updating the clients to use Google Cloud Messaging (on Android) and iCloud Messaging (on Apple) so the updates will be realtime from publisher to client.

Native clients for Android and iOS

(14:30) K Scott asks if Mike’s building native clients. Mike says the iOS client is still in development and the Android app is native. K Scott says he’s wanted to do some Android dev but it’s always seemed like the most difficult platform. Mike says that it’s gotten easier lately due to the new application services and gives an example of the Google Wear Services. Jon asks for some more info on the Google Wear integration and Mike explains how any media framework application automatically gets some support, and they’ve extended it to create a phone application to allow episode browsing on the watch.

(17:15) K Scott says he was surprised by Mike’s blog post about the demand for Chromecast support for audio applications and asks about the work required to build that support. Mike explains the API integration and says that the hardest part was complying with the look and feel guidelines.

Advanced podcast support with Podlove

(20:02) Jon asks if there are things that podcasts can add to enable podcast applications to give a better experience. Mike talks about emerging standards like Podlove which adds support for chapters, time based links, attributions and related feeds. Jon says he’s been including timestamps in the show notes for a while so that seems pretty easy to implement. Mike talks about how TimeJump and Podlove could allow for deep linking into content.

(22:18) K Scott asks what’s been frustrating in dealing with feeds. Mike talks about the difficulty in feed parsing and the differing standards and implementations. Jon says he’s always just used Feedburner. Mike likes Feedburner and appreciates the built-in support for PubSubHubbub and would like to see Google pay more attention to it.

Misc: Business plan, mobile web support and Google I/O

(24:24) K Scott asks if Player FM is Mike’s full time job. Mike says it is. They’re not monetizing it yet, but he’s building out a freemium service with advanced features like unlimited subscriptions and advanced syncing across devices.

(26:16) Jon asks if Mike has plans for a Windows Phone application. Mike says he’d love to support it eventually, but right now his support for other platforms is via the mobile optimized website and the Player FM feeds.

(27:06) K Scott asks about Mike’s experience in bringing Player FM to Google I/O. Mike talks about the experience – it was his 4th Google I/O, and he’s been both an attendee and speaker in the past, but this time he was too busy to attend.

(32:20) K Scott says he’s happy the Player FM site doesn’t use the ubiquitous cheeseburger menu. Mike talks about some of the UI design features in the web application.

API Optimization

(33:19) K Scott asks about optimizations in the API. Mike talks about timestamps in the API responses so the mobile applications can keep aware of which channels have been updated and get the responses from edge servers.

(36:10) Jon asks about using JSON LD and E-Tags. Mike says he hasn’t needed that since he’s building the clients and they’re doing the same checking.

(37:39) Jon asks how Cloudflare has worked for Mike. Mike says it’s been great, but there were a few surprises like caching of error responses.

(38:40) K Scott asks if it’s possible to remove things from the cache. Mike explains some of the options. Jon talks about some of the difficulties in diagnosing content problems when you’ve got multiple levels of caching and Mike agrees that it’d be nice if there were some visibility via HTTP headers.

Search and Discovery

(40:48) Jon asks if Player FM has additional markup to light up in search results. Mike says they were one of the early sites to be included in the Google app indexing setup, which supports deep linking in Android applications.

(42:30) K Scott says he’s looking forward to the recommendation features and Mike describes some of the things they’re including.

(43:30) Mike talks about Player FM support for full text search using Elastic Search to allow for easier discovery.

(44:25) Kevin asks if transcripts could be included in the full text search. Mike talks about some of the standards support.

Wrap Up

(45:49) K Scott asks what Mike does when he’s not working on Player FM.

(46:47) K Scott asks Mike what’s coming up for him in the near future. Mike talks about some Player FM features he’s excited about working on like intelligent discovery, collaborative filtering, server-side play tracking, analytics and platform support including an desktop form factor that will work offline. The desktop application is based on an open source project they’re working on that will compile a Chrome application and cross-compile native applications for Windows, Apple and Linux (based on node webkit).

(48:20) K Scott asks for any last words; Mike says he’s happy for any questions at mike@playerfm.com.

]]>http://herdingcode.com/herding-code-195-michael-mahemoff-on-player-fm/feed/1noThe guys talk to Michael Mahemoff about Player FM, a cloud based podcast application which is focused on discovery and multi-device synchronization that he recently showed off at Google I/O. Download / Listen: Herding Code 195: Michael Mahemoff on Player Herding CodeThe guys talk to Michael Mahemoff about Player FM, a cloud based podcast application which is focused on discovery and multi-device synchronization that he recently showed off at Google I/O. Download / Listen: Herding Code 195: Michael Mahemoff on Player FM Show Notes: Hello. What is Player FM? (00:48) K Scott asks Mike for a [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-195-michael-mahemoff-on-player-fm/http://herdingcode.com/wp-content/uploads/HerdingCode-0195-Michael-Mahemoff.mp3Herding Code 194: Hadi Hariri on Kotlin, Nitra, and Developing In A Decadehttp://feedproxy.google.com/~r/HerdingCode/~3/TQMrGU5l2L4/
http://herdingcode.com/herding-code-194-hadi-hariri-on-kotlin-nitra-and-developing-in-a-decade/#commentsFri, 25 Jul 2014 15:39:05 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=666The guys talk to Hadi Hariri about Kotlin, Nitra, and his NDC talk, Developing In A Decade.

(01:00) K Scott asks what Kotlin is. Hadi explains it’s a statically type programming language that targets the JVM and JavaScript, and that it was designed to serve the needs of the JetBrains development team: Let’s create a language that a language that we can use ourselves… and if other people want to use it then, awesome.

(03:07) K. Scott asks about the source code. It’s on Github and it’s under Apache 2 license. He asks who in their right mind these days would design a closed source language *cough* Swift *cough*.

(03:48) Jon asks about comparisons with the Swift language. Hadi comments and says both Kotlin and Swift are kind of similar to Groovy. Jon asks why not just use Groovy then, and Hadi says that they wanted a statically typed language.

(05:32) K. Scott asks about the comparisons with Scala and Java. Hadi says that Kotlin is more restrictive than Scala in some cases, which they see as a benefit. They strive for 100% interoperability with Java, since they have 14 years of existing Java source code to work with.

(08:15) K. Scott asks about the JavaScript story. Hadi says it was bound to happen eventually, so they just did it from the source. The benefit is that you can share source code between server and client.

(11:44) K. Scott asks about .NET support in the roadmap. Hadi says it’s not likely soon. He says there’s a ton of activity on the JVM lately, and it runs everywhere, albeit with the Ask toolbar.

(13:31) Jon asks about running Java code on Mono and .NET using IKVM. Hadi says he’s tried it on some prototypes and it works, but Scott K complains that it’s really slow.

(14:33) Scott K. Asks about the use of inference. Hadi says one of the goals of Kotlin is to be very concise, so you very rarely need to declare types.

(17:43) K Scott asks if there are any libraries that JetBrains has for Kotlin. Hadi describes Kara, a web framework which makes use of strongly-typed HTML and CSS builders. Spec is a specification framework that Hadi’s written. Kotlin is pretty popular for Android development, so there are a lot of Android helpers available.

(21:31) Jon asks about best places to get started with Kotlin. Hadi says it’s very easy to get started with just the compiler, available from on the Kotlin site. For an IDE-centric experience, use IntelliJ (either the free OSS Community Edition Version or IntelliJ IDEA Ultimate). You can also use the browser-based Kotlin demo without downloading anything.

Java

(23:06) Jon mentions installing Java JDK via Chocolatey, so as not to get the Ask toolbar. Hadi agrees and says that the Ask toolbar was from back in the Sun days, it’s not an Oracle thing. Jon also asks about the Java browser plugin. There’s a silly discussion about Java applets.

(26:44) Jon asks about Nitra. Hadi explains the difference between Nitra, Kotlin and MPS. MPS (Meta Programming System) is a language workbench to create new languages or extend existing ones running on the JVM. Kotlin is a separate language, but it’s written in a way that makes it possible to easily create DSL’s. Nitra is an open source tool built by the Nemerle team, who were hired by JetBrains. Nitra is similar to Roslyn – it’s a generic tool that allows you to create a compiler for any language with support for tooling.

Nitra

(30:36) Jon asks how Nitra is being used. Hadi says it’s mostly used internally by JetBrains, and it’s still really under development.

(32:45) Jon asks about the Nitra samples and Visual Studio extensions on GitHub. Hadi says you can start using them already, and that it does include Nemerle so you can start extending the with it now, but it won’t provide tooling for the language you’re building.

Developing In A Decade

(33:38) K Scott asks about Hadi’s talk at NDC called Developing in a Decade, looking ahead at technology and trends ten years from now. Hadi says he’s not so much looking at how or what we’ll be doing, but why we’ll be doing it. He says that he sees an overemphasis on how many rounds of VC money a company gets as opposed to what they’re actually doing. He’s interested in things people are doing for social good, and he’s concerned that we’re being destructive without thinking about the effects.

(39:02) K Scott says that until recently when he called tech support, when he finally got to a person they could help him. Lately he’s been finding that when he reaches a person, they’re powerless to help him because the computers are in control. Hadi talks about how emerging technology like self driving cars will eliminate jobs.

(41:26) Jon ask Hadi if trends towards automation will have positive effects, such as creating content that wouldn’t have previously been available or giving us more time to produce things we wouldn’t have before. Hadi references Brave New World and Amusing Ourselves To Death, and says that the huge explosion of content has a negative effect. Scott K and Hadi talk about the numbing effect of news as entertainment.

(00:54) Jon asks Mark what the talk was about, and some of his personal favorite periods.

(01:53) Jon remarks that some of the joke terrible languages weren’t much worse than the unintentionally terrible languages. Mark mentions Intercal, brainf*** and Malbolge as joke programming languages and IBM Cobol as the most unintentionally hilarious programming language.

Zudio: The Azure Cloud Storage Toolkit

(02:55) Mark talks about how Zudio got started and where it’s at. Zudio is a web based tool for managing Azure storage. It’s great for a lot of users, especially PHP / Node / Java developers and in the enterprise. It’s built with AngularJS and Typescript.

(04:37) Jon said he assumed it was just a simple table grid, but there are seem to be a lot more advanced features. Mark talks about the new enterprise model, which lets you control your user list through Azure Active Directory (which can be synchronized to on premises Active Directory), and you can assign different access rights to users and groups. There’s also auditing and logging to track usage.

(05:29) Jon asks if he’s specifically focused on storage. Mark talks about upcoming support for SQL databases, including Azure SQL, SQL VM’s, ClearDB running MySQL, Oracle VM’s, Postgres via VM, etc. that will show run queries and show results in a grid, list tables and views, etc. Jon compares it to phpMyAdmin, but Mark says it’s for any database and deployed in the same datacenters, without you needing to spin up a web server. His stretch goal is to handle data migrations between different database systems.

Angular and Typescript

(07:19) Jon says that Mark’s been a fan of Angular and Typescript for a while and asks why he likes the combination so much. Mark says it feels like the data binding framework Microsoft’s been trying to build since VB3.

(08:30) Jon asks why Typescript instead of just writing in JavaScript. Mark talks about the benefits of compile-time checking. Jon asks for some specific answers and Mark gives an example with services passed as parameters. Oh, and IntelliSense is handy, too. Mark uses DefinitelyTyped and some Bower packages that he maintains.

(10:24) Mark says that unlike most frameworks he’s worked with, he’s gotten to the end of a project using Angular and doesn’t want to throw it out, so that’s saying something.

Simple.Web and Simple.Data

(11:33) Jon asks Mark what’s going on with Simple.Web (a simple .NET web framework with attribute routing and dependency injection). Mark says that everything that had driven him to create Simple.Web has been added into ASP.NET vNext, so Simple.Web is pretty much done.

(14:50) Simple.Data is Mark’s simple data access layer that leverages dynamic types and can work without any code changes against a lot of different databases.

(15:52) Jon asks why someone would use Simple.Data instead of Entity Framework. Mark explains how Simple.Data works really well in lightweight web frameworks; it’s so simple you can code to it without IntelliSense.

(16:47) Mark is focused on updates to Simple.Data for use in Zudio, and will we working on more metadata, performance, and async support. He’s looking at moving to async only and is interested in listener input on that.

Wrap up

(18:13) Mark likes all the new stuff and thinks it’s a good time to be a programmer.

(00:18) Kevin introduces Jackson and asks about CodeReview. Jackson talks about how he missed

(01:25) Kevin asks about some of the specific features in CodeReview.

(02:05) Jon asks what the CodeReview app adds to the mobile web experience on GitHub. One of the big features is that CodeReview allows for completely working completely disconnected.

Nerdy Implementation Details

(04:10) Kevin asks if Jackson’s working against the GitHub API’s. Jackson says he debated working using Git directly, but so far he’s been using the GitHub API. Internally the code is abstracted so in theory it could work against other source code hosts like CodePlex. There’s a brief discussion of Google Glass

(05:45) Jon asks about Jackson’s development stack. Jackson says he’s working directly in Objective-C and some C as well for the Markdown parser. There’s some discussion of the joy of writing parsers in C. Jackson talks about how some old formats like diff are so much simpler to parse than even newer formats like XML and JSON.

(08:15) Jon asks why Jackson didn’t use Mono for this application. Jackson says he’s writing Objective-C for his day job, so it’s good for him to write as much Objective-C as possible. Kevin said it seemed like working with Mono would require learning Objective-C to read the documentation. Jackson agrees, but says that learning the iOS APIs using Mono made the transition a lot easier for him.

(10:46) Jon asks about the BetterFetch feature. Jackson talks about he’d originally modeled the application more like a Twitter stream, so he’d been using the stream API. Over time, it became obvious that an e-mail client was a better application model, so he’s moved off the steam API.

Business Model and Pricing

(12:47) Jon asks about the business model and pricing. Jackson said he and JB originally thought that they’d use a freemium model, but they figured out that it really was more applicable for business users who can’t as easily do in-app purchasing. He’s switched to a flat rate to allow for group purchases and generally work better for business scenarios. Kevin says $20 is pretty steep for an app, but Jon says it says it seems completely reasonable for the right application with one of his favorite Android applications which cost $20. Jackson says it’s a perpetual license, iPad apps often sell for a little more, and since it offers a lot of value to businesses he thinks it’s worth it. They’d originally looked at $4.99, but that’s hard to make any money off. Jon says he thinks that the price sensitivity between $4.99 and $19.99 is probably a lot less than between free and 99 cents. Jackson says he wants to sell and support a quality application that’s sustainable.

Services? Nope, just more repos.

(18:03) Kevin asks if it’s all run off GitHub or if there are some hosted background services. Jackson says it’s all running off GitHub. He supports storing additional profile data in an optional GitHub repository. Since he knows you’ll have a GitHub application, he can include support for retina quality profile images (and potentially other information) stored in GitHub.

Design issues

(20:54) Kevin asks if he’s been working with a designer or doing it himself. Jackson talks about how he’s worked with a few designers and it’s really helped.

(22:50) Kevin asks if the application’s design reflects GitHub’s design. Jackson says it’s similar, but explains some important differences between the application and the website.

(24:27) Jon asks about the full screen experience. Jackson explains how it both frees up screen real estate and allows you to focus.

Code Reviews and Separating the Creative and Editorial Process

(25:24) Twitter question from Elijah Manor: "Do you use the CodeReview app to review code for the app itself?" Jackson says yes and explains how a bit inspiration for the application was Stephen King’s writing workflow: bang out a bunch of pages in the morning, edit in the evening. Separating the creation and refining steps allow for a lot more productivity. Jon’s very interested and asks Jackson for tips on how to do that. Jackson talks about setting small goals and working in a coffeeshop without bringing his power adapter, so he’s constrained on time and internet use. K. Scott says that the iPad form factor probably helps for this, and Jackson agrees – he sees it as really good for focus.

(30:41) Jon asks if there are other features he could add by gathering intelligence about my codebase and workflow. Jackson mentions some ideas like hotspots and detecting patch impact. He’s been watching GitHub’s career page hoping to see that they’ll be hiring data scientists to start providing this kind of information. Jon agrees that it’d be great for GitHub to start investing in data science. Jackson says that you could get a pretty good start on patch impact just by manually flagging a few files as important. Kevin says this would have been useful in the case of OpenSSL.

Code Reviews and Git Workflows

(34:29) Jon asks about workflow support for larger teams and team hierarchy. Jackson talks about some of the different Git workflow methodologies. He says he might eventually add support for code review tools like Gerrit, although he feels that some of these tools give code review a bad name because they force you to look for minutia as opposed to the big picture.

When Does it Ship

(37:56) Jon asks how close he is to shipping. Jackson talks about the beta and some of the challenges of running a beta. [Note: the application is now up on the app store]

Metrics, Tracking and API Profiling

(37:35) Jon asks if he’s tracking metrics or tracking. Jackson says he’s gathering crash reports and doing some very basic analytics using localytics because he doesn’t want users to be concerned. Jon says he likes applications give checkboxes to allow for extended tracking. Jackson talks about how he’s using Runscope and would like to allow users to optionally turn Runscope on. Jackson and Jon rave about Runscope; Jackson talks about how a few hours of API profiling helped him significantly improve the application performance. Jon talks about how we don’t think about server interactions, and there’s all kinds of crazy, scary things going on behind the scenes. Jackson tells a horror story about how the Mono site used to return the logo image when you tried to download, and they didn’t find it out until they looked at the server logs. Jon talks about a case where someone requesting the Herding Code RSS feed several times a second.

What’s Next?

(48:39) Jon asks what’s next for the app. Jackson talks about the difficulty in cutting off the features and shipping a version.

(49:29) Kevin asks if he’s got big vision for more than code review. Jackson says he just wants to ship it and will probably start looking at other features eventually. Kevin talks about a polititian who’s put all of his information on GitHub. Jackson says he’s worked with a lawyer in setting up the company and wished they he could work in Markdown. Jon talks about how it would be nice if Markdown had review and change tracking that were similar to Word’s. Jon says that the recent hosted Sharepoint releases are getting close. Kevin, Jackson and Jon talk about how foreign the idea of versioning and change tracking is to most professions.

Random questions

(55:35) "Who is the best canadian you know" (Wayne Gretzky)

(55:55) "What type of dog is your favorite" Labrador

(55:57) "When will you stop lying about your tweets" There’s a short discussion about deleting tweets and Jackson’s feature request for Tweet focus testing. Jackson talks about a time when Twitter asked users to stop deleting tweets for performance reaons

Epilogue

(59:20) The app is now live on the app store! You can find out about it at CodeReview.io.

(00:18) Kevin introduces the show and warns listeners that Rob Conery is present.

(01:00) Kevin asks Derick what SignalLeaf is. Derick explains that SignalLeaf is a podcast audio hosting service. He explains how his service compares to big players like Libsyn.

(02:05) There’s a discussion of Libsyn. Jon confesses that Herding Code still runs off WordPress on an "unlimited hosting" account.

Bandwidth costs

(02:52) Jon asks Derick if the main cost is bandwidth. Derick explains that SignalLeaf runs on Heroku, but all the storage goes directly to Amazon S3 storage. He agrees that bandwidth is the main cost, and is planning to just make sure the overall subscribers balance out some of the more expensive bandwidth costs.

(04:52) Jon asks Derick what else he provides outside of audio hosting. Derick says he provides audio hosting, an RSS feed and stats, but he limits it at that. He also provides a blog with a lot of good information. The goal isn’t a big all-in-one service, just keeping it simple for people who want to get started.

(06:31) Rob gives the example of the rapid takeoff of This Developer’s Life and asks how Derick’s planning to handle pricing for unpredictable bandwidth. Derick says the model’s focused on unlimited uploads, but limited in how many releases a podcaster makes in a month. He’s relying on the law of average to pay for the popular podcasts.

(09:18) Rob talks about the huge streaming bills he was getting from Amazon for TekPub, which he almost eliminated by switching to Vimeo. He asks Derick if he’s looked into services like that. Derick says the backend is abstracted so he can move to other services if needed.

(13:25) Kevin asks more about the services SignalLeaf offers. Derick mentions storage, bandwidth, storage and analytics. Something he offers beyond what many other similar services provide is – if you use his RSS feed and embedable audio player – he can tell you where your listeners are coming from.

(14:50) Derick mentions his blog post showing that about 50% of listeners don’t listen via RSS. Jon said he’s seen the same thing with the Herding Code site.

Stats and advertising services

(17:25) Jon says advertisers are always asking for stats, and the kind of stats that advertisers want are hard to find. Derick mentions a service (blubrry) that inserts audio ads, but doesn’t think that sounds like a good idea. He mentions a business podcast running on a free service which had some off-color ads included as an example.

Getting started in podcasting: What equipment and software do you need?

(20:40) Rob asks how a developer should get started with creating a podcast. Derick says just hit record and get started. Don’t buy equipment, just record something and upload it and get started. He talks about professional podcasters who put artificial barriers up by focusing on radio quality recording; he disagrees.

(23:56) Jon mentions Derick’s recent post on getting started. He agrees with Derick and says don’t start by buying equipment, get started and buy equipment as you need it.

(26:11) Jon says he doesn’t use his high end condenser microphone because it picks up lots of noise and sounds strange compared to guests and other hosts. Rob asks Derick what people getting started should buy to start with. Derick recommends starting with a $26 Logitech headset, then looking at a $50 Audio Technica ATR 2100, a $90 Blue Yeti, $220 Rode podcaster mic etc.

(33:26) Jon says another thing to figure out at the beginning is how much you want to edit. Jon tries to focus on removing ums and repeated words and things, but leave it sounding natural. Both Jon and Derick say that Rob’s the easiest guest to edit.

(35:40) Jon asks K. Scott what he uses for recording. He uses Audacity and Camtasia. Jon tells a story about how how he spliced in audio from a previous call when one of the hosts couldn’t make a show. It didn’t make sense, but no one seemed to notice.

(36:50) K. Scott asks what kind of formats don’t work on a podcast. Derick says that visual features and visual cues obviously don’t translate.

What does SignalLeaf run on? (Part 2)

(38:21) Rob asks everyone to guess about the technology Derick’s running on. Turns out it’s all Node.js. Derick talks about how he got started with Node.js. Jon asks about what other libraries he’s using. Derick mentions Express, S3 restful API’s for upload and host, raygun.io for exceptions, keen.io for analytics, stripe.com for billing, MongoDb for data, Mandrill App for SMTP. Derick talks about how little it takes to build up a service now – he’s able to stitch a lot of services together to build what he needs. (45:30) K. Scott asks what text editor he uses. Derick’s a big VIM fan, having started with a Visual Studio VIM extension a while ago.

(47:20) Kevin asks about JavaScript libraries and testing. Derick talks up Backbone, Q and RSVP for promises, Underscore for utilities, and moment.js for date / time math.

(50:07) K. Scott asks whether Derick uses Grunt or Gulp. Derick says he’s thought about looking at Gulp, but Grunt works for him, although he doesn’t like .

Discussion about managing small, application specific Node modules

(50:55) Derick says he doesn’t like the way NPM wants you to have a separate git repository for each module – he wants to have all of his modules in one repo. He works around that by using different repositories for development and deployment. Kevin says that his company uses softlinks to work around that, but Derick’s not happy with that. Rob thinks you can do file references, but Derick and Kevin disagrees. Jon asks if submodules would work. Rob and Derick discuss cases where it does and doesn’t make sense to use different repos for different small modules which are specific to a project. Rob talks about using grunt to run an npm install command, or npm init or start scripts (set in package.json), or npm init.

Fin

(1:01:55) Kevin asks Derick if there’s anything else he wants to mention. Derick starts to mention WatchMeCode.com but the calls keep dropping and the show spontaneously combusts.

(00:18) K Scott asks Rob about the cage match he just had with Jeremy Miller comparing testing in NodeJS and C#. Rob’s got a lot of good things to say about what Jeremy showed, but is pretty sure he won.

(02:40) K Scott asks Rob to explain why he doesn’t like monkey patching. Rob mentions how QuickCheck helps, then talks about how code structure obviates the need for monkey patching.

(05:16) Jon asks how he bootstraps his application to inject dependencies and explains how he avoids deep dependency chains.

Clojure?

(06:40) K Scott asks what led him to Clojure.

(07:39) Jon asks Rob what he likes about Clojure. Rob says a better question is what he likes about functional programming languagues, then explains.

(09:25) K Scott asks about some of the learning project Rob’s been working with to learn Clojure. Rob talks about some of the games he started with, then the RavenDb reimplementation he’s been building with Clojure called Craven.

What do you do in your free time?

(12:56) K Scott asks Rob what he does in his free time. Rob starts by talking about Clojure, then talks about some of the complicated cooking things he’s been working on. He talks about some of the similarities between cooking and coding, and some of the constraint he deals with in ambitions cooking projects.

The future

(14:58) K Scott asks Rob about some of his plans for early 2014. Erlang away!

(00:15) The talk occurs in the year 2035. JavaScript is now pronounced differently, and there has been another world war.

(01:20) Jon ran over to the talk when he heard (via Twitter) that Gary was (or will be, it’s all so confusing) mentioning Singularity.

(02:20) Jon asks about Gary’s references to the performance improvements gained by turning off hardware protection. Gary and Jon discuss how Singularity and the (yet to be developed) Asm language offer high performance due to this approach.

(04:10) Jon asks why JavaScript has died, since Asm is universal. Gary mentions some of the problems – many historical – with JavaScript. And Gary should know, he’s famous for the "wat" talk showing several JavaScript insanities.

(05:37) Jon asks for some reasons why JavaScript had to die. Gary explains how it’s really just running on inertia now, and that it’d be preferable to use a better designed language like Clojure.

(07:45) Jon asks if Asm is a binary format. Gary clarifies that it’s the JavaScript subset that was proposed in 2012.

(08:54) Jon asks if Asm is perfect, or just good enough. Gary talks about how both Asm and the HTML DOM (which also has become universal in 2035) are full of flaws, but they’re better than fragmentation. Jon and Gary talk abouthow

(10:45) K Scott says this all sounds plausible, all that’s needed is time. So, why 2035? Gary talks about his reasoning… it could happen faster. He talks about some core services moving into operating system kernels, and Jon and K Scott agree.

(12:55) Jon applauds Gary’s 25-30 minute talk length.

(13:15) Jon mentions some of the interesting audience questions at the end of the talk. Gary talks about some of the most interesting. All of them were pretty easy except for the question of parallel execution.

(15:20) There’s a discussion about the limitations of x86 architecture and parallelism.

(16:10) Jon asks about some of the other things Gary’s up to – there are the Destroy All Software screencasts and a consumer product Gary’s working on but isn’t ready to announce yet.

(16:40) K Scott asks Gary about relaxation and recreation. Gary says that he’d become really preoccupied with things that were bad in software, and it was stressing him out. He’s made three changes: intentional social interactions, crossfit and playing guitar. All three have helped him be less angry about the state of software… which is all hacks on x86, when we get down to it.

]]>http://herdingcode.com/herding-code-189-gary-bernhardt-on-the-birth-and-death-of-javascript/feed/1noAt NDC London, Jon and K Scott talk to Gary Bernhardt about his talk, The Birth and Death of JavaScript. Download / Listen: Herding Code 189: Gary Bernhardt on The Birth and Death of JavaScript Show Notes: (00:15) The talk occurs in the year 2035. JavaScrHerding CodeAt NDC London, Jon and K Scott talk to Gary Bernhardt about his talk, The Birth and Death of JavaScript. Download / Listen: Herding Code 189: Gary Bernhardt on The Birth and Death of JavaScript Show Notes: (00:15) The talk occurs in the year 2035. JavaScript is now pronounced differently, and there has been another [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-189-gary-bernhardt-on-the-birth-and-death-of-javascript/http://herdingcode.com/wp-content/uploads/HerdingCode-0189-Gary-Bernhardt.mp3Herding Code 188: Pete Smith on Superscribehttp://feedproxy.google.com/~r/HerdingCode/~3/VU7YzAoRJUg/
http://herdingcode.com/herding-code-188-pete-smith-on-superscribe/#respondFri, 07 Mar 2014 00:10:20 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=644At NDC London, Jon talks to Pete Smith about Superscribe, a library which brings graph based routing to ASP.NET, Web API and OWIN.

Note: There’s a little bit of background noise due to the conference recording.

Show Notes:

Intro to Superscribe

(00:20) Jon asks Pete to explain what Superscribe’s graph-based routing means. Pete explains how traditional routing needs to check each route for a match, one at a time. Graph-based routing stores using a structure, so there are some performance gains due to only matching routes with a matching structure rather than using string matching.

(02:17) Pete explains that graph based routing is language agnostic, so there’s also a JavaScript implementation.

Extensibility due to strongly typed route nodes

(02:37) Each node in the graph is a strongly typed entity, so you can use an activation function for each node in the graph to determine if it’s a match rather than just using a simple regex match. You can write custom activation functions for any node. For parameter matching, Superscribe uses TryParse rather than regex matches.

(04:22) There are three guiding principles behind Superscribe: composability, efficiency and extensibility.

The OWIN connection

(05:22) Jon asks where Superscribe can be used. Pete says it’s currently usable in Web API and OWIN, with NancyFx and possibly MVC on the way.

(06:02) In addition to activation functions, you can also define an action function which says what should happen when a node is matched. This allows running different OWIN middleware based on route matches. This means you can hook up authentication middleware using an action function which will only operate on a specific node.

Graphs vs. Trees

(08:16) You can hook up optional nodes, which would allow things like an optional /debug/ route prefix which would hook up tracing middleware. Pete says this is something that wouldn’t be possible with tree-based routing (available in NancyFx).

(09:00) Jon asks what the difference is between tree-based routing and graph-based routing. Both are connected nodes, and trees are a type of graph in which the node connections branch out and ever reconnect, whereas in a graph any node may connect to any other node.

API options: Different ways to define route graphs

(09:53) Jon asks how developers will define nodes in Superscribe. Pete talks about the difference between economy and expressivity: economic design has fewer options but is easy to learn, while expressive design offers many options but a steeper learning curve. Superscribe is currently more expressive, using a domain specific language using operator overloads. It overloads the / symbol to add segments and the | operator to allow defining multiple routes (or the entire graph) in a single line.

(12:28) Jon says that you can always add an economic API layer over an expressive one. Pete agrees and says that since everything’s strongly typed underneath, you can configure it explicitly or fluently as well (if you don’t like the DSL).

(13:14) Jon asks about how to hook in action functions or activator functions. Pete says they’re currently not available in the DSL, so you’d need to build those notes out by hand at this point.

Miscellaneous questions and pretend ending

(15:08) Jon asks about using routes for localization. Pete talks about some options for doing that.

(19:12) Jon asks how people can learn more and keep up, Pete talks about Superscribe.org.

(20:12) Jon asks about the use case for Superscript in JavaScript. Pete talks about how activation functions are really useful in single page applications and how he’s using this in a production application. He’s working on packaging this up as Superscribe.js.

Update on the 0.4 release (follow-up phone call)

(22:11) Jon asks what’s new in the 0.4 release. Pete starts by describing some improvements to the routing syntax.

(23:02) You can now combine Web API replacement routing, traditional routing, Attribute Routing and Superscribe in the same application, so you can pick and choose.

(23:24) You can wire it up with an IOC container, so you can compose different components based on routes. You can also use route information in OWIN middleware.

(23:56) Everything about the new release is up on the Superscribe.org site.

(00:18) Brock gave two presentations on security at NDC, as well as a two day pre-conference workshop with Dominick Baier (also on security).

Brock’s contribution of CORS support to ASP.NET Web API

(00:35) Jon asks Brock about the CORS support he recently contributed to ASP.NET Web API. Brock tells the history of how he built a CORS implementation at Thinktecture and how he went about contributing it.

(01:21) Jon asks Brock about what was involved in his CORS implementation. Brock describes the limitations browsers place on cross-origin requests and how CORS solves that. It’s defined in the HTML5 specs and is supported by all modern browsers.

(02:12) Jon asks what’s required on the server for CORS to work. Brock explains how servers respond to browsers to tell them they support CORS and which other servers they want to allow communications with.

(02:45) The most common form of browser communications for CORS is via an OPTIONS request from the browser, to which the server responds using predefined headers.

(03:14) K. Scott asks about the process of getting his CORS implementation added to the ASP.NET Web API codebase. Brock explains the process, including his big pull request and the month of work he and Yao put in to getting the code "Microsoftified." Brock’s implementation was pretty broad, the shipping version was targeted just at Web API.

Thinktecture Identity Model

(04:59) Jon asks if there’s any reason to use the Thinktecture Identity Model version now. Brock explains the other areas that Identity Model supports, and that many of the features of Thinktecture Identity Model have been removed as ASP.NET Web API has added a lot of these features to the core.

ASP.NET Identity and Membership Reboot

(06:09) K. Scott asks how the identity features in Thinktecture Identity Model compare to the new features shipped in the new ASP.NET Identity system. Brock describes the problems that the ASP.NET Identity system was designed to solve.

(07:02) Brock describes the membership system he wrote as an alternative to the ASP.NET provider model system, called Membership Reboot. His Membership Reboot system includes things like password resets and e-mail account verification which are not in the initial version of ASP.NET Identity, but he thinks that the new system is well architected to add these in, since it’s just a NuGet package.

(07:42) Jon asks Brock about the other features Membership Reboot covers. Brock says that was the subject of one of his talks – how he implemented features like password reset, e-mail verification and two factor authentication without opening up attack vectors.

ASP.NET Security

(08:27) K. Scott asks about the other talks Brock did at NDC London. His other talk was on ASP.NET Core Security – he focused on teasing apart the membership and forms authentication parts so they’re understood as separate components.

(09:20) Jon asks Brock how he got interested in security. Brock talks about his background in programming, and how he thinks it’s interesting to see how the different parts work together.

(09:48) Jon talks about cases he sees where developers decide they want to write their own security implementations for speed or other reasons. Brock says that was one of the key points of his talk: you don’t want to implement those things yourself.

]]>http://herdingcode.com/herding-code-187-brock-allen-on-asp-net-security-and-identity/feed/0noAt NDC London, Jon and K. Scott talk to Paul Betts about several of his recent open source libraries designed to simplify cross platform development on C#. Download / Listen: Herding Code 187: Brock Allen on ASP.NET Security and Identity Show Notes: IntroHerding CodeAt NDC London, Jon and K. Scott talk to Paul Betts about several of his recent open source libraries designed to simplify cross platform development on C#. Download / Listen: Herding Code 187: Brock Allen on ASP.NET Security and Identity Show Notes: Intro (00:18) Brock gave two presentations on security at NDC, as well as [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-187-brock-allen-on-asp-net-security-and-identity/http://herdingcode.com/wp-content/uploads/HerdingCode-0187-Brock-Allen.mp3Herding Code 186: Paul Betts on three cross-platform libraries: splat, ModernHttpClient and punchclockhttp://feedproxy.google.com/~r/HerdingCode/~3/HyyjiBAxKdI/
http://herdingcode.com/herding-code-186-paul-betts-on-three-cross-platform-libraries-splat-modernhttpclient-and-punchclock/#respondThu, 06 Feb 2014 21:17:12 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=639At NDC London, Jon and K. Scott talk to Paul Betts about several of his recent open source libraries designed to simplify cross platform development on C#.

(00:18) Jon welcomes Paul back – he’s been on a few times before, talking about GitHub for Windows and Reactive UI.

(00:28) Paul has a dream: he’d like to write applications in C# and have them run everywhere: iOS, Android, Windows Phone maybe even WinRT. He’s not interested in sharing everything (views or designer code), but there’s plenty of other code that developers shouldn’t need to rewrite for every platform.

(01:16) Jon asks if Xamarin doesn’t help with this. Paul says that Xamarin’s intention is to give you direct access to the native platform, which is good when developing for a specific platform, but not when you’re working on cross-platform applications.

01:32 Paul’s been on a crusade, writing a lot of small, cross-platform libraries.

splat

(01:48) splat is a library that lets you share certain things in cross-platform viewmodels, the biggest one being images. It allows for the simple load-and-display scenario. Each platform hast its own image types; splat gives you a common abstract image type that you can then cast to a native image. This allows you to write cross-platform viewmodels and just have native views. splat also gives you System.Drawing on platforms that don’t have it, e.g. WinRT by providing common types for primitives like colors and rectangles.

(04:08) Jon asks if portable class libraries will help with this. Paul explains the PCL operations for splat.

(04:45) Jon asks about support for high-DPI / Retina images. Paul talks about how the different platforms handle high DPI images.

ModernHttpClient

(05:44) Paul says that HttpClient is implemented on Xamarin using HttpWebRequest. This has some problems: it doesn’t use 3G on iOS, and it’s a blocking call. That means if you make several web requests, you end up with a bunch of waiting threads and the app slows down.

(06:45) There are better APIs available on each platform, so Paul’s taken the most popular HTTP libraries on each platform and made them HttpClient compatible. HttpClient allows you to specify an HttpMessageHandler, so in your portable library you can just drop in the handlers provided by ModernHttpClient .

(08:33) In the latest version, Paul’s done work to make sure you can cancel requests. This lets you cancel a request based on headers (e.g. status codes or ETags) which can make a big difference on mobile network usage.

(09:23) Jon asks how it works in the Windows platforms. Paul says that on WinRT it’s already built in, and on Windows Phone there’s no way to do anything better than HttpWebRequest.

Jon asks a bit more about how you use it. Paul explains how platform-specific factory methods can provide the different handlers.

punchclock

(11:00) punchclock lets you make multiple web requests; it queues them up and makes the requests for you so there are a maximum of four web requests at a time. It’s based on an Android library called Volley.

(12:20) punchclock is a priority based scheduler. You can then make things like analytics low priority and user initiated requests high priority.

(13:12) It’s not just specific to network requests, you can use it for anything that’s awaitable.

What’s Paul using these on?

(13:35) Jon asks Paul what kind of mobile applications he’s building that are pushing him to build these libraries. Paul says he’s been working on some internal applications at GitHub. One example is a support application called Halp. It lets customer support people use @mention style messages to developers, allowing developers to respond quickly from mobile devices.

Reactive UI documentation

(15:10) Jon asks Paul what he’s been doing when he’s not writing cool code. Paul says he’s been working on documentation for Reactive UI by writing one big article per day.

(00:40) Jon asks Glenn what Splunk does. Splunk has a product that gathers operational intelligence. It’s got a data analytics platform which understands a lot of log formats. It can handle streaming logs and has a bunch of API’s. It can index in realtime, handles unstructured data, and has some advanced pattern matching features.

(02:12) Glenn talks about some common uses. GitHub and Target both use Splunk. It’s especially liked by IT Admins who can query across multiple servers by timeslice in realtime. There’s a customizable dashboard to surface the information.

(03:24) Glenn says that since Splunk has a powerful API, you can push data into it. You can push data in using HTTP or TCP.

(04:01) You can teach Splunk to fetch data from a source using their app platform. Glenn talks about an Azure app he built for Windows Azure Web Sites diagnostics.

(05:39) Splunk is available in the cloud, but it’s often run on premises. It’s cross-platform. It doesn’t store the data, it just indexes it.

Pricing, free versions, cloud hosted versions

(06:44) Glenn says the pricing is based on data throughput. They have a free license that gives you 500MB/day, a developer license that gives you 10GB/day for a limited time, a free cloud product called Splunk Storm which gives you 20GB/application for a 30 days, and a new enterprise product called Splunk Cloud running in AWS. The enterprise cloud product is especially useful for AWS hosted apps.

(08:20) Jon asks if there’s a planned cloud hosted offering for Windows Azure. Glenn says he’s pushing for it, but in the meantime it’s pretty easy to install it yourself.

(08:58) K. Scott asks about what he’d see if he used Glenn’s Azure app on a Windows Azure Web Site. Glenn lists some of the data and sources.

Developing Splunk apps and language support

(10:03) K. Scott asks about the process of writing a Splunk app. Glenn talks about all the language specific SDK’s they support and describes the process.

(11:20) K. Scott asks how they support so many languages in Splunk. Glenn says it’s pretty Unixy in that it works with streams, so all the language specific SDK’s work with that.

Using Splunk for evented data, not just logs

(12:25) Jon asks about some real world examples of things people are monitoring. Glenn talks about a recent DSL-like feature called data models, which allows business analysts to search through the data, and graphically pivot on it. One of the places people use that is for monitoring the entire dev lifecycle. Security auditing is a huge use case. 50% of the Fortune 100 uses Splunk. Glenn gives an example of how one of his co-workers wrote a Node app using Firebase’s bus feed to show a realtime map with bus location.

(16:00) Jon says this seems to blur the lines between logs and event sourcing. Glenn says it’s not just a log platform, and works really well with evented data.

Technology stack

(16:44) Jon asks what technologies it runs on, and if it’s using Hadoop. Glenn says Hadoop’s great, but not for realtime. They do have a product called Hunk which can access Hadoop HDFS information, though. It’s mostly C++ and Python (Django). They’ve recently rolled out an app frameowrk which makes it easy to customize Splunk using Django. There’s no database, since Splunk really just maintains indexes to data from other sources.

Glenn’s new book: Designing Evolvable Web APIs with ASP.NET

(19:25) Jon asks Glenn what he does in his free time. Glenn talks about the book he (and friends) are just finishing, called Designing Evolvable Web APIs with ASP.NET. It focuses on building a real system using hypermedia using ASP.NET Web API.

(20:35) Jon asks about versioning: are they using headers, URLs, etc.? Glenn says their argument is based on using additional media types and hypermedia. Hypermedia makes it easier to evolve your API because your clients are following links, not using hardcode URLs.

(22:15) Jon says hypermedia sounds great, but developers often want to follow defined links. Glenn says he doesn’t think it as a magical automaton, but both developers and code can look for new links as they’re added.

(23:40) Jon says it’s harder to evolve APIs if you’re thinking RPC style, but once you’re focused on resouces it’s easier. Glenn says this pattern has worked great for the web – clients just ignore things they don’t understand. Jon and Glenn say this is similar also to the move from relational databases to document databases.

(25:30) Glenn says the book doesn’t try to convince you that this is the only way, just shows the benefits. K. Scott says this sounds really useful to move from the theoretical to some concrete examples.

(01:02) Jon asks Scott to overview the highlights of what’s new in Windows Azure over the past year

(01:25) Scott says they generally ship a major release every three weeks

(01:40) Scott talks about how they’re using agile approaches to development, and some services update as often as ten times a day

(02:19) Scott overviews some of the main things that shipped over the past year

Virtual Machine and Virtual Networking

Windows Azure Web Sites

Auto-Scale support

Hadoop

Mobile Services

Push Notification

Media Services

(06:37) K. Scott asks how Auto-Scale came to be. Scott Guthrie tells the story about how it came from an acquisition of an Azure startup incubation project. The team joined at the end of March and the feature shipped in June.

(08:42) Scott talks about how Azure and Cloud Development help you move faster with illustrations of how quickly you can create and integrate services and infrastructure and support multiple regions.

(10:22) Scott talks about the advantages of being able to quickly scale both up and down. He talks about how Troy Hunt was able to scale up Azure instances to crunch through databases of breached passwords to make it easy to see if your password has been compromised, then scaled right back down and spent less than a dollar.

(14:09) K. Scott asks about Node.js support. Scott talks about how they’ve been supporting Node for a long time, and how cloud development lets you easily choose between tools for different applications.

(15:09)Jon asks Scott what books he’s been reading lately.

(15:45) He’s been reading a lot of work related books on things like supply chain management

(16:35) Scott mentions the new Web API book by Glenn Block and friends

(16:46) He went to Australia and read a book called Fatal Shore, a book about the founding of Australia

(00:18) Semantic Merge is a diff tool with a semantic understanding of your code.

Language support

(01:01) Jon asks about what languages Semantic Merge supports. It currently supports C#, Visual Basic.NET and Java, and they’re currently working on adding support for C, then C++.

(02:00) Jon noticed that they’re using Roslyn and asks about that. Pablo says that it worked really well, handling the parsing to allow them to focus on the important things like diff calculation and semantic merge calculation

(03:02) Jon asks about support for JavaScript. Pablo says it’s still under development and there’s a lot of demand for it. Since JavaScript isn’t so tightly structured, they’re still working on figuring out how to come up with something really useful there.

(04:08) Jon asks about how they handle parsing outside of Roslyn and .NET. Pablo lists the different parsers they use for different languages. They’ve opened up the way that languages plug in, which allowed for a community contributed Delphi parser.

(5:33 Scott K. asks about support for Typescript, since it’s more strongly typed. Pablo says that’ll be easier, but they’re working through the language support list in order of demand.

What kind of semantics can Semantic Merge understand?

(06:28) K. Scott talks about what Semantic Merge does at a high level and asks about the different refactorings Semantic Merge can and can’t understand. Pablo explains a common scenario in which you’d be afraid to refactor code while adding or changing functionality if you know someone else is also working on it. Semantic Merge understands the refactorings so it’s easy to merge the actual changes. What Semantic Merge currently doesn’t handle is multi-file semantic merges, e.g. with code being refactored into another file. They’ve got a working prototype for that, but it’s harder to plug into different source control systems since they handle multi-file merges differently.

(08:52) Pablo points out that, while it’s called Semantic Merge, the diff functionality is really useful on its own.

The importance of graphical representation of merge issues

(09:17) Jon talks about how good the graphical representation is – both really easy to read and just generally nice looking. Pablo says they’ve put a lot of work into that and explains why they’ve designed it as they have.

(10:41) Scott K. says that developers are often stuck in a textual viewpoint for diff and merge, but a good graphical representation can be really useful. Pablo says that we’ve seen a recent revolution in source control tools, but we’re still using tools and technologies from twenty years ago. Jon says that the older ways of displaying diff and merge results with plus and minus lines was based on working with the old source control systems and mostly doing two-way merges.

(13:25) Pablo says it’s something that you really miss when it’s not there – big merges with lots of files look scary, but when you see that the actual changes are minimal it’s not such a big deal. Scott K. mentions a joke he saw on twitter about how a ten line code review finds ten issues, but a thousand line review passes easily.

(15:17) Jon asks how Semantic Merge has changed the way their team develops code, for instance by making them more ready to refactor code. Pablo gives an example with working on a year-old branch in which traditional diff gave him tons of merge conflicts but Semantic Merge only gave him one.

(17:19) Jon noticed that many of the samples were able to automatically merge everything and asks how Semantic Merge detects merge conflicts. Pablo explains how Semantic Merge not only is able to detect when changes don’t cause conflicts, but can also detect merge conflicts that other tools won’t find.

Version control integration

(19:36) Jon asks about which version control systems Semantic Merge integrates with. Pablo lists Git, Mercurial, TFS, Perforce, Sourcetree and Subversion and says that it’ll plug into just about anything because just about all version control systems use common conventions for diff / merge tool integration.

Platform support

(20:51) Jon asks about their recent Linux support and asks if that’s done using Xamarin and Mono. They use Mono for common backend code, but wrote native front-end code for Linux using Gtk#. They’re currently working on an OSX version using MonoMac, which gives it a true native front-end with a standard Mac look and feel.

Pricing model and free licenses

(22:52) Jon asks about the pricing model. There’s a 15 day free trial and a monthly subscription for $4/month. They wanted to experiment with pricing to make it so inexpensive that pricing wasn’t an issue. Jon asks if the subscription checking is complex. Pablo says it give you a lot of leeway so it won’t block you if you’re coding on a plane or something. They don’t obsess over security since it’s such an inexpensive application to begin with.

(25:36) Jon asks about their free licenses for open source developers. Pablo says they use Mono extensively and have been offering open source licenses for Plastic SCM for a while. Pablo mentions some of the open source projects using Semantic Merge, including F-Spot and a lot of other Mono projects.

Semantic based insights

(26:57) Jon asks they could use their information about semantic changes to source code over time to offer other insights to developers. Pablo says that this is something they’ve been doing with Plastic SCM with features like semantic method history, so you can track changes to a method over time across renames, refactoring to other files, etc. They also can offer richer metrics, so you don’t just see lines of code changed but can understand methods changed, refactorings, etc. Their goal for a long time has been to transform version control from a delivery mechanism to a productivity tool for developers.

Plastic SCM

(29:04) Jon asks how Plastic SCM compares to other version control systems. Pablo recommends going to PlasticSCM.com and look at the branch explorer. It’s as powerful as Git but very easy to use. It’s fully decentralized. It’s very graphical, and you can do almost everything from the branch explorer. It integrates well with enterprise security with support for things like ACL’s. It (of course) offers support for a lot advanced merge scenarios. It’s been under development since 2005, they’re in version 5 right now. It’s free for every team under 15 developers.

(31:25) Jon asks if there’s a way to test-drive Plastic SCM against an existing Git repository. Pablo explains how to do that without changing version control systems, since Plastic SCM can natively use the Git API.

(34:25) K. Scot asks about an old blog post about a small Windows Git application client; Pablo says that’s no longer required as it’s built into Plastic SCM.

Wrap up

(34:55) Jon asks about where listeners can find out more about Semantic Merge and Plastic SCM.

(35:50) Jon mentions that he really likes the team page on the Plastic SCM site – all the faces follow the mouse cursor as you move it around. He’s easily amused.

(00:40) Jon says he heard about Daniel because of SisoDb, a document database running on top of SQL Server. Jon and Daniel talk about what SisoDb does and why it could be useful in a "SQL Server only" shop.

(01:55) Daniel introduced Jon to Max, who works as a developer evangelist at Cloudant and hacks on Node.js and CouchDb.

CouchDb and Cloudant basics, multi-master replication possibilities

(02:30) Jon asks Max what Cloudant does. Max says that Cloudant is a database as a service – a hosted, managed document database based on CouchDb.

(02:58) Max talks about multi-master replication and some of the implications, including PouchDb (which treats your browser as a CouchDb instance), and even running a node on your phone that you can replicate against. Jon’s mind is blown.

(04:30) Jon asks about the latency involved in using an HTTP database as a service. Max says that local caching helps, as well as having your database service physically close to your users (or app/web servers). Queries are always done against precomputed indexes, so query time is always logarithmic. Daniel says you can use replication to bring data as close as possible, and emphasizes the importance of in-application caching.

(06:38) Kevin says that there have been a lot of attempts at replication based systems over the years and asks what CouchDb does differently. Max says that the big difference is in the way CouchDb handles multi-version concurrency control by keeping revision trees. This lets them run a lockless system and investigate changes later. Daniel says that consistent hashing helps with this and explains the terms. Max talks about the use of revision numbers and conflict handling.

(09:08) Daniel says he likes that Cloudant adds clustering support, and he’s excited that Cloudant is contributing this back to CouchDb. Max says that they’ve also added a new administrative interface called Photon, which they’ll be contributing back.

(10:19) Daniel asks if this means that Big Couch is being deprecated. Max says yes, and Kevin asks for more information on what Big Couch is.

Migrating to CouchDb

(10:57) Jon asks about the migration path for applications using traditional RDBMSs to Cloudant or CouchDb. Max explains two options: the do it yourself option (uploading data as CSV’s or similar) or using the WEAVE@cloud service from CloudBees.

(14:13) Daniel asks about task of moving from traditional queries to map – reduce queries. Max talks about some of the migrations he’s been a part of, and talks about the use of Lucene queries as a bridge. Daniel says that in moving to document databases you really need to think differently about how you’ll consume the data, e.g. . Max talks about design documents, which store indexes, list functions.

(16:06) Jon says that when he started looking at document databases, he found that it was also helpful to store additional data in a way that it’s easy to query. Max gives an example using medical data in which you can normalize data as part of the map reduce process, so you rarely have to worry about schema. Daniel says that it’s the result of the map that’s being indexed. Max says that unlike some other systems like Hadoop that do the mapping in a batch, CouchDb updates indexes incrementally.

(18:42) Jon asks how CouchDb compares to Mongo. Max says he found Mongo to be a good transitional system from relational databases because the querying was similar, but it broke down at scale.

(19:50) Jon puts K Scott on the spot and asks how this strikes him due to his recent work with medical data on Mongo. K Scott says it’s good to know CouchDb is an option if they hit scaling issues.

(20:43) Jon asks about the process of migrating from Mongo to CouchDb. Max says he’s written a script that dumps data from JSON in Mongo to be imported into CouchDb. He says that on the surface, Mongo and CouchDb store data similarly so migrating data isn’t that hard – the real differences are in querying and locking.

Cloudant – features, pricing model, free account setup

(22:21) Jon asks how Cloudant compares to other database as a service offerings. Max lists some, and Daniel mentions Iris Couch. Daniel talks about how easy it is to get started with CouchDb on Windows, then migrate to Cloudant.

(24:12) Max talks about some of the features they’ve added recently, like Lucene queries and geographic querying. Max says that they contribute a lot to CouchDb.

(25:30) Jon asks how Cloudant integrates with the hosting providers they’ve got listed. Max says that they work to host Cloudant servers in the same datacenters as their hosting partners.

(27:05) Kevin asks how Cloudant charges. Max says that for dedicated clusters, it’s per-node and dependant on the hosting provider since they all charge differently. For multi-tenancy, it’s on a per-request and per-storage. Migrating between dedicated and multi-tenant is handled using the standard replication mechanism.

(27:39) Jon asks about the process of getting started with the free level. Max explains how it works and says they’ll only charge you if you exceed $5 per month, which is a good amount of use. Daniel says it takes less than 5 minutes to get started.

Client libraries and MyCouch

(29:03) Kevin asks if there are client libraries for most libraries. Max says there are, but most are just adapted from the CouchDb libraries.

(29:43) Daniel built MyCouch as a purely async library that doesn’t hide the domain knowledge of CouchDb. Jon asks about the overall flow of using the MyCouch NuGet package to get started. Daniel says he’s use Portable Class Library support to cover the different the different platforms.

(31:53) Jon asks about the Query.Configure interface to build a query.

(32:44) Jon asks about the history of Daniel’s interest in CouchDb and MyCouch.

Migrating from Cloudant to in-house CouchDb

(33:20) Kevin asks if Cloudant is a hosted version of CouchDb or a fork. Max says that currently it’s a fork, but they contribute a lot back.

(33:43) Kevin then asks about what would be required in bringing a Cloudant-hosted application back in-house to run under vanilla CouchDb. Max say that in addition to losing the managed / hosted value, you’d lose Lucene querying and (soon) the geo-indexing features. Daniel also points out Cloudant’s clustering support.

Questions from Twitter

(34:55) Rob Sullivan asks Daniel how working with SisoDb and CouchDb affect the way he views document databases and RDBMSs. Daniel says that he doesn’t want to see an ORM anymore and he’s noticed that a lot of people are creating hierarchical document structures in SQL Server when a document database would be a better fit. He says that there’s a little less safety in distributed document databases, and you just have to get used to working with that. Kevin asks about some of the application strategies people use to deal with that. Max says that CouchDb provides ACIDity at the document level, so as long as you wrap your transactions into a single document you’re fine. This leads to event sourcing, in which all your transactions are handled as separate documents.

(39:23) Steve Strong asks about the offline story to synchronize change changes to a web client. Max talks about PouchDb and how it works in web clients with intermittent data access.

(41:31) Jon asks if PouchDb and CouchDb could be used in peer-to-peer systems. Max says this is something he’s profoundly interested in. He’s done some conference talks about it and has a project called Quilter which is aimed at feature parity with Dropbox but with full user control, security and privacy by eliminating centralized network infrastructure. Daniel asks if it’s NSA-safe, and Max talks about how you can protect things using HTTPS and friend / reputation systems

Erlang

(46:13) Kevin asks what it’s like working with CouchDb’s code, since a lot of it’s written in Erlang. Max says that it’s built around building effective distributed systems since it incorporates fault handling. Daniel talks about the low memory footprint and Max talks about the ability to pass native Erlang messages over arbitrary protocols including HTTP.

(49:02) Jon asks where to learn more about Erlang. Max points out the book (available online) called Learn You Some Erlang For Great Good.

(49:44) Jon asks about what it’s like to integrate Erlang into parts of an application.

CouchDb vs. Mongo

(50:51) Kevin asks why Mongo gets more press than CouchDb. Max says that Mongo has a similar interface to traditional RDBMSs, but a lot of it’s just been a marketing victory. He talks about some unappreciated CouchDb advantages, like the fact that it’s got a built-in REST interface. He also says that CouchDb scales better than Mongo due to technical differences such as multi-version concurrency control.

(00:34) Mads works on the ASP.NET team building tools for everything that has to do with web development. He’s also done a lot of open source development – BlogEngine.NET, Web Essentials and some other Visual Studio extensions.

(02:48) Visual Studio 2013 has Browser Link, which allows you to connect any browser with Visual Studio. Any extension in the browser or Visual Studio can talk to each other via a web socket connection. The refresh browser feature in Visual Studio 2013 is just a proof of concept, the real feature is the communications channel.

(04:07) Scott K Asks about the Page Inspector feature and whether that would be integrated with Browser Link. Mads says that Page Inspector was introduced with Visual Studio 2012. It includes browser tools and source mapping which allow you to trace the markup back to what generated it, including C# code and server controls. Mads took over the Page Inspector team almost a year ago, and they’re using the same underlying engine. Right now you don’t get live updates in Page Inspector with Visual Studio 2013, but with the Web Essentials extension you will.

(07:19 Jon asks about how the source mapping works. Mads explains that the ASP.NET runtime injects a script tag at the end of your page, and Visual Studio is listening for it to connect on a localhost endpoint. Mads explains that the Browser Link connection is only made under specific conditions – running locally, in debug, etc.

(09:10) Jon asks about some of the recent extensions Mads has demonstrated, especially the example which tracks unused CSS class names. Mads says this has been a long requested feature, but it’s only possible to do this right from inside the browser. They’re now able to add smart tags into the CSS editor to show unused CSS classes. It’s available now using Visual Studio 2013 and Web Essentials.

(12:24) Scott K asks if it’s possible to see which classes are overriding others. Mads said it’s not there yet, but on the way.

(13:08) Jon asks about the process for creating an extension, and what parts are open source. Mads says that the project and item templates are open sourced. He explains the steps to create a Browser Link extension. The project template contains a C# file and a JavaScript file which are able to talk to each other. The Browser Link JavaScript contains an isolated copy of jQuery. In both the C# and JavaScript, you can call directly into the other side using simple Call methods.

(17:23) Scott K asks if they can hook up the model binder to allow deserializing more complex types. Mads says it’s not available yet, but on the way.

(18:00) Scott K asks if they’ve done any prototyping for unit testing automation, to allow running JavaScript testing frameworks like Jasmine with Visual Studio integration. Mads says it was part of his initial pitch for the Browser Link feature, but it hasn’t been implemented yet.

(19:04) Jon says they could also test performance using testing automation, and Mads says that they could do quite a bit more with performance and browser testing by working with browser extensions – Page Speed, SEO, accessibility, etc. They can call off to any service anywhere on the internet.

(21:10) Jon asks about some of the extensions and prototypes he’s worked on. Mads says he’s wrote an extension for LESS and CSS editors which updates the page as you type – without even requiring you to save the CSS document.

(23:50) Mads talks about the inspect mode extension. When you hit ctrl-alt-I in the browser, you can hover over any DOM element and see the source in Visual Studio (including controls, views, Master Pages, partials, etc.).

(25:35) Mad talks about design mode (ctrl-alt-d) which turns any DOM element into a content editable field, which allows you to type in the browser and change the server-side code. He talks about some complexities due to changing the server-side code which throws off the source mapping, and how when they make some future changes to allow updating source maps on the fly they’ll be able to allow pretty complex browser-based design and editing.

(29:35) Scott K asks if they could use the shadow DOM to allow updating the source maps. Mads says that wouldn’t work with older browsers, and there’s some discussion of legacy browser support.

(31:17) Scott K talks about a feature he liked in Brackets, which allowed viewing styles applied to a code fragment when editing HTML. He asks if he could get something like Visual Studio 2013 Code Lens to view the styles and navigate to the CSS. Mads talks about some of the complexities there, explaining how they inject ID’s into all elements and include the mapping in a JSON blob. Given an element ID, your JavaScript can look up the source file and range that corresponds to it on the server.

Web Essentials

(36:12) Mads talks about the history of Web Essentials. It started out in 2010, but the old Visual Studio HTML and CSS editors limited what he could do. He used Web Essentials as the test project to make sure that Visual Studio 2012 supported the extensibility API’s, then released a new version to correspond with Visual Studio 2013. He open sourced it at BUILD 2013 in June.

(37:36) Jon asks about how Mads migrates features from Web Essentials to Visual Studio. Mads says that he does this on every Visual Studio release (including updates) which allows him to delete a lot of code. There are some features which don’t get migrated – niche features, features for which they’re still testing out the user experience. He talks about some neat features in Web Essentials that he likes, but he doesn’t think enough people use to justify migrating.

(39:57) Jon asks about the language Web Essentials supports. Mads lists Markdown, LESS and Coffeescript. Mads talks about how they were able to include LESS and Coffeescript support from Web Essentials while waiting on the Visual Studio 2012.2 release, then removed it when that update shipped. He talks about the problems they hit due to the editor overlap. Mads said that situation caused him to change his philosophy on features to add in Web Essentials – he’ll no longer include features in Web Essentials which could cause a conflict with Visual Studio, especially compiler related features; that’s why he removed TypeScript support from Web Essentials.

(44:14) Jon mentions robots.txt support in Web Essentials. Mads explains that this is a great example of how his personal web development frustrations turn into Web Essentials features. He’s hoping that open sourcing Web Essentials will lead other developers to contribute as well.

Web Dev Checklist

(46:35) Jon asks about Web Dev Checklist. Mads and Sayed were both working on building out some sites last year, and they came up with a list of important checks for any website – performance, accessibility, SEO, etc. They got on Hacker News and were happy that their site held up well under the traffic.

Side Waffle

(49:16) Side Waffle is a Visual Studio extension which gives you a lot of templates so you can add things to your projects which were written the write way, by experts. They’ve got Angular controllers, Durandel, robots.txt, etc. They’re hoping for other developers to add new templates.

(51:36) Mads says that the teams at Visual Studio can’t create and maintain all the templates over time. Jon says he’s seen this again and again – new things get released but don’t always get maintained over the years. Mads says this makes it easy for developers to add and update templates.

(53:28) Mads says Sayed came up with the name from ordering a side order of waffles in a restaurant.

(54:24) Mads explains some of the technical complexities that he and Sayed had to deal with to allow adding new item templates to Visual Studio. Due to the strange ways they worked with MSBuild, Side Waffle isn’t allowed into the Visual Studio Gallery. They register Side Waffle as a Visual Studio gallery provider so when new templates are added, it will show up in the Visual Studio updates list. Jon’s confused, and Mads explains more about what’s going on.

(00:50) K Scott asks about how xSockets got started, and what problem it solves.

(02:05) Jon asks if xSockets is a business or a project. Magnus says it’s now a full-time business – they’ve been working on xSockets for four years, but they’ve gone full-time earlier this year. Uffe points out that while it’s supported by a full time business, xSockets is free to use.

xSockets compared to SignalR, unique xSockets features

(02:57) K Scott asks how xSockets compares with SignalR. Magnus says they’ve been working on this for 4 years and mentions some differences. Uffe compliments the SignalR project and community, then points out that one important difference is that xSockets is stateful, whereas SignalR isn’t.

(04:54) Jon talks about the different approaches towards stateful controllers, and that it seems that stateful controllers could simplify things. Uffe describes some advantages, like filtering where you send messages dynamically with lambda expressions (a lot more control than groups in SignalR).

(06:10) Magnus talks about the JavaScript proxy in the xSockets which also is able to interact with state on the server.

(07:09) K Scott asks about other differences. Uffe says that xSockets is very portable – running on IIS, OWIN, Azure, Amazon, a Raspberry Pi, even your cellphone if you want. It runs on anything that runs .NET 4 or Mono, and they’ve had reports on it running a wide variety of hardware.

(07:52) Jon says he’s heard of people using local servers for desktop applications. Uffe says they have people in Russia doing that with xSockets.

(08:20) Magnus says that they have support for long-running controllers.

(08:50) Uffe says they’ve got a plugin framework. It was originally built on MEF, but they’ve recently rewritten it to remove the MEF dependency. You can drop an assembly in the xSockets folder and it will be picked up. Jon says it looks pretty similar to MEF; Uffe says he loves MEF and kept it pretty similar.

(09:55) K Scott says it feels very similar to ASP.NET MVC, in that there’s a controller base class that you extend.

(11:00) K Scott asks if there’s a routing mechanism. Uffe describes the extension methods that allow sending messages as well as using the routing system.

11:52 Jon says he noticed the generic controller which works as a message dispatcher. Uffe describes how it works as a smart dispatcher, which will only dispatch messages to people who are subscribed. This is useful to people who are familiar with JavaScript; they can do pretty advanced stuff without needing to write any server-side code.

(14:02) K Scott remarks that the Web Sockets protocol has changed quite a bit over the years. Magnus says that it was very difficult earlier, but has stablilized.

(15:02) K Scott asks if there’s a test suite for Web Sockets available. Uffe says there are some, but all have problems. The xSockets team uses their own testing system.

(16:00) Jon asks if the Web Sockets API is difficult to use. Magnus says the two first versions were pretty easy, but the RFC introduced some more difficult concepts like control frames and continuous frames. There are a lot of solutions on GitHub and CodePlex for dealing with protocol stuff.

Web RTC

(16:40) Jon asks about Web RTC support. Magnus says Web RTC enables realtime communications in the browser using peer-to-peer communication without requiring a server or middleman once the communications are established.

(18:47) K Scott asks if the Web RTC communications are TCP or UDP. Magnus says it’s UDP so it can be unreliable. There’s a NuGet package with a full sample showing how it works.

(20:00) K Scott asks about the processing pipeline. Uffe describes the Rewritable attribute – you can use that to override anything in the pipeline.

Fallback and pipeline

(21:05) Jon asks about fallback support for older browsers. Magnus says there’s long-polling support based on MVC; they’re going to replace that with a Web API based solution. Uffe says it’s easy to implement; just add a JavaScript reference. He also says there’s no MVC dependency in xSockets, so you can use it without MVC if you want.

External API

(22:25) K Scott asks about the external API. Uffe says it should probably called something clearer – it’s a client that can be used in any C# code, as well as PowerShell and even compiled stored procedures in SQL Server. Uffe describes some of the ways he’s seen it used.

Crazy things people have been doing with xSockets

(24:24) K Scott asks if there’s anything crazy they’ve seen people do with xSockets. Magnus talks about a microscope control system used in Jamaica. Uffe talks about a realtime water monitoring system in Dubai running in C# 2.0 on Windows CE. They’re now able to control the water system via a web page, which replaced the need for an entire water monitoring facility.

(27:32) Magnus talks about a Fruit Ninja like game using xSockets, HTML5 canvas and Kinect. That lead to a job building a virtual lobby, which they completed in 10 days.

(28:18) K Scott asks about authentication and authorization with xSockets.

Final questions, Samples and Videos

(29:08) K Scott takes a question from Twitter about what they think about OWIN. Magnus says they support it and it seems like a good idea, but he can’t

(29:42) K Scott asks about the While You Were Gone example. Uffe says this is a queue system that handles offline messages, so if you’re disconnected for a period of time it will deliver the messages when you reconnect.

(31:12) K Scott asks if there’s anything that may have been missed. Uffe talks about clustered servers – they’re all siblings which communicate peer-to-peer.

(32:48) Uffe talks about some upcoming travel they’ve got later this year for Desert Code Camp in November and possibly NDC London in December.

(33:22) Jon talks about the best way for people to get started. Magnus recommends the videos on xSockets.net.

(00:52) Kevin says he thinks the Callback Hell problem is overblown. In the Node world, there are flow control libraries like Async and good practices.

(01:51) Scott K agrees – using named rather than anonymous functions solves a lot of problems he sees. He asks if things would be better if everything was Async by default. Jon says he thinks Async-creep and Async by default push you down a better path most of the time. Kevin says since Node’s always forced that pattern it’s been simpler.

(04:40) Kevin says he Async / Await only address simple cases where you want a series of steps. Flow control libraries allow for more complex flow, parallel operations, etc. Jon talks about how multiple async operations can get complex pretty quickly – dealing with error conditions, timeouts, etc. and Scott K points out the difference between parallel processing and async.

C# Syntax and Xamarin Speculation

(07:42) Jon says there’s room for a lot more syntactic sugar in C# – not just async, but dynamics, chained null checking, etc. Jon and Scott K talk about the benefits and limitations of the null coalescing operator (??).

(10:50) Scott K says async may be the next TDD in terms of driving good design.

(11:47) Kevin wonders when Xamarin will cut the cord and begin innovating on C# separately from Microsoft. The guys discuss some of the things they’ve been doing – repl, SIMD support, etc., but Jon points out that it’s all innovation at the compiler level, not on the language. Scott K talks about how our recent interview with Jon McCoy talked about modifying IL, and wonders if Xamarin will get into doing that kind of thing. Kevin asks what benefit Xamarin gets from keeping compatibility with Microsoft. Jon doesn’t buy it.

(15:01) Scott K wonders if the C# spec or compiler were open enough that people could innovate on it. Jon thinks Roslyn could do that, but he’s just making stuff up.

AngularJS – K Scott’s impressions

(16:36) Jon asks K Scott about his recent experiences with Angular. K Scott says that most things are easy, but hard things get complex, so he’s been reading the source code. He says the source code is mind bending. There are a lot of different ways to accomplish something – binding, watching, raising events, etc. – and it’s hard to know what’s going to work.

(18:33) Jon refers to the Ember / Angular Cage Match at NDC and how Angular worked great until it was time for a directive, and that got trickier. K Scott says there’s room for some polish on the Angular API. For instance, there are 3 or 4 ways to register a service.

(19:40) Jon asks K Scott if he’s used Ember and how he’d compare them. K Scott says he’s invested Angular and hasn’t had time to dig into Ember. He says Ember seems to provide more of a path for users, whereas Angular seems more tacked together.

(21:02) Kevin asks how much people become locked into a front end framework. K Scott say

(22:00) Scott K says most of the complaints about Angular are around changes to the API and documentation over time.

(22:48) Scott K says it seems like Ember examples generally require more code. The guys discuss the balance of declarative code vs. magic that sometimes goes off the rails.

K Scott says he sometimes gets flashbacks to ASP.NET Web Forms controls. Kevin mentions HTCs in Internet Explorer and Jon says it seems like things are coming back around to that kind of thing with web components. K Scott says there are pretty good separation of concerns to directives, but directives can be really hard to extend – you want to tweak one thing and pretty soon you’re reimplementing a lot more than you wanted to.

Document Databases

(26:36) Jon says he got to use Redis on a project and talks about his experiences. K Scott’s been using Mongo for a hospital system. Kevin says he hears people complain about Mongo, K Scott says performance and diagnostics can be frustrating.

(28:53) Kevin’s used it for Greater Than Parts and at his new job. He says the biggest mind shift is in how you model things. Jon says that was the biggest thing he learned – it’s not just a pile of documents, you still need to model things. K Scott says migrations and configuration management are important.

(32:26) Jon asks Kevin about the new job. Kevin’s working at Brandcast. Their mission is to make it really easy for people to set up a web presence that works well on multiple devices without any technical background. It’s a small shop running Node and Backbone. Kevin’s gone from being the young guy at his old company to the old guy at the new job.

(34:39) Jon asks if they’re using frameworks on top of Backbone. Kevin’s used Marionette, They’re using Backbone Layout Manager and Supermodel.

HerdingCode.com Operations Report

(35:36) Jon gives an update on the Herding Code website and hosting setup. We’ve been running for over five years on an el cheapo WordPress account.

(37:00) Jon’s been using CloudFlare to do some front-end caching and security blocking.

(37:50) Jon talks about some of the security things he’s set up, including a plugin to lockout IPs after incorrect logins, long password and OpenID login.

(38:33) The new release of WordPress uses MediaElement.js to use HTML5 audio with Flash / Silverlight fallback, and Jon extended that using some JavaScirpt to show a play indicator in the browser tab when audio elements are playing.

(39:51) There’s a WordPress plugin to show a mobile friendly theme.

(40:50) Kevin says the times we’ve run into trouble have been CPU related. Jon talks about the different layers of caching – Cloudflare on the front end, W3 Total Cache on the backend.

(44:12) Scott K asks about what kind of value adds a podcast app could add, beyond just an audio player.

(45:58) Jon says that the only thing that does change on the site is comments, so he’s outsourced that to Disqus. Scott K and Kevin talk about how Disqus has been heading downhill by inserting stupid ads, or "climbing douchebag mountain" in Kevin’s words.

Summer Report

(49:30) Kevin asks what everyone’s done with their summers.

(49:37) Scott K had to update a Monorails site using the Brails engine. The biggest frustration was that in the latest rewrite, they pulled all the documentation and source for old versions – even the NuGet packages. Kevin says that’s why he’s not a fan of including package managers in deployment – things can disappear from the feed and you’re screwed. Jon tells an old story about a stored procedure that called a COM object to split comma delimited strings.

(53:42) Kevin got a new job and travelled to Paris and Switzerland and San Diego.

(54:02) Jon went to NDC, then worked on Scott Hanselman’s keynote demo at BUILD, then went on some family vacation time in New Jersey.

(55:21) K Scott worked a lot but says he’ll have exciting stories later. The guys congratulate him on all the press about his Pluralsight courses.

(00:50) Jon asks Anthony about the JavaScript work they’ve done to enable Glimpse. Anthony starts with their initial implementation – just injecting a div into a page. He then talks about some of the issues they ran into over time with a large JavaScript download and a complex codebase to maintain.

(02:39) Jon asks if it’s still jQuery based. Anthony says it is, though they’ve thought of removing that dependency. It’s mostly used for click event handling. They include a scoped, local copy of jQuery to prevent any conflicts with the host page’s use of jQuery.

(03:50) K Scott asks about some of the impacts of injecting their Glimpse content into the DOM. Anthony discusses issues with CSS, since the host page’s resets and selectors can affect Glimpse’s display. Glimpse includes a custom CSS reset and they scope their CSS rules.

(05:50) K Scott asks if the shadow DOM and HTML5 specifications for widgets would help. Anthony says yes and talks about how people are doing things now using iframes and how things would be improved. Anthony compares it to the XAML concepts of the visual and logical trees.

(07:45) Jon asks how things have changed from just injecting a div. Anthony explains how they use another div to reserve space at the bottom of the page and introduced a message bus to allow publishing and subscribing rather than handling events and callbacks.

(10:33) K Scott asks about patterns used to allow for extensibility and plugins. Anthony talks about how they’ve refactored, first to separate files and then to modules.

(12:40) Jon asks if they’ve looked at using some common single page application frameworks or other JavaScript frameworks. Anthony says they looked at require.js, but it didn’t really buy them anything. They also looked at backbone, but again it wasn’t worth the tradeoff of download size and complexity.

(15:39) K Scott asks what unit testing frameworks they use. Anthony says they’ve just got a test harness at this point, but a lot of the testing is manual. They’re looking at using TestSwarm and BrowserStack to do browser testing.

(18:06) Jon asks about mobile browsers. Anthony explains the current mobile support that’s been in Glimpse for a while. He discusses some other features they’ve looked at in the future.

Hobbies

(20:30) K Scott asks Anthony about his hobbies. Anthony talks about his new interest in growing his own food and a renewed interest in woodworking.

(21:55) K Scott asks Anthony about what he’s got coming up. Anthony talks about his summer conference schedule and that he’s moving to New York to keep a closer eye on Nik.

(00:30) Jon McCoy overviews his NDC talks, explaining how he got into security and some of the amazing things he’s found out about .NET about along the way, like using Java JARs inside .NET applications.

(02:55) Jon McCoy says that understanding IL and how the JIT works allows him to directly use assembly code and C++ from within .NET applications.

(03:45) K Scott asks Jon McCoy about some of the tools he showed during his talks. Gray Dragon is a memory injection program which allows injecting code and remapping while an application’s running. Gray Wolf allows editing an application’s IL code. In his talk, he demonstrates extracting his admin password from biometrics password with six clicks.

Developer security practices: obfuscation, unit tests, monitoring

(05:20) Jon G asks if obfuscation helps hide his code. Jon McCoy says it’s always reversible and there’s about a three month lag between obfuscator releases and workarounds. Just about anything that can be automated can be reversed.

(06:44) Jon McCoy recommends security unit tests for practices like SQL cleaning and throwing security exceptions. Monitoring for security exceptions will let you know someone’s attacking you – if someone has two years to attack you without you knowing, they’re going to get in.

(07:42) Attackers can target update mechanisms in desktop programs to target users throughout your enterprise. Also, the nature of .NET code makes it very difficult for antivirus software to detect when it’s doing something bad.

(08:30) Jon McCoy says there’s a security issue with Visual Studio in that it executes constructor code for controls as they’re loaded in the designer, so a malicious user can run code which runs under your user permissions.

Securing information on your computer: crypto and passwords

(09:40) Jon McCoy talks about some of the security practices he recommends: full disk crypto with TrueCrypt, using a hardware solution like YubiKey for long passwords, and using encrypted VMs as secure containers.

(16:22) Jon McCoy explains how his background as a developer helps him understand issues in a way that IT focused security experts don’t.

Defending against cracks

(17:20) Jon asks about defense against cracks. Jon McCoy says the motivation behind cracks and malware shifts – sometimes the bad guys are just after a proxy network, password cracking machines, or even free cloud storage. Malware distributors can really strike it rich by owning a computer that happens to be inside a big company; they can sell that access for a lot of money. Part of fighting an attack is understanding what’s motivating the attacker.

(19:07) Jon G talks about targeted attacks against employees using fake, infected PDF business documents – send to enough people and a few will open it. Jon McCoy says that’s why he advocates using a hardened VM for browsing the internet as well as using different e-mail addresses so you know unsolicited e-mails to an admin e-mail can’t be valid.

Resources: tools and papers

(20:13) Jon G asks for a little more information about the security tools Jon McCoy distributes on his site.

(20:47) Jon G asks about how Jon McCoy’s security disclosure policies. Jon McCoy says he generally keeps things secret long enough to give his clients a security advantage. He talks about a technique he used which phones home when obfuscated code is decompiled.

(21:51) Jon G asks Jon McCoy how he keeps up with things. Jon McCoy says things are pretty lonely, he’s off on his own most of the time. Jon G says it’s easy to forget that a lot of .NET runs on top of Win32 and COM.

(23:10) Jon G asks Jon McCoy for some reference for developers who are interested in learning more. Jon McCoy lists a few (referenced in the show links).

(00:17) K Scott asks Dominick about the subject of his talk at NDC. Dominick runs through the upcoming changes in Web API authentication, including an overview of CORS and token based authentication.

(03:49) Dominick explains the ability to support a separate token server in Web API and announces Authentication Server, his new open source project which provides

(05:13) Rob describes how he’s seen people breaking their sites and services across multiple domains and subdomains. He explains a problem he’s currently running into with older releases of Internet Explorer. Dominick explains more about how CORS works and talks about options for working with older browsers – either sticking with JSONP or putting services in the same domain.

OAuth

(08:15) Jon asks how security token service relates to more well-known terms like OpenID and OAuth. Dominick explains some of the history and challenges OAuth has encountered. As a result, the OAuth spec is really just a collection of patterns rather than a strict specification.

(11:19) Jon asks Dominick how he implemented the OAuth spec in his Authentication Server implementation. Dominick gives examples of how the spec is very open – for instance, there are 69 occurrences of the word MAY in the spec. He says he’s been advocating for a minimum profile.

(12:56) K Scott asks what sort of authentication should be used with Dominick’s security token server, since OAuth isn’t an authentication mechanism. Dominick explains the interaction with security tokens.

Token based security and JWT

(14:49) Jon comments on the difference in security implications between a compromised token vs. a compromised account password. Dominick says that a token binds five things together: the client, a human, an application, permissions and time. He mentions that with token based authentication you can outsource the security mechanism – passwords, certificates, etc. – and talks about the newly released JSON Web Token (JWT) handler.

(15:50) K Scott asks for some specifics about the JWT handler.

(16:27) K Scott asks for more information about Dominick’s talk.

Roles vs. Claims

(17:14) Jon asks about the difference between roles and claims. Dominick explains that a role is just a very simple claim: are you in a role or not? Claims move from a simple boolean to more of a name / value pair

(18:31) Jon asks what the average developer needs to know about Windows Identity Foundation.

Photography and wrap-up

(19:02) K Scott asks Dominick about the photos section on his site and comments on how they’re just about all black and white. Dominick

(00:32) Paul gave a talk on Windows infrastructure management with Puppet and PowerShell. Puppet is a configuration management tool. It allows you to define a configuration management level, and Puppet will bring it to that level and keep it there.

(01:05) K Scott asks Paul how this relates to his continuous deployment emphasis. Paul explains how this has been part of the maturity model they’ve been using at his employer, Open Table.

(01:50) Paul explains how they started using Puppet in their pre-production environment of 19 VMs. Their production environment is four times that large.

(04:07) K Scott asks if it’s worthwhile to look at Puppet in a small environment with 2-3 servers. Paul says there’s an investment, so you really start seeing the rewards as things start getting more complex.

(05:01) K Scott asks how you define a state.

(06:30) K Scott asks about the client running on the target servers.

(06:51) Jon asks how the verification works.

(07:32) Jon asks if it’s possible to use Puppet in cloud environments.

(07:56) K Scot asks if you can use Puppet to configure developer workstations. Paul talks about GitHub’s Boxen system. Jon talks about his experiences looking at Boxen before settling on sprout-wrap.

(09:21) Paul mentions that Open Table just open sourced their Puppet IIS implementations.

How Puppet relates to PowerShell and Chocolatey

(09:36) Jon asks what the PowerShell tie-in is, since Puppet is all Ruby based. Paul talks about the PowerShell scripts they exec from Puppet and how they use them to do things like turn Windows features on and off.

(11:01) K Scott asks if you could use Chocolatey with Puppet, and Paul says they’re using Chocolatey via PowerShell. Jon says that sounds useful since Chocolatey can now integrate with the Web Platform Installer, and Paul says they’re doing just that to install .NET 4 on their servers.

More questions about Puppet

(11:47) Paul talks about how traditional infrastructure management runs on documentation, and how they can replace all of that using Puppet.

(12:58) K Scott asks if this is also useful for deployments. Paul says a deployment is just a different configuration state, so Puppet can handle that just fine.

(14:09) Jon asks if Puppet can handle database state.

(14:50) Jon asks how you handle licenses with Puppets.

(15:20) Jon asks how Puppet relates to Windows configuration management options. Paul says that at Open Table they’ve moved to using multiple platforms, so they need infrastructure management options that can work across all of those environments.

(16:30) K Scott asks what is was about Puppet that caused him to lose some hair. Paul says it’s scary to be able to write a module that makes changes to 90 servers.

And some more Puppet stuff

(17:30) Jon asks if it’s possible to do automated testing with Puppet configuration and modules.

(18:27) K Scott asks if there’s any kind of rollback plan for Puppet.

(18:40) K Scott tries to ask Paul about what he does in his free time, but Paul says in his free time he writes code and changes the subject back to Puppet.

(19:21) Paul says he’s going to be speaking at Puppet Conf, so he’ll be speaking at a Linux administrator’s conference.

(20:00) K Scott asks if there’s political fallout from systems administrators who are concerned he’s trying to replace their jobs. Paul says he’s trying to free them up from repetitive tasks in their jobs so they can get more done.

(00:40) Rob asks Laurent how often customers ask for HTML/JS based Windows Store application rather than XAML based. Laurent lists a few of the cases where people ask for HTML based work, but says the cases are very rare. Generally they’re much more productive with XAML and C#.

(02:49) Rob asks Laurent if he thinks this will change over time. Laurent says IDE support may affect things a little, but generally he thinks web developers don’t do desktop development because they don’t want to do desktop development – they went into web development because they wanted to develop for the web.

(04:09) Jon asks if Laurent sees things changing over time in XAML based development. Laurent says he sees some big changes in performance – you can get good performance out of the native controls with full designer support now. In terms of Windows 8, he’s hoping for more controls to cover some Windows 8 UI elements so they don’t require custom controls. In terms of design, he sees some cases where people are breaking some of the general Windows Store design guidelines in cases where they aren’t as user friendly. Jon says he’s seen one example of this – adding a print app bar button to applications where printing is a regular activity, even though technically the print is supposed to be accessed via the share charm. Laurent says he also sees this in search-heavy apps.

Cross-platform code sharing and Portable Class Libraries

(07:46) Jon asks about Laurent’s talk on sharing code between platforms – does it work? Laurent says he’s focusing on portable class libraries – writing logic that works on Windows Phone and Windows Store, then building a UI on top of those libraries. That’s working well for him and he’s using it in production. It’s still XAML and C#, so you can also share code, too.

(09:26) K Scott asks about MVVM Light – is that working with Portable Class Libraries? Laurent says someone at Microsoft use a PCL port of MVVM Light as a test case, and it’s working very well. They still maintain platform specific versions of MVVM Light for people who only work on a specific platform.

(10:38) K Scott asks for a quick summary of what MVVM Light does.

(12:45) K Scott asks about some of the challenges in converting MVVM Light to a PCL. Laurent talks about some UI and platform differences.

Metro and modern design

(14:21) Rob asks how you make different design decisions around “Metro” design or other alternatives. Laurent discusses the design process.

(16:29) Rob asks about some of the design considerations, and how you’d decide on platforms. Laurent says a default XAML application uses themes which will fit in with the host platform and operating systems, but might look at bit boring, which is why you work with a designer.

(18:25) Jon says the Windows Store design principles don’t prescribe a boring look, referencing the “alive with color” thing and Kelly Sommers’ post about how Metro Doesn’t Have To Be Boring. Laurent says he doesn’t like the “flat design” term, preferring modern – and modern came from Bauhaus in the 1920’s, Swiss design in the 1950’s, etc. He says it’s important to go the design principles, then use your skill as a designer to apply that. There are enough apps on the Windows Phone store that getting noticed takes a good design.

Hobbies

(22:09) Rob asks Laurent what he does for hobbies. Laurent lists some things that keep him busy, then talks about his fish pond. Rob tells probably the worst newt joke of all time.

(00:35) Nik says he’s writing the guide he wishes he’d had a few years ago.

(01:06) K Scott asks him for one big thing he’s learned. Nik talks about the importance of public communication.

(01:36) Jon mentions the difference between open source code and open source projects, and Nik mentions some of the different documented governance models for open source projects, citing OSS Watch and YUI. This helps

(03:15) K Scott asks if Glimpse presents unique challenges because there’s a plugin ecosystem. Nik says they used to just see code contributors and plugin authors, but now he sees contributors with a much broader perspective, citing Peter Hahndorf’s documentation contributions.

(4:54) Jon asks Nik how he defines success for an open source project. Nik says it depends on the project founder’s goals. He says project popularity isn’t important to him personally, it’s helping users.

(5:50) K Scott asks Nik about his slide that says Avoid Bikeshedding. Nik explains Parkinson’s law of triviality and how it affects open source.

(08:58) Jon asks Nik if he thinks roadmaps are important. Nik says this an important part of the public communication he mentioned earlier. Jon says he’s found that involving people in decisions that will affect them early really important for any kind of project, open source or not. Nik explains how this is handled in the meritocratic model.

Cooking’s like programming

(11:12) K Scott asks Nik about the latest big dish he’s prepared.

(12:45) Nik talks about the parallels between programming and cooking – both have rules that must be followed, but a lot of room for creativity.

(13:35) Jon talks about a professional chef textbook he got from the library (Nik tells him it’s from the Culinary Institute of America). Jon says he saw some parallels between things like food sanitation and source control – you need to start with fundamentals, but then you can apply them in creative ways. Nik describes some further parallels: cooking math and resourcing, the kitchen brigade system and project management.

(15:12) Nik talks about the ALT.NET of cooking and the focus on basic, classic skills.

What’s next

(16:08) K Scott asks Nik about what’s next for him. Nik talks about their latest release and the Heads Up Display. He talks about how simplified web publishing has led to a big increase in documentation contributions. K Scott raves about the UI design.

(18:45) Jon asks what’s new with semantic versioning since they last talked.

(02:06) K Scott asks about Azure support for continuous delivery. Magnus says you can do it with cloud services, but there’s a delay; with Windows Azure Web Sites the deployment is extremely fast and easy.

(03:00) K Scott asks about the steps of setting up continuous delivery for a web application for deployment including non-git source control. Magnus talks about the setup, new offerings for dev / test scenarios, and asks why anyone wouldn’t integrate this into their development process.

(05:47) Jon asks what some of Magnus’ demos include. Magnus talks about using your own TFS service, other git repos, etc. He talks about a his secret demo – the non-Microsoft demo that uses TeamCity, NUnit, and GitHub.

(07:45) K Scott mentions all the new Azure SDK language support.

Migrating to the cloud and surprise business transformations

(07:54) Jon asks how this relates to Magnus’ work. Magnus works at Active Solution, which employs both of Sweden’s Azure MVP’s. Cloud development is really a hot field in Sweden right now.

(08:45) Jon asks about some common challenges. Magnus says the biggest thing is learning the platforms – there are a lot of architectural and strategic things they haven’t even considered.

(10:23) K Scott asks if businesses think they can’t move to the cloud because they have custom processes or protocols.

(10:59) Jon asks if they often do hybrid solutions. Magnus says that multitenant solutions are common, and the process allows companies to transform themselves from product to service companies.

Global Windows Azure Bootcamp

12:21 Jon asks about the Global Windows Azure Bootcamp that Magnus helped organize. Magnus tells the story of how they started talking to a few MVPs and things spiraled out of control. In the end they had all timezones, 92 locations, over 5000 attendees. They had some big turnout in some unexpected locations: Nepal, Brazil, Africa.

14:08 Jon asks what happened at the event. Magnus talks about the content in the Windows Azure Training Kit and a shared demo with nearly 5000 coordinated worker roles in a giant render farm passed the rendering power of some Pixar films.

(16:13) Jon asks about the relationship with Microsoft for the event. It was community run, but Microsoft helped out with things like attendee giveaways.

(16:52) Jon asks if they’ll do this again. Magnus says yes and talks about some of the scaling challenges. He calls out the sponsors, who gave away $18 million in license giveaways. It scales because each location is independent, so each location just needs to run one event.

(18:36) Jon says this reminds him of Corey Haines’ Global Day of Code Retreat.

(18:52) Jon asks what Magnus is up to next. Magnus says he’s moving and calls out the upcoming CloudBurst conference – in Sweden and live streamed.

(18:10) Jon asks Richard how it came to pass that he hosted an episode of My Drunk Kitchen. Richard tells the history of My Drunk Kitchen and how french toast turned into some kind of sourdough frittata.

Home brewing and stills

(22:37) Jon asks Richard if he’s done any home brewing. Richard owns a still but has not used it in anger yet. Richard lists the dangers of moonshining and one-upmanship contests with Carl Franklin.

The geekiest house ever

(25:38) Jon asks how Richard handles his intensely instrumented house and Rob asks for more details about Richard’s house. Richard says he’s only been raided as a suspected drug grow-op house once and talks about all the server infrastructure he’s got at his house.

(29:50) Rob asks about Richard’s generator setup.

Modern media management

(31:23) Jon asks Richard how he handles the hardest problem in modern life: managing media. Richard talks about his media shares, networking, media center, and how he gets all the good stuff.

Favorite books

(34:28) Jon asks Richard for five book recommendations. Richard recommends Existence, Daemon and Freedom. Jon and Richard discuss the believability of Daemon and Richard talks about how some authors are good story tellers, others are good universe builders, and authors who do both are incredibly rare. Richard also recommends Lean Startup and The Phoenix Project. Rob recommends Ender’s Game and talks about Arthur C. Clarke; Jon says he liked The Fiction Author’s Guide To Time Travel and that got him into Heinlein. Rob and Richard liked Dan Simmons – especially Hyperion. Rob and Richard discuss the difficulty of ending a story well and Richard says Harry Potter put The Matrix to shame in that regard.

Travel tips

(41:45) Jon asks Richard for some travel tips. Richard starts with recommending local SIM cards and knowing your power plugs.

We had some more discussion that’s pretty hard to hear because of background noise, but we’re throwing it in just in case you want to listen through it.

(50:44) Rob talks about Benford’s Law. Rob talks about the application in detecting voter fraud, Rob talks about the application in counterespionage in Cryptonomicon.

(52:14) Rob wants to talk about submarines. Jon talks about some of the complexities of torpedo seek patterns. Rob talks about Russian supercavitation and mine hunting. Jon talks about old Russian wing-in-ground effect vehicles and ski-ramp carriers.

(01:22) Tom describes the challenge and thanks Peter Cooper for moderating. Rob describes the scenario – start with installation and creating a new project, then move to routing and navigation between views.

Demo vs. Reality

(02:28) Rob says it’s fun to do a demo with Angular, but once you need to do more structured things you have to start over and reimplement with modules, etc.

(02:43) Tom says that seeing the TekPub screencast about AngularJS informed a lot of their design for Ember.js. The result is a framework that gives you the same simplicity in getting started, but also grows with your application pretty easily.

You Just Don’t Do That

(03:22) K Scott asks if they pretty much match up if you’re looking at a feature checklist, and if it’s more about how you implement things. Rob says AngularJS is much more component based and talks about some things that came up during the cage match which were tricky in Angular, because "you just don’t do that".

(04:18) Jon asks if there’s an overall effect to how you build your application because it’s just not how the framework works. Tom says it’s unacceptable when your designer comes to you with a user interaction design for you to tell them it’s just too hard to do in your framework, so you won’t do it. As framework developers, they spend a lot of effort on composability. Rob says that he sees Ember.js as more prescriptive, while AngularJS provides more building blocks. Rob says it seems like Rails to him, in that it just goes a lot better for you if you give in and go with the framework’s opinions.

(06:13) Jon asks about how customization works in Ember.js, compared with Angular’s use of directives and filters. Tom says that’s done via helpers, referencing an example from the cage match.

Client-side MVC implementation and The Importance of URLs

(06:34) Rob asks Tom if it makes sense to say that "if you can think of it in a server-side framework like ASP.NET MVC or Rails, you can think of it in Ember.js". Tom says it’s not the same, because server-side MVC requests are short-lived compared to client-side applications. The real challenge is how you manage that state over time.

(07:17) Tom says that they think URLs are really important. Their challenge has been how to marry the concepts of desktop MVC with the fact that they have a URL, and he thinks they’ve nailed it. Jon asks how that compares to Angular; Rob says that it’s not a primary concern in AngularJS or Backbone.

(08:37) Tom says he considers your web application broken if he hits refresh and doesn’t see the same thing he saw before. Everyone screws this up, not because they’re idiots but because it’s hard, and if you don’t have this built into the framework you’re using you’ll mess it up. (09:06) K Scott asks what kinds of applications are the sweet spot for Ember.js. Tom says his first real professional programming gig was working on MobileMe / iCloud apps. They were big apps written in SproutCore. He says it’s important to be able to add features without breaking old features. Functional reactive programming and strong conventions help support this.

State and Scope

(10:38) Jon asks about the difference in maintaining state between Ember.js and AngularJS. Tom talks about how the Ember.js controller is similar to Cocoa and explains how the the controller presents the model to the template. Rob describes the $scope in AngularJS and compares the way AngularJS handles things more explicitly, whereas Ember.js is more conventional.

(12:19) Tom says that he thinks the way AngularJS leverages JavaScript’s prototypal inheritance is really elegant, but it breaks down when you have very deeply nested UI’s pushing you into directives and more complex decisions. Rob says that you can share scope between AngularJS controllers, but the isolated scope situation is one of the things you struggle with in Angular.

Testing, testing

(13:54) Jon asks Tom about his comment on testability. Tom says that Angular’s Karma test support is really nice, and they’re working on catching up in Ember. Rob says that in AngularJS you’re just working with basic objects, which is really nice when you’re testing.

(16:08) Tom says Ember.js requires you to do things correctly from the beginning; they won’t give you any foot guns to make things easier. Helpers help.

(16:42) K Scott asks how change detection works. Tom explains the differences – AngularJS uses dirty checking against the DOM, while Ember.js uses accessors (like Backbone). Tom says that the performance is better in Ember.js. Angular’s situation will improve when they get object.observe, which ironically will happen at the same time Ember’s situation improves due to support for object proxies.

(18:37) K Scott says he’d like to be able to conventionally wire up events. Tom talks about event delegation in Ember.js.

The SEO Elephant in the Room

(19:53) Tom says the biggest issue with JavaScript client-side applications today is SEO and describes why he’s not happy with the SEO solutions the other frameworks provide. They’re working on a solution that uses leverages the fact that they use Handlebars for templating to run a server-side process to generate SEO friendly content without any PhantomJS dependency.

Using Ember.js When You’re Not Tom

(22:28) Jon says that one issue with highly conventional frameworks is that it can be hard when you’re getting started and don’t know the conventions. Tom agrees and says that you’ll be frustrated if you experience learning difficulty before you feel the power and says the solution is documentation and good tooling. He mentions a coming Chrome extension that will show you what controller and model are backing content on the screen when you hover over it. K Scott says he’s pretty impressed with the Ember.js documentation.

What’s Next? How about some Prollyfills?

(24:45) K Scott asks about what’s coming out next. Tom talks about Polymer and Web Components. Jon asks if this was related to something he saw on Twitter the other day and Tom says it’s #extendthewebforward. The idea is that browsers should express primitives so browser vendors can innovate at the JavaScript level – rather than building speculative features into the browser, shipping a JS library that works cross-browser and can function as a polyfill (or "prolly"fill) if the feature doesn’t ship.

(30:52) Jon asks Tom about the curveball that he threw at Rob during the cage match. Rob and Tom agree that coding a directive on the fly is not easy.

(31:42) Jon asks Tom if there’s something that Rob could have asked Tom that would be hard in Ember. Tom says that they just added a competitor to filters using bound helpers, but if Rob had thrown list sorting at him he’d have had a hard time.

(32:54) Jon asks about a viewer question on the emphasis on getting started vs. maintainability. Rob says that they’d first focused on composability, but nobody wanted to use it until it was easy to get started. Framework libraries don’t get the luxury of forcing a difficult learning experience on developers – if he can’t show value in 5 – 10 minutes, you’ll leave.

]]>http://herdingcode.com/herding-code-169-tom-dale-and-rob-conery-on-the-emberjs-angularjs-cage-match-at-ndc/feed/4noAt NDC, Jon and K Scott sat down with Tom Dale (co-founder of Ember.js) and Rob Conery to recap their cage match battle, compare Ember.js and AngularJS, and hear from Tom about where Ember.js is headed. Download / Listen: Herding Code 169: Tom Dale and RoHerding CodeAt NDC, Jon and K Scott sat down with Tom Dale (co-founder of Ember.js) and Rob Conery to recap their cage match battle, compare Ember.js and AngularJS, and hear from Tom about where Ember.js is headed. Download / Listen: Herding Code 169: Tom Dale and Rob Conery on the Ember.js / AngularJS Cage Match at [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-169-tom-dale-and-rob-conery-on-the-emberjs-angularjs-cage-match-at-ndc/http://herdingcode.com/wp-content/uploads/HerdingCode-0169-NDC-Ember-Angular-Cage-Match.mp3Herding Code 168: John Sheehan on Runscopehttp://feedproxy.google.com/~r/HerdingCode/~3/yRsXzrZlD4s/
http://herdingcode.com/herding-code-168-john-sheehan-on-runscope/#respondFri, 07 Jun 2013 20:06:26 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=550]]>http://herdingcode.com/herding-code-168-john-sheehan-on-runscope/feed/0noThis week on Herding Code, the guys talk to John Sheehan about the recent launch of his new API developer tools company, Runscope. Download / Listen: Herding Code 168: John Sheehan on Runscope Show Notes: Intro (00:30) &#34;What is Runscope and why shouldHerding CodeThis week on Herding Code, the guys talk to John Sheehan about the recent launch of his new API developer tools company, Runscope. Download / Listen: Herding Code 168: John Sheehan on Runscope Show Notes: Intro (00:30) &#34;What is Runscope and why should I care?&#34; (00:55) Runscope is the ultimate API integrator developer&#8217;s toolbox. It [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-168-john-sheehan-on-runscope/http://herdingcode.com/wp-content/uploads/HerdingCode-0168-Runscope.mp3Herding Code 167: Glenn Block on scriptcshttp://feedproxy.google.com/~r/HerdingCode/~3/xwNziGjPq1g/
http://herdingcode.com/herding-code-167-glenn-block-on-scriptcs/#respondFri, 24 May 2013 23:09:39 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=547]]>http://herdingcode.com/herding-code-167-glenn-block-on-scriptcs/feed/0noThis week on Herding Code, the guys talk to Glenn Block about scriptcs. Download / Listen: Herding Code 167: Glenn Block on scriptcs Show Notes: Intro (00:10) K Scott asks Glenn if he&#8217;s still working with Node at Microsoft. Glenn says he&#8217;s movHerding CodeThis week on Herding Code, the guys talk to Glenn Block about scriptcs. Download / Listen: Herding Code 167: Glenn Block on scriptcs Show Notes: Intro (00:10) K Scott asks Glenn if he&#8217;s still working with Node at Microsoft. Glenn says he&#8217;s moved from command-line tools for node and is focused on Azure Mobile Services, [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-167-glenn-block-on-scriptcs/http://herdingcode.com/wp-content/uploads/HerdingCode-0167-ScriptCS.mp3Herding Code 166: Tomasz Janczuk on Edge.jshttp://feedproxy.google.com/~r/HerdingCode/~3/8kbQZSnnTv8/
http://herdingcode.com/herding-code-166-tomasz-janczuk-on-edge-js/#respondThu, 16 May 2013 20:13:49 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=544]]>http://herdingcode.com/herding-code-166-tomasz-janczuk-on-edge-js/feed/0noThis week on Herding Code, the guys talk to Tomasz Janczuk about running .NET code in Node.js using Edge.js. Download / Listen: Herding Code 166: Tomasz Janczuk on Edge.js Show Notes: Intro and background on Edge.js (00:40) Tomasz has been focusing on NodHerding CodeThis week on Herding Code, the guys talk to Tomasz Janczuk about running .NET code in Node.js using Edge.js. Download / Listen: Herding Code 166: Tomasz Janczuk on Edge.js Show Notes: Intro and background on Edge.js (00:40) Tomasz has been focusing on Node.js at Microsoft for the past 3 years. He&#8217;s been working on making [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-166-tomasz-janczuk-on-edge-js/http://herdingcode.com/wp-content/uploads/HerdingCode-0166-EdgeJS.mp3Herding Code 165: Mark Seemann on AutoFixture and Unit Testinghttp://feedproxy.google.com/~r/HerdingCode/~3/--46jNYPceE/
http://herdingcode.com/herding-code-165-mark-seemann-on-autofixture-and-unit-testing/#commentsTue, 30 Apr 2013 18:52:30 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=539]]>http://herdingcode.com/herding-code-165-mark-seemann-on-autofixture-and-unit-testing/feed/1noWhile at the Danish Developer Conference in Copenhagen, Jon sat down with Mark Seemann to talk about AutoFixture and Unit Testing. Download / Listen: Herding Code 165: Mark Seemann on AutoFixture and Unit Testing Show Notes: AutoFixture (00:44) AutoFixturHerding CodeWhile at the Danish Developer Conference in Copenhagen, Jon sat down with Mark Seemann to talk about AutoFixture and Unit Testing. Download / Listen: Herding Code 165: Mark Seemann on AutoFixture and Unit Testing Show Notes: AutoFixture (00:44) AutoFixture is an open source library that simplifies the &#34;Arrange&#34; part of the standard Arrange / Act [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-165-mark-seemann-on-autofixture-and-unit-testing/http://herdingcode.com/wp-content/uploads/HerdingCode-0165-Mark-Seemann-on-AutoFixture-and-Unit-Testing.mp3Herding Code 164: OWIN and Katana with Louis DeJardinhttp://feedproxy.google.com/~r/HerdingCode/~3/GjNwkszdFgc/
http://herdingcode.com/herding-code-164-owin-and-katana-with-louis-dejardin/#commentsMon, 22 Apr 2013 19:35:36 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=536]]>http://herdingcode.com/herding-code-164-owin-and-katana-with-louis-dejardin/feed/1noThis week on Herding Code, the guys talk to Louis DeJardin about OWIN &#8211; the Open Web Interface for .NET &#8211; and Katana, an open source OWIN implementation for ASP.NET and IIS. Download / Listen: Herding Code 164: OWIN and Katana with Louis DeJarHerding CodeThis week on Herding Code, the guys talk to Louis DeJardin about OWIN &#8211; the Open Web Interface for .NET &#8211; and Katana, an open source OWIN implementation for ASP.NET and IIS. Download / Listen: Herding Code 164: OWIN and Katana with Louis DeJardin Show Notes: Intro (00:44) Scott and Louis explain what OWIN is. [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-164-owin-and-katana-with-louis-dejardin/http://herdingcode.com/wp-content/uploads/HerdingCode-0164-OWIN.mp3Herding Code 163: Sticker Tales and Building Windows Store apps with Damien Guard and Robert Sweeneyhttp://feedproxy.google.com/~r/HerdingCode/~3/Pl5fGyqqxW0/
http://herdingcode.com/herding-code-163-sticker-tales-and-building-windows-store-apps/#commentsWed, 10 Apr 2013 19:53:59 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=531]]>http://herdingcode.com/herding-code-163-sticker-tales-and-building-windows-store-apps/feed/2noThis week on Herding Code, the guys talk to Damien Guard and Robert Sweeney about Sticker Tales (a Windows Store application for kids), some challenges in building touch applications for kids, their CSharpAnalytics open source library, and a companion appHerding CodeThis week on Herding Code, the guys talk to Damien Guard and Robert Sweeney about Sticker Tales (a Windows Store application for kids), some challenges in building touch applications for kids, their CSharpAnalytics open source library, and a companion app they built for Western Digital. Download / Listen: Herding Code 163: Sticker Tales and Building [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-163-sticker-tales-and-building-windows-store-apps/http://herdingcode.com/wp-content/uploads/HerdingCode-0163-Sticker-Tales-and-Building-Windows-Store-apps.mp3Herding Code 162: Whacha doin, Goodbye Google Reader, scriptcs and Lightning Round!http://feedproxy.google.com/~r/HerdingCode/~3/TFdalTyyQJs/
http://herdingcode.com/herding-code-162-whacha-doin-goodbye-google-reader-scriptcs-and-lightning-round/#commentsMon, 25 Mar 2013 18:01:55 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=527]]>http://herdingcode.com/herding-code-162-whacha-doin-goodbye-google-reader-scriptcs-and-lightning-round/feed/4noThis week on Herding Code, the guys talk about what they&#8217;ve been up to lately (including Kevin&#8217;s new Greater Than Parts site), lament the passing of Google Reader, talk about scriptcs, and even fit in a lightning round! Download / Listen: HerdHerding CodeThis week on Herding Code, the guys talk about what they&#8217;ve been up to lately (including Kevin&#8217;s new Greater Than Parts site), lament the passing of Google Reader, talk about scriptcs, and even fit in a lightning round! Download / Listen: Herding Code 162: Whacha doin, Goodbye Google Reader, scriptcs and Lightning Round! Show Notes: [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-162-whacha-doin-goodbye-google-reader-scriptcs-and-lightning-round/http://herdingcode.com/wp-content/uploads/HerdingCode-0162-Discussion.mp3Herding Code 161: Single Page Applications with John Papa and Ward Bellhttp://feedproxy.google.com/~r/HerdingCode/~3/2wmLEXfnKCs/
http://herdingcode.com/herding-code-161-single-page-applications-with-john-papa-and-ward-bell/#commentsThu, 14 Mar 2013 22:56:10 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=523]]>http://herdingcode.com/herding-code-161-single-page-applications-with-john-papa-and-ward-bell/feed/2noWhile at MVP Summit, Jon and the Scotts talk to John Papa and Ward Bell about Single Page Applications, the new ASP.NET and Web Tools 2012.2 SPA templates, and John and Ward&#8217;s new Hot Towel SPA template (you need a hot towel at a spa, get it?). DownHerding CodeWhile at MVP Summit, Jon and the Scotts talk to John Papa and Ward Bell about Single Page Applications, the new ASP.NET and Web Tools 2012.2 SPA templates, and John and Ward&#8217;s new Hot Towel SPA template (you need a hot towel at a spa, get it?). Download / Listen: Herding Code 161: Single Page [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-161-single-page-applications-with-john-papa-and-ward-bell/http://herdingcode.com/wp-content/uploads/HerdingCode-0161-Single-Page-Applications.mp3Herding Code 160: Glimpse 1.0 release and Semantic Release Notes with Nik Molnar and Anthony vander Hoornhttp://feedproxy.google.com/~r/HerdingCode/~3/cY0jzK7blRY/
http://herdingcode.com/herding-code-160-glimpse-1-0-release-and-semantic-release-notes-with-nik-molnar-and-anthony-vander-hoorn/#respondFri, 08 Mar 2013 21:34:39 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=519]]>http://herdingcode.com/herding-code-160-glimpse-1-0-release-and-semantic-release-notes-with-nik-molnar-and-anthony-vander-hoorn/feed/0noWhile at MVP Summit, Jon and the Scotts talk to Nik and Anthony about the Glimpse 1.0 release, Semantic Release Notes and NuGet versioning. Download / Listen: Herding Code 160: Glimpse 1.0 release and Semantic Release Notes with Nik Molnar and Anthony vanHerding CodeWhile at MVP Summit, Jon and the Scotts talk to Nik and Anthony about the Glimpse 1.0 release, Semantic Release Notes and NuGet versioning. Download / Listen: Herding Code 160: Glimpse 1.0 release and Semantic Release Notes with Nik Molnar and Anthony vander Hoorn Show Notes: Intro (00:38) Nik and Anthony remind us of what [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-160-glimpse-1-0-release-and-semantic-release-notes-with-nik-molnar-and-anthony-vander-hoorn/http://herdingcode.com/wp-content/uploads/HerdingCode-0160-Glimpse.mp3Herding Code 159: Catching up with Oren Eini on RavenDBhttp://feedproxy.google.com/~r/HerdingCode/~3/8YS3Y1LAAw4/
http://herdingcode.com/herding-code-159-catching-up-with-oren-eini-on-ravendb/#commentsTue, 05 Mar 2013 08:45:56 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=514]]>http://herdingcode.com/herding-code-159-catching-up-with-oren-eini-on-ravendb/feed/1noThis week on Herding Code, the guys talk with Oren Eini (a.k.a. Ayende Rahien) about what&#8217;s new with RavenDB. Download / Listen: Herding Code 159: Catching up with Oren Eini on RavenDB Show Notes: (00:47) Introduction and review of document databaseHerding CodeThis week on Herding Code, the guys talk with Oren Eini (a.k.a. Ayende Rahien) about what&#8217;s new with RavenDB. Download / Listen: Herding Code 159: Catching up with Oren Eini on RavenDB Show Notes: (00:47) Introduction and review of document databases and RavenDB Oren gives us a quick overview of document databases and RavenDB Relational [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-159-catching-up-with-oren-eini-on-ravendb/http://herdingcode.com/wp-content/uploads/HerdingCode-0159-RavenDB.mp3Herding Code 158: Nat Friedman and Joseph Hill announce Xamarin 2.0http://feedproxy.google.com/~r/HerdingCode/~3/p7UWNpXdVr4/
http://herdingcode.com/herding-code-158-nat-friedman-and-joseph-hill-announce-xamarin-2-0/#commentsTue, 26 Feb 2013 22:18:32 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=512]]>http://herdingcode.com/herding-code-158-nat-friedman-and-joseph-hill-announce-xamarin-2-0/feed/3noNat Friedman and Joseph Hill from Xamarin join us for several big announcements: Xamarin Studio, Xamarin Component Store, iOS development in Visual Studio, and a new free Starter edition. Download / Listen: Herding Code 158: Nat Friedman and Joseph Hill aHerding CodeNat Friedman and Joseph Hill from Xamarin join us for several big announcements: Xamarin Studio, Xamarin Component Store, iOS development in Visual Studio, and a new free Starter edition. Download / Listen: Herding Code 158: Nat Friedman and Joseph Hill announce Xamarin 2.0 Show Notes: (00:45) Nat begins by catching us up on Xamarin&#8217;s first [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-158-nat-friedman-and-joseph-hill-announce-xamarin-2-0/http://herdingcode.com/wp-content/uploads/HerdingCode-0158-Xamarin-2.mp3Herding Code 157: Amir Rajan on dynamic web development with Oak and Geminihttp://feedproxy.google.com/~r/HerdingCode/~3/Z7YhJwrsWuw/
http://herdingcode.com/herding-code-157-amir-rajan-on-dynamic-web-development-with-oak-and-gemini/#commentsThu, 14 Feb 2013 17:39:39 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=508]]>http://herdingcode.com/herding-code-157-amir-rajan-on-dynamic-web-development-with-oak-and-gemini/feed/1noOn this episode of Herding Code, the guys talk to Amir Rajan about his Oak and Gemini projects, which bring Rails-inspired dynamic programming to ASP.NET MVC. Download / Listen: Herding Code 157 &#8211; Amir Rajan on dynamic web development with Oak and GHerding CodeOn this episode of Herding Code, the guys talk to Amir Rajan about his Oak and Gemini projects, which bring Rails-inspired dynamic programming to ASP.NET MVC. Download / Listen: Herding Code 157 &#8211; Amir Rajan on dynamic web development with Oak and Gemini Show Notes: Overview &#8211; Developing with Oak Oak is an approach to [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-157-amir-rajan-on-dynamic-web-development-with-oak-and-gemini/http://herdingcode.com/wp-content/uploads/HerdingCode-0157-Oak.mp3Herding Code 156: Catching up with Andreas Håkansson and Steven Robbins on NancyFxhttp://feedproxy.google.com/~r/HerdingCode/~3/4h-aW2_kDvc/
http://herdingcode.com/herding-code-156-catching-up-with-andreas-hakansson-and-steven-robbins-on-nancyfx/#commentsFri, 18 Jan 2013 22:32:07 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=505]]>http://herdingcode.com/herding-code-156-catching-up-with-andreas-hakansson-and-steven-robbins-on-nancyfx/feed/3noThe guys catch up with Andreas and Steve on what&#8217;s new in NancyFx (a web framework for .NET that was originally inspired by Sinatra). Download / Listen: Herding Code 156 &#8211; Catching up with Andreas Håkansson and Steven Robbins on NancyFx Show NHerding CodeThe guys catch up with Andreas and Steve on what&#8217;s new in NancyFx (a web framework for .NET that was originally inspired by Sinatra). Download / Listen: Herding Code 156 &#8211; Catching up with Andreas Håkansson and Steven Robbins on NancyFx Show Notes: Jon asks for a quick overview of NancyFx. Steve and Andreas both [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-156-catching-up-with-andreas-hakansson-and-steven-robbins-on-nancyfx/http://herdingcode.com/wp-content/uploads/HerdingCode-0156-NancyFx.mp3Herding Code 155 – Ward Bell on Single Page Applications and Breezehttp://feedproxy.google.com/~r/HerdingCode/~3/ivEUoSFUwBw/
http://herdingcode.com/herding-code-155-ward-bell-on-single-page-applications-and-breeze/#commentsTue, 08 Jan 2013 21:11:40 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=499]]>http://herdingcode.com/herding-code-155-ward-bell-on-single-page-applications-and-breeze/feed/1noOn this episode of Herding Code, the guys talk to Ward Bell about single page applications and the Breeze project. Download / Listen: Herding Code 155 &#8211; Ward Bell on Single Page Applications and Breeze Show Notes: General SPA discussion Ward talks aHerding CodeOn this episode of Herding Code, the guys talk to Ward Bell about single page applications and the Breeze project. Download / Listen: Herding Code 155 &#8211; Ward Bell on Single Page Applications and Breeze Show Notes: General SPA discussion Ward talks about how IdeaBlade has been building tools for working with data in rich [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-155-ward-bell-on-single-page-applications-and-breeze/http://herdingcode.com/wp-content/uploads/HerdingCode-0155-Ward-Bell.mp3Herding Code 154 – Aaron Stannard on MarkedUp, founding a startup, and Windows 8 developmenthttp://feedproxy.google.com/~r/HerdingCode/~3/MFDfsYE1dpY/
http://herdingcode.com/herding-code-154-aaron-stannard-on-markedup-founding-a-startup-and-windows-8-development/#commentsFri, 16 Nov 2012 00:48:43 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=493]]>http://herdingcode.com/herding-code-154-aaron-stannard-on-markedup-founding-a-startup-and-windows-8-development/feed/4noWhile at the //build/ conference, Jon talks to Aaron Stannard about how he left Microsoft to start up a new company focused on analytics for Windows 8 applications. They discuss Windows 8 development and the Window Store ecosystem and the technology stackHerding CodeWhile at the //build/ conference, Jon talks to Aaron Stannard about how he left Microsoft to start up a new company focused on analytics for Windows 8 applications. They discuss Windows 8 development and the Window Store ecosystem and the technology stack Aaron and team settled on for their analytics platform. They end up by [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-154-aaron-stannard-on-markedup-founding-a-startup-and-windows-8-development/http://herdingcode.com/wp-content/uploads/HerdingCode-0154-Aaron-Stannard.mp3Herding Code 153 – Matt Wrock on RequestReduce, Chocolatey and BoxStarterhttp://feedproxy.google.com/~r/HerdingCode/~3/2o1DpvDFinU/
http://herdingcode.com/herding-code-153-matt-wrock-on-requestreduce-chocolatey-and-boxstarter/#commentsMon, 15 Oct 2012 23:04:59 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=489]]>http://herdingcode.com/herding-code-153-matt-wrock-on-requestreduce-chocolatey-and-boxstarter/feed/2noThe guys talk to Matt Wrock about Matt&#8217;s RequestReduce web optimization framework and his work to automate building and configuring Windows developer machines with the Chocolatey and BoxStarter projects. Download / Listen: Herding Code 153 &#8211; MHerding CodeThe guys talk to Matt Wrock about Matt&#8217;s RequestReduce web optimization framework and his work to automate building and configuring Windows developer machines with the Chocolatey and BoxStarter projects. Download / Listen: Herding Code 153 &#8211; Matt Wrock on RequestReduce, Chocolatey and BoxStarter Show Notes: RequestReduce Matt explains how he got started with RequestReduce &#8211; [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-153-matt-wrock-on-requestreduce-chocolatey-and-boxstarter/http://herdingcode.com/wp-content/uploads/HerdingCode-0153-Matt-Wrock.mp3Herding Code 152 – Josh Twist on Azure Mobile Serviceshttp://feedproxy.google.com/~r/HerdingCode/~3/Ixf73M_FlMY/
http://herdingcode.com/herding-code-152-josh-twist-on-azure-mobile-services/#commentsMon, 24 Sep 2012 20:08:53 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=483]]>http://herdingcode.com/herding-code-152-josh-twist-on-azure-mobile-services/feed/1noThe guys talk to Josh Twist about the newly released Azure Mobile Services. Download / Listen: Herding Code 152 &#8211; Josh Twist on Azure Mobile Services Show Notes: How Azure Mobile Services got started Jon asks Josh how he got involved with Azure MobiHerding CodeThe guys talk to Josh Twist about the newly released Azure Mobile Services. Download / Listen: Herding Code 152 &#8211; Josh Twist on Azure Mobile Services Show Notes: How Azure Mobile Services got started Jon asks Josh how he got involved with Azure Mobile Services. Jon asks Josh about the Zumo code name &#8211; ZU [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-152-josh-twist-on-azure-mobile-services/http://herdingcode.com/wp-content/uploads/HerdingCode-0152-Josh-Twist.mp3Herding Code 151 – Rob Eisenberg on RPGWithMe, Durandal, and XAML vs. HTML5 developmenthttp://feedproxy.google.com/~r/HerdingCode/~3/KMz8387qI9E/
http://herdingcode.com/herding-code-151-rob-eisenberg-on-rpgwithme-durandal-and-xaml-vs-html5-development/#commentsMon, 17 Sep 2012 21:33:36 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=477]]>http://herdingcode.com/herding-code-151-rob-eisenberg-on-rpgwithme-durandal-and-xaml-vs-html5-development/feed/1noThe guys talk to Rob Eisenberg about RPGWithMe (his new web-based platform centered around tabletop RPGs), Durandal (the essence of Caliburn.Micro re-imagined for HTML and Javascript) and his thoughts on the current state of XAML development. Download / LHerding CodeThe guys talk to Rob Eisenberg about RPGWithMe (his new web-based platform centered around tabletop RPGs), Durandal (the essence of Caliburn.Micro re-imagined for HTML and Javascript) and his thoughts on the current state of XAML development. Download / Listen: Herding Code 151 &#8211; Rob Eisenberg on RPGWithMe, Durandal, and XAML vs. HTML5 development Show Notes: [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-151-rob-eisenberg-on-rpgwithme-durandal-and-xaml-vs-html5-development/http://herdingcode.com/wp-content/uploads/HerdingCode-0151-Rob-Eisenberg.mp3Herding Code 150 – David Starr on the People, Practices, and Tools of Developmenthttp://feedproxy.google.com/~r/HerdingCode/~3/db8qUN_7sg0/
http://herdingcode.com/herding-code-150-david-starr-on-the-people-practices-and-tools-of-development/#commentsFri, 07 Sep 2012 17:46:44 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=471]]>http://herdingcode.com/herding-code-150-david-starr-on-the-people-practices-and-tools-of-development/feed/2noThe guys talk to David Starr about how people, practices and tools factor into software development. Can developer tooling be part of the solution rather than part of the problem? What&#8217;s the state of Scrum? How does Nascar fit in? Download / Listen:Herding CodeThe guys talk to David Starr about how people, practices and tools factor into software development. Can developer tooling be part of the solution rather than part of the problem? What&#8217;s the state of Scrum? How does Nascar fit in? Download / Listen: Herding Code 150 &#8211; David Starr on the People, Practices, and Tools [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-150-david-starr-on-the-people-practices-and-tools-of-development/http://herdingcode.com/wp-content/uploads/HerdingCode-0150-David-Starr.mp3Herding Code 149 – What I Did With My Summer Vacationhttp://feedproxy.google.com/~r/HerdingCode/~3/iWIDqIM_HLw/
http://herdingcode.com/herding-code-149-what-i-did-with-my-summer-vacation/#commentsThu, 30 Aug 2012 22:03:29 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=469]]>http://herdingcode.com/herding-code-149-what-i-did-with-my-summer-vacation/feed/2noThe guys check in after a summer hiatus with a discussion covering travel, books, e-book readers, two factor authentication, Windows 8, OSX Mountain Lion, and hover cranes. Download / Listen: Herding Code 149 &#8211; What I Did With My Summer Vacation ShoHerding CodeThe guys check in after a summer hiatus with a discussion covering travel, books, e-book readers, two factor authentication, Windows 8, OSX Mountain Lion, and hover cranes. Download / Listen: Herding Code 149 &#8211; What I Did With My Summer Vacation Show Notes: Travel Jon asks starts by asking where everyone&#8217;s been travelling to over [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-149-what-i-did-with-my-summer-vacation/http://herdingcode.com/wp-content/uploads/HerdingCode-0149-What-I-did-with-my-summer-vacation.mp3Herding Code 148 – Chris Hardy on Xamarin, MonoTouch and Mono For Androidhttp://feedproxy.google.com/~r/HerdingCode/~3/OGYl7Q8qay0/
http://herdingcode.com/herding-code-148-chris-hardy-on-xamarin-monotouch-and-mono-for-android/#commentsFri, 24 Aug 2012 00:04:29 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=467]]>http://herdingcode.com/herding-code-148-chris-hardy-on-xamarin-monotouch-and-mono-for-android/feed/2noHere&#8217;s the last of K. Scott and Jon&#8217;s interviews from NDC Oslo 2012: a conversation with Chris Hardy about Xamarin, MonoTouch, Mono For Android, and mobile development. Download / Listen: Herding Code 148 &#8211; Chris Hardy on Xamarin, MonoToHerding CodeHere&#8217;s the last of K. Scott and Jon&#8217;s interviews from NDC Oslo 2012: a conversation with Chris Hardy about Xamarin, MonoTouch, Mono For Android, and mobile development. Download / Listen: Herding Code 148 &#8211; Chris Hardy on Xamarin, MonoTouch and Mono For Android Show Notes: Jon asks Chris what he does at Xamarin. Jon asks [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-148-chris-hardy-on-xamarin-monotouch-and-mono-for-android/http://herdingcode.com/wp-content/uploads/HerdingCode-0148-Chris-Hardy.mp3Herding Code 147 – Jakob Bradford on Organizing NDC Oslohttp://feedproxy.google.com/~r/HerdingCode/~3/SKGoWLNxEok/
http://herdingcode.com/herding-code-147-jakob-bradford-on-organizing-ndc-oslo/#commentsTue, 21 Aug 2012 23:56:41 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=465]]>http://herdingcode.com/herding-code-147-jakob-bradford-on-organizing-ndc-oslo/feed/1noWhile at NDC 2012 in Oslo, Jon and K. Scott talked to Jakob Bradford about how the event was organized. Download / Listen: Herding Code 147 &#8211; Jakob Bradford on Organizing NDC Oslo Show Notes: Jon asks how NDC got started and how it&#8217;s grown. K.Herding CodeWhile at NDC 2012 in Oslo, Jon and K. Scott talked to Jakob Bradford about how the event was organized. Download / Listen: Herding Code 147 &#8211; Jakob Bradford on Organizing NDC Oslo Show Notes: Jon asks how NDC got started and how it&#8217;s grown. K. Scott says that other conferences feel like they&#8217;re organized [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-147-jakob-bradford-on-organizing-ndc-oslo/http://herdingcode.com/wp-content/uploads/HerdingCode-0147-Jakob-Bradford.mp3Herding Code 146 – Shay Friedman on Roslyn, IronRuby and the DLRhttp://feedproxy.google.com/~r/HerdingCode/~3/CPr18osOPV0/
http://herdingcode.com/herding-code-146-shay-friedman-on-roslyn-ironruby-and-the-dlr/#commentsFri, 03 Aug 2012 07:25:22 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=463]]>http://herdingcode.com/herding-code-146-shay-friedman-on-roslyn-ironruby-and-the-dlr/feed/3noWhile at NDC 2012 in Oslo, Jon and K. Scott talked to Shay Friedman about Roslyn, IronRuby, and the DLR. Download / Listen: Herding Code 146 &#8211; Shay Friedman on Roslyn, IronRuby, and the DLR Show Notes: K. Scott asks Shay about the what he covered inHerding CodeWhile at NDC 2012 in Oslo, Jon and K. Scott talked to Shay Friedman about Roslyn, IronRuby, and the DLR. Download / Listen: Herding Code 146 &#8211; Shay Friedman on Roslyn, IronRuby, and the DLR Show Notes: K. Scott asks Shay about the what he covered in his &#34;What? C# Could Do That?&#34; talk. Shay [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-146-shay-friedman-on-roslyn-ironruby-and-the-dlr/http://herdingcode.com/wp-content/uploads/HerdingCode-0146-Shay-Friedman.mp3Herding Code 145 – NDC Cage Match with Rob Conery (node.js/socket.io) and Damian Edwards (SignalR)http://feedproxy.google.com/~r/HerdingCode/~3/t9qeUwhhzac/
http://herdingcode.com/herding-code-145-ndc-cage-match-with-rob-conery-node-jssocket-io-and-damian-edwards-signalr/#commentsThu, 28 Jun 2012 14:22:52 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=455]]>http://herdingcode.com/herding-code-145-ndc-cage-match-with-rob-conery-node-jssocket-io-and-damian-edwards-signalr/feed/4noWhile at NDC 2012 in Oslo, Jon MC&#8217;d a Cage Match between Rob Conery (Node.js and socket.io) and Damian Edwards (ASP.NET and SignalR). Immediately after the cage match ended, Jon and K. Scott caught up with them to talk about the similarities and difHerding CodeWhile at NDC 2012 in Oslo, Jon MC&#8217;d a Cage Match between Rob Conery (Node.js and socket.io) and Damian Edwards (ASP.NET and SignalR). Immediately after the cage match ended, Jon and K. Scott caught up with them to talk about the similarities and differences between these development stacks. Download / Listen: Herding Code 145 &#8211; [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-145-ndc-cage-match-with-rob-conery-node-jssocket-io-and-damian-edwards-signalr/http://herdingcode.com/wp-content/uploads/HerdingCode-0145-NDC-Cage-Match-with-Rob-Conery-and-Damian-Edwards-update.mp3Herding Code 144 – GitHub for Windows with Tim Clem, Paul Betts and Phil Haackhttp://feedproxy.google.com/~r/HerdingCode/~3/keYgEL0wdZM/
http://herdingcode.com/herding-code-144-github-for-windows-with-tim-clem-paul-betts-and-phil-haack/#commentsFri, 15 Jun 2012 15:06:24 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=453]]>http://herdingcode.com/herding-code-144-github-for-windows-with-tim-clem-paul-betts-and-phil-haack/feed/4noIn this episode, the guys talk to Tim Clem, Paul Betts and Phil Haack about GitHub for Windows. Download / Listen: Herding Code 144 &#8211; GitHub for Windows with Tim Clem, Paul Betts and Phil Haack Show Notes: The guys start off talking about why there Herding CodeIn this episode, the guys talk to Tim Clem, Paul Betts and Phil Haack about GitHub for Windows. Download / Listen: Herding Code 144 &#8211; GitHub for Windows with Tim Clem, Paul Betts and Phil Haack Show Notes: The guys start off talking about why there is a need for GitHub for Windows. Kevin asks [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-144-github-for-windows-with-tim-clem-paul-betts-and-phil-haack/http://herdingcode.com/wp-content/uploads/HerdingCode-0144-GitHub-for-Windows.mp3Herding Code 143 – Paul Stack on Continuous Deliveryhttp://feedproxy.google.com/~r/HerdingCode/~3/JDsfMf_8CEk/
http://herdingcode.com/herding-code-143-paul-stack-on-continuous-delivery/#respondFri, 11 May 2012 19:42:07 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=447]]>http://herdingcode.com/herding-code-143-paul-stack-on-continuous-delivery/feed/0noThe guys talk to Paul Stack about Continuous Deployment. Download / Listen: Herding Code 143 &#8211; Paul Stack on Continuous Delivery K. Scott asks Paul for a description of what Continuous Delivery is. Paul talks about the differences between ContinuousHerding CodeThe guys talk to Paul Stack about Continuous Deployment. Download / Listen: Herding Code 143 &#8211; Paul Stack on Continuous Delivery K. Scott asks Paul for a description of what Continuous Delivery is. Paul talks about the differences between Continuous Testing, Continuous Integration, Continuous Delivery and Continuous Deployment. Scott brings up the difficulties that databases [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-143-paul-stack-on-continuous-delivery/http://herdingcode.com/wp-content/uploads/HerdingCode-0143-Paul-Stack-on-Continuous-Delivery.mp3Herding Code 142 – Scott Guthrie on the ASP.NET MVC, Web API, and Razor Open Source Announcementhttp://feedproxy.google.com/~r/HerdingCode/~3/saoeB-az-og/
http://herdingcode.com/herding-code-142-scott-guthrie-on-the-asp-net-mvc-web-api-and-razor-open-source-announcement/#commentsMon, 23 Apr 2012 23:00:48 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=443]]>http://herdingcode.com/herding-code-142-scott-guthrie-on-the-asp-net-mvc-web-api-and-razor-open-source-announcement/feed/1noThe gang talks to Scott Guthrie about the recent announcement that ASP.NET MVC, Web API, and Razor are being developed in public, open source repositories using git and will accept external code contributions. It&#8217;s an action packed show, jam packed Herding CodeThe gang talks to Scott Guthrie about the recent announcement that ASP.NET MVC, Web API, and Razor are being developed in public, open source repositories using git and will accept external code contributions. It&#8217;s an action packed show, jam packed with information and guys named Scott. Download / Listen: Herding Code 142 &#8211; Scott Guthrie [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-142-scott-guthrie-on-the-asp-net-mvc-web-api-and-razor-open-source-announcement/http://herdingcode.com/wp-content/uploads/HerdingCode-0142-Scott-Guthrie-on-ASP.NET-Web-API-Razor-Open-Source-Announcement.mp3Herding Code 141 – Lightning Round with Hadi Haririhttp://feedproxy.google.com/~r/HerdingCode/~3/s4Jdukms8do/
http://herdingcode.com/herding-code-141-lightning-round-with-hadi-hariri/#respondWed, 11 Apr 2012 23:12:07 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=439]]>http://herdingcode.com/herding-code-141-lightning-round-with-hadi-hariri/feed/0noK Scott wraps up his series of lightning round interviews from Sofware Passion Summit by interviewing Hadi Hariri. Download / Listen: Herding Code 140 &#8211; Lightning Round with Hadi Hariri Show Notes: K Scott asks Hadi about EasyHttp. Hadi explains somHerding CodeK Scott wraps up his series of lightning round interviews from Sofware Passion Summit by interviewing Hadi Hariri. Download / Listen: Herding Code 140 &#8211; Lightning Round with Hadi Hariri Show Notes: K Scott asks Hadi about EasyHttp. Hadi explains some of the problems and annoyances EasyHttp solves. Configuring the web request was a pain [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-141-lightning-round-with-hadi-hariri/http://herdingcode.com/wp-content/uploads/HerdingCode-0141-Hadi-Hariri.mp3Herding Code 140 – Lightning Round with Morten Kromberg on APLhttp://feedproxy.google.com/~r/HerdingCode/~3/0pYiLE_0FH0/
http://herdingcode.com/herding-code-140-lightning-round-with-morten-kromberg-on-apl/#respondWed, 11 Apr 2012 22:46:05 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=435]]>http://herdingcode.com/herding-code-140-lightning-round-with-morten-kromberg-on-apl/feed/0noWhile at Software Passion Summit, K Scott continues a series of lightning round interviews with Morten Kromberg, discussing APL. Download / Listen: Herding Code 140 &#8211; Lightning Round with Morten Kromberg Show Notes: Morten describes the history and Herding CodeWhile at Software Passion Summit, K Scott continues a series of lightning round interviews with Morten Kromberg, discussing APL. Download / Listen: Herding Code 140 &#8211; Lightning Round with Morten Kromberg Show Notes: Morten describes the history and purpose of APL. Did you know that APL stands for &#34;A Programming Language&#34;? The first book about [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-140-lightning-round-with-morten-kromberg-on-apl/http://herdingcode.com/wp-content/uploads/HerdingCode-0140-Morten-Kromberg.mp3Herding Code 139 – Lightning Round with Roy Osherove on his new book, Notes to a software team leaderhttp://feedproxy.google.com/~r/HerdingCode/~3/FwLNuRJfwL4/
http://herdingcode.com/herding-code-139-lightning-round-with-roy-osherove-on-his-new-book-notes-to-a-software-team-leader/#respondWed, 11 Apr 2012 22:39:12 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=430]]>http://herdingcode.com/herding-code-139-lightning-round-with-roy-osherove-on-his-new-book-notes-to-a-software-team-leader/feed/0noWhile at Software Passion Summit, K Scott continues a series of lightning round interviews with Roy Osherove discussing Roy&#8217;s new book, Notes to a software team leader. Download / Listen: Herding Code 139 &#8211; Lightning Round with Roy Osherove ShHerding CodeWhile at Software Passion Summit, K Scott continues a series of lightning round interviews with Roy Osherove discussing Roy&#8217;s new book, Notes to a software team leader. Download / Listen: Herding Code 139 &#8211; Lightning Round with Roy Osherove Show Notes: K Scott asks Roy about his new book. Roy talks about the LeanPub approach. [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-139-lightning-round-with-roy-osherove-on-his-new-book-notes-to-a-software-team-leader/http://herdingcode.com/wp-content/uploads/HerdingCode-0139-Roy-Osherove.mp3Herding Code 138 – Lightning Round with Douglas Crockfordhttp://feedproxy.google.com/~r/HerdingCode/~3/cHg4oTVXhuY/
http://herdingcode.com/herding-code-138-lightning-round-with-douglas-crockford/#respondWed, 11 Apr 2012 22:36:39 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=428]]>http://herdingcode.com/herding-code-138-lightning-round-with-douglas-crockford/feed/0noWhile at Software Passion Summit, K Scott did a series of four Lightning Round interviews, starting with Douglas Crockford. Download / Listen: Herding Code 138 &#8211; Douglas Crockford Show Notes: K Scott asks Douglas what he meant when he said that the Herding CodeWhile at Software Passion Summit, K Scott did a series of four Lightning Round interviews, starting with Douglas Crockford. Download / Listen: Herding Code 138 &#8211; Douglas Crockford Show Notes: K Scott asks Douglas what he meant when he said that the human brain wasn&#8217;t designed for this sort of work? What were we designed [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-138-lightning-round-with-douglas-crockford/http://herdingcode.com/wp-content/uploads/HerdingCode-0138-Douglas-Crockford.mp3Herding Code 137 – Mass Assignment, New New iPad, JavaScript libraries, Windows 8, Visual Studio, and Sad Tromboneshttp://feedproxy.google.com/~r/HerdingCode/~3/TOF3ylA_M_M/
http://herdingcode.com/herding-code-137-mass-assignment-new-new-ipad-javascript-libraries-windows-8-visual-studio-and-sad-trombones/#commentsThu, 29 Mar 2012 00:46:46 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=418]]>http://herdingcode.com/herding-code-137-mass-assignment-new-new-ipad-javascript-libraries-windows-8-visual-studio-and-sad-trombones/feed/1noOh, hey. A discussion show. Haven&#8217;t done one of those for a while. Bonus: recorded during the day so K Scott&#8217;s awake. Download / Listen: Herding Code 137: Mass Assignment, New New iPad, JavaScript libraries, Windows 8, Visual Studio, and Sad THerding CodeOh, hey. A discussion show. Haven&#8217;t done one of those for a while. Bonus: recorded during the day so K Scott&#8217;s awake. Download / Listen: Herding Code 137: Mass Assignment, New New iPad, JavaScript libraries, Windows 8, Visual Studio, and Sad Trombones Show Notes: K Scott asks everyone&#8217;s opinions on the GitHub / Ruby on [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-137-mass-assignment-new-new-ipad-javascript-libraries-windows-8-visual-studio-and-sad-trombones/http://herdingcode.com/wp-content/uploads/HerdingCode-0137-Mass-Assignment-New-New-iPad-JavaScript-libraries-Windows-8-Visual-Studio-and-Sad-Trombones.mp3Herding Code 136: Code52 with Paul Jenkins, Brendan Forster, and Andrew Tobinhttp://feedproxy.google.com/~r/HerdingCode/~3/dagDZHUEqec/
http://herdingcode.com/herding-code-136-code52-with-paul-jenkins-brendan-forster-and-andrew-tobin/#respondSat, 10 Mar 2012 00:52:20 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=411]]>http://herdingcode.com/herding-code-136-code52-with-paul-jenkins-brendan-forster-and-andrew-tobin/feed/0noIn this episode, Jon and Scott K talk talk with the guys behind Code52, an effort to spin up a new open source project every week for a year. Download / Listen: Herding Code 136: Code52 with Paul Jenkins, Brendan Forster, and Andrew Tobin Show Notes: Jon Herding CodeIn this episode, Jon and Scott K talk talk with the guys behind Code52, an effort to spin up a new open source project every week for a year. Download / Listen: Herding Code 136: Code52 with Paul Jenkins, Brendan Forster, and Andrew Tobin Show Notes: Jon starts by asking how this whole idea got [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-136-code52-with-paul-jenkins-brendan-forster-and-andrew-tobin/http://herdingcode.com/wp-content/uploads/HerdingCode-0136-Code52.mp3Herding Code 135: Remco Mulder and Jeff Schumacher on Continuous Testinghttp://feedproxy.google.com/~r/HerdingCode/~3/Ew_3H-C3dCQ/
http://herdingcode.com/herding-code-135-remco-mulder-and-jeff-schumacher-on-continuous-testing/#commentsMon, 27 Feb 2012 19:32:33 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=403]]>http://herdingcode.com/herding-code-135-remco-mulder-and-jeff-schumacher-on-continuous-testing/feed/3noIn this episode, the guys talk with Remco Mulder (author of NCrunch) and Jeff Schumacher (author of Giles) about continuous testing in .NET. Download / Listen: Herding Code 135: Remco Mulder and Jeff Schumacher on Continuous Testing Show Notes: Scott K kiHerding CodeIn this episode, the guys talk with Remco Mulder (author of NCrunch) and Jeff Schumacher (author of Giles) about continuous testing in .NET. Download / Listen: Herding Code 135: Remco Mulder and Jeff Schumacher on Continuous Testing Show Notes: Scott K kicks things off with a horrible old school BASIC joke. Remco explains how NCrunch [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-135-remco-mulder-and-jeff-schumacher-on-continuous-testing/http://herdingcode.com/wp-content/uploads/HerdingCode-0135-Continuous-Testing.mp3Herding Code 134: Brad Wilson on ASP.NET 4 Beta and ASP.NET Web APIhttp://feedproxy.google.com/~r/HerdingCode/~3/-7iZuRJwKuE/
http://herdingcode.com/herding-code-134-brad-wilson-on-asp-net-4-beta-and-asp-net-web-api/#commentsFri, 17 Feb 2012 21:15:37 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=396]]>http://herdingcode.com/herding-code-134-brad-wilson-on-asp-net-4-beta-and-asp-net-web-api/feed/3noIn this episode, Jon talks to Brad Wilson about the ASP.NET MVC 4 Beta release. Download / Listen: Herding Code 134: Brad Wilson on ASP.NET 4 Beta and ASP.NET Web API Show Notes: Brad starts with a rundown of what was in ASP.NET MVC 4 Developer Preview, iHerding CodeIn this episode, Jon talks to Brad Wilson about the ASP.NET MVC 4 Beta release. Download / Listen: Herding Code 134: Brad Wilson on ASP.NET 4 Beta and ASP.NET Web API Show Notes: Brad starts with a rundown of what was in ASP.NET MVC 4 Developer Preview, including HTML5 Default Template features, Adaptive Rendering, Mobile [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-134-brad-wilson-on-asp-net-4-beta-and-asp-net-web-api/http://herdingcode.com/wp-content/uploads/HerdingCode-0134-Brad-Wilson-on-ASP.NET-MVC-4-Beta.mp3Herding Code 133: Derick Bailey on Backbone.jshttp://feedproxy.google.com/~r/HerdingCode/~3/wVTreocEkAk/
http://herdingcode.com/herding-code-133-derick-bailey-on-backbone-js/#commentsFri, 03 Feb 2012 23:26:45 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=390]]>http://herdingcode.com/herding-code-133-derick-bailey-on-backbone-js/feed/3noIn this episode, the guys talk with Derick Bailey (consultant and founder of watchmecode.net, where he sells JavaScript themed screen casts) about Backbone.js, which is a popular JavaScript framework. Download / Listen: Herding Code 133: Derick Bailey on Herding CodeIn this episode, the guys talk with Derick Bailey (consultant and founder of watchmecode.net, where he sells JavaScript themed screen casts) about Backbone.js, which is a popular JavaScript framework. Download / Listen: Herding Code 133: Derick Bailey on Backbone.js Show Notes: Derick starts off by explaining what Backbone is not: a JavaScript MVC framework. Backbone [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-133-derick-bailey-on-backbone-js/http://herdingcode.com/wp-content/uploads/HerdingCode-0133-Derick-Bailey-on-Backbone.mp3Herding Code 132: Phil Haack, Keith Dahlby and Paul Betts on Git for Windows developershttp://feedproxy.google.com/~r/HerdingCode/~3/QLnq5npMVyM/
http://herdingcode.com/herding-code-132-phil-haack-keith-dahlby-and-paul-betts-on-git-for-windows-developers/#commentsFri, 20 Jan 2012 21:33:12 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=384]]>http://herdingcode.com/herding-code-132-phil-haack-keith-dahlby-and-paul-betts-on-git-for-windows-developers/feed/18noIn this episode, they guys talk with Phil Haack and Paul Betts (both new GitHubbers) and Keith Dahlby (author of posh-git, a set of PowerShell scripts which provide Git/PowerShell integration) about using Git on Windows. Download / Listen: Herding Code 13Herding CodeIn this episode, they guys talk with Phil Haack and Paul Betts (both new GitHubbers) and Keith Dahlby (author of posh-git, a set of PowerShell scripts which provide Git/PowerShell integration) about using Git on Windows. Download / Listen: Herding Code 132: Phil Haack, Keith Dahlby and Paul Betts on Git for Windows developers Show Notes: [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-132-phil-haack-keith-dahlby-and-paul-betts-on-git-for-windows-developers/http://herdingcode.com/wp-content/uploads/HerdingCode-0132-Phil-Haack-Keith-Dahlby-and-Paul-Betts-on-Git-for-Windows-developers.mp3Herding Code 131: Chris Williams and Matthew Podwysocki on the Javascript communityhttp://feedproxy.google.com/~r/HerdingCode/~3/FXsFpMerbKM/
http://herdingcode.com/herding-code-131-chris-williams-and-matthew-podwysocki-on-the-javascript-community/#commentsWed, 04 Jan 2012 20:01:00 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=380]]>http://herdingcode.com/herding-code-131-chris-williams-and-matthew-podwysocki-on-the-javascript-community/feed/9noIn this episode, the guys talk to Chris Williams (organizer of jsConf) and Matthew Podwysocki about the Javascript community, fighting negativity in the programmer community, emerging Javascript trends, and the merits of spring beers. Jon asks Chris to caHerding CodeIn this episode, the guys talk to Chris Williams (organizer of jsConf) and Matthew Podwysocki about the Javascript community, fighting negativity in the programmer community, emerging Javascript trends, and the merits of spring beers. Jon asks Chris to catch us up with what&#8217;s happened since we last talked to him, just after jsConf.us 2010. Chris [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-131-chris-williams-and-matthew-podwysocki-on-the-javascript-community/http://herdingcode.com/wp-content/uploads/HerdingCode-0131-Chris-Williams-and-Matthew-Podwysocki-on-the-Javascript-community.mp3Herding Code 130: Dave Weaver on Loggr – a realtime analytics service built with MVC, MongoDB and SignalRhttp://feedproxy.google.com/~r/HerdingCode/~3/GVlkKKqnwLE/
http://herdingcode.com/herding-code-130-dave-weaver-on-loggr-a-realtime-analytics-service-built-with-mvc-mongodb-and-signalr/#commentsMon, 02 Jan 2012 20:56:44 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=375]]>http://herdingcode.com/herding-code-130-dave-weaver-on-loggr-a-realtime-analytics-service-built-with-mvc-mongodb-and-signalr/feed/7noIn this episode, Jon Galloway and Kevin Dente talk to Dave Weaver about Loggr, a complete logging, analytics and notification system that will easily bolt on to your application. Dave runs Markkup, a consulting company and is building Loggr, SaaS applicatHerding CodeIn this episode, Jon Galloway and Kevin Dente talk to Dave Weaver about Loggr, a complete logging, analytics and notification system that will easily bolt on to your application. Dave runs Markkup, a consulting company and is building Loggr, SaaS application that provides real time logging and monitoring. He was one of the founders of [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-130-dave-weaver-on-loggr-a-realtime-analytics-service-built-with-mvc-mongodb-and-signalr/http://herdingcode.com/wp-content/uploads/HerdingCode-0130-Dave-Weaver-on-Loggr-a-realtime-analytics-service-built-with-MVC-MongoDB-and-SignalR.mp3Herding Code 129: Rob Reynolds on Chocolatey and the Chuck Norris Frameworkshttp://feedproxy.google.com/~r/HerdingCode/~3/8kLjbDrsVzA/
http://herdingcode.com/herding-code-129-rob-reynolds-on-chocolatey-and-the-chuck-norris-frameworks/#commentsTue, 13 Dec 2011 18:12:30 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=373]]>http://herdingcode.com/herding-code-129-rob-reynolds-on-chocolatey-and-the-chuck-norris-frameworks/feed/3noIn this episode, Jon Galloway, Kevin Dente and guest host John Sheehan talk to Rob Reynolds about Chocolatey (a Machine Package Manager, somewhat like apt-get for Windows), as well as Rob&#8217;s Chuck Norris frameworks for project setup, management, deplHerding CodeIn this episode, Jon Galloway, Kevin Dente and guest host John Sheehan talk to Rob Reynolds about Chocolatey (a Machine Package Manager, somewhat like apt-get for Windows), as well as Rob&#8217;s Chuck Norris frameworks for project setup, management, deployment, and more. Rob talks about how Nu helped shape the direction of NuGet. Chocolatey is a [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-129-rob-reynolds-on-chocolatey-and-the-chuck-norris-frameworks/http://herdingcode.com/wp-content/uploads/HerdingCode-0129-Rob-Reynolds-on-Chocolatey-and-the-Chuck-Norris-Frameworks.mp3Herding Code 128: Corey Haines on Global Day of Coderetreat (December 3)http://feedproxy.google.com/~r/HerdingCode/~3/Ss4qh9HBfA4/
http://herdingcode.com/herding-code-128-corey-haines-on-global-day-of-coderetreat-december-3/#respondSat, 26 Nov 2011 23:13:32 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=369]]>http://herdingcode.com/herding-code-128-corey-haines-on-global-day-of-coderetreat-december-3/feed/0noOn this episode of Herding Code, Scott K, Jon, and Kevin talk to Corey Haines about the Global Day of Coderetreat event being held in 90+ cities on December 3. Scott asks Corey to start by explaining his software journeyman thing, or as Scott calls it &#8Herding CodeOn this episode of Herding Code, Scott K, Jon, and Kevin talk to Corey Haines about the Global Day of Coderetreat event being held in 90+ cities on December 3. Scott asks Corey to start by explaining his software journeyman thing, or as Scott calls it &#8220;couch surfing in return for coding.&#8221; Corey describes how he transitioned [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-128-corey-haines-on-global-day-of-coderetreat-december-3/http://herdingcode.com/wp-content/uploads/HerdingCode-0128-Corey-Haines-on-Global-Day-of-Coderetreat.mp3Herding Code 127: Setting up your Computer and Work Areahttp://feedproxy.google.com/~r/HerdingCode/~3/rqx1LtK2RWA/
http://herdingcode.com/herding-code-128-setting-up-your-computer-and-work-area/#commentsTue, 22 Nov 2011 19:20:45 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=364]]>http://herdingcode.com/herding-code-128-setting-up-your-computer-and-work-area/feed/5noOn this episode of Herding Code, the guys discuss computer and work area setup, from installation and file management to ergonomic work areas and animated GIF&#8217;s. Kevin and K Scott both just got MacBooks, they discuss what they are doing with them, sHerding CodeOn this episode of Herding Code, the guys discuss computer and work area setup, from installation and file management to ergonomic work areas and animated GIF&#8217;s. Kevin and K Scott both just got MacBooks, they discuss what they are doing with them, such as using the emulator to test HTML5 apps for iPhone/iPad. Jon asks, [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-128-setting-up-your-computer-and-work-area/http://herdingcode.com/wp-content/uploads/HerdingCode-0127-Computer-and-work-area-setup.mp3Herding Code 126: Jeff Atwood on the overlap of Video Games and Learninghttp://feedproxy.google.com/~r/HerdingCode/~3/MCcDM1w7mP0/
http://herdingcode.com/herding-code-126-jeff-atwood-on-the-overlap-of-video-games-and-learning/#commentsTue, 15 Nov 2011 00:38:57 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=363]]>http://herdingcode.com/herding-code-126-jeff-atwood-on-the-overlap-of-video-games-and-learning/feed/4noOn this episode of Herding Code, the guys talk to Jeff Atwood about the intersection of video games and learning, along the way discussing music, learning to program, casual games, bleeding edge games about bleeding (Battlefield 3), Kinect, Wii, and retroHerding CodeOn this episode of Herding Code, the guys talk to Jeff Atwood about the intersection of video games and learning, along the way discussing music, learning to program, casual games, bleeding edge games about bleeding (Battlefield 3), Kinect, Wii, and retro games. Jeff talks about video games as a gateway to programming. Jon and Jeff [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-126-jeff-atwood-on-the-overlap-of-video-games-and-learning/http://herdingcode.com/wp-content/uploads/HerdingCode-0126-Jeff-Atwood-on-Games-and-Gamification.mp3Herding Code 125: Truffler with Joel Abrahamsson, Marcus Granstrom and Henrik Lindstromhttp://feedproxy.google.com/~r/HerdingCode/~3/Am-JgeV3alk/
http://herdingcode.com/herding-code-125-truffler-with-joel-abrahamsson-marcus-granstrom-and-henrik-lindstrom/#commentsFri, 04 Nov 2011 21:40:38 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=360]]>http://herdingcode.com/herding-code-125-truffler-with-joel-abrahamsson-marcus-granstrom-and-henrik-lindstrom/feed/1noOn this episode of Herding Code, the guys talk to Joel Abrahamsson, Marcus Granström and Henrik Lindström about Truffler, a solution for building advanced search and querying functionality for websites and other data-centric systems. They talk about theirHerding CodeOn this episode of Herding Code, the guys talk to Joel Abrahamsson, Marcus Granström and Henrik Lindström about Truffler, a solution for building advanced search and querying functionality for websites and other data-centric systems. They talk about their backgrounds and combining their different skills to build something pretty awesome. K. Scott says Truffler has a [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-125-truffler-with-joel-abrahamsson-marcus-granstrom-and-henrik-lindstrom/http://herdingcode.com/wp-content/uploads/HerdingCode-0125-Truffler.mp3Herding Code 124: Anthony van der Hoorn and Nik Molnar on Glimpsehttp://feedproxy.google.com/~r/HerdingCode/~3/7kgumKkT9ZI/
http://herdingcode.com/herding-code-124-anthony-van-der-hoorn-and-nik-molnar-on-glimpse/#respondMon, 24 Oct 2011 21:01:33 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=355]]>http://herdingcode.com/herding-code-124-anthony-van-der-hoorn-and-nik-molnar-on-glimpse/feed/0noOn 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 doeHerding CodeOn 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 [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-124-anthony-van-der-hoorn-and-nik-molnar-on-glimpse/http://herdingcode.com/wp-content/uploads/HerdingCode-0124-Anthony-van-der-Hoorn-and-Nik-Molnar-on-Glimpse.mp3Herding Code 123: Andreas Håkansson and Steven Robbins on NancyFxhttp://feedproxy.google.com/~r/HerdingCode/~3/TWChyyLoSl4/
http://herdingcode.com/herding-code-123-andreas-hakansson-and-steven-robbins-on-nancyfx/#commentsMon, 17 Oct 2011 21:18:12 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=350]]>http://herdingcode.com/herding-code-123-andreas-hakansson-and-steven-robbins-on-nancyfx/feed/3noOn 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. AndreasHerding CodeOn 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&#8217;t get in the way. Andreas [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-123-andreas-hakansson-and-steven-robbins-on-nancyfx/http://herdingcode.com/wp-content/uploads/HerdingCode-0123-Andreas-Hakansson-and-Steven-Robbins-on-NancyFx.mp3Herding Code 122: Bert Belder on porting Node.js to Windowshttp://feedproxy.google.com/~r/HerdingCode/~3/8kZJGXUE9nY/
http://herdingcode.com/herding-code-122-bert-belder-on-porting-node-js-to-windows/#commentsTue, 11 Oct 2011 18:57:36 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=347]]>http://herdingcode.com/herding-code-122-bert-belder-on-porting-node-js-to-windows/feed/3noThis episode of Herding Code the guys talk to Bert Belder, a Node.js developer who&#8217;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 ofHerding CodeThis episode of Herding Code the guys talk to Bert Belder, a Node.js developer who&#8217;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 [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-122-bert-belder-on-porting-node-js-to-windows/http://herdingcode.com/wp-content/uploads/HerdingCode-0122-Bert-Belder-on-porting-nodejs-to-Windows.mp3Herding Code 121: Sara Chipps updates us on Girl Develop It at one yearhttp://feedproxy.google.com/~r/HerdingCode/~3/x-_FOV824nE/
http://herdingcode.com/herding-code-121-sara-chipps-updates-us-on-girl-develop-it-at-one-year/#commentsFri, 23 Sep 2011 20:18:53 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=346]]>http://herdingcode.com/herding-code-121-sara-chipps-updates-us-on-girl-develop-it-at-one-year/feed/1noThis episode of Herding Code Kevin and Jon catch up with Sara Chipps to find out how Girl Develop It is going. Kevin jumps right into it by asking Sara about what&#8217;s been going on over the past year. Sara goes back to what was on their minds as they Herding CodeThis episode of Herding Code Kevin and Jon catch up with Sara Chipps to find out how Girl Develop It is going. Kevin jumps right into it by asking Sara about what&#8217;s been going on over the past year. Sara goes back to what was on their minds as they were first getting started with [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-121-sara-chipps-updates-us-on-girl-develop-it-at-one-year/http://herdingcode.com/wp-content/uploads/HerdingCode-0121-Sara-Chipps-updates-us-on-Girl-Develop-It.mp3Herding Code 120: Ryan Stewart on RIAs and All Things Adobehttp://feedproxy.google.com/~r/HerdingCode/~3/ynD7iYpxck8/
http://herdingcode.com/herding-code-120-ryan-stewart-on-rias-and-all-things-adobe/#respondTue, 13 Sep 2011 03:48:53 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=343]]>http://herdingcode.com/herding-code-120-ryan-stewart-on-rias-and-all-things-adobe/feed/0noThis episode of Herding Code the guys talk to Ryan Stewart, a developer evangelist at Adobe. Scott K asks about the pricing of Adobe products. Ryan explains why things are priced as they are and talks about the subscription model alternative. Jon talks abHerding CodeThis episode of Herding Code the guys talk to Ryan Stewart, a developer evangelist at Adobe. Scott K asks about the pricing of Adobe products. Ryan explains why things are priced as they are and talks about the subscription model alternative. Jon talks about the open other free or inexpensive alternatives for beginning Adobe development [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-120-ryan-stewart-on-rias-and-all-things-adobe/http://herdingcode.com/wp-content/uploads/HerdingCode-0120-Ryan-Stewart-on-RIAs-and-all-things-Adobe.mp3Herding Code 119: On The Writing Technical Books (with Jesse Liberty, Phil Haack, and Brad Wilson)http://feedproxy.google.com/~r/HerdingCode/~3/LL3JFJQa4sI/
http://herdingcode.com/herding-code-119-on-the-writing-technical-books-with-jesse-liberty-phil-haack-and-brad-wilson-2/#commentsSat, 27 Aug 2011 03:47:41 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=342]]>http://herdingcode.com/herding-code-119-on-the-writing-technical-books-with-jesse-liberty-phil-haack-and-brad-wilson-2/feed/1noThis episode of Herding Code the guys talk to Jesse Liberty, Phil Haack, and Brad Wilson about writing technical books. Jesse has written dozens of technical books, and both Brad and Phil worked with Jon and K. Scott on the recently released ASP.NET ProfeHerding CodeThis episode of Herding Code the guys talk to Jesse Liberty, Phil Haack, and Brad Wilson about writing technical books. Jesse has written dozens of technical books, and both Brad and Phil worked with Jon and K. Scott on the recently released ASP.NET Professional MVC 3 book. What&#8217;s it like to write a book? Why [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-119-on-the-writing-technical-books-with-jesse-liberty-phil-haack-and-brad-wilson-2/http://herdingcode.com/wp-content/uploads/HerdingCode-0119-On-The-Writing-Of-Technical-Books.mp3Herding Code 118: Paul Betts on SassAndCoffeehttp://feedproxy.google.com/~r/HerdingCode/~3/HiEzZBqmAwA/
http://herdingcode.com/herding-code-118-paul-betts-on-sassandcoffee/#commentsThu, 11 Aug 2011 01:54:08 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=334]]>http://herdingcode.com/herding-code-118-paul-betts-on-sassandcoffee/feed/4noThis episode of Herding Code the guys talk to Paul Betts about SassAndCoffee, a NuGet package that adds runtime Sass and CoffeeScript compilation to ASP.NET. Jon asks Paul about his role on the Office Labs team [Spoiler alert! Since this podcast, Paul hasHerding CodeThis episode of Herding Code the guys talk to Paul Betts about SassAndCoffee, a NuGet package that adds runtime Sass and CoffeeScript compilation to ASP.NET. Jon asks Paul about his role on the Office Labs team [Spoiler alert! Since this podcast, Paul has started a new job at GitHub!] Jon asks Paul about why he [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-118-paul-betts-on-sassandcoffee/http://herdingcode.com/wp-content/uploads/HerdingCode-0118-Paul-Betts-on-SassAndCoffee.mp3Herding Code 117: Llewellyn Falco on Approval Testshttp://feedproxy.google.com/~r/HerdingCode/~3/X8tWDItthiE/
http://herdingcode.com/herding-code-117-llewellyn-falcon-on-approval-tests/#commentsThu, 21 Jul 2011 04:17:03 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=329]]>http://herdingcode.com/herding-code-117-llewellyn-falcon-on-approval-tests/feed/8noThis episode of Herding Code the guys talk to Llewellyn Falco about Acceptance Tests, an interesting testing framework for .NET, Java, Ruby, and PHP. Jon talks about how much he enjoyed Llewellyn’s talk on refactoring legacy code at So Cal Code Camp, and Herding CodeThis episode of Herding Code the guys talk to Llewellyn Falco about Acceptance Tests, an interesting testing framework for .NET, Java, Ruby, and PHP. Jon talks about how much he enjoyed Llewellyn’s talk on refactoring legacy code at So Cal Code Camp, and was especially intrigued by Approval Tests. Llewellyn explains how Approval Tests got started at a weekly [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-117-llewellyn-falcon-on-approval-tests/http://herdingcode.com/wp-content/uploads/HerdingCode-0117-Llewellyn-Falco-on-Approval-Tests.mp3Herding Code 116: Eric Lawrence on Fiddler, IE Internals, and HTTPhttp://feedproxy.google.com/~r/HerdingCode/~3/qwHK5w66F7I/
http://herdingcode.com/herding-code-116-eric-lawrence-on-fiddler-ie-internals-and-http/#respondFri, 01 Jul 2011 22:12:50 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=328]]>http://herdingcode.com/herding-code-116-eric-lawrence-on-fiddler-ie-internals-and-http/feed/0noThis episode of Herding Code the guys talk to Eric Lawrence, the author of the popular Fiddler web debugging proxy. Eric&#8217;s also a member of the Internet Explorer team and developer of several popular freeware tools. Eric explains how he&#8217;s beenHerding CodeThis episode of Herding Code the guys talk to Eric Lawrence, the author of the popular Fiddler web debugging proxy. Eric&#8217;s also a member of the Internet Explorer team and developer of several popular freeware tools. Eric explains how he&#8217;s been working on &#8211; and now runs &#8211; the team that works on the networking [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-116-eric-lawrence-on-fiddler-ie-internals-and-http/http://herdingcode.com/wp-content/uploads/HerdingCode-0116-Eric-Lawrence-on-Fiddler-IE-Internals-and-HTTP.mp3Herding Code 115: RESTravaganza with Darrel Miller, Glenn Block, and John Sheehanhttp://feedproxy.google.com/~r/HerdingCode/~3/o2mRlhbUDes/
http://herdingcode.com/herding-code-115-restravaganza-with-darrel-miller-glenn-block-and-john-sheehan/#commentsWed, 22 Jun 2011 00:12:19 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=327]]>http://herdingcode.com/herding-code-115-restravaganza-with-darrel-miller-glenn-block-and-john-sheehan/feed/3noThis episode of Herding Code the guys talk REST with Glenn Block (who&#8217;s driving the WCF Web APIs), Darrel Miller (a REST expert with a lot of real world production experience), and John Sheehan (author of RestSharp) about what REST really is and whaHerding CodeThis episode of Herding Code the guys talk REST with Glenn Block (who&#8217;s driving the WCF Web APIs), Darrel Miller (a REST expert with a lot of real world production experience), and John Sheehan (author of RestSharp) about what REST really is and what practical value it really offers in real world, production applications. Jon [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-115-restravaganza-with-darrel-miller-glenn-block-and-john-sheehan/http://herdingcode.com/wp-content/uploads/HerdingCode-0115-RESTravaganza-with-Darrel-Miller--Glenn-Block--John-Sheehan.mp3Herding Code 114: Trevor Burnham on CoffeeScripthttp://feedproxy.google.com/~r/HerdingCode/~3/jMOy7LYWMO0/
http://herdingcode.com/herding-code-114-trevor-burnham-on-coffeescript/#commentsTue, 14 Jun 2011 23:05:05 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=321]]>http://herdingcode.com/herding-code-114-trevor-burnham-on-coffeescript/feed/2noThis episode of Herding Code the guys talk to Trevor Burnham about Coffeescript, &#8220;a little language that compiles into JavaScript.&#8221; Kevin asks Trevor to explain what CoffeeScript is. Trevor explains how CoffeeScript helps you to write the sameHerding CodeThis episode of Herding Code the guys talk to Trevor Burnham about Coffeescript, &#8220;a little language that compiles into JavaScript.&#8221; Kevin asks Trevor to explain what CoffeeScript is. Trevor explains how CoffeeScript helps you to write the same code you would have in JavaScript, but more quickly and with less effort. Kevin ask if people [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-114-trevor-burnham-on-coffeescript/http://herdingcode.com/wp-content/uploads/HerdingCode-0114-Trevor-Burnham-on-CoffeeScript.mp3Herding Code 113: Mark Russinovich on Zero Day and Computer Securityhttp://feedproxy.google.com/~r/HerdingCode/~3/Vzi5wmgztjQ/
http://herdingcode.com/herding-code-113-mark-russinovich-on-zero-day-and-computer-security/#commentsFri, 27 May 2011 22:16:34 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=320]]>http://herdingcode.com/herding-code-113-mark-russinovich-on-zero-day-and-computer-security/feed/2noThis episode of Herding Code the guys talk to Mark Russinovich about his new book (Zero Day), modern malware like Stuxnet, his experiences discovering the Sony rootkit, Sysinternals tools, and computer security in general. K Scott asks Mark about how he dHerding CodeThis episode of Herding Code the guys talk to Mark Russinovich about his new book (Zero Day), modern malware like Stuxnet, his experiences discovering the Sony rootkit, Sysinternals tools, and computer security in general. K Scott asks Mark about how he decided to write Zero Day. Mark talks about how early, unsophisticated viruses still caused [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-113-mark-russinovich-on-zero-day-and-computer-security/http://herdingcode.com/wp-content/uploads/HerdingCode-0113-Mark-Russinovich-on-Zero-Day-and-Computer-Security.mp3Herding Code 112: Josh Arnold and Jeremy Miller on FubuMVChttp://feedproxy.google.com/~r/HerdingCode/~3/brQfSyw7ZmU/
http://herdingcode.com/herding-code-112-josh-arnold-and-jeremy-miller-on-fubumvc/#commentsTue, 24 May 2011 21:41:41 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=319]]>http://herdingcode.com/herding-code-112-josh-arnold-and-jeremy-miller-on-fubumvc/feed/2noThis episode of Herding Code the guys talk to Josh Arnold and Jeremy Miller about what&#8217;s new with FubuMVC. Jeremy Miller explains why FubuMVC &#34;deserves to exist&#34; and explains how compositional architecture and conventions help in building coHerding CodeThis episode of Herding Code the guys talk to Josh Arnold and Jeremy Miller about what&#8217;s new with FubuMVC. Jeremy Miller explains why FubuMVC &#34;deserves to exist&#34; and explains how compositional architecture and conventions help in building complex systems. Josh talks about how FubuMVC diagnostics help in understanding how the conventions are being applied how [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-112-josh-arnold-and-jeremy-miller-on-fubumvc/http://herdingcode.com/wp-content/uploads/HerdingCode-0112-Josh-Arnold-and-Jeremy-Miller-on-FubuMVC.mp3Herding Code 111: John Papa on the Open Source Fest at MIX11http://feedproxy.google.com/~r/HerdingCode/~3/v2uDD8azuts/
http://herdingcode.com/herding-code-111-john-papa-on-the-open-source-fest-at-mix11/#commentsWed, 04 May 2011 20:55:03 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=318]]>http://herdingcode.com/herding-code-111-john-papa-on-the-open-source-fest-at-mix11/feed/1noThis episode of Herding Code the guys talk to John Papa about the Open Source Fest he put together at MIX11. Jon asks how the whole thing got started, and if John encountered any friction within Microsoft in getting this set up. John describes the event aHerding CodeThis episode of Herding Code the guys talk to John Papa about the Open Source Fest he put together at MIX11. Jon asks how the whole thing got started, and if John encountered any friction within Microsoft in getting this set up. John describes the event and calls out some of the winners from the [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-111-john-papa-on-the-open-source-fest-at-mix11/http://herdingcode.com/wp-content/uploads/HerdingCode-0111-John-Papa-on-Open-Source-Fest.mp3Herding Code 110: Geoff Dalgas and Jarrod Dixon take us behind the scenes at StackExchangehttp://feedproxy.google.com/~r/HerdingCode/~3/BeTok_lciM4/
http://herdingcode.com/herding-code-110-geoff-dalgas-and-jarrod-dixon-take-us-behind-the-scenes-at-stackexchange/#commentsMon, 25 Apr 2011 17:19:16 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=315]]>http://herdingcode.com/herding-code-110-geoff-dalgas-and-jarrod-dixon-take-us-behind-the-scenes-at-stackexchange/feed/4noThis episode of Herding Code Kevin and Jon sit down with Geoff and Jarrod at MIX to talk about their experiences from helping to build the first StackOverflow site up through today&#8217;s fast paced world of StackExchanges and gold plated Lamborghinis. NHerding CodeThis episode of Herding Code Kevin and Jon sit down with Geoff and Jarrod at MIX to talk about their experiences from helping to build the first StackOverflow site up through today&#8217;s fast paced world of StackExchanges and gold plated Lamborghinis. Note: We recorded in quietest spot we could find &#8211; there&#8217;s some background noise, [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-110-geoff-dalgas-and-jarrod-dixon-take-us-behind-the-scenes-at-stackexchange/http://herdingcode.com/wp-content/uploads/HerdingCode-0110-Geoff-Dalgas-and-Jarrod-Dixon-on-StackExchange.mp3Herding Code 109: Harmony Hackathonhttp://feedproxy.google.com/~r/HerdingCode/~3/7FoEhS5TAaY/
http://herdingcode.com/herding-code-109-harmony-hackathon/#commentsWed, 20 Apr 2011 23:20:27 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=310]]>http://herdingcode.com/herding-code-109-harmony-hackathon/feed/4noThis episode of Herding Code the guys talk to the organizers of the Harmony Hackathon: twelve developers coding madly for 48 hours, trying to build an application for the non-profit Harmony Hill cancer retreat center. Eric talks about the Harmony HackathoHerding CodeThis episode of Herding Code the guys talk to the organizers of the Harmony Hackathon: twelve developers coding madly for 48 hours, trying to build an application for the non-profit Harmony Hill cancer retreat center. Eric talks about the Harmony Hackathon came together and what they were trying to accomplis. Jon asks about how things [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-109-harmony-hackathon/http://herdingcode.com/wp-content/uploads/HerdingCode-0109-Harmony-Hackathon.mp3Herding Code 108: Jin Yang and Nathan Bowers on Web Designhttp://feedproxy.google.com/~r/HerdingCode/~3/EATiYjQV5Ik/
http://herdingcode.com/herding-code-108-jin-yang-and-nathan-bowers-on-web-design/#commentsFri, 25 Mar 2011 00:15:54 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=309]]>http://herdingcode.com/herding-code-108-jin-yang-and-nathan-bowers-on-web-design/feed/6noThis episode of Herding Code continues a discussion / argument that Jon started with Jin Yang and Nathan Bowers on Twitter a few weeks ago after reading a post he liked from a product designer at Quora about how they don&#8217;t use Photoshop in their desHerding CodeThis episode of Herding Code continues a discussion / argument that Jon started with Jin Yang and Nathan Bowers on Twitter a few weeks ago after reading a post he liked from a product designer at Quora about how they don&#8217;t use Photoshop in their design process. What&#8217;s the role of visual design in the [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-108-jin-yang-and-nathan-bowers-on-web-design/http://herdingcode.com/wp-content/uploads/HerdingCode-0108-Jin-Yang-and-Nathan-Bowers-on-User-Experience-Design.mp3Herding Code 107: Apple Subscription fees, Nokia, Reflector, Mono, Watson, CardSpace, and IE9 RChttp://feedproxy.google.com/~r/HerdingCode/~3/EzWBFqwj9NA/
http://herdingcode.com/herding-code-107-apple-subscription-fees-nokia-reflector-mono-watson-cardspace-and-ie9-rc/#commentsThu, 10 Mar 2011 08:20:39 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=306]]>http://herdingcode.com/herding-code-107-apple-subscription-fees-nokia-reflector-mono-watson-cardspace-and-ie9-rc/feed/9noIn this episode of Herding Code, the guys talk nonsense for over an hour. Topic: The Apple Store 30% fee for App Subscriptions &#8211; who&#8217;s surprised, what apps will it affect, etc. The conversation shifts to Kindle, and whether content focused appHerding CodeIn this episode of Herding Code, the guys talk nonsense for over an hour. Topic: The Apple Store 30% fee for App Subscriptions &#8211; who&#8217;s surprised, what apps will it affect, etc. The conversation shifts to Kindle, and whether content focused apps can move to HTML only. Topic: Windows Mobile deal with Nokia &#8211; will [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-107-apple-subscription-fees-nokia-reflector-mono-watson-cardspace-and-ie9-rc/http://herdingcode.com/wp-content/uploads/HerdingCode-0107-Apple-Subscription-fees-Nokia-Reflector-Mono-Watson-CardSpace-IE9-RC.mp3Herding Code 106: Mark Rendle on Simple.Datahttp://feedproxy.google.com/~r/HerdingCode/~3/arX2DM9KFBE/
http://herdingcode.com/herding-code-106-mark-rendle-on-simple-data/#commentsTue, 22 Feb 2011 21:12:41 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=305]]>http://herdingcode.com/herding-code-106-mark-rendle-on-simple-data/feed/6noIn this episode of Herding Code, the guys speak with Mark Rendle about his Simple.Data and Fix projects. The show begins with Mark&#8217;s Simple.Data elevator pitch in which he explains that Simple.Data is an ORM without the O, the R or the M. Jon asks aHerding CodeIn this episode of Herding Code, the guys speak with Mark Rendle about his Simple.Data and Fix projects. The show begins with Mark&#8217;s Simple.Data elevator pitch in which he explains that Simple.Data is an ORM without the O, the R or the M. Jon asks about Mark&#8217;s heavy use of dynamic types in the Simple.Data [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-106-mark-rendle-on-simple-data/http://herdingcode.com/wp-content/uploads/HerdingCode-0106-Mark-Rendle-on-Simple-Data.mp3Herding Code 105: Brad Wilson on MVC 3http://feedproxy.google.com/~r/HerdingCode/~3/xLfWa8jZy-0/
http://herdingcode.com/herding-code-105-brad-wilson-on-mvc-3/#commentsMon, 14 Feb 2011 23:51:41 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=304]]>http://herdingcode.com/herding-code-105-brad-wilson-on-mvc-3/feed/4noIn this episode of Herding Code, the guys talk to ASP.NET team member and repeat guest Brad Wilson about what&#8217;s new in ASP.NET MVC 3, BDD-style testing with SpecFlow and WaitN, and the latest release of xUnit.net. Jon begins the show by sharing BradHerding CodeIn this episode of Herding Code, the guys talk to ASP.NET team member and repeat guest Brad Wilson about what&#8217;s new in ASP.NET MVC 3, BDD-style testing with SpecFlow and WaitN, and the latest release of xUnit.net. Jon begins the show by sharing Brad&#8217;s bio and then dives right in asking about ASP.NET MVC 3 [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-105-brad-wilson-on-mvc-3/http://herdingcode.com/wp-content/uploads/HerdingCode-0105-Brad-Wilson-on-MVC-3.mp3Herding Code 104: Rob Eisenberg on Caliburn Microhttp://feedproxy.google.com/~r/HerdingCode/~3/wldKLtOwHn4/
http://herdingcode.com/herding-code-104-rob-eisenberg-on-caliburn-micro/#commentsMon, 07 Feb 2011 07:59:01 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=303]]>http://herdingcode.com/herding-code-104-rob-eisenberg-on-caliburn-micro/feed/10noYou remember Rob Eisenberg from Herding Code Show #57 when he talked presentation patterns along with Jeremy Miller, Ward Bell and Glenn Block. Well, in this episode of Herding Code, the conversation continues as Rob talks with the guys about Caliburn.MicHerding CodeYou remember Rob Eisenberg from Herding Code Show #57 when he talked presentation patterns along with Jeremy Miller, Ward Bell and Glenn Block. Well, in this episode of Herding Code, the conversation continues as Rob talks with the guys about Caliburn.Micro, an opinionated MVVM framework for WPF, Silverlight and WP7. Kevin kicks off this week&#8217;s [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-104-rob-eisenberg-on-caliburn-micro/http://herdingcode.com/wp-content/uploads/HerdingCode-0104-Rob-Eisenberg-on-Caliburn-Micro.mp3Herding Code 103: Seb Lambla on OpenEverythinghttp://feedproxy.google.com/~r/HerdingCode/~3/RV0eKiXR6H4/
http://herdingcode.com/herding-code-103-seb-lambla-on-openeverything/#respondTue, 25 Jan 2011 18:20:51 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=301]]>http://herdingcode.com/herding-code-103-seb-lambla-on-openeverything/feed/0noIn this episode of Herding Code, the guys talk with &#8220;self-congratulatory, self-proclaimed, egotistical doofus&#8221; Sebastien Lambla about OpenRasta, OpenWrap and Open Web Interface for .NET (OWIN.) K Scott kicks off the show asking Seb about his mHerding CodeIn this episode of Herding Code, the guys talk with &#8220;self-congratulatory, self-proclaimed, egotistical doofus&#8221; Sebastien Lambla about OpenRasta, OpenWrap and Open Web Interface for .NET (OWIN.) K Scott kicks off the show asking Seb about his most popular OSS project &#8211; OpenRasta provides the 30 second elevator pitch and touches on his web framework which [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-103-seb-lambla-on-openeverything/http://herdingcode.com/wp-content/uploads/HerdingCode-0103-Seb-Lambla-on-OpenEverything.mp3Herding Code 102: Tim Caswell on Node.jshttp://feedproxy.google.com/~r/HerdingCode/~3/p-ivxGbZUI4/
http://herdingcode.com/herding-code-102-tim-caswell-on-node-js/#commentsWed, 19 Jan 2011 00:24:30 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=299]]>http://herdingcode.com/herding-code-102-tim-caswell-on-node-js/feed/14noIn 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.&#160; Listen in as the guys dig into node.js and what it has to offer. Tim gives the node.js elevator pitch and Herding CodeIn 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.&#160; 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 &#8211; like event [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-102-tim-caswell-on-node-js/http://herdingcode.com/wp-content/uploads/HerdingCode-0102-Tim-Caswell-on-Node-js.mp3Herding Code 101: Kelly Sommers on Mobile Development and User Interface designhttp://feedproxy.google.com/~r/HerdingCode/~3/NCp-Z-zCfPs/
http://herdingcode.com/herding-code-101-kelly-sommers-on-mobile-development-and-user-interface-design/#commentsFri, 14 Jan 2011 23:15:40 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=298]]>http://herdingcode.com/herding-code-101-kelly-sommers-on-mobile-development-and-user-interface-design/feed/5noIn 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 &#38; writing code Kelly talks about her experience getting started on Twitter Jon asks Kelly about her post on Herding CodeIn 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 &#38; writing code Kelly talks about her experience getting started on Twitter Jon asks Kelly about her post on how desktop UI&#8217;s feel boring compared to mobile UI&#8217;s Jon [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-101-kelly-sommers-on-mobile-development-and-user-interface-design/http://herdingcode.com/wp-content/uploads/HerdingCode-0101-Kelly-Sommers.mp3Herding Code 100: One Hundredth Show Celebration with Queen Beatrixhttp://feedproxy.google.com/~r/HerdingCode/~3/nqqsySZ0rIM/
http://herdingcode.com/herding-code-100-one-hundredth-show-celebration-with-queen-beatrix/#commentsSun, 02 Jan 2011 08:48:49 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=297]]>http://herdingcode.com/herding-code-100-one-hundredth-show-celebration-with-queen-beatrix/feed/1noOne 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&#8217Herding CodeOne 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&#8217;t the podcast he thought he was signing up for, and Scott K [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-100-one-hundredth-show-celebration-with-queen-beatrix/http://herdingcode.com/wp-content/uploads/HerdingCode-0100-One-Hundredth-Show.mp3Herding Code 99: David Ebbo on NuGethttp://feedproxy.google.com/~r/HerdingCode/~3/lgeB-EyQ9xw/
http://herdingcode.com/herding-code-99-david-ebbo-on-nuget/#commentsThu, 02 Dec 2010 00:18:24 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=296]]>http://herdingcode.com/herding-code-99-david-ebbo-on-nuget/feed/1noIn 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 &#8211; how NuGetHerding CodeIn 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 &#8211; how NuGet evolved from a web-based feature for use in ASP.NET Web Pages [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-99-david-ebbo-on-nuget/http://herdingcode.com/wp-content/uploads/HerdingCode-0099-David-Ebbo-on-NuGet.mp3Herding Code 98: Dale Ragan on Moncaihttp://feedproxy.google.com/~r/HerdingCode/~3/DWkOBSiWHWw/
http://herdingcode.com/herding-code-98-dale-ragan-on-moncai/#commentsMon, 29 Nov 2010 08:17:48 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=294]]>http://herdingcode.com/herding-code-98-dale-ragan-on-moncai/feed/3noIn 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. SHerding CodeIn 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 [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-98-dale-ragan-on-moncai/http://herdingcode.com/wp-content/uploads/HerdingCode-0098-Dale-Ragan-on-Moncai.mp3Herding Code 97: Jackson Harper on Manos de Monohttp://feedproxy.google.com/~r/HerdingCode/~3/mRf2JOkC_rg/
http://herdingcode.com/herding-code-97-jackson-harper-on-manos-de-mono/#commentsTue, 16 Nov 2010 00:29:43 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=293]]>http://herdingcode.com/herding-code-97-jackson-harper-on-manos-de-mono/feed/5noIn this episode of Herding Code, the guys talk with Jackson Harper about Manos de Mono, his lightweight web application framework that runs on Mono. The goal of Manos is to simplify the entire process of creating, managing and updating a web application fHerding CodeIn this episode of Herding Code, the guys talk with Jackson Harper about Manos de Mono, his lightweight web application framework that runs on Mono. The goal of Manos is to simplify the entire process of creating, managing and updating a web application from prototyping and design to deployment.&#160; Manos aims to be Simple, Testable, [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-97-jackson-harper-on-manos-de-mono/http://herdingcode.com/wp-content/uploads/HerdingCode-0097-Jackson-Harper-on-Manos.mp3Herding Code 96: Eric Sink on Veracity and DVCShttp://feedproxy.google.com/~r/HerdingCode/~3/VCC_cGXM-RA/
http://herdingcode.com/herding-code-96-eric-sink-on-veracity-and-dvcs/#commentsTue, 02 Nov 2010 03:32:16 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=288]]>http://herdingcode.com/herding-code-96-eric-sink-on-veracity-and-dvcs/feed/3noThis week on Herding Code, the guys talk with Eric Sink, cofounder of SourceGear, about Veracity and Distributed Version Control Systems. Listen in and learn about Veracity&#8217;s architecture including pluggable layers and a unique approach to data storHerding CodeThis week on Herding Code, the guys talk with Eric Sink, cofounder of SourceGear, about Veracity and Distributed Version Control Systems. Listen in and learn about Veracity&#8217;s architecture including pluggable layers and a unique approach to data storage all built on an impressive technical stack. And get an answer to the question that everyone&#8217;s asking [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-96-eric-sink-on-veracity-and-dvcs/http://herdingcode.com/wp-content/uploads/HerdingCode-0096-Eric-Sink-on-Veracity-and-DVCS.mp3Herding Code 95: MonoDroid with Miguel and the Mono ganghttp://feedproxy.google.com/~r/HerdingCode/~3/FPyCMf-AvHc/
http://herdingcode.com/herding-code-95-monodroid-with-miguel-and-the-mono-gang/#commentsThu, 14 Oct 2010 19:21:59 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=286]]>http://herdingcode.com/herding-code-95-monodroid-with-miguel-and-the-mono-gang/feed/2noHey, it&#8217;s a bunch of Mono guys! That&#8217;s always fun. This time they&#8217;re talking about MonoDroid. Joining the gang this week are Miguel de Icaza, Joseph Hill, Geoff Norton, and Mike Kestner talk about developing .NET applications for the AndHerding CodeHey, it&#8217;s a bunch of Mono guys! That&#8217;s always fun. This time they&#8217;re talking about MonoDroid. Joining the gang this week are Miguel de Icaza, Joseph Hill, Geoff Norton, and Mike Kestner talk about developing .NET applications for the Android platform with Mono. Jon asks about where MonoDroid is at in the product lifecycle. Jon [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-95-monodroid-with-miguel-and-the-mono-gang/http://herdingcode.com/wp-content/uploads/HerdingCode-0095-MonoDroid-with-Miguel-de-Icaza-and-the-Mono-gang.mp3Herding Code 94: Silverlight and HTML5http://feedproxy.google.com/~r/HerdingCode/~3/O7dykZk1vHY/
http://herdingcode.com/herding-code-94-silverlight-and-html5/#commentsFri, 01 Oct 2010 21:51:33 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=281]]>http://herdingcode.com/herding-code-94-silverlight-and-html5/feed/9noThis week on Herding Code, the guys talk to Adam Kinney and Rick Barraza about how Silverlight fits into a world where HTML5 is finally becoming a reality. Jon asks about Adam and Rick&#8217;s opinions on the recent post on the Silverlight Team Blog aboutHerding CodeThis week on Herding Code, the guys talk to Adam Kinney and Rick Barraza about how Silverlight fits into a world where HTML5 is finally becoming a reality. Jon asks about Adam and Rick&#8217;s opinions on the recent post on the Silverlight Team Blog about the future of Silverlight Adam talks about he sees consumer [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-94-silverlight-and-html5/http://herdingcode.com/wp-content/uploads/HerdingCode-0094-Silverlight-and-HTML5.mp3Herding Code 93: Computer Errors, Home Media, and The Fall of The Roman Empirehttp://feedproxy.google.com/~r/HerdingCode/~3/XBSslZXyVhQ/
http://herdingcode.com/herding-code-93-computer-errors-home-media-and-the-fall-of-the-roman-empire/#commentsTue, 21 Sep 2010 07:03:31 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=277]]>http://herdingcode.com/herding-code-93-computer-errors-home-media-and-the-fall-of-the-roman-empire/feed/8noThis week on Herding Code, it’s story time. Have you ever fallen victim to a software glitch?&#160; Are you frustrated by those green screens which are still running social security, the IRS and the DMV?&#160; Ever dealt with a medical database? Or maybe Herding CodeThis week on Herding Code, it’s story time. Have you ever fallen victim to a software glitch?&#160; Are you frustrated by those green screens which are still running social security, the IRS and the DMV?&#160; Ever dealt with a medical database? Or maybe you owned a Zune on December 31, 2008? If so, you’ll want [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-93-computer-errors-home-media-and-the-fall-of-the-roman-empire/http://herdingcode.com/wp-content/uploads/HerdingCode-0093-Computer-Errors--Home-Media--and-The-Fall-of-The-Roman-Empire.mp3Herding Code 92: Dru Sellers and Rob Reynolds on Nuhttp://feedproxy.google.com/~r/HerdingCode/~3/eK_j57zZInM/
http://herdingcode.com/herding-code-92-dru-sellers-and-rob-reynolds-on-nu/#commentsFri, 27 Aug 2010 01:57:15 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=272]]>http://herdingcode.com/herding-code-92-dru-sellers-and-rob-reynolds-on-nu/feed/10noThis week on Herding Code, Kevin, Jon and Scott K speak with Dru Sellers and Rob Reynolds about Nu, a .NET package management system designed to solve your open source distribution/consumption issues. The guys discuss how package management is handled inHerding CodeThis week on Herding Code, Kevin, Jon and Scott K speak with Dru Sellers and Rob Reynolds about Nu, a .NET package management system designed to solve your open source distribution/consumption issues. The guys discuss how package management is handled in other communities, namely Ruby, and how the .NET world can benefit from these same [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-92-dru-sellers-and-rob-reynolds-on-nu/http://herdingcode.com/wp-content/uploads/HerdingCode-0092-Dru-Sellers-and-Rob-Reynolds-on-Nu.mp3Herding Code 91: Listener-Powered Lightning Roundhttp://feedproxy.google.com/~r/HerdingCode/~3/lkTMGjOmAFA/
http://herdingcode.com/herding-code-91-listener-powered-lightning-round/#commentsThu, 19 Aug 2010 18:18:24 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=269]]>http://herdingcode.com/herding-code-91-listener-powered-lightning-round/feed/4noThis week on Herding Code, K Scott, Jon, Kevin, and Scott K field your questions. That&#8217;s right – it’s a Listener-Powered Lightning Round! Whether you were interested in their opinions on Microsoft LightSwitch, energy drinks or how the current economHerding CodeThis week on Herding Code, K Scott, Jon, Kevin, and Scott K field your questions. That&#8217;s right – it’s a Listener-Powered Lightning Round! Whether you were interested in their opinions on Microsoft LightSwitch, energy drinks or how the current economic downturn affects quality and craftsmanship, this week’s conversation is being directed by you! Thanks, listeners, [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-91-listener-powered-lightning-round/http://herdingcode.com/wp-content/uploads/HerdingCode-0091-Listener-powered-Lightning-Round.mp3Herding Code 90: Sara Chipps on Girl Develop IT and Girls Developing Softwarehttp://feedproxy.google.com/~r/HerdingCode/~3/fSl7j3XGQVU/
http://herdingcode.com/herding-code-90-sara-chipps-on-girl-develop-it-and-girls-developing-software/#commentsThu, 12 Aug 2010 20:09:40 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=266]]>http://herdingcode.com/herding-code-90-sara-chipps-on-girl-develop-it-and-girls-developing-software/feed/13noThis week on Herding Code, the boys talk with Sara Chipps about Girl Develop IT, a comfortable place where women can learn at their own pace and not be afraid to ask &#34;stupid questions.&#34; Listen in as Sara talks about repairing the wide gender gap iHerding CodeThis week on Herding Code, the boys talk with Sara Chipps about Girl Develop IT, a comfortable place where women can learn at their own pace and not be afraid to ask &#34;stupid questions.&#34; Listen in as Sara talks about repairing the wide gender gap in development through her series of classes which help women [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-90-sara-chipps-on-girl-develop-it-and-girls-developing-software/http://herdingcode.com/wp-content/uploads/HerdingCode-0090-Sara-Chipps-on-GirlDevelopIt-and-Girls-Developing-Software.mp3Herding Code 89: Vaidy Gopalakrishnan on IIS Developer Expresshttp://feedproxy.google.com/~r/HerdingCode/~3/vk6rV_cK-3s/
http://herdingcode.com/herding-code-89-vaidy-gopalakrishnan-on-iis-developer-express/#commentsThu, 05 Aug 2010 05:04:17 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=265]]>http://herdingcode.com/herding-code-89-vaidy-gopalakrishnan-on-iis-developer-express/feed/6noThis week on Herding Code, the guys talk with Vaidy Gopalakrishnan about IIS Developer Express. The show kicks off by explaining the IIS Developer Express name.&#160; Why not just IIS Express? Vaidy provides an overview of IIS Developer Express and explaiHerding CodeThis week on Herding Code, the guys talk with Vaidy Gopalakrishnan about IIS Developer Express. The show kicks off by explaining the IIS Developer Express name.&#160; Why not just IIS Express? Vaidy provides an overview of IIS Developer Express and explains it is a lightweight, self-contained version of IIS for web developers.&#160;&#160; Vaidy speaks about [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-89-vaidy-gopalakrishnan-on-iis-developer-express/http://herdingcode.com/wp-content/uploads/HerdingCode-0089-Vaidy%20Gopalakrishnan-on-IIS-Developer-Express.mp3Herding Code 88: Julie Lerman on Entity Framework 4http://feedproxy.google.com/~r/HerdingCode/~3/8RiNnBUdyFo/
http://herdingcode.com/herding-code-88-julie-lerman-on-entity-framework-4/#commentsWed, 21 Jul 2010 00:26:42 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=264]]>http://herdingcode.com/herding-code-88-julie-lerman-on-entity-framework-4/feed/5noThis week on Herding Code, the guys talk with Microsoft MVP, MSDN Magazine columnist and Programming Entity Framework author Julie Lerman about what’s new in Entity Framework 4.&#160; The show begins with Julie providing a broad look at the new features aHerding CodeThis week on Herding Code, the guys talk with Microsoft MVP, MSDN Magazine columnist and Programming Entity Framework author Julie Lerman about what’s new in Entity Framework 4.&#160; The show begins with Julie providing a broad look at the new features and improvements around the EF designer, the run-time, POCO support and disconnected entities. Julie [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-88-julie-lerman-on-entity-framework-4/http://herdingcode.com/wp-content/uploads/HerdingCode-0088-Julie-Lerman-on-Entity-Framework-4.mp3Herding Code 87: Jeff Atwood on Area 51 and Stack Overflowhttp://feedproxy.google.com/~r/HerdingCode/~3/P0W5fig8mv4/
http://herdingcode.com/herding-code-87-jeff-atwood-on-area-51-and-stack-overflow/#commentsThu, 08 Jul 2010 22:56:55 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=263]]>http://herdingcode.com/herding-code-87-jeff-atwood-on-area-51-and-stack-overflow/feed/11noThis week on Herding Code, the guys talk with Jeff Atwood about his new Area 51 venture, the running of Stack Overflow, the community of Q &#38; A sites, and memories of the glockenspiel. Jeff walks us through the genesis of Stack Overflow and how it begoHerding CodeThis week on Herding Code, the guys talk with Jeff Atwood about his new Area 51 venture, the running of Stack Overflow, the community of Q &#38; A sites, and memories of the glockenspiel. Jeff walks us through the genesis of Stack Overflow and how it begot Server Fault, Super User, Stack Exchange and now [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-87-jeff-atwood-on-area-51-and-stack-overflow/http://herdingcode.com/wp-content/uploads/HerdingCode-0087-Jeff-Atwood-on-Area-51-and-Stack-Overflow.mp3Herding Code 86: Saqib Shaikh on Accessibility and Developing with Limited Sighthttp://feedproxy.google.com/~r/HerdingCode/~3/cdqnES34q-w/
http://herdingcode.com/herding-code-86-saqib-shaikh-on-accessibility-and-developing-with-limited-sight/#commentsSun, 27 Jun 2010 12:12:14 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=258]]>http://herdingcode.com/herding-code-86-saqib-shaikh-on-accessibility-and-developing-with-limited-sight/feed/4noWhile at Web Camps London, Jon talks to Saqib Shaikh about how he&#8217;s able to develop with limited sight and what developers can do to make our applications more accessible. Saqib talks about his role on the Bing Team, data mining and deep links. Jon Herding CodeWhile at Web Camps London, Jon talks to Saqib Shaikh about how he&#8217;s able to develop with limited sight and what developers can do to make our applications more accessible. Saqib talks about his role on the Bing Team, data mining and deep links. Jon and Saqib talk about solving problems with a little help [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-86-saqib-shaikh-on-accessibility-and-developing-with-limited-sight/http://herdingcode.com/wp-content/uploads/HerdingCode-0086-Saqib-Shaikh-on-Accessibility-and-Developing-With-Limited-Sight.mp3Herding Code 85: Clint Nelsen on Startup Weekendhttp://feedproxy.google.com/~r/HerdingCode/~3/oGaQTX4JeBU/
http://herdingcode.com/herding-code-85-clint-nelsen-on-startup-weekend/#commentsSun, 27 Jun 2010 12:11:13 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=257]]>http://herdingcode.com/herding-code-85-clint-nelsen-on-startup-weekend/feed/2noWhile at Web Camps London, Jon grabs a quick 15 minute interview with Clint Nelsen to talk about Startup Weekend . Clint gives the elevator pitch and a brief history of Startup Weekend. Jon talks about how they are incorporating Startup Weekend into Web CHerding CodeWhile at Web Camps London, Jon grabs a quick 15 minute interview with Clint Nelsen to talk about Startup Weekend . Clint gives the elevator pitch and a brief history of Startup Weekend. Jon talks about how they are incorporating Startup Weekend into Web Camps. The guys talk about project implementation. Clint talks about Startup [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-85-clint-nelsen-on-startup-weekend/http://herdingcode.com/wp-content/uploads/HerdingCode-0085-Clint-Nelsen-on-Startup-Weekend.mp3Herding Code 84: Ex-Microsoft Developer Panel with Mike Moore, Jeff Cohen, and Scott Bellwarehttp://feedproxy.google.com/~r/HerdingCode/~3/-UVUMCpgDmQ/
http://herdingcode.com/herding-code-84-ex-microsoft-developer-panel-with-mike-moore-jeff-cohen-and-scott-bellware/#commentsSun, 27 Jun 2010 12:10:48 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=256]]>http://herdingcode.com/herding-code-84-ex-microsoft-developer-panel-with-mike-moore-jeff-cohen-and-scott-bellware/feed/37noThis week on Herding Code, the guys talk to Jeff Cohen, Mike Moore, and Scott Bellware about why and how they&#8217;ve moved away from Microsoft development and into the Ruby community. K Scott asks the guests about why they switched. Jeff talks about howHerding CodeThis week on Herding Code, the guys talk to Jeff Cohen, Mike Moore, and Scott Bellware about why and how they&#8217;ve moved away from Microsoft development and into the Ruby community. K Scott asks the guests about why they switched. Jeff talks about how his switch from desktop development on Windows to Rails development started [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-84-ex-microsoft-developer-panel-with-mike-moore-jeff-cohen-and-scott-bellware/http://herdingcode.com/wp-content/uploads/HerdingCode-0084-Ex-Microsoft-Developer-Panel-with-Mike-Moore-Jeff-Cohen-and-Scott-Bellware.mp3Herding Code 83: Ayende Rahien on RavenDBhttp://feedproxy.google.com/~r/HerdingCode/~3/pj0MCjCc0Yo/
http://herdingcode.com/herding-code-83-ayende-rahien-on-ravendb/#commentsSun, 13 Jun 2010 00:29:56 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=255]]>http://herdingcode.com/herding-code-83-ayende-rahien-on-ravendb/feed/6noThis week on Herding Code, the guys talk with Ayende Rahien (a.k.a. Oren Eini) about RavenDB, a new Open Source (with a commercial option) document database for the .NET/Windows platform. The shows starts with a general definition of document databases.&#Herding CodeThis week on Herding Code, the guys talk with Ayende Rahien (a.k.a. Oren Eini) about RavenDB, a new Open Source (with a commercial option) document database for the .NET/Windows platform. The shows starts with a general definition of document databases.&#160; Ayende then contrasts RavenDB with two other popular document databases, Mongo and CouchDB, and comments [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-83-ayende-rahien-on-ravendb/http://herdingcode.com/wp-content/uploads/HerdingCode-0083-Ayende-Rahien-on-RavenDB.mp3Herding Code 82: Cory Foy and Will Green Compare .NET and Ruby Developmenthttp://feedproxy.google.com/~r/HerdingCode/~3/LLfSTXTMy-w/
http://herdingcode.com/herding-code-82-cory-foy-and-will-green-compare-net-and-ruby-development/#commentsSun, 06 Jun 2010 22:37:59 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=254]]>http://herdingcode.com/herding-code-82-cory-foy-and-will-green-compare-net-and-ruby-development/feed/9noThis week on Herding Code, Cory Foy and Will Green join the guys to discuss general differences between .NET and Ruby development approaches. Is the grass always greener on the other side? Listen in on this week&#8217;s talk about how languages, frameworkHerding CodeThis week on Herding Code, Cory Foy and Will Green join the guys to discuss general differences between .NET and Ruby development approaches. Is the grass always greener on the other side? Listen in on this week&#8217;s talk about how languages, frameworks, tools and cultures shape the way we implement .NET and Ruby solutions and [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-82-cory-foy-and-will-green-compare-net-and-ruby-development/http://herdingcode.com/wp-content/uploads/HerdingCode-0082-Cory-Foy-and-Will-Green-Compare-NET-and-Ruby-Development.mp3Herding Code 81: Simplicity, balance, and focus in teaching software developmenthttp://feedproxy.google.com/~r/HerdingCode/~3/Bp5SSBh_IhQ/
http://herdingcode.com/herding-code-81-simplicity-balance-and-focus-in-teaching-software-development/#commentsTue, 25 May 2010 07:38:19 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=253]]>http://herdingcode.com/herding-code-81-simplicity-balance-and-focus-in-teaching-software-development/feed/14noThis week on Herding Code, the guys discuss compare notes on how to teach software development topics. Is hands-on instruction key? How much should you simplify to focus on mechanics? How do you teach, and how do you like to learn? Jon talks about his impHerding CodeThis week on Herding Code, the guys discuss compare notes on how to teach software development topics. Is hands-on instruction key? How much should you simplify to focus on mechanics? How do you teach, and how do you like to learn? Jon talks about his impressions on the effectiveness of hands-on learning at Web Camp [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-81-simplicity-balance-and-focus-in-teaching-software-development/http://herdingcode.com/wp-content/uploads/HerdingCode-0081-Simplicity-balance-and-focus-in-teaching-software-development.mp3Herding Code 80: RxJS with Jeffrey van Gogh and Matt Podwysockihttp://feedproxy.google.com/~r/HerdingCode/~3/UbTaR9AF5xU/
http://herdingcode.com/herding-code-80-rxjs-with-jeffrey-van-gogh-and-matt-podwysocki/#commentsWed, 19 May 2010 01:10:27 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=252]]>http://herdingcode.com/herding-code-80-rxjs-with-jeffrey-van-gogh-and-matt-podwysocki/feed/2noThis week on Herding Code, the guys speak with Jeffrey van Gogh and Matt Podwysocki about the Reactive Extensions for Javascript. Matt talks about how he&#8217;s been involved with RxJS. Jeffrey talks about how RxJS and Reactive Extensions came out of theHerding CodeThis week on Herding Code, the guys speak with Jeffrey van Gogh and Matt Podwysocki about the Reactive Extensions for Javascript. Matt talks about how he&#8217;s been involved with RxJS. Jeffrey talks about how RxJS and Reactive Extensions came out of the the Volta project. Matt talks about how RxJS simplifies the callback model in [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-80-rxjs-with-jeffrey-van-gogh-and-matt-podwysocki/http://herdingcode.com/wp-content/uploads/HerdingCode-0080-RxJS-with-Jeffrey-van-Gogh-and-Matt-Podwysocki.mp3Herding Code 79: JSConf Recap with Chris Williams, Rey Bango and Matt Podwysockihttp://feedproxy.google.com/~r/HerdingCode/~3/y_zJCFXODjs/
http://herdingcode.com/herding-code-79-jsconf-recap-with-chris-williams-rey-bango-and-matt-podwysocki/#commentsSun, 02 May 2010 07:47:12 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=251]]>http://herdingcode.com/herding-code-79-jsconf-recap-with-chris-williams-rey-bango-and-matt-podwysocki/feed/3noThis week on Herding Code, the guys speak with Chris Williams, Rey Bango and Matt Podwysocki about this year&#8217;s JSConf. Chris begins the show with a conference overview which will leave you chomping at the bit for JSConf 2011 registration to open. HaHerding CodeThis week on Herding Code, the guys speak with Chris Williams, Rey Bango and Matt Podwysocki about this year&#8217;s JSConf. Chris begins the show with a conference overview which will leave you chomping at the bit for JSConf 2011 registration to open. Hackers&#8217; Lounge. Multiple tracks. One killer speaker list. Hyper-caffeinated, hyper-intoxicated privates! Salmagundi. And [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-79-jsconf-recap-with-chris-williams-rey-bango-and-matt-podwysocki/http://herdingcode.com/wp-content/uploads/HerdingCode-0079-JSConf-Recap-with-Chris-Williams-Rey-Bango-and-Matt-Podwysocki.mp3Herding Code 78: Ruby on Rails, View Engines, Web Security, Section 3.3.1 and Visual Studio 2010 with Rob Coneryhttp://feedproxy.google.com/~r/HerdingCode/~3/lLQSXscKL1E/
http://herdingcode.com/herding-code-78-ruby-on-rails-view-engines-web-security-section-3-3-1-and-visual-studio-2010-with-rob-conery/#commentsTue, 20 Apr 2010 21:36:37 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=247]]>http://herdingcode.com/herding-code-78-ruby-on-rails-view-engines-web-security-section-3-3-1-and-visual-studio-2010-with-rob-conery/feed/4noThis week on Herding Code, Jon, Kevin, Scott K and Rob Conery discuss Ruby on Rails, using dynamic languages to write views, web security, advanced javascript techniques, recent Twitter news, Section 3.3.1 and the official release of Visual Studio 2010. THerding CodeThis week on Herding Code, Jon, Kevin, Scott K and Rob Conery discuss Ruby on Rails, using dynamic languages to write views, web security, advanced javascript techniques, recent Twitter news, Section 3.3.1 and the official release of Visual Studio 2010. The show begins with talk of Kevin&#8217;s recent dabbling into Ruby on Rails. The guys [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-78-ruby-on-rails-view-engines-web-security-section-3-3-1-and-visual-studio-2010-with-rob-conery/http://herdingcode.com/wp-content/uploads/HerdingCode-0078-Ruby-on-Rails-View-Engines-Web-Security-etc-with-Rob-Conery.mp3Herding Code 77: Eric Hexter on MvcConf, C4MVC, and MvcContribhttp://feedproxy.google.com/~r/HerdingCode/~3/wVSMe035ltM/
http://herdingcode.com/herding-code-77-eric-hexter-on-mvcconf-c4mvc-and-mvccontrib/#commentsMon, 05 Apr 2010 18:12:36 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=245]]>http://herdingcode.com/herding-code-77-eric-hexter-on-mvcconf-c4mvc-and-mvccontrib/feed/2noThis week on Herding Code, Jon, Kevin and Scott K discuss MvcConf, C4MVC and MvcContrib with, open source and community extraordinaire, Eric Hexter.&#160; Eric talks about his role as consultant and Director of Open Source at Headspring. The guys walk thrHerding CodeThis week on Herding Code, Jon, Kevin and Scott K discuss MvcConf, C4MVC and MvcContrib with, open source and community extraordinaire, Eric Hexter.&#160; Eric talks about his role as consultant and Director of Open Source at Headspring. The guys walk through Hexter&#8217;s impressive resume.&#160;&#160; Eric is the co-founder of MVCContrib, he established the Community for [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-77-eric-hexter-on-mvcconf-c4mvc-and-mvccontrib/http://herdingcode.com/wp-content/uploads/HerdingCode-0077-Eric-Hexter-on-MvcConf-C4MVC-and-MvcContrib.mp3Herding Code 76: John Sheehan on RestSharphttp://feedproxy.google.com/~r/HerdingCode/~3/RFMehM88aQk/
http://herdingcode.com/herding-code-76-john-sheehan-on-restsharp/#commentsFri, 02 Apr 2010 03:43:57 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=244]]>http://herdingcode.com/herding-code-76-john-sheehan-on-restsharp/feed/9noThis week on Herding Code, John Sheehan joins the cast for a conversation about his open source project, RestSharp. The gang dives into REST and .NET open source. Makes sense, right? And the show wraps with talk of OData and a MIX10-inspired Lightning RouHerding CodeThis week on Herding Code, John Sheehan joins the cast for a conversation about his open source project, RestSharp. The gang dives into REST and .NET open source. Makes sense, right? And the show wraps with talk of OData and a MIX10-inspired Lightning Round. John talks about his exciting new evangelist job at Twilio. Twillo [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-76-john-sheehan-on-restsharp/http://herdingcode.com/wp-content/uploads/HerdingCode-0076-John-Sheehan-on-RestSharp.mp3Herding Code 75: Barry Dorrans on Developer Securityhttp://feedproxy.google.com/~r/HerdingCode/~3/2UMLXG0VcjY/
http://herdingcode.com/herding-code-75-barry-dorrans-on-developer-security/#commentsFri, 05 Mar 2010 23:08:49 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=243]]>http://herdingcode.com/herding-code-75-barry-dorrans-on-developer-security/feed/4noThis week on Herding Code, Barry Dorrans educates, entertains, insults and scares us with his expert commentary on application security, threat modeling, analysis tools and common attacks.&#160; You&#8217;ve been waiting for this show.&#160; I just know iHerding CodeThis week on Herding Code, Barry Dorrans educates, entertains, insults and scares us with his expert commentary on application security, threat modeling, analysis tools and common attacks.&#160; You&#8217;ve been waiting for this show.&#160; I just know it.&#160; Listen in as Barry talks security, pimps his new book, and comments on his new position at Microsoft, [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-75-barry-dorrans-on-developer-security/http://herdingcode.com/wp-content/uploads/HerdingCode-0075-Barry-Dorrans-on-Developer-Security.mp3Herding Code 74: Javier Lozano on MVC Turbine and Composed Applicationshttp://feedproxy.google.com/~r/HerdingCode/~3/PzzQm8ILN-s/
http://herdingcode.com/herding-code-74-javier-lozano-on-mvc-turbine-and-composed-applications/#commentsTue, 23 Feb 2010 01:27:48 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=240]]>http://herdingcode.com/herding-code-74-javier-lozano-on-mvc-turbine-and-composed-applications/feed/5noThis week on Herding Code, K Scott leads a conversation with ASP.NET Insider and MVP, Javier Lozano, about his open source project, MVC Turbine, and extensibility and composition with ASP.NET MVC. Javier provides a twitter-like overview of his open sourceHerding CodeThis week on Herding Code, K Scott leads a conversation with ASP.NET Insider and MVP, Javier Lozano, about his open source project, MVC Turbine, and extensibility and composition with ASP.NET MVC. Javier provides a twitter-like overview of his open source project: &#8220;MVC Turbine helps you build modular applications on top of ASP.NET MVC and that&#8217;s [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-74-javier-lozano-on-mvc-turbine-and-composed-applications/http://herdingcode.com/wp-content/uploads/HerdingCode-0074-Javier-Lozano-on-MVC-Turbine-and-Composed-Applications.mp3Herding Code 73: Daniel Plaisted on Model-Based Testing in Action on the MEF Teamhttp://feedproxy.google.com/~r/HerdingCode/~3/IaBJJ0KMrT8/
http://herdingcode.com/herding-code-73-daniel-plaisted-on-model-based-testing-in-action-on-the-mef-team/#commentsSun, 14 Feb 2010 21:02:57 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=239]]>http://herdingcode.com/herding-code-73-daniel-plaisted-on-model-based-testing-in-action-on-the-mef-team/feed/7noThis week on Herding Code, Jon leads a discussion with Daniel Plaisted about Model-Based Testing and the progressive practices of the MEF team. Daniel speaks of the primary development roles at Microsoft and how the MEF team addresses testing concerns. GuHerding CodeThis week on Herding Code, Jon leads a discussion with Daniel Plaisted about Model-Based Testing and the progressive practices of the MEF team. Daniel speaks of the primary development roles at Microsoft and how the MEF team addresses testing concerns. Guess what.&#160; Developers write tests, too. Daniel talks about Model-Based Testing and validation of transitions [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-73-daniel-plaisted-on-model-based-testing-in-action-on-the-mef-team/http://herdingcode.com/wp-content/uploads/HerdingCode-0073-Daniel-Plaisted-on-Model-Based-Testing-in-Action-on-the-MEF-Team.mp3Herding Code 72: Questioning Uncle Bob, Clojure Magic, Mercurial Support at Codeplex, Thoughts About the iPad and Handerpantshttp://feedproxy.google.com/~r/HerdingCode/~3/aAKxDUZNoYc/
http://herdingcode.com/herding-code-72-questioning-uncle-bob-clojure-magic-mercurial-support-at-codeplex-thoughts-about-the-ipad-and-handerpants/#commentsSun, 07 Feb 2010 01:26:33 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=238]]>http://herdingcode.com/herding-code-72-questioning-uncle-bob-clojure-magic-mercurial-support-at-codeplex-thoughts-about-the-ipad-and-handerpants/feed/5noThis week on Herding Code, the gang discusses Uncle Bob&#8217;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 ScotHerding CodeThis week on Herding Code, the gang discusses Uncle Bob&#8217;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 [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-72-questioning-uncle-bob-clojure-magic-mercurial-support-at-codeplex-thoughts-about-the-ipad-and-handerpants/http://herdingcode.com/wp-content/uploads/HerdingCode-0072-Bob-Clojure-Mercurial-iPad-Handerpants.mp3Herding Code 71: James Avery and Rob Conery on NoSQL and a bunch of other stuffhttp://feedproxy.google.com/~r/HerdingCode/~3/g1WUidLa8CI/
http://herdingcode.com/herding-code-71-james-avery-and-rob-conery-on-nosql-and-a-bunch-of-other-stuff/#commentsMon, 01 Feb 2010 07:30:54 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=234]]>http://herdingcode.com/herding-code-71-james-avery-and-rob-conery-on-nosql-and-a-bunch-of-other-stuff/feed/40noThis 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 Herding CodeThis 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.&#160; James [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-71-james-avery-and-rob-conery-on-nosql-and-a-bunch-of-other-stuff/http://herdingcode.com/wp-content/uploads/HerdingCode-0071-James-Avery-and-Rob-Conery-on-NoSQL-and-a-bunch-of-other-stuff.mp3Herding Code 70: Sean Chambers on Migrations in .NEThttp://feedproxy.google.com/~r/HerdingCode/~3/rzDbWYxcdwA/
http://herdingcode.com/herding-code-70-sean-chambers-on-migrations-in-net/#commentsMon, 25 Jan 2010 07:06:30 +0000jon_galloway@yahoo.com (Herding Code)http://herdingcode.com/?p=233]]>http://herdingcode.com/herding-code-70-sean-chambers-on-migrations-in-net/feed/7noThis 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 diHerding CodeThis 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&#8217;d start using Fluent Migrator in a project Sean talks about [&#8230;]dotnet,asp,net,programming,software,web,developmenthttp://herdingcode.com/herding-code-70-sean-chambers-on-migrations-in-net/http://herdingcode.com/wp-content/uploads/HerdingCode-0070-Sean-Chambers-on-Migrations-in-dotNET.mp3Creative Commons (by-nc-sa)Herding CodenonadultA weekly discussion on software development