Среди подводных камней WebRTC один особенный. Это то, как браузеры договариваются между собой о передаче медиа-потоков. Кодеки, битрейты, разрешение видео, – вся вот эта история. Кода медиа-поток один — все хорошо. Но когда их два (а видео со звуком, это, на секундочку, два медиа-потока: один для видео, другой для звука), то мнения браузеров о формате описания ситуации резко разделяются. Сделать видеозвонок из Chrome в Firefox можно довольно легко. А вот видеозвонок со звуком — уже нет. Под катом небольшая история, почему так повелось, что запилили в новой Safari и какой особый путь у Microsoft Edge.
Читать полностью »
Рубрика «javascript» - 239
Как Chrome и Firefox договариваются о передаче двух видеопотоков
2017-07-31 в 9:41, admin, рубрики: javascript, voximplant, WebRTC, Блог компании Voximplant, Программирование, Разработка веб-сайтов, разработка мобильных приложенийСборка бандла AngularJs приложения с Gulp
2017-07-31 в 8:24, admin, рубрики: AngularJS, gulp, gulp bundle assets, gulp html replace, javascriptДень добрый.
Расскажу про отличный gulp плагин для сборки вашего веб приложения в один большой ассет, который может путешествовать отдельно на любой хост в удобном виде, а также если вы используете непрерывное развертывание, то можно собирать ассеты прямо в Jenkins например.
Итак сначала начнем с перечисления всех необходимых плагинов:
var gulp = require('gulp'),
clean = require('gulp-clean'), //для чистки папки dist
inject = require('gulp-inject'), //этим мы будем инжектить исходники проекта поотдельности для рабаты в dev режиме
bundle = require('gulp-bundle-assets'), //тот самый очень полезный плагин
config = require('load-gulp-config'), //для загрузки json конфигураций на выходе из предыдущего плагина
htmlreplace = require('gulp-html-replace'); //этим мы будем вставлять считанныйе из json бандлы в наш html
bundle-assets — отличный плагин т.к он позволяет создать отделную dist директорию со всеми шрифтами, картинками, стилями и т.д, которые необходимы для работы приложения. Пример использования плагина можно посмотреть по ссылке.
Коротко говоря на выходе мы получаем вот такой bundle.result.json, все исходини уже минимизированы и могут располагатся где вам угодно:
{
"main": {
"styles": "<link href='main-8e6d79da08.css' media='screen' rel='stylesheet' type='text/css'/>",
"scripts": "<script src='main-5f17cd21a6.js' type='text/javascript'></script>"
},
"vendor": {
"scripts": "<script src='vendor-d66b96f539.js' type='text/javascript'></script>",
"styles": "<link href='vendor-23d5c9c6d1.css' media='screen' rel='stylesheet' type='text/css'/>"
}
}
Дайджест свежих материалов из мира фронтенда за последнюю неделю №273 (24 — 30 июля 2017)
2017-07-30 в 20:13, admin, рубрики: angular, css, ES6, html, html5, javascript, JS, React, vue, Блог компании Zfort Group, браузеры, дайджест, Разработка веб-сайтов, ссылки, фронтендПредлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
Пишем игру змейка с помощью JavaScript + Canvas
2017-07-30 в 12:30, admin, рубрики: canvas, Gamedev, html, html5, javascript, snakeДоброго времени суток, друзья. Сейчас я постараюсь вам показать как можно написать игру Змейка. Конечно, не самым быстрым способом и не самым маленьким в плане количества строк кода, но по-моему самым понятным для начинающих разработчиков, как я. Статья написана для людей, желающих чуть-чуть познакомиться с элементом canvas и его простыми методами для работы с 2D графикой.
Напишем змейку в «старом» виде, без особо красивой графики — в виде кубиков. Но это только упростит понимание разработки. Ну что же, поехали!
Читать полностью »
Почему Vue.js — лучший фреймворк для front-end разработки на 2017 год
2017-07-28 в 14:27, admin, рубрики: angular, javascript, React, vuejsКак говорил М.Т. Калашников: «Просто» сделать в 1000 раз сложнее, чем «сложно». Веб-индустрии понадобилось более половины десятилетия, чтобы прийти от фреймворков-монстров к простой и элегантной конструкции. В IT простота это не только сэкономленные часы работы, а ещё и прозрачная архитектура, выливающаяся в понятный код, меньшее число багов, более быстрое внесение изменений и много других приятных вещей.
В этой статье я проведу сравнение Vue.js с двумя наиболее популярными на данный момент фреймворками: Angular и React. Vue.js намного моложе, поэтому разговор будет прежде всего о нём, об Angular и React грамотные разработчики и так знают. Я бы не начинал этот разговор, если бы Vue не предлагал чего-то действительно стоящего. К счастью это так, и я утверждаю, что в большинстве случаев Vue.js может серьёзно снизить сложность ваших программ, сделать код более лаконичным и выразительным, а отладку — короче и проще. Подробности под катом. Поехали!
Читать полностью »
Конструктор
2017-07-28 в 9:15, admin, рубрики: css, frontendconf, html, javascript, JS, json, архитектура фронтенда, Блог компании Конференции Олега Бунина (Онтико), денис паясь, конструктор, Разработка веб-сайтов, метки: денис паясь
Денис Паясь (Яндекс)
Меня зовут Денис, я работаю в Яндексе, а если точнее, то я занимаюсь разработкой фронтенда для страницы поисковой выдачи.
Дисклеймер: Денис рассказывал об этом в 2016 году, но мы посчитали, что как демонстрация архитектурного подхода сейчас этот доклад актуален даже больше, чем тогда.
Сегодня я расскажу про такую офигительную нашу внутреннюю штуку как Конструктор, про то как он получился, почему, и как мы вообще к этому всему пришли.Мне кажется, что те решения, которые мы приняли в процессе реализации этой замечательной фиготы, могут быть полезны не только нам в рамках нашей компании, нашей команды, но и целому множеству других команд, в ваших, например, компаниях. Я не знаю упомянул я или нет, но проект реально очень крутой. Почему – сейчас расскажу.
Читать полностью »
JetBrains MPS для интересующихся #1
2017-07-27 в 21:50, admin, рубрики: java, javascript, jetbrains, language design, language model, mps, ПрограммированиеВведение
Спасибо всем за критику в комменте под первым постом, где я хотел попробовать написать про MPS, не затрагивая важные темы, чтобы можно было потом более качественно начать писать по порядку.
Зачем нам нужен язык Weather?
В комментариях к 1 посту было следующее высказывание
С этой точки зрения, DSL — это как фреймворк, только с более удобным интерфейсом. Ясное дело, под один проект фреймворк делать никто не будет, за исключением совсем уж монструозных случаев. А сделать его под конкретную предметную область — почему бы и нет?..
В принципе, так оно все и работает. Хорошие языки похожи по сути на хорошие фреймворки: они позволяют писать что-то важное, не заморачиваясь о том, что мы не хотим писать. По ходу повествования я буду периодически обращаться к другим языкам для аналогий и сравнений.
Синтаксис
Язык Weather, который мы хотим реализовать, должен выполнять следующую задачу: мы должны уметь лаконично выражать условия (погода сегодня, например) и следствия (погода завтра, послезавтра...).
В языке Weather мы будем делать наши прогнозы отталкиваясь от 1 фактора: от температуры на сегодняшний день(массив объектов время + погодные условия).
Конкурс по программированию: JSDash (промежуточные результаты 2)
2017-07-26 в 12:59, admin, рубрики: hola, javascript, node.js, nodejs, Алгоритмы, Блог компании Hola, видеоигры, занимательная задача, занимательная задачка, занимательные задачи, Занимательные задачки, игры, ИИ, искусственный интеллект, ищем таланты, конкурс, конкурсы, конкурсы разработчиков, соревнование, соревнования, соревнования по программированию, Спортивное программированиеОбъявление: срок приёма решений продлевается до 17 августа.
Спасибо всем, кто уже принял участие в нашем конкурсе по программированию! Мы получили 39 решений от 26 уникальных участников. Публикуем новые промежуточные результаты.
Читать полностью »
Почему мы выбрали TypeScript: история разработчиков из Reddit
2017-07-24 в 11:16, admin, рубрики: javascript, TypeScript, Блог компании RUVDS.com, Веб-разработка, Разработка веб-сайтовПримерно полгода назад CEO Reddit Стив сообщил о том, что мы перепроектируем сайт. Главный вопрос тут — как именно мы этим занимаемся. В наше время фронтенд-разработка очень сильно отличается от того, что было во времена, когда Reddit появился на свет. Сейчас имеется огромный выбор вариантов для каждой подсистемы веб-приложения. Как рендерить страницы? Как стилизовать контент? Как хранить и обслуживать картинки и видеофайлы? Как писать код? В современных условиях ни на один из этих вопросов нет готового ответа.
Одним из первых подобных вопросов, на который нам необходимо было найти ответ, звучал так: «Какой язык выбрать?».
Читать полностью »
Как и зачем скрывать телефонные номера
2017-07-24 в 10:23, admin, рубрики: javascript, phone number masking, Блог компании Voximplant, Программирование, Разработка веб-сайтов, метки: phone number masking
Мало известный за пределами телеком-тусовки факт: когда вы звоните куда-нибудь со своего телефона, ваш номер, который отображается для входящего звонка – это просто произвольная текстовая строка, которую подставил ваш оператор сотовой связи. И если между двумя устройствами есть что-нибудь интересное, к примеру, машина с Asterisk или облако с Voximplant, то эту строку можно поменять на любую другую. Ситуация, когда при звонке вместо номера звонящего человека «рисуется» совсем другой номер называется маскировка телеком-данных (Phone Number Masking). И этот прием широко используется для решения ряда интересных задач. Читайте о них под катом.
Читать полностью »