Рубрика «Анализ и проектирование систем» - 81

Во всём виноват PHP OPCache? - 1

Когда я начинал карьеру разработчика, то очень удивился, прочитав фразу, которую приписывают Филу Карлтону (Phil Karlton): «В информатике есть лишь две сложности: инвалидация кеша и присвоение имён». Я отнёсся к этому недоверчиво, поскольку не понял сути фразы. Но немного позже я начал понимать.

Я хочу рассказать о проблеме, с которой мы столкнулись не так давно в нашей production-инфраструктуре. Сразу после успешного развёртывания при обновлении страниц, изменённых новым релизом, какое-то время не отображался новый код. Вообще-то такое далеко не редкость для веб-приложений, написанных на PHP. Мы сталкивались с подобным и раньше, а после перехода на новую production-среду проблема стала заметнее. Поэтому мы решили заняться расследованием.

Читать полностью »

Инфраструктура с Kubernetes как доступная услуга - 1

Kubernetes стал для нас той технологией, которая в полной мере позволяет соответствовать строгим требованиям к отказоустойчивости, масштабируемости и качественному обслуживанию проекта. Несмотря на то, что сегодня K8s больше распространен в крупных организациях и проектах, мы научились применять его и в небольших приложениях. Снижение себестоимости обслуживания стало возможным для нас благодаря унификации и обобщению всех компонентов, которые встречаются практически у каждого клиента. Эта статья — взгляд на полученный опыт со стороны бизнес-потребностей и их технической реализации, которая позволяет нам предлагать клиентам качественное решение за разумные деньги.Читать полностью »

Полное руководство по написанию утилиты для Go - 1

Некоторое время назад я начал делать утилиту, которая упростила бы мне жизнь. Она называется gomodifytags. Утилита автоматически заполняет поля структурных тегов (struct tag) с помощью имён полей. Пример:

Пример использования gomodifytags в vim-go

Полное руководство по написанию утилиты для Go - 2

Эта утилита облегчает управление многочисленными полями структуры. Она умеет добавлять и удалять теги, управлять их опциями (например, omitempty), определять правила трансформации (snake_case, camelCase и пр.) и многое другое. Как эта утилита работает? Какие Go-пакеты она использует? Наверное, у вас есть много вопросов.

В этой очень длинной статье я подробно расскажу о том, как написать и собрать такую утилиту. Здесь вы найдёте много советов и хитростей, а также кода на Go.

Налейте кофе и начинайте читать!

Читать полностью »

Что мы расскажем на Highload++ 2017 - 1

2 700 участников из разных регионов России и мира, 150 докладчиков, более десяти залов, 2 дня на крупнейшей площадке «Сколково» — это всё о конференции Highload++, на которой мы с вами, возможно, встретимся. У нас большой десант в разных секциях, будут не только традиционные выступления, но и мастер-классы.

Составили для вас расписание выступлений от Mail.Ru Group — без малого 18 спикеров! Расскажем о технологиях детектирования и распознавания, создании базы данных и миграции без даунтайма, написании платформы потокового видео, защите от DDoS, новом о Tarantool и о многом другом.

Некоторые лекции и мастер-классы пересекаются друг с другом, но записи докладов традиционно выкладываются после конференции. Или подключайтесь к трансляции, она тоже будет.

Читать полностью »

Tarantool: когда на сервис оповещения миллиона пользователей нужно 500 строк кода - 1

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

На написание данной статьи меня натолкнула эта статья.

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

Читать полностью »

Как мы делаем карту для тех, кто делает карту - 1

Продуктами 2ГИС пользуются 30 млн горожан. Чтобы огромный набор данных попал к конечному пользователю, мы используем множество внутренних продуктов, о которых очень редко рассказываем.

Однажды на Хабре уже была статья о нашем внутреннем продукте — векторном редакторе геометрий. Чудеса нейминга привели нас к трём точкам — Fiji. До них проект назывался так: «Новая карта» → «Новая новая карта» → «Новая новая новая карта». Три года назад мы приступили к реализации Fiji и рассказали о прототипировании UI, сегодня — погрузимся в технические детали и расскажем о том, как создать быстрый и надежный ГИС-редактор.
Читать полностью »

Введение

Изменение курса валют на финансовом рынке влияет на цены товаров и услуг. Поэтому важно знать период времени через который цены начнут реагировать на смену курса валют.

Сложность решения указанной задачи состоит в большом количестве факторов влияющих на смену курса валют [1]. Эффективным способом отсеять ряд второстепенных факторов для определения основных тенденций рынка является применения «белого» фильтра Винера Хопфа [2,3].

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

Постановка задачи

На основе данных о колебаниях курса валюты с использованием корреляционного анализа и системы уравнений Винера Хопфа построить динамическую модель финансового рынка при помощи которой определить временные интервалы реагирования цен на смену курса валют.
Читать полностью »

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

Архитектура хранения и отдачи фотографий в Badoo - 1

Артем Денисов ( bo0rsh201, Badoo)

Badoo — это крупнейший в мире сайт знакомств. На данный момент у нас зарегистрировано порядка 330 миллионов пользователей по всему миру. Но, что гораздо более важно в контексте нашего сегодняшнего разговора, — это то, что мы храним около 3 петабайт пользовательских фотографий. Каждый день наши пользователи заливают порядка 3,5 миллионов новых фотографий, и нагрузка на чтение составляет порядка 80 тысяч запросов в секунду. Это достаточно много для нашего бэкенда, и с этим иногда бывают трудности.

image

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

Мы уже 2 года плотно общаемся с HFT трейдерами и разработчиками решений для HFT торговли. И испытываем некоторую неловкость от того, что никто в этой среде открыто не рассказывает о своих технологических успехах. Так как мы делаем устройства на основе FPGA CEPappliance, применимые в том числе для HFT торговли, мы неустанно интересуемся кто и как использует FPGA в этой сфере. Складывается навязчивое впечатление, что FPGA в HFT торговле, как секс у подростков — все о них говорят, но мало кто ими занимается, да еще и успешно.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js