Pull to refresh
0
0
Игорь «InoY» Звягинцев @inoyakaigor

Frontend-developer

Send message

Разработка графических приложений в WSL2

Reading time3 min
Views10K

Данная статья будет неким дополнением опубликованной ранее (не мной) статьи. Чтобы не повторять написанное, по ссылке выше есть информация о требованиях к работе wsl2 на windows 10, как его включить, настроить, обновить и запустить графическую среду. В текущей статье я расскажу о том, как вести разработку графических приложений в wsl используя не только visual studio code со спец. плагином, а любую среду разработки.

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments8

AGLoRa. Или прототип простого самодельного спутникового LoRa-трекера

Reading time9 min
Views17K

Вокруг всё чаще и чаще слышно упоминание загадочных слов LoRa. Начиная от, разумеется, Хабра, и заканчивая прайсами поставщиков различного IoT-оборудования.

Было очень любопытно самому убедиться, а правдивы ли обещания дальности работы? Попробовать это очень просто, готовые модули LoRa можно без проблем кликнуть со всем известного китайского маркетплейса. Но проверять дальность, просто мигая лампочкой на расстоянии, как-то не наглядно, так что напрашивается подключение GPS-приемника и самостоятельного подсчета расстояния. Ну и вы уже поняли, что в этом месте запахло прототипом спутникового трекера, передающим данные не по GSM-каналу, как обычно, а по радиоканалу LoRa...

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments16

Нетривиальная расстановка элементов на flexbox без media-запросов

Reading time7 min
Views27K
Казалось бы, какой пост может быть о CSS Flexbox в 2019 году? Верстальщики уже несколько лет активно используют данную технологию, и все тайны должны быть разгаданы.

Однако, недавно у меня возникло стойкое ощущение, что нужно поделиться одним нетривиальным и, на мой взгляд, полезным приёмом, связанным с flexbox. Написать пост побудил тот факт, что ни один знакомый (из учеников, верстальщиков и просто людей, близких к web), не смог решить задачку, связанную с flexbox, хотя на это нужно всего 4-6 строк.
Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments18

Что нового в react-router v6

Reading time8 min
Views84K

Привет! Меня зовут Сергей, я управляющий партнер в KTS

Совсем недавно состоялся релиз 6-ой версии react-router. Вообще создатели react-router часто меняют подходы, используемые в библиотеке, но в этот раз они объединили лучшее, что было в прошлых версиях.

В статье приведен краткий обзор того, что поменялось.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments5

Почему мы выбрали MobX, а не Redux, и как его использовать эффективнее

Reading time8 min
Views45K

Меня зовут Назим Гафаров, я разработчик интерфейсов в Mail.ru Cloud Solutions. На дворе 2020 год, а мы продолжаем обсуждать «нововведения» ES6-синтаксиса и преимущества MobX над Redux. Существует много причин использовать Redux в своем проекте, но так как я не знаю ни одной, расскажу о том, почему мы выбрали MobX.

Почему?
Total votes 55: ↑51 and ↓4+71
Comments242

Прослушиватели событий и веб-воркеры

Reading time6 min
Views9.3K
Недавно я разбирался с API Web Workers. Очень жаль, что я не уделил время этому отлично поддерживаемому инструменту раньше. Современные веб-приложения очень требовательны к возможностям главного потока выполнения JavaScript. Это воздействует на производительность проектов и на их возможности по обеспечению удобной работы пользователей. Веб-воркеры — это именно то, что в наши дни способно помочь разработчику в деле создания быстрых и удобных веб-проектов.


Читать дальше →
Total votes 18: ↑16 and ↓2+27
Comments6

Простые TypeScript-хитрости, которые позволят масштабировать ваши приложения бесконечно

Reading time6 min
Views33K

Мы используем TypeScript, потому что это делает разработку безопаснее и быстрее.

Но, на мой взгляд, TypeScript из коробки содержит слишком много послаблений. Они помогают сэкономить немного времени JavaScript-разработчикам при переходе на TS, но съедают очень много времени в долгосрочной перспективе.

Я собрал ряд настроек и принципов для более строгого использования TypeScript. К ним нужно привыкнуть один раз — и они сэкономят массу времени в будущем.

Сэкономить время в будущем
Total votes 35: ↑33 and ↓2+37
Comments32

Памятка по работе с Canvas API

Reading time2 min
Views15K


Доброго времени суток, друзья!

Данная статья представляет собой небольшую подборку примеров работы с Canvas API, к которой удобно обращаться при необходимости вспомнить изученный материал.

Это не руководство по работе с холстом, а лишь демонстрация его возможностей.

Для меня это также своего рода промежуточный итог в изучении холста.

Код разбит на отдельные блоки-песочницы, которые для удобства чтения помещены под «кат».

Парочка важных моментов.

Ширину и высоту холста лучше определять с помощью атрибутов:

<canvas width="300" height="300"></canvas>

Если мы хотим, чтобы холстом была вся область просмотра, то делаем следующее:

const width = canvas.width = innerWidth
const height = canvas.height = innerHeight

Холст и двумерный контекст рисования я обычно определяю следующим образом:

const canvas = document.querySelector('canvas')
// не путать с объектом jQuery
const $ = canvas.getContext('2d')

Довольно слов.
Total votes 13: ↑12 and ↓1+20
Comments2

Опыт использования MobX в большом приложении

Reading time10 min
Views23K


Всем привет!


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


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

Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments38

Вывод типов в TypeScript с использованием конструкции as const и ключевого слова infer

Reading time5 min
Views56K
TypeScript позволяет автоматизировать множество задач, которые, без использования этого языка, разработчикам приходится решать самостоятельно. Но, работая с TypeScript, нет необходимости постоянно использовать аннотации типов. Дело в том, что компилятор выполняет большую работу по выводу типов, основываясь на контексте выполнения кода. Статья, перевод которой мы сегодня публикуем, посвящена достаточно сложным случаям вывода типов, в которых используется ключевое слово infer и конструкция as const.


Читать дальше →
Total votes 26: ↑25 and ↓1+39
Comments5

Журнал «Трамвай» — ярко вспыхнувшая и быстро погасшая звезда российского детского авангарда

Reading time7 min
Views31K
Мои личные впечатления о журнале за 6 5 сезонов его существования. В статье есть умеренное количество критики «Мурзилки» и «Весёлых картинок», поэтому пламенным апологетам легендарных советских изданий от чтения этой статьи, возможно, лучше воздержаться.

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

1990: Золотой период


Читать дальше →
Total votes 52: ↑44 and ↓8+61
Comments47

Лошадь сдохла – слезь: переход с tslint на eslint

Reading time7 min
Views41K
До недавнего времени во всех проектах фронта разработчики Dodo Pizza Engineering использовали tslint – полезный инструмент, который подсказывает, когда ты накосячил в коде допустил неточность, помогает поддерживать код в одном стиле и сам исправляет многие замечания. Но тут tslint взял и умер. Под катом я расскажу, почему так вышло, как перестать лить слёзы по умершему и перейти на инструмент eslint, а также покажу кое-что очень интимное.


Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments12

TypeScript. Мощь never

Reading time6 min
Views87K
Когда я впервые увидел слово never, то подумал, насколько бесполезный тип появился в TypeScript. Со временем, все глубже погружаясь в ts, стал понимать, какой мощью обладает это слово. А эта мощь рождается из реальных примеров использования, которыми я намерен поделиться с читателем. Кому интересно, добро пожаловать под кат.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments24

Создание собственных синтаксических конструкций для JavaScript с использованием Babel. Часть 1

Reading time7 min
Views8.9K
Сегодня мы публикуем первую часть перевода материала, который посвящён созданию собственных синтаксических конструкций для JavaScript с использованием Babel.


Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments21

Двойной VPN в один клик. Как легко разделить IP-адрес точки входа и выхода

Reading time13 min
Views122K


TL;DR В статье описывается самый простой способ настроить VPN-сервер, у которого IP-адрес для подключения VPN-клиентов отличается от IP-адреса, с которого клиенты выходят в интернет.

Используете VPN для защиты приватности в интернете и арендуете для этого свой личный сервер? При этом вы единственный клиент, который подключается к этому серверу во всем мире? Так ли сложно найти ваш реальный IP-адрес, как вам кажется? С вступлением в силу пакета Яровой, это становится намного проще.

Double VPN — популярная тема, вокруг которой много спекуляций. Часто этим термином называют совершенно разные технологии, но почти всегда это означает разнесенные на уровне IP-адресов точки подключения и выхода в интернет. Мы рассмотрим самый простой способ настройки VPN-сервера в таком режиме, который не требует дополнительной настройки на серверной стороне и позволяет получить максимальную скорость и самые низкие задержки.
Читать дальше →
Total votes 49: ↑41 and ↓8+33
Comments59

TypeScript. Магия выражений

Reading time7 min
Views38K
TypeScript — поистине прекрасный язык. В его арсенале есть все, что необходимо для качественной разработки. И если вдруг, кому-то знакомы секс-драматические этюды с JavaScript, то меня поймет. TypeScript имеет ряд допущений, неожиданный синтаксис, восхитительные конструкции, которые подчеркивают его красоту, форму и наполняют новым смыслом. Сегодня речь о них, об этих допущениях, о магии выражений. Кому интересно, добро пожаловать.
Читать дальше →
Total votes 41: ↑38 and ↓3+35
Comments23

Пентест приложений с GraphQL

Reading time7 min
Views15K


В последнее время GraphQL набирает всё большую популярность, а вместе с ней растёт и интерес со стороны специалистов информационной безопасности. Технологию используют такие компании, как: Facebook, Twitter, PayPal, Github и другие, а это значит, что пора разобраться, как тестировать такое API. В этой статье мы расскажем о принципах этого языка запросов и направлениях тестирования на проникновение приложений с GraphQL.
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments11

SVG индикатор загрузки на Vue.js

Reading time12 min
Views12K

Привет! Учусь на front-end, и параллельно, в учебном проекте, разрабатываю SPA на Vue.js для back-end, который собирает данные от поискового бота. Бот нарабатывает от 0 до 500 записей, и я должен их: загрузить, отсортировать по заданным критериям, показать в таблице.


Ни back-end ни бот, сортировать данные не умеют, поэтому мне приходятся загружать все данные и обрабатывать их на стороне браузера. Сортировка происходит очень быстро, а вот скорость загрузки, зависит о коннекта, и указанные 500 записей могут загружаться от 10 до 40 секунд.


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


Чтобы скрасить пользователю ожидание, я решил показать ему процесс загрузки:


  1. цифрами — сколько % записей уже загружено
  2. графиком — время загрузки каждой записи
  3. заполнением — % загрузки. Так как график по мере загрузки заполняет прямоугольный блок, видно, какую часть блока осталось заполнить

Вот анимация результата, к которому я стремился и получил:



… по-моему, получилось забавно.


В статье я покажу как продвигался к результату шаг за шагом. Графики функций в браузере я до селе не рисовал, поэтому разработка индикатора принесла мне простые, но новые знания о применении SVG и Vue.


Total votes 19: ↑18 and ↓1+17
Comments5

Мои «Ого, я этого не знал!» моменты с Jest

Reading time6 min
Views14K
Всем привет! Курс «Разработчик JavaScript» стартует уже в этот четверг. В связи с этим мы решили поделиться переводом еще одного интересного материала. Приятного прочтения.



Jest всегда был моим незаменимым инструментом для юнит-тестирования. Он настолько надежен, что я начинаю думать, что я всегда недоиспользовал его. Хотя тесты работали, со временем я рефакторил их то здесь, то там, потому что не знал, что Jest так может. Каждый раз это новый код, когда я проверяю документацию Jest.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments5

Как начисляются проценты по кредиту и как это применить

Reading time2 min
Views112K
Всем привет! Когда я взяла ипотеку, решила досконально разобраться в том, как начисляются проценты, как лучше вносить досрочку и так далее. Сама я экономист. В общем, делюсь, надеюсь, будет полезно.

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



Исходя из этого:

  1. Сумма ежемесячно начисляемых процентов самая большая в начале, потому что в начале самый большой остаток основного долга. По мере его снижения снижаются и проценты.
  2. Сумма процентов “скачет” от месяца к месяцу, потому что зависит от количества дней в месяце.
  3. Срок кредита в расчёте ежемесячно начисляемых процентов не фигурирует, а это значит, что неважно, на какой срок брать ипотеку — переплата будет одинаковой, если одинаковы ежемесячные платежи.
  4. При внесении частичного досрочного погашения с уменьшением ежемесячного платежа переплата будет точно такой же, как в случае сокращения срока, если продолжать платить прежний ежемесячный платёж, а не уменьшенный.

Приведу расчёты по каждому пункту.
Читать дальше →
Total votes 64: ↑52 and ↓12+40
Comments202

Information

Rating
4,870-th
Location
Yerevan, Yerevan, Армения
Date of birth
Registered
Activity