Esko Luontola
2024-03-18 18:59 EET

Let's Code Screencasts

Here are screencasts of developing non-trivial open source projects, the way that I normally develop software. They might give you some tips on using TDD, refactoring, evolutionary design and other development practices. I hope these screencasts will help any aspiring software craftsmen on their road to mastery by providing some examples to look up to.

If you do not yet know how to do TDD, please have a look at my TDD Tetris Tutorial in GitHub. It will help in getting a start on TDD by providing some pre-written tests for a Tetris game and steps on how to proceed. In this Let's Code series there is also a screencasted example of how to go through that tutorial, though you should first try implementing it yourself.

New episodes will be announced at the Let's Code blog. Please subscribe to the web feed of that blog to get notified about new releases. You might also be interested in James Shore's Let's Play TDD which is an endeavour similar to this one.

Feed Subscribe to New Episodes

Projects

TDD Tetris Tutorial

Shows how to go through the TDD Tetris Tutorial where you can learn Test-Driven Development by at first writing code to pass pre-written tests, so that it will be easier to write your own tests when the time for it comes.

Project Web Site: github.com/luontola/tdd-tetris-tutorial
This Code Branch: github.com/luontola/tdd-tetris-tutorial/tree/take3

Episodes

Let's Code Jumi

Shows since day one the development of a test runner to surpass JUnit as the de facto test runner on the Java platform. Programming is done with TDD, with the unit-level TDD driven by end-to-end level TDD.

Project Web Site: jumi.fi
Source Code: github.com/luontola/jumi

Episodes

Theme: Project Setup 5 h 13 min
2011-06-10 Let's Code Jumi #1: Project Setup (Part 1) Download
2011-06-11 Let's Code Jumi #2: Project Setup (Part 2) Download
2011-06-12 Let's Code Jumi #3: Project Setup (Part 3) Download
2011-06-13 Let's Code Jumi #4: Project Setup (Part 4) Download
2011-06-15 Let's Code Jumi #5: Project Setup (Part 5) Download
2011-06-16 Let's Code Jumi #6: Project Setup (Part 6) Download
2011-06-17 Let's Code Jumi #7: Project Setup (Part 7) Download
2011-06-19 Let's Code Jumi #8: Project Setup (Part 8) Download
2011-06-21 Let's Code Jumi #9: Project Setup (Part 9) Download
2011-06-22 Let's Code Jumi #10: Project Setup (Part 10) Download
2011-06-23 Let's Code Jumi #11: Project Setup (Part 11) Download
2011-06-24 Let's Code Jumi #12: Project Setup (Part 12) Download
Theme: Walking Skeleton - Running Zero Tests 1 h 20 min
2011-06-27 Let's Code Jumi #13: Running Zero Tests (Part 1) Download
2011-06-28 Let's Code Jumi #14: Running Zero Tests (Part 2) Download
2011-06-29 Let's Code Jumi #15: Running Zero Tests (Part 3) Download
Theme: Refactoring - Message Passing 2 h 38 min
2011-06-30 Let's Code Jumi #16: Message Passing (Part 1) Download
2011-07-01 Let's Code Jumi #17: Message Passing (Part 2) Download
2011-07-02 Let's Code Jumi #18: Message Passing (Part 3) Download
2011-07-03 Let's Code Jumi #19: Message Passing (Part 4) Download
2011-07-04 Let's Code Jumi #20: Message Passing (Part 5) Download
2011-07-05 Let's Code Jumi #21: Message Passing (Part 6) Download
Theme: Walking Skeleton - Public API 3 h 27 min
2011-07-07 Let's Code Jumi #22: Public API (Part 1) Download
2011-07-08 Let's Code Jumi #23: Public API (Part 2) Download
2011-07-10 Let's Code Jumi #24: Public API (Part 3) Download
2011-07-11 Let's Code Jumi #25: Public API (Part 4) Download
2011-07-12 Let's Code Jumi #26: Public API (Part 5) Download
2011-07-13 Let's Code Jumi #27: Public API (Part 6) Download
2011-07-15 Let's Code Jumi #28: Public API (Part 7) Download
2011-07-16 Let's Code Jumi #29: Public API (Part 8) Download
Theme: Walking Skeleton - Running One Test 1 h 44 min
2011-07-18 Let's Code Jumi #30: Running One Test (Part 1) Download
2011-07-19 Let's Code Jumi #31: Running One Test (Part 2) Download
2011-07-21 Let's Code Jumi #32: Running One Test (Part 3) Download
2011-07-22 Let's Code Jumi #33: Running One Test (Part 4) Download
Theme: Refactoring - Actor Model 18 h 10 min
2011-07-25 Let's Code Jumi #34: Comparable TestId Download
2011-07-26 Let's Code Jumi #35: Actors (Part 1) Download
2011-07-27 Let's Code Jumi #36: Actors (Part 2) Download
2011-07-28 Let's Code Jumi #37: Actors (Part 3) Download
2011-07-30 Let's Code Jumi #38: Bug Fixes Download
2011-07-31 Let's Code Jumi #39: Actors (Part 4) Download
2011-08-03 Let's Code Jumi #40: Actors (Part 5) Download
2011-08-07 Let's Code Jumi #41: Dynamic Events (Part 1) Download
2011-08-08 Let's Code Jumi #42: Dynamic Events (Part 2) Download
2011-08-10 Let's Code Jumi #43: Dynamic Events (Part 3) Download
2011-08-11 Let's Code Jumi #44: Dynamic Events (Part 4) Download
2011-08-12 Let's Code Jumi #45: Dynamic Events (Part 5) Download
2011-08-15 Let's Code Jumi #46: Multi-Interface Actors (Part 1) Download
2011-08-16 Let's Code Jumi #47: Multi-Interface Actors (Part 2) Download
2011-08-17 Let's Code Jumi #48: Multi-Interface Actors (Part 3) Download
2011-08-18 Let's Code Jumi #49: Multi-Interface Actors (Part 4) Download
2011-08-20 Let's Code Jumi #50: Multi-Interface Actors (Part 5) Download
2011-08-22 Let's Code Jumi #51: Actorified Runners (Part 1) Download
2011-08-24 Let's Code Jumi #52: Actorified Runners (Part 2) Download
2011-08-25 Let's Code Jumi #53: Actorified Runners (Part 3) Download
2011-08-28 Let's Code Jumi #54: Actorified Runners (Part 4) Download
2011-08-29 Let's Code Jumi #55: Actorified Runners (Part 5) Download
2011-08-30 Let's Code Jumi #56: Actorified Runners (Part 6) Download
2011-08-31 Let's Code Jumi #57: Actorified Runners (Part 7) Download
2011-09-08 Let's Code Jumi #58: Worker Threads (Part 1) Download
2011-09-09 Let's Code Jumi #59: Worker Threads (Part 2) Download
2011-09-10 Let's Code Jumi #60: Worker Threads (Part 3) Download
2011-09-16 Let's Code Jumi #61: Single-Threaded Actors (Part 1) Download
2011-09-17 Let's Code Jumi #62: Single-Threaded Actors (Part 2) Download
2011-09-18 Let's Code Jumi #63: Single-Threaded Actors (Part 3) Download
2011-09-20 Let's Code Jumi #64: Refactoring Actor Tests (Part 1) Download
2011-09-21 Let's Code Jumi #65: Refactoring Actor Tests (Part 2) Download
2011-09-23 Let's Code Jumi #66: Refactoring Actor Tests (Part 3) Download
2011-09-24 Let's Code Jumi #67: Refactoring Actor Tests (Part 4) Download
2011-09-25 Let's Code Jumi #68: Actorified Runners (Part 8) Download
2011-09-26 Let's Code Jumi #69: Actorified Runners (Part 9) Download
2011-09-27 Let's Code Jumi #70: Actorified Runners (Part 10) Download
2011-09-29 Let's Code Jumi #71: Actorified Runners (Part 11) Download
2011-09-30 Let's Code Jumi #72: Actorified Runners (Part 12) Download
2011-10-01 Let's Code Jumi #73: Actorified Runners (Part 13) Download
2011-10-05 Let's Code Jumi #74: New Domain Download
Theme: Refactoring - Code Generator Maven Plugin 12 h 41 min
2011-10-06 Let's Code Jumi #75: Hello Maven Plugin (Part 1) Download
2011-10-07 Let's Code Jumi #76: Hello Maven Plugin (Part 2) Download
2011-10-10 Let's Code Jumi #77: Code Generation (Part 1) Download
2011-10-12 Let's Code Jumi #78: Code Generation (Part 2) Download
2011-10-13 Let's Code Jumi #79: Generating the Factory Download
2011-10-14 Let's Code Jumi #80: Generating the Frontend (Part 1) Download
2011-10-15 Let's Code Jumi #81: Generating the Frontend (Part 2) Download
2011-10-18 Let's Code Jumi #82: Generating the Frontend (Part 3) Download
2011-10-20 Let's Code Jumi #83: Generating the Backend (Part 1) Download
2011-10-21 Let's Code Jumi #84: Generating the Backend (Part 2) Download
2011-10-22 Let's Code Jumi #85: Generating the Backend (Part 3) Download
2011-10-24 Let's Code Jumi #86: Generating the Events (Part 1) Download
2011-10-27 Let's Code Jumi #87: Generating the Events (Part 2) Download
2011-11-01 Let's Code Jumi #88: Maven Plugin Testing (Part 1) Download
2011-11-03 Let's Code Jumi #89: Maven Plugin Testing (Part 2) Download
2011-11-04 Let's Code Jumi #90: Maven Plugin Testing (Part 3) Download
2011-11-07 Let's Code Jumi #91: Maven Plugin Testing (Part 4) Download
2011-11-10 Let's Code Jumi #92: Maven Plugin Testing (Part 5) Download
2011-11-14 Let's Code Jumi #93: Embedded Java Compiler (Part 1) Download
2011-11-17 Let's Code Jumi #94: Embedded Java Compiler (Part 2) Download
2011-11-19 Let's Code Jumi #95: Embedded Java Compiler (Part 3) Download
2011-11-20 Let's Code Jumi #96: Embedded Java Compiler (Part 4) Download
2011-11-22 Let's Code Jumi #97: Embedded Java Compiler (Part 5) Download
2011-11-25 Let's Code Jumi #98: Embedded Java Compiler (Part 6) Download
2011-11-30 Let's Code Jumi #99: Using Code Generator (Part 1) Download
2011-12-02 Let's Code Jumi #100: Using Code Generator (Part 2) Download
2011-12-04 Let's Code Jumi #101: Using Code Generator (Part 3) Download
2011-12-07 Let's Code Jumi #102: Using Code Generator (Part 4) Download
Theme: Testing - Thread-Safety Checking Bytecode Enhancer 9 h 24 min
2011-12-09 Let's Code Jumi #103: Parameterized Tests (Part 1) Download
2011-12-10 Let's Code Jumi #104: Parameterized Tests (Part 2) Download
2011-12-14 Let's Code Jumi #105: Parameterized Tests (Part 3) Download
2011-12-16 Let's Code Jumi #106: Parameterized Tests (Part 4) Download
2011-12-18 Let's Code Jumi #107: Testing Bytecode Manipulation (Part 1) Download
2011-12-21 Let's Code Jumi #108: Testing Bytecode Manipulation (Part 2) Download
2011-12-23 Let's Code Jumi #109: Testing Bytecode Manipulation (Part 3) Download
2011-12-27 Let's Code Jumi #110: Testing Bytecode Manipulation (Part 4) Download
2011-12-30 Let's Code Jumi #111: Bytecode Manipulation (Part 1) Download
2012-01-02 Let's Code Jumi #112: Bytecode Manipulation (Part 2) Download
2012-01-06 Let's Code Jumi #113: Bytecode Manipulation (Part 3) Download
2012-01-09 Let's Code Jumi #114: Bytecode Manipulation (Part 4) Download
2012-01-16 Let's Code Jumi #115: Using the Agent (Part 1) Download
2012-01-19 Let's Code Jumi #116: Using the Agent (Part 2) Download
2012-01-21 Let's Code Jumi #117: Generating Line Numbers (Part 1) Download
2012-01-22 Let's Code Jumi #118: Generating Line Numbers (Part 2) Download
2012-01-26 Let's Code Jumi #119: Generating Line Numbers (Part 3) Download
2012-01-29 Let's Code Jumi #120: Finishing Touches Download
2012-02-01 Let's Code Jumi #121: Hunting Concurrency Bugs (Part 1) Download
2012-02-12 Let's Code Jumi #122: Improved Stack Traces Download
2012-02-16 Let's Code Jumi #123: Hunting Concurrency Bugs (Part 2) Download
Theme: Walking Skeleton - One Failing Test 6 h 39 min
2012-02-19 Let's Code Jumi #124: One Failing Test (Part 1) Download
2012-02-22 Let's Code Jumi #125: One Failing Test (Part 2) Download
2012-02-25 Let's Code Jumi #126: Better Mocks (Part 1) Download
2012-02-28 Let's Code Jumi #127: Better Mocks (Part 2) Download
2012-03-02 Let's Code Jumi #128: Better Mocks (Part 3) Download
2012-03-07 Let's Code Jumi #129: Better Mocks (Part 4) Download
2012-03-10 Let's Code Jumi #130: Better Mocks (Part 5) Download
2012-03-13 Let's Code Jumi #131: One Failing Test (Part 3) Download
2012-03-16 Let's Code Jumi #132: One Failing Test (Part 4) Download
2012-03-19 Let's Code Jumi #133: Fail Early Download
2012-03-22 Let's Code Jumi #134: One Failing Test (Part 5) Download
2012-03-25 Let's Code Jumi #135: SimpleUnit's Test Reporting (Part 1) Download
2012-03-30 Let's Code Jumi #136: SimpleUnit's Test Reporting (Part 2) Download
2012-04-02 Let's Code Jumi #137: One Failing Test (Part 6) Download
2012-04-04 Let's Code Jumi #138: One Failing Test (Part 7) Download
Theme: Refactoring - Code Generator 3 h 59 min
2012-04-07 Let's Code Jumi #139: Better Printing (Part 1) Download
2012-04-09 Let's Code Jumi #140: Better Printing (Part 2) Download
2012-04-12 Let's Code Jumi #141: Generic Type Parameters (Part 1) Download
2012-04-15 Let's Code Jumi #142: Generic Type Parameters (Part 2) Download
2012-04-17 Let's Code Jumi #143: Generic Type Parameters (Part 3) Download
2012-04-20 Let's Code Jumi #144: Generic Type Parameters (Part 4) Download
2012-04-24 Let's Code Jumi #145: Builder (Part 1) Download
2012-04-26 Let's Code Jumi #146: Builder (Part 2) Download
2012-04-30 Let's Code Jumi #147: Single-Class Imports Download
Theme: Testing - Mutation Testing 1 h 15 min
2012-05-03 Let's Code Jumi #148: Mutation Testing (Part 1) Download
2012-05-06 Let's Code Jumi #149: Mutation Testing (Part 2) Download
2012-05-09 Let's Code Jumi #150: Mutation Testing (Part 3) Download
2012-05-13 Let's Code Jumi Special #1: Contract Tests Download
Theme: Walking Skeleton - Text UI & Stack Traces 1 h 53 min
2012-05-16 Let's Code Jumi #151: Text UI & Stack Traces (Part 1) Download
2012-05-19 Let's Code Jumi #152: Text UI & Stack Traces (Part 2) Download
2012-05-23 Let's Code Jumi #153: Text UI & Stack Traces (Part 3) Download
2012-05-28 Let's Code Jumi #154: Text UI & Stack Traces (Part 4) Download
Theme: Refactoring - Event-Based Text UI 3 h 37 min
2012-06-02 Let's Code Jumi #155: Event-Based Text UI (Part 1) Download
2012-06-05 Let's Code Jumi #156: Event-Based Text UI (Part 2) Download
2012-06-12 Let's Code Jumi #157: Event-Based Text UI (Part 3) Download
2012-06-14 Let's Code Jumi #158: Event-Based Text UI (Part 4) Download
2012-06-17 Let's Code Jumi #159: Test Names (Part 1) Download
2012-06-20 Let's Code Jumi #160: Test Names (Part 2) Download
2012-06-25 Let's Code Jumi #161: Test Names (Part 3) Download
2012-07-01 Let's Code Jumi #162: Use the New Text UI Download
Theme: Testing - Require Thread-Safety Annotations 1 h 47 min
2012-07-03 Let's Code Jumi #163: Require Thread-Safety Annotations (Part 1) Download
2012-07-07 Let's Code Jumi #164: Require Thread-Safety Annotations (Part 2) Download
2012-07-09 Let's Code Jumi #165: Require Thread-Safety Annotations (Part 3) Download
2012-07-12 Let's Code Jumi #166: Require Thread-Safety Annotations (Part 4) Download
Theme: Feature - Running Tests in Parallel 23 h 15 min
2012-07-16 Let's Code Jumi #167: Parallel Execution (Part 1) Download
2012-07-19 Let's Code Jumi #168: Parallel Execution (Part 2) Download
2012-07-22 Let's Code Jumi #169: Parallel Execution (Part 3) Download
2012-07-26 Let's Code Jumi #170: Parallel Execution (Part 4) Download
2012-07-29 Let's Code Jumi #171: Refactoring TestClassRunner (Part 1) Download
2012-08-01 Let's Code Jumi #172: Refactoring TestClassRunner (Part 2) Download
2012-08-04 Let's Code Jumi #173: Refactoring TestClassRunner (Part 3) Download
2012-08-07 Let's Code Jumi #174: Refactoring TestClassRunner (Part 4) Download
2012-08-13 Let's Code Jumi #175: Text UI Parsing (Part 1) Download
2012-08-15 Let's Code Jumi #176: Text UI Parsing (Part 2) Download
2012-08-17 Let's Code Jumi #177: Text UI Parsing (Part 3) Download
2012-08-21 Let's Code Jumi #178: Imports (Part 1) Download
2012-08-23 Let's Code Jumi #179: Imports (Part 2) Download
2012-08-26 Let's Code Jumi #180: Enter RunId (Part 1) Download
2012-08-29 Let's Code Jumi #181: Enter RunId (Part 2) Download
2012-09-01 Let's Code Jumi #182: Primitive Obsession (Part 1) Download
2012-09-03 Let's Code Jumi #183: Primitive Obsession (Part 2) Download
2012-09-07 Let's Code Jumi #184: Regular Expressions (Part 1) Download
2012-09-09 Let's Code Jumi #185: Regular Expressions (Part 2) Download
2012-09-11 Let's Code Jumi #186: Regular Expressions (Part 3) Download
2012-09-14 Let's Code Jumi #187: Regular Expressions (Part 4) Download
2012-09-21 Let's Code Jumi #188: Checking Test Runs (Part 1) Download
2012-09-23 Let's Code Jumi #189: Checking Test Runs (Part 2) Download
2012-10-01 Let's Code Jumi #190: Calm Before the Storm (Part 1) Download
2012-10-03 Let's Code Jumi #191: Calm Before the Storm (Part 2) Download
2012-10-05 Let's Code Jumi #192: Calm Before the Storm (Part 3) Download
2012-10-16 Let's Code Jumi #193: Calm Before the Storm (Part 4) Download
2012-10-23 Let's Code Jumi #194: Design Feedback (Part 1) Download
2012-10-26 Let's Code Jumi #195: Design Feedback (Part 2) Download
2012-11-06 Let's Code Jumi #196: Fixing Event Stub Conflicts (Part 1) Download
2012-11-09 Let's Code Jumi #197: Fixing Event Stub Conflicts (Part 2) Download
2012-11-15 Let's Code Jumi #198: Fixing Event Stub Conflicts (Part 3) Download
2012-11-20 Let's Code Jumi #199: Fixing Event Stub Conflicts (Part 4) Download
2012-12-01 Let's Code Jumi #200: Generating RunIds (Part 1) Download
2012-12-02 Let's Code Jumi #201: Generating RunIds (Part 2) Download
2012-12-09 Let's Code Jumi #202: Generating RunIds (Part 3) Download
2012-12-15 Let's Code Jumi #203: Generating RunIds (Part 4) Download
2012-12-24 Let's Code Jumi #204: Run Events (Part 1) Download
2012-12-25 Let's Code Jumi #205: Run Events (Part 2) Download
2012-12-27 Let's Code Jumi #206: Run Events (Part 3) Download
2012-12-29 Let's Code Jumi #207: Run Events (Part 4) Download
2013-01-01 Let's Code Jumi #208: Run Events (Part 5) Download
2013-01-05 Let's Code Jumi #209: Run Events (Part 6) Download
2013-01-14 Let's Code Jumi #210: Isolated Tests Download
2013-01-15 Let's Code Jumi #211: Redundant Parameters (Part 1) Download
2013-01-22 Let's Code Jumi #212: Redundant Parameters (Part 2) Download
2013-01-25 Let's Code Jumi #213: Redundant Parameters (Part 3) Download
2013-02-02 Let's Code Jumi #214: Misc Refactoring (Part 1) Download
2013-02-03 Let's Code Jumi #215: Misc Refactoring (Part 2) Download
2013-02-07 Let's Code Jumi #216: Demuxing Denormalizer (Part 1) Download
2013-02-09 Let's Code Jumi #217: Demuxing Denormalizer (Part 2) Download
2013-02-11 Let's Code Jumi #218: Demuxing Denormalizer (Part 3) Download
2013-02-16 Let's Code Jumi #219: Misc Refactoring (Part 3) Download
Theme: Refactoring - Actors 21 h 19 min
2013-02-23 Let's Code Jumi #220: ActorRef (Part 1) Download
2013-02-26 Let's Code Jumi #221: ActorRef (Part 2) Download
2013-03-02 Let's Code Jumi #222: Unified Actors (Part 1) Download
2013-03-10 Let's Code Jumi #223: Unified Actors (Part 2) Download
2013-03-18 Let's Code Jumi #224: Unified Actors (Part 3) Download
2013-03-23 Let's Code Jumi #225: Decoupled Actor Threads (Part 1) Download
2013-03-28 Let's Code Jumi #226: Decoupled Actor Threads (Part 2) Download
2013-04-08 Let's Code Jumi #227: Decoupled Actor Threads (Part 3) Download
2013-04-14 Let's Code Jumi #228: MonitoredExecutor (Part 1) Download
2013-04-18 Let's Code Jumi #229: MonitoredExecutor (Part 2) Download
2013-04-22 Let's Code Jumi #230: Removing Unattended Workers (Part 1) Download
2013-04-26 Let's Code Jumi #231: MonitoredExecutor (Part 3) Download
2013-04-30 Let's Code Jumi #232: Removing Unattended Workers (Part 2) Download
2013-05-04 Let's Code Jumi #233: Removing Unattended Workers (Part 3) Download
2013-05-07 Let's Code Jumi #234: Removing Unattended Workers (Part 4) Download
2013-05-10 Let's Code Jumi #235: Removing Unattended Workers (Part 5) Download
2013-05-13 Let's Code Jumi #236: Terminology Update Download
2013-05-17 Let's Code Jumi #237: Eventizer Providers (Part 1) Download
2013-05-20 Let's Code Jumi #238: Eventizer Providers (Part 2) Download
2013-05-26 Let's Code Jumi #239: Microbenchmark Download
2013-06-01 Let's Code Jumi #240: Thread Naming Download
2013-06-07 Let's Code Jumi #241: Message Logging (Part 1) Download
2013-06-08 Let's Code Jumi #242: Message Logging (Part 2) Download
2013-06-11 Let's Code Jumi #243: Message Logging (Part 3) Download
2013-06-16 Let's Code Jumi #244: Message Logging (Part 4) Download
2013-06-22 Let's Code Jumi #245: Message Logging (Part 5) Download
2013-06-25 Let's Code Jumi #246: Message Logging (Part 6) Download
2013-06-28 Let's Code Jumi #247: Message Logging (Part 7) Download
2013-07-02 Let's Code Jumi #248: Executor Logging (Part 1) Download
2013-07-06 Let's Code Jumi #249: Executor Logging (Part 2) Download
2013-07-10 Let's Code Jumi #250: Executor Logging (Part 3) Download
2013-07-13 Let's Code Jumi #251: Stopping Actor Threads (Part 1) Download
2013-07-16 Let's Code Jumi #252: Stopping Actor Threads (Part 2) Download
2013-07-22 Let's Code Jumi #253: Stopping Actor Threads (Part 3) Download
2013-07-25 Let's Code Jumi #254: Stopping Actor Threads (Part 4) Download
2013-07-30 Let's Code Jumi #255: Failure Handling (Part 1) Download
2013-08-02 Let's Code Jumi #256: Failure Handling (Part 2) Download
2013-08-05 Let's Code Jumi #257: Failure Handling (Part 3) Download
2013-08-09 Let's Code Jumi #258: Failure Handling (Part 4) Download
2013-08-12 Let's Code Jumi #259: Failure Handling (Part 5) Download
2013-08-16 Let's Code Jumi #260: Failure Handling (Part 6) Download
2013-08-19 Let's Code Jumi #261: Failure Handling (Part 7) Download
2013-08-24 Let's Code Jumi #262: Actor Interface Contracts (Part 1) Download
2013-08-28 Let's Code Jumi #263: Actor Interface Contracts (Part 2) Download
2013-09-01 Let's Code Jumi #264: Custom POM Properties (Part 1) Download
2013-09-05 Let's Code Jumi #265: Custom POM Properties (Part 2) Download
2013-09-08 Let's Code Jumi #266: Final Polish Download
2013-09-11 Let's Code Jumi #267: Continuous Delivery Download
Theme: Bugfix - WorkerCounter 2 h 29 min
2013-09-15 Let's Code Jumi #268: Concurrency Bug (Part 1) Download
2013-09-18 Let's Code Jumi #269: Concurrency Bug (Part 2) Download
2013-09-23 Let's Code Jumi #270: Concurrency Bug (Part 3) Download
2013-09-29 Let's Code Jumi #271: Concurrency Bug (Part 4) Download
2013-10-03 Let's Code Jumi #272: More Robust Design (Part 1) Download
2013-10-06 Let's Code Jumi #273: More Robust Design (Part 2) Download
Theme: Refactoring - Process Lifecycle 32 h 11 min
2013-10-12 Let's Code Jumi #274: Command Line Arguments (Part 1) Download
2013-10-15 Let's Code Jumi #275: Command Line Arguments (Part 2) Download
2013-10-20 Let's Code Jumi #276: Command Line Arguments (Part 3) Download
2013-10-25 Let's Code Jumi #277: System Properties (Part 1) Download
2013-11-02 Let's Code Jumi #278: System Properties (Part 2) Download
2013-11-08 Let's Code Jumi #279: System Properties (Part 3) Download
2013-11-13 Let's Code Jumi #280: Final Decoupling Download
2013-11-17 Let's Code Jumi #281: Process Liveliness (Part 1) Download
2013-11-22 Let's Code Jumi #282: Process Liveliness (Part 2) Download
2013-11-29 Let's Code Jumi #283: Launcher Actors (Part 1) Download
2013-12-03 Let's Code Jumi #284: Launcher Actors (Part 2) Download
2013-12-08 Let's Code Jumi #285: Launcher Actors (Part 3) Download
2013-12-16 Let's Code Jumi #286: Launcher Actors (Part 4) Download
2013-12-23 Let's Code Jumi #287: Launcher Actors (Part 5) Download
2013-12-31 Let's Code Jumi #288: Launcher Actors (Part 6) Download
2014-01-04 Let's Code Jumi #289: Launcher Actors (Part 7) Download
2014-01-22 Let's Code Jumi #290: Unit Tests (Part 1) Download
2014-01-29 Let's Code Jumi #291: Unit Tests (Part 2) Download
2014-02-02 Let's Code Jumi #292: Unit Tests (Part 3) Download
2014-02-12 Let's Code Jumi #293: Unit Tests (Part 4) Download
2014-02-13 Let's Code Jumi #294: Network Layer (Part 1) Download
2014-02-15 Let's Code Jumi #295: Network Layer (Part 2) Download
2014-02-18 Let's Code Jumi #296: Network Layer (Part 3) Download
2014-02-22 Let's Code Jumi #297: Network Layer (Part 4) Download
2014-03-02 Let's Code Jumi #298: Network Layer (Part 5) Download
2014-03-03 Let's Code Jumi #299: Network Layer (Part 6) Download
2014-03-06 Let's Code Jumi #300: Unit Tests (Part 5) Download
2014-03-10 Let's Code Jumi #301: Unit Tests (Part 6) Download
2014-03-12 Let's Code Jumi #302: Unit Tests (Part 7) Download
2014-03-19 Let's Code Jumi #303: Unit Tests (Part 8) Download
2014-03-21 Let's Code Jumi #304: Daemon Shutdown (Part 1) Download
2014-04-01 Let's Code Jumi #305: Daemon Shutdown (Part 2) Download
2014-04-04 Let's Code Jumi #306: Disconnecting Download
2014-05-01 Let's Code Jumi #307: Releasing Resources Test (Part 1) Download
2014-05-05 Let's Code Jumi #308: Releasing Resources Test (Part 2) Download
2014-05-09 Let's Code Jumi #309: Releasing Resources Test (Part 3) Download
2014-05-21 Let's Code Jumi #310: Stopping Threads (Part 1) Download
2014-05-26 Let's Code Jumi #311: Stopping Threads (Part 2) Download
2014-05-29 Let's Code Jumi #312: Stopping Threads (Part 3) Download
2014-05-31 Let's Code Jumi #313: Releasing Resources Test (Part 4) Download
2014-06-14 Let's Code Jumi #314: Closing Sockets (Part 1) Download
2014-06-18 Let's Code Jumi #315: Closing Sockets (Part 2) Download
2014-06-22 Let's Code Jumi #316: Closing Sockets (Part 3) Download
2014-06-28 Let's Code Jumi #317: Closing Sockets (Part 4) Download
2014-07-03 Let's Code Jumi #318: Multiple Clients (Part 1) Download
2014-07-06 Let's Code Jumi #319: Multiple Clients (Part 2) Download
2014-07-09 Let's Code Jumi #320: Timeouts (Part 1) Download
2014-07-13 Let's Code Jumi #321: Timeouts (Part 2) Download
2014-07-17 Let's Code Jumi #322: Timeouts (Part 3) Download
2014-07-20 Let's Code Jumi #323: Flakiness (Part 1) Download
2014-07-29 Let's Code Jumi #324: Flakiness (Part 2) Download
2014-07-29 Let's Code Jumi #325: Flakiness (Part 3) Download
2014-07-29 Let's Code Jumi #326: Flakiness (Part 4) Download
2014-08-06 Let's Code Jumi #327: Shutdown Timeouts (Part 1) Download
2014-08-09 Let's Code Jumi #328: Shutdown Timeouts (Part 2) Download
2014-08-12 Let's Code Jumi #329: Shutdown Timeouts (Part 3) Download
2014-08-15 Let's Code Jumi #330: Shutdown Timeouts (Part 4) Download
2014-08-18 Let's Code Jumi #331: Shutdown Timeouts (Part 5) Download
2014-08-25 Let's Code Jumi #332: Lifecycle Messages (Part 1) Download
2014-08-28 Let's Code Jumi #333: Lifecycle Messages (Part 2) Download
2014-08-30 Let's Code Jumi #334: Lifecycle Messages (Part 3) Download
2014-09-03 Let's Code Jumi #335: Suite Configuration (Part 1) Download
2014-09-17 Let's Code Jumi #336: Suite Configuration (Part 2) Download
2014-10-01 Let's Code Jumi #337: Suite Configuration (Part 3) Download
2014-10-19 Let's Code Jumi #338: Daemon Configuration (Part 1) Download
2014-10-23 Let's Code Jumi #339: Daemon Configuration (Part 2) Download
2014-10-28 Let's Code Jumi #340: Daemon Configuration (Part 3) Download
2014-12-02 Let's Code Jumi #341: Unit Tests (Part 1) Download
2014-12-11 Let's Code Jumi #342: Unit Tests (Part 2) Download
2014-12-14 Let's Code Jumi #343: Phase Change Pattern Download
2014-12-27 Let's Code Jumi #344: Generic Properties (Part 1) Download
2015-01-02 Let's Code Jumi #345: Generic Properties (Part 2) Download
2015-01-05 Let's Code Jumi #346: Generic Properties (Part 3) Download
Theme: Refactoring - Java 7 Migration (ongoing)
2015-01-14 Let's Code Jumi #347: Bytecode Assertions (Part 1) Download
2015-01-16 Let's Code Jumi #348: Bytecode Assertions (Part 2) Download
2015-01-25 Let's Code Jumi #349: Bytecode Assertions (Part 3) Download
2015-02-01 Let's Code Jumi #350: Java 7 Language Level Download
2015-02-11 Let's Code Jumi #351: NIO.2 Migration (Part 1) Download
2015-02-25 Let's Code Jumi #352: NIO.2 Migration (Part 2) Download
2015-02-28 Let's Code Jumi #353: NIO.2 Migration (Part 3) Download
2015-03-20 Let's Code Jumi #354: NIO.2 Migration (Part 4) Download

Downloads of All Episodes

Let's Code Dimdwarf

Shows the development of a highly complex distributed application server using TDD. The project's implementation was well under way when the Let's Code series started (7000 LOC production code, 9000 LOC test code).

Project Web Site: dimdwarf.sourceforge.net
Source Code: github.com/luontola/dimdwarf

Episodes

Theme: Introduction 30 min
2010-09-22 Let's Code Dimdwarf #1: Introducing the Project Download
Theme: Logging Out 1 h 21 min
2010-09-24 Let's Code Dimdwarf #2: Let the Coding Begin Download
2010-09-27 Let's Code Dimdwarf #3: Responding to Logout Download
2010-09-29 Let's Code Dimdwarf #4: Tidying Logout Tests Download
Theme: Asynchronous Testing Tools 5 h 13 min
2010-10-02 Let's Code Dimdwarf #5: Asynchronous Testing Tools Download
2010-10-05 Let's Code Dimdwarf #6: Tumbling with Exception Messages Download
2010-10-10 Let's Code Dimdwarf #7: Growing a Fluent API Download
2010-10-12 Let's Code Dimdwarf #8: Escape from Refactoring Hell Download
2010-10-14 Let's Code Dimdwarf #9: Second Asynchronous Use Case Download
2010-10-18 Let's Code Dimdwarf #10: Add Synchronization Download
2010-10-23 RECAP: Let's Code Dimdwarf #1-10 Download
2010-10-27 Let's Code Dimdwarf #11: Reuse via Deduplication Download
2010-10-30 Let's Code Dimdwarf #12: Right Refactoring Path Download
2010-11-03 Let's Code Dimdwarf #13: Assertion Error Messages Download
2010-11-04 Let's Code Dimdwarf #14: Covering All Corners Download
2010-11-06 Let's Code Dimdwarf #15: Matcher Mismatch Download
2010-11-07 Let's Code Dimdwarf #16: Valuing Ambiguity Download
Theme: Single Responsibility Principle in Network Tests 1 h 19 min
2010-11-08 Let's Code Dimdwarf #17: Proof of the Pudding Download
2010-11-09 Let's Code Dimdwarf #18: Revenge of the Hack Download
2010-11-10 Let's Code Dimdwarf #19: Close of the Split Download
Theme: Return of the AsynchronousSink 57 min
2010-11-12 Let's Code Dimdwarf #20: Make It Right Download
2010-11-26 RECAP: Let's Code Dimdwarf #11-20 Download
2010-11-27 Let's Code Dimdwarf #21: Ambiguity Paid Off Download
Theme: From One to Many Clients 3 h 49 min
2010-12-08 Let's Code Dimdwarf #22: Preparatory Refactoring Download
2010-12-10 Let's Code Dimdwarf #23: Refactoring Driven by End-to-End Tests Download
2010-12-12 Let's Code Dimdwarf #24: Merging Classes for Higher Cohesion Download
2010-12-15 Let's Code Dimdwarf #25: Return to Sender Download
2010-12-22 Let's Code Dimdwarf #26: Avoid Rushing Download
2010-12-23 Let's Code Dimdwarf #27: Extracting ClientRunner Download
2010-12-28 Let's Code Dimdwarf #28: Test the Test Download
2011-01-05 Let's Code Dimdwarf #29: Authenticating Multiple Clients Download
2011-01-08 Let's Code Dimdwarf #30: Thoughts on YAGNI Download
2011-01-19 RECAP: Let's Code Dimdwarf #21-30 Download
Theme: Application Loading Tests 4 h 45 min
2011-01-24 Let's Code Dimdwarf #31: Generics Magic Download
2011-01-28 Let's Code Dimdwarf #32: Application Loading Test Names Download
2011-01-31 Let's Code Dimdwarf #33: Extracting a Sandbox Download
2011-02-03 Let's Code Dimdwarf #34: Unique Temporary Directories Download
2011-02-07 Let's Code Dimdwarf #35: Test-After Download
2011-02-11 Let's Code Dimdwarf #36: Safety Net Download
2011-02-15 Let's Code Dimdwarf #37: Refactoring Download
2011-02-19 Let's Code Dimdwarf #38: More Refactoring Download
2011-02-23 Let's Code Dimdwarf #39: More Test Cases Download
2011-03-01 Let's Code Dimdwarf #40: Better Asserts Download
2011-03-06 RECAP: Let's Code Dimdwarf #31-40 Download
2011-03-09 Let's Code Dimdwarf #41: Class Loader Trouble Download
Theme: Manual DI Spike 2 h 33 min
2011-03-13 Let's Code Dimdwarf #42: Without DI Frameworks Download
2011-03-17 Let's Code Dimdwarf #43: It's Alive! Download
2011-03-24 Let's Code Dimdwarf #44: Making the Dependencies Explicit Download
2011-03-28 Let's Code Dimdwarf #45: Layers of Indirection Download
2011-04-04 Let's Code Dimdwarf #46: Encapsulated API Download
2011-04-10 Let's Code Dimdwarf #47: Manual DI vs. Guice Download
Theme: Command Line Parsing 37 min
2011-04-24 Let's Code Dimdwarf #48: Command Line Parsing Download
Theme: Session Messages (ongoing)
2011-04-28 Let's Code Dimdwarf #49: Session Messages Roadmap Download
2011-04-30 Let's Code Dimdwarf #50: Decoding Session Messages Download
2011-05-04 RECAP: Let's Code Dimdwarf #41-50 Download
2011-05-08 Let's Code Dimdwarf #51: Walking Skeleton Download
2011-05-12 Let's Code Dimdwarf #52: Progressive Deepening Download
2011-05-14 Let's Code Dimdwarf #53: Fixing Encapsulation Download
2011-05-19 Let's Code Dimdwarf #54: Timestamp Ordering Download
2011-05-29 Let's Code Dimdwarf #55: Pretty Printing Download
2011-06-02 Let's Code Dimdwarf #56: Timestamp Clock Download
2011-06-09 Let's Code Dimdwarf #57: Thread-Safe Clock Download
2011-06-15 Let's Code Dimdwarf #58: Session IDs Download
2011-07-06 Let's Code Dimdwarf #59: Session ID Mapping Download
2011-07-17 Let's Code Dimdwarf #60: Smells Like State Machine Download
2011-07-24 Let's Code Dimdwarf #61: State Machine Download
2011-08-06 Let's Code Dimdwarf #62: Refactoring Domino Download
2011-08-14 Let's Code Dimdwarf #63: You Will Be Assimilated Download
2011-08-21 Let's Code Dimdwarf #64: Asynchronous State Machine Download
2011-09-05 Let's Code Dimdwarf #65: Feature Complete Download
2011-09-13 Let's Code Dimdwarf #66: State Machine DSL Download
2011-09-28 Let's Code Dimdwarf #67: Hide SessionHandle Download
2011-10-02 Let's Code Dimdwarf #68: Session API Download
2011-10-08 Let's Code Dimdwarf #69: Commit Requests Download

Downloads of All Episodes

Let's Code Text Adventure

Shows the development of a small homework, such as is found on introductory programming courses, using TDD.

Source Code: github.com/luontola/text-adventure

Episodes

Theme: Project Setup & End-to-End Test 35 min
2010-11-15 Let's Code Text Adventure #1 Download
Theme: Domain Logic 1 h 17 min
2010-11-15 Let's Code Text Adventure #2 Download
2010-11-15 Let's Code Text Adventure #3 Download
2010-11-15 Let's Code Text Adventure #4 Download
Theme: Text UI 50 min
2010-11-15 Let's Code Text Adventure #5 Download
2010-11-15 Let's Code Text Adventure #6 Download
Theme: Refactoring 1 h 22 min
2010-11-28 Let's Code Text Adventure #7 Download
2010-11-28 Let's Code Text Adventure #8 Download
2010-11-28 Let's Code Text Adventure #9 (end) Download

Downloads of All Episodes