My Profile Photo

Rich Werden

A simple site for Rich to write about code and archive some completed projects for future reference...

Projects, Pulls, & Portfolio Pieces

It’s proof I sometimes know exactly what I’m doing!

Tabsanity Terminator

Publicly available from the Chrome Web Store, this is an open-source extension for Google Chrome. I wanted a one-click solution to both de-duplicate the tabs in my current window as well as group them together by domain. So I built and released one.

Jekyll-Uknow Theme for Jekyll

No graphic necessary, the theme of this very blog you are already looking at is available as an open-source repo. I wanted to have the experience of working with a github-pages site, and their default CMS/static-site generator is jekyll. While I’m really a ‘javascript’ guy, and jekyll is based in ruby, I still wanted to use github’s recommended tool for the task so I didn’t let that stop me. I found an extant jekyll theme I wanted to use, but as I put it into place, I started discovering certain shortcomings. Since I wanted to remove jQuery and use some more contemporary CSS techniques like flexbox and CSS3-transitions, I decided that instead of making a pull-request on it, I just forked it into its own project. So, starting with an inherited codebase, I shrank the footprint, changed and shrank the (S)CSS, focused more on mobile interaction, fixed UI issues, and removed the jQuery dependencies. Still have plenty of ideas, but that’s what the future is for…

❂ Qards iOS/Android App

A mobile cross-platform realtime multi-player card game. Used React-Native in order to make a cross-platform app for real-time multiplayer card games. Of course there were lots of moving pieces in the tech-stack to make this work - Firebase for Facebook/Google authentication, Reddis, SQL,, Heroku deployment of our Express server with Circle-CI. Really wanted to get P2P WebRTC working, but since React Native is always in flux, at the time that library was broken. I’d like to rewrite the client/server to use GraphQL instead of the GET/POST scheme originally designed because now that I know about GQL, I think it would be a much better tool for the job. Additionally, testing was minimal and the test-suite at best was fractured, so now that I know more about it I’d like to implement the jest suite instead of the mocha/chai/sinon/??? patchwork that caused more problems than they solved.

❂ Stateful State Feels

An interactive data visualization. Every 24-hrs the “Top-10 news stories by US-State” were pulled from an API and put into a MongoDB database. From there, each story was run through the IBM Watson Tone Analyzer which returned a variety of sentiment analysis scores. These scores formed a dataset which was used to feed a Mapbox overlay placed on a map of the US. Users would select different criteria and can then hover over each state with a mouse to see a choropleth-style visualization of the ‘score’ of that particular sentiment.

❂ learnyounode - WIP

I enjoy teaching others about tech when I have the time/opportunity to do so, and I am lucky enough to have a fairly active chapter of NodeSchool in my area. The first thing we have new people do is go through the very first learnyounode set of challenges, ‘javascripting’. Unfortunately, I found the instructions for the challenges to be needlessly confusing, so worked on hopefully clarifying things.

❂ WordPress Sites

Not high on any web-developer’s resume [any more] is the work done for umpteen WordPress installs. I’m looking forward to WordPress becoming much more fluid as it becomes a React environment, but in the past I’ve done a dozen or so sites with the WordPress CMS so clients could manage their own content without my assistance. Depending on the project, I’ve created customized reusable child-themes that could be updated, custom PHP elements for rendering, WordPress’ own JetPack system for link/comment-tracking and SEO, as well as not so out-of-the-box solutions. Different projects have required everything from WooCommerce plugin shopping-carts, creating custom code to facilitate PayPal payments, to online client scheduling.

❯ ★ ✎ ✦ ✮ ✯ ❂ ⦿ ❯ ★ ✎ ✦ ✮ ✯ ❂ ⦿ ❯ ★ ✎ ✦ ✮ ✯ ❂ ⦿ ❯ ★ ✎ ✦ ✮ ✯ ❂ ⦿