Herding Code 87: Jeff Atwood on Area 51 and Stack Overflow

This 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 & 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 Area 51.
  • Jeff explains Area 51 and the democratic process around establishing a knowledge-based site.  The guys talk about the old Stack Exchange pricing model and how Area 51’s approach is entirely different.
  • Kevin asks if there’s a concern that Area 51 will have a geek skew – especially since there’s likely a draw from the existing geek ghetto.
  • Scott K asks about bringing experts involvement into communities.  For example, including Alton Brown in a cooking site.
  • Jon and Jeff talk about the model of selling software and the magical wonderland that is Coding Horror.
  • Jeff talks about the Stack Overflow API and the Stack Exchange API Contest.  There are PRIZES!  The guys consider when an API is necessary and what APIs can provide.  Did somebody say community-built iPhone application for Stack Overflow? 
  • Jon asks if the Stack Overflow API will support OData.  Jeff answers “yes”, and then the conversation turns to talk of data analysis and the economics of Q & A sites. Jeff gets back to the OData, “the Sharepoint of sharing data on the web”, and points us to the OData web UI which queries current SO data dump.
  • Scott K notes that Stack Overflow is optimized for answerers and asks Jeff for his comments on the Stack Overflow Fatigue article.  Jeff talks about site popularity, community/user issues which don’t occur on smaller sites, and moderation tools.
  • Jon asks about expertise and tag-based badges and comments that reputation is self-correcting.  Jeff stresses that the site is really optimized for those who are the best communicators and not necessarily those who are most knowledgeable.
  • Kevin asks how Jeff responds to folks who have no chance of gaining enough critical mass to have their interests manifest into a Area 51 site.  Jeff shares his thoughts on community growth and launching and supporting sites with love. 
  • Jeff talks about open source, driving forward and evolving his sites and the problem with trying to be all things to all people.
  • Jeff fields Twitter questions about Stack Overflow SQL scalability, Stack Overflow’s testing and deployment story and how Jeff’s role has changed with the introduction of many new faces working on the app.  This triggers conversations about hosting on the Microsoft platform, the good and bad of Bizspark, the benefits of servers/hardware being cheap and general happiness with the stack.  Jeff also speaks to continuous integration and argues against unit testing all features.  Jeff speaks of the pointy-haired boss, Metcalfe’s Law, the quite guy problem and how to work with distributed teams.
  • The show wraps with Jeff sharing his dependence on human unit tests, cheating, optimizing for the “mistake fixing” and Stack Overflow’s loose web development process.

Show Links:

Show notes compiled by Ben Griswold. Thanks!

Download / Listen:

Herding Code 87: Jeff Atwood on Area 51 and Stack Overflow

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0087-Jeff-Atwood-on-Area-51-and-Stack-Overflow.mp3]

Herding Code 86: Saqib Shaikh on Accessibility and Developing with Limited Sight

While at Web Camps London, Jon talks to Saqib Shaikh about how he’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 from Twitter.
  • Saqib explains the function of a screen reader and how some people can listen to computers really fast.
  • Jon asks about common frustrations around accessibly when web browsing. Jon considers the tie-in between SEO and accessibility.  The guys dive a little deeper into structuring information, images vs text and learning the few basics.
  • Jon asks if there’s a way to do accessibility analysis? Saqib points to the “Check Accessibility.” option which is available when right-clicking on the web project in VS 2010.  (It’s there. I checked.)
  • Jon and Saqib talk about coding with limited sight. Saqib shares his general techniques.
  • The conversation continues with talk about Microsoft product development and the importance placed on accessibility.
  • The show wraps with Saqib introducing the term “Universal Design” of all things.  As a developer, you want to make your applications for the largest number of people to use. Just keep in mind that “there’s a lot of people in this world, and they’re all a little bit different.” “It’s about making cool stuff for a lot of people.”

Show Links:

Show notes compiled by Ben Griswold. Thanks!

Download / Listen:

Herding Code 86: Saqib Shaikh on Accessibility and Developing with Limited Sight

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0086-Saqib-Shaikh-on-Accessibility-and-Developing-With-Limited-Sight.mp3]

Herding Code 85: Clint Nelsen on Startup Weekend

While 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 Weekend growth, reach and staff and facilitator involvement.  Clint talks about the management aspects of Startup Weekend.
  • Jon asks the types of application which Startup Weekenders are pitching. The guys talk about monetizing iPhone and iPad applications and Jon asks about Windows 7 Phone apps.
  • Clint talks about the benefit of having developers at Startup Weekend knowing a common framework/language.
  • Jon asks about Startup Weekend success stories like Twitpay and Foodspotting.
  • Clint talks about community building, relationships, launch support and current startup funding ratio around 5%.
  • Client and Jon talk about startup thinking in the Microsoft community and building a business around MS technologies.

Show Links:

Show notes compiled by Ben Griswold. Thanks!

Download / Listen:

Herding Code 85: Clint Nelson on Startup Weekend

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0085-Clint-Nelsen-on-Startup-Weekend.mp3]

Herding Code 84: Ex-Microsoft Developer Panel with Mike Moore, Jeff Cohen, and Scott Bellware

This week on Herding Code, the guys talk to Jeff Cohen, Mike Moore, and Scott Bellware about why and how they’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 around 2005 and was primarily driven by the Ruby language itself. Mike agrees that it’s all about the Ruby language. Scott B talks about how he straddles both worlds but only sees .NET as a smart choice for building Windows applications now. Scott B goes on to talk about how it’s a philosophical thing for him as well, and how he prefers to work on a stack that’s more purely open source.
  • Scott K talks about the dichotomy in moving from Windows to get away from a proprietary platform and then you find yourself working on a Mac. Go Debian! Scott B talks about how Vista was a tipping point for him to move to Mac. He felt like Microsoft was too focused on shipping products – even if they weren’t good products.
  • Mike and Scott B talk about moving from ALT.NET to ex-.NET, and how they feel like it’s fear and investments in the .NET platform that prevent more people from moving. The guys talk about the “technology treadmill.”
  • Scott K talks about the problems in “dropping paygrades” in moving from being a senior .NET developer to being a junior developer on another platform.
  • Mike Moore asks why developers are investing in a technology that another company owns. Scott B says it’s not about Microsoft owning .NET, it’s about not being able to make decisions about where the platform is going. He says he sees Microsoft as a manufacturer of 21st century office equipment for large companies with the most influence. It works, but it can be heartbreaking when you see Microsoft moving into markets in a way that’s not as elegant as existing technologies (e.g. Entity Framework) because you know that the surrounding industry will move there, and eventually your work will move there as well. The result is a technology treadmill.
  • K Scott points out that as the average developer, you’re not really in charge of where Linux, Rails, or other open source platforms are heading either. Mike and Scott B clarify; it’s not about ownership so much as trusting where the Rails community is going.
  • Kevin asks Jeff about some recent criticisms he’s made towards Rails 3 recently. Jeff talks about all the things he likes about Rails, but says that he is disappointed that Rails is making changes designed to broaden acceptance and appeal to the enterprise. Despite that, he says that he hasn’t lost faith in where Rails is headed. He brings up the relative ease of doing TDD on Rails as opposed to .NET as an example of how Rails works more like he wants to work as a developer.
  • Scott K talks about how Microsoft has a conflict of interest as a tools vendor, and how a willingness to work with other IDE’s makes moving to other platforms pretty easy.
  • The conversation move towards talking about how Intellisense affects system and platform design. Other platforms like Rails are built so you don’t need Intellisense to be productive. Rails was never built to sell anything, and that shows in the platform. Mike talks about how he had to leave the .NET platform to find a place where people really cared about getting from 12 lines of code to 4 lines of code.
  • Scott B talks about how Rails committers are all building Rails applications, and points out that WPF didn’t get the attention it needed until Microsoft used it in Visual Studio. He then talks about how Rails will feel free to make modifications (monkey patches) to Rails, which often graduate to plugins and then move into the core. The key is that this is a continuous process rather than focused on a big product release cycle. Scott B talks more about the Ruby/Rails meritocracy.
  • The conversation shifts to the entrepreneurial nature of the Ruby on Rails community. Mike talks about how development cost is a major factor and that people who will take a risk in moving to a new platform are also more likely to take a risk in business.
  • Mike and Scott B talk about how polyglot programming is much more prevalent outside of the Microsoft development community.
  • Scott B talks about how ASP.NET was positioned as a competitor to Ruby On Rails, and how the two differ.
  • K Scott asks how much the move away from .NET is based on culture and developers are looking for a new community with different values. Mike talks about how he was on the verge of leaving programming altogether when he found the Ruby community, and how it reinvigorated him. Scott B says that there are things about developing in the .NET space which drive burnout and, in turn, reduces passion in the community. Jeff talks about how stumbling on Ruby showed him that it was just a lot more fun than what he was doing in his current job.
  • Scott B talks about how the plugin experience in Rails differs from the .NET development world – where you’re often waiting for services that just aren’t quite there yet.
  • Mike and Scott B talk about how they like reading Ruby code. Scott B talks about how the Ruby culture places a value on making code readable to the point that it’s competitive.
  • Scott K talks about how programming has become a business now, but he’s always liked to learn things just because it was fun. Scott B says that the skill level in the Rails world seems to be higher, but the people are less intimidating.
  • Mike points out that many of the leaders of the Ruby community were previously leaders in the Agile community. Scott B talks about how he’s seen Uncle Bob Martin moving to Rails over the past few years.
  • Scott B then talks about the problems in toolmakers who make tools but don’t use them.
  • The show ends, but not really. lots of crazy speculation about starting over with a new runtime on top of .NET.

Show Links:

Show notes compiled by Ben Griswold. Thanks!

Download / Listen:

Herding Code 84: Ex-Microsoft Developer Panel with Mike Moore, Jeff Cohen, and Scott Bellware

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0084-Ex-Microsoft-Developer-Panel-with-Mike-Moore-Jeff-Cohen-and-Scott-Bellware.mp3]

Herding Code 83: Ayende Rahien on RavenDB

This 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.  Ayende then contrasts RavenDB with two other popular document databases, Mongo and CouchDB, and comments that RavenDB is much more similar to CouchDB than Mongo.
  • Ayende talks about how RavenDB indexes work – they’re written when you store data, but not immediately after. He continues with an explanation of transactions – data is transactional, but indexes aren’t.
  • Scott K brings up Node.js and asked if Ayende had looked at the event driven approach over spinning up threads. Ayende talks about how RavenDB previously worked like that, but it made debugging very painful. Instead, the architecture is now focused on the end goal – RavenDB will never make you wait for a write.
  • The guys take a question from Twitter about whether there are plans to support Mono. Ayende says yes, but outlines some of the changes that will be required to make that happen.
  • Scott K asks if traditional RDBMS performance tweaks based on moving data and indexes to other spindles are possible and useful on RavenDB.
  • Jon asks about how this relates to Reactive Extensions, and Ayende discusses how Event Sourcing works in RavenDB.
  • Jon and Scott K ask some questions about storage formats – JSON, binary serialization, etc.
  • The group digs into how Map / Reduce works.  Ayende explains Map / Reduce in generally terms as well as how it pertains to RavenDB.
  • K Scott asks questions about indexing – how it’s done, how indexes are defined and impacts of keeping a lot of indexes. Ayende talks about how indexes are essentially materialized views, and how the RavenDB query engine can use both LINQ and Lucene syntax.
  • K Scott asks about transaction support, embedded support, and concurrency.
  • The guys talk about the “sweet spot” for RavenDB and document databases. Ayende talks about advantages of working with a document database, and the benefits of working without a defined schema.
  • Jon asks if ORM’s just go away in a document database context and the conversation moves on to talking about different architectures and development strategies that come into play when working with schema-less documents.
  • K Scott mentions that this seems like it would work really well with Aggregate Roots in Domain-Driven Design.
  • Ayende and Jon discuss how aggregate queries compare in the context of some of the inefficient queries in MVC Music Store.
  • Kevin drills a little deeper into the versioning challenges.
  • Jon asks about the use of .NET 4 features with RavenDB including the Task Library and the Expando object. Ayende talks about how they made heavy use of the Dynamic keyword and MEF in RavenDB. Basically, everything except for storage and indexing is handled via MEF.
  • Ayende talks about the extensibility points such as read and index previews.
  • Jon begs for punishment by asking for Ayende’s comments on the MVC Music Store. Ayende talks about how he prefers tutorials be very explicit about what they’re not going to cover in detail. He recommends completely removing details which aren’t the focus of the tutorial. Then he goes on to talk about how things like shopping carts just seem to work more smoothly with document storage rather than relational databases.
  • Jon asks about the licensing models. Ayende talks about how people were unhappy with the initial pricing model due to the differing deployment expectations, and how he worked with customers to establish a pricing model that works for everyone.
  • Ayende teaches the gang the term “Chinese Interesting.”

Show Links:

Show notes compiled by Ben Griswold. Thanks!

Download / Listen:

Herding Code 83: Ayende Rahien on RavenDB

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0083-Ayende-Rahien-on-RavenDB.mp3]