Как стать автором
Обновить
6
Карма
0
Рейтинг

Senior Full Stack developer

  • Публикации
  • Комментарии

Tarantool vs Redis: что умеют in-memory технологии

Блог компании Mail.ru GroupNoSQLАдминистрирование баз данныхTarantool

В этой статье я хочу сравнить Redis и Tarantool. У меня нет цели сделать громогласный вывод «Tarantool лучше!» или «Redis круче!». Я хочу понять их сходства и отличия, разобраться, для каких задач какую технологию выбрать. Потому что это очень близкие на первый взгляд вещи, и вопросы про их отличия я вижу часто.

Для этого мы посмотрим на технологии в трёх частях:

  • Вначале посмотрим глазами новичка. Что такое БД в памяти? Какие задачи они решают лучше дисковых БД?
  • Потом посмотрим архитектурно. Как обстоит вопрос с производительностью, надёжностью, масштабированием?
  • В третьей части лезем в технические вещи поглубже. Типы данных, итераторы, индексы, транзакции, ЯП, репликация, коннекторы.

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

Поехали!
Читать дальше →
Всего голосов 69: ↑67 и ↓2 +65
Просмотры16.1K
Комментарии 81

Новости

Показать еще

Как переход со стека Nginx+FPM на Swoole увеличил производительность PHP API на 91%

PHPNginxLaravel

Читая PHP-дайджест, мы в Evapps наткнулись на интересную новость — вовсю идёт голосование по [RFC] Fibers. В двух словах — это попытки внести немного асинхронности в монолитно-синхронное до сих пор выполнение PHP-кода. А там, глядишь, и до многозадачности недалеко. Но это пока лишь мечты. А в реальности, как оказалось, существует сервис, который УЖЕ создал многопоточность в PHP. Называется он Swoole. Кстати, в новом пакете Laravel — Laravel Octane — под капотом будет использоваться именно этот сервис, Swoole. Об этом рассказал создатель Laravel Тейлор во время презентации пакета.

Рассказывать о Swoole с нуля кажется бессмысленным, так как уже есть люди, которые не просто покрутили сервис на тестовом сервере, но и перевели на него свой проект, получили отличный результат, о котором и отчитались. Хотим с вами поделиться этим отчётом. Представляем перевод статьи основателя компании Appwrite Элдада Фукса Moving From Nginx+FPM to Swoole Has Increased Our PHP API Performance by 91%.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры5.5K
Комментарии 3

PHP 8 — пробуем новые возможности

Блог компании Mail.ru GroupРазработка веб-сайтовPHPПрограммированиеLaravel
Перевод

PHP 8 уже на этапе release candidate, версия RC 3 вышла 29 октября, а полноценный релиз назначен на 26 ноября. Так что пора взглянуть на новые возможности, которые нас ждут в PHP 8. График релизов можно посмотреть здесь. А официальное руководство по обновлению на новую версию лежит тут.
Читать дальше →
Всего голосов 62: ↑59 и ↓3 +56
Просмотры16.1K
Комментарии 50

Гугл-программисты. Как идиот набрал на работу идиотов

ПрограммированиеУправление разработкойУправление персоналомКарьера в IT-индустрии
В стародавние времена я, на постоянной основе, занимался техническими собеседованиями – отбирал кандидатов на должность программиста в компанию. У меня была простая, понятная, шикарная методика (не мной придуманная). Чувак сначала проходил длинное собеседование по куче разнообразных вопросов, потом решал несколько задач. На бумаге, как мы делали в ВУЗе.

Оглядываясь назад, понимаю – отбор действительно работал шикарно. Все, кого я тогда отобрал, стали уважаемыми в нашей деревне специалистами. Больше половины из них давно открыли собственный it-бизнес, в самых разных сферах – от 1С до разработки CRM-систем.

Вот этот опыт и замутил моё сознание. Настолько, что я решил поменять методику – подумал, что дело не в ней, а во мне. Я есть великий специалист по техническим собеседованиям.
Читать дальше →
Всего голосов 386: ↑297 и ↓89 +208
Просмотры159.9K
Комментарии 647

Работа с API Яндекс.Вебмастер

Разработка веб-сайтовЯндекс API
Из песочницы
Tutorial
Каждый, кто отслеживает изменения отношения Яндекса к его сайту, знает о таком полезном сервисе Яндекса, как Яндекс.Вебмастер, но не многие знают, что сейчас появилась возможность автоматизировать этот процесс при помощи взаимодействия с API.

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

Хотя документация по данному API на Яндексе существует, и даже снабжена примерами, лично я не смог «с разбегу» разобраться, что к чему. Поэтому, если вам также интересна эта тема, прошу под кат.
Читать дальше →
Всего голосов 12: ↑9 и ↓3 +6
Просмотры37.3K
Комментарии 8

Генерируем красивые картинки для социальных сетей

PHPПрограммирование
Из песочницы
Recovery mode


Код для генерирования именно этого изображения
$generator = new imgGenerator();
$textGenerator=new imgTextGenerator();
$textGeneratorTop=new imgTextGenerator();

$label=$textGeneratorTop
	->seTextShadow("#000000", 75, 1, 2, 2)
	->setText("Test Site","#ffffff",imgGenerator::position_center_top,"1/12",0 )
	->setBackground("#000000",'3%')
	->setFont($_SERVER["DOCUMENT_ROOT"]."/upload/fonts/fonts2_7/hinted-PTF55F.ttf");

$text=$textGenerator
	->seTextShadow("#000000", 75, 1, 2, 2)
	->setText("Морковь как двигатель прогресса человечества","#ffffff",imgGenerator::position_center_center,"1/7",array(0,'5%',0,'5%'))
	->setFont($_SERVER["DOCUMENT_ROOT"]."/upload/fonts/fonts2_7/hinted-PTF55F.ttf");

$generator
	->addText($text)
	->addText($label)
	->fromImg($_SERVER["DOCUMENT_ROOT"] . "/upload/dynamic/2016-08/15/carrot-big.jpg")
	->resizeFor("autodetect")
	->addOverlay(0.5,"#000000")
	->show();

Глядя на красивые картинки для соц. сетей, которые в последнее генерируют многие новостные (и не только) сайты — захотелось написать свой генератор.

Примеры картинок

Скрипт работает на PHP, с использованием модуля Imagick. Писать это на GD2 что-то я не решился.

Алгоритм работы предполагался такой:

  • Берем за основу картинку или цвет
  • Уменьшаем до нужного размера
  • Накладываем сверху полупрозрачный фон
  • Устанавливаем логотип
  • Добавляем надпись
  • Кешируем результат

Читать дальше →
Всего голосов 33: ↑23 и ↓10 +13
Просмотры14.8K
Комментарии 11

Создание видео трансляции на JS

Разработка веб-сайтов
Из песочницы
Tutorial
Доброго времени суток, дорогой хабрачитатель.
Сегодня я расскажу, как можно организовать прямую трансляцию изображения с веб-камеры с помощью HTML5/JS и NodeJS, а также PHP.

В статье наблюдается довольно большое количество кода. Также эта статья ориентирована скорей на начинающих веб разработчиков, чем на профессионалов.
Читать дальше →
Всего голосов 48: ↑43 и ↓5 +38
Просмотры29.3K
Комментарии 10

Управление GIT-ом через веб-консоль на PHP

Ненормальное программированиеPHP
Я люблю git. Я использую его во всех своих проектах. Поэтому я решил сделать веб-консоль для управления git-ом на PHP.

Читать дальше →
Всего голосов 49: ↑38 и ↓11 +27
Просмотры8.1K
Комментарии 30

LiveReload на Node.js

JavaScriptNode.JS

Что это такое?


LiveReload — это утилита, которая позволяет автоматически перезагружать страницу в браузере при изменение её кода и ресурсов(html, css, js, images, etc) на сервере. Кроме того LiveReload позволяет применять изменения в CSS и JavaScript без перезагрузки страницы.
Читать дальше →
Всего голосов 21: ↑18 и ↓3 +15
Просмотры42.7K
Комментарии 17

Эдвард Сноуден использовал дистрибутив TAILS

Информационная безопасностьOpen source
Когда Эдвард Сноуден впервые появился перед видеокамерой летом прошлого года, многие обратили внимание на его ноутбук с наклейками анонимайзера Tor и Фонда электронных рубежей. Сейчас стало известно, какая операционная система установлена на этом ноутбуке: защищённый дистрибутив Linux под названием TAILS (The Amnesic Incognito Live System) на основе Debian.


Раньше дистрибутив назывался Amnesia и базировался на ОС Incognito

Загрузив образ TAILS с диска или флэшки, мы сразу получаем все необходимые инструменты для безопасной работы в интернете: Tor запускается автоматически, GPG для шифрования почты, OTR-чат, парольный менеджер KeePassX и другие программы, многие из которых модифицированы для безопасности. Дистрибутив спроектирован таким образом, что не хранит никакой информации локально (и вообще не обращается к накопителю), чтобы защитить секретные данные в случае, если компьютер попадёт в руки врага, и обезопасить систему от вредоносного ПО. Оперативная память стирается перед завершением работы с помощью sdmem, чтобы злоумышленник не мог восстановить её содержимое с недавно выключенного компьютера. Графический интерфейс может подделываться под Windows XP, чтобы не вызывать подозрений у окружающих.
Читать дальше →
Всего голосов 94: ↑82 и ↓12 +70
Просмотры124.7K
Комментарии 39

HackerSIM: мечта Неуловимого Джо

Сотовая связь
В хакспейсе поселилась «симка всевластия».
Про мегафичу подмены любого номера написал на Хабре.

Анонс конкурса по социнженерным атакам с использованием HackerSIM

Заочный тур.
C 6 по 15 октября вы можете прислать в свободной форме модель угроз, которые возможны, если HackerSIM попадет в руки злоумышленника.
Приславшего материал с максимальной "hack value" ждет утешительный приз 10.000 рублей.

Очный тур.
16 октября, хакспейс «Нейрон». Начало в 19-00.
Каждому участнику предоставляется HackerSIM и в течении 3 часов он должен провести penetration test.
Участие индивидуальное или командное.
Приз — достойный.

Заявки на очный и заочный туры принимаются на почту hackersim@яндексточкару.
(Кому не терпится, у меня есть пара симок специально для хабрачитателей)

Помимо этого симка очень очень старается обеспечить анонимность своего владельца и конфиденциальность его разговоров:

  • скрывает реальный круг общения
  • маскирует местоположение, используя виртуальный номер
  • может искажать голос
  • принудительное использование шифрование
  • скрывает реальный IMSI

Читать дальше →
Всего голосов 30: ↑19 и ↓11 +8
Просмотры47.3K
Комментарии 19

HackerSIM: подделка любого телефонного номера. CTF по социальной инженерии

Информационная безопасность
«Народ не должен бояться своего правительства, правительство должно бояться своего народа»
«Privacy is ultimately more important than our fear of bad things happening, like terrorism.»


Уверены ли вы, что вам звонит тот, за кого себя выдает? Даже если высвечивается знакомый номер.

Недавно я обзавелся "хакерской симкой всевластия". Которая помимо лютой анонимности имеет фичу — подделка номера. Расскажу как это происходит.

Чак на своем телефоне, куда вставлена HackerSIM, набирает команду *150*НомерАлисы# и через секунду получает подтверждение, что номер успешно «подделан». Затем Чак звонит со своего телефона Бобу. Телефон Боба принимает вызов, и на нем высвечивается, что ему звонит… Алиса. Profit.

Далее события разворачиваются в зависимости от социнженерного (или чревовещательного) таланта Чака.

Я начал разыгрывать своих хороших знакомых.
Читать дальше →
Всего голосов 92: ↑58 и ↓34 +24
Просмотры163K
Комментарии 103

Material Design и AngularJS

JavaScriptHTMLAngular
Из песочницы
Ни для кого не секрет, что Google повсюду в своих продуктах внедряет так называемый material design. Как и любой другой стиль он имеет сторонников и противников. Не буду касаться этих споров. Если вам нравится данный подход, Google подготовил полную спецификацию и описание особенностей: Material Design.

Для любителей angularjs появилась библиотека с набором директив, реализующих графические компоненты и позволяющих создавать разметку в соответствии с принципами material design. О ней и пойдет рассказ.

Я постараюсь кратко показать некоторые особенности и недостатки, а также покажу небольшое приложение для демонстрации.

image
Читать дальше →
Всего голосов 37: ↑35 и ↓2 +33
Просмотры67.2K
Комментарии 20

Анатомия триггерных рассылок. Весь инструмент за 10 минут

Блог компании Carrot questИнтернет-маркетингПовышение конверсииКонтент-маркетинг
image

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

Какой смысл привлекать много посетителей, если большая их часть уйдет через несколько минут, а до покупки дойдут лишь 1-2%? Сначала стоит наладить удержание, убеждение и возвращение, а уже потом наращивать трафик. На этом успешные проекты и строят свою экономику. Главный инструмент, который поможет автоматизировать этот процесс — это триггерные рассылки.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры7.8K
Комментарии 2

Bootstrap 4 вышел в alpha версии

Веб-дизайнUsability
image

Те кто так или иначе связан с веб разработкой скорее всего знает что такое Bootstrap.
Лично я познакомился с фреймворком Bootstrap версии 2.x и он на меня произвел неизгладимое впечатление. Можно было без участия дизайнера получить вполне сносный интерфейс. Встроенный перфекционист ликовал. Можно ругаться, что интернет стал очень уж бутстраповым, но нужно отдать должное, парни, работающие над ним в целом молодцы и делают нужное, а то, что народ ленивый – проблема другая.

Сегодня день рождения этого замечательного фреймворка. В свой день рождения был объявлен Bootstrap 4.


Читать дальше →
Всего голосов 55: ↑52 и ↓3 +49
Просмотры89.9K
Комментарии 46

Пишем Telegram бота на Ruby в 10 строк

МессенджерыRuby
Tutorial

После выпуска Telegram Bot Platform многие задумывались о написании своего бота. Этот пост описывает минимальные шаги, необходимые для написания собственного бота на Ruby. Для этого потребуется только аккаунт в Telegram и машина с установленным Ruby на ней.
Читать дальше →
Всего голосов 38: ↑22 и ↓16 +6
Просмотры50.9K
Комментарии 35

Синхронизируем уведомления CI с Telegram

ПрограммированиеGoogle API
Из песочницы
Cегодня я хотел бы поделиться своим опытом синхронизации уведомлений Continuous Integration серверов (Bamboo, Jenkins, TeamCity и тп.) с бесплатным мессенджером от Павла Дурова — Telegram.

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

Для организации данной синхронизации мы будем использовать BOT API от телеграмма, Gmail API от Google, а также наш ubuntu сервер на Digital Ocean.
Читать дальше →
Всего голосов 10: ↑7 и ↓3 +4
Просмотры20.6K
Комментарии 7

Облако в штанах

Облачные вычисления

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

Рынок «облачных хранилищ» очень насыщен: есть как зарубежные решения, так и отечественные.

Например, одни из самых известных зарубежных это: Dropbox.com, GoogleDrive, Microsoft OneDrive
Из отечественных: Yandex.Диск, Облако Mail.ru

У каждого из вышеперечисленного есть как преимущества, так и недостатки.
Так, например, Dropbox бесплатно выдаст Вам всего 2Гб дискового пространства, что по сравнению с бесплатными 10Гб от Yandex.Диск явно меньше, но зато у Dropbox есть система контроля версий файлов, что для кого-то может оказаться очень важным.

Mail.Ru даст Вам 100Гб (давали даже 1Тб, если Вы устанавливаете их ПО, но вроде эту «халяву» прикрыли) но программное обеспечение не работает под консолью Linux, нет даже поддержки WebDAV.
(UPD.: В комментариях писали, что по адресу: https://webdav.cloud.mail.ru/ есть BETA-версия WebDAV, но как оно будет работать сейчас и как оно будет работать дальше — не известно. Используйте на свой страх и риск).
Для кого-то эти тонкости не важны, а кому-то принципиально необходимы, чтобы, например, делать в облако резервные копии своих фотографий с помощью командной строки домашнего роутера.
Так же если на MAIL.RU файлы загружать через web-морду, то работает ограничение на его максимальный объём: 2Гб, а если загружать с помощью родного клиента, то max размер файла может быть 32Гб. Критично это или нет — вопрос индивидуальный.

Лично я отношусь к той категории пользователей, которым нужно как можно больше бесплатного пространства для хранения и чтобы была возможность работать с хранилищем в Linux без графической оболочки. Большим плюсом будет наличие возможности подцепиться к этому хранилищу с мобильного устройства (смартфона/планшета), ведь нам же нужно «облако штанах».

Что же подойдёт под такие критерии? Из бесплатных — не много.
Читать дальше →
Всего голосов 39: ↑32 и ↓7 +25
Просмотры100.4K
Комментарии 78

Оптимизируем VPS за 5$ (512MB RAM / 1 CPU) так, что сайт на wordpress выдерживает нагрузку в 42,735,587 хитов в день

Высокая производительность
Из песочницы
Когда вы приобретаете сервер VPS с 256MB или 512MB оперативной памяти на борту и лишь часть мощности процессора, то использовать для таких сервисов как MySQL/PHP/Apache настройки по умолчанию является очень плохой идеей. В настоящее время у меня запущено 3 сайта на самом дешевом тарифном плане с 512MB RAM/1 CPU. Не уверен полностью, но посещаемость составляет порядка 5-10 тысяч посетителей в день. Далее я хочу поделиться инструкцией как оптимизировать LAMP используя всего лишь 512 MB и при этом не уходя в swap. Обычно при такой настройки используется 256 – 378Mb памяти и все работает довольно быстро.

Определяем доступную память и активность swap.

Перед началом оптимизации давайте взглянем на количество используемой памяти. Для этого необходимо выполнить следующую команду:

$ free -m

Для того. чтобы посмотреть список запущенных процессов и отсортировать их по использованию памяти, необходимо выполнить вот такую команду:

$ ps -eo pmem,pcpu,rss,vsize,args | sort -k 1 -r | less


Настраиваем LAMP сервер для потребления малого количества оперативной памяти. Останавливаем, отключаем ненужные сервисы

Первый и очевидный вопрос, который необходимо задать — это «какие сервисы мне не нужны в использовании?». Недавно, я обнаружил очень удобную утилиту для управления сервисами. Она называется "sysv-rc-conf" и управляет сервисами при помощи псевдографики и флажками. Выгдялит вот так:



Здесь представлен список сервисов, которые я изменил.

  • Postfix. Этот сервис позволяет отправлять и получать почтовые email сообщения для домена. Я использую для этих целей Google Apps для отправки почты и mailchimp для новостных подписчиков. Таким образом я остановил и отключил этот сервис.
  • Bind9. Он нужен для управления DNS записями Вашего домена. Его можно отключить, так как все DNS записи хранятся у хостера.
  • SSHD. Имеются и другие реализации, которые используют гораздо меньше памяти, но они не поддерживают sftp, поэтому данный сервис я оставил без изменений.


Не запускайте X-сервер, выключите все ненужные сервисы и настройте Apache, MySQL, PHP только с базовой необходимой функциональностью.
Читать дальше →
Всего голосов 131: ↑81 и ↓50 +31
Просмотры92K
Комментарии 85

Информация

В рейтинге
5,859-й
Откуда
Рязань, Рязанская обл., Россия
Дата рождения
Зарегистрирован
Активность