πŸ‡ΊπŸ‡¦ Math.random(): javascript community
1.16K subscribers
363 photos
8 videos
530 links
Admin: @andrey_pk, @StartupEmulatorAdmin
YouTube ΠΊΠ°Π½Π°Π»: https://bit.ly/3cdY6HV
Download Telegram
Π£Π²Π΅Ρ€Π΅Π½Π½ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° #післясвят ΠΈ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° 22 января ΡƒΠΆΠ΅ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π° пСрвая Π² этом Π³ΠΎΠ΄Ρƒ встрСча. ОТидаСм Π² гости Martin Chaov, Software Architect SBTech ΠΈ АлСксандра ΠŸΠΎΡˆΡ‚Π°Ρ€ΡƒΠΊΠ°, Senior Front-end developer ITecGurus 😱 Π’Π΅ΠΌΠ° ΠΏΠ΅Ρ€Π²ΠΎΠΉ встрСчи ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π»Π΅Π²Π°Π½Ρ‚Π½Π° ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ ΠΏΠ»Π°Π½Π° ΠΏΠΎ Π»ΠΈΡ‡Π½ΠΎΠΌΡƒ росту Π½Π° Π³ΠΎΠ΄ β€” Growing Seniority πŸ˜‰ http://mathrandom.com/growing_seniority.
Как Ρ€Π΅Π·Π°Π»ΠΈ Π»ΠΈ Π±Ρ‹ Π½ΠΎΠΆΠ½ΠΈΡ†Ρ‹ βœ‚οΈ ΠΈΠ· ΠΈΠΊΠΎΠ½ΠΎΠΊ, Ссли Π±Ρ‹ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ - 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 javascript ΠΏΠ»Π°Π³ΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ строит Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· массива ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², 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-javascript
β Π˜Π»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ 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: M β†’ N называСтся Π³ΠΎΠΌΠΎΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΠΎΠΌ (homomorphism), Ссли h(x β‹…M 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 ΠΌΠΎΡ€Ρ„ΠΈΠ·ΠΌΡ‹ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ для javascript