TGViewer
Channel Public Channel
As For JS

As For JS

@asforjavascript

As For JavaScript...
Обсуждения — @AsForJsTalks
Subscribers
3.08K
Photos
313
Videos
30
Links
635

Showing posts older than #990 · Back to latest

Older Posts 20 shown
Post #989 2.71K
Post #987 2.76K
Сегодня в 16-00 по Киеву
В живую с Виталий Николаевичем Брагилевским про НИИЧаВо.

Виталий Николаевич Брагилевский:
В прошлом член двух комитетов языка Haskell
Более 20 лет опыта преподавания
Автор книжки haskell in depth
Участник десятка конференций
Волшебник из НИИЧаВо

Поговорим о книжках, образовании и программировании

Если у вас есть свои вопросы - пишите в комментарии


https://www.youtube.com/watch?v=iQ_PRQPBEgQ
YouTube В живую с Виталий Николаевичем Брагилевским про НИИЧаВо. Виталий Николаевич Брагилевский: В прошлом член двух комитетов языка Haskell Более 20 лет опыта преподавания Автор книжки haskell in depth Участник десятка конференций Волшебник из НИИЧаВо Поговорим о книжках, образовании и программировании. Контакты Виталия…
  • 🔥 30
  • 👍 7
Post #986 2.4K
Новые времена - новые вопросы на собеседованиях

Один знакомый прислал вопрос с собеседования:

Перед вами html код, внутри которого есть тег table с данными.

Напишите приведение его к json без использования chatGpt
  • 🌚 13
  • 🔥 4
  • 👨‍💻 4
  • 😁 2
Post #985 2.75K
Воскресение. 2-15 ночи по Киеву
Asm для JS программиста: Вирус и эвристический анализатор
Ранее мы написали очень простой файловый вирус, у которого есть существенный недостаток: антивирусные механизмы, даже не зная его сигнатуры, используя алгоритмы эвристического анализа, его обнаруживают.

Давайте разберемся с тем, как мы можем защитить себя. То есть сделать так, чтобы эвристический анализатор не воспринимал зараженный файл как нечто опасное.

Напишем наши первые стелс-механизмы.

https://www.youtube.com/watch?v=qjVKgy835KQ
YouTube Asm для JS программиста: Вирус и эвристический анализатор Ранее мы написали очень простой файловый вирус, у которого есть существенный недостаток: антивирусные механизмы, даже не зная его сигнатуры, используя алгоритмы эвристического анализа, его обнаруживают. Давайте разберемся с тем, как мы можем защитить себя.…
  • 🔥 12
  • ❤ 5
  • 👍 4
  • 😎 2
  • 😍 1
Post #984 2.31K
Тем, кому был интересен вопрос, относительно первого шага в алгоритме Number.isNaN

Вопрос дошел уже до членов tc39.

Ответ на вскидку - не знаем, возможно для реадебилити.

Пообещали найти концы єтого решения.

Разницы от того найдут или не найдут - нет никакой, но все равно весело.
  • 👍 6
  • 😁 4
Post #983 2.63K
Сегодня, суббота 20.07 в 16-00
Глазами реверс-инженера: npm червь Shai-Hulud

Разберемся что действительно интересного в npm черве Shai-Hulud. Стоит ли он какого либо внимания, и если стоит то в каком месте.

https://www.youtube.com/watch?v=rVfNr7aYYm0
YouTube Глазами реверс-инженера: npm червь Shai-Hulud Разберемся что действительно интересного в npm черве Shai-Hulud. Стоит ли он какого либо внимания, и если стоит то в каком месте. Таймкоды: __будут после__ AsForJs новости в Telegram: https://t.me/AsForJavaScript AsForJs Talks в Telegram: https://t…
  • 🔥 16
  • 👀 1
Post #982 2.28K
https://music.youtube.com/watch?v=v0BCYZTHBWo&si=kGT1iQWHG4Y9vz6h

Розмови про колір болю
Почати треба здаля
Коли вони палять поле
То плаче сама земля

Коли вони рвуть твій прапор
Натомість, тобі болить
Золото і блакить
Золото і блакить

Я пив би і пив із твоїх долонь
Дивився на твоє лице
Та вдосвіта з неба упав вогонь
І перевернув усе

Свого і чужого впізнати
Нескладно, та менш із тим
Ми мали на собі знаки
Блакитні із золотим

І повнились люттю жили
Відплати кожен бажав
Ревіли важкі машини
І ті, хто їх проводжав

Коли ти цілуєш очі
В куточку очей бринить
Золото, золото,
золото і блакить

Золото до небокраю
Блакитне затягне дим
І кожен, хто помирає
Помирає тут молодим

Золото плавиться в кулі
Блакитне в огні горить
Золото і блакить
Золото і блакить

То ось тобі моє слово
Ось тобі зміст буття
Ось тобі тіло Христове
Розірване на шмаття

В бою за священне право
Узріти в останню мить
Золото і блакить
Золото і блакить
YouTube Золото і блакить Provided to YouTube by AB3 Music Золото і блакить · Третя Штурмова · Zwyntar · Саша Кладбіщє · Костянтин Пуга ЕПОХА ℗ 2024 AB3 Music Released on: 2024-11-15 Auto-generated by YouTube.
  • 🔥 19
  • 👍 3
  • ❤ 2
  • 👎 2
  • 🕊 1
  • 😍 1
Post #981 2.39K
А Вы знаете разницу между
+"123";  //123
// и
Number( "123" ); //123

?
Post #980 3.08K
А Вы знаете разницу между
isNaN( value );
// и
Number.isNaN( value );



Разница в том, что
Глобальный isNaN, оценивает именно результат приведения переданных данных к числу, а не само переданное данное
Например:
isNaN( "lorem" ); //true


В то же время Number.isNaN, проверяет ИМЕННО переданные данные на то, являются ли они УЖЕ NaN
Number.isNaN( "lorem" ); //false
  • 👍 25
  • ❤ 1
  • 👎 1
Post #979 2.48K
К слову о разговоре с В.Н.Брагилевским,
если у Вас есть желание что-то спросить - напишите что именно, я єто попробую интегрировать в план разговора.

Вопросы с донатами получают +10% в карму (;
  • 👍 16
Post #978 2.94K
Post #977 2.58K
Ежик, сто один, оградка
  • 💯 5
Post #976 2.92K
Если все будет хорошо то 24 - ВНБ
  • 👀 8
  • 🔥 2
  • ❤ 1
  • 🤯 1
Post #975 3.24K
Кому не трудно
выполните вод этот код у себя в девтулс

(
()=>{
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
Post #974 2.63K
Сегодня 21-00 по Киеву
Почему NaN это диапазон из 9 квадриллионов чисел

Погрузившись в историю вопроса, детали спецификации и практических ее реализаций, разберемся в том, почему NaN это целый диапазон чисел, который можно использовать и в JavaScript в том числе и для вычислений, сохраняя все особенности NaN.

https://www.youtube.com/watch?v=QxmS2ny5o3s
  • 👍 11
  • 🔥 4
  • 🤯 4
  • ❤ 1
Post #973 2.46K
Кому нечего делать

Придумайте четыре и больше способов проверить данные на 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
Post #972 2.64K
Если нечего послушать про программирование.

Прекрасное интервью с Дональдом Кнутом переведенное на русский язык.

Особенно доставила часть касающаяся Big O нотации и любой подобной нотации как таковой, где Дональд Кнут слово в слово повторяет то, что говорил я. А меня за эти слова отдельные личности критиковали.

Пусть теперь сходят покритикуют Дональда Кнута.


https://www.youtube.com/watch?v=-xuB6dsm3OE
  • 👍 10
  • 👌 2
  • ❤ 1
Post #971 2.51K

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
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
Post #969 2.45K
Сегодня с 20-30 по 23 ищите луну на небе.
Будет полное затмение.

уже сейчас погаснет/вспыхнет
  • 🌚 14
  • ❤ 5
  • 👍 3
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →