November 10th, 2015
After several month’s of work, I am happy to announce the first release of GrapeTokenAuth, a token authentication solution for Grape APIs. GTA is a drop-in authentication solution for Grape APIs that aims to maintain a low direct-dependency footprint. GrapeTokenAuth is a port of devise_token_auth, whereas DTA is a devise and rails solution GTA depends on grape and warden. GrapeTokenAuth has built in compatibility with two mature front end libraries: ng-token-auth (for angular) and jToker (for jQuery). If you are build Grape APIs and have been looking for authentication, grape_token_auth may suit your needs.
September 15th, 2015
Grape is a fantastic framework for building an API. Of course, one of the most fundamental aspects of any API is authentication. The grape_token_auth gem is approaching its first major release (0.1.0) and this will provide a “getting started” guide.
January 27th, 2015
For those familiar with Sublime Text and have since moved to vim you probably miss the Cmd+P feature that allowed you to find a file in your working directory through a fuzzy match. The two main plugin contenders for fuzzy file finding in vim would arguably be Ctrl-P and Command-T. Personally I perfer Ctrl-P because it does not have a compiled extension and it offers a few niceties such as MRU and buffer switcher. Here’s a gif of it in action:
December 20th, 2014
1 is not a prime number.
November 2nd, 2014
Recently, I have been exploring options for creating RESTful APIs in the Ruby. Concurrently, I have been investigating Sinatra and its father-framework padrino to create a lighter weight web app. While Sinatra in itself is a suitable solution for APIs, grape is a micro-framework specifically geared towards creating them. It also mounts well alongside Sinatra apps so it follows that it should play well with padrino. Below, I present a method for setting up a grape API in padrino and two methods for testing the API one using plain rspec with rack-test and another using airborne. The complete repo for this process can be found here at padrino-grape-example.
October 22nd, 2014
While building a REST API I began examining th issue of creating child objects that do not already have a parent object created. Consider the following scenario: Books have one author and author’s have many books. What happens when you want to add a book but have not yet created the author resource. Further, what happens if you do not want to add an author without at least one book?
July 20th, 2014
I am a huge fan of Tim Pope’s fugitive git plugin for Vim. I rarely have to drop
out of vim to do any git related functions. However, I found that
--fixup is not
well supported in fugitive, but can be easily be achieved. One of my workflows with git is to
add fixup commits whenever I am doing revisions due to code review or otherwise.
When the code is ready for a pull request, I do a rebase with
I get a nice clean git history. Technically, I am re-writing history with this
flow but I much prefer a clean and organized commit history.
June 13th, 2014
You probably do the same thing when you arrive every morning at the office if you are a developer. Fire up your editor, open your chat program, probably a console or two. At the end of the day you probably shut all of that down, and it is a pretty stable and recurrent flow, which means that it can be automated! As an exercise, I wanted to automate my own daily bookend processes and I’d like to share how I accomplished that. As a short preface, this post focuses on automation in OSX but similar tools are probably available in most linux distros. My tools of choice for this are:
May 25th, 2014
Slate is an open source window management tool geared towards power users. It obviates the use of many paid tool such as Divvy and Stay. I am a long time Divvy user and was considering using Stay to manage window arrangements, until I found Slate. Slate is configured through a
.slate file that will be familiar to users of vim. The full documentation can be found on Slate’s github page and I highly recommend this article on getting set up. What I would like to share below is a quick and dirty setup with slate that I found works for removing my need for Divvy, adding a cool new feature, and demonstrating a simple window management.
April 26th, 2014
While trying to set up a VPS running Ubuntu 14.04 I was unable to compile Ruby 2.1.1 (which was the current version). I kept running into errors such as: