Pull to refresh
40
Борис Николаев@devmark

Backend developer

16
Subscribers
Send message

Dockhost год в проде: как мы строим свою платформу хостинга приложений

Reading time7 min
Reach and readers1.2K

Всем привет! У нас знаменательное событие — Dockhost отмечает первый день рождения!

Год назад мы запустили в продакшн нашу платформу для запуска приложений в Docker контейнерах Dockhost.ru. Вроде год выглядит как совсем не большой срок, но для нашей команды это был яркий период, маленькая жизнь с кучей побед, факапов, достижений и драйва.

Меня зовут Евгений Бабий, я один из основателей платформы Dockhost. И в этой статье я хочу оглянуться назад и рассказать про наш путь в построении платформы: что мы задумывали, что в итоге получилось и к чему мы стремимся в будущем.

Читать далее

Циолковский — 33 несчастья

Reading time13 min
Reach and readers22K

Автор: Александр Муллагазиев

Российская Империя. Конец ХIX века. Уездный городок Боровск - религиозный до самых пяток, столица русского старообрядчества.

Условный Иван Иваныч, отстоявший свое на службе в тесной церквушке возвращается домой по замерзшей реке Протве. Ему на встречу несутся сани. Иван Иваныч присматривается, а потом почему-то раскрывает рот и начинает креститься. Сани идут своим ходом, без коней, под парусом. “Дьявольщина” шепчет Иван Иваныч, пока его руки выписывают святые вензеля. Сани проносятся мимо, обдавая его снегом, на них правит бородатый невзрачный мужичок в очках. “Желябка! Опять чудишь, дурак!” кричит вслед Иван Иваныч. Но Желябка его не слышит. Ему вообще по большому счету плевать. Он - глухой на оба уха изобретатель-самоучка и великий космический теоретик, человек и город Константин Эдуардович Циолковский.

И с такой жизнью как у него, обращать внимание на Иванов Ивановичей было непозволительной роскошью, уж поверьте.

Читать далее

Старый новый мир аудиокассет

Level of difficultyEasy
Reading time10 min
Reach and readers54K

В начале 1960-х мир стоял на пороге звуковой революции, но ещё даже не подозревал об этом. Между тем, в 1963 году компания Philips представила компакт-кассету — скромную пластиковую коробочку с магнитной лентой, которая позиционировалась в качестве «карманной» альтернативы громоздким бобинам. Никто не предполагал, что это изобретение переживёт несколько технологических эпох, пройдя путь от дешевого массового носителя музыкальных записей до культового артефакта цифровой эры.

Читать далее

Апгрейд компьютера в 2025

Level of difficultyEasy
Reading time20 min
Reach and readers94K

Свой предыдущий компьютер я собрал 10 лет назад. Я еще застал то время когда за подобный промежуток времени персоналки успевали измениться до неузнаваемости а для того чтобы не отстать от жизни их требовалось апгрейдить каждые два или три года. Но в тихие 2020е годы «железо» развивается уже не так быстро и по большому счету я мог бы продолжать этим старым компьютером и дальше. Однако руки у меня чесались уже из принципа и когда «винда» объявила мне что поддержка win10 прекращается, а win11 на моем компьютере работать не может, то я воспринял это как знак и решил немного побаловать себя. Эта статья — это обзор для олдфагов типа меня о том что появилось на рынке персоналок в последние годы и о том чего можно ожидать при подобном апгрейде.

Да, кстати, стоит ли вообще игра свеч?

Spring Boot 3.3 и Docker: изменение в эффективных docker-образах

Level of difficultyMedium
Reading time4 min
Reach and readers12K

Переход от Spring Boot 3.2 к 3.3 принес изменения в процесс распаковки JAR и запуск приложения в Docker-контейнере.

В новой статье от Рустама Курамшина, эксперта сообщества Spring АйО, вы узнаете:
• что именно изменилось
• как это отразится на создании Dockerfile
• и как адаптировать проекты к новым условиям

Читать далее

RabbitMQ и Kotlin: делаем свою event-driven Jira на Spring

Level of difficultyEasy
Reading time14 min
Reach and readers5.1K

В этой статье мы рассмотрим, как можно в один клик развернуть RabbitMQ в облаке. Также напишем простое приложение на Spring Boot и Kotlin, которое будет взаимодействовать с этим брокером сообщений.

Читать далее

Быстрый старт. SpringBoot + RabbitMQ

Level of difficultyEasy
Reading time4 min
Reach and readers19K

Было уже достаточно туториалов на тему Rabbit + Spring. В данной статье чуть обновленно описание быстрого запуска очередей. Если ты только начинаешь разбираться с очередями добро пожаловать подcast.

Читать далее

RabbitMQ. Часть 3. Разбираемся с Queues и Bindings

Reading time8 min
Reach and readers184K

Queue (очередь) — структура данных на диске или в оперативной памяти, которая хранит ссылки на сообщения и отдает их копии consumers (потребителям). Queue представляет собой Erlang-процесс с состоянием (где могут кэшироваться и сами сообщения). 1 тысяча очередей может занимать порядка 80Mb.


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

Читать дальше →

RabbitMQ. Часть 1. Introduction. Erlang, AMQP

Reading time4 min
Reach and readers273K

Добрый день, Хабр! Хочу поделиться учебником-справочником знаний, которые мне удалось собрать по RabbitMQ и сжать в короткие рекомендации и выводы.

Читать дальше →

RabbitMQ. Часть 2. Разбираемся с Exchanges

Reading time7 min
Reach and readers240K

Exchange — обменник или точка обмена. В него отправляются сообщения. Exchange распределяет сообщение в одну или несколько очередей. Он маршрутизирует сообщения в очередь на основе созданных связей (bindings) между ним и очередью.


Exchange не является Erlang-процессом. Из соображений масштабируемости exchange — это строка (ссылка на модуль с кодом, где лежит логика маршрутизации) во встроенной базе данных mnesia. 1 тысяч обменников будут потреблять всего 1МБ памяти.

Читать дальше →

Как сделать Telegram-бота умнее: пошаговый гайд на Spring AI и Kotlin

Level of difficultyEasy
Reading time11 min
Reach and readers14K

Перед вами ещё один гайд о том, как написать свой telegram-бот, который взаимодействует с нейросетью. Мы напишем его таким образом, чтобы с нейросетью можно было вести диалог, т.е. рассмотрим, как сохранять контекст между сообщениями. Но таких гайдов, особенно для Python, уже написано немало. Поэтому напишем его на новом фреймворке Spring AI из эксосистемы Spring. А чтобы совсем было интересно - писать будем на Kotlin)

Читать далее

Как я случайно превратила свой сокращатель ссылок в приманку для мошенников

Level of difficultyMedium
Reading time7 min
Reach and readers64K

Пару месяцев назад я запустила сервис y.gy, навороченный сокращатель URL. Вызвано это было личной нуждой: в другом моём проекте, getwaitlist.com, используется множество реферальных ссылок, а доступные сервисы сокращения url не внушали мне доверия. В итоге я решила создать собственный инструмент, который наверняка окажется полезен не только мне.

Я разработала лучший в своём роде сокращатель со всеми возможными примочками, начиная с обширной кастомизации и заканчивая хорошей аналитикой трафика. Это всё, что мне было нужно. По аналогии со многими аналогичными инструментами я разместила интерфейс «Shorten Link» по центру домашней страницы. Регистрация для использования сервиса не требуется. Я сделала доступ бесплатным и неограниченным, опираясь на принцип: «бесплатность – лучшая маркетинговая стратегия». Закончив с настройкой, я без громких заявлений сделала релиз и начала потихоньку продвигать свой проект.
Читать дальше →

Хроники пикирующего бота или как важно не пропускать стадию QA в проектах

Level of difficultyEasy
Reading time4 min
Reach and readers2.3K

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

Читать далее

Python — серьезный язык для разработки backend

Reading time13 min
Reach and readers84K

Всем привет! Меня зовут Аникин Денис, я тимлид в команде Chat в Райффайзенбанке. А также представитель внутреннего Python-сообщества, так называемый «community lead» (об этом как-нибудь в другой раз). В этой статье я хотел поговорить про отношение к Python среди разработчиков и обсудить все основные претензии, которые очень давно следуют за языком по пятам.

Читать далее

Как начать программировать в парах

Reading time6 min
Reach and readers11K
Привет. Меня зовут Дима Вдовин. В предыдущей статье я излагал теорию о парном программировании и говорил о том, какие плюсы вижу в этом подходе. Сегодня я бы хотел продолжить эту тему и поговорить о том, как начать практиковать парное программирование у себя в команде. Полный перечень всех плюсов есть в предыдущей статье, а тут мы просто тезисно вспомним, что нам дает парное программирование.

  • Обучение и онбординг новичков.
  • Шеринг кода/процессов и обмен опытом.
  • Пара решает проблему быстрее и реже обращаются за помощью.
  • Повышение производительности.
  • Сплочение коллектива.
  • Увеличение скорости ревью.

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


Но давайте начнем с грустного и поговорим о том, что может помешать начать внедрять парное программирование в своей команде.
Читать дальше →
2

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity