I’m Nathan Kleyn, and I am a web developer hailing from the heart of London, UK. I currently work for UK based web-startup Intent HQ, and spend my days spreading the Ruby and Haskell love. I also work with JavaScript, C, Bash, IO, HTML, and CSS.

Nathan's articles

  1. Natural Language Processing with Ruby: n-grams

    Natural Language Processing (NLP for short) is the process of processing written dialect with a computer. The processing could be for anything – language modelling, sentiment analysis, question answering, relationship extraction, and much more. In this series, we’re going to look at methods for performing some basic and some more advanced NLP techniques on various […]

  2. Functional Programming Techniques with Ruby: Part III

    This entry is part 3 of 3 in the series Functional Programming Techniques with Ruby

    This entry is part 3 of 3 in the series Functional Programming Techniques with RubyIn part one of this series, we looked looked at the basics of functional programming and visited, in detail, immutability and side-effect free code. In part two, we explored the concepts of higher-order functions and currying, as well as the myriad […]

  3. Functional Programming Techniques With Ruby: Part II

    This entry is part 2 of 3 in the series Functional Programming Techniques with Ruby

    This entry is part 2 of 3 in the series Functional Programming Techniques with RubyIn part one of this series, we looked looked at the basics of functional programming and visited in detail immutability and side-effect free code. Today, we’re going to look at higher-order functions and currying, two amazingly useful functional style features that […]

  4. RubySource: Crafting Rubies: Best Practices While Cutting Gems

    To some, cutting gems is considered an art for the minerally inclined. In the Ruby world, however, gem cutting is a matter of life. Creating RubyGems can be easy , but also a trap for a novice. By following some general community best practices, you can create gems that can live in harmony within the Ruby ecosystem, and be enjoyed by consumers and contributors alike for years to come.

  5. Crafting Rubies: Best Practices While Cutting Gems

    To some, cutting gems is considered an art for the minerally inclined. In the Ruby world, however, gem cutting is a matter of life. Creating RubyGems can be easy, but also a trap for a novice. By following some general community best practices, you can create gems that can live in harmony within the Ruby […]

  6. RubySource: Ruby Metaprogramming: Part II

    Welcome back to Metaprogramming with Ruby! In part one we looked at what Metaprogramming is and how it works; we explored deep into the internals of Ruby’s method lookup system and walked through how creating Singleton Classes fits into that mechanism. Now for the good part: applying it all. Mocking objects for testing Some of the most useful features of Ruby’s metaprogramming have been shown off countless times in the vast array of testing frameworks available.

  7. Ruby Metaprogramming: Part II

    Welcome back to Metaprogramming with Ruby! In part one we looked at what Metaprogramming is and how it works; we explored deep into the internals of Ruby’s method lookup system and walked through how creating Singleton Classes fits into that mechanism. Now for the good part: applying it all.

  8. RubySource: Ruby Metaprogramming: Part I

    If you’re working with Ruby, chances are by now you’ve heard the word “metaprogramming” thrown around quite a lot. You may have even used metaprogramming, but not fully understood the true power or usefulness of what it can do. By the end of this article, you should have a firm grasp not only of what it is, but also what it capable of, and how you can harness one of Ruby’s “killer features” in your projects. What is “metaprogramming”

  9. Ruby Metaprogramming: Part I

    If you’re working with Ruby, chances are by now you’ve heard the word “metaprogramming” thrown around quite a lot. You may have even used metaprogramming, but not fully understood the true power or usefulness of what it can do. By the end of this article, you should have a firm grasp not only of what it is, but also what it capable of, and how you can harness one of Ruby’s “killer features” in your projects.