Рубрика «javascript» - 424

В современном JavaScript существует целый пласт различных видов итерируемых структур данных:

  • Array
  • TypedArrays
  • Object
  • Map
  • Set
  • String

А также появились генераторы и универсальный протокол @@iterator, который позволят итерировать что угодно и как угодно. И в тоже время для некоторых типов данных (в основном для массивов) определены различные методы для удобной функциональной работы и простого итерирования, например, forEach, map или reduce, и всё было бы хорошо, однако:

  • Большинство методов определены только для массивов;
  • Определяемое API слишком примитивно и не покрывает целый ряд задач;
  • До сих пор скорость выполнения нативных итераторов далека от идеала и существенно уступает реализации на циклах.

Читать полностью »

в 9:14, , рубрики: javascript, метки:

Вы писали крупные проекты используя JS? У вас было много объектов в объектах объектов (напр. LIB.Module.object.param)? У меня такое было часто и это вызвало довольно большое неудобство и плохой вид кода. Аналогично часто приходилось использовать анонимные функции, они выглядят не особо аккуратно.
Читать полностью »

Аннотация

Здесь описан способ реализации протокола Modbus-RTU при помощи shell-скрипта и обвязки в виде js-кода. Обсуждаемый метод может быть использован для реализации других потоковых протоколов, где нужно оперировать массивами байт в ограниченном окружении (роутер).

Modbus RTU на скриптах

Идея в трёх строчках

Для нетерпеливых показываю основную идею:

printf "x00x03x00x00x00x01x85xDB" > $tty
( dd if=$tty of=$ans count=256 2> /dev/null ) & /usr/bin/sleep $timeout; kill $!
echo "[`hexdump -ve '1/1 "%d,"' $ans | sed 's/(.*),/1/'`]"

Читать полностью »

Как-то поиграв в оффисе, в hexbug, зародилась идея написать игрушку по схожим мотивам.
По текущему роду деятельности я веб разработчик и поэтому захотелось чтобы в игре использовался только HTML, JavaScript и CSS — средства знакомые каждому вебразработчику. Никакого вам flash или даже canvas. Звучит хардкорно, но на самом деле сейчас HTML + CSS3 это очень мощные и гибкие средства визуализации, а писать игровой код на JavaScript — одно удовольствие. Вдобавок захотелось чтобы игра была с сетевым мультиплеером, притом интерактивной — никаких там шашек, карточных игр, пошаговых стратегий, все должно быть в действии и движении.

Вот что получилось в итоге:

В статье я оставлю набор заметок возникших при написании прототипа игрушки, нацеленных больше на подход «как сделать попроще и побыстрее». Думаю статья может сгодиться как некое подспорье для новичков в этом увлекательном деле.

Читать полностью »

Веб-сайт Who Am I? использует «продвинутые достижения нейробиологии», чтобы определить увлечения любого человека. Для верного анализа достаточно выполнить простую процедуру: в произвольном порядке щёлкнуть по всем красным квадратикам в массиве.

«Кто я?» — чтение мыслей и никакого мошенничества (посмотрите исходник)

И после этого нажать кнопку “done!”
Читать полностью »

image

Холодным Апрельским днем когда на Урале еще не растаял снег. Смеркалось. Я игрался с микро-шаблонами. Читать полностью »

Знакомые разработчики часто спрашивают почему год назад вместо Angular я выбрал Ember.js, сделал на нем четыре проекта и не хочу останавливаться. Так как они нашли мои аргументы весьма убедительными, я решил поделиться ими со всеми перед кем встанет вопрос выбора.
Angular vs Ember comparison
Читать полностью »

Доброй пятницы!

Компания-партнер Tizen AssociationMarmalade Technologies Ltd. на днях представила полностью бесплатную лицензию для своего кросс-платформенного SDK, который на данный момент является мировым лидером и дает возможность разработчикам приложений и игр со всего мира осуществлять творческие задумки и коммерческие идеи, не выбирая между качеством и производительностью на всех мобильных платформах.

Marmalade становится бесплатным

Читать полностью »

Начиная с версии 1.5, в Firefox появился механизм кеширования, сохраняющий состояние страницы в памяти. Кеширование действует на одну сессию браузера. Перемещаясь по посещенным страницам с использованием кнопок «Назад/Вперёд», нет необходимости загружать страницу с сервера целиком. При этом вся страница, включая js-скрипты, как бы «консервируются» в том состоянии, в котором они были, когда пользователь их покидал. Данный механизм позволяет производить навигацию по посещенным страницам крайне быстро. Состояние кеша остается неизменным, пока действует сессия браузера (пока пользователь не закроет закладку, или браузер).

Не «баг», а «фича»

Помимо прочего, непонимание данного механизма браузеров вызывает настоящую головную боль у разработчиков. Рассмотрим пример.
Есть форма, данные которой мы хотим отправить на сервер. Мы хотим как-то визуализировать этот процесс и запускаем спиннер при отправке формы. Браузер переходит на следующую страницу. Если мы вернемся назад, используя кнопку браузера «Назад» (или через window.history.back()), то скорее всего увидим, что спиннер так и вращается, хотя на самом деле уже ничего не происходит.

Разработчик может посчитать, что данное поведение ни что иное как баг браузера или какая-то его особенность, и в поисках быстрого решения бездумно вставить лишний обработчик на событие unload (первый пункт в списке, приведенном дальше). Тем самым разработчик отказывается от BFCache вообще, тем самым лишая своих пользователей возможности практически мгновенного перемещения по посещенным страницам.
Читать полностью »

Корпорация Google готовится выпустить специальное расширение для браузера Google Chrome, которое позволит пользователям сервиса GMail зашифровывать сообщения перед отправкой, чтобы исключить возможность перехвата сообщений. Расширение под простым названием End-to-End использует стандарт OpenPGP, но пока не готово к выпуску, так как Google просит помощи у сообщества.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js