TIL - Today I Learned
Number of TILs remaining to meet 2017 goal: 20
TIL about the URLSearchParams Object, which is useful for parsing URL querystrings in to maps of keys and values.
TIL how to compose classes together using the composes keyword provided by css-modules. It has changed my world.
TIL how to properly define dependency versions in a pacakge.json file.
TIL how to initiate a request using native browser XMLHttpRequest objects, instead of a request library that wraps these objects.
TIL how to use location.replace() and location.assign() to change URLs programmatically in the browser.
TIL how to pass headers along with requests initiated by the fetch API.
TIL what semantic versioning is, what each number of the version indicates, and why using a versioning scheme like semantic versioning is important.
TIL the difference between a process and a thread.
TIL what a microservice is, what the purported benefits of microservices are, and some of the drawbacks of creating a system built from microservices.
TIL how to configure the database migration framework Flyway, as well as the difference between Versioned and Repeatable migrations.
TIL how to calculate the magnitude, normalization, dot product, and cross product of vectors. I wrote a small library that performs the calculations - repo w...
TIL how to properly write a SQL statement using the LIKE operator, including how to use wildcards to match various patterns.
TIL how to perform snapshot testing using Facebook’s React unit testing framework jest. It is somewhat different than traditional visual regression testing… ...
TIL how to use webpack plugins like ExtractTextPlugin and CommonsChunkPlugin to create smaller chunks out of my webpack bundles.
TIL that node’s require method maintains a cache of the modules that have been imported. I also learned that it is possible to invalidate this cache.
TIL how to use webpack loaders to transpile React code to ES5, and compile .less stylesheets to .css.
TIL how to configure webpack-dev-server (WDS) to both serve files from the publicPath and proxy APIs on different domains to avoid cross site request warning...
TIL the difference between path and publicPath in webpack, and how the output.filename property can be used to assign files to sub-directories in the path.
TIL how to leverage ES6 arrow functions to avoid losing “this” when writing functions inside of functions.
TIL about the behavior of script loading in an HTML page, when the async attribute is added to a script tag.
TIL how Babel transpiles variables defined with let to their ES5 var equivalents, while still maintaining the same block scoping rules that apply to let.
TIL that the express response object does not forward content bodies to requestors if the status code of the response is 204: No Content.
TIL that node programs have different globally accessible objects than those found in the browser.
TIL the difference between em and rem in CSS.
TIL a succinct way to remember the difference between using min-width and max-width in a media query.
TIL what Firebase is. I followed the tutorial and published a quick app to understand its capabilities.
TIL (reviewed) the differences between the 4 CSS position property values: static, fixed, relative, absolute.
TIL of some simple tricks to optimize images for the web.
TIL that the output of console.log in chrome can be misrepresentative of the actual state of an object at the point of logging.
TIL that the spread operator does not perform a deep copy of object properties to the target object.
TIL of a quick way to quickly resolve merge conflicts from the command line, in a situation where you know you want to fully accept or reject the merging bra...
TIL (more like relearned) CSS specificity rules, and (unrelated) some additional methods on the console object other than console.log.
TIL that inline elements can’t have transformations applied to them in CSS.
TIL about Postgresql extensions, particularly the CITEXT extension for making a case insensitive column in a table.
TIL the difference between app.use and app.all in the context of an express application.
TIL that view models have utility beyond making data easier to digest by consumers.
TIL that the promise implementation shipped with ES6 is not very performant, and that it is still preferable to use a 3rd party promise library for several r...
TIL the difference between PUT and PATCH, and found a nifty table highlighting
TIL that when using Redux, there are examples of state that are best kept local to a component instead of being managed by the Redux store.
TIL that the amortized time complexity of adding an item to an ArrayList in Java is O(1), but that the “worst case” for an add operation is O(n). This caused...
TIL how a standard caching strategy, the Least Recently Used (LRU) cache, works.
TIL the difference between Call By Value and Call by Name expression evaluation strategies implemented by languages such as Scala.
TIL how difficult it is to create emails with rich content…inline CSS and email client incompatibilities for days!
TIL how to convert a binary string to a digit of any base, and how to convert a digit of any base to its corresponding binary string.
TIL that there exists a hard cap on the amount of data a single webpage can ship to a mobile browser, before the browser crashes.
TIL about cohort analysis, and how it can be used as an input to product strategy.
TIL (more like re-learned) the differences between a few basic sorting algorithms: selection sort, insertion sort, and merge sort
TIL how the Array.prototype.sort() sorts by default, and how to pass a comparator function in to the sort method if a different sort order is desired.
TIL how to overwrite mocks in tests, by saving them to a variable and modifying the function tied to the object.
TIL the difference between an interface and an abstract class.
TIL how to mock the internal clock of a test using jasmine. This was useful for testing methods that rely on a timeout or debounce before firing.
TIL of a metric that helps measure customer engagement and loyalty: Net Promoter Score
TIL how to properly mock angular dependencies in Unit Tests using the Jasmine test framework.
TIL about git aliases, and how they can speed up your git workflow.
TIL what the angular-animate library does, after noticing it was contributing to over 60% of the scripting time necessary to scroll through our grid!
TIL that angular 1.3 and onwards has a one-time-bind option to pass to interpolated expressions, which tells angular that the data is not expected to change.
TIL the difference between self-time and total-time in the Chrome profiler.
TIL how to use the Chrome “Timeline” Profiler to help uncover poorly performing front-end code.
TIL that underscore.js has an awesome debounce wrapper that grants debouncing capabilities to any custom function.
TIL why you need to call $scope.apply() when you change the value of $scope properties inside of custom angular directives.
TIL what the difference between angular’s watcher offerings are: $watch, $watchCollection, $watchGroup and $watch (objectEquality).
TIL that instead of interpolating a data binding in a template (via double curly brace syntax), you can accomplish the same thing by adding the ng-bind direc...
TIL about the ng-model-options directive, which augments the behavior of an input element bound to a scope property via ng-model.
TIL that github now supports templates for both Issues and Pull Requests.
TIL how to design a service in Angular that encapsulates the actions necessary to supply data to a controller.
TIL that angular has an “equals” method that does a deep comparison between objects to determine equality.
TIL that angular services maintain internal state until the page is reloaded.
TIL what the true value add of testing is…there is none!
TIL that you can quickly navigate to the beginning and end of a command in the command line by using the shortcuts ctrl+A and ctrl+E.