Search
Write a publication
Pull to refresh
10
0
Руслан @Sect0R

PHP, Angular, VueJS

Send message

Как устроена MySQL-репликация

Reading time12 min
Views46K
Андрей Аксёнов

Как устроена MySQL-репликация


Андрей Аксенов (Sphinx), shodan


Мой доклад предназначен для тех людей, которые знают слово «репликация», даже знают, что в MySQL она есть, и, возможно, один раз ее настроили, 15 минут потратили и забыли. Больше про нее они не знают ничего.


Мы немного пройдемся по теории, попытаемся объяснить, как это все работает внутри, а после этого вы с утроенными силами сможете сами нырнуть в документацию.


Что такое репликация, в принципе? Это копирование изменений. У нас есть одна копия БД, мы хотим с какой-то целью еще одну копию.


Репликация бывает разных видов. Разные оси сравнения:


  • степень синхронизации изменений (sync, async, semisync);
  • количество серверов записи (M/S, M/M);
  • формат изменений (statement-based (SBR), row-based (RBR), mixed);
  • теоретически, модель передачи изменений (push, pull).

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

Необычные jQuery и CSS селекторы

Reading time6 min
Views22K
Селекторы имеют очень важное значение. Большинство JQuery методов требуют выбора элементов для использования. К примеру, перед тем как прикрепить событие click к кнопке, нужно выбрать саму кнопку.

Большинство JQuery селекторов основаны на существующих CSS селекторах, поэтому вы скорее всего хорошо разбираетесь в них. Тем не менее, есть ряд селекторов, которые используются не часто. В этой статье я остановлюсь на менее известных, но все же важных селекторах.

Давайте перейдем к списку!

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

Просмотр запросов к веб серверу apache в реальном времени

Reading time4 min
Views21K
Нагрузка на сервер является важным звеном администрирования веб сервера, отслеживание запросов помогает быстро искать ошибочные запросы и устранять их раньше чем они вернуться к вам со статистикой вебмастера. По умолчанию в конфигурационном файле веб сервера апаче закоментрировано определение хоста в dns что в свою очередь еще больше усложняет понимание того, что приходит на сайте. Упростить все это удалось написанием скрипта отображающего все запросы к веб серверу в режиме реального времени. Сохраняя несколько сотен запросов удалось посчитать время загрузки. Это процент от реально прошедшего времени суммы времени потраченных на вывод ресурсов. Удобный вывод времени затраченного на выполнение каждой страницы сайта стал незаменим в поиске слабых мест. Небольшой массив со списком шаблонов поисковых систем позволил выделить их отдельным цветом в ленте запросов.

Как получить стажировку

Reading time12 min
Views45K
Доброго времени суток! Приближается сезон подачи заявок на стажировку в зарубежные компании и поэтому я хотел бы представить вниманию Хабрахабра статью Эрика Янга «How to Get an Internship». Она охватывает довольно большой объем подготовки к стажировке в рамках одного поста. Я старался снизить количество ошибок и опечаток, но таковые наверняка найдутся, поэтому пишите в личные сообщения.

Где-то год назад я написал в блог заметку о моем опыте участия в различных стажировках. Благодаря этому посту я стал заметнее для рекрутеров и устроился на работу в Google.


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



В этом посте я поделюсь своей стратегией по прохождению интервью для стажировки. Я давненько хотел написать что-то подобное, но боялся, что пост будет похож на "универсальный ответ", потому что большАя часть моего успеха — это удача.

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

Учимся проектировать на основе предметной области (DDD: Domain Driven Design)

Reading time8 min
Views222K

1. Введение



В данной статье я хотел бы рассказать об этих трёх буквах, постоянно находящихся на слуху, но для многих являющихся тайной за семью печатями, а так же привести ряд ресурсов, с которыми неплохо было бы познакомиться при желании продолжить развитие в проектировании на основе предметной области (DDD: Domain Driven Design).


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

Как использовать UrlManager для настройки роутинга и создания «дружелюбных» URL

Reading time13 min
Views42K

Здравствуйте, дорогие читатели! Я продолжаю цикл статей о том, как мы разрабатывали нетипичный, крупный проект с использованием Yii2 framework и AngularJS.

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

В этом материале речь пойдет о настройке роутинга и создании URL при помощи urlManager для каждого модуля по отдельности. Также разложу по полочкам процесс создания собственных правил для специфических URL, с помощью написания класса, который расширяет UrlRuleInterface. В завершении опишу, как мы реализовали генерацию и вывод мета тегов для публичных страниц сайта.

Самое интересное под катом.
Читать дальше →

Prometheus — практическое использование

Reading time6 min
Views89K
Одной из важнейших задач при разработке приложений с микросервисной архитектурой является задача мониторинга. Слежение за состоянием сервисов и серверов позволяет не только вовремя реагировать на неисправности, но и анализировать их работу. Наличие такой информации трудно переоценить, ведь она предоставляет дополнительные возможности по улучшению производительности и качества работы Вашего ПО.

image

К счастью, существует множество решений задачи мониторинга, как платных, так и бесплатных. Я же хочу поделиться опытом практического использования open source системы мониторинга Prometheus.
Читать дальше →

Инструмент анализа скорости PHP-функций

Reading time13 min
Views20K
В последнее время обращал внимание на материалы о производительности и замерах скорости функций PHP. После анализа ряда материалов был сделан следующий вывод. Сравнений довольно много, но все замеры проводятся с разными входными условиями, вывод результатов тестирования у каждого решения свой, не говоря уже о том, если появится желание проверить тесты в своей среде, то придется копипастить куски кода.

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

Crosswalk Project — замена Android WebView. Развитие проекта

Reading time4 min
Views14K


Эта заметка-обзор продолжит короткий цикл из двух статей, посвященных интересному проекту под названием Crosswalk. В ней я расскажу о том, что изменилось в проекте Crosswalk с версии 14.43.343.17 и стало ли удобнее им пользоваться теперь.


Напомню, что Crosswalk Project — это runtime построенный на технологиях open source для HTML приложений. Основой для Crosswalk Project служит Google Chromium. Crosswalk Project также является open source проектом и распространяется под BSD License. В общем, если вы всё ещё поддерживаете ранние версии Android, то это неплохая замена для системного Android WebView.


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

Выбираем html-парсер для Apache.JMeter

Reading time11 min
Views9.4K
Среднее качество полноты извлечения ссылок на встроенные ресурсы html-парсерами Apache.JMeter
Среднее качество работы парсеров (для семи сайтов)

Предлагаю:

  • посчитать среднее качество полноты извлечения ссылок на встроенные ресурсы html-парсерами Apache.JMeter;
  • проверить правда ли извлечение ссылок в Apache.JMeter 3.0 стало более полным;
  • испытать в деле плагин CsvLogWriter.

Как гласит народная мудрость: Верить верь, но…
проверь

Простая система демонов для Yii2

Reading time14 min
Views33K
В данной статье постараюсь раскрыть основные нюансы реализации системы демонов для PHP и научить консольные команды Yii2 демонизироваться.

Последние 3 года я занимаюсь разработкой и развитием достаточно большого корпоративного портала для одной группы компаний. Я, какие и многие, столкнулся с проблемой, когда решение задачи, которую требует бизнес, не укладывается ни в какие таймауты. Сделайте отчетик в excel на 300 тыс. строк, отправьте рассылку на 1500 писем и так далее. Естественно, такие задачи должны решаться фоновыми заданиями, демонами и crontab-ами. В рамках статьи я не буду приводить сравнение кронов и демонов, мы для решения подобных задач выбрали демонов. При этом важным требованием для нас стала возможность иметь доступ ко всему, что уже написано для бэкенда, соответственно, демоны должны быть продолжением фрейворка Yii2. По этой же причине нам не подошли уже готовые решения типа phpDaemon.

Под катом готовое решение для реализации демонов на Yii2, которое у меня вышло.
Читать дальше →

Онлайн чат для веб-сайтов: self-hosted/open source

Reading time2 min
Views13K
Прошло немало времени, прежде чем на сайте интернет-магазина нашей компании появился онлайн чат. До этого как-то удавалось обходиться функционалом тикет-системы osTicket и классической телефонной связи, руководствуясь логикой «тот кому надо купить, должен обладать неподдельным желанием это сделать». Но я сам начал сталкиваться с ситуациями, когда звонить и висеть на линии откровенно влом, а ждать ответа на почту слишком долго. Формат чата оказался той самой золотой серединой. Начинаешь диалог и раз в 5 минут, занимаясь своими делами, получаешь нужные тебе ответы от оператора на другой стороне. А по итогу можно отправить транскрипт себе на почту. Да простят меня все создатели и пиарщики комерческих веб-чатов… Первоклассный open source под катом.
Читать дальше →

Мониторинг проектов с помощью месенджера на примере Nagios и Telegram, с разбором факапов из жизни Highload 24x7

Reading time9 min
Views31K


Что будет под катом:

  • Базовые настройки Nagios в связке с Telegram.
  • Общая концепция нашего с коллегами мониторинга проектов.
  • Разбор граблей, на которые мы успели наступить при работе с этой системой.

Наша статья будет полезна для тех, кто:

  • Недоволен информативностью своего текущего мониторинга.
  • Испытывает ежедневную боль ниже спины с оповещениями о проблемах.

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

Stripe: сервис вашей мечты для автоматизации денежных переводов

Reading time9 min
Views116K

Имевшие дело с сервисом электронных платежей Stripe знают, что он отлично заточен под разработчиков. Его документация написана людьми для людей; есть хороший тестовый режим — полная копия реального, и для перехода на live-режим нужно только заменить ключи, не трогая API и не получая никаких сюрпризов; админка тестового режима — тоже полная копия боевого. В общем, Stripe — это хорошо, и я хочу посвятить эту статью базовым вопросам интеграции сервиса в e-Commerce-проект, объяснив процессы на конкретных и абстрактных примерах. Надеюсь, что мой опыт поможет всем, кто хочет попробовать Stripe на своём проекте.

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

Как сделать очередного бота в Telegram

Reading time5 min
Views47K

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



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

Подробности и пицца под катом

Уведомления в браузере и пример того, как их можно использовать с пользой

Reading time6 min
Views74K


Вероятно, вы все уже слышали про технологию «Веб-push» в составе Push API и Notifications API. Я уверен, что среди вас есть те, кто возлагает надежды на эту технологию, как на новый канал коммуникации с пользователем. И я не исключаю возможность, что данную статью будут читать основатели тех немногочисленных стартапов, которые всерьёз занялись окучиванием технологии «Веб-push» для рекламы и маркетинга. Сегодня я вам расскажу, о том как можно использовать данную технологию.
Читать дальше →

Юзабилити-тестирование: хотите ли вы узнать правду о своих пользователях?

Reading time9 min
Views14K

Общение с очередным респондентом. Кадр из к/ф Матрица (The Matrix, 1999)

Как вы знаете из наших прошлых постов, в Mail.Ru Group есть своя UX-лаборатория, которой более четырех лет. Сейчас в большинстве крупных IT-компаний либо уже есть направление UX-исследований, либо планируется его запуск. Наша лаборатория работает только с продуктами Mail.Ru Group, но мы решили сделать исключение и приоткрыли её двери для внешних компаний и проектов, знающих о ценностях UX-исследований, но пока не решившихся выделить бюджет на их проведение.

Для выбора внешнего «заказчика» мы распространили информацию о нашем конкурсном проекте в социальных сетях и устроили розыгрыш бесплатного юзабилити-тестирования. Победителем стала команда проекта service-centers.ru — это сайт для поиска и выбора сервисных центров по всей России.

В этом посте мы хотим рассказать тем, кто пока мало сталкивался с UX-тестами, как они должны проходить, как к ним готовиться и какую пользу они могут принести. Так что, возможно, идея «взглянуть глазами пользователя» на продукт поможет кому-то из читателей не наступать на одни и те же грабли.
Читать дальше →

Композитный сайт: технология Битрикс в каждую CMS

Reading time4 min
Views19K


Здрасте!
Поговорим про самое спорное телодвижение компании Битрикс — технологию «Композитный сайт».
Спорное оно потому, что ребята запатентовали технологию, которая, по моему мнению, не тянет даже на курсовую 3 курса профильной специальности.


Ну да ладно, это ж маркетологи.


В статье рассмотрены:


  • сама технология «Композитный сайт»
  • альтернатива данной технологии «CompoJax» (через ДЖ)
  • примеры кода, для той и другой технологии
  • пример внедрения CompoJax в любую CMS на примере WordPress

Все вкусности внутри, го под кат.


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

По ту сторону онлайн-консультанта

Reading time11 min
Views48K
image

Все видели окошко онлайн-консультанта в интернет магазинах. Оно в каком-то смысле стало стандартом, к нему все привыкли. Оно может помогать, может раздражать, но мало кто знает, что происходит с обратной стороны фразы “Здравствуйте! Чем я могу Вам помочь?”


А с обратной стороны (во всяком случае, в моем офисе) происходит Лена!


Гость: Добрый день! Чем я могу Вам помочь?
Лена: Добрый день! Чем я могу Вам… Твою мать!

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

Улучшение путей взаимодействия пользователя (user flow) через переходы по странице

Reading time9 min
Views18K

Пост является переводом статьи "Improving User Flow Through Page Transitions" со Smashing Magazine о создании плавных переходов. Автор этой статьи, Луиджи Де Роза, является фронт-энд разработчиком в EPIC. Далее повествование будет идти от лица автора статьи. Приятного чтения.

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

Information

Rating
Does not participate
Location
Беларусь
Date of birth
Registered
Activity

Specialization

Fullstack Developer, Database Architect
Lead
From 6,000 $
JavaScript
Vue.js
Node.js
PHP
Laravel
MySQL
Redis
Nginx
Docker
MongoDB