Lazycoder

14Nov/11Off

Herding Code 126: Jeff Atwood on the overlap of Video Games and Learning

On 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 talk about how video games teach a skill which is valuable in programming – the ability to accept and work with arbitrary rules.
  • Jeff talks about the crappy games he has created.
  • The guys talk about how Rocksmith can teach you how to actually play a real guitar. The guys compare Rocksmith to Rock Band and Guitar Hero, and Jeff talks about how really learning guitar skills takes work, and Rocksmith and Rock Band take two very different approaches.
  • There’s a discussion of how well Rocksmith senses what you’re playing, and how musical performances are by nature interpretive and imprecise.
  • The guys talk about how video games can lead to real world knowledge and skills.
  • Jeff brings up the concept of gamification and how it can be used to get people to learn something worthwhile. He discusses the balance of fun and learning, and the importance of keeping learning fun.
  • Jeff talks about Khan Academy, and how it leverages gamification.
  • Jon talks about Codecademy – free, interactive programming classes with some game-like features.
  • K. Scott talks about the Roblox game and using Roblox Studio to do some basic programming.
  • Jon talks about the World of Goo, and how he’d helped his own daughters build their own levels in World of Goo.
  • Jeff talks about incidental learning and how games can encourage it.
  • Jeff says programmers need more points of reference than XKCD to explain things.
  • Jeff and Kevin talks about the power of gamification as a psychology hack, and how it can be used for good and evil.
  • Kevin brings up the idea of addiction to Stack Overflow. Jeff talks about the ways that Stack Overflow tries to prevent burnout of contributors.
  • Jeff talks about the balance of effort and reward, and how Stack Overflow sometimes over-rewards people for minimal work on their part.
  • The guys talk about video games that encourage teamwork, such as World of Warcraft, Battlefield 3, and Half-Life.
  • The guys discuss Microsoft Kinect and compare it to the Nintendo Wii. There’s a discussion of the controller responsiveness and selection gestures for these systems, and the importance of writing a game that’s native to these new platforms as opposed to simple ports.
  • Jon takes from questions from Twitter about Jeff’s favorite retro games, and Jeff says video game nostalgia is overrated – he’s really excited about the new games like Battlefield 3.
  • Kevin asks about MAME and home arcades. Jeff says it was interesting to have build two home arcade machines, but it’s not something he’d want to spend anymore time on.
  • Jon talks about Braid, and the hidden insanely tough extra game of finding all 8 stars.
  • The guys congratulate Jeff on his recent news that he’s expecting twins, and he signs off to play Battlefield 3.

Show Links:

Download / Listen:

Herding Code 126: Jeff Atwood on Video Games and Gamification

This week’s show notes were typed up by @rossfuhrman – Thanks!!!

4Nov/11Off

Herding Code 125: Truffler with Joel Abrahamsson, Marcus Granstrom and Henrik Lindstrom

On 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 REST API and can be called from several languages (.NET, Java, js). How to send queries, where is the data?
  • Joel explains they’re using Elastic search, which indexes JSON documents; you push data to it in the form of JSON, then query it using JSON. The data is stored, but the point is to build awesome search.
  • Marcus points out you can get a Truffler in a box, where you get a server to your house so you can run it inside your own internet if you like.
  • K. Scott mentions the examples using the C# API on the Truffler home page. Do you convert that to a URL for your service?
  • Joel talks about using Elastic Search and the bits they’ve added on top of it, including the various integrations or client APIs they are making available.
  • K. Scott says he ran through their example; was able to just bang his way through it without having to dig into the documentation too much.
  • Joel: Instead of bringing your data to the search engine, we’re trying to bring the search engine to you, so you can query it in a way that feels natural in C#. That’s the whole point of Truffler.
  • Jon Asks about being able to search for a keyword and also have a geographical search and how that works.
  • Joel says they search for the keyword and then filter by coordinates, which does not affect relevance. Can specify that matches for the keyword have double the relevance of non-matches.
  • Talking about the ability to modify relevance and rank criteria higher and lower.
  • K. Scott asks if they contribute any patches or make any patches or augment anything to the technology they are building on?
  • Henrik has gone through the elastic search source code quite a few times. Found bugs, but not trying to augment it, just trying to find a way to package it in a nice way.
  • Jon asks about the document search capabilities (pdf, xml, word, etc) – part of elastic search? Or did you have to do some of that work?
  • Marcus replied that most features are basically from the elastic search core functions. The mods we have are just bug fixes. Not exposing any new functionality, just providing some features that are a little different from the core project.
  • They’re trying to make search easier so you don’t have to analyze and then index your data; they’ll do that for you.
  • Jon asks about highlighted words and bacon. Joel says it’s configurable. Can ask for one big fragment with highlighted keywords, or several small fragments, comes back as a separate fields in the JSON document. To make it as easy as possible, they are using LINQ syntax. Example: Select.As Highlighted()
  • Discussing how to add search to your website/blog.
  • They’re using JSON.NET. Discusses client class and using extension methods.
  • They discuss how to do a Google-type search – typing in textbox, brings results.
  • K. Scott: Any support for Word and PDF? Joel: Yes, it’s out of the box with Elastic Search; handles all kinds of formats.
  • K. Scott asks what the biggest challenge is. Joel: Everything. Branding, building the product, figuring out the market.
  • K. Scott says this is actually a product and a business now; was that new for the three of you? Joel says yes; were forced into it when working for a customer together who needed to search and query data not stored in a normalized database. Was the initial seed idea of Truffler.
  • K. Scott asks about node. Henrik said they use node as a reverse proxy to do authentication for Elastic Search.
  • They know what it can do; they can control how it’s used. It’s scary and exciting to see how people are using it.
  • Marcus said have to know what queries they want before they come; they are adapting it to handle so many queries without knowing what people are going to use it for.
  • Jon asks about performance / caching results on client side. Joel says servers can handle a lot, but there’s always latency. With .NET, allow you to cache search queries, which are serialized. For Get requests, don’t have caching; they’re pretty quick, but will add them in the future.
  • K. Scott asks what’s next. Lots of features; very interested in feedback. Have partners/customers testing with large sets of data. Lots of things in the .NET API they don’t expose but would like to. Want to provide as much flexibility as possible.
  • K. Scott asks about storing his own metrics. Providing some metrics about how his search is being used? They’re working on that, and SSL, encrypted indexes in planning stage.
  • Jon asks about support for custom synonyms; they explain what that means.
  • Plans and prices – free for developer. Then have basic and premium plans depending on how much you’re using it, what features you want, etc.
  • Joel says they have support for inheritance.
  • Jon asks about pricing. With developer license, if have open source project, get quite a bit of functionality and features.
  • Joel says that for developers, they want to encourage use. Would like feedback.
  • Jon asks how this compares to other search engine options and other document databases like RavenDB? Joel says you can use it for a document database, but that’s not the primary purpose of it. Raven is an awesome document database with text search, where this is awesome text search with basic document database capabilities. Henrik says if you take hardcore search, their main idea is not to provide hardcore search, but to enable developers to utilize search without being search experts.
  • Released client for Episerver, used widely in Sweden. Truffler will take care of indexing and hook up to events for you. They have the concept of filtering (using the LINQ where method), and have the ability to extend that.
  • K. Scott asks if this is open source. Joel says not exposing the source code at the moment. The .NET API is a very important part of their product, do some really cool things with it, would like to keep it to themselves. May release it in the future.
  • Truffler web site is truffler.net. On the about page, there are links to twitter and Joel’s blog.

 

Show Links:

Download / Listen:

Herding Code 125: Truffler with Joel Abrahamsson, Marcus Granstrom and Henrik Lindstrom

This week’s show notes were typed up by @RobinDotNet – Thanks!!!

24Oct/11Off

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

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

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

Show links:

Download / Listen:

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

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

17Oct/11Off

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

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

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

Show Links:

Download / Listen:

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

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

11Oct/11Off

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

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

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

Show Links:

Download / Listen:

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

23Sep/11Off

Herding Code 121: Sara Chipps updates us on Girl Develop It at one year

This 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’s been going on over the past year. Sara goes back to what was on their minds as they were first getting started with their first class, and how that’s grown to 6 cities worldwide, and their original New York chapter offers 20 classes a month with 5 teachers.
  • Kevin asks where the other teachers came from, and Sara spins a tall tale about flamethrower classes. Well, maybe it’s true, but I find it a bit suspect.
  • Kevin asks about where the classes are held.
  • Jon asks about how the money part works out. Sara explains how the class fees, donations, and teacher payments all work out.
  • Kevin asks Sara about about what tools they teach, and Sara mentions Aptana.
  • Jon asks for some success stories and Sara tells a few.
  • Kevin asks how many students go through several classes; Sara says they see about 25% frequent fliers.
  • Jon asks if there’s some measurement of how much the students actually learn. Sara explains that the classes include a good amount of hands-on work and homework, and that she and the other teachers continue to learn how to gage when students are getting lost.
  • Kevin asks if there are some students that just don’t get it, and Sara says that some students have a tough time understanding that a single missing character can break a whole program. Everyone commiserates about this fun part of software development. Jon speculates that young women may be missing out on some of the split between cold logic and reason because they don’t play enough video games.
  • Jon notes that a lot of real world computer programming involves problem solving and support network and asks if students are equipped with those things. Sara talks about how anyone watching her code will see a good amount of debugging; additionally she teaches students about how to use StackOverflow so they can get their questions solved.
  • Kevin asks how the curriculum and courses have evolved over the past year. Sara and Jon talk about the amount of time and effort involved in preparing decent training materials.
  • Kevin asks about changes in teaching approach over the course of the past year. Sara said she’s moved from code-only to using some slides, and that when writing code it’s important to walk through it in pretty good detail.
  • Kevin asks what’s been different from expectations, and Sara talks about both the amount of interest and community goodwill.
  • Kevin asks about how Girl Develop It has spread to other cities, and asks about how much of the content is shared between cities.
  • Jon asks about how the branding and design is handled.
  • Jon asks if there are advanced classes or seminars.
  • Jon asks Sara what sort of projects she’s been working on lately. Sara says it’s pretty much all Javascript lately.
  • Kevin asks if there will be a node.js class (drink!)
  • Kevin asks what’s next for Girl Develop It, which prompts Sara to talk about the first Girl Develop It hack-a-thon. Apparently these are like a guy hack-a-thon except with less pizza and body odor and more resort and catering.
  • Kevin asks if Girl Develop It could develop into a full time gig. Sara says that all the leaders love developing and don’t want to give that up, so they’re still trying to figure that out.
  • Jon asks how listeners can support Girl Develop It. Sara lists a range of options, including book, laptop donations, and meeting space. Kevin asks about cash contributions.
  • Jon and Kevin note that there are no West Coast US branches. Sara mentions that a bay area location may start soon.
  • Kevin asks about the 15% male attendance in Girl Develop It, and Sara explains how that works.
  • Jon asks if there’s potential for virtual events and video recordings. Sara explains that, while it sounds great logistically, it misses out on a lot of the most important aspects of the Girl Develop It classroom experience. They’ve got trial running in the Columbus branch, though, so they’ll see how it goes.
  • Sara teases about an interesting hack-a-thon project they did recently using the Aviary API’s called Stash Your Stash, which removes moustaches from photos because "they’re super creepy!"

Show Links:

Download / Listen:

Herding Code 121: Sara Chipps updates us on Girl Develop It at one year