Pull to refresh
49
0
Роман @getId

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

Send message

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

Reading time17 min
Views40K


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

Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments16

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

Reading time7 min
Views9.6K

image


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

Читать дальше →
Total votes 25: ↑23 and ↓2+21
Comments7

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

Reading time8 min
Views49K

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

Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments28

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

Reading time7 min
Views61K

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


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

Читать дальше →
Total votes 65: ↑51 and ↓14+37
Comments288

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

Reading time7 min
Views28K

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


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

Читать дальше →
Total votes 30: ↑26 and ↓4+22
Comments21

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

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

Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments53

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

Reading time7 min
Views31K
Я буду каждое утро развертывать мир, как резиновую ленту на мяче для гольфа, а вечером завертывать обратно. Если очень попросишь — покажу, как это делается.
Р. Брэдбери

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.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments19

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

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

image
Под катом gif-файлов мегабайт на 10.
Начать побеждать
Total votes 70: ↑68 and ↓2+66
Comments36

Information

Rating
Does not participate
Location
Кемерово, Кемеровская обл., Россия
Registered
Activity