Harfang's Perch

  • Posts
  • About
  • RSS
  • Atom
  • English
  • 한국어
  • My Favorite Ruby Rogues Episodes - Book Club Series

    2017-02-18

    As I taught myself to program, Ruby Rogues podcast has been invaluably helpful to me. Books and blog posts could teach me specific technological knowledge, but they couldn’t provide me a broader perspective about programming. Ruby Rogues podcast filled that gap. Charles Max Wood, the host of the show, and panelists and guests have my deepest gratitude. You can read the separate post that I wrote about Ruby Rogues here.

    When I first started writing this blog post, I wanted to pick my favorite episodes out of the 300 Ruby Rogues episodes. But as I went through the list of episodes, I realized that I liked almost all of them. They all taught me something.

    Read more
  • How to Create Minimal Elixir Web App With Plug and Cowboy and Deploy to Heroku

    2017-02-09

    This post will go through how to create a minimal web application in Elixir just using Cowboy, an HTTP server for Erlang/OTP, and Plug, a composable web middleware for Elixir, and deploy it to Heroku.

    Since you are knowledgeable enough to know about and look for a barebone approach, I assume that you have a basic familiarity with both Elixir and web development.

    Read more
  • Quora Q&A Session With David Heinemeier Hansson (Jan 25, 2017)

    2017-01-27

    This is a copy of a Q&A session with David Heinemeier Hansson hosted by Quora on January 25, 2017. Here is the link to the original Quora site. All questions are posted by Quora users and answered by DHH.

    Read more
  • Technical Skills Are Not Enough

    2017-01-25

    Programming is not an easy skill to learn. This is evidently clear when you try to teach absolute beginners how to program. It requires a tremendous amount of underlying knowledge and training just to get them started with it. More advanced topics such as algorithmic analysis, hardware specific optimization, or distributed concurrent programming, take even more time and dedication to learn. It is no wonder that technical skills are so highly regarded among programmers.

    Read more
  • Various Quicksort Implementations in Elixir

    2017-01-20

    Elixir has built-in sort functions Enum.sort/1 and Enum.sort/2. For list type, it calls Erlang :lists.sort/1 and :lists.sort/2 that use merge sort algorithm. For other Elixir types that implement Enumerable protocol, Elixir implements its own merge sort. Here’s the link to the source code.

    Since Elixir list is implemented as singly linked list, merge sort is the obvious choice for sorting. But I’ve never implemented quicksort with a linked list before, so I decided to give it a try with Elixir.

    Read more
  • How to Enable Tail Call Optimization in Ruby

    2017-01-02

    This post assumes basic understanding of recursion and Ruby.

    What is tail call optimization

    Tail call optimization (TCO) is an optimization strategy for tail-recursive procedures. It is useful in preventing stack overflow when using recursion because it limits the call stack size of a recursive procedure to one.

    Read more
  • Basics of Ruby Method Dispatch System (Part 2)

    2016-12-24

    In this post, I will explain the basics of how a method call works in Ruby. I’ll assume that readers have some familiarity with Ruby language.

    The post is in two parts. The first part covers what you need to know about typical Ruby program. It covers: ancestors hierarchy, class inheritance, and module include and prepend.

    The second part digs into tools that are used less often. It covers: singleton method, singleton class, and class methods.

    Read more
  • Basics of Ruby Method Dispatch System (Part 1)

    2016-12-12

    In this post, I will explain the basics of how a method call works in Ruby. I’ll assume that readers have some familiarity with Ruby language.

    The post is in two parts. The first part covers what you need to know about typical Ruby program. It covers: ancestors hierarchy, class inheritance, and module include and prepend.

    The second part digs into tools that are used less often. It covers: singleton method, singleton class, and class methods.

    Read more
  • Common Misconceptions of Beginners About Type System

    2016-11-28

    One of the best tips I got about writing a blog post is to write posts that I would have wanted to read a year ago. This is one of them. I hope this would clarify misconceptions commonly held by beginners about type system.

    Read more
  • Elixir as First Programming Language (Part 2)

    2016-11-21

    This post is adapted from my talk at Seoul Elixir Meetup on November 16, 2016.

    Elixir might not be the first language that comes to your mind when you think about which programming language to teach to beginners. Languages like Python, Ruby, JavaScript, C/C++, or Java are more popular choices. But I think Elixir has some unique advantages that makes it a serious candidate.

    Read more
1 2 3 4 5 6