Experimenting with React

resume_mobileWorking on Galapag.us allows me to experiment with new frameworks and to try out new design patterns on mini-apps.

React is one of the newer front-end frameworks and rivals Angular in popularity in new JavaScript apps these days.  Created at Facebook, React has done well to allow a developer to make isolated components which have readily-understandable state at any given point in time.  Having been spoiled at Vimeo by their breezily easy codebase, I was excited to try React to see if it would resemble working with Vimeo’s code.

It’s pretty good!  Components aren’t entirely isolated — you still have to find some clever way to inject style, or just settle on styling globally if you don’t want to do it inline (which React allows for).

Anyway, I built 2 mini-apps.  They’re not quite ready for production yet, so I’m not really going to link to them, but…

Resume

I’d been looking around the web and found JSON Resume, a schema proposal that allows for saving one’s résumé details in a JSON format, so it’s easily portable and separated from style and presentation concerns.  Perhaps an even more important goal of the project is to provide an alternative to the horrendous process of uploading your details via PDF or DOC to some job application site, only to have it either mangle the parsing of your file or, even worse, to force you to re-enter all the info into some shitty 5 page web form that looks like it was constructed a decade ago.  And God forbid you should ever have to update your info when you come back to your profile years later.

I figured it would be nice to have this app built-in for free — perhaps entering in all the pertinent data would become a quest to complete.

So I mapped a lot of the pre-existing modeling I already had in Galapag.us into a call to the API server that serves up your résumé data in JSON format compatibile with JSON Resume 0.0.0.

json

This app didn’t have that much complication in terms of interaction or dynamic changes — a straight-forward app making an AJAX call to populate the front-end.

But it’s fairly clean and extensible — and it’s mobile-friendly.

butterfly

Butterfly

The other mini-app I made is called Butterfly, as in a social butterfly.  The goal of Butterfly is simply to provide an easy tool for you to jot down someone’s name whom you just met at your local deli, or at a party, or whatever, so you know how to find his/her name later once you’ve long forgotten.

After all, we remember close friends but often meet so many random people who are still remarkable in their own way in your life, that we can’t remember their names.

This app is mobile-friendly too, and should make it easy for you to load the app on your phone and add the details of someone you just met.

The Bigger Picture

The résumé data signifies that my data modeling is at least getting to an intermediate point where it’s beginning to provide value in having a large datastore but also diverse enough to support applications which need broad access to different datapoints.

And the butterfly data model helps to map the social graph.  I’ve witnessed the torch and pitchfork brigades that attack services which attempt to allow people to post content about other people without their express permission.  While I disagree with this as a supporter of radical transparency, I understand how it’s just not tenable in today’s society.  But at least for those who opt-in and for certain datapoints, those who volunteer should reap all the benefits of a more interconnected virtual world.  So I do plan on rewarding those who share more — with things like the genetic crossing mini-app.

Galapag.us still isn’t useable in the sense that it replaces my daily viewing habits, and it’s not my first choice for a datastore yet.  I know when the site will be getting approachable for others when I start to dogfood it myself.  I keep adding more and more over the years, and refining that which is already there.  Eventually it will become useful, and, hopefully, necessary in terms of providing competitive reputation.

gc