Blockchain

Прежде чем рассматривать блокчейн, стоит вспомнить о том, что существуют два типа архитектуры систем: централизованные и распределенные.
Если есть какой либо компонент, который может остановить работу всей системы, то такая система не является распределенной.
В общем смысле блокчейн можно воспринимать как распределенные пиринговые системы, использующие технологию блокчейна.
Основная задача блокчейна — создание и поддержание целостности в распределенных системах.
Сам термин блокчейн можно воспринимать как сочетание структуры данных блокчейна, алгоритма блокчейна, а также криптографических технологий и технологий обеспечения безопасности.
Структура данных блокчейна представляет собой данные, которые объединены в блоки (block). Блоки объединяются друг с другом, образуя цепочку блоков. Отсюда и название блокчейн (block chain) — цепочка блоков.

Читать далее

Docker для Mac v17.12: изменилась ли скорость доступа при монтировании томов

Долгое время пользователи Mac страдали от низкой производительности в контейнерах докера, где использовались тома. К примеру, если вы монтируете ваше приложение в виде тома в папку /app, то получите деградацию производительности по операциям I/O в контейнере. Дело тут в использовании qcow формата (реализация copy-on-write механизма) внутри образа виртуальной машины докера для Mac OS и использовании виртуальной машины самим докером.

Читать далее

Nginx Unit

Не так давно от команды Nginx была представлена новая разработка Unit. Это Application Server, который позволяет запускать приложения на нескольких языках, при этом предоставляя простую конфигурацию и настройку посредством REST API. На данный момент Unit находится в стадии beta. Посмотрим же на основные возможности, которые предлагает этот продукт. Читать далее

PHP — анализ производительности кода и поиск узких мест

blackfireНастоящим переворотом в мире PHP стал PHPUnit, который вышел в 2004 году (появилась версия 1.0). До появления этого инструмента тестировать по сути приходилось вручную, каждый раз проверяя, что ничего не поломалось. В такой схеме баги непреднамеренно появлялись на production серверах.

В настоящее время помимо PHPUnit существуют другие фреймворки для тестирования, такие как PHPSpec, Behat, Codeception.

С производительностью же (а точнее с написанием тестов по ее оценке) дела обстоят гораздо хуже. Большинство разработчиков этим просто не занимается. В больших компаниях есть целые отделы, чья работа как раз заключается в поиске различных багов, а также оценке производительности приложения. Может у разработчиков просто не хватает инструментов для анализа своих приложений, либо нужно долго изучать то, чем по сути занимаются тестировщики? Читать далее

Логирование в PostgreSQL

postgresql logsЗачем вообще нужно логирование в базе данных? Для начала попробуйте ответить себе сами на этот вопрос.
У вас были когда-нибудь ситуации, когда кто-то изменил строку в таблице и на вопрос, почему система стала выдавать странные результаты, разработчики только разводили руками?
А была ли ситуация, когда кто-то случайно удалил таблицу и потом приходилось ее восстанавливать с бэкапа. Вы ведь делаете бэкапы, правда?
А иногда еще хочется посмотреть, кто соединился с базой. Ну и в добавок, когда что-то пойдет не так, логи могут помочь вам разобраться с этой ситуацией.

Читать далее

MongoDB 3.2

mongodb

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

Читать далее

Mercurial Diff — как сделать удобно

icdiff-css-demo-tall-2x

hg diff — показывает, что изменилось в файле. Однако не очень удобно смотреть на изменения в файлах при этом.

Всегда хотелось, чтобы diff’ы в mercurial были более наглядными и понятными. К счастью, это можно сделать. Нам потребуется одна небольшая утилита, и скрипты, которую сделают нашу работу еще лучше. Читать далее