Как стать автором
Обновить
48
0
Роман @getId

Веб-программист

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

Логирование в распределенном php-приложении

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


В статье пойдет речь о том, какую пользу оказывает логирование. Расскажу о логах по PSR. Добавлю немного личных рекомендаций по работе с уровнем, сообщением и контекстом логируемого события. Будет приведен пример, как можно организовать логирование и мониторинг с помощью ELK в приложении, написанном на Laravel и запущенном через Docker на нескольких инстансах. Распишу важное правило системы оповещения. Приведу пример скрипта, который поднимает одной командой весь стек мониторинга.

Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии16

По дороге к 100% покрытия кода тестами в Go на примере sql-dumper

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

image


В этом посте я расскажу о том, как я писал консольную программу на языке Go для выгрузки данных из БД в файлы, стремясь покрыть весь код тестами на 100%. Начну с описания, зачем мне нужна была это программа. Продолжу описанием первых трудностей, некоторые из которых вызваны особенностями языка Go. Дальше немного упомяну сборку на Travis CI, а затем расскажу о том, как я писал тесты, пытаясь покрыть код на 100%. Немного затрону тестирование работы с БД и файловой системой. А в заключении скажу о том, к чему приводит стремление максимально покрыть код тестами и о чём говорит этот показатель. Материал я сопровожу ссылками как на документацию, так и на примеры коммитов из своего проекта.

Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии7

Docker-образы с поддержкой ГОСТ-сертификатов в openssl, curl, php, nginx

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

В этой статье я расскажу о том, как я решал задачу об интеграции в тестовом режиме с сервисами, которые работают с использованием алгоритмов, определенных ГОСТ Р 34.10-2001 (устарел) и ГОСТ Р 34.10-2012. Приведу примеры некоторых проблем, с которыми столкнулся при решении задачи, дам ссылки на готовое решение и покажу несколько примеров их использования.

Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии28

Карьера программиста

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

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


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

Читать дальше →
Всего голосов 65: ↑51 и ↓14+37
Комментарии288

Использование Github в качестве хранилища пользовательских данных

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

Изображение коммита


Выбирая сервис для хранения моих данных, важной составляющей является то, как долго такой сервис будет жить. От него нужно, чтобы я смог хотя бы прочитать сохраненные данные даже если энтузиазм авторов проекта закончится вместе с деньгами для оплаты хостинга и базы данных. С таким подходом для своего проекта я искал сервисы баз данных, которые могли бы хранить пользовательские данные бесплатно. Многообещающим проектом был Parse.com, о котором я уже писал ранее в статье «Сайт без бекенда». Но в январе 2016 мы узнали, что Parse.com проживет только один год и будет закрыт. В связи с этим я решил перевести хранение данных пользователей в git-репозиторий, который опубликован на Github.

Читать дальше →
Всего голосов 30: ↑26 и ↓4+22
Комментарии21

Обзор некоторых настольных игр

Время на прочтение13 мин
Количество просмотров36K
Предлагаю вашему вниманию обзор в текстовом варианте некоторых популярных настольных игр: Монополия, Манчкин, Шакал, Свинтус, Активити, Игра Престолов, Цитадели, Крагморта, Сопротивление, Делириум, «Да, Темный Властелин!». Я рассмотрю игры с точки зрения веселья, сложности правил, влияния рандома и необходимости к тщательному продумыванию хода. Во все игры из статьи я играл сам с друзьями. В некоторые на протяжении пары лет, некоторые всего пару раз. Многие игры объединяет одна ценовая категория, так что их легко сравнивать при выборе. Там, где я говорю о влиянии случая (рандома) я имею в виду как сильно влияет на исход игры те аспекты, которые подвержены случаю: выбор карт, бросок костей и тому подобное. Чем меньше влияния случая, тем больше исход игры зависит от самого игрока.

Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии53

Сайт без бекэнда: аутентификация пользователя в BaaS parse.com через социальные сети

Время на прочтение7 мин
Количество просмотров31K
Я буду каждое утро развертывать мир, как резиновую ленту на мяче для гольфа, а вечером завертывать обратно. Если очень попросишь — покажу, как это делается.
Р. Брэдбери

UPDATE: Parse не будет работать к 2017 году.

Введение


В статье описан Backend-as-a-Service подход к хранению и обработки данных. Рассказаны преимущества и недостатки представителя такого подхода — сервиса parse.com. Коротко представлен сервис аутентификации пользователей через соц. сети uLogin. Основное назначение — показать, как эти два сервиса могут взаимодействовать, чтобы проект не требовал регистрации пользователей по логину и паролю, но в то же время сохранилась возможность авторизации пользователей к действиям над объектами.

О BaaS и parse.com


Parse.com — один из самых популярных провайдеров backend-as-a-service (BaaS). BaaS подход позволяет не поднимать свой сервер для хранения и обработки данных приложения. Это используется в мобильных разработках и в обычном вебе. Parse.com имеет свои SDK под несколько платформ, в том числе серверных. Но я расскажу о javascript.

Возможность работать с базой данных через javascript, не поднимая свой сервер, открывает отличные возможности, например, для Single page application (SPA), которое можно хостить на Github Pages, Bitbucket и многих других бесплатных. Первый вопрос, который у меня возник, когда я услышал про работу с БД из клиентского кода — это разграничение прав доступа, так как ключи общеизвестны. Изучив документацию parse.com, я выяснил, что для этого используется авторизация пользователей. Каждый пользователь имеет свой логин и пароль. SDK имеет методы регистрации нового пользователя по логину и паролю, аутентификации по этим же данным. Можно добавить email, при этом сам parse.com умеет отправлять настраиваемые письма для верификации email.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии19

Пусть компьютер сам принимает решение или пишем ИИ для игры вместе

Время на прочтение7 мин
Количество просмотров62K
Вы когда-нибудь задумывались о том, насколько просто написать свой искусственный интеллект, который сам будет принимать решения в игре? А ведь это действительно просто. Пусть для начала он принимает случайные решение, но позже вы можете его воспитать, научить анализировать ситуацию, и тогда он станет принимать осознанные решения. В этой статье я расскажу, как я писал своего бота, а также покажу, как вы за несколько минут можете написать своего. Наш компьютер будет играть в клон игры Трон, а точнее в ту часть, где нужно на мотоцикле победить врагов.

image
Под катом gif-файлов мегабайт на 10.
Начать побеждать
Всего голосов 70: ↑68 и ↓2+66
Комментарии36

Информация

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