An Introduction to Elliptic Curve Cryptography: With Math!

by

Modern cryptography is a very murky subject for many people, so today I will try to explain to you one of the more complex subjects, Elliptic Curves. Many of you may have heard their name before, but likely don’t know much about them beyond that. To begin, I will describe what an elliptic curve is.

Intro to Software Methodologies

by

Software Engineering is about more than just writing code. It is a complex process that has a lot of moving parts. Requirements gathering, planning, testing, deployment and source control management are just a few of the pieces to the software engineering puzzle. So how do we manage all this complexity? Software methodologies come to the rescue.

Twelve-Factor Apps and Containers

by

In the past we would often treat a server as a machine which has a variety of roles. A single server may be responsible for serving web content, email, processing background jobs, and even hosting a database system. Your application is really only one of the many things that runs on that machine.

Keep Your App on the Rails with BDD – Part 1

by

A common way to describe requirements on Agile projects is through the use of user story mapping, and, as a result, user stories. This post will not cover this process, but rather the process of taking an existing set of user stories and leveraging them within our development workflow to ensure that an application is built as accurately and efficiently as possible. To this effect, we will set up tools (Rails, RSpec, Capybara, FactoryGirl, and Guard, to be precise) for implementing our app using behavior-driven development. Structuring our app in this way gives us much better odds of producing robust, low-defect code that delivers on the requirements we set out to build.

Chrome Extension Basics

by

I use Chrome extensions all the time and decided it was time to figure out how to make my own.  I found it to be incredibly easy and I’d like to share with you some of the basics, as well as an example of an extension I made.  Let’s get started!

Android Tip: adb reverse

by

I work from all over the place: Home, on public transit, the office, coffee shops, etc.

A big challenge to developing android apps in an environment where my laptop and phone are on different networks (wifi vs. LTE, or laptop tethered through phone) is the inability for my phone to see the API server that is often running locally on my laptop. Here is a simple tip to allow your phone to hit the backend over ADB and a usb cable.

Drinking The Koolixir – Part 2

by

To get a better handle on Erlang’s behavior, I decided to install a popular set of tools for debugging and performance profiling: EPER. I think it stands for “Erlang PERformance tools”, but it could also mean “Everything Proves Erlang Rules” or “Egrets Prefer to Eat Robots” or really anything for that matter. One thing is for certain, however: getting these tools built and running on Mac OS X was fraught with danger and build errors.

The User Experience Team of One: A Research and Design Survival Guide

by

I’ve recently made it one of my goals to learn more about UX and design.  To that end, I read a book that was highly recommended by our Grio designers, The User Experience Team of One: A Research and Design Survival Guide, by Lean Buley. The book is written for people who are or want to be UX professionals, with a focus on those who either the only person in their company working on UX or who are in some way UX evangelists in their organizations.  Although the intended audience of the book is UX professionals, there were also number of tips and ideas that a company like Grio can find useful.  On many projects, especially when budgets and time are tight, Grio takes on the role of UX evangelist for our clients.

Parallel Computing with a GPU

by

Graphic Processor Units are becoming more and more important in recent years and are spreading into many different fields, some of which include: computational finance, defense and intelligence, machine learning, fluid dynamics, structural mechanics, electronic biology, physics, chemistry, numerical analysis and security. There are many reasons why a person should learn how to write code for a GPU. For example, GPU’s have been used to successfully decrypt passwords (add reference) in record time, a 25-GPU cluster is able to crack any standard Windows password (95^8 combinations) in less than 6 hours. Other applications of the GPU include data mining for Bitcoin and also applying machine learning for sentimental analysis on tweets.

Seeing With the Eye Vs. the Mind

by

I recently gave a tech talk at Grio on the topic of Designing With The Photo: Cropping Methods and Other Techniques. One aspect of this talk covered different ways of seeing photos. I want to share this part of my talk in this blog post.