-
Apr 20, 2017
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.
- Apr 20, 2017 Skinny Reducers + Fat MapStateToProps
-
Mar 30, 2017
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.
- Mar 30, 2017 You Don't Need lodash
-
Jan 22, 2017
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.
- Jan 22, 2017 Inline Styles In React.js
-
Jan 13, 2017
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. - Jan 13, 2017 Custom Tasks In Grunt
-
Jan 10, 2017
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.
- Jan 10, 2017 Introducing Jest Into A React Project
-
Nov 12, 2015
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.
- Nov 12, 2015 Git-Plus
-
Apr 9, 2015
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 becauseObject.create
is here.A lot of things he discussed prompted me to try and better understand what makes javascript javascript. So I explored thisObject.create
thing and I really like it. - Apr 9, 2015 Objects Linked to Other Objects
-
Mar 24, 2015
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.
- Mar 24, 2015 Closures in Javascript
-
Mar 24, 2015
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.
- Mar 24, 2015 CSS Precedence
-
Nov 6, 2014
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.
- Nov 6, 2014 Oenology
-
Jul 27, 2014
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.
- Jul 27, 2014 Typescript
-
Feb 18, 2014
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.
- Feb 18, 2014 Why I'm leaving rails
-
Oct 14, 2013
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.
- Oct 14, 2013 Put Some Backbone Into It
-
Aug 15, 2013
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.
- Aug 15, 2013 Node.js
-
Aug 14, 2013
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.
- Aug 14, 2013 Rails...