Validation of API Calls With Ecto

After recently using elixir and phoenix to recreate the API for an old side project, I wanted to use Ecto’s embedded schemas, a schema that is not persisted to an underlying table, to validate the JSON coming into an API endpoint and get a workable domain object for the call before transforming it into the model persisted for the DB.

We’ll look at how I set up the sign-up and sign-in endpoints using the embeded schemas to validate the incoming JSON.

Read more.

Angular, Typescript, RequireJS, and More, Pt. 3

This is part 3 of our series. You can find part 1 here and part 2 here.

This post’s topic is unit testing. We’ll be using Mocha, Chai, and Sinon.JS. Everything will be run with Karma on PhantomJS, so we will be able to run this easily on a CI server such as Travis or Jenkins.

Read more.

Angular, TypeScript, RequireJS, and More, Pt. 2

This is part 2 of our series. Click here if you need to read part 1.

Now that we have our project set up, we can start building our application.

Read more.

Angular, TypeScript, RequireJS, and More, Pt. 1

As Angular 2 reaches closer and closer to completion, and as TypeScript releases newer and cooler features, one may want to be prepared for the coming TypeScript revolution. However, sometimes setting things up isn’t as clear as it should be. Fortunately for you, dear reader, I’ve done this a few times now, and am willing to help you out.

Over the course of a few posts, I’m not sure how many yet, we’ll go over setting up an Angular 1 project with the following technologies:

Read more.

Upgrading Your REPL

Read, evaluate, print, loop. A simple tool at the end of it all. Most languages come with one. Node, Ruby, and Python all have one. Even Lisp and Haskell come with them. There are even attempts at Java and C# ones. However, the default REPL is a little lackluster. All it usually does is read, evaluate, print, and loop, after all. There’s no autocomplete and no syntax highlighting, two features I greatly enjoy.

or is there…

Read more.