Matt Moore

C++

If you're reading this, you're probably at least a little familiar with map. The concept is fairly simple: Take a collection of values, and create a new collection of values
A simple example in Ruby…

Read

One important feature in functional programming is a concept known as currying. It is named after Haskell Curry
Currying describes the conversion of a…

Read

An API Gateway acts as a coupling device between clients and backends. Its goal is to restrict knowledge the client needs to have of the backend. The client should be able to use the API gateway using…

Read

I've been evangelizing functional programming a lot lately. I've been particularly interested in and pushing for Lisps. But I was recently asked, from my perspective, what is functional programming…

Read

The Haskell Setup: Confusing, Not Impossible

I've been on a functional programming quest of late, with my goal being to become familiar with at least a few functional languages. Earlier I posted…

Read

The two main types of projects in Clojure are apps and libraries. These can be created very easily

# New library
lein new mylib

# New app
lein new app hello-world

An app is a…

Read

Object-Oriented Programming Sucks
Throughout my career I've gradually come to dislike the way that "traditional" "get things done" languages like C++, Java and even Ruby have done things. Don't get…

Read

Ruby supports bitwise operators. Most languages support these operators. But most guides I've seen demonstrate these operators with binary values. What if we apply these in Ruby to arrays
If we have…

Read

Ruby » Ruby's Inject Method

Apr 24, 2017

In many other languages, if you have a list of things you are summing together, you would normally have a list of numbers and then a loop. Here's what I mean using Ruby

numbers = [1, 2, 5,
Read

What's a method

A method is just a function that is defined inside a class. Ruby has two types of methods: class and instance. A class method belongs to the class and cannot be called from an…

Read

Ruby differentiates between class variables and instance variables. For newcomers to Ruby, the difference might be difficult to grok. Let's examine the following class

class Robot
  require
Read

In an earlier post I began addressing a question that's been making the rounds: Should I use if statements? I've heard good programmers don't use them. You…

Read

I have been asked a lot lately about whether good programmers don't use if statements. I find this question amusing because it seems that those who ask about it almost have a fear of if statements. I…

Read

If you mostly develop on a MacBook Pro, you may find it difficult to upgrade to newer PostgreSQL servers. If you need to know how to install PostgreSQL on Mac OS to begin with, you should [read my…

Read

A while ago I had written about operator overloading in C++. I was asked about whether Ruby can do this—absolutely
Let's define a Ruby Box class, and override the + * / operators:

class
Read

Back in August I wrote up a sample executing a function 50 times in parallel using goroutines and channels. In that example, the code was as follows

package main

import "fmt"
import "time"
Read

In the past I've used threads in C++ and Java for parallel programming. But I'd heard that concurrency and parallelism is easier in Go. So I set out to understand the basics of concurrency and…

Read

Initial Environment Setup

There are different ways to install Ruby/Rails on Mac OS. I use three main tools:

  1. On Mac OS, you really should use Homebrew. Run the setup command…
Read

Homebrew Installation

First, I always use Homebrew. If you're using Mac OS, you really should use Homebrew. You can get it here.

Once brew is installed, run the following…

Read

I've been recently asked whether Google search is biased or not. I thought I'd do a quick review of the facts I can find. Here's what I've come up with.

This seems to have started with a video…

Read

Introduction to ORM (Object Relational Mapping) models and a beginning example of how to construct models. This is intended for those who are not familiar with ORMs. In a later video, I will show how…

Read

C++ » C++ Operator Overloading

Apr 16, 2016

Some languages, like C++, have a feature called "operator overloading". This allows us to use various operators with our classes in interesting ways
For example, let's say I have the following Box…

Read

Arch Linux on VirtualBox

How to install and configure Arch Linux for beginners, based on the Arch Linux Beginner's Guide.

Read

I just discovered an issue with audio/video playback (including during gaming): setting the audio output to HDMI speeds up the audio/video playback by 10%-20% (I'm guessing about the exact percent…

Read

Linux » Basic Linux Commands

Aug 24, 2014

Here are some good videos on basic Linux commands from the people at HakTip:

Linux Terminal 101 - Getting Started

Linux Terminal 101 - File

Read

This is a document produced by Microsoft in March, 2008. It documents what information Microsoft collects about its users and provides to law enforcement on request
I am posting this as I fear it…

Read

Security » SSH (Secure Shell)

Aug 24, 2014

What is SSH? It is a way to connect securely to another computer's shell. Why would you want to do this? Maybe you're on a public wifi hotspot and don't want other people to see your traffic. There…

Read

Most people manage their Linux servers using a program known as Secure Shell (SSH). SSH is a client-server application. When set up, you can connect to a server running SSH and control the entire…

Read

I just got myself an MSI GS60 Pro-052 laptop. The specs are

  • Intel i7 4710HQ
  • 12 GB 1600 MHz RAM (supports 16GB max)
  • nVidia GTX 870M 3GB GDDR5
  • 128 GB SSD
  • 1 TB 7200 RPM HD

Doing the install…

Read

I've recently begun looking into the global warming issue, trying to determine whether it's real or a hoax. For those not yet aware, the global warming issue has to do with many scientists claiming…

Read

Fedora 18 on VirtualBox

This screencast describes how to install Fedora 18 on VirtualBox. The host OS in this video is Arch Linux - my primary OS.

Read