Обновить
128K+

JavaScript *

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

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

Делаем превью-снимки WebRTC видеопотока в PNG картинках

Время на прочтение2 мин
Охват и читатели4.2K
Есть 10 пользователей, которые стримят видео с веб-камеры по WebRTC. Нужно вывести снапшоты (thumbnails) их стримов на одной веб-странице, чтобы выглядело примерно так:


Можно просто воспроизвести видео вместо картинок, но давайте посчитаем каким будет битрейт, если каждый из потоков занимает 1 Mbps полосы. Если воспроизводить все десять, получится 10 Mbps. Не многовато для превьюшек?
Читать дальше →

Как собрать голосового бота: распознавание речи, синтез речи и NLP в несколько строк кода

Время на прочтение3 мин
Охват и читатели17K
Мы регулярно пишем про голосовых ботов и автоматику входящих-исходящих звонков. Подтверждение доставки, заказов, угадывание и автоответ клиенту пока соединяемся с компанией — вся вот эта история. В комментариях мне резонно заметили, что про ботов я говорю много, а показываю мало. Это легко исправить! Хакатон S7 в Парке Горького в самом разгаре, 50 команд фигачат прототипы разного интересного — а у меня есть возможность попробовать уложиться в как можно меньшее количество строк кода. Минимализм в примерах — это круто.
посмотрим, что у меня получилось?

Невероятный JavaScript — трюки, недоразумения и необычные возможности

Время на прочтение10 мин
Охват и читатели22K
Рано или поздно любой разработчик сталкивается с непонятными проблемами, а учитывая множество «особенностей» Vanilla JS, у нас это происходит довольно часто. Вне зависимости от причин поиск решений может затянуться или привести к созданию очередного велосипеда. А верный путь часто лежит на поверхности, нужно просто знать, где его искать и как применить полученные знания. О странностях и неожиданностях JS и их правильной интерпретации мы поговорим с экспертами в этой области Claudia Hernández и Jakob Mattsson.


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

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

Время на прочтение3 мин
Охват и читатели4.7K
Недавно смотрел серию видео популяризатора математики. Там он пытается рассказывать про математический анализ и линейную алгебру немного с позиции человека, который «как бы» изобрел бы ее с нуля. То есть пытается делать доступными простые и понятые визуализации относительно сложных концепций, как бы объясняя их с позиции человека, который как будто бы придумал это впервые. Относительно недавно читал статью на Хабре про unsupervised learning и увидел там раздел про Affinity Propagation. Как оказалось, мы использовали именно этот метод кластерного анализа чисто интуитивно, сами того не ведая.

TLDR для данной статьи. Если хотите интерактивную визуализацию, проследуйте сюда.
В данной визуализации в виде графа показаны связи между музыкальными жанрами ~25,000 самых популярных артистов мира, причем размер кругляшка показывает популярность данного жанра, а размер ребра графа — силу связи.

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

Подлавливаем пользователя на вводе в консоли в Google Chrome

Время на прочтение2 мин
Охват и читатели21K
Привет. Решил написать про небольшую фичу хрома, которую случайно обнаружил однажды. Как её использовать — решайте сами.

Сразу покажу пример, чтобы не мусолить (тестировал на последнем Хроме, который у меня был):

var gn = Object.getOwnPropertyNames.bind(Object)

var f = function(o) {
    if(f.caller && f.caller.toString && 
       f.caller.toString().indexOf('object&&ArrayBuffer.isView(o)&&o.length>9999') > 0) {
        console.log(f.caller)
    }
    return gn(o);
}
Object.getOwnPropertyNames = f

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

Nsynjs – JavaScript-движок с синхронными потоками и без колбеков

Время на прочтение6 мин
Охват и читатели6.7K
В этой статье я расскажу о результате своей второй попытки борьбы с колбеками в JavaScript. Первая попытка была описана в предыдущей статье. В комментариях к ней мне подсказали некоторые идеи, которые были реализованы в новом проекте — nsynjs (next synjs).



TLDR: nsynjs — это JavaScript-движок, который умеет дожидаться исполнения колбеков и исполнять инструкции последовательно.
Читать дальше →

Beyond the clouds: что такое serverless и почему мы понимаем его неправильно?

Время на прочтение6 мин
Охват и читатели8.1K
Интернет меняется. Появляются новые технологии, готовящие революцию самого предназначения веба и способа его использования. Интернет без серверов? В оффлайн-режиме? Непосвященные решат, что это бред и пойдут вызывать скорую. Для всех остальных Slobodan Stojanovic поразмышляет над будущим интернет-технологий.



Slobodan – программист-предприниматель из Белграда, последние 5 лет работает CTO в компании Cloud Horizon, которая создает веб-приложения для американских стартапов. Является фанатом JavaScript и новейших интернет-технологий: чатботы, Serverless, web-assembly.
Читать дальше →

Библиотека для визуализации спортивных сезонов

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


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

JavaScript: элементы стиля

Время на прочтение16 мин
Охват и читатели26K
В 1920-м году вышла книга Уильяма Странка-младшего «Элементы стиля». Рекомендации из неё, касающиеся английского языка, актуальны и сегодня. Те же принципы, применённые к коду, позволяют повысить качество программ.

image

Надо заметить, что речь не идёт о жёстких правилах. То, о чём мы сегодня поговорим — лишь рекомендации. Даже если вы решите следовать им, вполне могут найтись веские причины для того, чтобы от них отклониться, например, если это поможет сделать код понятнее. Однако, поступая так, будьте бдительны и помните о том, что люди подвержены когнитивным искажениям. Например — выбирая между обычными и стрелочными функциями в JavaScript, тот, кто не очень хорошо знаком с последними, предпочтёт обычные функции, в силу привычки считая их понятнее, проще, удобнее.
Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №263 (15 — 21 мая 2017)

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

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

Защищённый сервис обмена текстовыми сообщениями

Время на прочтение2 мин
Охват и читатели13K
Однажды, лежа на диване, попивая чай, я понял, что мне необходимо создать сервис для безопасного обмена текстовой информацией. Осознавая всю значимость этого дела, я подошел к нему основательно. Диван, осознав, всю важность данного действа решил мне в этом помочь. Вместе, сосредоточившись и превозмогая сон, мы создали чудесный сайт с открытым исходным кодом. Исходники можно посмотреть тут, и шоукейс тут (все на Github).

Основные фичи, которых я добился:

  • Высокая скорость загрузки
  • Если указать пароль, то информация шифруется прямо в браузере и на сервер сохраняется только ничего. Для просмотра данных нужно ввести пароль, чтобы расшифровать в браузере данные, полученные не с сервера.
  • Высокая загрузка центрального процессора
  • Поисковым системам не запрещено индексировать содержимое сайта, потому что нет сайта
  • HTTPS везде
Читать дальше →

Эволюция фрактальных монстров

Время на прочтение9 мин
Охват и читатели28K
Сегодня будем рисовать геометрические фракталы, которым уделяют незаслуженно мало внимания. А между тем, тут каждый фрактал — маленький шедевр, поражающий воображение!


Дальше много картинок и gif-анимация. Но прежде, чем переходить под кат, посмотрите на картинку выше и скажите, что на ней нарисовано?
Читать дальше →

Переосмысление JavaScript: Смерть for

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

Цикл for хорошо послужил нам, но он устарел и должен уступить место более новым, функциональным техникам программирования.
Читать дальше →

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

Ionic 2 vs React Native: сравнение фреймворков для создания корпоративных мобильных приложений

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

В этой публикации мы рассматриваем создание таких корпоративных мобильных приложений с использованием различных JavaScript фреймворков.
Читать дальше →

Руководство React Native — создаем приложение под iOS. Часть 1.4 — 1.5

Время на прочтение5 мин
Охват и читатели8.6K
→ Перевод отсюда
→ Продолжение. Предыдущие выпуски:

4. Фильтрация и отбор случайных обоев


В этом разделе мы будем отбирать определённое количество случайных обоев из заданной категории. Раздел больше посвящен JS, нежели React Native. Мы создадим новый модуль (файл), который будет генерировать случайное число. Если понятие «модуль» вам незнакомо, рекомендую обратиться к документации Node.js по модулям.
Найдите строку, объявляющую класс
class SplashWalls extends Component{/* ... */};
Читать дальше →

Почему программисты не могут программировать

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

Я был недоверчив, когда прочитал это наблюдение у Реджинальда Брейтуэйт:


Как и у меня, у автора возникают проблемы с тем фактом, что 199 из 200 претендентов на каждое задание программирования не могут писать код вообще. Повторяю: они не могут писать никакого кода вообще.
Читать дальше →

Руководство React Native — создаем приложение под iOS. Часть 1.2, 1.3

Время на прочтение7 мин
Охват и читатели21K
→ Перевод отсюда
→ Продолжение. Начало здесь

2. Извлечение данных из API


В этом разделе мы будем подключаться к API сайта Unsplash.it и запрашивать информацию о обоях. Но, прежде чем мы приступим к интересному, нам надо сделать кое-что.

Объявление классов в стиле ES2015


В файле index.ios.js вы видите существующий код. Он отвечает за вывод содержимого в эмулятор.

image

В файле index.ios.js мы видим строку var SplashWalls = React.createClass({ ... }). Мы будем менять ее. В этом руководстве мы будем использовать синтаксис ES2015 для объявления классов.
Мы, разработчики, любопытные. Вы, возможно, хотите спросить: «Зачем? Зачем использовать классы из ES2015?».
Читать дальше →

Руководство React Native — создаем приложение под iOS. Часть 1.1

Время на прочтение5 мин
Охват и читатели49K
Перевод отсюда.
Продолжение тут.

Идея создавать мобильные приложения на JS не нова. Мы видели, что фреймворки, такие как Ionic или PhoneGap, справляются с этой задачей и привлекли изрядное количество разработчиков.

Тем не менее ни эти фреймворки, ни идея создавать мобильные приложения на JavaScript никогда не привлекали меня. Я всегда думал, почему бы не изучить Swift/Objective-C или Java и просто делать настоящие приложения? Конечно, это потребует затраты значительных усилий на обучение, но разве непрерывное обучение — это не то, что мы, разработчики, делаем и должны делать хорошо? Быстро изучать новые языки и фреймворки? Тогда в чём смысл? Что касается меня, очевидные преимущества такого подхода никогда не перевешивали сомнения.
Читать дальше →

Дайджест свежих материалов из мира фронтенда за последнюю неделю №262 (8 — 14 мая 2017)

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

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

2017: Автостопом по галактике JavaScript

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

Расшифровка доклада Ильи Климова на конференции JavaScript fwdays.


Мы с вами попробуем отследить некоторые тренды в развитии JS, как сообщества, как движения, в 2017-ом году. Я очень постараюсь избежать оценочных суждений. Хотя кого я обманываю, все равно не получится. И где-то через год вы сможете с радостью открыть эту презентацию на YouTube, и понять, насколько я был не прав.


Поэтому давайте перенесёмся в 2015 год. Посмотрим, как развивался JS.



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