Skip to content

Instantly share code, notes, and snippets.

View escaroda's full-sized avatar

Escaroda escaroda

View GitHub Profile
@escaroda
escaroda / polya.md
Last active July 14, 2025 11:10 — forked from jph00/polya.md
Summary of Polya's "How To Solve It With Code"

A guide to George Polya's "How to Solve It"

Introduction

George Polya (1887-1985) was a Hungarian mathematician and educator who revolutionized our understanding of problem-solving and teaching. While he made significant contributions to mathematics, his most enduring legacy is his insights into how people learn and solve problems. His 1945 book "How to Solve It" has influenced educators across numerous fields, extending far beyond mathematics.

Polya's Teaching Philosophy

Polya's approach centered on three key principles. First, he championed active learning, believing students learn best by discovering solutions themselves rather than being told answers. Second, he emphasized heuristic thinking - the art of guided discovery and learning from experience, viewing problem-solving as a skill that can be developed through practice. Third, he developed sophisticated questionin

@escaroda
escaroda / GLSL-Noise.md
Created October 31, 2021 08:18 — forked from patriciogonzalezvivo/GLSL-Noise.md
GLSL Noise Algorithms

Generic 1,2,3 Noise

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);
}
@escaroda
escaroda / binary.js
Created August 15, 2019 18:02 — forked from mathewmariani/binary.js
A quick look at signed and unsigned integers in JavaScript.
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) {
@escaroda
escaroda / drawing-board.component.ts
Created March 1, 2019 06:48 — forked from anupkrbid/drawing-board.component.ts
A example canvas component for drawing in an angular 6 app using rxjs 6.
import {
AfterViewInit,
Component,
ElementRef,
Input,
OnDestroy,
ViewChild
} from '@angular/core';
import { fromEvent } from 'rxjs';
import { pairwise, switchMap, takeUntil } from 'rxjs/operators';
@escaroda
escaroda / letsencrypt_2018.md
Created September 8, 2018 19:06 — forked from cecilemuller/letsencrypt_2020.md
How to setup Let's Encrypt for Nginx on Ubuntu 18.04 (including IPv6, HTTP/2 and A+ SSL rating)

How to setup Let's Encrypt for Nginx on Ubuntu 18.04 (including IPv6, HTTP/2 and A+ SLL rating)


Virtual hosts

Let's say you want to host domains first.com and second.com.

Create folders for their files:

@escaroda
escaroda / penrose.html
Created September 2, 2018 18:44
Penrose Tile Visualiser
<!--
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>
( 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; // приведение к нулю происходит и с бесконечностью,
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
@escaroda
escaroda / promises.js
Created April 6, 2018 07:34
js promise - good practice
// 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([
@escaroda
escaroda / angular2why.md
Created October 6, 2017 09:16 — forked from YuliaTsareva/angular2why.md
Почему стоит переходить на Angular 2.0. Отличия и особенности - материалы к докладу