On 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 “couch surfing in return for coding.” Corey describes how he transitioned from a traditional software developer job to training and speaking.
- Scott describes his experiences at a Coderetreat in Seattle – a series of 45 minute pair programming exercises with Conway’s Game of Life under a variety of constraints.
- Corey explains how Coderetreat got started at CodeMash 2009 as a way to intentionally practice writing beautiful code outside of the pressure of day to day work.
- Corey talks about how deleting your code at the end of every 45 minute session means you can concentrate on learning rather trying to complete anything.
- Jon asks if people are working towards any kind of graphical output, and Corey says that the focus is really on the code, and learning how to respond to changes and constraints.
- Twitter question from George Dinwiddie (@gdinwiddie) “What was the most interesting starting point for the Game of Life” Corey talks about people often start with traditional object oriented noun/verb approaches in the morning and move towards an outside-in mentality in the afternoons. He’s seen some interesting work with functional languages such as Clojure and J.
- Jon asks about the breakdown of programming languages that he sees people using.
- There’s a discussion of how setup and install can often eat up a lot of time at this kind of event, and Corey talks about how that’s not such a problem here: people show up with working development environments, are working at the testing level, and can just pair with someone who
- Jon asks what common patterns he sees people learn. Corey talks about some big changes in TDD focus and application design.
- Scott and Corey talks about the benefit of pairing with a lot of people at differing skill levels.
- Twitter question from Steven Proctor (@stevenproctor) “How often do you get to pair at these events” – Corey says that the facilitator role means you don’t get to pair, so he’s only been able to a couple times.
- Kevin asks how new pairing is to attendees, and if there’s any specific focus on learning how to pair better. Corey talks about some specific exercises which focus on paring techniques, including a Mute session (no talking, all communication through code) and Find The Loophole (in which the the coder purposefully tries to write the wrong algorithm while passing all tests).
- Scott says he
- Twitter question from from Maggie Longshore (@MaggieLongshore) “How he makes each code session unique so it doesn’t get monotonous. Share some tips for facilitators.”
- Jon asks about the upcoming Global Day of Coderetreat on December 3. Corey explains what will be going on worldwide, and how he’ll be exploiting a flight over the international date line to attend the full day sessions in both Sydney and Hawaii.
- Jon asks about some of the guidelines for listed hosting a Coderetreat, including a good (non-pizza) lunch and no cost to attendees. Corey says that in some cases there’s a deposit which is fully refunded provided you show up.
- Jon asks Corey how people can find out about a Coderetreat near them, and if it’s still possible to set up a Coderetreat if there isn’t one in your area. Corey says yes, and points us to Coderetreat.org for all information about the Global Day of Coderetreat on December 3.
- Jon asks Corey about his MercuryApp, a micro-journaling system with analytics that he and Sara Gray run.
- The guys chide Corey for slacking off by setting his Global Day of Coderetreat so low, and he talks about his difficult decision to exclude astronauts this time around.
Download / Listen:
Herding Code 128: Corey Haines on Global Day of Coderetreat
On 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’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, “When you get a new mac, you open it up and rainbows come out of it. Do you have to install anything? How does that setup process work?”
- Kevin talks about development tooling such as HomeBrew and XCode. They discuss different tools and apps that they need to do development.
- Jon asks about twitter apps. K Scott uses the browser; Kevin is using the official Twitter app which seems pretty good except when it won’t launch the browser when clicking on the links in tweets.
- When upgrading, do you go through fresh install or remove programs? Jon talks about using Ninite to install programs you use a lot such as 7Zip, Audacity, Chrome, FileZilla, Skype, etc, because it manages everything for you and you don’t have to click through all the install dialogs.
- Also talks about using the Microsoft Web Platform Installer to get all of the web development stuff.
- They talk about the pros and cons of using Microsoft Office, and discuss using the Mac apps or Google docs or Office.Live.com.
- Jon is using Mesh to share between computer and sky drive; what kind of file sharing? K Scott is using Dropbox, says Live Mesh is important because of the remote desktop feature of Mesh. They talk about different file sharing companies and features, and talk about iCloud.
- Jon talks about the Windows Home Group feature, and how easy it is to share files, printers, media, etc., and talks about doing backups. Uses Space Sniffer to find big files.
- Jon got an SSD, so he made the old drive his D drive and used the SSD as his primary drive. If the SSD failed (which it did), he could just boot off the D drive.
- They discuss the placement of the files on the computer, whether to move to a second hard drive or partition, etc., and whether to use Libraries; they talk about searching for files in Windows. Some software apps disable the file indexer in Windows. When you install on an SSD, they disable some services like defrag, prefetch – it also disabled search.
- K Scott asks what kind of SSD Jon is using that is failing. Jon says it’s an OCZ Vertex 2, but he’s not sure it’s the drive versus the computer – gets blue screen on Windows, thinks it might be a hardware problem with his evil computer.
- Jon asks if they use Hibernate or Sleep? How often do they reboot?
- Kevin never uses hibernate. Jon will have a bunch of stuff running and will hibernate to save the battery on his laptop. Kevin thinks it burns slowly enough on Sleep, only hibernates when doing a full day of travel. Not worth it for a couple of hours.
- With newer laptop (16gb of ram), hibernating is a big deal. Jon ended up setting hibernate file size and tweaking the hibernate settings.
- MacBooks have pretty good battery life. The Air says it has almost 8 hours remaining; thinks that’s a little high, but it’s pretty good. Jon’s ThinkPad W520 is big, but gets around 7 hours, doesn’t have to worry about battery life; some optimizing settings make it difficult to use a projector.
- They discuss how often they repave their machines and the effect of using beta versions of software, how they go about getting back to work after repaving. How do you save your settings and reapply them after repaving?
- K Scott – windows get stuck off screen, can’t get them back on the main screen. Kevin has a utility that can help with that; it’s on his blog. Shows list of off-screen windows – can pick one and it will move it back to the main window.
- Jon finds uninstall really works pretty well now, whereas before it was just a cruel joke.
- K Scott talks about pulling pictures off of a Windows 6 phone. Doesn’t attach as an external drive, it installs Windows Mobile Device Center. Nooooo!!!!!
- Jon finished his office and moved into it. What about a standup desk? Found something simple from IKEA that could be used for part of the day. They talk about the idea of a standup desk.
- What about doing your work on a treadmill with a laptop? (Idea from a Neal Stephenson book). What if you did that for 15 to 30 minutes a day? Several people on twitter responded with information about their setups doing this.
- Simple way – found something for forty bucks on amazon that the laptop would rest in. Would just walk, not jog. Others have taken the control thing apart and put in a desk. Let us know if you’ve tried something like this.
- They discuss ergo keyboards, and using Synergy or Input Director for sharing a keyboard and mouse across multiple computers.
- K Scott has a problem with the keyboard on the Mac; bothers his hands, especially when using it for hours. They like Lenovo keyboards.
- Jon – some keys don’t map between Mac and Windows. Kevin uses a Microsoft ergo keyboard with the Mac, and out of habit still uses those keys, and it sometimes has a weird impact.
- They talk about Vim and Mac Vim.
- Jon switched from using a mouse to using a tablet. Mouse is what really hurts your wrist. Kevin moved his mouse to the left for years for the same reason. K Scott likes the TrackPoint pointing stick on the Lenovo. Kevin’s never been a fan of the trackpad on the laptops, but the Mac trackpad is brilliant.
- Talk about using different software to help readability, like Readable, which uses Google web fonts. Can customize it to meet your needs. Makes it easier to read web pages.
- Jeff Atwood posted a blog entry about backlights behind the monitor like LED glowstrips. You can have a dark workspace and lower the contrast using backlights.
- And now for something completely different . a lightning round.
- What’s your favorite browser?
- Did Adobe really kill Flash? Does the lightning round really work? Does anyone expect the Spanish Inquisition? Why do people keep making websites that exclusively use Flash, especially restaurants? Is the future of video really animated gifs?
Download / Listen:
Herding Code 127: Setting up your Computer and Work Area
This week’s show notes were typed up by @RobinDotNet – Thanks!!!
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.
Download / Listen:
Herding Code 126: Jeff Atwood on Video Games and Gamification
This week’s show notes were typed up by @rossfuhrman – Thanks!!!
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.
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!!!