Рубрика «Веб-разработка» - 71

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

Итак, начнём. Моя система представляет собой сервер на Ubuntu 14.04 на котором работает Apache 2.4. Он хостит страничку, к которой возникло желание прикрутить Jabber-клиент. Выбор клиента пал на Converse.js, так как он требует минимальное количество настроек и работает из коробки. Jabber сервер — Openfire. Он расположен на удалённой машине в сети, доступ к которому я имею только как рядовой пользователь. Известны о нём мне было только IP адрес и порт.

Любой JS — Jabber (самописный, Strophe, converse) потребует от вас наличия BOSH-сервера. Грубо говоря, это эхо сервер, который пересылает сообщения от JS-Jabbera к jabber серверу и обратно. В качестве BOSH был взят Punjab .

С вводной частью закончили — поехали ставить.
Читать полностью »

Начало: habrahabr.ru/post/249625/

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

Первая статья цикла неожиданно даже для меня вылилась в общие рекомендации о поведении Администратора сервера. Но уже сейчас очевидно, что это — бег впереди паровоза. Перед тем, как некто решает установить браузерку и заделаться админом, он должен ответить себе на главный Вопрос. И звучит этот вопрос так: «ЗАЧЕМ?!»

Читать полностью »

Делаем очередь входящих звонков с функцией callback - 1 При звонках в колл-центр компаний часто приходится сталкиваться с большим временем ожидания на линии, многие из нас слушали надоедливую мелодию в течение десятков минут хотя бы раз в жизни. Самое интересное заключается в том, что это совершенно невыгодно компании в колл-центр которой вы звоните, особенно если вы звоните на номер 8-800. К счастью, уже давно придуман способ, позволяющий решить данную проблему — это callback или обратный вызов. Суть этого способа очень простая: позвонившему предлагают отключиться от колл-центра при этом его номер так и остается в очереди на обслуживание и как только его очередь подойдет, то ему автоматически наберут и соединят с оператором, на которого распределился его звонок. Таким образом убиваем сразу несколько зайцев: не занимаются линии колл-центра, не тратятся дорогостоящие минуты 8-800, а клиенты не испытывают лишнего раздражения в ожидании ответа. Вендоры колл-центрового ПО хотят за такую функцию весьма приличных денег, а мы под катом расскажем как данный функционал достаточно просто и быстро реализуется с помощью платформы VoxImplant.Читать полностью »

Когда появился node.js, многие web-разработчики стали задумываться о возможности использовать один и тот же код как на клиенте, так и на сервере. Сейчас существует несколько фреймворков, ставящих подход «пишем код один раз, используем везде» во главу угла, время от времени появляются новые. Вот и я не смог пройти мимо, пишу подобный микро-фреймворк — bnsf. Он предназначен для тех, кто предпочитает создавать front-end своих приложений по БЭМ-методологии, пользуясь соответствующим набором технологий и инструментов.

Давайте попробуем начать писать front-end для простого одностраничного web-приложения, используя bnsf. Чтобы не отвлекаться на создание back-end части, будем использовать в качестве back-end'a API vk.com. Наше приложение будет состоять всего из двух страниц, главной — с формой поиска пользователей по идентификатору — и вторичной, на ней будем выводить информацию о выбранном пользователе.
Читать полностью »

Эта история началась пять с половиной лет назад — когда к простому непростому работнику всехххххххххх регионального провайдера «Тхххххх» «Схххххх» обратился один из пользователей, предлагая поднять в локальной сети клон игры Ogame на движке «xNova 0.8b RageRepack». Как раз в то время «Схххххх» активно занималась созданием собственных ресурсов — собственный DCHub, свои сервера Counter-Strike (по лицензии Valve!), свой WSUS и даже свой репозиторий для основных Linux-дистрибутивов — не упоминая тех ресурсов, которые могут вызывать вопросы у компетентных органов. Ибо зачем упоминать того, чего не было и быть не могло?

Работнику мысль показалась весьма интересной. Любопытный ресурс на интересную тематику, да еще и вполне уникальный в пределах региона. Почему бы и нет? Были выделены соответствующие мощности, настроены аккаунты, развернуты пакеты… Ну, вы должны себе представлять сопутствующую мутотень да еще и пять лет назад.

Вскорости выяснилось пара неприятных подробностей. Вышеозначенный пользователь разбирался в движке чуть менее, чем никак, поэтому вся тяжесть ТП легла на вышеупомянутого работника. А когда выяснилось, что… мнэ… «монетизировать траффик» от пользователей в то время не представлялось возможным, то и интерес у означенного пользователя угас очень быстро. Но — ущерб уже был нанесен. Вышеупомянутый работник распробовал яд PHP и втянулся…
Читать полностью »

В этой статье я хочу рассказать о том, как реализован слой «буферизации вывода» в PHP, как работает и как с ним взаимодействовать из PHP. В этом слое нет ничего сложного, но многие разработчики либо совсем не понимают, как с ним обращаться, либо не имеют полной ясности. Всё, о чём я буду писать, относится к PHP версии 5.4 и выше. Именно начиная с неё изменились многие вещи, связанные с буфером вывода (БВ). По сути, этот функционал был полностью переписан, поэтому совместимость с версией 5.3 сохранилась лишь частично.

Что такое буфер вывода?

Поток вывода в PHP содержит байты, обычно в виде текста, которые разработчику надо вывести на экран. Чаще всего для этого используется конструкция echo или printf(). Во-первых, нужно понимать, что любая функция, которая что-то выводит, будет использовать БВ из области PHP. Если говорить о расширениях для PHP, то можно получить доступ к функциям, пишущим в SAPI напрямую, в обход любого вышерасположенного БВ. API C задокументировано в lxr.php.net/xref/PHP_5_5/main/php_output.h, отсюда можно почерпнуть немало информации, например, о размере буфера по умолчанию.

Второй важный момент: слой БВ является не единственным слоем, в котором буферизуются выводимые данные.

И третье: в зависимости от SAPI, который вы используете (веб или cli), слой БВ может вести себя по-разному.

Ниже представлена схема, которая поможет понять всё вышесказанное:

Буфер вывода в PHP - 1Читать полностью »

Пишущую машинку я расчехляю нечасто, но сегодня есть повод.

Тесты для JavaScript пишут многие, некоторые пишут много тестов. Есть несколько популярных тестовых фреймворков, таких как Jasmine, Mocha, QUnit, а также инструменты для автоматического запуска тестов. Некоторые из них даже интегрированы в некоторые редакторы кода. Например, Karma runner и Mocha прекрасно интегрированы моими коллегами в WebStorm. Словом, существуют разные способы запускать тесты автоматически и получать результаты в течении одной или нескольких секунд, впрочем время зависит от количества и характера тестов.

Как мы используем наши JavaScript тесты
Wallaby.js — маленький зверь с большим будущим - 1
Читать полностью »

Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №145 (26 января — 1 февраля 2015) - 1
Читать полностью »

Сегодня этим постом мы открываем цикл еженедельных публикаций учебных материалов Технопарка. Если кто-то ещё не знает, Технопарк — это совместный образовательный проект Mail.Ru Group и МГТУ им. Н. Э. Баумана. Здесь проходят обучение по 20 IT-дисциплинам 91 наиболее талантливый студент. Технопарк существует с 18 ноября 2011 года, а первые счастливчики приступили к занятиям в декабре 2011 года.

Обучение в Технопарке совершенно бесплатное, оно проходит после занятий в университете. Стать участниками проекта могут студенты 3-5 курсов. Хотя для 2 и 6 курсов могут сделать исключение. Обучение длится 2 года, оно разбито на 4 семестра, в каждом из которых проходят по 3-4 предмета. Первый блок первого семестра посвящён всему, что связано с web-технологиями, от истории возникновения до программирования и безопасности web-приложений.

Лекция 1. Введение

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


Читать полностью »

Простые решения. Прокачиваем картинки - 1

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


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js