Как стать автором
Обновить
187
0
Альберт Степанцев @AlexLeonov

Программист. CTO. Архитектор. Преподаватель.

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

PHP & Kafka — production sadness

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

Это короткая история наивного любителя популярных технологий.

Ранее я уже писал почему на моем текущем проекте мы решили использовать — Apache Kafka, если вкратце, то цель — унификация используемых технологий в компании.

Сфера деятельности компании это ставки на спорт, зона ответственности моей команды состоит в том, чтобы принять и оцифровать происходящее на игровом поле, будь то реальное поле з зеленой травкой или серый бетон виртуального CS:GO.

Очень важно чтобы данные инцидент произошедший в игре был передан дальше по системе и коэффициенты были пересчитаны быстрее чем потенциальный Беттер поставит очередную ставку на основании новых вводных. Например, забитый гол в лиге чемпионов на 90+ минуте основного времени.

Итак, вернемся к нашим баранам.

Думаю никому не секрет, что в больших компаниях используется практика использования нескольких типов языков программирования.

Там где можно сэкономить — экономят.

Наша компания не исключение. Для обеспечения организационной части бизнеса — СРМ и интерфейсов первичного ввода данных(интерфейс судьи/статиста) мы используем PHP, для того чтобы производить сложные вычисления, используются иные технологии.

Для обмена данными между системами, наиболее принятым способом, является применение очередей.

Читать далее
Всего голосов 18: ↑16 и ↓2+14
Комментарии10

Заря — прошлый путь в светлое будущее

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

Привет, земляне. Сегодня мы с вами поговорим о таком амбициозном проекте советской космонавтики, как космический корабль Заря.

Эта революционная разработка должна была ещё больше утвердить лидерство Советского Союза в космической гонке с США, так как она содержала в себе самые передовые решения, воплотить которые смогли лишь несколько лет назад. В общем, предшественник современного корабля Илона Маска Crew Dragon разрабатывался ещё в Советском Союзе. Но обо всём подробнее — в статье.

Читать далее
Всего голосов 86: ↑79 и ↓7+72
Комментарии195

Элементы языка С, которые являются неподдерживаемыми в языке С++

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

Нижеприведенный список является моей небольшой коллекцией примеров кода на языке С, которые не являются корректными с точки зрения языка С++ или имеют какое-то специфичное именно для языка С поведение. (Именно в эту сторону: С код, являющийся некорректным с точки зрения С++.)

Этот материал я уже публиковал на другом ресурсе в менее причесанном виде, Я бы, наверное, поддался прокрастинации и никогда не собрался опубликовать эту коллекцию здесь, но из-за горизонта уже доносится стук копыт неумолимо приближающегося С23, который безжалостно принесет некоторые жемчужины моей коллекции в жертву богам С-С++ совместимости. Поэтому мне и пришлось встать с печи, пока они еще актуальны...

Разумеется, язык С имеет много существенных отличий от языка С++, т.е. не составит никакого труда привести примеры несовместимостей, основанные, скажем, на ключевых словах или других очевидных эксклюзивных свойствах С99. Таких примеров вы не найдете в списке ниже. Мой основной критерий для включения примеров в этот список заключался именно в том, что пример кода должен выглядеть на первый взгляд достаточно "невинно" для С++-наблюдателя, т.е. не содержать бросающихся в глаза С-эксклюзивов, но тем не менее являться специфичным именно для языка С.

Читать далее
Всего голосов 140: ↑139 и ↓1+138
Комментарии80

ЕГРЮЛ, доходы и расходы, налоги, количество сотрудников в XML и JSON бесплатно

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

Налоговая отдаёт данные ЕГРЮЛ  по организации в виде PDF. Посредники за автоматический доступ по API хотят денег. На многих сайтах часть данных закрыто, часть функций недоступны бесплатно, и полно рекламы. 

Особенно интересно, что на некоторых сайтах предоставляющих данные по API имеется логотип Сколково. Это такой высокотехнологический бизнес, наверное, открытые данные продавать.

Налоговая просит 150 000 рублей в год за доступ к данным ЕГРЮЛ в виде сваленных в архивы XML-файлов. У ФНС классный бизнес. Вы проявляйте должную осмотрительность при выборе поставщиков, но доступ к данным за деньги. Если вы хотите получить доступ и к реестру индивидуальных предпринимателей (ЕГРИП), то платите ещё 150 000 рублей в год. Согласитесь 300 000 рублей в год приличная сумма.

Остальные реестры данных у налоговой доступны бесплатно. Однако, без базы ЕГРЮЛ их вряд ли можно использовать. Самая частая операция в бизнесе подставить реквизиты из ЕГРЮЛ по ИНН.

Сформировалась целая отрасль, можно сказать, торговцев воздухом открытыми данными, создающих ВВП из воздуха как бухгалтеры, работающие руками там, где должны работать программы. Сколько компаний платит налоговой по 300 000р. в год?! Сколько программистов занято написанием одинаковых по функциям парсеров, которые переводят данные из XML налоговой в SQL и JSON?! Сколько серверов заняты под одинаковые функции?! Где добавочная стоимость? Все вроде при деле, а за чей счёт банкет?

Ну, ладно, “скандалить, критиковать каждый может”(с) как говорил бессмертный товарищ Райкин. “А что ты предлагаешь?” — резонно вы меня спросите. А я вам отвечу.

Читать далее
Всего голосов 164: ↑162 и ↓2+160
Комментарии139

Time series данные в реляционной СУБД. Расширения TimescaleDB и PipelineDB для PostgreSQL

Время на прочтение21 мин
Количество просмотров58K
Time series данные или временные ряды — это данные, которые изменяются во времени. Котировки валют, телеметрия перемещения транспорта, статистика обращения к серверу или нагрузки на CPU — это time series данные. Чтобы их хранить требуются специфичные инструменты — темпоральные базы данных. Инструментов — десятки, например, InfluxDB или ClickHouse. Но даже у самых лучших решений для хранения временных рядов есть недостатки. Все time series хранилища низкоуровневые, подходят только для time series данных, а обкатка и внедрение в текущий стек — дорого и больно.



Но, если у вас стек PostgreSQL, то можете забыть о InfluxDB и всех остальных темпоральных БД. Ставите себе два расширения TimescaleDB и PipelineDB и храните, обрабатываете и проводите аналитику time series данных прямо в экосистеме PostgreSQL. Без внедрения сторонних решений, без недостатков темпоральных хранилищ и без проблем их обкатки. Что это за расширения, в чем их преимущества и возможности, расскажет Иван Муратов (binakot) — руководитель отдела разработки в «Первой Мониторинговой Компании».
Всего голосов 50: ↑48 и ↓2+46
Комментарии16

Оптимистическая блокировка коллекций Агрегата при использовании Doctrine

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

Проектирование своего проекта по DDD последнее время становится всё более популярным. Сейчас не будем углубляться в данную методологию с её принципами, плюсами и минусами. Я хочу рассказать с какой проблемой столкнулась наша команда при использовании данной методологии на PHP, а именно внедрении Data Mapper’а Doctrine ORM.

Чтобы более понятно донести нашу проблему я буду использовать известный всем Агрегат Заказа (Order) и позиции заказа (OrderLine), которые являются коллекциями Dortrine ORM. Так же сильно упростим данный агрегат, чтобы фокусироваться на самой проблеме. И так начинаем!

Для начала мы создадим наш агрегат заказа.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии11

Как мы лажали, открывая очередное юрлицо — на этот раз в США

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


Я тут открывал юрлицо в США и сделал всё по инструкции «как не облажаться», но облажался. Уже в новых местах, не предусмотренных инструкцией.

Главная инструкция вот тут, она написана не юристом, но сами юристы подтверждают, что получилась хорошая и на неё же ссылаются, когда нужно быстро ввести в курс дела новичка. Список того, где уже облажались русские участники УКомбината — вот.

Проект внезапно созрел и нужно было пустить инвесторов. Команда немного размазана по планете, поэтому всем было примерно всё равно, где регистрироваться. Есть вообще типовой стартаперский набор: Кипр, прибалты, США, Сингапур, Люксембург. Но не пофиг было российскому стратегу, одному из инвесторов, он хотел на родине. При этом американское корпоративное правило наиболее гибкое + накоплена большая база прецедентов, то есть оно ещё и предсказуемое. А в штате Делавер наиболее квалифицированный суд, и его решения — просто золотой стандарт отрасли. То есть если у вас есть иностранные инвесторы, стоит выбор между Европой, Кипром и США. Из Латвии и Эстонии тяжело выскакивать при росте компании (и за сладкий старт придётся платить условиями дальше), Кипр хорош, но венчурные инвесторы часто ассоциируют его с «русские что-то там мутят», поэтому Делавер.

Поскольку у нас ИТ-бизнес в России, и мы знаем правила ведения ИТ-бизнеса в России, план был такой:

  1. Уговаривать стратега на любую зарубежную юрисдикцию (а для них бы это был первый опыт инвестиций в зарубежный проект);
  2. Как только они дадут добро, за недельку зарегистрироваться, например в Делавере, и принять деньги.

А если стратега не уговорим, то уйдем во все тяжкие согласования венчурной сделки с корпоратом в правовом поле РФ, что одно из самых экстремальных развлечений, доступных бизнесмену. Я наивно полагал, что основные проблемы будут в этой части.

Но нет. Переходим к мякотке.
Читать дальше →
Всего голосов 83: ↑81 и ↓2+79
Комментарии11

Генерируем Kotlin клиент по GraphQL схеме

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

С одной стороны, GraphQL схема однозначно определяет модель данных и доступные операции реализующего ее сервиса. С другой, Kotlin предоставляет потрясающие возможности для создания предметно-ориентированных языков (DSL). Таким образом, возможно написать предметно-ориентированный язык для взаимодействия с GraphQL сервисом в соответствии с опубликованной схемой. Но, написание такого кода вручную, это сизифов труд. Лучше его просто генерировать. И в этом нам поможет плагин Kobby. Он анализирует GraphQL схему и генерирует клиентский DSL.

Давайте попробуем его в деле!
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Польша: гайд для интересующихся

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

Здравствуйте, дорогие хабровчане! Недавно я прочитал исчерпывающий гайд по Германии, и захотел написать что-то подобное для Польши. В статье я постараюсь описать плюсы и минусы переезда (по крайней мере для айтишника), примерную стоимость жизнь и что стоит сделать в первую очередь после переезда. Конечно подобных статей уже написано немало, но большинство либо написаны агентствами по эмиграции и не отличаются объективностью, либо просто описывают историю успешного успеха и им не хватает цифр. Разумеется, и эта статья тоже не может быть максимально объективной, но я все же попробую.

Читать далее
Всего голосов 27: ↑24 и ↓3+21
Комментарии76

Ontol: самые полезные материалы про визы О-1 и грин-карты

Время на прочтение4 мин
Количество просмотров20K
image

Моя позиция такая — лучше иметь больше выбора, чем иметь меньше выбора. Я хочу максимизировать вероятность своего выживания и рассматриваю решения, которые повышают эту вероятность. Мобильность — это хорошо. Семья Айзека Азимова успела «проскочить в закрывающуюся калитку» в последний момент и поэтому у нас есть произведения великого фантаста.

Предлагаю вашему вниманию подборку материалов (онтол), которые я насобирал, чтобы купировать некоторые риски, которые присутствуют в жизни активных, интеллектуальных и предприимчивых людей. (Экономлю вам 5-10 часов поиска и фильтрации.)

Если рядом с вашим домом участились молнии, разумно запастись молниеотводом.

Онтол — это ресурс призванный помочь максимально раскрыть ваш потенциал: поступить в самый полезный для вас университет, жить в максимально эффективном месте на планете, свободно перемещаться, работать на работе мечты, читать нужные книги.

Политические риски


В нашей стране политические риски — риски, что поменяются правила игры и вы потеряете вообще всё — ровно в два раза больше чем в среднем в мире.

Из 100% уголовных дел против бизнеса :

  • 43% — личный интерес сотрудников правоохранительных органов или органов власти
  • 32% — ваш конкурент нашел силовиков и органы власти и «заказал» уголовное дело
  • 7% — действительно нарушение закона

(из доклада 2017 года Бориса Титова, уполномоченного при Президенте России по защите прав предпринимателей, пруф)

Недавний (пару недель назад) опрос 2423 ИТишников (50% Senior, 30% Middle, 10% Junior):

  • 23% в ближайшие 5 лет точно уеду (563)
  • 18% уже уехал (443)
  • 37% колеблюсь (900)
  • 21% не собираюсь уезжать в принципе (517)


Под катом подборка личных историй получения визы О-1 и грин-карты, а также полезные каналы. (За дополнения буду признателен, присылайте самые полезные материалы про США и другие страны.)
Читать дальше →
Всего голосов 46: ↑35 и ↓11+24
Комментарии33

Нюансы работы с PostgreSQL в 3 кейсах от DBA

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

Иван Чувашов, DBA Okko и Southbridge, поделился жизненными кейсами с PostgreSQL, которые помогут решить ваши проблемы.

Разберем случаи из PostgreSQL: запросы в статусе idle in transaction, выключенные контрольные суммы данных, переполнение int4, убивающие базу временные файлы и загрузку CPU.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии9

Allure. В поисках почти идеальной TMS

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

Приветствую тебя, мой виртуальный друг! Если ты читаешь эту статью, скорее всего тебе интересен Allure, или ты хочешь разобраться с тем, что это за зверь и как он интегрируется в тестирование без многонедельных плясок с бубном.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии4

Как устроен «Русский медвежонок» — оплот психодела и здравого смысла в образовании

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


Если вы подозреваете, что «трамвай» — это глагол повелительного наклонения, или что «забор крови» — это нечто из фильмов ужасов, то вы точно понимаете, где в тестах по русскому языку есть обширное поле для лютого троллинга.

Сначала я вообще считал, что «Русский медвежонок» — это отдельное произведение искусства, созданное, чтобы с иррациональным юмором показать расширенные возможности языка. А потом allex познакомил меня с создателями сего шедевра, и выяснилось, что это вообще-то ужасно серьёзное дело, которым заняты математики и лингвисты. Предельно адекватные, насколько это вообще возможно для математиков и лингвистов.

Значит, сейчас «Медвежонок» — это самый массовый конкурс по русскому языку, подозрительно напоминающий олимпиаду всем, кроме формы. Формально он — игра. Предприятие это сугубо коммерческое, участие стоит 85 рублей (до 100 рублей на Дальнем Востоке). Участие добровольное, в качестве приза предполагается нечто символическое — это тоже осознанно, чтобы не было тех, кто играет на мамону. Все вопросы предполагают на входе некоторый общий уровень развития человека, рождённого на Земле в России. То есть это нечто из базовой школьной программы, общечеловеческие бытовые знания и базовый же кругозор. Задач на чистое академическое знание нет. Задач на зубрёжку нет. Даже если вам кажется, что есть. Задачи довольно хорошо тестируются на живых людях до раскатки на конечных пользователей.

В общем, я хочу показать, что бывает, когда математики добираются до русского языка. И познакомить вас с двумя прекрасными людьми — кандидатом физико-математических наук Игорем Рубановым и кандидатом филологических наук Еленой Муравенко.

Первое, что меня без меры порадовало — что в методологии «пять вариантов ответов» сразу подразумевается, что все эти варианты создаются так, чтобы максимально запутать отвечающего и, фактически, внести новый уровень сложности в задачу. Сейчас покажу пару примеров.
Читать дальше →
Всего голосов 173: ↑163 и ↓10+153
Комментарии525

Как сделать многоточечную WebRTC-конференцию MCU с записью и демонстрацией экрана в браузере

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

Во время карантина, который то ослабевает, то активизируется с удвоенной силой, появилось огромное множество новых профессий. Сторисмейкеры, инфопродюсеры, специалисты по запускам инфопродуктов и прочие неведомые звери - все они освоили новую работу, которая смогла прокормить их в пандемию. Нанимаете сторисмейкера, который прошел какие-то курсы (дай бог, нормальные, а не от инфоцыган) - он пилит за вас вовлекающие истории в Инстаграм и ваш курс продается. С контентмейкерами та же история - просто нанимаете такого человека, он вам и шапку профиля везде оформит, и на каком-нибудь Геткурсе уроки упорядочит, и статьи напишет, которые тоже помогут в продвижении курсов. Полный полет фантазии: если вам кажется, что какой-то профессии не существует, значит вы просто мало сидите в интернете. В принципе онлайн-работа популяризировалась и теперь уже вряд ли кто-то скажет: "Да он фигней какой-то занимается - ТикТоки свои снимает, а лучше бы на заводе вкалывал!".

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии11

А нужен ли Redis или хватит PostgreSQL

Время на прочтение3 мин
Количество просмотров18K
image

Есть проверенная архитектура, которую я видел много раз для поддержки ваших веб-сервисов и приложений:

  • PostgreSQL для хранения данных
  • Redis для координации очередей фоновых заданий (и некоторых ограниченных атомарных операций)

Redis — это фантастика, но что, если бы я сказал вам, что его наиболее распространенные варианты использования этого стека на самом деле могут быть достигнуты с использованием только PostgreSQL?

Сценарий 1: очередь заданий


Пожалуй, наиболее частое использование Redis, которое я видел, — это координация отправки заданий из вашего веб-сервиса в пул фоновых воркеров. Идея состоит в том, что вы хотите записать желание выполнить какое-то фоновое задание (возможно, с некоторыми входными данными) и гарантировать, что только один из многих ваших фоновых воркеров выполнит его. Redis помогает в этом, поскольку предоставляет богатый набор атомарных операций для своих структур данных.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии10

Путь к Global Talent Visa в UK

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

В мае 2021го я получил Talent Visa от правительства Великобритании, с одобрения Tech Nation как Exceptional Talent.

В этой статье я хотел бы задокументировать свой путь к ней. Быть может это поможет кому-то еще. На Хабре уже была отличная статья на эту тему. Моя статья представит нескольку иную перспективу.

Talent Visa рассчитана на тех, кто достиг исключительных успехов в своей области. Она позволяет вам работать в Великобритании без привязки к работодателю, а спустя несколько лет так же предоставляет возможность получить гражданство.

Для IT сферы, одобрения (endorsements) на такого рода визы выдает организация Tech Nation.

Читать далее
Всего голосов 16: ↑14 и ↓2+12
Комментарии11

Требования ACID на простом языке

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

Мне нравятся книги из серии Head First O`Reilly — они рассказывают просто о сложном. И я стараюсь делать также.

Когда речь идёт о базах данных, могут всплыть магические слова «Требования ACID». На собеседовании или в разговоре разработчиков — не суть. В этой статье я расскажу о том, что это такое, как расшифровывается ACID и что означает каждая буква.

Требования ACID — набор требований, которые обеспечивают сохранность ваших данных. Что особенно важно для финансовых операций. Мы же не хотим остаться без денег из-за разрыва соединения или ошибки в ПО, не так ли?

Читать далее
Всего голосов 15: ↑11 и ↓4+7
Комментарии10

Учимся подтягиваться на одной руке по программе Пола Уэйда

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

Программа Тюремных Тренировок — это эффективные методы обучения по работе со своим весом. Многие из этих забытых, но действенных техник — находятся на грани исчезновения. Современный бодибилдинг поменял наше мышление, навязав ложные убеждения. Поэтому мы сняли этот фильм в Алькатрасе, вернувшись во времена, когда «Скала» была крупнейшей тюрьмой для особо опасных преступников. Пожалуй, это самое правильное место, чтобы показать методы тренировок заключённых.

Приступить к тренировке
Всего голосов 112: ↑71 и ↓41+30
Комментарии70

Особенности взаимодействия Bitbucket server и Teamcity

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

Сегодня почти в каждом проекте существует хотя бы базовая инфраструктура, включающая в себя систему хостинга кода проекта (Github, Bitbucket и др.) и систему его сборки (Teamcity, Jenkins и др.). Мы в ЦФТ активно используем Bitbucket server и Teamcity в наших пайплайнах. Подкатом я расскажу, как мы настроили взаимодействие этих сервисов, с какими трудностями столкнулись и как с ними справились.

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

DBA: когда почти закончился serial

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

"Шеф, всё пропало, у нас serial на мегатаблице кончился!" - а это значит, что либо вы его неаккуратно накрутили сами, либо у вас действительно данных столько, что разрядности integer-столбца уже не хватает для вашей большой и активной таблицы в PostgreSQL-базе.

Да и столбец этот не простой, а целый PRIMARY KEY, на который еще и ряд других немаленьких таблиц по FOREIGN KEY завязан. А еще и приложение останавливать совсем не хочется, ибо клиентам 24x7 обещано...

В общем, надо как-то с минимальными блокировками увеличить размер PK-поля в большой таблице, на которое многое завязано.

Читать далее
Всего голосов 40: ↑40 и ↓0+40
Комментарии12
1
23 ...

Информация

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