• Skinny Reducers + Fat MapStateToProps

    Redux is a really neat library for managing application state to make it deterministic. In a Redux application, there is a store that contains the state tree and that state changes when actions are dispatched. The state transitions are handled by functions called reducers, which take current application state and the action to apply, then return the new application state. This is simple enough as a concept and when it is applied in a React app, it can become a little more complex when the state now influences a UI. I have seen React + Redux applications become brittle and provide a poor UX because of mistakes in Redux architecture. This is not intended to be a lesson on how to use react-redux and how ‘connected’ components work so I assume the readers are aware of the technologies here.

  • Skinny Reducers + Fat MapStateToProps
  • You Don't Need lodash

    The javascript ecosystem today, is full of stuff. By stuff, I mean a ton of libraries, tools, and frameworks. A lot of these provide value and I think because it is so easy to create them and publish them, we often become too reliant on the libraries to grab the low hanging fruit for us. A genre of libraries that has become incredibly prevalent in javascript development is the general purpose utility library, e.g. underscore/lodash, and zepto, jQuery. jQuery was (and sort of still is) amazing. It soothed a lot of pain we felt related to DOM manipulation and it had a pretty impressive api that has inspired many javascript libraries since then. Underscore did some amazing things for us in terms of allowing us to write more functional code and handle collections with some fancy tricks. Then lodash came along to sweeten the deal by being more performant and providing some extra functionality as well as (arguably) better usability or ergonomics. Today, in the year of 2017, I propose we start the lodash diet because we don’t need to rely on these libraries as much and I’ll tell you why.

  • You Don't Need lodash
  • Inline Styles In React.js

    As part of my refactoring and getting my pet React project up to date with the latest cool stuff, I took a foray into inline styles for my components. As I was moving my styles from SASS into plain javascript, there were a few things I found I didn’t like.

  • Inline Styles In React.js
  • Custom Tasks In Grunt

    I’ve been using Grunt for a while now. It’s been such a great experience that I haven’t touched any other build tool. There hasn’t been a need for me to explore Yeoman or Webpack. My Gruntfile structure has stayed pretty consistent for the projects I’ve used it in. The first task that I always install is grunt-contrib-watch so I can run things like sass and coffeescript compilation when files change.

  • Custom Tasks In Grunt
  • Introducing Jest Into A React Project

    Recently, I decided to catch up on what’s going on in the front-end javascript world because it’s been a solid 14 months since I worked on a modern javascript project that wasn’t the Atom editor. I have a chrome extension I’ve been using as a pet project for me to experiment with React and test my opinions. I’m writing this as I’ve just started porting my app from React v0.14.7 to v15.4.2. My build tool for this project is Grunt with browserify and babelify to use ES6 and jsx. There were no tests and I want to get my feet wet testing React components so after some research it seems Jest is a great way to go.

  • Introducing Jest Into A React Project
  • Git-Plus

    My biggest open source project is Git-plus, which started out as a tiny side project for adding some handy git features to Github’s atom editor when it was still in early beta and invite only. It’s since turned into one of the top favorited and downloaded packages for the editor.

  • Git-Plus
  • Objects Linked to Other Objects

    Back in the fall, I watched a talk by Douglas Crockford about javascript and ES6. He said he was no longer using the keyword new in his code because Object.create is here.A lot of things he discussed prompted me to try and better understand what makes javascript javascript. So I explored this Object.create thing and I really like it.

  • Objects Linked to Other Objects
  • Closures in Javascript

    One of the reasons, I started this blog was so I could jot down things I’m learning. Recently, I’ve been trying to write more plain Javascript rather than Coffeescript in order to better understand the intricacies and fundamentals of the language. A common question about javascript is always “what is a closure?” and that’s what I’m exploring right now.

  • Closures in Javascript
  • CSS Precedence

    Today, I had a phone interview for a web developer role and one of the questions I was asked was “How does CSS precedence work?” Unfortunately, I didn’t know so decided to look into it afterwards.

  • CSS Precedence
  • Oenology

    It’s been a while since I last wrote and reflected on my time here in Paris but this post will be focused on what my thoughts on wine these days. In my oenology (science and study of wine and winemaking) class, we’ve learned what the wine making process looks like, and the important factors in wines and mainly focused on French wines. We’ve also studied the tensions between Old World and New World wines. The former refers to Europe and its history of wine while the latter is generally the Western world, notably Napa Valley/Chile/Argentina.

  • Oenology
  • Typescript

    This summer, I’ve had to write a lot of Typescript for my front-end development at my internship. Picking it up was not too difficult because the main difference between it and vanilla javascript, is that you can declare a type for your variables and functions. The type declarations are completely optional. But if you don’t do the typings then what’s the point right? Typescript was created by a Microsoft developer for the purpose of making it easier for C# developers to read and write javascript by allowing them to see variable types.

  • Typescript
  • Why I'm leaving rails

    I gave up Ruby on Rails pretty quickly after I put my first app, intrnhuntr.com, into production. But recently, I’ve been reading about other developer’s complaints about the Rails framework and the Rails way. One of the arguments being brought up is that the framework is “too big” and not for beginners. Here is pretty good blog post that identifies how Ruby on Rails is too complicated.

  • Why I'm leaving rails
  • Put Some Backbone Into It

    So my current main project is an app I’m building with Node.js. I chose Node because it’s a fullstack system that uses the same language(javascript) on both server and client. Node is built to be fast and lightweight. So anyway, I want this web app to be fast and lightweight as well and that’s why I’m making it a SPA(Single Page App) with the help of Backbone.

  • Put Some Backbone Into It
  • Node.js

    So I started using Node.js a few days ago to work on a side project(details to come later). I could have chosen Rails since I’m more familiar with that but Node is the ideal language for this. This project is supposed to be a quick, real-time, but simple web app. Node is all about non-blocking I/O, meaning that as a command or method is running, the whole app doesn’t stop and wait for that command to finish but instead the program continues. Rails is totally blocking I/O and you can see it while the database is querying because the page takes some time to load.

  • Node.js
  • Rails...

    My first post on this thing is going to be about Ruby on Rails. There is so much I have to say about it. I created this blog for my personal use to archive things I’m learning software-wise and perhaps even outside of code.

  • Rails...