Pull to refresh
2
0
Олег Бубнов @bubn0ff

Frontend-developer

Send message

JavaScript: разрабатываем приложение для записи экрана

Reading time12 min
Views15K


Привет, друзья!


Хочу поделиться с вами решением интересной задачи: записать экран компьютера пользователя.


Общие требования к реализации:


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

Если вам это интересно, прошу следовать за мной.


Исходный код проекта


Скриншот:





К слову, здесь можно почитать о том, как разработать приложение для записи звука.

Читать дальше →

Дженерики в TypeScript

Reading time10 min
Views169K

Привет, я Сергей Вахрамов, занимаюсь фронтенд-разработкой на Angular в компании Тинькофф. Во фронтенд-разработку вошел напрямую с тайпскрипта, просто перечитав всю документацию. С того момента и спецификация ECMAScript расширилась, и TypeScript сильно подрос. Казалось бы, почему разработчики могут бояться дженериков, ведь бояться там нечего? Мой опыт общения с джуниор-разработчиками говорит, что во многом ребята не используют обобщенные типы просто потому, что кто-то пустил легенду об их сложности.

Эта статья для тех, кто не использует generic-типы в TypeScript: не знают о них, боятся использовать или используют вместо реальных типов — any.

Перестать везде использовать тип "any"

TypeScript: Раскладываем tsconfig по полочкам. Часть 1

Reading time10 min
Views106K

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

Читать далее

Chrome DevTools: Хитрости при отладке

Reading time7 min
Views61K

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

В этой заметке я бы хотел остановиться на различных нюансах, полезных при отладке. Какие-то из них я почерпнул в сети (например в комментариях на Хабре), до каких-то додумался сам. Надеюсь вы найдёте для себя что-нибудь полезное.

Под катом:

— Как отладить popup-ы, которые исчезают при потере фокуса
— Как убить повисший JS-цикл, не убивая вкладку
— Различные нюансы работы с breakpoint-ми
— Методы ведения войны с sourceMaps
— Перехват network-запросов
— Как отладить race-condition
— Почему стоит опасаться галочки "disable cache"
— Что делать если у вас не Hi-DPI экран?

Подробнее

20 вещей, которые я узнал за 20 лет работы инженером-программистом

Reading time8 min
Views100K

Наткнулся на любопытный материал, в котором автор систематизировал и записал свой опыт инженера-программиста в 20 тезисов. Я работаю в коммерческой разработке ПО больше 25 лет, и этот текст отозвался во мне практически каждой буквой — большинство советов я тоже регулярно практикую, не облекая их в формат ёмких афоризмов. В общем, решил сделать перевод.

Особенно отзываются пункты «стройте компактные системы» и «лучший код — это отсутствие кода». Последний совет я превращаю в цитату из какого-то второсортного фильма про самураев: «Лучшая победа — та, которую ты одержал, не доставая меч из ножен» (думаю, сослуживцы за моей спиной уже закатывают глаза). И, конечно, бесконечные разговоры про легендарных 10x-программистов постоянно хочется прервать советом не связываться с 0,1x-программистами (которые реально существуют, в отличие от 10x).

Читать далее

Верстка email рассылок от А до Я для чайников

Reading time9 min
Views416K
Уже 3 с лишним года занимаюсь дизайном и версткой почтовых рассылок, которые ориентированы на англоязычных пользователей. За время работы перелопатили огромную кучу информации, перепробовали много вариантов верстки, набили достаточное количество шишек. Были найдены и исправлены типичные баги, которые в той или иной мере повторялись во всех почтовых клиентах. Также нашлись проблемы с некоторыми CSS свойствами — различные почтовые клиенты интерпретировали их по разному. Каждое письмо тестировалось на самых популярных почтовых клиентах: Gmail, Outlook, Yahoo, Android, iOS, MozillaThunderbird, Microsoft Outlook, The Bat. Рассылки ходят на сотни миллионов пользователей и приносят очень хорошие результаты. Итак, приступим к изучению.
Читать дальше →

Здоровый сон взрослого человека — это засыпать за 15 минут и не вставать ночью попить и пописать

Reading time13 min
Views168K


Послушала на днях 2х-часовое выступление «Здоровый сон» врача-невролога, сомнолога Елены Царевой. Выдернула самые важные для себя пункты:

  1. Спать регулярно, ложиться и вставать в одно и то же время — самое важное. 
  2. Биоритмы — частично наследуются, частично регулируются стилем жизни. На них можно влиять самому.
  3. Нормальное время отхода ко сну около 22:00. Сова и жаворонок — это отклонение на ±1-2 часа. Больше — это нарушение и сдвиг фазы сна, чаще из-за внешних раздражителей.
  4. Самая частая причина плохого сна и тяжелого засыпания — неправильный свет.
  5. Для сдвига режима на 1 час организму нужен 1 день на адаптацию.
  6. Невозможно «доспать» бессонную ночь. Досыпание устраняет только 30% последствий недосыпа.
  7. Прежде, чем искать причины плохого сна, исключите психологические проблемы (тревожность, депрессию), нарушения щитовидки, дефицит железа, диабеты, сердечно-сосудистые заболевания и патологию почек и мочеполовой системы.
  8. Водителям и пассажирам: 17 часов без сна равны 0,5 промилле, 21 час без сна — 0,8 промилле.
  9. В постели без сна больше 15 минут не находиться — совет при бессоннице. 
  10. Самые физиологичные будильники — те, что светятся. 

Под катом конспект 2х-часового выступления про сон на 15 минут чтения. Еще один поинт в копилку полезных материалов про сон — Sleep Hackers.
Читать дальше →

Микро-фронтенд. Обзор архитектуры и рекомендуемые практики

Reading time9 min
Views41K

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

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

Текст

Как сделать себе карьеру, помогая людям

Reading time21 min
Views6.8K
На прошлой неделе в наших соцсетях выступил Иван Роганов, специалист по разработке ПО и решению неординарных проблем, а также автор статей в нашем блоге.

Иван окончил Московский Государственный университет Экономики Статистики и Информатики в 2008 году по специальности Инженер-программист.

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

Делимся с вами расшифровкой эфира и записью.

Читать дальше →

Пыль, пылевые клещи и их аллергены. Профилактика и защита

Reading time17 min
Views81K
Пыль и пылевые клещи в ней есть практически везде и всегда. Уничтожить их удается возможно только в условиях «чистых комнат» на производстве полупроводников. Приходится с этим мириться, и жить допуская, что все что нам под силу — уменьшить их количество. Считается, что если концентрация клещей < 100 штук на грамм пыли — аллергия у большинства не возникает. После того как пришлось пару-тройку минут чихать без остановки — у меня накопилось достаточно злобы, чтобы рассмотреть, что же представляет из себя пыль в квартире и что и кто в этой пыли живет. А теперь вот нашлось время, чтобы познакомить с «нашими маленькими друзьями» и читателей Хабра. В заметке рассуждения о некоторых особенностях биологии вездесущего домашнего паразита и методикам его контроля. То, что под катом можешь смело давать почитать жене, %username%!


Дружно скажем НЕТ пыли и ее обитателям

Карманная книга по TypeScript. Часть 1. Основы

Reading time7 min
Views75K

Обратите внимание: для большого удобства в изучении книга была оформлена в виде прогрессивного веб-приложения.



С сегодняшнего дня мы начинаем серию публикаций адаптированного и дополненного перевода "Карманной книги по TypeScript".


Каждое значение в JavaScript при выполнении над ним каких-либо операций ведет себя определенным образом. Это может звучать несколько абстрактно, но, в качестве примера, попробуем выполнить некоторые операции над переменной message:


// Получаем доступ к свойству `toLowerCase`

// и вызываем его

message.toLowerCase()

// Вызываем `message`

message()

На первой строке мы получаем доступ к свойству toLowerCase и вызываем его. На второй строке мы пытаемся вызвать message.


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


  • Является ли переменная message вызываемой?
  • Имеет ли она свойство toLowerCase?
  • Если имеет, является ли toLowerCase вызываемым?
  • Если оба этих значения являются вызываемыми, то что они возвращают?

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

Читать дальше →

Понимание ООП в JavaScript [Часть 1]

Reading time16 min
Views339K
— Прототипное наследование — это прекрасно
JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

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

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
Читать дальше →

HTTP/3 от А до Я: основные концепции. Часть 1

Reading time20 min
Views100K

image
Фото Florencia Viadana, Unsplash.com


После почти пятилетних разработок протокол HTTP/3 наконец приближается к окончательному выпуску. Предыдущие итерации уже доступны как экспериментальная функция, но в 2021 году мы ждём широкого распространения протокола. Что такое HTTP/3? Зачем выпускать его так рано после HTTP/2? Как его можно или нужно использовать? Как он влияет на производительность?

Читать дальше →

Приятная сборка frontend проекта

Reading time12 min
Views444K
В этой статье мы подробно разберем процесс сборки фронтенд проекта, который прижился в моей повседневной работе и очень облегчил рутину.

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

UPD (13 марта 2015): Заменил несколько плагинов на более актуальные + решил проблему с импортом CSS файлов внутрь SCSS

Читать дальше →

Какие бывают RFID протоколы и как их похекать с помощью Flipper Zero

Reading time12 min
Views178K
Flipper Zero RFID

Flipper Zero — проект карманного мультитула для хакеров в формфакторе тамагочи, который мы разрабатываем. Предыдущие посты [1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14],[15],[16],[17],[18],[19]

RFID – это технология для бесконтактных радио-меток, используемых повсюду: в домофонах, платежных картах, проездных, пропусках в офисы, для учета домашних животных, автомобилей и т.д. Есть два основных типа RFID меток, которые мы используем в обычной жизни: низкочастотные и высокочастотные.

  • Низкочастотные (Low Frequency: 125 кГц) — имеют большую дальность чтения. Небезопасные и тупые. Используются в примитивных системах контроля доступа: домофонах, офисных пропусках, абонементах в спортзал.
  • Высокочастотные (High Frequency: 13,56 МГц) — имеют меньшую дальность работы по сравнению с низкочастотными, и могут иметь сложные протоколы, средства шифрования, аутентификации, криптографии. Используются в бесконтактных банковских картах, проездных билетах, безопасных пропусках.

В статье мы сравним два основных типа RFID меток, разберем основные протоколы и научимся с ними работать с помощью Flipper Zero — читать, эмулировать, сохранять, перезаписывать. Я покажу как сохранить во Флиппер RFID-ключи от домофона, офиса, спортзала, и что Флиппер может прочитать из банковской карты.

Минкульт и ФАС ответили на запросы о ситуации с удалением с Ютюба советских мультиков

Reading time8 min
Views48K
В октябре 2020 с платформы Ютюб исчезло более тысячи мультфильмов т.н. золотой коллекции, снятых во времена Советского Союза на студии Союзмультфильм. В январе 2021 пользователи заметили, что коллекция стала вновь доступна на Ютюбе, но не для жителей России — канал Союзмультфильм выставил региональные ограничения на контент так, чтобы из России его нельзя было загрузить.

Теперь в ответ на запросы граждан ситуацию официально прокомментировали Минкульт, Союзмультфильм и ФАС.

Ответы коротко: «всё ок, это норма». Подробнее под катом, кому интересно.
Читать дальше →

О выгорании в СССР из книжки 1973 года

Reading time8 min
Views77K

Досталась мне от бати книжка издания 1973 года, отпечатанная на ротапринте. Наткнулся в ней на вещи, которые бы мы сейчас назвали проблемой "выгорания". Термина в то время еще не было, но проблема была. Я выписал кое-какие вещи чисто для себя, но потом решил все же опубликовать, может кому пригодится...

Читать далее

Опасные «вкусняшки». Ядовитые лесные ягоды. Памятка для детей и взрослых

Reading time14 min
Views108K
Почитали читатели мои статьи про ядовитые растения и внезапно озаботились дикорастущими ягодами. Ведь ухватить растение желающих намного меньше, чем попробовать незнакомую ягоду яркой расцветки. Я решил отреагировать, и представить вашему вниманию шорт-лист ядовитых лесных ягод (исчерпывающий?). По всем вопросам, в т.ч. с фотографиями незнакомых растений — обращаться в тг-канал LAB-66

Красна ягодкА, да на вкус горькА

Более 15 полезных инструментов для фронтендера с уклоном в CSS

Reading time5 min
Views13K

К старту курса по Frontend-разработке делимся переводом подборки различных инструментов: от генератора CSS, который рассчитывает пространство так, что брейкпоинты (контрольные точки) заменяются переменными, до редактора анимации прямо в браузере, а также средства масштабирования для отзывчивости в SVG и даже визуализатора специфичности CSS, который пригодится при анализе больших таблиц стилей. Мы структурировали и, где это было возможно, расширили оригинал, добавив информацию и примеры из репозиториев и официальных описаний инструментов.

Читать далее

Information

Rating
Does not participate
Location
Россия
Registered
Activity

Specialization

Frontend Developer, HTML Coding
From 150,000 ₽
HTML
CSS
SCSS
JavaScript
TypeScript
React
Redux
Gulp
Webpack
Jest