Pull to refresh

Программист создал аналог Club Penguin, где можно одновременно общаться как в Zoom и играть

Reading time 2 min
Views 6.5K
Website development *JavaScript *Social networks and communities Games and game consoles


Full stack разработчик и основатель PushLabs Люк Барвиковски (Luke Barwikowski) рассказал пользователям Reddit о том, над чем он работал последние несколько месяцев. Барвиковски создал Banger.Digital party — это аналог Club Penguin для взрослых пользователей, где они могут одновременно общаться по видеосвязи и играть — управлять своими фигурками-аватарками, выполняя различные действия в виртуальном мире.
Читать дальше →
Total votes 12: ↑9 and ↓3 +6
Comments 6

Вебинар «Пишем Websocket-сервер для геолокации на asyncio»

Reading time 1 min
Views 502
Southbridge corporate blog

22 сентября в 19:00 мск Слёрм приглашаем на вебинар «Пишем Websocket-сервер для геолокации на asyncio» от наших партнеров KTS.

На вебинаре создадим веб-сервис на Python с использова­нием библиотеки aiohttp. Он позволит делиться своим местополо­жением и отслеживать местопо­ложение других подключённых к нему людей. И всё это в режиме реального времени.

Читать про вебинар
Total votes 14: ↑11 and ↓3 +8
Comments 0

WebSockets — полноценный асинхронный веб

Reading time 7 min
Views 337K
Website development *
Пару недель назад разработчики Google Chromium опубликовали новость о поддержке технологии WebSocket. В айтишном буржунете новость произвела эффект разорвавшейся бомбы. В тот же день различные очень известные айтишники опробовали новинку и оставили восторженные отзывы в своих блогах. Моментально разработчики самых разных серверов/библиотек/фреймворков (в их числе Apache, EventMachine, Twisted, MochiWeb и т.д.) объявили о том, что поддержка ВебСокетов будет реализована в их продуктах в ближайшее время.
Что же такого интересного сулит нам технология? На мой взгляд, WebSocket — это самое кардинальное расширение протокола HTTP с его появления. Это не финтифлюшки, это сдвиг  парадигмы HTTP. Изначально синхронный протокол, построенный по модели «запрос — ответ», становится полностью асинхронным и симметричным. Теперь уже нет клиента и сервера с фиксированными ролями, а есть два равноправных участника обмена данными. Каждый работает сам по себе, и когда надо отправляет данные другому. Отправил — и пошел дальше, ничего ждать не надо. Вторая сторона ответит, когда захочет — может не сразу, а может и вообще не ответит. Протокол дает полную свободу в обмене данными, вам решать как это использовать.

Я считаю, что веб сокеты придутся ко двору, если вы разрабатываете:
— веб-приложения с интенсивным обменом данными, требовательные к скорости обмена и каналу;
— приложения, следующие стандартам;
— «долгоиграющие» веб-приложения;
— комплексные приложения со множеством различных асинхронных блоков на странице;
— кросс-доменные приложения.

Заинтриговал? Давайте посмотрим подробнее
Total votes 222: ↑210 and ↓12 +198
Comments 389

Двунаправленный асинхронный обмен данными в веб-приложениях

Reading time 4 min
Views 20K
Website development *
Одной из основных черт современного веба эксперты называют RIA, что часто расшифровывается как тренд, когда веб-приложения по функциональности приближены к настольным приложениям. Тем не менее, это приближение весьма условно. Подавляющее большинство «обогащеных» веб-приложений по-прежнему построены по модели «запрос-ответ». Т.е. события на стороне клиента могут быть отражены на стороне сервера, никак не наоборот. Для того чтобы реализовать такую банальную вещь как чат приходиться прибегать к изощренным уловкам. Спасибо Алексу Расселу (Alex Russell) из Dojo, у нас есть даже имя для подобной техники – Comet.
Читать дальше →
Total votes 68: ↑64 and ↓4 +60
Comments 52

Поднимаем WebSocket сервер

Reading time 5 min
Views 69K
Website development *
Многие уже наслышаны о революции в расширении HTTP протокола — внедрении технологии WebSocket разработчиками Google Chromium. В данной статье речь пойдет о том, как приручить данного зверя — установке и настройке WebSocket сервера на асинхронном фреймворке phpDaemon.
Читать дальше →
Total votes 8: ↑6 and ↓2 +4
Comments 21

Взгляд в ближайшее будущее: Firefox 4

Reading time 1 min
Views 1K
Firefox
Во блоге Ajaxian и во блоге Mozilla Hacks появились блогозаписи о том, каков будет грядущий Firefox 4.

Главная новость: Firefox 4 станет окончательным номером той альфа-версии браузера, которая была до этого известна нам в качестве Firefox 3.7.

Одна из основных инноваций Firefox 3.7 (а именно, вычленение плагинов в отдельный процесс) ужé выпущена в составе Firefox 3.6.4.

Помимо неё, в Firefox 4 появятся вот какие новинки:

→  Поддержка SVG и MathML прямо внутри HTML5, без необходимости прибегать к строгому XHTML и пространствам имён.

→  Интерпретатор HTML5 в отдельном потоке, поэтому интерфейс браузера не будет тормозить в момент обработки крупных страниц.

→  Интерпретатор HTML5 будет поддерживать HTML5 forms.

→  Вызов innerHTML станет работать быстрее (примерно на 20%).

→  Поддержка WebSockets (вебоприложения получат дуплексную связь с вебосервером).

→  PushState улучшит AJAX-взаимодействия.

→  Новые средства взаимодействия с вебостраницами: жесты, многотык (multi-touch).

→  Улучшенная поддержка CSS3.

→  Редактируемое содержимое страниц (contentEditable).

→  IndexedDB: структурированное JSON-подобное (а не SQLite-подобное, как было прежде) хранилище данных.

→  Интерфейсы для доступа к микрофонам и вебокамерам посетителей сайта.

Читать дальше →
Total votes 140: ↑93 and ↓47 +46
Comments 126

Mozilla готовит для разработчиков сайтов новые функции

Reading time 3 min
Views 553
Lumber room
Новость появилась на новом сайте для разработчиков Firefox 4, предвещая много хорошего для тех из нас, у кого ограничен трафик: интерфейс IndexedDB позволит Веб приложениям работать даже без подключения к сети. Предлагаемый в качестве дополнения стандарт HTML IndexedDB является одним из целой коллекции технических решений, открывающих новые горизонты для программистов и веб разработчиков.
Читать дальше →
Total votes 25: ↑21 and ↓4 +17
Comments 19

Замены для nginx (Web Sockets)

Reading time 1 min
Views 7.1K
Website development *
В своё время nginx стал глотком свежего воздуха для Web-разработки.

В настоящее время, к сожалению, этот продукт тормозит развитие Web, так как является динозавром эпохи HTTP/1.0.

Если Вы используете современные возможности HTTP/1.1, или partial updates, или Web Sockets, нужна рабочая альтернатива.
Читать дальше →
Total votes 111: ↑68 and ↓43 +25
Comments 166

Firefox 4 значительно ускорится и получит поддержку inline SVG

Reading time 2 min
Views 993
Firefox
Translation
Вечером 30 июня «Мозилла» явилась в Лондон в Англии, чтобы поведать про дополнения («Mozilla Add-Ons») и показать некоторые новые клёвые особенности грядущего Файерфокса 4.

Вероятно, наиболее впечатляющими (если не считать средства создания дополнений «Add-Ons Builder», основанного на «Беспине») оказались следующие будущие возможности Firefox 4:

→  отображение HTML5-видео (<video>)

→  рисование на холсте (<canvas>)

→  манипулирование изображениями на холсте (анализ пикселов, распознавание лиц с помощью opencivitas)

→  технологии «зелёного экрана» (хромакей) в иллюстрациях и видео, достигаемые анализом цвета пикселов

→  HTML5, встраиваемый внутрь SVG (ура!)

→  SVG как <img>

→  SVG как CSS-фон

→  SVG-фильтры, SVG-маски, SVG-контуры обрезки

→  SVG-анимация

→  inline SVG (то есть SVG внутри HTML5)

→  CSS3: селекторы, @font-face, 2D-преобразования (transforms), переходы (transitions), тени, градиенты, вычисления — calc(2em-10px)

→  API: геопозиция (geolocation), оффлайн (IndexDB, localStorage, AppCache, FileAPI: чтение двоичного содержимого из файла, перетаскивание файлов), веб-труженики (web workers) и сокеты (websockets)

→  контроллер на вебсокетах, запускающий презентацию с мобильника

→  WebGL

Некоторые из этих способностей подтверждались демонстрациями:

→  фильтры CSS3 и маски SVG на HTML5-видео:

Читать дальше →
Total votes 118: ↑97 and ↓21 +76
Comments 72

HTML5 Labs: добавляем в IE поддержку WebSockets и IndexedDB

Reading time 1 min
Views 2.4K
Internet Explorer


HTML5 Labs — новая экспериментальная площадка для тестирования реализации отдельных элементов HTML5 и связанных спецификаций. В рамках проекта будут публиковаться прототипы реализации тех или иных веб-стандартов или их фрагментов, которые, очевидно, в будущем будут востребованны, но в настоящий момент сыроваты или нестабильны.

На текущий момент доступны прототипы реализаций WebSockets и IndexedDB.
Читать дальше →
Total votes 53: ↑37 and ↓16 +21
Comments 10

Вебсокеты против Антивирусов. Первый раунд

Reading time 2 min
Views 2.3K
Website development *
Не за горами наплыв html5 приложений. Для пользователей это еще больше интерактива и новых возможностей, в первую очередь благодаря local storage и websockets технологиям. Для разработчиков это очередная головная боль по обеспечению совместимости. Первый удар ниже пояса нанесли команды Firefox4 и Opera11, запретив по умолчанию поддержку websockets. Разработчики стерпели, разместив в своих faq инструкции как их включить и подложив подкладку в виде flash компонента эмулирующего websockets поддержку для совсем уж устаревших браузеров.

При переводе Клуба Трельяж с comet long polling обработки событий на websockets модель, мы столкнулись с тем, что беда пришла откуда ее не ждали. А пришла она из стана антивирусов.
Читать дальше →
Total votes 75: ↑62 and ↓13 +49
Comments 26

Моделируем полёт PHP на крыльях Erlang

Reading time 10 min
Views 8.8K
PHP *Erlang/OTP *
В данной статье изложены размышления и фантазии на тему «как можно было бы скрестить Erlang и PHP, чтобы случилось вселенское счастье», а не описание готовой технологии или продукта. Впрочем, мы намерены это реализовать, скорее всего, в форме open-source проекта, если, конечно, уважаемая хабра-аудитория не отговорит :) Собственно, одна из главных задач этой статьи — понять, насколько идея интересна и потенциально полезна широкому PHP-сообществу. Кстати, некоторые из проблем, обсуждаемых в статье, справедливы и для других популярных скриптовых языков (тут я подразумеваю Ruby и Python), так что предлагаемое решение, возможно, будет актуально и для них.
Интересно, нафига козе баян?
Total votes 95: ↑86 and ↓9 +77
Comments 166

Создание приложений реального времени с помощью Server-Sent Events

Reading time 7 min
Views 48K
JavaScript *
Буквально недавно стало известно, что Firefox 6 получит SSE (уже есть в Opera 10.6+, Chrome, WebKit 5+, iOS Safari 4+, Opera Mobile 10+) так, что поддержка более половины всех браузеров (охват аудитории пользователей) уже не за горами. Настало время присмотреться к этой технологии. SSE предложил Ian Hickson более 7 лет назад, но только год назад она стала появляться в браузерах. У нас же есть WebSockets зачем нам ещё один какой-то протокол?! Но во всем есть свои плюсы и минусы, давайте посмотрим чем же SSE может быть полезен.

Идея SSE проста — клиент подписывается на события сервера и как только происходит событие — клиент сразу же получает уведомление и некоторые данные, связанные с этим событием. Чтобы понять полезность протокола SSE необходимо сравнить его с привычными методами получения событий, вкратце объясню их суть:
Читать дальше →
Total votes 87: ↑85 and ↓2 +83
Comments 55

WaterSpout — веб сервер для асинхронной передачи данных

Reading time 1 min
Views 1.7K
Website development *
Сегодня речь пойдёт об WaterSpout — веб сервере, способном обрабатывать websockets запросы, позволяя общаться в реальном времени между сервером и браузером используя websockets или long polling. Написан он на PHP.

В первую очередь идёт проверка поддерживаются ли websockets (это Chrome, Опера и FF, если включим), если нет, то ничего страшного, будет использоваться long polling.
Преимущества этой технологии: доставка сообщений мгновенна, высокая производительность. Тестировал в Chrome, FF, IE6+.
Демка.
Читать дальше →
Total votes 61: ↑54 and ↓7 +47
Comments 41

Поддержка реверс-проксирования Web Sockets в Nginx

Reading time 2 min
Views 11K
Nginx *
Sandbox
Если вы используете Socket.IO или Faye с WebSockets, и хотите при этом использовать реверс-прокси с Nginx, то вы встретитесь с проблемой поддержки WebSocket в Nginx. Ее просто нет — WebSocket использует HTTP 1.1, в то же время как Nginx умеет правильно проксировать только HTTP 1.0.

Что делать?


Вы можете попытаться пойти в обход — использовать HAProxy для проксирования tcp соединений, или же скатиться к использованию Long-polling.
Но есть способ реализовать реверсированное проксирование и с NGINX, используя неофициальный патч, реализующий модуль tcp_proxy в nginx, который даст возможность пробрасывать произвольные tcp-соединения (по сути тоже самое, что дает HAProxy).
Читать дальше →
Total votes 55: ↑53 and ↓2 +51
Comments 15

WebSockets в Rails приложении

Reading time 3 min
Views 16K
Ruby on Rails *
Недавно я столкнулся с необходимостью реализовать небольшой чат в одном из Rails-проектов. Существует много способов решения данной задачи, начиная от периодических опросов сервера с помощью AJAX и заканчивая использованием готовых решений сторонних сервисов. С целью минимизации трафика и времени отклика системы было принято решение использовать WebSocket API – одну из частей стандарта HTML 5, позволяющую серверу инициировать передачу данных, не дожидаясь запроса клиента. К сожалению WebSocket API поддерживается достаточно ограниченным числом браузеров, среди которых Google Chrome, Safari 5, Mobile Safari в iOS 4.2 и выше и пожалуй все (если я ошибаюсь – поправьте меня в комментариях). Конечно же этого недостаточно для боевого приложения, поэтому необходимо предложить запасной вариант для браузеров без нативной поддержки WebSocket API. Удобнее всего в этом случае использовать Flash Sockets. С помощью WebSocket API и Flash Sockets приложение покрывает большую часть возможных случаев, включая как настольные системы (MS Windows, Linux, Mac OS X), так и мобильные (Android, iOS).
Читать дальше →
Total votes 9: ↑7 and ↓2 +5
Comments 11

Firefox 6 станет поддерживать ряд свойств из черновика модуля CSS3 Text

Reading time 2 min
Views 1K
Firefox
Tutorial
Как известно, Firefox 5 вышел 21 июня, а между отдельными выпусками ожидается шестинедельный промежуток, так что до появления Firefox 6 остаётся чуть больше недели. Ужé доступна его бета-версия, ужé обретает более или менее окончательный вид страница «Firefox 6 for developers» в вики MDN, содержащая перечень новых возможностей будущей новой версии Файерфокса.

Этих возможностей не так мало: обновлена и вдругорядь включена поддержка WebSockets, появилась поддержка элемента <progress>, отслеживаются события тыка пальцем и даже многотыка (multitouch), и так далее. Однако такого рода нововведения для их широкого использования всё же потребуют некоторой кросс-платформенности, так что меня вместо них более всего порадовали новинки CSS, которые носят скорее декоративный характер и смысл — так что, даже если и не заработают, то не страшно.

Речь идёт об экспериментальном (с префиксом «-moz-») внедрении четырёх свойств из черновика «CSS Text Level 3», и это свойства -moz-text-decoration-color, -moz-text-decoration-line, -moz-text-decoration-style и -moz-hyphens.

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

Читать дальше →
Total votes 69: ↑51 and ↓18 +33
Comments 87

Chess@home: создаем крупнейший шахматный ИИ

Reading time 6 min
Views 6.1K
Artificial Intelligence Logic games
Translation
Многие знакомы с проектом Seti@home: мощнейшей инициативой по поиску следов внеземных цивилизаций в океане данных, получаемых с неба, с использованием мощностей миллионов компьютеров по всему земному шару («матрицы»).

Хотя инопланетян до сих пор не обнаружили, Seti@home вполне успешно демонстрирует потенциал крупномасштабных распределенных вычислений. Проекты типа BOINC распространили подобные инициативы в другие области: биологию, медицину и физику.
Читать дальше →
Total votes 80: ↑73 and ↓7 +66
Comments 46

Удаленный вызов процедур в Node.js с использованием Now.js

Reading time 4 min
Views 5.2K
Node.JS *

Введение


Для Node.js есть отличная библиотека Socket.io для кроссбраузерного использования вебсокетов.
Но для двухстороннего взаимодействия сервера и клиента приходится использовать модель сообщений.
С помощью библиотеки Now.js есть возможность прозрачного вызова функций клиента со стороны сервера и наоборот.
Читать дальше →
Total votes 32: ↑23 and ↓9 +14
Comments 10

Простая real-time коммуникация с посетителем

Reading time 2 min
Views 8.1K
Website development *
Я давно интересуюсь вебом в реальном времени. На сегодня уже есть ряд библиотек для этого. В этом топике я хочу рассказать про недавно опробованный нами самый простой способ — использование внешнего сервиса Pusher.com.

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

Читать дальше →
Total votes 18: ↑12 and ↓6 +6
Comments 18