Как стать автором
Обновить
23
0
Масляев Александр @maslyaev

Пользователь

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

Picodata: простое масштабирование Tarantool

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров9K

Привет! Сегодня я хочу познакомить вас с ПО, которое мы разрабатываем в нашей компанией — кластерной СУБД и сервером приложений на языке Rust. Мы профессионально занимаемся созданием и эксплуатацией решений на основе Tarantool и с некоторых пор начали разработку своего ПО, о котором и пойдёт речь.

Picodata — это дальнейшее развитие истории Tarantool, в которой учтен опыт эксплуатации этой СУБД и предложены решения как архитектурных, так и функциональных недостатков открытой версии Tarantool. Также, наше ПО проще запускать, настраивать и поддерживать в рабочем состоянии благодаря единой точке входа и интеграции всего инструментария в одном исполняемом файле. Мы создавали Picodata как изначально кластерную СУБД, которой удобно пользоваться. Если не верите, что российская СУБД может быть удобной, попробуйте — в конце этой статьи есть раздел Практикум, где можно сразу же попробовать собрать кластер самому на паре-тройке виртуальных машин или на вашем локальном компьютере. Сейчас же будет немного теории о том, как вообще работает распределенный кластер, что именно не так в “ванильном” Tarantool и что нам пришлось сделать чтобы это исправить.

Погрузиться в детали
Всего голосов 101: ↑101 и ↓0+101
Комментарии5

Диаграммы без боли и страданий: PlantUML

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров48K

Системный аналитик всегда и везде сталкивается с бесконечным количеством диаграмм разного вида, с нотациями (правилами), чтобы нарисовать данные диаграммы и с бесконечным количеством инструментов для их описания. Но мало кто говорит о таком инструменте, как PlantUML. 

Лично мне завесу тайны приоткрыл Альфа-Банк, здесь документация ведется рядом с кодом, и схемы логичнее описывать тоже кодом. Но это не так страшно и не так сложно (почти) как кажется. Давайте я приоткрою ящик Пандоры и сниму кармическое проклятье с  этого инструмента. 

Читать далее
Всего голосов 65: ↑64 и ↓1+74
Комментарии35

Ускоряем Python в сто раз при помощи менее чем ста строк на Rust

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров19K

Однажды на работе у нас возникла проблема с производительностью одной из наших основных Python-библиотек.

Эта библиотека формирует фундамент нашего конвейера 3D-обработки. Это довольно большая и сложная библиотека, использующая NumPy и другие научные пакеты Python для выполнения широкого спектра математических и геометрических операций.

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

Мы пришли к выводу, что для работы с увеличившейся нагрузкой нужно сделать систему, по крайней мере, в пятьдесят раз быстрее, и решили, что помочь в этом нам может Rust.

Так как проблемы производительности, с которыми мы столкнулись, встречаются довольно часто, мы можем воссоздать и решить их прямо здесь, в (не такой уж короткой) статье.

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

Если вы хотите сразу перейти к получившемуся коду, то читайте раздел «Подведение итогов».
Читать дальше →
Всего голосов 58: ↑54 и ↓4+68
Комментарии10

GPT-4 добавляем новые знания: Git репозиторий

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров16K

GPT-4 позволяет достаточно просто писать boilerplate код с использованием различных языков, технологий и библиотек. Но, есть небольшая проблема, данные GPT-4 не совсем актуальные и ограничены серединой 2021 года.

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

Поехали
Всего голосов 11: ↑10 и ↓1+13
Комментарии8

Что не так с OpenAPI?

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров35K

Как мы боролись с документированием API на наших проектах, и как мы немного сошли с ума

У вас на проекте порядок с документацией на API? Скорее всего нет. И в нашей компании порядка не было.

Не будем рассказывать, к каким печальным последствиям приводит ошибочная, устаревшая или вовсе отсутствующая API-документация. Почему же на большинстве проектов не удаётся решить такой, казалось бы, несложный вопрос?

Читать далее
Всего голосов 55: ↑47 и ↓8+50
Комментарии100

Приделываем руки к ChatGPT: бот, который исполняет код в рантайме

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров34K

В предыдущей статье я рассказывал, как можно доучить GPT на собственных взглядах и вкусах. Сегодня попробуем дать GPT возможность поработать программистом по‑настоящему — с запуском кода и отладкой без участия человека. Весь код опубликован в репозитарии.

Как многие уже убедились, ChatGPT хорош, но есть некоторые типы задач, с которыми у него возникают трудности:

1. Он не может получать новые актуальные знания из сети.
2. Он не может выполнить какие‑либо действия.
3. У него сложности с алгоритмическими задачами (перевернуть строку, решить уравнение, произвести вычисления с применением численных методов).

И если задача 1 решается с помощью BingChat, то 2 и 3 мы сегодня будем решать в рамках данного туториала.

Основная идея такая: пусть ChatGPT сам решает, может ли он справиться с задачей «в уме» или же это лучше сделать с помощью написания кода на python, а наш сервер сразу же выполняет этот код и снова отдает результат работы ChatGPT, чтобы он мог его интерпретировать и или выдать пользователю окончательный ответ или исправить ошибку в своей программе и попытаться ещё раз.

Дальше много примеров и немного кода...
Всего голосов 47: ↑46 и ↓1+60
Комментарии30

Описательная статистика перформанс-распределений

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

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

Андрей Акиньшин @DreamWalker поговорил об этом в докладе на нашей конференции Heisenbug. И теперь, пока мы готовим следующий Heisenbug (где тоже будут доклады о производительности), решили опубликовать текстовую версию его выступления (а для тех, кому удобнее другие форматы, прикрепляем видеозапись и слайды). Предупреждаем: много букв, цифр, графиков и формул!

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

VS Code, python, контейнеры — как обуздать эту триаду и разрабатывать внутри контейнера

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров38K

Как пользоваться VS Code в полную силу


image


Это небольшой туториал о настройке VS Code для работы с python. Здесь вы не увидите каких-то божественных откровений — тут будет просто мой опыт о том, как сделать свою работу/хобби немного комфортнее и почему я пришел именно к такой конфигурации.

Читать дальше →
Всего голосов 42: ↑40 и ↓2+55
Комментарии18

Elixir как цель развития для python async

Время на прочтение17 мин
Количество просмотров11K
В книге «Python. К вершинам мастерства» Лучано Рамальо описывает одну историю. В 2000 году Лучано проходил курсы, и однажды в аудиторию заглянул Гвидо ван Россум. Раз подвернулся такой случай, все стали задавать ему вопросы. На вопрос о том, какие функции Python заимствовал из других языков, Гвидо ответил: «Все, что есть хорошего в Python, украдено из других языков».

Это действительно так. Python давно живет в контексте других языков программирования и впитывает концепции из окружения: asyncio позаимствован, благодаря Lisp появились лямбда-выражения, а Tornado скопировали с libevent. Но если у кого и стоит заимствовать идеи, так это у Erlang. Он создан 30 лет назад, и все концепции в Python, которые сейчас реализуются или только намечаются, в Erlang давно работают: многоядерность, сообщения как основа коммуникации, вызовы методов и интроспекция внутри живой системы на продакшн. Эти идеи в том или в ином виде находят своё проявление в системах вроде Seastar.io.


Если не брать во внимание Data Science, в котором Python сейчас вне конкуренции, то все остальное уже реализовано в Erlang: работа с сетью, обработка HTTP и веб-сокетов, работа с базами данных. Поэтому Python-разработчикам важно понимать, куда будет двигаться язык: по дороге, которую уже прошли 30 лет назад.

Чтобы разобраться в истории развития других языков и понять, куда двигается прогресс, мы пригласили на Moscow Python Conf++ Максима Лапшина (erlyvideo) — автора проекта Erlyvideo.ru.

Под катом текстовая версия этого доклада, а именно: в каком направлении вынуждена развиваться система, которая продолжает мигрировать от простого линейного кода к libevent и дальше, что общего и в чем отличия между Elixir и Python. Отдельное внимание уделим тому, как на разных языках программирования и платформах управлять сокетами, потоками исполнения и данными.
Всего голосов 21: ↑19 и ↓2+23
Комментарии21

Как правильно писать UI авто тесты на Python

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

Как правильно писать UI авто тесты на python используя Page Object + Page Factory.

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

Олдскульные HTML-шаблоны снова в моде! htmx и другие средства борьбы с javascript fatigue

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

Отрисовка страничек на сервере, похоже, снова начинает приобретать популярность (нет, я не имею в виду React SSR).

Сторонники оппозиции растущему влиянию javascript, наконец, смогли направить усилия в нужное русло - и в результате родился фреймворк htmx! Поговорим о том, как он работает, а также, какие ещё фреймворки используют серверные шаблоны в 2022.

Также поговорим о divkit - аналоге html для мобилок, недавно выпущенный Яндексом в опен-сорс - Вы, наверно, догадались, какое отношение может иметь одно к другому.

Читать
Всего голосов 20: ↑15 и ↓5+12
Комментарии25

Товарищ майор в клетке или как я изолировал Яндекс Браузер (для использования СБОЛа)

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров53K

Еще с весны было известно, что Сбербанк потерял возможность продлевать свои сертификаты. Новые же сертификаты были выписаны одним из национальных УЦ, чьего корневого сертификата в операционных системах нет. Однако СБОЛ продолжал работать, и несмотря на предупреждения, я откладывал решение будущего вопроса.

Несколько дней назад я не смог войти в СБОЛ. Решить проблему можно двумя путями: установив себе рутовый сертификат в систему или установив Яндекс.Браузер.

Устанавливать рутовый сертификат не хотелось, а Яндекс.Браузер у нас запрещен политикой компании. Как выкрутиться с минимальными потерями и не поссориться с безопасниками - читайте под катом.

Открыть доступ в СБОЛ;drop table mortgage;
Всего голосов 64: ↑55 и ↓9+63
Комментарии242

Человеческим языком про метрики 2: Prometheus

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

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

Под катом: формат данных, способы отправки, типы метрик и их применение, кардинальность.

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

Пайтон Джуньор Плюс, или путеводитель начинающего Python-программиста

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

image


Добрый день! Меня зовут Михаил Емельянов, по профессии я программист программ, а этот небольшой путеводитель по возможностям языка Python меня сподвиг написать довольно существенный, на мой взгляд, разрыв между декларируемыми объемами всевозможных курсов программирования и требованиями реальных, даже достаточно скромнооплачиваеых вакансий, а также некоторая обобщенность существующих Python-путеводителей, найденных на просторах Сети.


Особенно выбивают из равновесия советы изучить, скажем, «Алгоритмы и структуры данных» или «SQL». Да зубы можно сточить, изучая эти темы, и даже будучи седовласым старцем, постоянно открывать для себя что-то новое, не выходя за рамки тематики «Алгоритмов»!


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

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

Мечтают ли нейросети об электроденьгах?

Время на прочтение18 мин
Количество просмотров31K
TL;DR: Нет



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

Почему? Давайте разбираться.
Читать дальше →
Всего голосов 61: ↑60 и ↓1+82
Комментарии127

Решаем судоку при помощи компьютерного зрения

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

Привет, Хабр! Поиграем в судоку?

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

Матрица уровней дата инженеров Amazon

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

Матрица показывает, как меняются профессиональные навыки специалистов от уровня к уровню. Сюда не включены Принципы Лидерства Amazon (https://www.amazon.jobs/en/principles), поскольку они едины для всех и не зависят от уровня сотрудника.

Матрица уровней не используется сама по себе. Это только референсы навыков для приема на работу. Эйчары рассматривают технические навыки сотрудника в отрыве от личностных качеств и сравнивают их с должностными ожиданиями.

С чем работают дата инженеры?

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

GitOps — что это такое и с чем его едят?

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

На самом деле почти никто не знает, что такое GitOps. Я тоже заблуждался, пока не начал готовить доклад, а потом статью по этой теме. Самое распространенное определение GitOps — это «хранение состояния в Git», но оно не единственное и не самое главное. Это звучное словечко  придумали в Weaveworks, но его название несколько разнится с его реальным пониманием. Созвучие с DevOps — скорее, маркетинговый ход, чем реальное отражение сущности. Основная идея GitOps в том, что помимо хранения состояния в Git, у нас есть непрерывный процесс его синхронизации с реальным миром, то есть, что у вас Kubernetes-кластере или где либо ещё в вашем окружении.

Меня зовут Андрей Квапил. Я работал в чешском хостинге WEDOS. Он не сильно популярен в России, но это крупнейший хостинг на территории Чехии (просто Чехия маленькая).  Сейчас я работаю во Фланте, но именно на примере европейского хостинга WEDOS, хочу рассказать историю имплементации GitOps.

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

«Уехал, и что дальше?» — подборка для планирования жизни за границей

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

Внезапно уехавшие могут пребывать в паническом шоке. А дальше что? Уехал, и? А что если затянется на года? Даже если есть деньги, в какой стране можно остаться надолго?

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

Читать скорее!
Всего голосов 77: ↑65 и ↓12+79
Комментарии234

Безопасный HTTPS-прокси менее чем за 10 минут

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

Это руководство описывает развёртывание HTTPS-прокси с помощью dumbproxy на практически любом Linux-сервере. Потребуется только curl и рутовый доступ.

Читать далее
Всего голосов 44: ↑43 и ↓1+52
Комментарии85

Информация

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