Обновить
256K+

JavaScript *

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

263,5
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Делаем крутой sticky-эффект для слайдера на React

Время на прочтение7 мин
Охват и читатели19K

Есть много разных библиотек для реализации слайдера со всеми возможными эффектами. Для React одни из лучших это: ReactSlick и Swiper. Но когда для моего проекта потребовался горизонтальный sticky-эффект, то ничего подходящего не нашлось.



В этой статье мы попробуем поэтапно создать такой слайдер, возможно он вам тоже понадобится!

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

Редактор блок схем — о дружбе Vue.js и MxGraph

Время на прочтение3 мин
Охват и читатели16K

С чего все началось?


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

Так вот, начал планировать бэкенд, выбрал MongoDB для хранения данных, и был готов планировать структуру и связи полей.

Но столкнулся с отсутствием простого и достаточно функционального редактора схем без излишеств для NoSQL баз данных.

— Нет? Значит сделаю делов то, найти библиотеку и накидать интерфейс!
Fullstack идея была отодвинута на задний план и я начал проработку простейшего редактора схем БД.
— Наивный… – но это я понял немного позднее.
Читать дальше →

Telegram bot, показывающий первые страницы 10 самых популярных мировых периодических изданий

Время на прочтение1 мин
Охват и читатели6.5K

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


  1. The New York Times
  2. The Guardian
  3. China Daily
  4. USA Today
  5. Bild
  6. The Washington Post
  7. The Asian Age
  8. The Wall Street Journal
  9. The Japan Times
  10. Los Angeles Times

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


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


Если интересно попробовать бота в деле, пожалуйста Main press pages @press_pages_bot.

Zoia: легкая реактивная CMS для быстрой разработки сайтов

Время на прочтение4 мин
Охват и читатели12K
В данной статье я бы хотел рассказать о разрабатываемой мной системе управления контентом Zoia, написанной на Javascript. Это мой side-project, не связанный с основной работой, который я разрабатываю и развиваю в свободное время. Есть мнение, что каждый веб-разработчик должен рано или поздно написать свою собственную CMS, а кто-то даже и не одну :-)

TL;DR: demo.zoiajs.org, панель администратора (логин: admin, пароль: password), Github, лицензия MIT
Читать дальше →

Что в Smart TV тебе моем? Или что можно запихнуть в телевизор?

Время на прочтение7 мин
Охват и читатели55K

Вместо предисловия


Добрый день, коллеги! Меня зовут Алексей и я занимаюсь телевизорами, а именно, разработкой Smart TV приложений («давайте похлопаем Алексею»).

Но что такое Smart TV? Какое оно, сферическое Smart TV приложение в вакууме?

Не буду томить вас ожиданием: в основном такого рода приложения предназначены для показа видео-контента. В любых вариациях. Записанное, живое вещание, телепередачи, фильмы, мультфильмы, рекламные ролики, и прочая, и прочая… Тысячи их!

Но разве Smart TV только для этого?


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

Настало время сделать новый Windows Terminal profiles.json

Время на прочтение3 мин
Охват и читатели14K
Я говорил об этом в течение нескольких месяцев, но если вы не слышали, вышел новый Windows Terminal. Вы можете скачать его из Windows Store и сразу же начать использовать. Все бесплатно и open source.

На момент написания этой статьи Windows Terminal где-то около версии 0.5. Он пока официально не выпущен как 1.0, поэтому все время обновляется.

И вот вопрос — вы уже установили Windows Terminal? Уже настраивали свой файл profile.json? Если это так, я хочу, чтобы вы удалили свои profiles.json! Подробнее под катом.

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

Шесть задачек для Front-End разработчика

Время на прочтение2 мин
Охват и читатели46K

1. Форма кредитной карты


Клёвая форма кредитной карты с гладкими и приятными микровзаимодействиями. Включает форматирование чисел, проверку и автоматическое определение типа карты. Она построена на Vue.js, а также полностью адаптивная. (Посмотреть можно здесь.)

image

credit-card-form

Чему научитесь:

  • Обрабатывать и валидировать формы
  • Обрабатывать события (например, при изменении полей)
  • Разберетесь как отображать и размещать элементы на странице, особенно данные кредитной карты, которая поверх формы
Читать дальше →

Возможности современного JavaScript, о которых вы могли не знать

Время на прочтение5 мин
Охват и читатели45K


Несмотря на то, что в последние семь лет я пишу на JavaScript почти каждый рабочий день, должен признаться, что уделяю мало внимания сообщениям о нововведениях от ES. Главные возможности вроде async/await и прокси — это одно, но ещё каждый год идёт поток мелких поэтапных изменений, которые не попадают в моё поле зрения, поскольку всегда находится что-то более важное для изучения.

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

Parcel — мой любимый сборщик проектов

Время на прочтение7 мин
Охват и читатели26K
Сегодня мы поговорим о сборщиках проектов (о бандлерах), об инструментах, которые облегчают жизнь разработчиков. Суть работы бандлеров заключается в том, что они берут JavaScript-код, содержащийся во множестве файлов, и упаковывают его в один или несколько файлов, определённым образом упорядочивая и подготавливая к работе в браузерах. Более того, благодаря различным подключаемым модулям (плагинам) и загрузчикам, код можно минифицировать, можно упаковывать, помимо кода, и другие ресурсы (вроде CSS-файлов и изображений). Бандлеры позволяют использовать препроцессоры, умеют разделять код на фрагменты, загружающиеся тогда, когда в них возникнет необходимость. Но их возможности этим не ограничиваются. Фактически, речь идёт о том, что они помогают организовывать процесс разработки.

image

Существует множество бандлеров. Например — Browserify и webpack. Хотя эти сборщики проектов представляют собой замечательные инструменты, лично я обнаружил, что их сложно настраивать. С чего начать настройку? Этот вопрос особенно актуален для новичков, для тех, кого может немного испугать такое понятие, как «конфигурационный файл».

Именно поэтому я, как правило, пользуюсь сборщиком проектов Parcel. Я наткнулся на этот бандлер случайно, когда смотрел одно учебное видео на YouTube. Там давались советы по ускорению разработки. Показанная в этом видео рабочая среда была сильно завязана на Parcel. После этого я решил, что и мне стоит попробовать этот бандлер.
Читать дальше →

Компилируем FFmpeg в WebAssembly (=ffmpeg.js): Часть 3 — Конвертация avi в mp4

Время на прочтение5 мин
Охват и читатели5.3K



Список переведённых частей серии:


  1. Приготовления
  2. Компиляция с Emscripten
  3. Конвертация avi в mp4 (вы тут)



В этой части ма разберём:



  1. Компиляцию библиотеки FFmpeg с оптимизированными аргументами.
  2. Управление файловой системой Emscripten.
  3. Разработку ffmpeg.js v0.1.0 и конвертацию видео.

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

Создавайте свой код с нуля, это прокачает ваш уровень

Время на прочтение4 мин
Охват и читатели4.2K
image


Чтобы по-настоящему понять колесо, нужно его самостоятельно переизобрести.

На днях я провел собеседование на должность senior javascript разработчика. Мой коллега, который также принимал участие в собеседовании, попросил кандидата написать функцию, которая будет выполнять HTTP-запрос, и повторять его несколько раз в случае сбоя.

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

Подумав что он нервничает, мы решили сделать задание немного проще и попросили его преобразовать функцию на основе обратного вызова в функцию на основе Promise.

Не повезло.

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

Но код, который он написал на доске, не имел никакого смысла. У него было только смутное понимание концепции Promise в JavaScript, и он не смог рассказать про него доходчиво.

Это может быть простительно, если вы начинающий разработчик, но если вы претендуете на руководящую должность, этого недостаточно. Как он отладит сложную цепочку Promise и затем объяснит другим, что он сделал?
Читать дальше →

Компилируем FFmpeg в WebAssembly (=ffmpeg.js): Часть 2 — Компиляция с Emscripten

Время на прочтение6 мин
Охват и читатели5.6K



Список переведённых частей серии:


  1. Приготовления
  2. Компиляция с Emscripten (вы тут)
  3. Конвертация avi в mp4


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


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


В этой части мы разберём:


  1. Как настроить окружение для Emscripten в Docker
  2. Использование emconfigure и emmake 
  3. Как решать проблемы, возникающие при компиляции FFmpeg с Emscripten

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

Каскадная инвалидация кэша. Часть 2

Время на прочтение7 мин
Охват и читатели5.8K
В первой части перевода материала, посвящённого каскадной инвалидации кэша, мы обсудили сущность проблемы и рассмотрели один из вариантов её решения, который заключается в использовании карт импорта. Его плюс — лёгкость реализации. А минус — слабая поддержка браузерами. Сегодня поговорим о других способах решения этой проблемы.


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

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

Создаем простой сервис коллтрекинга, часть 1

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

Требования к функционалу


  1. Сервис должен предоставлять возможность подстановки номера (номеров) по источнику перехода на сайт — переход из поисковых систем, переход по рекламе, переход по ссылкам с utm метками.
  2. Сервис должен закреплять показываемый номер за посетителем сайта и отображать данный номер при дальнейшем посещении.
  3. При инициации звонка на показываемый номер сервис должен инициировать создание события в Google Analytics.
Читать дальше →

Компилируем FFmpeg в WebAssembly (=ffmpeg.js): Часть 1 — Приготовления

Время на прочтение3 мин
Охват и читатели10K



Список переведённых частей серии:


  1. Приготовления (вы тут)
  2. Компиляция с Emscripten
  3. Конвертация avi в mp4




Из этой части вы узнаете:


  1. Зачем это всё нужно
  2. Как скомпилировать FFmpeg в Docker



Зачем это всё нужно


Главные задачи у серии публикаций такие:


  1. Создать туториал по использованию Emscripten для компиляции C/C++ библиотек в JavaScript (более детальный и полезный, чем написанные ранее)
  2. Персональная памятка

Почему FFmpeg?


FFmpeg — это свободный проект с открытым исходным кодом, состоящий из обширного набора библиотек и программ для обработки видео, аудио и других мультимедийных файлов/трансляций. (из Википедии)


Библиотеки JavaScript, которая предоставляла бы подобные возможности, попросту не существует. Если вы погуглите «ffmpeg.js», то найдёте несколько решений, подобных тому что мы собираемся сделать:



Эти библиотеки, конечно, можно использовать, но у них есть свои недостатки:


  1. Используемые версии как FFmpeg, так и Emscripten устарели
  2. Проекты не поддерживаются уже долгое время

Изначально я планировал заняться поддержкой какой-нибудь из двух библиотек, но так как за годы накопилось слишком много изменений, решил сделать всё с чистого листа, попутно создав туториал по использованию Emscripten для компиляции большой C/C++ библиотеки.

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

Server Side Rendering для React App на Express.js

Время на прочтение7 мин
Охват и читатели45K
На написание этой статьи меня сподвигло отсутствие какого-либо более-менее полного мануала, как же сделать Server Side Rendering для React приложения.

Когда я столкнулся с этой проблемой, у меня было 2 варианта это сделать, либо Next.js фреймворк, либо используя Express.js.

На инвестигейт Next.js было потрачено около 100 часов, чтоб завести его для нашей готовой крупной OTT платформы, но проблем было настолько много, что мы от него отказались (по этому поводу напишу статью еще), остался выбор за малым, Express.js, про который я и хочу рассказать.

Полный код демо-примера, рассматриваемого в статье, тут.
Читать дальше →

Полная жизнь на Svelte

Время на прочтение8 мин
Охват и читатели13K

У Радислава Гандапаса есть отличная книга Полная Ж. В ней говорится о том, как оценить направления своей жизни, и как разработать план развития.


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


image

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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №386 (21 — 27 октября 2019)

Время на прочтение3 мин
Охват и читатели12K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.


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

Friendly Open Space JS: Рендеринг на стороне клиента и создание враппера

Время на прочтение7 мин
Охват и читатели2.3K

«Friendly Open Space» — очень молодой фреймворк, но бегать уже умеет :-)


В данной статье по освоению «Friendly Open Space», мы освоим рендеринг шаблона в браузере и запуск приложения на локальной файловой БД.

Ядро фреймворка поддерживает два типа сборки шаблона на клиенте:

  1. Рендеринг полностью выполняется на стороне клиента
  2. Выполняется запрос на рендеринг шаблона серверу, с последующим выводом его в окне браузера.

Первый режим имеет одну особенность, данные необходимые для отрисовки шаблона запрашиваются у сервера, т.е. клиент выполняет FSQL запросы. Особой опасности в этом нет, если вы используете ограничение доступа и модуль fosAccess, но есть возможность выгрузки сырых данных копипастерами. Однако, такой подход существенно снимает нагрузку на сервер.
Читать дальше →

Продвинутые структуры данных. Часть первая: Направленный ациклический граф

Время на прочтение3 мин
Охват и читатели29K
Всем привет! Уже на следующей неделе стартуют занятия в новой группе курса «Алгоритмы для разработчиков». В связи с этим, делимся с вами переводом совсем небольшого, но довольно интересного материала.




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

«Направленный ациклический граф? Никогда об этом не слышал. Не думай, что все обо мне знаешь!», вы можете сказать, но именно этот граф делает возможным контроль версий. Да, Git представляет из себя ациклический граф. В этой статье я поделюсь с вами знаниями о направленных ациклических графах (Directed Acyclic Graphs, DAG), а затем покажу, как написать свой собственный.
Читать дальше →