Travis Tidwell

Web technology, software, and everything else that bores my wife..

An Online RSA Public and Private Key Generator

I was recently in a meeting where a person needed to generate a private and public key for RSA encryption, but they were using a PC (Windows). This is something that is easily done via a terminal using ssh-keygen on Mac and Linux, however on Windows… this tool is not easily accessible to the non-technical person.

It then occurred to me (and a head slapped followed), that I have fairly recently published a library for Javascript RSA encryption which includes private and public key generation for RSA encryption. Not only that, but this is all available online.

So, if anyone needs an online RSA key generator, look no further than http://travistidwell.com/jsencrypt/demo.

Sudo Make Me a Sandwich… Literally!

So, I have been preparing for my presentation that I will be giving to the jQuery Conference, where I will be talking about automating and testing the web using a combination of jQuery, Node.js, and Phantom.js. This presentation will primarily go over a new library that I wrote called jQuery.go.js, which takes the jQuery interface and brings it into Node.js for the sole purpose of web automation and testing using the Phantom.js headless browser. It is a project that I am very happy with so when you get a chance, check it out and give me your feedback…

But what REALLY excites me about this presentation is the project I came up with that demonstrates the power of these three JavaScript technologies combined. What I basically created was a command line application that allows you to order a sandwich from Jimmy John’s website. This should strike a chord with many geeks out there, since there is a legendary XKCD comic which I basically made real with this project…

So, without further adieu, I give you MakeMeASandwich.js!

Coder Soundtrack Volume 2

As most of you already know, I am a big fan of music and am a firm believer that a good coder listens to music while they code. For that reason, I am releasing my Coder Soundtrack volume 2 which is the latest of the music that I am listing to while I code. I hope you enjoy…

Using Phantom.js With Node.js

Recently, I have had much interest in building web automation and testing tools using Node.js. The challenge, however, is when using Node.js for building tests and automation, your options are pretty slim when picking your headless browser. While Zombie.js is a decent browser, it uses JSDOM for its layout engine, whereas most of the web is ran on (or based off of) WebKit. This creates problems when trying to formulate accurate tests as well as benefit from the ongoing development into the WebKit engine. What really peaked my interest was the project called Phantom.js which is basically a headless WebKit browser that exposes a JavaScript API to interact with the browser.

Mobile Drupal With Sencha Touch

Yesterday, I gave a presentation to the Drupal Dallas Group over a technology that I have been really interested in lately called Sencha Touch. Basically, this technology allows you to create a mobile application using an MVC web application framework based off of ExtJS. What is even more exciting is when you pair this technology with the Drupal CMS as a backend service for this mobile framework. The result is something very exciting.

My New Blog Using Octopress

Today I am launching my website using a new technology that REALLY excites me. For starters, this blog is built using the Jekyll system, which is basically a static website generator but allows you to install plugins, create layouts, as well as many other features that keep you from repeating yourself when building a website (DRY).

In addition to Jekyll, this blog is built using a technology that sits on top of Jekyll called Octopress, which simply provides a framework for building technology blogs… or in other words, it is a blogging engine for Nerds. Amazing stuff and I hope this enables me to easily add my thoughts from the past and the future.

A Better Library for JavaScript Asymmetrical RSA Encryption

I am a firm believer that JavaScript will eventually be the ubiquitous coding language of the future. Although there are many objections to this statement, I don’t think anyone can argue that it is the best poised for ubiquity considering it is now used in both server side (node.js) and obviously client side open web standards. And considering that this language did start out as a ‘toy’ language, I am often amazing at how far it has come in maturity in recent years. There is an area where I am most amazed at its progression, and that is with Encryption. For years, this area was pretty much dominated by the C and C++ languages (to which I am also a seasoned developer in), but now that JavaScript has made its way to the server, it is becoming recognized as a potential contender to this domination.

Authenticating Flatiron.js With Passport.js

So, I have fallen in love with Flatiron.js. For those who are not familiar with this framework, it is basically an application framework for Node.js. Obviously, it isn’t the only framework out there, but I would like to argue that it is THE ONLY framework doing things right with JavaScript on the server side. My reasons for this statement are backed by how it utilizes RVP instead of MVC considering the isomorphic nature of Server-side to Client-side libraries. For more foundation to this statement, please read Scaling Isomorphic Javascript Code; it is a fantastic read.

Regardless, one of my major complaints with Flatiron.js was that it lacks in OAuth. Looking around the Node.js community, there is a clear winner when it comes to OAuth, which is Passport.js. But, there is a problem… Passport.js was built on top of the Express.js applicaton framework and not Flatiron.js. Although, Express.js libraries are Connect.js compatible, and Flatiron.js is also Connect.js compatible, this isn’t enough to provide a clean integration between Passport.js and Flatiron.js. So, to solve this issue, I created a library that takes care of the integration work for you. It is called Flatiron Passport, and I would love for you to check it out…