TIL: Abstraction

Mar 25th, 2018 #TIL Kerry 1 min read

To quote Kyle Simpson, “Abstraction is about creating semantic boundaries between things.” This separation allows us to think about, reason about, and prove each individual piece. This is different than “hiding details” as that can better be described as encapsulation.  

TIL: == coerces operands to numbers

Mar 22nd, 2018 Thoughts.Random() Kerry 1 min read

Loose equality operator prefers to compare numbers so the following console.log is never executed:

bar is coerced to 99 and true to 1, and these are not equal.

TIL: -0

Mar 21st, 2018 #TIL, JavaScript Kerry 1 min read

Prior to ES6, the only way to check if a number is -0 is to divide any number by it and check if it equals -Infinity. With ES6, you can use Object.is(value, -0).  

TIL: NaN !== NaN

Mar 21st, 2018 #TIL, JavaScript Kerry 1 min read

NaN does not follow the identity property. NaN is the result of trying to convert a non-number to a number. NaN with any other operation is going to produce NaN. Number.isNaN does not convert prior to checking if a value is NaN. window/global.isNaN does. In ES6, you can check for NaN equality using Object.is().

Notes Part 2: “Functional Programming In Javascript” By Luis Atencio

Nov 4th, 2017 Thoughts.Random() Kerry 2 min read

Continued from Part 1. 3. Few data structures, many operations Control flow “On the other hand, declarative programs, specifically functional ones, raise the level of abstraction by using a minimally structured flow made up of independent black- box operations that connect in a simple topology.Method chaining” Separate control flow from computational logic, i.e. branches and iterations reduced or eliminated in favor of high-level abstractions Method…

Notes Part 1: “Functional Programming In Javascript” By Luis Atencio

Oct 26th, 2017 Thoughts.Random() Kerry 3 min read

I’ve started reading the book Functional Programming In Javascript by Luis Atencio and figured it’d be a good idea to take some notes. Might as well keep them here ^_^ 1.1 What is functional programming (FP)? “Abstract control flows and operations on data with functions to avoid side effects and reduce mutation of state” Fundamental concepts Declarative Easy to reason about Improves readability Pure functions Only…

TIL Relative Margin & Padding Are Calculated From the Parent’s Width!

Sep 6th, 2017 #TIL, CSS Kerry 1 min read

The learning is coming fast & furious these days. I’m only on my sixth TIL post though so Vin Diesel’s still got me by two movies and two billion dollars if I’m rounding up. This one’s a quickie! And totally makes sense but I never use CSS much these days and if I do it’s usually a CSS framework. Like the title says, Relative margin…

TIL I Can Control .history

Sep 1st, 2017 #TIL, JavaScript, ReactJS Kerry 2 min read

Lots of turmoil and heated debate in the US surrounding history and who we immortalize in marble and bronze. Fortunately this blog is neither Politico or Fox News and you don’t have to hear me weigh in. The history that I’m talking about is **drumroll** browser history. If you’re wondering why it took so long to discover this, I mean, it’s only been out since Chrome version…

Learning Japanese: My Lifelong Goal To Learn A Foreign Language

May 10th, 2017 Foreign Language, Japanese, Tools Kerry 4 min read

Language is hard. It’s always been a goal of mine to be bilingual. I took Spanish in middle school and high school and didn’t do so caliente. I tried my hand at Korean in college and hoped my genetics might help me out. Maybe I’m not actually Korean. I’ve stopped and started Duolingo more times than a car in city traffic. Either I’m stupidly persistent or…

TIL Arrow Function

Feb 9th, 2017 #TIL, JavaScript Kerry 2 min read

TIL that the arrow function introduced in ES6/2015 is NOT just short-hand for a normal function declaration. It uses lexical this scoping rather than the dynamic. Kyle Simpson argues in his excellent series You Don’t Know JavaScript that this was created in part because people misunderstand how this works and how to utilize bind. Take the following example:

The above function’s setTimeout call-site is the global scope. This…