float rand(float n){return fract(sin(n) * 43758.5453123);}
float noise(float p){
float fl = floor(p);
float fc = fract(p);
return mix(rand(fl), rand(fl + 1.0), fc);
}
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var UInt4 = function (value) { | |
return (value & 0xF); | |
}; | |
var Int4 = function (value) { | |
var ref = UInt4(value); | |
return (ref > 0x7) ? ref - 0x10 : ref; | |
}; | |
var UInt8 = function (value) { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { | |
AfterViewInit, | |
Component, | |
ElementRef, | |
Input, | |
OnDestroy, | |
ViewChild | |
} from '@angular/core'; | |
import { fromEvent } from 'rxjs'; | |
import { pairwise, switchMap, takeUntil } from 'rxjs/operators'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- | |
This is a quick ui that wraps yurixi's code from https://habr.com/post/359244/ | |
It can save PNG and SVG. | |
All credit goes to him for doing pretty much all the work here. | |
--> | |
<!DOCTYPE html> | |
<html lang="en"> | |
<html> | |
<head> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
( 3|0 ) === 3; // целые числа не изменяет | |
( 3.3|0 ) === 3; // у дробных чисел отбрасывает дробную часть | |
( 3.8|0 ) === 3; // не округляет, а именно отбрасывает дробную часть | |
( -3.3|0 ) === -3; // в том числе и у отрицательных дробных чисел | |
( -3.8|0 ) === -3; // у которых Math.floor(-3.3) == Math.floor(-3.8) == -4 | |
( "3"|0 ) === 3; // строки с числами преобразуются к целым числам | |
( "3.8"|0 ) === 3; // при этом опять же отбрасывается дробная часть | |
( "-3.8"|0 ) === -3; // в том числе и у отрицательных дробных чисел | |
( NaN|0 ) === 0; // NaN приводится к нулю | |
( Infinity|0 ) === 0; // приведение к нулю происходит и с бесконечностью, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const getSpecifiedDay = { | |
oncePerMonth: (fromDate, dayOfWeek, numberOfTimes, startHours, endHours) => { | |
// Get first day of the month by given fromDate | |
const currentMonth = moment(fromDate).startOf('month'); | |
// Get desired dayOfWeek of currentMonth's first week | |
const firstDayInMonth = currentMonth.clone().weekday(dayOfWeek); | |
// Check if firstDayInMonth is in the given month |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// bad | |
async function someAsyncFunc() { | |
const user = await asyncGetUser(); | |
const categories = await asyncGetCategories(); | |
const mapping = await asyncMapUserWithCategory(user, categories); | |
} | |
// good | |
async function someAsyncFunc() { | |
const [user, categories] = await Promise.all([ |
- Angular 2 Change Detection Explained https://www.youtube.com/watch?v=CUxD91DWkGM
- JS web frameworks benchmark https://github.com/krausest/js-framework-benchmark
- Angular 2 Performance Checklist https://github.com/mgechev/angular-performance-checklist
-
Книга Виктора Савкина, автора роутера https://leanpub.com/router
-
The Angular Router, Victor Savkin https://www.youtube.com/watch?v=QLns6s02O48
-
Routing in Eleven Dimensions with Component Router, Brian Ford https://www.youtube.com/watch?v=z1NB-HG0ZH4
-
Protecting Routes using Guards in Angular https://blog.thoughtram.io/angular/2016/07/18/guards-in-angular-2.html
NewerOlder