Непрерывная интеграция с помощью Drone CI, Docker и Ansible

Можете представить, что Вам больше никогда не придется устанавливать зависимости и настраивать конфигурации вручную на вашем сервере непрерывной интеграции? А вы верите в то, что каждый шаг вашего билда может быть по-настоящему изолированным и работать исключительно в Docker контейнерах? В конце концов, хотели бы вы попробовать инструмент, который входит в топ 20 всех открытых проектов, написанных на Golang, и имеет 9k+ звездочек на Github?
В этой статье мы хотели бы рассказать о великолепном Drone CI, который уже помог нам упростить и сделать лучше нашу непрерывную интеграцию. Мы поделимся деталями установки Drone CI и покажем на примере небольшого проекта все детали использования. Если вы не любите много читать и хотите сразу попробовать, в конце статьи есть ссылки на Github репозитории, которые помогут с быстрым стартом.
Glitch — новый подход к разработке приложений
Glitch – это, как заявляют создатели, «дружелюбное сообщество, где вы можете создать приложение своей мечты».

Проект призван сделать процесс создания ботов и веб-разработку быстрее и проще. Сервис предлагает бесплатно ознакомиться с примерами работающих приложений, куски кода которых можно использовать для создания собственных продуктов, и дает возможность воспользоваться редактором кода для их модификации. Glitch поддерживает импорт и экспорт проектов из GitHub, в частности вы можете поместить прямо на страницу проекта GitHub особую кнопку, которая позволит новым пользователям запускать его на Glitch одним щелчком мыши.
Прокрастинация. Как посадить в клетку демона, который мешал двигаться к цели

Автор иллюстрации — John Kenn
Почему больше времени уходит на изучение редких аутоиммунных заболеваний, чем на поиск хорошего врача, а грязная посуда кажется важнее, чем составление бизнес плана?
Прокрастинация — преступление, в котором виновен каждый.
Главный ингредиент успеха — действие. Поддаваться прокрастинации — то же самое, что вообще ничего не делать. Еще одна проблема в том, что мы все-таки выполняем задуманное. Да, мы откладываем до последнего и ждем дедлайна, но все же беремся за дело. И это плохо, ведь появляется ложная уверенность в завершении задачи независимо от времени начала действий.
Еще хуже когда сроков нет вообще. Как долго мы сможем откладывать, пока возможность не будет упущена окончательно?
У жизненных целей нет дедлайна, а значит и нет последствий его срыва. Так что откладывать мы можем бесконечно и не принимать никаких действий. Но без действий не будет и результатов.
Генерация документов в doc, excel, pdf и других форматах на сервере

Платформа для быстрого создания RESTful API
Ну и на четвёртый раз, когда передо мной поставили задачу создания API, параллельно разработке основного проекта, я приступил к созданию универсальной платформы для создания API в котором уже будут решены все «главные» вопросы:
- Формат ответа (в том числе и ошибок)
- Форматирование даты
- Ведение документации
- Авторизации и аутентификации
- Валидация запросов
- и многое другое
9 способов оптимизации производительности Front-End
Сразу должен сказать, что часть приемов было подсмотрено нами на западных просторах интернетов, а часть добавили мы. В любом случае, в рунете такого материала не было. Нам часто приходится писать большие системы и оптимизировать скорость загрузки, поэтому стараемся бороться за каждый байт. Отсюда и решили написать про эту важную тему.
AMD исправляет уязвимость в микрокоде своих микропроцессоров

При срабатывании уязвимости, микропроцессор может интерпретировать часть данных как исполняемый код и выполнить его, что приведет к аварийному завершению процесса на виртуальной машине. В свою очередь, это позволит обойти ограничения гипервизора и исполнить код на реальной ОС. В случае с сервером, злоумышленник, под видом обычного пользователя, на гостевой виртуальной машине может заполучить доступ ко всему серверу, причем с максимальными привилегиями.
Простой экспорт в Excel XLSX

Итак, кому интересно, как заполнить XLSX без больших и сложных библиотек, прошу под кат.
Использование EXPLAIN. Улучшение запросов
Группировка с условием
Давайте рассмотрим простой пример.
Есть таблица:
CREATE TABLE IF NOT EXISTS shop (
id INT NOT NULL AUTO_INCREMENT,
article INT(4) ZEROFILL NOT NULL,
dealer VARCHAR(45) NOT NULL,
price DECIMAL(8,2) NOT NULL,
PRIMARY KEY (id))
ENGINE = InnoDB;
Необходимо для всех article найти dealer с максимальной ценой.
Для этой задачи существует несколько очевидных и простых решений, но я знаю одно из них, которое значительно превосходит все остальные.
Сталкивались с этой задачей? Хотите увидеть новый способ ее решения? Прошу под кат.
Оптимизируем LIMIT offset
SELECT * FROM test_table ORDER BY id LIMIT 100000, 30могут выполнятся очень долго. Например, в моем случае, на одном из сайтов кол-во комментариев перевалило за 200к и постраничная навигация по комментариям начала ощутимо тормозить, а в mysql-slow.log все чаще стали попадать запросы с временем выполнения 3-5сек.
Синхронизация структуры MySQL + Git
Замечу, во многих фреймворках и ORM существуют необходимые механизмы «из коробки» — миграции, версионность и т.д. А вот для нативной работы с MySQL — приходится все делать ручками. И пришла идея попытаться создать автоматическую систему для отслеживания изменений.
Beaver mysql logger или как найти ошибку в MySql приложении
Периодически возникает необходимость отследить запросы, которые отправляет Ваше приложение к базе данных. К примеру:
— Вам нужно отладить/доработать чужой код;
— Запросы генерируются с помощью сторонней библиотеки (к примеру ActiveRecord), не понятно, какие именно и сколько их;
— Нужно оптимизировать приложение: посмотреть какие запросы и сколько их, посмотреть explain этих запросов.
В этих ситуациях на помощь приходит Beaver mysql logger.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность