Как стать автором
Обновить
60
0
Bohdan Rykhal @ganjar

Пользователь

Отправить сообщение

Интерактивная консоль с автодополнением на PHP

Время на прочтение4 мин
Количество просмотров7.7K
В этой маленькой статье я покажу, как использовать в своём PHP-скрипте консоль с автодополнением по нажатию Tab. Из подобных статей на хабре нашёл только статью от CKOPOBAPKuH, и у неё несколько другое направление, хотя суть — та же.

На самом деле, никакой магии тут нет, из сложностей — сформулировать для себя, как должна работать ваша консоль. Поэтому минимум слов, минимум кода, только самое необходимое.

Есть вопрос: можно ли (и если можно, то как) сделать свою консоль с командами и подсказками на PHP.
Есть ответ: можно, но соответствующее расширение (readline) для PHP доступно только на Linux, увы.

Читать далее

Транслируем видеопоток с IP-камеры с помощью WebRTC

Время на прочтение9 мин
Количество просмотров264K
Решение задачи онлайн-вещания с IP-камеры, вообще говоря, не требует применения WebRTC. Камера сама является сервером, обладает IP-адресом и может быть подключена напрямую к маршрутизатору с целью раздачи видео-контента. Так зачем же применять технологию WebRTC?

image

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

Захват видео с сетевых камер, часть 1

Время на прочтение8 мин
Количество просмотров102K
Сетевые видеокамеры постепенно вытесняют аналоговые, хоть и стоят они сейчас гораздо дороже. Сетевые обладают рядом очевидных приемуществ:
  • нет необходимости в отдельном регистраторе или плате захвата;
  • помехоустойчивость;
  • простая интеграция в существующую сеть;
  • нет ограничения по расстоянию;
  • наличие камер высокого разрешения;
  • просмотр камеры прямо с самой камеры по http;
  • наличие всевозможных настроек;
  • и др.

Нас интересует способ получения изображений с таких камер, для этого надо знать а как вообще они их передают? На наше счастье камеры используют существующие стандарты, а не то, что взбредёт в голову китайскому разработчику. Подавляющее большинство камер используют один или несколько способов передачи видео, это в основном Motion JPEG по HTTP, Motion JPEG по RTSP или H264 по RTSP. Также многие камеры могут передавать звук, но он нас не интересует сейчас.

В этой статье я рассмотрю эти способы передачи изображений с сетевых камер, а также приведу пример захвата таких изображений всё на том же Python'е.
Читать дальше →

Как была взломана Gamma International

Время на прочтение12 мин
Количество просмотров87K
image

3 августа в сабреддите /r/Anarchism некто пользователь PhineasFisher создал тред, в котором сообщил о том, что ему удалось украсть 40 гигабайт различных данных компании Gamma International. Возможно, подобная история могла оказаться не столь громкой, если бы не бизнес, которым занимается эта европейская фирма — создание и продажа программных средств для взлома и скрытой слежки (а иными словами — самой настоящей малвари), заказчиками которых обычно выступали государственные структуры. Через несколько дней после первого сообщения взломщик выложил длинный рассказ о том, как ему удалось проникнуть на сервера Gamma International и что удалось там найти.

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

Можно ли верить своим глазам? (Unicode в именах файлов)

Время на прочтение2 мин
Количество просмотров32K
Несколько дней назад один из наших пользователей прислал образец (SHA1: fbe71968d4c5399c2906b56d9feadf19a35beb97, определяется как TrojanDropper:Win32/Vundo.L). Это троян для фишинга с сайтов vk.com и vkontakte.ru, запросы на которые перенаправляются на 92.38.209.252 необычным способом.

Обычный метод перенаправления трафика — добавить запись в файл hosts, который находится в папке %SystemRoot%\system32\drivers\etc. Однако, когда мы открываем этот файл на заражённом компьютере, то там нет никаких записей для vk.com и vkontakte.ru:


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

mysqlnd — проводник между PHP и MySQL

Время на прочтение16 мин
Количество просмотров66K


Расширение mysqlnd появилось ещё в PHP 5.3, но до сих пор малоизвестно среди разработчиков. Однако оно незаменимо, если ваша система основана на MySQL. Если вы хотите узнать, почему это расширение так важно, что оно собой представляет, как его использовать и какие оно даёт преимущества — читайте статью.
Читать дальше →

RocksDB сервер – быстрое key-value хранилище для SSD накопителей

Время на прочтение5 мин
Количество просмотров39K
RocksDB RocksDB – постоянное хранилище «ключ-значение» для быстрых накопителей. Основное ее предназначение — хранение данных на flash дисках.

Узким местом в производительности часто является обращение к БД.
Эта проблема может решаться по разному.
Использование кэша решает проблему производительности, но существенно усложняет архитектуру программы. Графовые базы данных выходят из ситуации за счет оптимальных для данной задачи алгоритмов. Другим типом решений являются хранилища, достигающие высокой производительности за счет использования быстрого носителя.
В последнее время появилось много NoSQL хранилищ полностью хранящих данные в памяти. Но память все еще стоит дорого и ее объем ограничен. Увеличение памяти за счет шардинга опять таки упирается в стоимость.
Логичным выходом из ситуации было бы использование SSD дисков. Они имеют относительно невысокую стоимость и при этом вполне небольшое время отклика.

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

Легальный Clickjacking ВКонтакте

Время на прочтение1 мин
Количество просмотров117K
Поговорим о виджете для авторизации.

Нам говорят, что:
С помощью виджета для авторизации Вы можете максимально просто предоставить пользователям возможность авторизовываться на Вашем ресурсе.

Также, нам говорят, что:
В результате авторизации виджет возвращает следующие поля: uid, first_name, last_name, photo, photo_rec, hash.

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

Теперь любой сайт может узнать адрес вашей страницы в VK?

Время на прочтение2 мин
Количество просмотров169K
Наткнулся на сервис позволяющий разместить на своём сайте js-код, который определяет ID посетителя без авторизации. Пользователь об этом совершенно не догадывается, т.к. определение ID происходит при загрузке любой страницы сайта без всяких вопросов об авторизации.

Для маркетинга это открывает широкие возможности, но никак не вписывается в мои представления о безопасной передаче персональных данных.

Т.е. например, допустим, занесло вас на какой-то порно-сайт, а через полминуты в контакте бот пишет вам в ЛС или на стене предложение приобрести рекомендуемый именно вам товар или услугу в соответствии с разделами, которые вы посещали на сайте, или в соответствии с поисковыми запросами, через которые вы попали на этот сайт.

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

Создатели сервиса утверждают: «Никакого взлома или иных противоправных действий сервис не осуществляет. Мы идентифицируем заходящего человека и накапливаем открытую информацию.». Но я считаю незаконным сам факт идентифицикации. Поправьте меня если я не прав.

Ретаргетинг вконтакте работает похожим образом, но он не даёт доступ к профилям попавшим в группу ретаргетинга.

Может найдётся кто-то среди хабра-специалистов по вэб-безопасности кто сможет осветить эту тему в деталях?

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

Автоматическое определение пола по имени

Время на прочтение3 мин
Количество просмотров24K
Продолжая рассказывать о технологиях, которые используются в нашем сервисе email-маркетинга Pechkin-mail.ru, мы просто обязаны упомянуть об автоматическом определении пола подписчика по имени. Еще в 2007 году, разрабатывая сервис sms-рассылок, мы очень хотели реализовать возможность автоматического подставления окончаний в прилагательные “Уважаемый”, “Дорогой” и так далее. Обычно такая подстановка осуществляется на основании дополнительного поля в адресной базе клиента. Однако, как нам кажется, это полный отстой.
На это есть 3 причины:
  1. заставлять подписчика задавать свой пол глупо (чем больше полей в форме, тем ниже вероятность ее заполнения)
  2. определять вручную — долго, а значит дорого
  3. от ошибок человек не застрахован ровно так же, как и машина.


Но мы не лингвисты, поэтому реализовать такой модуль было бы слишком сложно для нас, да и функция “не первой необходимости”. Но недавно, работая над склонениями текстов бесконечных актов, договоров и прочих юридических документов, мы вспомнили об используемом нами уже 2 года сервисе Морфер. Это прекрасный лингвистический сервис, специализирующийся на русском языке и позволяющий склонять по падежам слова, целые предложения, числительные, а также получать текст из цифр. В общем, потрясающая разработка всего одного человека — Сергея Слепова.
Подробнее о реализации функции определения пола на нашем сервисе

Анализ сетевого трафика на сервере с помощью tshark

Время на прочтение11 мин
Количество просмотров81K
tshark

В практике системного администрирования довольно часто приходится cталкиваться со сложными ситуациями, в которых не помогают ни инструменты сбора статистики (например, netstat), ни стандартные утилиты на основе протокола ICMP (ping, traceroute и другие). В таких случаях часто используются специализированные диагностические утилиты, дающие возможность «слушать» сетевой трафик и анализировать его на уровне единиц передачи отдельных протоколов. Они называются анализаторами трафика, а на профессиональном жаргоне — снифферами. С их помощью можно, во-первых, локализовывать сетевые проблемы и более точно их диагностировать, а во-вторых — обнаруживать паразитный трафик и выявлять в сети зловредное ПО.

Особенно полезными оказываются анализаторы трафика в случаях, когда сетевое ПО плохо документировано или использует собственные закрытые протоколы.
Читать дальше →

Онлайн вещание через Nginx-RTMP: несколько готовых рецептов

Время на прочтение5 мин
Количество просмотров155K
Недавно я наткнулся на топик "Сервер онлайн-вещаний на базе nginx" о замечательном модуле Романа Арутюняна (@rarutyunyan) для nginx: nginx-rtmp-module. Модуль очень прост в настройке и позволяет на основе nginx создать сервер публикации видеозаписей и живого вещания.

Про сам модуль можно прочитать на его странице на GitHub, я же хочу привести несколько простых примеров использования. Надеюсь, топик поможет новичкам в видеоделах (таким как я).

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

10 самых распространённых ошибок при программировании на JavaScript

Время на прочтение10 мин
Количество просмотров156K


Сегодня JavaScript лежит в основе большинства современных веб-приложений. При этом за последние годы появилось большое количество JavaScript-библиотек и фреймворков для разработчиков Single Page Application (SPA), графики, анимации и даже серверных платформ. Для веб-разработки JavaScript используется повсеместно, и поэтому качество кода обретает всё большее значение.

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

Нововведения в PHP 5.6 beta 3

Время на прочтение2 мин
Количество просмотров18K


Так как PHP — развивающийся язык, то я расскажу об уже реализованных возможностях в третьем бета релизе версии 5.6. По сути, эта публикация — дополнение к предыдущей: "Функции в PHP 5.6 — что нового?".
Читать дальше →

Badoo PHP Code Formatter. Теперь в open source!

Время на прочтение13 мин
Количество просмотров28K
Несколько лет назад компания Badoo начала значительно расти по числу сотрудников, с 20 до 100 и более. Это потребовало серьезной перестройки многих процессов, касающихся разработки. Одна из проблем, с которой мы столкнулись, — как заставить всех разработчиков следовать единому стандарту кодирования, чтобы весь наш код выглядел единообразно и был легко поддерживаемым?

Для решения этой задачи мы решили внедрить инструмент для форматирования кода, который умел бы следующее:

  1. выводить сообщения о несоответствии стандарту форматирования в виде списка, не трогая сам файл;
  2. автоматически исправлять все найденные проблемы с форматированием;
  3. уметь форматировать только часть файла (нам не нужно переформатировать репозиторий сразу целиком, чтобы не потерять историю).

Мы рассматривали два проекта, которые можно было бы взять за основу для написания такого инструмента — PHP Beautifier и PHP Code Sniffer. Первый умел форматировать код, но не умел печатать диагностику, а второй — наоборот, умел печатать диагностику, но не умел форматировать файлы. К сожалению, оба этих проекта, по нашей оценке, были не слишком пригодны для того, чтобы добавить в них недостающую нам функциональность, поэтому была написана новая утилита — phpcf (PHP Code Formatter). Уже в течение двух лет она работает как git pre-receive hook, настроенный на отклонение (!) изменений, которые не оформлены по нашему стандарту кодирования.

Наконец настало время открыть исходные тексты нашей утилиты для широкой публики: github.com/badoo/phpcf
Читать дальше →

Джентльменский набор тестировщика по версии ZeptoLab

Время на прочтение4 мин
Количество просмотров55K

Вступление


Как-то раз мы съездили на конференцию SQA days, где мне довелось попасть на доклад «Джентельменский набор тестировщика». Хотелось бы продолжить эту тему и рассказать о своих тулзах, облегчающих жизнь тестировщика.

Справедливости ради стоит отметить, что у нас, в Zeptolab, работает всего несколько QA Lead’ов, а всю основную работу проделывают аутсорсеры. Тем не менее, на нашу долю приходится обширный список обязанностей, требующий глубоких знаний о продукте, работе различных sdk и методов диагностики работы приложений.

Чтобы сильно не раздувать статью, я ограничусь лишь небольшим описанием работы инструментов. Если у вас возникнут вопросы — можем обсудить их в комментариях.
Читать дальше →

Blink: беспроводная система наблюдения для дома и офиса

Время на прочтение2 мин
Количество просмотров30K


Различные компании создавали и создают системы наблюдения для дома/офиса, причем такие системы могут быть очень разными. Недорогие и очень дорогие, профессиональные и любительские, если так можно выразиться.

Не так давно анонсирована еще одна система наблюдения, разработчики которой решили сделать упор на простоте установки/настройки системы, а также на небольшом размере самих камер/датчиков. Эта система получила название Blink.
Читать дальше →

Домашнее видеонаблюдение «без осложнений»: обзор AdvoCam-HappyCam

Время на прочтение7 мин
Количество просмотров28K
Совсем недавно мы рассказывали о собственном производстве в городе Александров Владимирской области российской компании «Видеомакс», обладающей 17-летним опытом работы на рынке профессиональных систем видеонаблюдения. Здесь создаются профессиональные системы видеонаблюдения и топовые видеорегистраторы AdvoCam. Немногие российские бренды на рынке регистраторов могут похвастаться «личным» заводом. И, вот, сотрудники «Видеомакс» предложили нам ознакомиться с новым уникальным продуктом компании – миниатюрной бытовой системой видеонаблюдения (проще говоря, IP-камерой) AdvoCam-HappyCam, она же Happycam-SD1 W. По словам представителей компании «Видеомакс», модель отличается от доступных на нашем рынке других многочисленных IP-камер несколькими ключевыми моментами. Во-первых, настройка камеры предельно простая. Настолько простая, что с ней «справится даже ваша бабушка». Во-вторых, по заявлениям производителя, в камере задействована некая мега-технология ночной съемки, которую используют даже американские военные (где, как именно непонятно, тем не менее). За счёт чего реализуется крайне высокое качество ночной съёмки.

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

Несколько интересностей и полезностей для веб-разработчика #24

Время на прочтение5 мин
Количество просмотров59K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Webhook


image

Webhook — это платформа для создания сайтов. Важно не путать со статическими генераторами, потому что это именно «CMS builder». Проект успешно завершил кампанию на Kickstarter 14 мая этого года, где смог собрать сумму в два раза большую, чем было необходимо. А буквально недавно состоялся релиз первой версии продукта. Webhook построен с использованием NodeJS, Grunt и Firebase для реалтайма, работает на Windows, Linux и Mac, внутри целая система виджетов со множеством вариаций на выходе, «Django-like templating» с помощью Swig JS, кроссплатформенная админ панель и еще целый ряд плюсов.
Читать дальше →

Балансировка статических файлов средствами nginx

Время на прочтение4 мин
Количество просмотров29K
Представим, что у нас есть приложение/сайт с достаточно высокой нагрузкой.

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

Как поступить, когда на сервер ежесекундно приходит большое количество народу? Ответ прост — nginx.

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

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность