The guys talk to Matt Wrock about Matt’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 – Matt Wrock on RequestReduce, Chocolatey and BoxStarter [audio://herdingcode.com/wp-content/uploads/HerdingCode-0153-Matt-Wrock.mp3]
- Matt explains how he got started with RequestReduce – a site optimization system that’s been designed as a plug-and-play system that can work well with legacy sites without any code changes.
- Matt explains how RequestReduce fits in with other systems like the ASP.NET Web Optimization system and Casette.
- K. Scott asks Matt how it works and how a user would configure it. Matt explains how it can be installed via NuGet, and how it uses a Response Filter to process the output.
- Matt explains how everything’s handled via a queue on a background thread, so there’s no performance impact on initial requests.
- Matt gives a shoutout to AjaxMin and the speed at which he and Ron Logan have been able to turn around fixes and improvements.
- Matt explains the complications involved in creating image sprites, and why he only sprites images with a defined width.
- Matt explains how both quantization and compression can dramatically affect image size.
- Matt explains why he doesn’t sprite images when he can’t determine the image width.
- Scott K talks about his previous job and how they’d looked at converting all images to Base64. Matt says that he’s looked at that, but decided it’s not something you’d necessarily want to apply to all images.
- Jon asks Matt to explain CSS spriting in more detail. Jon says they use sprites on the ASP.NET site, and Matt says the ASP.NET site is one of his test case sites.
- K. Scott asks Matt why the code is calculating CSS specificity scores.
- K. Scott asks about what the results have been. Matt says it varies by site, but on one large site they’ve seen a 33% improvement.
- Jon mentions that RequestReduce also handles Less and CoffeeScript. Matt says he’s making use of SassAndCoffee.
- BoxStarter and Chocolatey
- Matt talks about how he got started with BoxStarter – he was tired of wasting time building development boxes, and he didn’t think VMs were a good solution.
- Matt thought Chocolatey solved some of the program installation issues, but didn’t handle common customization scenarios like Windows settings, file associations, taskbar links, path, etc.
- Chocolatey handled some of the things Matt wanted, but not everything. He started by customizing and wrapping Chocolatey, but decided it would be better to contribute directly to Chocolatey.
- BuildStarter can work with either a local BuildPackages folder or a custom MyGet feed.
- Matt says he might like to use ClickOnce in the future.
- Matt talks about how he’d like to have a web based shopping list approach, where you could just click off all the things you wanted and it would set up a package for you – kind of like like Ninite, but a lot more comprehensive.
- Jon says he was happy to see a recent Chocolatey commit that can turn Windows features on and off.
- Matt explains how he’s been coordinating with Rob Reynolds to decide what he should contribute directly to Chocolatey and what should be separate Chocolatey packages.
- Jon says he didn’t get Chocolatey right away, but what sold him on it was the dependency management. Matt explains how this has come in handy in his work in the TFS dev team.
- Jon asks Matt about his work on new role on the TFS team. Matt says he’s working on the REST API for work item tracking and would love any feedback on work item tracking.