Как стать автором
Обновить

Cloudflare представила сервис Pages для статических сайтов JAMstack

Время на прочтение 2 мин
Количество просмотров 4.9K


Компания Cloudflare анонсировала продукт Cloudflare Pages. Сервис помогает разработчикам создавать сайты с использованием подхода JAMstack.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 3

Вышла версия 1.0 библиотеки для управления секс-игрушками Buttplug

Время на прочтение 1 мин
Количество просмотров 25K

После 3,5 лет разработки компания Nonpolynomial обновила открытую библиотеку для секс-игрушек до версии 1.0. Библиотека управляет вибрацией с клавиатур, геймпадов и шлемов виртуальной реальности, а также синхронизирует импульсы с фильмами через плагины для VLC и Kodi.

Читать далее
Всего голосов 43: ↑43 и ↓0 +43
Комментарии 43

Мажорный MeteorJS 2.0: HMR, Cloud и другое

Время на прочтение 3 мин
Количество просмотров 2.7K

Команда MeteorJS выпустила новую версию фреймворка 2.0, а вместе с ним новую платформу Meteor Cloud.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 11

Я ❤︎ Фронтенд 2021: доклады, воркшопы, CTF

Время на прочтение 3 мин
Количество просмотров 3.5K
У меня есть любимое дело: организовывать конференции, которые находят отклик в сердечках зрителей. В 2020 году это дело приобрело оттенок челленджа. Но желание делать хорошо от этого не пропало.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 0

Яндекс.Практикум запустил курс «React-разработчик»

Время на прочтение 2 мин
Количество просмотров 7.6K
Сервис онлайн-образования Яндекс.Практикум запустил курс «React-разработчик» — двухмесячный интенсив для погружения в экосистему React, работы с популярными технологиями и изучения их альтернатив. Курс подойдёт тем, кто уже умеет верстать и знает основы JavaScript.

Выпускники получат сертификат — официальный документ о дополнительном образовании.


Читать дальше →
Всего голосов 10: ↑8 и ↓2 +6
Комментарии 1

Strict Mode в ECMAScript. Полный справочник

Время на прочтение 7 мин
Количество просмотров 1K

По поводу строго режима существует множество информации. Но, к сожалению, очень мало статьей, покрывающих весь спектр особенностей строго режима. Поэтому, я решил составить свой справочник всех ограничений, исключений и отличий в исполнении "строгого" кода от "не строгого", в полном соответствии со спецификацией ECMA-262.

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

Когда «as never» — единственное, что работает

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 5.4K

as never, очень редко требуется в TypeScript. Давайте рассмотрим пример, где это необходимо.

Представим, что мы хотим отформатировать некоторый ввод на основе его typeof. Сначала мы создадим объект formatters, который сопоставит typeof с функцией форматирования:

Читать далее
Всего голосов 8: ↑4 и ↓4 0
Комментарии 16

VR-тур на A-Frame + React

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 828

Всем привет! Меня зовут Егор Молчанов, я разработчик в команде CRM для менеджеров ипотечного кредитования в компании Домклик. Хочу поделиться своим опытом создания VR‑тура с помощью фреймворка A‑Frame и библиотеки React. Для этого написал свой небольшой pet‑проект, который мы сейчас разберём.

Читать далее
Всего голосов 20: ↑19 и ↓1 +18
Комментарии 0

Более правильный подход к подключению Yandex AppMetrica в React Native приложении

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 1K

Самостоятельно ставим Yandex AppMetrica в React Native приложение без каких-либо сторонних npm'ных библиотек.

Посмотрим как поставить нативно аппметрику, также напишем два нативных модуля для получения доступа к методам аппметрики.

Гайд ориентирован на React Native разработчиков, которые не могут найти нормальное решение для подключения аппметрики.

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

Расширение браузера для управления маршрутами на Микротике

Уровень сложности Средний
Время на прочтение 25 мин
Количество просмотров 7.2K

Моя домашняя сеть состоит из нескольких хостов по стране и планете, три провайдера заходит на роутер – нормальная тренировочная площадка для получения новых знаний. Можно выйти в большую сеть из любого шлюза своей, для этого написана простая система правил – локальный адрес находящийся в определённом списке адресов будет маршрутизирован на заданный в правиле файрволла шлюз, либо, при обращении к домену находящемуся в определённом списке адресов файрволла маршрут к нему будет идти через заданный в правиле шлюз. Всё просто – хочешь побродить по большой сети другими маршрутами – перенёс свой локальный адрес в нужный список, хочешь, чтобы маршрут к сайту был всегда через определённый шлюз – внёс его домен или адрес в нужный список. Знаете, как мне надоело заходить в интерфейс маршрутизатора каждый раз, когда требуется внести адрес в список? Лень взяла верх и на днях заставила написать плагин для браузеров облегчающий эту работу.

Посочувствовать
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 15

JavaScript однопоточный или многопоточный? Ставим точку

Время на прочтение 11 мин
Количество просмотров 26K

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

Читать далее
Всего голосов 46: ↑40 и ↓6 +34
Комментарии 186

#Net

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 2.6K
image

Oчень добрый день. Меня зовут Тимур и я программист.

В прошлой своей статье я вкратце описал как можно внести минорные правки в код хромиума, собрать его и подтянуть в собственную сборку электрона. Статья имела оглушительный успех и вызвала бурные дебаты (34 комментария знаете ли) и, как только головокружение от успеха прошло, я немедленно бросился писать следующую. Собственно не прошло и трех лет (всего два так то) и вот она готова. Давайте взглянем.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Комментарии 5

On-Demand ISR в Next.js или как эффективно обновлять статический контент на сайте, поступающий из CMS или админки

Время на прочтение 4 мин
Количество просмотров 5K

В этой статье я расскажу, как и для чего, на одном из своих проектов, мы прикрутили новую возможность Next.js – On-Demand ISR (инкрементная статическая регенерация по запросу).

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

Если ваш фронтендер перестал бояться IE6, покажите ему SmartTV

Время на прочтение 7 мин
Количество просмотров 22K

В декабре 2021 года под новогодние праздники в приложении Кинопоиска для SmartTV появился раздел с Яндекс Музыкой. Он позволил пользователям на телевизорах открывать новые для себя треки в Моей волне, включать популярные подборки и слушать собственную коллекцию на телевизорах.

При создании этого раздела я впервые столкнулась с миром SmartTV. Не каждый фронтендер встречает в своей практике подобные задачи, даже несмотря на то, что сейчас разработка под ТВ довольно популярна.

Меня зовут Лена и я фронтенд-разработчик Яндекс Музыки. В этой статье я расскажу про особенности работы SmartTV и разработки под них на примере свежей фичи, которую мы назвали Время клипов. Теперь в приложении вы можете посмотреть клипы любимых артистов и открывать для себя новых исполнителей, которые подходят вам по настроению.

Под катом обсудим ключевые отличия работы фронтенда над вебом и SmartTV, поговорим про оптимизацию и вёрстку и посмотрим на фотографии множества пультов (без пакетиков).

Читать далее
Всего голосов 64: ↑64 и ↓0 +64
Комментарии 85

Обновление #Net chromium

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 1.9K

Добрый день. Меня зовут Тимур и я программист.

В прошлой своей статье я рассказал (довольно сумбурно) про свою сборку хромиума которая претендует на то что бы быть важным кирпичиком в web3.0. Продолжаю серию сумбурных статей, я обновил ветку до 122.0.6248.1 билда и выложил уже собранный бинарник (пока только под macOS, винда на подходе)

Скачать бинарь можно по адресу http://172.86.96.172/downloads/hash-net.dmg

Это все еще обычный хромиум, с ним можно спокойно серфить как по обычному интернету так и по #Net. Но для начала нам его нужно немного поднастроить.

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

Стриминговый сервис, чат-бот и стартап — за какие проекты можно получить стипендию Selectel

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 2.1K


Личные проекты бывают разными: кто-то пишет собственную JS-библиотеку, кто-то создает IT-компанию, а кто-то помогает команде выигрывать гонки (и такое бывает). В этом тексте мы расскажем про пять интересных проектов от студентов, которые выиграли стипендию в Selectel Career Wave.
Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Комментарии 0

Утечки памяти, которые не утечки

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 16K

Что случилось? Авария, ужас-ужас

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

В один прекрасный день боевое сопровождение приходит с ужасной проблемой — память в контейнерах Node.js течёт, сервисы падают с OOM каждый день, все пропало!

Да, картинка действительно удручающая. Всё время, когда есть нагрузка, память в контейнере прирастает и почти не очищается при снятии нагрузки. Все остальные метрики, которые мы собирали были в норме: event loop lag, использование CPU, active request, open handles. Прирастала только используемая память и незначительно увеличивалось время отклика сервиса.

Что-ж, выглядит как классическая утечка, надо искать источник.

Читать далее
Всего голосов 99: ↑98 и ↓1 +97
Комментарии 15

AbortController для отмены запросов при смене страницы (SPA)

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 6K

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

Особенно неприятно это становится тогда, когда у пользователя медленный интернет и каждый лишний запрос еще больше замедляет работу вебсайта. К слову, про оптимизацию SPA я писал в этой статье, а эту статью можно использовать и как небольшое дополнение и еще один способ оптимизации для пользователей с плохим интернетом.

А иногда это приводит и к ошибкам. Например, у нас есть две страницы - страница соревнований и страница турниров, обе страницы имеют id в URL и данные запрашиваются по этому id. Когда пользователь быстро переходит со страницы турнира на страницу соревнования, то id турнира может подмениться на id соревнования, и тогда получится, что запрос пойдет на несуществующий для турнира id и упадет ошибка.

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

Для тех, кто с этим не знаком, AbortController - это, простыми словами, интерфейс, который позволяет управлять отменой http запросов со стороны фронтенда.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Комментарии 10

Как начать программировать в Adobe Illustrator. Часть вторая

Время на прочтение 7 мин
Количество просмотров 3.4K

Этот пост — продолжение первой части, где был представлен скрипт Expand Clipping Mask и детально описано, что и как он делает, а также попутно рассмотрены основные принципы создания подобных программ в целом. В этой части я продолжу рассказ о том, как добавить в программу новый функционал, чтобы из "заготовки" получить на выходе "готовое изделие". Здесь не обойтись без более глубокого погружения в предметную область, что является одним из необходимых условий создания полноценного продукта. Итак, начинаем погружение!


Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 3

Как начать программировать в Adobe Illustrator. Часть первая

Время на прочтение 8 мин
Количество просмотров 10K

Сразу хочу предупредить, что эта серия постов не для матёрых программистов и даже не для программистов вообще. Понимаю, что это звучит крайне вызывающе, учитывая IT-тематику ресурса, и все же позвольте объяснить… В качестве аудитории, я вижу обычных дизайнеров, которые хотели бы начать программировать в среде Adobe, но по каким-то причинам (из-за страха перед неизвестным, неуверенности в своих возможностях или незнания языка) не могут сделать первые шаги в данном направлении. Свою скромную задачу вижу в том, чтобы помочь им понять, что "не боги горшки обжигают" и любой, достаточно мотивированный человек, может научится писать работающий программный код. Вполне возможно, некоторые из них так увлекутся этой игрой, что решат стать настоящими разработчиками. Чем код не шутит?


В этом посте будет рассказано о том, как посредством написания небольшой программы (скрипта на JavaScript) создать свой уникальный инструмент в Adobe Illustrator, который позволит не только сократить ваше время, но и улучшить взаимодействие с этим замечательным графическим редактором. Сначала я сформулирую задачу, затем покажу код, который ее решает и, далее, подробно расскажу о том, как он создавался. Здесь не будут обсуждаться основы Javascript, особенности объектной модели Illustrator или различные редакторы для написания/отладки кода. Эту информацию вы сможете при желании найти сами. Главное, на мой взгляд, это понимание базовых принципов написания программ, на что и делается основной упор в этой статье. Если вы готовы прыгнуть чуть выше своей головы, добро пожаловать под кат!


Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Комментарии 1