Краш-курс по интерфейсам в Go

Интерфейсы в Go представляют собой одну из отличительных особенностей языка, формирующих способ решения задач. При схожести с интерфейсами в других языках, интерфейсы Go всё же имеют важные отличия и это поначалу приводит к избыточному переиспользованию интерфейсов и путанице в том, как и когда их использовать. Это нормально, но давайте попробуем […]

Наш вариант теста на знание SQL

У нас, как и во многих других организациях, проводится тестирование соискателей при поступлении их на работу. Основу тестирования составляет устное собеседование, но в некоторых случаях, даются также практические задания. Несколько дней назад, Руководство попросило меня подготовить набор задач на знание SQL. Разумеется, я постарался сделать задания не слишком сложными. Уровень […]

Внедрение MySQL Multi-Master кластера

Для начала стоит разобраться с тем, какой из реализацией технолгии MySQL Galera, Вы будете пользоватся. На рынке есть имплементации Galera от Percona и MariaDB. Именно эти две реализации и поделили львиную долю внедрений MySQL Galera. Оба форка используют в качестве плагина InnoDB, движок Percona XtraDB Storage Engine.

REMOTE_ADDR vs HTTP_X_FORWARDED_FOR

Давеча был свидетелем одного интересного спора о том как же действительно нужно определять IP адрес конечного пользователя из скриптов PHP. Собственно, каждое слово сабжа отображает действительную ситуацию. Это был религиозный спор, обострённый весенней замечательной погодой, в котором, я считаю, не оказалось правых и не правых, но который побудил меня к […]

Семантика exactly-once в Apache Kafka

Наконец, свершилось то, что сообщество Kafka так долго ждало: в Apache Kafka версии 0.11 появилась семантика exactly-once («строго однократная доставка»). В этом посте я расскажу вам о следующих моментах: – что представляет собой семантика exactly-once в Apache Kafka; – почему эта проблема сложна; – как новые свойства идемпотентности и транзакций позволяют корректно […]

Далем тестирование проще вместе с Mockery

Горькой правдой является то, что хотя базовый принцип тестирования и выглядит довольно просто, но может оказаться довольно трудным занятием — использовать его в своем рабочем процессе изо дня в день. А разнообразный жаргон при этом еще больше все усугубляет! К счастью есть много инструментов, которые смогут упростить процесс тестирования. Mockery, […]

Знакомство с графической базой данных Neo4j

Когда-то, году эдак в 2005, я заболел идеей создания базы знаний, которая бы не имела четкой табличной структуры и работала бы на принципе именованных узлов и связей между ними. Основная идея была такая, что сам по себе узел не нес никакой информации, а вся информация бы задавалась его окружением и […]

Введение в графы и Neo4j. Обработка графов в Spark

Программисты автоматизируют мир. Начав с автоматизации подсчета денег, где табличные записи естественны, программисты стали заталкивать в таблички всё, до чего их допустили. И это работало. В прошлом веке. И это хорошо т.к. из глубин вековой давности мы получили SQL – языка запросов к табличке. SQL хватает почти всегда – он […]

Neo4j VS MySQL

Будучи студентом третьего курса, я выбрал тему для курсовой роботы: «Графовые базы данных на примере Neo4j». Так как до того времени я изучал и использовал исключительно реляционные БД, мне было интересно, зачем вообще графовая БД и когда ее способности лучше применять? После просмотра множества сайтов в интернете я обнаружил только […]

Neo4j

Neo4j – графовая система управления базами данных с открытым исходным кодом, реализованная на Java. По состоянию на 2017 год считается самой распространённой графовой СУБД. Разработчик — американская компания Neo Technology, разработка ведётся с 2003 года. С 2007 года стала публично доступной. В Neo4j присутствуют все характеристики баз данных, включая соблюдение ACID, […]