Как стать автором
Обновить
0
0

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

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

Хоп — и mic drop: как подготовить технический доклад, если вы никогда этого не делали

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

Публичное выступление на митапе или конференции — не только возможность поделиться своими идеями и опытом, но и шанс заявить о себе. Но многие не знают, как подступиться к этой задаче. В статье опишем семь простых шагов, которые помогут вам подготовиться к выступлению и не закончить его с мыслями «больше никогда». В основе текста — советы консультанта IT-конференций Романа Поборчего, который подготовил к выступлениям уже более 2 000 разработчиков и инженеров.

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

Три способа оптимизировать работу с памятью на Go с помощью memory pools

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

Привет, Хабр! Меня зовут Александр Иванов, я разрабатываю средства управления сетевыми элементами сотовой связи и пишу на языке Go в YADRO. Однажды я работал над приложением, которое испытывало пиковые нагрузки каждые 10 минут, но выполнить обработку памяти быстро мешал Garbage Collector. Чтобы решить эту проблему, я изучил несколько способов реализации memory pool и провел испытания скорости работы. 

В этой статье расскажу, как уменьшить влияние GC на выполнение программы и покажу бенчмарки для разных memory pools. Объясню, какая из реализаций подойдет вашему проекту, а когда лучше не использовать memory pools и полагаться на встроенные механизмы рантайм-окружения Go.

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

ТОП-6 российских онлайн-досок. Чем заменить Miro

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

Лучшие онлайн-сервисы для совместной работы команд, из которых парочка бесплатных + одно мини-приложение в Telegram!

Читать далее
Всего голосов 19: ↑15 и ↓4+16
Комментарии2

Сразу два аналога Notion, бесплатный сервис аналитики для продавцов на WB – и еще 8 российских стартапов

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

10 новых российских сервисов для нарезки шортсов при помощи ИИ, публикации в цифровых СМИ, авто-ответов на отзывы и многого другого. Битва за «Продукт недели» началась!

Product Radar — здесь каждую неделю публикуются лучшие онлайн-сервисы и железки от русскоязычных команд.

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

Аналитик vs. презентация задачи. Изучаем профессионально-деформационные диалекты коллег

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

Привет =) На связи снова Анастасия-аналитик из команды STM Labs со своей любимой темой «мягких» навыков. В статье про собеседования (первая часть тут, вторая тут) я сравнила аналитика с переводчиком с бизнесового языка на разработческий. Или наоборот.

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

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

Перенос данных из Oracle в PostgreSQL быстро и без потерь: как мы используем для этого Airflow и NiFi

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

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

Система хранения Oracle была очень популярна в России: данные в ней хранили и обрабатывали даже компании из государственного сектора. И всем нам предстояло быстро решить, куда и каким образом перенести огромные объёмы ценной информации, ничего не потеряв в процессе переноса.

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

REDIS: такой простой и такой сложный

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

Меня зовут Андрей Комягин, я СТО компании STM Labs. Мы занимаемся разработкой очень больших распределённых высоконагруженных систем для различных отраслей и в своей работе широко используем open-source решения, в том числе СУБД Redis. Недавно я подробно рассказывал об этой системе на конференции Saint HighLoad++, а теперь с удовольствием поделюсь основной информацией с читателями Хабра. Итак, поехали.

Читать далее
Всего голосов 48: ↑47 и ↓1+57
Комментарии28

Распаковывая Valkey или миллион RPS на BSD-клоне Redis

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

В этот статье мы поделимся некоторыми результатами тестирования производительности Valkey (BSD-клон Redis). TL;DR: он действительно по ядрам скейлится лучше Redis и мы сделали миллион запросов с одного инстанаса.

В этом году Redis, “кеш с персистентностью”, мимкрирующий под СУБД и даже умеющий работать в режиме распределенного кластера – фантастически успешный проект, да и просто пример отличного продукта – сменил лицензию. Подробное рассмотрение лицензионной политики, включающее разбор лицензий Open Source и Source Available - выходит за рамки этой статьи. Скажем лишь, что это всё продолжение битвы “против облачных провайдеров”, которые “пользуются” результатами “настоящих” open source проектов, предоставляя услуги management service.

Итак, Redis cменил лицензию, и почти сразу же сотрудники AWS (Amazon Web Services, крупнейшего облачного провайдера) в сотрудничестве с другими облаками объявили о выпуске форка, Valkey: https://valkey.io/

Читать далее
Всего голосов 19: ↑18 и ↓1+22
Комментарии0

Создание Git-коммита: The Hard Way

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

Мы постоянно используем высокоуровневые команды git, такие как git add и git commit. Однако также существует другая группа команд git, которые обрабатывают низкоуровневые операции.

В этой статье мы создадим git‑коммит, используя низкоуровневые операции, а не команду git commit.

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

Нейронные оптимизаторы запросов в реляционных БД (Часть 1)

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

В 1970-х годах известный программист Эдгар Кодд разработал математически выверенную теорию организации данных в виде таблиц (реляций). С тех пор утекло немало воды — появилось большое количество различных коммерческих и open-source реляционных систем управления базами данных (РСУБД). Скоро стало понятно, что эффективное получение данных из базы — задача далеко не тривиальная. Если говорить прямо, она нелинейная и в общем случае NP-сложная.

Когда SQL-запрос становится немного сложнее: SELECT * FROM table, у нас появляется огромная вариативность его исполнения внутри системы — и не всегда понятно, какой из возможных вариантов эффективнее как по памяти, так и по скорости. Чтобы сократить огромное количество вариантов до приемлемого, обычно используются так называемые эвристики — эмпирические правила, которые придуманы человеком для сокращения пространства поиска на несколько порядков. Понятное дело, эти правила могут отсечь и сам оптимальный план выполнения запроса, но позволяют получить хоть что-то приемлемое за адекватное время.

В последние годы в связи с активным развитием ML начали развиваться и нейронные оптимизаторы запросов —особенность которых в том, что они самостоятельно, без участия человека, находят необходимые закономерности в выполнении сложных планов исходя из обучения на огромном количестве данных. Тенденция началась приблизительно в 2017 году и продолжается до сих пор. Давайте посмотрим, что уже появилось в этой области в хронологическом порядке и какие перспективы нас ждут.

Читать далее
Всего голосов 24: ↑23 и ↓1+31
Комментарии9

Как настроить автодополнение для команды ssh с хостами из .ssh/config

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

Я администрирую много серверов и параметры подключения к ним занесены в ~/.ssh/config файл. В этой статье я расскажу, как настроить автодополнение для команды ssh, чтобы Bash подсказывал хосты, указанные в файле ~/.ssh/config.

Читать далее
Всего голосов 28: ↑26 и ↓2+31
Комментарии17

Компиляция математического выражения из строки динамически во время выполнения в C# (.NET)

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

В этой статье я продемонстрирую, как динамически компилировать математические выражения из строк в runtime в C#, исключительно просто и быстро. Это решение поддерживает различные математические контексты, включая логические выражения, научные вычисления и C#, а также позволяет расширять эти контексты пользовательскими переменными, операторами и функциями.

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

Как я искал работу лидом в 2024 году

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

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

В статье вы узнаете из каких шагов состоит поиск и как вообще обстоят дела с вакансиями лидов.

Читать далее
Всего голосов 29: ↑5 и ↓24-17
Комментарии15

Подробно про JWT

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

О чем эта статья: мы разберемся, что такое JSON Web Token, как он устроен и для чего используется, рассмотрим такие приемы, как «black-list токенов» и «контроль версий» токенов. Для наглядности, в конце будут блок-схемы клиент-серверных запросов с пояснениями.

Для кого эта статья: для тех, кто хочет детально понять что такое JWT, а так же для тех, кто просто ищет схему реализации.

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

Как сменить технологию и не закопаться в рефакторинге: опыт внедрения DDD в проект на FastAPI — Часть 2

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

Привет, хабравчане!

В первой части были рассмотрены паттерны проектирования Repository и Unit of Work.

Это вторая часть цикла о DDD. В ней расскажу, как добавить к проекту событийно-ориентированную архитектуру.

Код подопытного приложения ищите в репозитории по ссылке. Подробнее о DDD и паттернах Repository и Unit of Work читайте в первой части по ссылке...

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

Как оценивать эффективность продуктовых команд. Часть 1: процессные метрики

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

Хабр, привет! Я Денис Теплов, Директор по продукту в Лиге Ставок.

В нашей компании продуктовая структура представляет из себя 9 продуктовых end-to-end команд общей численностью ~130 человек, работающих над развитием одного продукта. Каждая из команд укомплектована всеми необходимыми компетенциями. Все живут в одном релизном процессе, делают задачи из одного бэклога (и проекта в Jira), и следят за одними метриками в Amplitude.

В условиях такого тесного взаимодействия естественным образом возникает вопрос: А как оценивать их эффективность?

Об этом мы и поговорим.

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

Самые главные ошибки в карьере UX дизайнера и уроки, которые я усвоил

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

Мой путь UX-дизайнера, разумеется, состоял из взлетов и падений.

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

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

Итак, какую самую серьезную ошибку совершил я? И какой урок я извлек после?

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

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

Оставлю на ваше усмотрение: либо последовать нашим советам, либо самостоятельно строить свой путь.

Итак, классифицировал самые популярные ошибки 👇

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

Зачем нужны ключи в JavaScript фреймворках и библиотеках?

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

Всем привет! В данной статье я бы хотел рассказать о таком понятии как "ключи" в JavaScript фреймворках и библиотеках; зачем они используются и как помогают при работе с DOM.

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

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

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

Отправка сообщения в ДМДК через stunnel на С#

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

Задача - у нас есть розничные продажи и нам надо отправлять информацию о них в госсистему ДМДК.

Как зарегистрироваться в ДМДК и настроить stunnel я напишу отдельную статью, считаем что он есть, настроен и работает. Соответственно у нас еть ЭЦП, все необходимые сертификаты зарегистрированы.

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

Решаем передавать каждый чек как отдельное сообщение, благо их в день не много и можно передавать не сразу, а в течение нескольких дней после продажи. Передавать будем в фоне асинхронно, и пытаться передать до тех пор пока ДМДК не съест (иногда она глючит, иногда не работает, иногда на профилактике)

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

Руководство Google по стилю в C++: 2019 — 2024

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

Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Однако, любой стайлгайд со временем корректируется и дорабатывается: иногда этому способствуют обновление стандартов языка, иногда меняются тенденции.
В статье приведены изменения Руководства Google по стилю в C++ за 5 лет: с 2019 по 2024.
Краткое содержание изменений:
+ C++20
- NULL
+ концепты 
- #pragma
+ constinit
- std:hash
+ consteval
- u8
+ аргументы-ссылки
- ENUM_VALUE_NAME
+ повесточка и "they" в единственном числе
- здравый смысл

Читать дальше →
Всего голосов 17: ↑15 и ↓2+19
Комментарии36

Информация

В рейтинге
5 942-й
Зарегистрирован
Активность