Keywords: Java, JDK (Java Development Kit), MacOS, Homebrew, Specific Version
This how-to guide covers how to install different versions of the JDK on MacOS with Homebrew.
| /** | |
| * For compare function return: | |
| * - Less than zero: item1 has higher priority than item2. | |
| * - Zero: same. | |
| * - Greater than zero: item1 has lower priority than item2. | |
| */ | |
| export type CompareFunction<T> = (item1: T, item2: T) => number; | |
| export class PriorityQueue<T> { | |
| _items: Array<T>; |
Keywords: Java, JDK (Java Development Kit), MacOS, Homebrew, Specific Version
This how-to guide covers how to install different versions of the JDK on MacOS with Homebrew.
Для тех, кто не следит за интеренетом, собрал драму в нескольких актах. ВОРНЕНГ: ссылки могут не работать, сохраняйте скриншоты.
Статья на хабре https://habrahabr.ru/post/335876/ (читайте коментарии platoff)
Твиты которые могут содержать комментарии (если потёрли)
| import hoistStatics from 'hoist-non-react-statics'; | |
| import React from 'react'; | |
| /** | |
| * Allows two animation frames to complete to allow other components to update | |
| * and re-render before mounting and rendering an expensive `WrappedComponent`. | |
| */ | |
| export default function deferComponentRender(WrappedComponent) { | |
| class DeferredRenderWrapper extends React.Component { | |
| constructor(props, context) { |
| console.log(1); | |
| (_ => console.log(2))(); | |
| eval('console.log(3);'); | |
| console.log.call(null, 4); | |
| console.log.apply(null, [5]); | |
| new Function('console.log(6)')(); | |
| Reflect.apply(console.log, null, [7]) | |
| Reflect.construct(function(){console.log(8)}, []); | |
| Function.prototype.apply.call(console.log, null, [9]); | |
| Function.prototype.call.call(console.log, null, 10); |
| /* tslint:disable */ | |
| const program = | |
| ` | |
| module "login" | |
| go to "app/login" | |
| fill "[email protected]" in "#username" | |
| fill "foobar" in "#password" | |
| click "#login" |
| import { createStore, applyMiddleware } from 'redux'; | |
| import { Observable, Subject } from 'rxjs'; | |
| const api = (url, fail) => { | |
| console.log(`Loading API ${url}`); | |
| return new Promise((res, rej) => setTimeout(() => fail ? rej(`data-${url}`) : res('SUCCESS'), 1000)); | |
| }; | |
| const customSaga = iterable => | |
| iterable |
| RegExp.prototype.matches = function* (str) { | |
| let moreThanOnce = this.global || this.sticky; | |
| let myLastIndex = 0; | |
| do { | |
| // preserve lastIndex of another .exec() calls on same regexp | |
| let savedLastIndex = this.lastIndex; | |
| // use own state for lastIndex to match our str | |
| this.lastIndex = myLastIndex; | |
| let match = this.exec(str); |
Английская версия: https://evilmartians.com/chronicles/bootstrap-an-intervention
У CSS есть несколько базовых проблем, которые позволяют очень быстро отстрелить себе ногу при неправильном использовании:
Глобальный неймспейс – в серверном программировании все что написано в файле, в файле и остается. Все же что написано в css и js засирает глобальное пространство имен со всеми вытекающими. В JS эту проблему сейчас побороли всякими модульными системами, а вот с css сложнее. В идеальном мире это должен починить Shadow DOM и настоящие Web Components, но пока их нет единственный способ с этим бороться – следовать какой-то системе именований селекторов, которая по возможности уменьшает и исключает возможные конфликты.
Каскадность – если на один элемент может сработать несколько правил, то они все и сработают последовательно. Если есть элемент h1.title, на него сработают все правила для тегов h1 и все правила для класса .title. Так как весь html состоит из тегов, то правил которые п
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.
elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent