Pull to refresh
40
0
Антон Жуков @MrCheater

Team Leader, Engineering Manager, React, Node, TS

Send message

Пишу диаграммы последовательностей текстом (кодом). Вы тоже можете

Reading time5 min
Views33K

Я работаю бизнес-аналитиком. Создание диаграмм последовательностей (sequence diagram) – часть регулярной рутины. Всё классно. Но процесс правок…

К счастью, я нашел для себя решение. Теперь я не рисую sequence diagram, а пишу "кодом". Это легко, быстро и удобно.

Читать далее
Total votes 29: ↑29 and ↓0+29
Comments36

Импортозамещение облаков: как настроить GitLab Runner в Yandex Cloud и не обанкротиться

Reading time5 min
Views9.3K

У нас в профсоюзе недавно появился сервис, который используется для создания публикаций в социальных сетях. Проект находится в GitLab, но с недавних пор использовать Shared Runners в GitLab не представляется возможным, поскольку для этого требуется подключить банковскую карту, а российские карты не принимаются. Открыть счёт в банке другой страны непросто, поэтому было решено развернуть GitLab Runner в Yandex Cloud, поскольку сервис уже развёрнут в Yandex Serverless Containers.

Развернуть GitLab Runner в Yandex Cloud можно в Managed Service for GitLab или на виртуальных машинах (далее ВМ).

Чистая ВМ — наиболее подходящий вариант, поскольку Managed Service for GitLab и ВМ с образом GitLab обходятся относительно дороже и имеют излишнюю функциональность для текущей задачи. Кроме того, чистая ВМ более гибкая в выборе вычислительных ресурсов, так что стоимость использования может быть ниже.

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

Суть финта: запускать ВМ только при создании нового пайплайна в проекте, а в остальное время держать в выключенном состоянии. В таком случае стоимость использования ВМ сократится до пары сотен рублей. Диаграмма последовательности для такой функциональности представлена ниже.

Читать далее
Total votes 20: ↑18 and ↓2+22
Comments17

Состояние PostgreSQL 2022: 13 инструментов, отличных от psql

Reading time8 min
Views13K

Опрос о состоянии PostgreSQL 2022 завершился несколько недель назад, и мы усердно работаем над очисткой и анализом данных, чтобы поделиться с сообществом PostgreSQL максимально полной информацией.

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

Читать далее
Total votes 18: ↑16 and ↓2+17
Comments14

Задачи на собеседованиях. Event loop. JS

Reading time10 min
Views101K

Почти на каждом собеседовании бывает задачка на событийный цикл. И как я понял, не все до конца понимают как их решать. А решают их обычно в голове, а лучше используя бумажку и ручку. В статье я приведу способ решения через таблицу
Основной поток/Микрозадачи/Макрозадачи

Читать далее
Total votes 18: ↑17 and ↓1+18
Comments26

Два размера подходят большинству: PostgreSQL и Clickhouse

Reading time7 min
Views6.8K

С момента появления System R в 1974 году реляционные базы данных в целом, и SQL-базы в частности, стали доминирующим подходом для хранения данных, и до сих пор сохранили это положение, несмотря на появление многочисленных серьезных конкурентов. Слухи о кончине и упадке традиционных реляционных баз данных появляются постоянно, но PostgreSQL уверенно держит позиции и опережает  как своих предшественников, так и предполагаемых преемников.

Фактически, база данных MySQL была настолько распространена, что стала частью одноименного стека LAMP (Linux, Apache, MySQL, Perl), преобладающего в ранних веб-разработках.

Единственным большим исключением из этой тенденции является OLAP, со специализированными методами, позволяющими резко повысить производительность определенных рабочих нагрузок. А новые соперники, такие как ClickHouse, качественно изменили подходы к аналитике.

Читать далее
Total votes 13: ↑6 and ↓7-1
Comments14

Как и почему Яндекс переехал с собственного npm-репозитория на Verdaccio

Reading time9 min
Views10K
Всем привет. Меня зовут Андрей Фримучков, я работаю в команде инфраструктуры разработки интерфейсов Яндекса. Последние несколько месяцев участвовал в запуске нового хранилища пакетов. Около года назад мы упёрлись в ограничения собственного решения и после череды экспериментов пришли к выводу, что дальше масштабироваться под растущие нагрузки не получится.

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

Как пакеты хранились раньше?


Хорошая практика при разработке на JS — хранить внутренние пакеты в собственном репозитории и сохранять копии внешних пакетов. Это снижает зависимость от внешнего npm и позволяет ограничить выходы во внешнюю сеть в системах сборки. Исторически Яндекс использовал своё решение для хранения внутренних пакетов. Долгое время оно всех устраивало, но компания росла. Росли нагрузки, репозиторий стало сложно масштабировать и поддерживать. Например, при регламентных работах в датацентрах приходилось вручную переключать мастер у CouchDB. Схема выглядела следующим образом:


Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments5

Используете Kafka с микросервисами? Скорее всего, вы неправильно обрабатываете повторные передачи

Reading time16 min
Views19K


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


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


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

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments17

Калькулятор на типах TypeScript

Reading time6 min
Views15K

В последнее время TS стал де-факто стандартом во фронтенд-разработке. Его достаточно просто начать использовать, и он приносит неоценимую пользу в любых web-приложениях. Но используя его, мы часто даже не задумываемся, насколько на самом деле это мощный инструмент. В большинстве ситуаций нам хватает базовых возможностей TS-а. Но иногда нам случается определить узкий и нестандартный тип. В этом случае можно либо ослабить типы с помощью any или unknown, либо попробовать решить непростую порой головоломку. В этой статье мы решим несколько интересных головоломок с типами.

Читать далее
Total votes 31: ↑31 and ↓0+31
Comments11

Компьютер заBIOSает? Изучаем буткиты

Reading time8 min
Views9.4K

Самый популярный совет в случае, если что-то идет не так или работает медленно, ― перезагрузить компьютер. Вторая по популярности рекомендация ― переустановить ОС, чтобы избавиться от вирусов. Если не помогает ни первое, ни второе, то вам «повезло»: ваш компьютер инфицирован вредоносным ПО опаснейшего класса, которое называется буткит.

Мы начали погружение в тему буткитов и рассмотрели обширную группу так называемых legacy-буткитов (подробнее об этом рассказали на вебинаре от команды PT Expert Security Center «Компьютер заBIOSает? Изучаем буткиты»). Ответили на вопрос, почему вредоносы, нацеленные на системы на базе Legacy BIOS, все еще актуальны, поговорили о наиболее известных представителях буткитов, а также рассказали, как они работают, какие преследуют цели и применяют техники.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments4

Мини-ПК начала 2022 года, на которые стоит обратить внимание

Reading time4 min
Views46K

Десктопные ПК и ноутбуки подходят не всем, и не для любых целей. В некоторых случаях идеальный вариант — как раз миниатюрные персональные компьютеры, некоторые их которых можно носить в кармане. Причем среди подобных моделей встречаются вполне себе производительные устройства, которые позволяют запускать «тяжелые» приложения. Есть, конечно, и относительно маломощные девайсы, которые можно и нужно использовать в офисе для решения не самых сложных задач, на производстве и т.п. Вот о таких мини-ПК мы сегодня и поговорим.
Читать дальше →
Total votes 49: ↑49 and ↓0+49
Comments28

TypeScript. Все еще без номинативной типизации

Reading time4 min
Views3.4K

Можете взглянуть на планы команды разработчиков TypeScript-а. Первым пунктом участники ставят введение номинативных типов в TypeScript. Судя по списку это чуть ли не следующий шаг в их работе. Однако сейчас - в марте 2022 TypeScript поддерживает только структурную типизацию. Позвольте, а как же брендирование?

Наследство JavaScript

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

Одна из особенностей JavaScript, которая перекочевала в TypeScript - возможность обращаться к значению с помощью индекс-оператора (квадратные скобки) по индексу, отсутствующему в массиве. Даже по индексу, значение которого меньше нуля, и это может быть нежелательным поведением.

Читать далее
Total votes 2: ↑1 and ↓10
Comments4

TypeScript: не выходите за рамки

Reading time4 min
Views4K

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

Использование прошлых успехов, в переводе на исходный код, обычно сопровождается доступом к хранилищу по индексу. А вы знаете особенности идекс-оператора TypeScript?

Читать далее
Rating0
Comments10

План самостоятельного обучения DDD, CQRS, EventSourcing

Reading time7 min
Views45K

Если вы собрались плотно погрузиться в тему Doman Driven Design (DDD), о том как его применять, как использовать, для чего он нужен, и как с ним связаны Command and Query Responsibility Segregation (CQRS), Event Sourcing и другие термины из мира DDD то можно воспользоваться планом обучения, который последовательно погрузит вас в эти темы и поможет сориентироваться. Часть информации на русском, часть на английском языке, так как русскоязычных аналогов я не смог найти.

Погрузиться в DDD
Total votes 32: ↑31 and ↓1+34
Comments4

Роль спонсора в проекте и акселераторы

Reading time8 min
Views4.7K
image

Продукты (техника, новинки) появляются благодаря проектам. Многие думают, что для проектов достаточно применять инструменты проектного менеджера и всё получится. Но не надо забывать о роли заинтересованных сторон (стейкхолдеров), в особенности спонсора и акселераторов. Об этом и погорим. А в конце этого материала читателей ждет подборка из актуальных акселераторов на 2022 год.
Читать дальше →
Total votes 13: ↑11 and ↓2+10
Comments3

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

Reading time9 min
Views16K

Почему так «мало успешных основателей стартапов, которые выросли в полной нищете»


image


Рикки Йен (в центре), дважды фаундер Y Combinator: Crowdbooster (S10) и Flow Club (S21)

Всем привет!
Я собрал в одном месте Founders at work: 150+ историй основателей стартапов, которые прошли Y Combinator. Сегодня хочу поделиться переводом про путь Рикки Йена, нищего студента-эмигранта из Тайваня не знающего английского языка с безработным отцом на шее.


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

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


Грэм был прав, и это правда, которую мы хорошо осознаем как основатели стартапов. Мало того, что все карты против нас, чтобы просто иметь возможность основать стартап, но создать и поддерживать компанию, которая “предназначена для быстрого роста”, особенно сложно, если вы выросли в крайней бедности. Мы с Дэвидом боролись с этой идеей с момента основания нашей компании в 2010 году, и у нас это неплохо получилось. Главная проблема заключается в том, что мы с Дэвидом называем неравенством мировоззрения. Чтобы по-настоящему понять это, вам придется влезть в мою шкуру. Позвольте мне пригласить вас в мою личную историю.
Читать дальше →
Total votes 52: ↑33 and ↓19+28
Comments137

Android: как подружить ваше приложение с Google Ассистентом?

Reading time14 min
Views8.4K

Многие из вас прекрасно знают, что такое Google Ассистент. Это голосовой помощник, подобный Siri, Алисе, Алексе и другим. Когда пользователь что-то говорит, Google Ассистент понимает это с помощью natural language understanding (NLU). NLU преобразует человеческую речь в специальную структуру данных, которую уже можно обработать.

У разработчиков Android есть возможность интегрировать NLU в свои приложения через специальный api, который называется App Actions. Точнее, существует два вида интеграции: мы можем получить и использовать Deep Link из речи пользователя или получить данные из приложения, не открывая его, и показать их прямо в Google Ассистенте через Slice.

Читать далее
Total votes 11: ↑11 and ↓0+11
Comments7

Дефицит специалистов не только в IT — он везде. Но денег не платят

Reading time17 min
Views199K

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

Читать далее
Total votes 368: ↑352 and ↓16+408
Comments1017

Технотекст 2021. Хабру нужны новые герои

Reading time6 min
Views7.7K

«Ничто не стареет так быстро, как будущее», — эти слова Станислава Лема стали девизом конкурса технических статей «Технотекст» в этом году. С одной стороны, мы не могли пропустить 100-летний юбилей великого фантаста, с другой стороны, где, как не на Хабре, видно, как сегодняшние концепты и прототипы уже завтра становятся обычными технологиями, а вскоре и вовсе устаревают. Именно на Хабре вы рассказываете о своих находках, разработках, профессиональных фичах и багах, о жизни в айти и вокруг него. Ежегодно на Хабре публикуются десятки тысяч материалов, а мы проверяем каждый из них и невооружённым глазом видим постоянно нарастающий поток хороших авторов с большим потенциалом. Видит это и аудитория: в среднем под каждой публикацией оставляют 27 комментариев, разброс значений от 0 до нескольких тысяч. Хабр — это мир невероятно живого UGC, настоящее сообщество. И у сообщества есть свои герои, злодеи и скромные маги. 

В общем, любой труд не должен пройти незамеченным, а значит пора объявить уже IV конкурс «Технотекст 2021». Ваша задача: выбрать свою лучшую статью и подать заявку, наша задача — помочь вам стать ещё круче.

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

Читать далее
Total votes 34: ↑32 and ↓2+64
Comments27

Tinkoff инвестиции –> Prometheus –> Grafana

Reading time9 min
Views15K

В последний год (примерно) появилось много постов, как сделать таблички в Google Sheets/MS Excel для отображения актуальной информации о своем инвестиционном портфеле и т.п. Действительно хочется видеть, что там творится. Особенно актуально для продвинутых подписок/тарифных планов, когда требуется определенная сумма на счетах, и будет обидно, если из-за падения акций или курса доллара сумма снизится ниже пороговой…

Я попробовал несколько вариантов от электронных таблиц до записи в MySQL скриптом на python, и на текущий момент остановился на отображении моих инвестиционных счетов в Grafana.

Кому интересны плюсы/минусы разных вариантов, с какими нюансами я столкнулся – добро пожаловать под кат.

Посмотреть
Total votes 29: ↑29 and ↓0+29
Comments16

Большие данные и математические алгоритмы в руках коммерсанта

Reading time10 min
Views11K

Вы когда-нибудь задумывались, почему на полках любых магазинов — от гипермаркетов электроники до гастрономов — стоят именно эти товары и именно в такой последовательности? А Категорийные Менеджеры (и дата-сайентисты, кстати) думают об этом постоянно. Сегодня мы расскажем, как в М.Видео-Эльдорадо использовали искусственный интеллект для заполнения полок и изучили потребности клиентов при управлении ассортиментом.

Читать далее
Total votes 34: ↑34 and ↓0+34
Comments6

Information

Rating
Does not participate
Location
Тула, Тульская обл., Россия
Date of birth
Registered
Activity