Projects Technology Web

Easily Transform JSON with json2json

I have been working on an auto-complete web service that searches Amazon’s Product Advertising API.  I built it in Node.js and using the APAC package made it really easy to query the API. The only thing that was extremely impractical was the JSON data returned by APAC.

Since Amazon’s API only returns data as XML, APAC uses xml2json to convert the XML to JSON. Unfortunately the resulting JSON is quite ugly. I wanted to be able to choose the data I needed and copy it to a new, clean JSON format. My solution was to create json2json.

json2json lets you create a template that describes how to transform the original JSON to a new structure. I wrote the Node.js package and example template in CoffeeScript because it has a much cleaner and simpler syntax than JavaScript. However, it is extremely simple to convert to JavaScript (click on “Try CoffeeScript”) and can easily be modified for use in a browser. Check out the (crude) documentation and example files and let me know what you think.

Projects Technology Web

FBAPI.js: Facebook JavaScript SDK Simplified

I’ve been working on Rembly using several javascript libraries: Spine.js, Mustache.js, ICanHaz.js, and Facebook’s JavaScript SDK. These have made application development easier, but not always easy enough! I wrote previously about my enhancements to ICanHaz.js for loading Mustache templates. This time around, I wanted to use Facebook’s JavaScript SDK with less “overhead” and a simplified API.

I created FBAPI.js to handle the setup requirements that Facebook’s SDK requires, such as adding a “root” tag to the page before loading the SDK. Now FBAPI.js takes care of all the SDK requirements and lets you use the Graph API without worrying about the overhead. FBAPI.js adds helper methods for event binding and retrieving user data.  However, the best part of FBAPI.js is that you don’t have to wait for the page or javascript dependencies to be loaded before you can start using it! All methods use promises and callbacks. This lets you run your scripts in any order you want!

Check out the Github repository and let me know what you think!

Projects Technology Web

A Super-Charged Version of ICanHaz.js

I’ve been working on Rembly, which uses Spine.js as the core piece that ties all the functionality together.  I decided to use Mustache.js for my HTML templates.  And finally, I chose ICanHaz.js as a simple and lightweight way of managing my HTML templates.

Although ICanHaz.js is a great start, managing my HTML templates became unwieldy because I started having little templates everywhere.  Each part of a page that is dynamically updated needs to be broken out into its own template.  When you’ve broken a web page into small parts, it’s hard to keep track of what it looks like when put back together.  It also becomes hard to create the correct CSS styles when you lose track of the HTML hierarchy.

This lead me to enhance ICanHaz.js with a ton of new features.  The primary one being nested templates, which allowed me to keep my full HTML page template in tact, while designating specific HTML tags as “sub templates” or partials. You can also specify additional templates to load and replace script “include” tags with the loaded HTML.

Check out my fork on Github for more information about how to use my enhanced version if ICanHaz.js. Make sure to look at the javascript comments for details. And let me know what you think.

Projects Security Technology Web

Announcing the ThreatSim Beta

I’ve been working with Stratum Security for the past couple of months on ThreatSim (@ThreatSim), which we are happy to announce to the world today!  ThreatSim is a web-based phishing attack simulator to help companies assess how vulnerable their network and internal assets may be to phishing attacks.  Not only does ThreatSim track who is clicking on phishing emails, but we’re also making an exfiltration agent available, which simulates transmitting sensitive data from the local network out to the internet.

Check out the website at, follow us at @ThreatSim, and check out the conversation on Hacker News.


Project: Sharevite

Sharevite is an exciting project we’re working on.  It’s a platform for sharing events you discover on the web, allowing you to make plans with your friends.

We have added Sharevite to our projects section.  There we will be documenting the different components that make up the project.  From developing the marketing message to technologies and features that will be integrated.  Some areas also document the process of brainstorming and refining ideas.

Projects Has Launched!

Tired of not knowing where a short URL will take you?

Twitter and the rest of the Internet use short URLs all the time, but you never know where they will lead. We decided the world could use yet another short URL service! But this one hints at where the link will send you: Facebook. could mean a lot of things to many people, but to us it guarantees it’s a FaceBook Link.

What does offer that’s useful?

Sure, Facebook just launched  But don’t be confused.  Here’s what you can do that Facebook won’t let you:

  • Claim the vanity URL for your profile you always wanted
  • Create short URLs to any Facebook link you want
  • Traffic statistics for your profile and all other links
  • short URLs guaranteed to go to Facebook
  • It’s FREE!

Facebook is one of the most popular websites in the world. And some people like to know how popular their profile page is too!  Since you can’t track traffic statistics to your own profile page easily, can help you do that.

With, you can create a short URL to any Facebook page you want to link to. only allows links to valid Facebook domain names.  At the moment, it is limited to and  The beauty of it is that any time you see an link, you know it will take you to Facebook.  You also know that you can check out the traffic statistics for that link any time you want.

Coming soon…

  • Account management
  • Public API
  • Widgets and plugins

Let us know what you think ([email protected]).  Enjoy!