Herding Code 114: Trevor Burnham on CoffeeScript

This episode of Herding Code the guys talk to Trevor Burnham about Coffeescript, “a little language that compiles into JavaScript.”

  • 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 like CoffeeScript because they hate Javascript. Trevor talks about the strong reactions people had to the addition of CoffeeScript support for Rails, and how CoffeeScript is not a dumbed down Javascript, it’s really just a cleaner syntax for exposing the functional power in the that underlies Javascript.
  • Scott K talks about the time and political pressures that shaped Javascript, in some ways hiding a powerful language behind a mandated Java-like syntax.
  • Kevin asks about the language inspirations behind CoffeeScript. Trevor talks about how it’s drawn inspiration from Ruby, Python, Haskell, and Erlang.
  • Jon asks about how CoffeeScript support is technically added to Rails – where is the compilation happening? Trevor explains¬† how the coffee-script and execjs gems select the Javascript runtime.
  • Jon asks a question from Twitter by @darrencauthon about using CoffeeScript on Windows and .NET.
  • Scott K asks about other languages that compile down to Javascript, and what will happen when Javascript as a language. Trevor talks about Objective-J and Traceur.
  • Kevin asks about how you can debug CoffeeScript code.
  • Jon talks about the Try CoffeeScript interactive compiler on the CoffeeScript.org site and asks resources for learning more about CoffeeScript.
  • Scott K asks if CoffeeScript leverages more advanced Javascript features if they’re available, and if there are language facilities for extending the language. Trevor talks about how CoffeeScript is just Javascript, so you can leverage the extensibility features that are already available in Javascript.
  • Kevin drops back to asking some basics: why is CoffeeScript so special? What’s with the new function syntax?
  • Jon talks about how nice it is to just delete parentheses, braces, and semicolons. Trevor talks about how in general CoffeeScript code is 2/3 as verbose as the equivalent Javascript code.
  • K Scott asks about how CoffeeScript simplifies scope issues, and Trevor talks about how CoffeeScript is very opinionated about scoping.
  • Scott K asks about type coercion. Trevor mentions the wtfjs.com site, talking about how Javascript’s type coercion can be surprising at times.
  • Scott K asks about how DOM manipulation is handled. Trever explains that CoffeeScript works great with jQuery, and any other Javascript library available.
  • Jon asks if it’s possible to do CoffeeScript compilation in the browser, and asks if that’s possible / practical for standard applications.
  • Jon mentions the SassAndCoffee project for .NET.
  • Jon asks if there are any Javascript to CoffeeScript converters. Trevor says he doubts there will ever be a good one, but after the show sent Jon a link to js2coffee (link below).
  • Scott K asks about JSLint support. Trevor talks about how CoffeeScript works with JavaScript Lint.
  • Kevin asks if CoffeeScript has been used as a DSL, and Trevor mentions CoffeeKup.
  • Jon asks what happens if CoffeeScript hits a compiler error.
  • Kevin asks about split between front-end vs. back-end use for CoffeeScript.
  • Jon some a question from Christopher Deutsch (@cdeutsch) about how to sell CoffeeScript to a team – is this today’s flavor, tomorrow’s legacy headache?
  • Kevin talks about how he likes the => function, and Jon mentions how he likes the @ operator as well.
  • Kevin asks about the object orientation features in CoffeeScript, and Trevor mentions how the class keyword is used.
  • Jon says the he sees a lot of similarity between CoffeeScript and SASS. Trevor talks about how both reduce repetitions.
  • Jon asks if jQuery could take advantage of CoffeeScript.
  • Trevor mentions how you can buy his book and mentions a recent article he published in PragPub.
  • Trevor’s upcoming talks: O’Reilly Web 2.0 Expo in NYC in October and Oredev in Sweden in November.

Show Links:

Download / Listen:

Herding Code 114: Trevor Burnham on CoffeeScript

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0114-Trevor-Burnham-on-CoffeeScript.mp3]

Herding Code 113: Mark Russinovich on Zero Day and Computer Security

This 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 a lot of damage, and it got him thinking about what a virus attack motivated by a terrorist agenda could achieve.
  • K Scott talks about the shift to financial motivation in malware, and Mark mentions the book Zero Day Threat which discusses financially motivated malware.
  • Kevin asks Mark about his motivation for writing fiction in general, and how big a shift it was from technical writing.
  • K Scott talks about how he read the book while travelling, and how it did a pretty good job of terrifying him.
  • Mark mentions how the Stuxnet virus validated some of the scenarios he’d been using in the book, how sophisticated Stuxnet is, and how that level of sophistication in malware authoring is available for hire, cheaply.
  • Scott K asks about the threat that malware like Stuxnet could come back on the entity that released it, and Mark mentions that collateral damage is definitely a factor, but that the Stuxnet authors were apparently unconcerned by it.
  • We take a question from listener @mattd78: "what does mark think of Linux and has he ever analyzed the source code to compare it to windows"
  • Scott K asks how the malware targets have changed with the explosion of mobile devices.
  • K Scott asks Mark about how he uses Sysinternals tools when studying malware.
  • Jon asks about how live.sysinternals.com works to allow running the tools without an explicit download / install step.
  • Jon asks Mark whether he does all his testing in virtual machines or uses physical test machines.
  • K Scott asks Mark about Rootkit Revealer – how it got started, and how Mark discovered the Sony rootkit. Mark tells an interesting story about a cat and mouse game he was engaged with against a rootkit writer who went by the name of Holy Father, who kept coming up with ways to hide from Rootkit Revealer.
  • Mark talks about the interview he did on NPR about the Sony rootkit fiasco.
  • Kevin thanks Mark, on the behalf of Windows developers everywhere, for the Sysinternals tools. When Kevin tells Mark that they’ve saved his butt over and over, Mark says he’s heard that feedback so many times that they used "save your butt" on advertising over the years.
  • Kevin asks Mark if working at Microsoft has made things easier. Mark says not so much – it’s often quicker for him to disassemble and use dynamic analysis than to look at the source code.
  • Jon asks if Mark has any security feedback for .NET developers. Mark says that if you’re purely in managed code, you need to focus on logic problems like SQL injection.
  • K Scott asks if Mark has anything he’d like to promote, and Mark talks about the upcoming book Windows Sysinternals Administrator’s Reference.
  • Jon asks Mark what’s the point of running antivirus software if it’s not going to be 100% effective.
  • Kevin asks Mark if he’s working on a sequel to Zero Day. He is!

Show Links:

Download / Listen:

Herding Code 113: Mark Russinovich on Zero Day and Computer Security

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0113-Mark-Russinovich-on-Zero-Day-and-Computer-Security.mp3]

Herding Code 112: Josh Arnold and Jeremy Miller on FubuMVC

This episode of Herding Code the guys talk to Josh Arnold and Jeremy Miller about what’s new with FubuMVC.

  • Jeremy Miller explains why FubuMVC "deserves to exist" 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 FubuMVC is working.
  • Jon asks about how behavior chains work, and how they relate to routes. Jeremy and Josh explain how behaviors work and how they allow you to extend policies and conventions when you need to.
  • Jon asks how routes work, and Jeremy explains how they can be configured at a few different levels.
  • Jeremy talks about how FubuMVC is built to leverage static features in .NET through strong typing and leveraging the type system as much as is possible.
  • Josh and Jeremy talk about the advanced diagnostics which have recently been added to FubuMVC.
  • Jon asks how FubuMVC diagnostics compare to Glimpse.
  • Jeremy talks about the new packaging system, and how it can be used to apply complex and extensive changes just by dropping them into your application.
  • Scott K asks how the new packaging system relates to NuGet and OpenWrap, and Jeremy explains how the two are complimentary.
  • Jeremy and Josh talk about how their complex requirements in their active projects have driven FubuMVC’s features.
  • There’s a discussion of view engines – what’s supported, what they’re currently using in their projects.
  • Jeremy talks about how FubuMVC uses HTML conventions, how HtmlTags work, and how you can use jQuery-like chaining to reuse conventions.
  • Jeremy talks about how authorization works with the behavior chains. Scott K asks if this can be applied at the action level rather than at the UI level, and Jeremy explains the endpoint service.
  • We wrap up with a mention of Pablo’s Fiesta, this Sept 30 – Oct 2 in Austin, TX.

Show Links:

Download / Listen:

Herding Code 112: Josh Arnold and Jeremy Miller on FubuMVC

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0112-Josh-Arnold-and-Jeremy-Miller-on-FubuMVC.mp3]

Herding Code 111: John Papa on the Open Source Fest at MIX11

This 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 event.
  • There’s a discussion of the Glimpse project. Scott asks what it is, and Jon tries to give the sales pitch for it.
  • John talks about how many of these really cool project are hampered by marketing mistakes like poor project pages and unmemorable project names.
  • John mentions some of the areas for improvement – less background noise, bigger space. Some of that was due to overwhelming response – stopped counting at 500 attendees, ran out of food 3 times, etc.
  • Scott asks if a next step should be an open source conference for .NET. Jon mentions that there are some benefits to piggybacking with a "real" conference so the bosses will pay for us to go.
  • Scott asks if there’s any point to having sessions at a conference, since the real value at the conferences is in the networking and conversation. There’s a discussion about how an open space is cool, but something of this scale isn’t likely to self-organize.
  • Scott talks about how the ALT.NET Seattle event in Seattle is including open source hacking, proposing that larger conferences do this as well.
  • John mentions the Twitter list he’s created for all Open Source Fest participants.
  • We take a question from Tony Champion, asking what John would do differently in future events.
  • John and Jon discuss the difference between consuming and participating in a conference.
  • John pimps the Silverlight MIXer event he runs at MIX.
  • Jon asks if there should be venture capital folks at future open source fests. John said said that it was important to keep clear of any ulterior motives at this first event, but it’s possible that may happen in the future.
  • John and Jon talk about the difference between "official" events and sponsorship driven events.

Show Links:

Download / Listen:

Herding Code 11: John Papa on the Open Source Fest at MIX11

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0111-John-Papa-on-Open-Source-Fest.mp3]

Herding Code 110: Geoff Dalgas and Jarrod Dixon take us behind the scenes at StackExchange

This 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’s fast paced world of StackExchanges and gold plated Lamborghinis.

Note: We recorded in quietest spot we could find – there’s some background noise, but it’s worth it.

  • Geoff and Jarrod talk about their past job experiences, including building (gasp) 911 software with Visual Basic 6.
  • Jon asks how things worked at the beginning – did people work on separate areas? Was there a plan?
  • How do you share data when developing with a remote team? Geoff talks about how they started with the Database Project type, but moved to SQL scripts, ending with a migration tool. Jon gets to say “idempotent”.
  • Geoff and Jarrod talk about how they’ve moved form Subversion to Mercurial.
  • Jon asks how code moves from local development to a production server. Geoff talks about the build and deployment process.
  • Kevin asks how much the process has changed over the years.
  • Geoff talks about how features first hit Meta, then the “others” tier (everything but StackOverflow), then to StackOverflow.
  • We talk about how they’re using Redis, including the newly open sourced redis-sharp library, and some of the tricks that are used to keep the cache performant, including gzipping cached data.
  • We talk about how they do performance tuning, how costly queries are tracked, etc.
  • Geoff talks about how search was moved from SQL Server Full Text indexing to Lucene.NET in order to move the load off the database server.
  • Jon asks about how they’ve integrated the ASP.NET stack with open source front-end and utility software.
  • Jon asks how the the IT and collaboration works with the growing distributed team.
  • Jon asks how bugs are tracked, and the talk about how they use the Meta sites for tracking issues. Jon is sold on the concept and asks if he can install a local instance of Meta for his own bug tracking concepts, but the guys just laugh at him.
  • Jon asks for more specific on the performance monitoring systems the team uses, and Geoff gives him the rundown.
  • Jon asks how things have changed as the team has grown and buckets of funding money keep rolling in.
  • Geoff explains how they handle multi-tenancy, now that they’re hosting lots of sites. Jon is amazed to hear that it’s just one big application which switches data structures and display based on the url.
  • Geoff mentions that they’re using Less to keep the CSS sane.
  • Kevin asks how much work is involved in spinning up a new site. Geoff explains the tool they’ve got set up to generate the scripts to add a new StackExchange site.
  • Jon asks about MVC 3 is working for them. They like the Razor.
  • Jon asks what annoys them most about ASP.NET MVC. After some thought, they lament that the routes are defined separately from the actions, but mostly it’s just a lot of love for MVC.

Show Links:

Download / Listen:

Herding Code 110: Geoff Dalgas and Jarrod Dixon take us behind the scenes at StackExchange

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0110-Geoff-Dalgas-and-Jarrod-Dixon-on-StackExchange.mp3]