This media is not supported in your browser
VIEW IN TELEGRAM
Туче похорошело!
мы играем с оторвонной рыбе рыбьей головой.
мы играем с оторвонной рыбе рыбьей головой.
❤84🙏50🔥10👍1👎1😁1😍1
22-30 по Киеву.
Как тест от Google LightHouse оценивает ваш HTML и CSS с точки зрения производительности
На примерах разберем, что именно имеет значение для производительности ваших страниц с точки зрения теста LightHouse.
Усвоим простые практики, которые позволят нам, без лишних усилий, сохранять зеленую зону в тесте производительности от Google - LightHouse.
Сделаем это на примере простого кода для drop down Menu взятого на просторах интернета, разобрав его со всех сторон.
https://www.youtube.com/watch?v=8MPsmik4h_Y
Как тест от Google LightHouse оценивает ваш HTML и CSS с точки зрения производительности
На примерах разберем, что именно имеет значение для производительности ваших страниц с точки зрения теста LightHouse.
Усвоим простые практики, которые позволят нам, без лишних усилий, сохранять зеленую зону в тесте производительности от Google - LightHouse.
Сделаем это на примере простого кода для drop down Menu взятого на просторах интернета, разобрав его со всех сторон.
https://www.youtube.com/watch?v=8MPsmik4h_Y
YouTube
Как LightHouse оценивает ваш HTML и CSS с точки зрения производительности
На примерах разберем, что именно имеет значение для производительности ваших страниц с точки зрения теста LightHouse.
Усвоим простые практики, которые позволят нам, без лишних усилий, сохранять зеленую зону в тесте производительности от Google - LightHouse.…
Усвоим простые практики, которые позволят нам, без лишних усилий, сохранять зеленую зону в тесте производительности от Google - LightHouse.…
❤31👍10🔥3👨💻1
Можно ли на JavaScript не только писать читабельный код, но и программировать?
Anonymous Poll
54%
Да
13%
Нет
33%
Я упырь
Кому охота порыдать.
Посмотрите Все псы попадают в рай.
И если сам мультфильм Вам покажется не достаточно слезливым, прочитайте о судьбе актрисы которая озвучивала главную героиню.
Є гарний переклад Солов'їною.
Посмотрите Все псы попадают в рай.
И если сам мультфильм Вам покажется не достаточно слезливым, прочитайте о судьбе актрисы которая озвучивала главную героиню.
Є гарний переклад Солов'їною.
💔19❤9👍1
Если хочется о чем-то подумать.
Придумайте больше трех способов преобразовать тип Number в тип BigInt и наоборот.
Придумайте больше трех способов преобразовать тип Number в тип BigInt и наоборот.
🤯8👌1👨💻1
1-45 по Киеву
Как правильно делать WEB проекты
Поговорим о том, что такое SSR и CSR. Разберемся в том, как следовало бы выстраивать WEB архитектуру приложения в случае, когда для Вас важен органический трафик. То есть тот трафик, который возникает благодаря поисковой машине.
https://www.youtube.com/watch?v=fy8raIuNewE&pp=0gcJCcYJAYcqIYzv
Как правильно делать WEB проекты
Поговорим о том, что такое SSR и CSR. Разберемся в том, как следовало бы выстраивать WEB архитектуру приложения в случае, когда для Вас важен органический трафик. То есть тот трафик, который возникает благодаря поисковой машине.
https://www.youtube.com/watch?v=fy8raIuNewE&pp=0gcJCcYJAYcqIYzv
YouTube
Как правильно делать WEB проекты
Поговорим о том, что такое SSR и CSR. Разберемся в том, как следовало бы выстраивать WEB архитектуру приложения в случае, когда для Вас важен органический трафик. То есть тот трафик, который возникает благодаря поисковой машине.
Таймкоды:
__будут после__…
Таймкоды:
__будут после__…
🔥19🙏8👨💻2
Извините.
традиция такая.
и снова третье сентябряяяя
upd: вибачте, я забув про беслан.
саме про нього треба згадувати цієї дати.
традиция такая.
и снова третье сентябряяяя
upd: вибачте, я забув про беслан.
саме про нього треба згадувати цієї дати.
👎31🔥27👍5😁4🤣4💔3❤2
Сегодня с 20-30 по 23 ищите луну на небе.
Будет полное затмение.
уже сейчас погаснет/вспыхнет
Будет полное затмение.
уже сейчас погаснет/вспыхнет
🌚14❤5👍3
Forwarded from Demi Murych
Відповідь треба поідилити на 2 частини: де саме JS та чому існує потреба розглядати JS без відриву від HOST середовища у якому JS використовується.
Згідно офеційної специфікації ECMA, мова JS є скріптованою мовою, тобто мовою у якої не може бути свого вводу/виводу, тобто мовою яку вбудовують кудись, де вона вже користується можливостями системи.
Система куди вбудовують JS, згідно специфікації зветься HOST.
HOST користується можливостями які надає JS для вирішення свої задач.
Тобто HOST не може зробити нічого, якщо специфікація забороняє це, або не надає необхідних можливостей.
Розглянемо ваш перелік пунктів згідно специфікації та окремо - згідно HOST середовищу яке ви позначили як chromium.
1) single threaded
Відповідає дійсності щодо 1997 року.
Та НЕ відповідає дійсності сучасному JS, а саме з 2017 року, коли з'являється концепція Multi-Agent
При цьому треба звернути увагу на те, що специфікація не регламентує то як саме буде реалізовано те саме "Multi-Agent ". Що призводить до того, що то, як воно працює in wild - залежіть від конкретної реалізації.
Наприклад v8 (рушій який створено Google) в залежності від операційної системи може використовувати різні моделі: в Linux це будуть системні треди, в Windows в залежності від обставин це можуть бути або треди або окремі процеси.
Тобто сучасний JS згідно специфікації може бути распаралелено в межах декількох агентів, реалізація яких халежіть від конкретного рушія. І може бути як архаічною - single thread, до мульти тхреад, мульти процесс, або будь чого що автори рушія вирішать за важливим для себе.
До речі, щоб сучасний Chrome використав V8 який працює в Single thread для цбого треба руцями вказати ключ:
--single-threaded
2) garbage collected
З точкі зору сучасної специфікації, не має ніяких обмежень на то, що саме вікористовуї рушій для виконання JS коду. Рушій сам обирає для себе ту модель роботи з памятью яка йому зручніше. І це не обов'язково garbage collector.
V8 - працює саме завдяки Garbage Collector. Його так зробили. Але, навіть V8 можно запустити з вимкненим GC, на будь якому Chromium (треба лише стартанути використавши ключ --gc-interval) . І це буде працювати ДУЖЕ ШВИДКО якщо код на JS написано людиною яка розуміється на тому, як не витрачати безліч пам'яті.
7) non blocking event loop
Згідно сучасної специфікації, виконання JS коду не потребує ніякого EVENT LOOP.
У випадку Chrome Event Loop існує тому, що це потреба специфікації HTML5.
NodeJs використовує свою імплементацію Event Loop яка відрізняеться від HTML5
Будь яке інше середовище взагалі може використовувати JS без Event Loop
Замість ІГОГО:
Імплементація JS з 2017 року може бути будь якою, тобто не завжди sibglt threaded. Все залежить від можливостей рушія який або використовує сучасні можливості специфікації мови, або ні.
У випадку Crhomium ми можем бачити це на прикладі Worker API яке саме це і робить.
Garbage Collector - це одна з можливих особливостей реалізацій JS рушія, яка не має відношення щодо реалізації її у випадку саме JS специфікації. І є частину особистої реалізації конкретного рушія. Наприклад V8. І навіть в ньому він може бути відключено, та JS продовжить свою роботу, ефективність якої буде вже зхалежіть від того, як програміст написав свій код.
Event Loop - знову ж не є частиною JS. У випадку Chrome це частина специфікації HTML5. Сам по собі JS може працювати або по іншщому алгоритму Event Loop або без Event Loop взгалі.
Згідно офеційної специфікації ECMA, мова JS є скріптованою мовою, тобто мовою у якої не може бути свого вводу/виводу, тобто мовою яку вбудовують кудись, де вона вже користується можливостями системи.
Система куди вбудовують JS, згідно специфікації зветься HOST.
HOST користується можливостями які надає JS для вирішення свої задач.
Тобто HOST не може зробити нічого, якщо специфікація забороняє це, або не надає необхідних можливостей.
Розглянемо ваш перелік пунктів згідно специфікації та окремо - згідно HOST середовищу яке ви позначили як chromium.
1) single threaded
Відповідає дійсності щодо 1997 року.
Та НЕ відповідає дійсності сучасному JS, а саме з 2017 року, коли з'являється концепція Multi-Agent
ECMAScript 2017 introduced Async Functions, Shared Memory, and Atomics along with smaller language and library enhancements, bug fixes, and editorial updates. Async functions improve the asynchronous programming experience by providing syntax for promise-returning functions. Shared Memory and Atomics introduce a new memory model that allows multi-agent programs to communicate using atomic operations that ensure a well-defined execution order even on parallel CPUs.
При цьому треба звернути увагу на те, що специфікація не регламентує то як саме буде реалізовано те саме "Multi-Agent ". Що призводить до того, що то, як воно працює in wild - залежіть від конкретної реалізації.
Наприклад v8 (рушій який створено Google) в залежності від операційної системи може використовувати різні моделі: в Linux це будуть системні треди, в Windows в залежності від обставин це можуть бути або треди або окремі процеси.
Тобто сучасний JS згідно специфікації може бути распаралелено в межах декількох агентів, реалізація яких халежіть від конкретного рушія. І може бути як архаічною - single thread, до мульти тхреад, мульти процесс, або будь чого що автори рушія вирішать за важливим для себе.
До речі, щоб сучасний Chrome використав V8 який працює в Single thread для цбого треба руцями вказати ключ:
--single-threaded
2) garbage collected
З точкі зору сучасної специфікації, не має ніяких обмежень на то, що саме вікористовуї рушій для виконання JS коду. Рушій сам обирає для себе ту модель роботи з памятью яка йому зручніше. І це не обов'язково garbage collector.
V8 - працює саме завдяки Garbage Collector. Його так зробили. Але, навіть V8 можно запустити з вимкненим GC, на будь якому Chromium (треба лише стартанути використавши ключ --gc-interval) . І це буде працювати ДУЖЕ ШВИДКО якщо код на JS написано людиною яка розуміється на тому, як не витрачати безліч пам'яті.
7) non blocking event loop
Згідно сучасної специфікації, виконання JS коду не потребує ніякого EVENT LOOP.
У випадку Chrome Event Loop існує тому, що це потреба специфікації HTML5.
NodeJs використовує свою імплементацію Event Loop яка відрізняеться від HTML5
Будь яке інше середовище взагалі може використовувати JS без Event Loop
Замість ІГОГО:
Імплементація JS з 2017 року може бути будь якою, тобто не завжди sibglt threaded. Все залежить від можливостей рушія який або використовує сучасні можливості специфікації мови, або ні.
У випадку Crhomium ми можем бачити це на прикладі Worker API яке саме це і робить.
Garbage Collector - це одна з можливих особливостей реалізацій JS рушія, яка не має відношення щодо реалізації її у випадку саме JS специфікації. І є частину особистої реалізації конкретного рушія. Наприклад V8. І навіть в ньому він може бути відключено, та JS продовжить свою роботу, ефективність якої буде вже зхалежіть від того, як програміст написав свій код.
Event Loop - знову ж не є частиною JS. У випадку Chrome це частина специфікації HTML5. Сам по собі JS може працювати або по іншщому алгоритму Event Loop або без Event Loop взгалі.
libuv.org
libuv | Cross-platform asynchronous I/O
libuv, a platform abstraction library with focus on asynchronous i/o.
👍14❤5
Если нечего послушать про программирование.
Прекрасное интервью с Дональдом Кнутом переведенное на русский язык.
Особенно доставила часть касающаяся Big O нотации и любой подобной нотации как таковой, где Дональд Кнут слово в слово повторяет то, что говорил я. А меня за эти слова отдельные личности критиковали.
Пусть теперь сходят покритикуют Дональда Кнута.
https://www.youtube.com/watch?v=-xuB6dsm3OE
Прекрасное интервью с Дональдом Кнутом переведенное на русский язык.
Особенно доставила часть касающаяся Big O нотации и любой подобной нотации как таковой, где Дональд Кнут слово в слово повторяет то, что говорил я. А меня за эти слова отдельные личности критиковали.
Пусть теперь сходят покритикуют Дональда Кнута.
https://www.youtube.com/watch?v=-xuB6dsm3OE
YouTube
Дональд Кнут - большое интервью от Лекса Фридмана
Оригинал: https://www.youtube.com/watch?v=EE1R8FYUJm0 , https://www.youtube.com/watch?v=2BdBfsXbST8
Дональд Кнут, легендарный ученый-информатик, лауреат премии Тьюринга и отец многих компьютерных алгоритмов из ваших школьных учебников.
Автор монументального…
Дональд Кнут, легендарный ученый-информатик, лауреат премии Тьюринга и отец многих компьютерных алгоритмов из ваших школьных учебников.
Автор монументального…
👍10👌2❤1
Кому нечего делать
Придумайте четыре и больше способов проверить данные на NaN.
Приз за самый необычный способ.
Уже предложенные варианты:
Есть еще минимум один вариант, который радикально отличается от всего предложенного
Придумайте четыре и больше способов проверить данные на NaN.
Приз за самый необычный способ.
Уже предложенные варианты:
// 1
Number.isNaN(value)
// 2
Object.is(NaN, value)
// 3
((value) => {
return value + 1 !== value + 1
})
/// 3.1 упрощенный
value !== value;
// 4
new Set([value, NaN]).size === 1
new Set([NaN]).has(value)
// 5
typeof value==="number" && String(value) === "NaN"
// 6
[NaN].includes(value)
// 7
typeof value === 'number' && !(value <= Infinity)
Есть еще минимум один вариант, который радикально отличается от всего предложенного
❤4🌚4💔3🔥1
Сегодня 21-00 по Киеву
Почему NaN это диапазон из 9 квадриллионов чисел
Погрузившись в историю вопроса, детали спецификации и практических ее реализаций, разберемся в том, почему NaN это целый диапазон чисел, который можно использовать и в JavaScript в том числе и для вычислений, сохраняя все особенности NaN.
https://www.youtube.com/watch?v=QxmS2ny5o3s
Почему NaN это диапазон из 9 квадриллионов чисел
Погрузившись в историю вопроса, детали спецификации и практических ее реализаций, разберемся в том, почему NaN это целый диапазон чисел, который можно использовать и в JavaScript в том числе и для вычислений, сохраняя все особенности NaN.
https://www.youtube.com/watch?v=QxmS2ny5o3s
YouTube
Почему NaN это диапазон из 9 квадриллионов чисел
А Вы знали о том, что в JavaScript можно использовать 9 квадриллионов разных NaN?
А Вы знали, что их можно использовать в вычислениях не теряя их особенностей?
Цитата:
"Возможно, NaN часто неправильно понимают потому, что они не нужны для математического…
А Вы знали, что их можно использовать в вычислениях не теряя их особенностей?
Цитата:
"Возможно, NaN часто неправильно понимают потому, что они не нужны для математического…
👍11🔥4🤯4❤1
Кому не трудно
выполните вод этот код у себя в девтулс
и покажите что выдало в консоль
выполните вод этот код у себя в девтулс
(
()=>{
var ab = new ArrayBuffer( 24 );
var float64 = new Float64Array( ab );
var int64 = new BigUint64Array( ab );
float64[ 0 ] = NaN;
float64[ 1 ] = Math.sqrt( -1 );
// console.log( Math.sqrt( -1 ) );
console.log( 'sqrt', float64[ 0 ], int64[ 0 ].toString( 2 ) );
console.log( 'sqrt', float64[ 1 ], int64[ 1 ].toString( 2 ) );
}
)();
и покажите что выдало в консоль
❤3
Кому ничего посмотреть / послушать, вот прекрасная тема для размышлений
https://www.youtube.com/watch?v=-tp2bfP36Hg
https://www.youtube.com/watch?v=-tp2bfP36Hg
YouTube
Функции. Разбор книги "Чистый Код" Роберта Мартина #1 | Организованное программирование
Первое видео в серии разбора чистого кода по Мартину. Говорим о функциях, почему короткие функции могут делать код хуже, одна ответственность слишком субъективное понятие, а многие рекомендации специфичны для Java и вредны для других языков. Говорим о нормальности…
👍7❤6🔥5