🇺🇦 Math.random(): javanoscript community – Telegram
🇺🇦 Math.random(): javanoscript community
1.14K subscribers
363 photos
8 videos
530 links
Download Telegram
Как резали ли бы ножницы ✂️ из иконок, если бы они были реальными - https://wh0.github.io/2020/01/02/scissors.html
Отличный инструмент для рисования диаграмм в стиле "от руки". Открытый код и удобный online сервис в комплекте.
https://www.excalidraw.com/
Альтернативная moment.js библиотека для работы с датами, размер библиотеки 2kB. API повторят API moment.js.
Учебные материалы для изучения контейниризации с Docker.
Очередной проект, написанный на JavaScript. jExcel это vanilla javanoscript плагин, который строит таблицы в браузере, может отображать данные из массива объектов, JSON, CVS и XSLX файлов.
https://bossanova.uk/jexcel
⁠Продолжаем серию постов о функциональном программировании, сегодня поговорим о морфизмах: эндоморфизм и изоморфизм. Любой морфизм (Morphism) это преобразующая функция. Рассмотрим по порядку, какие преобразующие функции бывают:

Эндоморфизм (Endomorphism) - преобразующая функция, в которой тип входящего параметра такой-же как и результат выполнения функции:
// uppercase :: String -> String
const uppercase = (str) => str.toUpperCase()

// decrement :: Number -> Number
const decrement = (x) => x - 1

Изоморфизм (Isomorphism) - парное преобразование между двумя типами объектов, которые являются структурными и данные в преобразованиях не теряются.

Пример, данные о координатах точки в декартовой системе координат можно хранить в виде массива [0, 1] или объекта {x:0, y:1}:

//
Providing functions to convert in both directions makes them isomorphic.
const pairToCoords = (pair) => ({x: pair[0], y: pair[1]})

const coordsToPair = (coords) => [coords.x, coords.y]

coordsToPair(pairToCoords([1, 2])) // [1, 2]

pairToCoords(coordsToPair({x: 1, y: 2})) // {x: 1, y: 2}
Се
годня в ссылке проект, который позволяет делать преобразования данных по схеме. Может понадобиться при разработке для быстрого извлечения и представления данных.
serverless-offline - эмулятор сервисов AWS λ и API Gateway. Пригодится для разработки serverless приложений локально, во время разработки не нужно долго выкладывать в облако и отлаживать ваши функции.
Список концептов для чистого кода, адаптированных для JavaScript. Репозиторий можно использовать как основу для правил написания кода на проекте.

https://github.com/ryanmcdermott/clean-code-javanoscript
Иллюстрация из книги 40+ летней давности. Рубрика «забытые знания древних».
Инструмент для автоматизации версионирования и публикации ваших npm пакетов. Я бы сказал, что semantic release - это золотая серия npm.

https://semantic-release.gitbook.io/semantic-release/
Ребят, у нас остались буквально последние 13 билетов на первую в этом году встречу, что состоится уже в эту среду, 22 января. Ждем в гости Мартина Чаова (Software Architect SBTech) и Александра Поштарука (Senior front-end developer ITecGurus). Так что, как говорится, налетай торопись 😉 https://2event.com/en/events/1855761
Функциональное программирование, в прошлый раз мы говорили о морфизмах: эндоморфизм и изоморфизм. Сегодня продолжим говорить о морфизмах: гомоморфизм (homomorphism) .


Пусть (M, ⋅M, eM) и (N, ⋅N, eN) — два произвольных моноида (о моноидах мы говорили ранее). Функция h: MN называется гомоморфизмом (homomorphism), если h(xM y) = h(x) ⋅N h(y) для любых x и y из M, и h(eM) = eN.

f(a * b) = f(a) * f(b)

A.of(f).ap(A.of(x)) == A.of(f(x))

Either.of(_.toUpper).ap(Either.of("oreos")) == Either.of(_.toUpper("oreos"))



Примеры гомоморфизмов:

- Суммирование элементов списка чисел, произведение элементов списка чисел, нахождение минимального и максимального элементов списка чисел можно рассматривать как списочные гомоморфизмы hom(+, id, 0), hom(⋅, id, 1), hom(max, id, −∞) и hom(min, id, +∞) соответственно. Подобные списочные гомоморфизмы, у которых второй параметр является тождественным отображением id, будем коротко записывать reduce(⋅, e).

- Функция length, вычисляющая длину списка, является списочным гомоморфизмом hom(+, one, 0), где one(x) = 1.

- Функция, которая применяет некоторую функцию f к каждому элементу списка, тоже является списочным гомоморфизмом, а именно hom(++, g, []), где g(x) = [f(x)]. Такие функции будем коротко записывать как map(f).

- Функцию сортировки тоже можно представить в виде списочного гомоморфизма. А именно, пусть merge — функция слияния двух упорядоченных списков, list(x) = [x] — функция, превращающая элемент в одноэлементный список. Тогда гомоморфизм hom(merge, list, []) будет искомым списочным гомоморфизмом.


Уфф... сегодня получилось много математики в описании гомоморфизма, чтобы окончательно взорвать мозг в ссылке библиотека, которая haskell-style морфизмы портирует для javanoscript
Список пунктов, которые нужно сделать перед тем как запускать свой сайт.

https://frontendchecklist.io/