• Разработка чат-бота для Facebook Messenger

    • Tutorial
    В настоящее время наблюдается, действительно, бум чат-мессенджеров. Один за другим платформы для обмена мгновенными сообщениями объявляют о запуске платформы для разработки ботов.
    Не стал и исключением Facebook. 12 апреля на конференции F8 Facebook представила платформу для разработки ботов для своего мессенджера.
    В данной статье хочу поделиться опытом разработки чат-бота для Facebook на PHP.
    Читать дальше →
  • Введение в анализ социальных сетей на примере VK API


      Данные социальных сетей — неисчерпаемый источник исследовательских и бизнес-возможностей. На примере Вконтакте API и языка Python мы сегодня разберем пару практических примеров, которы помогут узнать:
      • азы работы с библиотекой Python — networkx;
      • как обращаться к Вконтакте API из языка Python посредством стандартных библиотек, в частности, получать список друзей и членов групп;
      • некоторые возможности программы Gephi.

      Disclaimer: данная статья не претендует на какую-либо новизну, а лишь преследует цель помочь интересующимся собраться с силами и начать претворять свои идеи в жизнь.

      (волосяной шар для привлечения внимания)
      Читать дальше →
      • +23
      • 41.6k
      • 9
    • Документы по защите персональных данных. Боремся с халявщиками

        Эта статья посвящена различного рода сервисам автоматической генерации комплекта внутренних документов организации по защите персональных данных на основе некоторой вводимой пользователем информации. Скажу честно, изначально это был гневный пост. Раздражение вызвала полученная по личным каналам информация о том, что представители одного из таких сервисов заходят к главным врачам лечебных учреждений города, в котором я проживаю, и пугают прокуратурой и наказанием за нарушение закона «О персональных данных» в случае отказа от подписки на такой сервис. Но вмешался случай — в процессе написания статьи возникли неотложные дела. И вся готовая на тот момент писанина была отправлена в черновики на неделю. За это время пар немного выпустился и сейчас я постараюсь спокойно объяснить почему такие сервисы не обеспечат надлежащее качество внутренней документации по защите персональных данных, расскажу о других проблемах таких порталов и в конце дам ссылку на некоторую сборную солянку тех же самых документов.

        image
        Читать дальше →
      • Подборка материалов для начинающего разработчика игр на JavaScript

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

          Данные материалы не претендуют на то, чтобы показать «как надо делать», они лишь помогут наглядно понять, что и как работает, а вот как правильно это сделать — решит только сам разработчик. Однако, кого-то эти материалы могут замотивировать на дальнейшую работу, так как они достаточно наглядны и объясняют простоту создания игр на JavaScript.
          Читать дальше →
        • Как создать свой собственный Dependency Injection Container

          • Translation
          • Tutorial
          Привет всем!
          Это вольный перевод статьи How to Build Your Own Dependency Injection Container.
          Т.к. это мой первый перевод для хабра, прошу указывать на ошибки, неточности.

          Как создать свой собственный Dependency Injection Container.


          Поиск “dependency injection container” на packagist на данный момент выдает более 95 страниц результата. С уверенностью можно сказать, что это особое “колесо” уже изобретено.

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

          В этой статье мы собираемся учиться делать простой dependency injection container пакет. Весь написанный в статье код плюс PHPDoc аннотации и unit-тесты с 100% покрытием доступны на GitHub. Все это так же добавлено на Packagist.
          Читать дальше →
        • DevTips: Советы веб-разработчику (49-64)

          • Translation
          • Tutorial
          Привет, Хабр! В этот прекрасный пятничный день предлагаем вам ознакомиться с очередной частью цикла переводов советов для веб-разработчиков. Предыдущие части: 1-16, 17-32, 33-48.

          Содержание:

             49   Циклическое переключение между панелями при помощи шорткатов
             50   Проверка и активация CSS media queries, а также нахождение этих правил в коде
             51   Предустановка разрешения нового устройства
             52   Улучшения полоски хлебных крошек в панели Elements
             53   Печать стектрейса в консоли
             54   Детектирование долгих фреймов (не путать с iframe)
             55   Продвинутая фильтрация запросов в панели «Network»
             56   Поиск по проекту с возможностью указания файла
             57   Новый экспериментальный редактор раскладки страницы
             58   Дублирование DOM-элементов
             59   Просмотр скриншотов поведения страницы
             60   Редактирование html-кода в панели «Console»
             61   Простые клавиатурные трюки для управления панелей «Стили»
             62   Выбор цвета, сгенерированного палитрой
             63   Инкремент и декремент чисел в DOM-атрибутах
             64   Сетевые запросы в панели «Timeline»
          Читать дальше →
          • +20
          • 35.2k
          • 2
        • Лоукост VDS хостинг в России. Возможно ли?

            Айхор

            Впечатлившись успехами американского хостера DigitalOcean (чего уж скрывать), мы в 2014 году решили создать недорогой и качественный VDS хостинг в России. На тот момент в нашем распоряжении был небольшой «дата-центр» из 4 стоек, располагавшийся в здании бывшего общежития, а в качестве системы охлаждения использовалось две недорогие сплит-системы. Канал на 100 мегабит, 2 древних маршрутизатора Cisco и сотня относительно новых серверов. Было бы смешно обещать клиентам хорошее качество с таким Starter Kit-ом. Но мы решили постараться достигнуть своей цели. Попробуем дать ответ на заголовок данного поста, и параллельно расскажем о нашем опыте создания лоукост хостинга.
            Читать дальше →
          • Чему мы научились, разрабатывая backend

              imageРазработка Parallels Access потребовала создания геораспределенного сервиса, позволяющего безопасно устанавливать связь между компьютерами и мобильными клиентами пользователей в различных точках земного шара. Команда, которая над ним трудится, хочет поделиться полученным опытом в форме цитат, чтобы облегчить участь тем, кто только планирует создание своего клиент/серверного продукта, и погрузить в ностальгию профессионалов, имеющих за спиной дюжину успешных проектов:
              Читать дальше →
            • Продолжаем бороться с frontend-рутиной

                image

                Прошло полгода с последней новости о TARS на хабре.

                Напомню, что TARS — это сборщик html-верстки, основанный на gulp, в помощь любому frontend-разработчику (или даже целой команде), для создания проектов любой сложности. За последние шесть месяцев было закрыто 88 issue, выпущено 7 версий, появился CLI, так вышло, что с yeoman’ом отношения не сложились, поэтому появилась своя версия. TARS переехал в свой новый дом на github, обзавелся командой из 4 разработчиков + небольшой армией фанатов. Кстати, огромное вам спасибо за мгновенные фидбеки после релизов и не только. TARS был внедрен в нескольких вебстудиях России и за рубежом. Сборщик научил компонентному подходу не один десяток разработчиков, привлек в ряды frontend’еров тех, кто боялся всей рутины верстки. В общем, появилось много всего нового, и об этом хотелось бы рассказать.
                Подробности
              • 5 основных анти-паттернов системного администрирования

                Введение


                Эта статья – скорее из разряда «для самых маленьких», чем «для умудренных опытом», но она призвана повышать профессиональную культуру системных администраторов.
                В силу специфики работы мне «по наследству» достается самый разнообразный облачный ад, который приходится разгребать, оптимизировать, приводить в чувство и делать прозрачным и красивым. Эти заметки, пожалуй, иллюстрация к тем моментам, которые вообще недопустимы в системном администрировании.
                В причинах, которыми порождаются эти анти-паттерны, можно разбираться очень долго: дедлайны, законы и темпы бизнеса, да и просто идиотизм, наконец. Но цель статьи другая. Мне бы хотелось породить конструктивную дискуссию. А вот уже её результаты и являются основной целью статьи.
                Читать дальше →
              • Как стать кукловодом или Puppet для начинающих

                • Tutorial
                Здравствуйте.
                image
                Этот топик открывает цикл статей по использованию системы управления конфигурацией Puppet.

                Что такое система управления конфигурацией?


                Предположим, что у вас есть парк серверов, выполняющих различные задачи. Пока серверов мало и вы не растёте, вы легко настраиваете каждый сервер вручную. Устанавливаете ОС (может быть, автоматизированно), добавляете пользователей, устанавливаете софт, вводя команды в консоль, настраиваете сервисы, правите конфиги ваших любимых текстовых редакторов (nanorc, vimrc), выставляете на них одинаковые настройки DNS-сервера, устанавливаете агент системы мониторинга, настраиваете syslog для централизованного сбора логов… Словом, работы довольно много и она не особенно интересна.
                Как спастись от рутины?
              • Статические члены класса. Не дай им загубить твой код

                • Translation
                Давно хотел написать на эту тему. Первым толчком послужила статья Miško Hevery "Static Methods are Death to Testability". Я написал ответную статью, но так и не опубликовал ее. А вот недавно увидел нечто, что можно назвать «Классо-Ориентированное Программирование». Это освежило мой интерес к теме и вот результат.

                «Классо-Ориентированое Программирование» — это когда используются классы, состоящие только из статических методов и свойств, а экземпляр класса никогда не создается. В этой статье я буду говорить о том, что:
                • это не дает никаких преимуществ по сравнению с процедурным программированием
                • не стоит отказываться от объектов
                • наличие статических членов класса != смерть тестам

                Хотя эта статья про PHP, концепции применимы и к другим языкам.
                Читать дальше →
              • Основы BASH. Часть 1

                • Tutorial
                Безусловно, все те кто общается с ОС Linux хоть раз да имели дело(во всяком случае слышали точно) с командной оболочкой BASH. Но BASH не только командная оболочка, это еще и превосходный скриптовый язык программирования.
                Цель этой статьи — познакомить поближе юзеров с bash, рассказать про синтаксис, основные приемы и фишки языка, для того чтобы даже обычный пользователь смог быстренько написать простой скрипт для выполнения ежедневной(-недельной, -месячной) рутинной работы или, скажем, «на коленке» наваять скриптик для бэкапа директории.
                Читать дальше →
              • Изучение Node.js от начала до конца на практике. Часть 1

                Предыстория


                Различной документации по Node.js его модулях огромное количество, всякого рода готовых решений тоже хватает, но начав писать сайт сталкиваешься с проблемой: «А с чего начать?». Хочу вам рассказать свой опыт изучения Node.js на практике. Задача стоит довольно простая и понятная — GPS Трекер с интернет сервисом, отображающим наши передатчики на карте, рисующим маршрут перемещения и т.д., на сколько разгуляется фантазия. Проект не коммерческий и пишется во благо человечества для себя.
                Читать дальше →
              • Не только Яндексу. Микроразметка на крупнейших сайтах рунета: зачем ею пользуются и почему она пригодится и вам

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

                  Теперь мы решили показать, как микроразметка участвует в жизни существующих сайтов: сделали обзор всех возможностей, которые она дает интернет-магазинам, сайтам СМИ и видеохостингам, и узнали, насколько они пользуются спросом у крупнейших проектов рунета.



                  Люди, которые отвечают за разработку и всю техническую часть таких сайтов, как Holodilnik.ru, Ozon.ru, Lenta.ru, Interfax.ru и Ivi.ru, ответили на вопросы о том, как на практике происходит внедрение микроразметки и каких результатов она позволяет добиться. А мы со своей стороны рассказали, какие типы мы бы порекомендовали таким сайтам и для чего.

                  Читать дальше →
                  • +45
                  • 104k
                  • 9
                • Делаем вебсокеты на PHP с нуля

                  Некоторое время назад я выбирал библиотеку для работы с вебсокетами. На просторах интернета я натыкался на статьи по интеграции node.js с yii, а почти все статьи о вебсокетах на хабре ограничивались инструкциями к тому, как использовать phpdaemon.

                  Я изучал библиотеки phpdaemon и ratchet, они достаточно монструозны (причём используя ratchet для отправки сообщения конкретному пользователю рекомендовано дополнительно использовать wamp). Мне не совсем было понятно для чего использовать таких монстров, которые требуют установку других монстров. Почитав исходники этих, а также других библиотек, я разобрался как всё устроено и мне захотелось написать простой вебсокет-сервер на php самостоятельно. Это помогло мне закрепить изученный материал и наткнуться на некоторые подводные камни, о которых я не имел представления.

                  Так я решил написать необходимый для меня функционал с нуля.

                  Получившийся код и ссылка на демонстрационный чат в конце статьи.
                  Читать дальше →
                • Делаем вебсокеты на PHP с нуля. Часть 2. IPC

                    После написания моей предыдущей статьи Делаем вебсокеты на PHP с нуля я понял, что у сообщества есть некоторый интерес к поднятой мною теме.

                    В прошлой статье я обещал, что опишу:
                    • запуск нескольких процессов для обработки соединений
                    • межпроцессное взаимодействие
                    • разделение процессов мастер-воркер
                    • проксирование вебсокетов с помощью nginx
                    • запуск из консоли
                    • интеграция с вашим фреймворком на примере yii
                    • демонстрация


                    И, как обычно, — получившийся код и ссылка на демонстрационный чат в конце статьи.
                    Читать дальше →
                  • WebSocket чат на symfony2 в 100 строк

                      Привет Хабр!
                      Недавно я разработал чат на вебсокетах для своего сервиса http://internetsms.org/chat.
                      При реализации, я столкнулся с тем, что в интернете большинство чатов сделаны с использованием повторяющихся ajax запросов, которые проверяют новые сообщения по заданному промежутку времени. Такой подход для меня был неприемлем, т.к при наплыве пользователей, нагрузка на сервер вырастет экспоненциально. На самом деле, есть более интересные варианты реализации:
                      Long polling
                      Клиент отправляет на сервер «долгий» запрос, и при наличии изменений, сервер отправляет ответ. Таким образом, число запросов снижается. Кстати, эта технология используется в Gmail.
                      Web sockets
                      В html5 появилась встроенная возможность использовать WebSocket соединения. Парадигма запрос-ответ здесь вообще не используется. Между клиентом и сервером один раз устанавливается канал связи. На сервере работает один демон, который обрабатывает входящие соединения. Таким образом, нагрузки на сервер практически нет даже при большом количестве пользователей онлайн.
                      Читать дальше →
                    • Почему ИТшнику стоит стать ИПшником и почему не стоит регистрировать ООО

                        В этой статье даются ответы на нижеследующие вопросы, основываясь на личном опыте и опыте коллег.

                        1. Почему стоит начать работать «в белую»
                        2. Почему на начальном этапе ИП лучше ООО
                        3. Что делать, если партнёров несколько

                        Если вы – начинающий или уже опытный фрилансер и подумываете о работе «в белую», но ещё точно не определились с вопросами «Стоит ли оно того?» и «ИП или ООО?», вэлком
                        под кат