Как стать автором
Обновить
-1
0

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

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

Изучаем Docker, часть 3: файлы Dockerfile

Время на прочтение12 мин
Количество просмотров805K
В переводе третьей части серии материалов, посвящённых Docker, мы продолжим вдохновляться выпечкой, а именно — бубликами. Нашей сегодняшней основной темой будет работа с файлами Dockerfile. Мы разберём инструкции, которые используются в этих файлах.

Часть 1: основы
Часть 2: термины и концепции
Часть 3: файлы Dockerfile
Часть 4: уменьшение размеров образов и ускорение их сборки
Часть 5: команды
Часть 6: работа с данными


Бублики — это инструкции в файле Dockerfile
Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии12

Почему валидации email регуляркой недостаточно. Проверка MX-записей с примерами на PHP и Ruby

Время на прочтение3 мин
Количество просмотров9.5K
Уж сколько раз твердили Миру… Существует давний и, вероятно, нескончаемый спор о том, какой именно регуляркой правильно и нужно проверять поле email пользователя.

Да, проверять регуляркой действительно нужно. Но ведь наши продукты работают в Сети. Так почему бы не использовать её настоящую мощь?
Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии27

Производительность PHP: планируем, профилируем, оптимизируем

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


Привет, Хабр! Два года назад мы писали о том, как перешли на PHP 7.0 и сэкономили миллион долларов. На нашем профиле нагрузки новая версия оказалась в два раза более эффективной по использованию CPU: ту нагрузку, которую раньше у нас обслуживали ~600 серверов, после перехода начали обслуживать ~300. В результате на протяжении двух лет у нас был запас мощностей.

Но Badoo растёт. Количество активных пользователей постоянно увеличивается. Мы совершенствуемся и развиваем нашу функциональность, благодаря чему пользователи проводят в приложении всё больше времени. А это, в свою очередь, отражается на количестве запросов, которое за два года увеличилось в 2—2,5 раза.

Мы оказались в ситуации, когда двукратный выигрыш в производительности нивелировался более чем двукратным ростом запросов, и мы опять стали приближаться к пределам нашего кластера. В ядре PHP снова ожидаются полезные оптимизации (JIT, предзагрузка), но они запланированы только на PHP 7.4, а эта версия выйдет не раньше, чем через год. Поэтому трюк с переходом сейчас повторить не удастся — нужно оптимизировать сам код приложения.

Под катом я расскажу, как мы подходим к таким задачам, какими пользуемся инструментами, и приведу примеры оптимизаций, идей и подходов, которые мы применяем и которые помогли нам в своё время.
Читать дальше →
Всего голосов 105: ↑105 и ↓0+105
Комментарии58

Оптимизация реляционных баз данных без даунтайма на примере самой нагруженной БД в Badoo

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


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

Недавно мы рассказали, как мы оптимизировали PHP-код нашего приложения. Теперь же пришёл черёд статьи про то, как мы полностью изменили внутреннюю структуру самой нагруженной и важной базы данных в Badoo, не потеряв при этом ни одного запроса.
Читать дальше →
Всего голосов 65: ↑65 и ↓0+65
Комментарии22

Если вы подумываете начать писать на Go, то вот что вам следует знать

Время на прочтение11 мин
Количество просмотров68K
Ваш любимый питомец пишет на Go и получает больше вас, а вы ещё нет? Не теряйте времени… Такая мысль может родиться у читателя от обилия статей по Go. Некоторым даже компании предлагают переучиться на этот язык. И, если вы хоть раз задумывались освоить язык, то я хочу вас предостеречь. Вернее показать странные вещи, попробовать объяснить зачем они и потом вы уже сами сделаете вывод нужен ли вам Go.

Го - это портируемый Си
Поехали...
Всего голосов 79: ↑74 и ↓5+69
Комментарии479

Создание искусственного интеллекта для игр — от проектирования до оптимизации

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

Сегодня – первое сентября. А значит, многие читатели хабры начинают прохождение нового уровня одной древней известной игры – той самой, в которой требуется прокачать интеллект, и, в итоге, получить магический артефакт – аттестат или диплом, подтверждающий ваше образование. К этому дню мы сделали реферативный перевод статьи про реализацию искусственного интеллекта (ИИ) для игр – от его проектирования до оптимизации производительности. Надеемся, что она будет полезна как начинающим, так и продвинутым разработчикам игр.
Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии3

Делаем GraphQL API на PHP и MySQL. Часть 3: Решение проблемы N+1 запросов

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

В этой, третьей по счету, статье о создании GraphQL сервера с graphql-php я расскажу о том как бороться с проблемой N+1 запросов.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии15

Делаем GraphQL API на PHP и MySQL. Часть 2: Мутации, переменные, валидация и безопасность

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

Не так давно я написал статью о том, как сделать свой GraphQL сервер на PHP с помощью библиотеки graphql-php и как с его помощью реализовать простое API для получения данных из MySQL.

Теперь я хочу рассказать о том как заставить ваш GraphQL сервер работать с мутациями, а также постараюсь ответить на самые распространенные вопросы в комментариях к предыдущей статье, показав как использовать валидацию данных и затрону тему безопасности самих запросов.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии16

Делаем GraphQL API на PHP и MySQL. Часть 1: Установка, схема и запросы

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

В последнее время я все чаще и чаще слышу про GraphQL. И в интернете уже можно найти немало статей о том как сделать свой GraphQL сервер. Но почти во всех этих статьях в качестве бэкенда используется Node.js.

Я ничего не имею против Node.js и сам с удовольствием использую его, но все-таки большую часть проектов я делаю на PHP. К тому же хостинг с PHP и MySQL гораздо дешевле и доступнее чем хостинг с Node.js. Поэтому мне кажется не справедливым тот факт, что об использовании GraphQL на PHP в интернете практически нет ни слова.

В данной статье я хочу рассказать о том, как сделать свой GraphQL сервер на PHP с помощью библиотеки graphql-php и как с его помощью реализовать простое API для получения данных из MySQL.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии40

Ассортимент — классическая задача оптимизации

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


Ассортимент очень влияет на выручку магазина, но управляется не самим магазином. Судя по последним исследованиям, ассортиментом в России в целом мало кто управляет эффективно. Просто если поддерживать нужные товары в нужном количестве в нужных местах, можно дико поднять эффективность продаж многих магазинов. Дико — это, например, на треть.

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

Первый вопрос в том, почему вообще может не быть какого-то товара. Это очевидная вещь для любого человека из розницы, но крайне нелогичная для человека со стороны. Столетиями работает рынок, так почему, чёрт побери, до сих пор случаются неувязки?
Читать дальше →
Всего голосов 77: ↑74 и ↓3+71
Комментарии89

Самый полный русскоязычный перевод Гарвардского курса по программированию CS50 2015, бесплатно на YouTube

Время на прочтение2 мин
Количество просмотров55K
В этой статье я хочу немного рассказать о самом лучшем в мире курсе по программированию.

С 2013 года наша небольшая команда занимается переводом и адаптацией англоязычных видеокурсов. За это время мы перевели и адаптировали свыше 150 часов материала. Перед тем как приступать к работе, мы анализировали материалы нескольких обучающих онлайн-школ, и выбирали, на наш педагогический взгляд, самую лучшую, которая максимально доступно, структурированно и кратко подаёт обучающий материал. В результате чего нам приходилось просматривать по несколько курсов касающихся одной и той же тематики, а после выбирать тот, который наиболее качественный и доступный для понимания новичкам.

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

image
Всего голосов 19: ↑18 и ↓1+17
Комментарии26

Установка kubernetes через kubespray (local-storage, установка Elasticsearch + Fluentd + Kibana, prometheus)

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

Как поднять High-Availability Kubernetes кластер и не взорвать мозг? Использовать Kubespray, конечно же.


Kubespray — это набор Ansible ролей для установки и конфигурации системы оркестрации контейнерами Kubernetes.


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


Осторожно, под катом 4 скриншота elasticsearch и 9 скриншотов prometheus!

Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии6

Тестовый сервер для команды разработчиков

Время на прочтение9 мин
Количество просмотров17K
Привет, Хабр! В данной статье я хочу поделиться опытом разворачивания тестового сервера для команды разработчиков. Вкратце суть проблемы — есть команда разработки и несколько проектов на php. Пока нас было мало и проект был по сути один, то использовался 1 тестовый сервер и чтобы показать задачу заказчику — разработчик «столбил» сервер на определенное время. Если «окон» по времени не было, то приходилось ждать. Со временем рос коллектив и сложность задач, соответственно увеличивалось время проверки и занятость тестового сервера, что негативно влияло на сроки выполнения и премию. Поэтому пришлось искать решение и оно под катом.
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии12

Где и как изучать машинное обучение?

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

Всем привет!


Ни для кого не секрет, что интерес к машинному обучению и искусственному интеллекту растет в лучшем случае по экспоненте. Тем временем мой Яндекс Диск превратился в огромную свалку пейперс, а закладки в Google Chrome превратились в список, длина которого стремится к бесконечности с каждым днем. Таким образом, дабы упростить жизнь себе и вам, решил структурировать информацию и дать множество ссылок на интересные ресурсы, которые изучал я и которые рекомендую изучать вам, если вы только вначале пути (буду пополнять список постоянно).

Путь для развития новичка я вижу примерно так:

Untitled_presentation
Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии19
12 ...
7

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность