427 Matching Annotations
  1. Jun 2016
  2. Apr 2016
  3. Feb 2016
    1. This is a good short overview of how change detection works in Angular 2.

      It fixes the fundamental algorithmic complexity problem that change detection has in Angular 1.x by making it possible to prune parts of the component tree from change detection if the inputs have not changed.

      Unfortunately the zone.js implementation involves some horrifying monkey-patching of various DOM APIs.

  4. Dec 2015
  5. Nov 2015
  6. Oct 2015
  7. Sep 2015
    1. Some interesting slides on CSS styling performance on GitHub, particularly focusing on their diff pages.

      Several slides have direct references to WebKit internals explaining the impact on rule resolution performance.

      Mentions a useful tool for understanding CSS selector performance implications, css explain

    1. there does not seem to be a general rule for how many workers to spawn. Some developers claim that 8 is a good number, but use an online calculator and suit yourself

      Web workers are very heavy objects as they include an entire JS VM instance. 8 sounds like a lot.

    1. The $digest loop keeps iterating until the model stabilizes

      cf. React where an event triggers an event handler, which can trigger state changes and calls to React.render(). These are then batched together resulting in a single re-render, a DOM-diff and the application of the result to the DOM. Consequently you can't have an infinite state update loop. The exception is if a state change happens asynchronously, and that state change triggers another async state change (and so on...)

    1. The value function should return the value which is being watched. AngularJS can then check the value returned against the value the watch function returned the last time

      Ah, so since the input is a scope, this means that Angular needs to call every watch value fn that might be affected by a change. Should look into whether it has any optimizations to avoid that for common watch expressions.

    1. We eventually came up with a compromise solution based on Addy Osmani’s basket.js, using a combination of server-side script concatenation and localStorage for caching. In a nutshell, the page includes a lightweight loader script, which figures out which JS and CSS it has already cached and which needs to be fetched. The loader then requests all the resources it needs from the server in one request, and saves all the resources into localStorage under individual keys. This gives us a great compromise between cutting down the number of HTTP requests while still being able to maintain cacheability, and not re-downloading code unnecessarily when it hasn’t changed. Addtionally, after running a few benchmarks, we found that localStorage is (sometimes) actually faster than the native HTTP cache, especially on mobile browsers.
  8. Aug 2015
  9. Jan 2014
    1. I replied, “Why bother? We know how this will play out. You’ll write up objectives and deliverables for her to achieve, which she can’t, because she lacks the skills. Every Wednesday you’ll take time away from your real work to discuss (and document) her shortcomings. You won’t sleep on Tuesday nights, because you’ll know it will be an awful meeting, and the same will be true for her. After a few weeks there will be tears. This will go on for three months. The entire team will know. And at the end you’ll fire her. None of this will make any sense to her, because for five years she’s been consistently rewarded for being great at her job—a job that basically doesn’t exist anymore. Tell me again how Netflix benefits?

      Trying to remedy a situation where someone has "been consistently rewarded for being great at their job" and then working on a PIP with them really is a miserable process.

    2. HR people can’t believe that a company the size of Netflix doesn’t hold annual reviews. “Are you making this up just to upset us?” they ask. I’m not. If you talk simply and honestly about performance on a regular basis, you can get good results—probably better ones than a company that grades everyone on a five-point scale.
    1. Traditional corporate performance reviews are driven largely by fear of litigation. The theory is that if you want to get rid of someone, you need a paper trail documenting a history of poor achievement. At many companies, low performers are placed on “Performance Improvement Plans.” I detest PIPs. I think they’re fundamentally dishonest: They never accomplish what their name implies.