Как стать автором
Поиск
Написать публикацию
Обновить
352.19

JavaScript *

Прототипно-ориентированный язык программирования

Сначала показывать
Порог рейтинга

Для тех, кто рассматривает TypeScript как инструмент (язык) для борьбы с ошибками: склонность к ошибкам и время их исправления в TypeScript оказались не значительно ниже, чем в JavaScript. Среднее отношение коммитов с исправлениями ошибок в проектах на TypeScript было более чем на 60% выше (0.126 против 0.206), и в среднем проектам на TypeScript требовалось более чем на один день больше для исправления ошибок (31,86 против 33,04 дней).

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии7

Совет по Joomla: используем Promise в Ajax-запросах

В статье Ajax-запросы нативными средствами Joomla было подробно разобрано, как с помощью Joomla.request можно легко создавать Ajax-запросы в Joomla.

В одном из комментариев был вопрос по поводу Promise, а умеет ли Joomla? Умеет, но начиная с Joomla 4. Достаточно при создании запроса выставить флаг promise в true и результатом выполнения запроса будет Promise:

Joomla.request({
    url: Joomla.getOptions('system.paths', '').root+'/index.php?option=com_ajax&format=json&module=example',
    method: 'POST',
    promise: true
})
.then(response => {
    let text = JSON.parse(response.text);
    return text.data;
})
.catch(error => {
    console.log(error);
});

Таким образом мы можем эффективно строить асинхронные цепочки, добавив всего один флаг к вызову Joomla.request.

Теги:
Всего голосов 8: ↑8 и ↓0+11
Комментарии0

Контекст исполнения: что это и какие виды бывают?

В девятом выпуске нашего открытого курса по JavaScript вместе с веб-разработчиком Василием Новиковым подробно разбираем Execution Context — контекст исполнения.

Из нового выпуска вы узнаете:

  • как объяснить Execution Context простым языком;

  • какие бывают виды контекста исполнения;

  • каким образом реализуется концепция Environment Record.

Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.

Теги:
Всего голосов 18: ↑18 и ↓0+18
Комментарии0

Не знаю на сколько это свежая новость ибо прочитал в новостях, но факт занимательный. JetBrains (опять) изменила лицензирование сделав IDE для Rust, JavaScript, C# и тестирования бесплатными для некоммерческого использования.

На сколько это следствие продвижения ИИ в средствах разработки - поди знай, но уж больно совпало по времени.

Теги:
Всего голосов 2: ↑1 и ↓1+1
Комментарии3

Что необходимо учесть при поднятии переменных?

В новой серии нашего открытого курса по JavaScript вместе с веб-разработчиком Василием Новиковым разбираем поднятие переменных как один из этапов выполнения кода.

Из нового выпуска вы узнаете:

  • что такое поднятие переменных; 

  • три ключевых слова: как объявлять переменные в JavaScript;

  • два вида типизаций и условия их определения.

Не забывайте заглядывать в описание к видео — там ссылки на полезные материалы по теме.

Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.

Теги:
Всего голосов 13: ↑13 и ↓0+15
Комментарии0

Посчитай свой кредит!

Как и обещал в прошлом посте - чуть более серьезный проект:

Калькулятор Кредита

Иногда планирую крупную покупку и считаю кредит + проверяю предложения от кредиторов, чтобы знать не добавили ли они что-то.

Все инструменты для этого, которые находил, мне не нравились - поэтому сделал свой.

Самый быстрый, удобный и красивый калькулятор кредита!

Сохранение данных (даже в ссылке), диаграмма, таблица платежей и % переплаты - все на месте.

Наслаждайтесь)

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Привет друзья! Сделал максимально простые аналоговые часы на SVG. Можно ли их еще упростить или уменьшить? Или добавить немного улучшений без переусложнения? Буду рад вашим идеям!

Вот CodeSandbox

Fusor SVG Analog Clock
Fusor SVG Analog Clock

Сделано с помощью библиотеки Fusor

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии10

Калькулятор финансов - теперь можете посчитать свои средства и данные сохранятся локально на устройстве)

Предтеча другого, более крупного проекта, который будет потом)

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии5

Как в нативе: эти Web API поднимут ваше веб-приложение в стратосферу

С ними даже можно сыграть в Техасский Холдем😂
С ними даже можно сыграть в Техасский Холдем😂

Салют, на связи Clevertec. Сейчас наша команда разрабатывает веб-версию банкинга с использованием React. С помощью Web API даем пользователям фичи, которые они привыкли получать в нативных приложениях. Отрываем от сердца список решений 😉

- Web Share API
– для обмена ссылками, текстом и файлами с другими приложениями на устройстве. К примеру, удобно отправить чек об оплате в мессенджере, не покидая банковское приложение. 

- Contact Picker API позволяет делиться контактами из своего списка. Можно использовать для перевода по номеру телефона. Не нужно вводить цифры вручную – поле автоматически заполнится контактом из телефонной книги. 

- Media Capture and Streams API в нашем случае позволяет отсканировать QR-код с помощью камеры устройства. Нажимаешь на “Сканировать QR” – открывается окно с камерой, она считывает код и переводит пользователя в дерево платежей.

- Web OTP API открывает возможность автоматически вставлять код из смс. Например, для подтверждения оплаты на телефон приходит сообщение. Внизу экрана появляется модальное окно с подтверждением вставки. И после нажатия на “Разрешить” код отображается в поле ввода.

Подробнее про этот опыт использования Web API мы рассказали в отдельной статье. Что вы думаете о Web API, какие используете? Расскажите в комментариях, будем взаимно полезны друг другу.  

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Объектная парадигма и всё, что нужно о ней знать

В седьмом выпуске нашего открытого курса по JavaScript вместе с веб-разработчиком Василием Новиковым рассказываем про:

  • способы создания примитивов с помощью конструкторных функций и простой нотации; 

  • доступ к методам строкового объекта и использование метода valueOf для получения примитивных значений; 

  • концепции области видимости: глобальную, функциональную, блочную и модульную;

  • введение в блочную область видимости, добавленную в ECMAScript 2016, и её применение; 

  • понимание лексической среды и замыканий, которые позволяют функциям сохранять доступ к переменным родительских функций.

Не забывайте заглядывать в описание к видео — там ссылки на полезные материалы по теме.

Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.

Теги:
Всего голосов 17: ↑17 и ↓0+19
Комментарии0

В иконках сайта обновление!

Теперь можно генерировать изображения иконок для сайта самостоятельно (все-таки он теперь генератор).

Работает на GigaChat API - генерирует так себе, так что это скорее для галочки.

Но если будет пользоваться популярностью может куплю токенов по-лучше

Теги:
Всего голосов 3: ↑2 и ↓1+5
Комментарии0

Кнопка со счётчиком: React vs Fusor

Кнопка со счётчиком: React vs Fusor
Кнопка со счётчиком: React vs Fusor

Fusor это новый способ разработки вэб приложений https://github.com/fusorjs/dom

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии2

Довольно давно, когда работал сисадмином, написал пару скриптов, чтобы от обычного ping получить несколько большую информационную отдачу, об этом в видео. Скрипты выложил на GitHub.

Теги:
Всего голосов 4: ↑2 и ↓2+2
Комментарии5

Ближайшие события

Производственный календарь

Мини-сервис, который позволит удобнее выяснить свою ЗП (аванс и оплату)

Открыт к предложениям по улучшению

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Сделал небольшую страницу-шпаргалку для фронтенд-разработчиков.

Напоминалки и полезные функции для рутинных задач.

Буду рад предложениям, что еще полезного можно добавить)

Теги:
Всего голосов 6: ↑5 и ↓1+6
Комментарии5

Какая-то нездоровая движуха пошла вокруг Telegram, и я задумался, как можно еще больше обезопасить свои сообщения. На выходных закодил плагин для локального шифрования на Telegram Web. Вот такая штука получилась.

NebulaEncrypt - Chrome Extension for Secure Local Encryption on the Web
NebulaEncrypt - Chrome Extension for Secure Local Encryption on the Web

Идея такая, отправлять не явные сообщения, а локально зашифрованные и далее плагин на лету их расшифровывает непосредственно на клиенте.

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

Плагин больше, как концепция, интересно было попробовать насколько это может быть удобно. Так то можно не только в телеге использовать, главное написать адаптер.

Как вам идейка вообщем?

Потестить можно тут https://github.com/dmitrymalakhov/NebulaEncrypt

Telegram: Мотивируй IT

Теги:
Всего голосов 23: ↑22 и ↓1+27
Комментарии16

BigInt и работа с числовыми значениями в JavaScript — в шестой серии открытого курса по JS

Это курс от инженеров AvitoTech — вместе с фронтендером Василием Новиковым разбираемся в базовых технологиях веб-разработки в JavaScript.

В новой серии изучаем, как проводить разные операции с помощью BigInt, на какие особенности нужно обращать внимание в полученных результатах, как определить безопасные целые числа и что делать, если числа оказались вне безопасного диапазона.

Приятного просмотра!

Теги:
Всего голосов 10: ↑10 и ↓0+12
Комментарии0

Невидимый трекинг через куки

Всем привет. Тестирую формат постов и, заодно, делюсь подсмотренной идеей трекинга пользователей «без палева», который прямо-таки очень тяжело отловить (если не делать отладку HTTP-запросов) и очень технически сложно заблокировать.

Разработчики [CENSORED], придумали практически безотказный способ отправлять логи, даже если пользователь использует блокировщики. Схема простая:

  1. Случилось событие, которое нужно затрекать.

  2. С помощью JavaScript создаётся кука, имя которой соответствует определённому формату + рандомная строка-суффикс, а в значении содержится urlencoded-набор-параметров-значений.

  3. Любой следующий запрос к сервису содержит эту куку. Сервис в ответе в хэдерах пишет, что куку нужно удалить. Кука отправилась и удалилась, никто ничего не заметил, никаких лишних запросов, трекинг-данные доставлены.

  4. PROFIT.

Я читал много разных новостей про экзотические способы трекинга, но конкретно этот обнаружил самостоятельно. Буду рад, если покормил чью-то паранойю.

Теги:
Всего голосов 6: ↑6 и ↓0+9
Комментарии5

Работа с данными в JavaScript — в пятой серии открытого курса по JS

Это новый курс от инженеров AvitoTech — вместе с фронтендером Василием Новиковым разбираемся в базовых технологиях веб-разработки в JavaScript.

В этой серии изучаем проблемные числа, разбираемся с мантиссой, экспонентой и сдвигом, пытаемся понять арифметику стандарта IEEE 754. Знаете, почему 0,1 и 0,2 в сумме не дают 0,3? Смотрите, и всё поймёте!

А если знаете — всё равно смотрите, вспоминать базу всегда полезно!

Теги:
Всего голосов 11: ↑11 и ↓0+13
Комментарии0

Омар Шехата поделился одним из своих самых популярных проектов. Это крошечное веб-приложение JPEG Viewer для демонстрации алгоритмов, которые работают в формате сжатия JPEG.

Страница демонстрирует, как изображение разбивается на блоки 8×8 пикселей, каждый из которых затем подвергается алгоритму дискретного косинусного преобразования. Упрощённо можно сказать, что каждый из блоков математически преобразуется из двумерного изображения в сигнал, а затем представляется как сумма синусоид. Интересно в инструменте Омара то, что он допускает ручное редактирование преобразования каждого из блоков 8×8 пикселей.

Также Омар рекомендует свою статью про алгоритмы сжатия JPEG, в которой он применил схожие инструменты.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии1

Вклад авторов