| Practicing Ruby | https://practicingruby.com/ |
|
| https://practicingruby.com |
| About | https://practicingruby.com/about |
| Github | https://github.com/PracticingDeveloper/practicingruby.com |
| Safely evaluating user-defined formulas and calculations | https://practicingruby.com/articles/formula-processing |
| Problem discovery comes before problem solving | https://practicingruby.com/articles/problem-discovery |
| The anatomy of information in software systems | https://practicingruby.com/articles/information-anatomy |
| A self guided course on streams, files, file formats, and sockets | https://practicingruby.com/articles/study-guide-1 |
| Sustainable maintenance: Focus on quality first | https://practicingruby.com/articles/sustainable-foss-quality |
| Hunt the Wumpus: An exercise in creative coding | https://practicingruby.com/articles/wumpus |
| Infrastructure automation by example | https://practicingruby.com/articles/infrastructure-automation |
| Exploring low-level computing concepts with Ruby | https://practicingruby.com/articles/low-level-computing |
| Making incremental improvements to legacy systems | https://practicingruby.com/articles/improving-legacy-systems |
| Using data to explore questions about our lives | https://practicingruby.com/articles/exploratory-data-analysis |
| Implementing a minimal HTTP server in Ruby | https://practicingruby.com/articles/implementing-an-http-file-server |
| Simulating tiny worlds for fun and profit | https://practicingruby.com/articles/simulating-tiny-worlds |
| A low cost approach to working on side projects | https://practicingruby.com/articles/low-cost-approach-to-side-projects |
| Avoiding brittleness in data munging projects | https://practicingruby.com/articles/avoiding-brittleness-in-data-munging |
| From adhoc script to object-oriented program | https://practicingruby.com/articles/from-scripting-to-oop |
| The Law of Demeter: Some archaeological notes | https://practicingruby.com/articles/demeter-archaeology |
| Cleaning up bloated method interfaces | https://practicingruby.com/articles/cleaning-up-bloated-method-interfaces |
| Debugging without the doom and gloom | https://practicingruby.com/articles/debugging-without-doom-and-gloom |
| Code reuse in Ruby: It's complicated! | https://practicingruby.com/articles/code-reuse-is-complicated |
| A gentle introduction to actor-based concurrency | https://practicingruby.com/articles/gentle-intro-to-actor-based-concurrency |
| A self-guided tour of an interesting codebase | https://practicingruby.com/articles/self-guided-code-tour |
| Parsing JSON the hard way | https://practicingruby.com/articles/parsing-json-the-hard-way |
| An adventure in prototypes | https://practicingruby.com/articles/adventure-in-prototypes |
| Simulating the emergent behavior of ant colonies | https://practicingruby.com/articles/ant-colony-simulation |
| Expanding your code reading horizons | https://practicingruby.com/articles/expanding-your-code-reading-horizons |
| Understanding the relationships between objects | https://practicingruby.com/articles/relationships-between-objects |
| Guidelines for growing a stable codebase | https://practicingruby.com/articles/growing-a-stable-codebase |
| Process spawning patterns | https://practicingruby.com/articles/process-spawning-patterns |
| Building the rstat.us API: Choices and challenges | https://practicingruby.com/articles/building-the-rstatus-api |
| Event loops demystified | https://practicingruby.com/articles/event-loops-demystified |
| Temporal coupling and the Law of Demeter | https://practicingruby.com/articles/temporal-coupling-and-the-law-of-demeter |
| A practical application of basic statistical methods | https://practicingruby.com/articles/intro-to-basic-statistical-methods |
| Spiking is not cowboy coding | https://practicingruby.com/articles/spiking-is-not-cowboy-coding |
| Mock objects deeply influence design | https://practicingruby.com/articles/mock-objects-deeply-influence-design |
| Refactoring is not redesign | https://practicingruby.com/articles/refactoring-is-not-redesign |
| End-to-end testing is essential | https://practicingruby.com/articles/end-to-end-testing-is-essential |
| Lessons learned from my TDD self-study | https://practicingruby.com/articles/tdd-lessons-learned |
| Responsibility-centric vs. data-centric design | https://practicingruby.com/articles/responsibility-centric-vs-data-centric-design |
| Implementing the Active Record pattern, Part 2 | https://practicingruby.com/articles/implementing-the-active-record-pattern-2 |
| The hidden costs of inheritance | https://practicingruby.com/articles/hidden-costs-of-inheritance |
| Implementing the Active Record pattern, Part 1 | https://practicingruby.com/articles/implementing-the-active-record-pattern-1 |
| Writing confident code | https://practicingruby.com/articles/confident-ruby |
| Persisting relations in a polyglot world | https://practicingruby.com/articles/persisting-relations-in-a-polyglot-world |
| Solving the "Scoring Predictions" kata | https://practicingruby.com/articles/solving-the-scoring-predictions-kata |
| Tricks for working with text and files | https://practicingruby.com/articles/tricks-for-working-with-text-and-files |
| What are the costs and benefits of TDD? | https://practicingruby.com/articles/tdd-costs-and-benefits |
| Lessons learned from coding in the danger zone | https://practicingruby.com/articles/coding-in-the-danger-zone |
| Using games to practice domain modeling | https://practicingruby.com/articles/using-games-to-practice-domain-modeling |
| Criteria for disciplined inheritance, Part 2 | https://practicingruby.com/articles/disciplined-inheritance-2 |
| Criteria for disciplined inheritance, Part 1 | https://practicingruby.com/articles/disciplined-inheritance-1 |
| Framework design and implementation, Part 2 | https://practicingruby.com/articles/framework-design-and-implementation-2 |
| Framework design and implementation, Part 1 | https://practicingruby.com/articles/framework-design-and-implementation-1 |
| Building a better Turing tarpit | https://practicingruby.com/articles/spiral-staircase-of-refactoring |
| Exploring the depths of a Turing tarpit | https://practicingruby.com/articles/exploring-a-turing-tarpit |
| Patterns for building excellent examples | https://practicingruby.com/articles/patterns-for-building-excellent-examples |
| The qualities of great software | https://practicingruby.com/articles/qualities-of-great-software |
| Thoughts on "Arguments and Results", Part 2 | https://practicingruby.com/articles/arguments-and-results-2 |
| Thoughts on "Arguments and Results", Part 1 | https://practicingruby.com/articles/arguments-and-results-1 |
| Working with binary file formats | https://practicingruby.com/articles/binary-file-formats |
| Domain specific API construction | https://practicingruby.com/articles/domain-specific-apis |
| From requirements discovery to release | https://practicingruby.com/articles/from-requirements-discovery-to-release |
| Building Unix-style command line applications | https://practicingruby.com/articles/building-unix-style-command-line-applications |
| Ruby and the singleton pattern don't get along | https://practicingruby.com/articles/ruby-and-the-singleton-pattern-dont-get-along |
| "Unobtrusive Ruby" in Practice | https://practicingruby.com/articles/unobtrusive-ruby-in-practice |
| Learning new things step-by-step | https://practicingruby.com/articles/learning-new-things-step-by-step |
| Thoughts on regression testing | https://practicingruby.com/articles/regession-testing |
| Building Enumerable & Enumerator in Ruby | https://practicingruby.com/articles/building-enumerable-and-enumerator |
| A closure is a double edged sword | https://practicingruby.com/articles/closures-are-complicated |
| How to attack sticky problems | https://practicingruby.com/articles/attacking-sticky-problems |
| Ways to load code | https://practicingruby.com/articles/ways-to-load-code |
| Structural Design Patterns | https://practicingruby.com/articles/structural-design-patterns |
| Creational Design Patterns | https://practicingruby.com/articles/creational-design-patterns |
| Connascence as a Software Design Metric | https://practicingruby.com/articles/connascence |
| SOLID Design Principles | https://practicingruby.com/articles/solid-design-principles |
| How to practice, Part 2 | https://practicingruby.com/articles/how-to-practice-2 |
| How to practice, Part 1 | https://practicingruby.com/articles/how-to-practice-1 |
| Thoughts on Mocking, Part 2 | https://practicingruby.com/articles/thoughts-on-mocking-2 |
| Thoughts on Mocking, Part 1 | https://practicingruby.com/articles/thoughts-on-mocking-1 |
| Dirty Little Secrets about Testing | https://practicingruby.com/articles/dirty-testing-secrets |
| Interesting Ruby Hacker-Writers | https://practicingruby.com/articles/ruby-hacker-writers |
| Interesting Ruby Hackers | https://practicingruby.com/articles/ruby-hackers |
| Duck Typing in Practice, Part 2 | https://practicingruby.com/articles/duck-typing-in-practice-2 |
| Duck Typing in Practice, Part 1 | https://practicingruby.com/articles/duck-typing-in-practice-1 |
| Obfuscations of Christmas Past | https://practicingruby.com/articles/obfuscations-of-christmas-past |
| Rapid Prototyping | https://practicingruby.com/articles/rapid-prototyping |
| Uses for Modules, Part 4 | https://practicingruby.com/articles/uses-for-modules-4 |
| Addendum to Uses For Modules, Part 3 | https://practicingruby.com/articles/uses-for-modules-3a |
| Uses for Modules, Part 3 | https://practicingruby.com/articles/uses-for-modules-3 |
| Uses for Modules, Part 2 | https://practicingruby.com/articles/uses-for-modules-2 |
| Uses for Modules, Part 1 | https://practicingruby.com/articles/uses-for-modules-1 |
| Meditations on Bad and Good Code, Part 2 | https://practicingruby.com/articles/meditations-on-bad-and-good-code-2 |
| Meditations on Bad and Good Code, Part 1 | https://practicingruby.com/articles/meditations-on-bad-and-good-code-1 |
| Testing Private Methods | https://practicingruby.com/articles/testing-private-methods |
| Writing Configurable Applications, Part 2 | https://practicingruby.com/articles/configurable-applications-2 |
| Writing Configurable Applications, Part 1 | https://practicingruby.com/articles/configurable-applications-1 |
| Ruby's method lookup path, Part 2 | https://practicingruby.com/articles/method-lookup-2 |
| Ruby's method lookup path, Part 1 | https://practicingruby.com/articles/method-lookup-1 |