Обновить

Все потоки

Сначала показывать
Порог рейтинга
Уровень сложности

JVM + Память + GC без боли: моя шпаргалка для собесов в Java. Часть 2

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

Всем привет!

Работая Senior Java Developer в одном из банков, я успел пройти уйму собеседований, столкнуться с десятками каверзных вопросов и понять, сколько усилий требует подготовка. И каждый раз убеждаюсь в одном: тема JVM, память и GC — одна из самых недооценённых и одновременно самых частых на Java-собесах. Многие знают об этом “что-то где-то слышал”, но как только разговор заходит про Heap, Metaspace, JIT, Safepoint или разные типы GC — начинаются проблемы.

Поэтому эта статья — вторая часть моей шпаргалки по подготовке к Java-собеседованиям. Здесь я собрал всё самое важное о работе JVM и управлении памятью простым, человеческим языком, без боли и академической зауми. Разберём архитектуру JVM, устройство памяти, JIT, GC, типы ссылок и самые частые вопросы, которые любят спрашивать на интервью.

В профиле уже есть первая часть для подготовки — Многопоточность без боли.

Читать далее

База знаний для компании: история о том, как мы (наконец-то) перешли на wiki в Outline

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

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

Читать далее

Звёздная болезнь: как научиться разбираться в ночном небе, чтоб пофлексить перед друзьями

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели30K

Представьте: вы гуляете по ночному парку с прекрасной девушкой после романтического вечера в ресторане. Тут перед вами открывается полянка, а над ней — летнее небо, полное звезд. Вы невзначай говорите: “о, смотри, сейчас Плеяды особенно яркие”! Показываете на небо, девушка прижимается к вам поближе, чтобы разглядеть, куда же вы показываете, и…Ну дальше все в ваших руках. А вот не знали бы, где Плеяды — и все, так и пошли бы грустно по домам. В этом посте расскажу, как научиться различать созвездия, что можно наблюдать невооруженным взглядом, как выбрать первые девайсы и всякое такое.

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

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

Вперед, к звёздам!

О правильной и аккуратной остановке потоков в Linux

Уровень сложностиСложный
Время на прочтение20 мин
Охват и читатели9.6K

Предположим, вы пишете многопоточное приложение для Linux, которое рассчитано на длительную работу. Может — это СУБД или какой-нибудь сервер. Представим ещё, что ваша программа не рассчитана на какую-нибудь среду выполнения кода (скажем — на JVM, Go или BEAM), которая берёт на себя управление низкоуровневыми вещами. Вы сами управляете порождением потоков (thread), прибегая к системному вызову clone. Когда пишут на C — потоки создают с помощью pthread_create, а в C++ применяется std::thread. (1)

Читать далее

Почему крупные компании строят свои дата-центры, а остальным они не нужны

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

Еще 3-5 лет назад у многих было полное ощущение, что облака победили. Казалось, что теперь только тарифы, all-in cloud и все такое. Но нет. В какой-то момент некоторые компании вновь начали думать о том, чтобы не выгружать все в облако, а держать у себя под боком и даже возвращать их облака на землю. В результате сложилось два противоположных лагеря, где одни вкладывают миллиарды в строительство ЦОД, а другие продолжают арендовать ресурсы и не парятся. Разница в подходах, понятное дело, не случайна.

Читать далее

Простой Python, автоматический Spark: минус Kubernetes, плюс продуктивность

Время на прочтение13 мин
Охват и читатели8.3K

Установка и эксплуатация приложений Spark в облаке зачастую становятся препятствием для дата-инженеров (Data Engineer, DE): сложная работа с Helm-конфигурациями отвлекает внимание от анализа данных и замедляет подготовку среды. Но полностью отказываться от Spark зачастую нерационально, поэтому многие команды стремятся найти свое решение для обхода существующих сложностей.

Привет, Хабр. Меня зовут Юрий Орлов. Я руководитель команды разработки ML Platform в VK Tech. В этой статье я расскажу о том, как мы автоматизировали развертывание Spark в облаке и создали клиент на Python, который снижает требования к знаниям в области DevOps и Kubernetes, необходимым для начала работы со Spark.

Читать далее

Почему корпорации зарабатывают миллиарды на «бесплатном» коде. История Open source

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

За 50 лет, с 1950 по 2000 годы, открытое программное обеспечение (open source software) началось как неявное предположение — без названия и без четкой альтернативы. Со временем оно превратилось в развитое движение, которое создало одни из самых стабильных и широко используемых программных пакетов в истории.

Сегодня мы попробуем проследить, с чего всё начиналось, какие события способствовали развитию движения и почему без Open Source IT сегодня было бы совсем другим.

Читать далее

Дирижабли нового поколения и летающие ветряки

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

В последние годы в ветроэнергетике наметился новый тренд: подвижные генераторы. Это механизмы, которые не закреплены физически в одном конкретном месте, а двигаются, то есть блуждают в пространстве: плавают или летают. Они хорошо сочетаются с модульными ЦОД и такими же модульными энергоустановками на ядерном топливе.

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

Если пофантазировать, то можно представить будущее, в котором полностью автономные фабрики выпускают продукцию без участия человека, под управлением распределённого ИИ. А энергию обеспечивает рой из миллионов дирижаблей нового поколения (мобильные ВЭУ) и группировка спутников на солнечных батареях.

До этого пока далеко, но первые намёки уже есть.

Читать далее

Как настроить Nginx, чтобы выдержать DDoS

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели15K

Привет, Хабр! Меня зовут Сергей Черкашин, и я — руководитель команды по эксплуатации систем и защиты от DDoS-атак в Wildberries & Russ.

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

Читать далее

Ваш смартфон — это сервер. Поднимаем Telegram-бота на Android без root и затрат

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

Хотите запустить своего Telegram-бота, но не желаете платить за VPS ради простого пет-проекта? А что, если я скажу, что полноценный Linux-сервер уже лежит у вас в кармане? В этой статье мы пошагово превратим любой Android-смартфон в хостинг для нашего бота на Python. Без root-прав, вложений и сложных настроек. Понадобится только приложение UserLAnd и 60 минут времени.

Читать далее

Как работают ИИ-агенты и кому они на самом деле нужны

Время на прочтение9 мин
Охват и читатели14K

ИИ-агенты — одна из самых обсуждаемых технологий сегодня. Отчеты называют их революцией, а новостные заголовки — заменой сотрудникам. Но за громкими заявлениями часто теряется главный вопрос: как именно это работает для бизнеса уже сейчас?

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

Читать далее

Как провести быстрый аудит разработки без изучения кода, часть 2

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

Привет! Как и обещал, вторая часть доклада про то, как проводить быстрый аудит разработки без изучения кода (первая тут). Так как весь аудит по своей сути — это качественно поговорить и позадавать нужные вопросы, чтобы потом сделать выводы, то поговорить стоит и про более низкоуровневые вещи, такие как трекер задач, количество багов, метрики, используемые командой, и процесс разработки. В привычном по предыдущей статье формату «Хорошо / Плохо».

Метрики

Количество клиентских багов

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

Так вот, с клиентскими багами такая же история. Это пульс продукта. Если в метриках их ноль — то это самое страшное. Это значит, что продукт или вообще не используется, или что клиенты никогда не запускали его.

Нет, конечно, есть исключения, когда какой-то продукт присутствует в компании чисто для галочки. Такое может попадаться в сфере информационной безопасности — например, клиент с точки зрения закона обязан купить какое-то ПО, но никто не будет проверять, используется этот софт на самом деле или нет. Скажем, купила компания антивирус, чтобы соответствовать требованиям регулятора, и просто положила его на полку — aka «бумажная безопасность». При таком подходе вообще без разницы, что там делает разработка — можно ее хоть уволить всю. Захочется ли вам работать в такой компании — это уже отдельный вопрос.

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

Читать далее

API для LLM: разбираем по пунктам, как устроен и как работает протокол MCP

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели9.2K

Привет! Меня зовут Миша Васильев, я разработчик в команде AI Битрикс24.

В последнее время мы часто говорим про МСР и вот, наконец, решили рассказать простыми словами о том, что это такое, как работает, как мы это используем и планируем использовать. Если коротко, то MCP — это АРІ для LLM.

Читать далее

Ближайшие события

Как работают федеративные системы: рассказываем на примере YDB

Уровень сложностиСредний
Время на прочтение23 мин
Охват и читатели11K

YDB — отказоустойчивая геораспределённая СУБД класса Distributed SQL. Она появилась в недрах Яндекса более десяти лет назад и прошла длительный путь от узкоспециализированного хранилища, применявшегося в поисковом движке, до полновесной СУБД общего назначения. Открытие исходного кода YDB в 2022 году стало одной из наиболее ярких опенсорс-инициатив Яндекса.

В центре внимания разработчиков YDB долгое время была обработка транзакционной нагрузки, однако в последние годы активно развивается и аналитическое направление. Одна из востребованных аналитических функций — возможность исполнения федеративных SQL-запросов, адресованных к внешним источникам данных.

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

Читать далее

Kafka реально быстрая, но я возьму Postgres

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

Команда Go for Devs подготовила перевод статьи о том, почему большинству проектов не нужна Kafka, «веб-масштабные» очереди и зоопарк из пяти баз данных. Автор на бенчмарках показывает, как далеко можно уехать на одном Postgres — и заодно разбирает, почему карго-культ масштабирования и «инфраструктура ради резюме» только мешают делать работу.

Читать далее

Гарантированная доставка данных с помощью библиотеки Polly. Наш опыт взаимодействия с единым реестром интернет-рекламы

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

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

Привет, Хабр! Меня зовут Андрей Алексеенко, я техлид оператора рекламных данных (ОРД) «МедиаСкаут». Особенность нашего продукта — взаимодействие с единым реестром интернет-рекламы (ЕРИР), у которого очень жесткие требования. По данным Роскомнадзора, с января по октябрь 2024 года было вынесено 376 постановлений о нарушениях в сфере интернет-рекламы на общую сумму 24,4 млн рублей.

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели17K

Сегодня достаточно скачать с GitHub-a открытый стек автопилота, прикрутить пару камер или лидаров с AliExpress к небольшой электрической платформе, прокатить ее по парковке — и проект уже называют «автономным». Но заставить машину без водителя в реальных условиях выполнять задачи бизнеса, например, перевозить тонны груза в -30 °C и +50 °C, и, при этом, зарабатывать деньги — это совсем другая лига, где сходят с дистанции даже стартапы с сотнями миллионов долларов инвестиций. 

Я — Дмитрий Куликов, последние 2,5 года руковожу разработкой ПО в Evocargo. Мы с нуля разрабатываем, проектируем, производим и внедряем автономные электрогрузовики максимально высокого на сегодня серийно-эксплуатируемого уровня автономности. Уже 5 лет они работают на десятках коммерческих объектов по всей России. Как пробиться в лигу успешных проектов в автономном вождении, как мы приняли решение строить собственную платформу и почему Маск всё ещё не прав — расскажу в этой статье.

К сказу...

Ищем ошибку в работе WiFi у платы ESP32-C3 SuperMini

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

Статья о небольшой эпопее с поиском ошибки в работе WiFi на плате ESP32-C3 SuperMini, с которой пришлось разбираться в процессе отладки кода прошивки для контроллера батареи АКБ (О контроллере батареи ИБП (вопрос к читателям Хабра) и О контроллере батареи ИБП (часть 2)).

Симптоматика проблемы с WiFi следующая: после включения питания и начала авторизации по WiFi плата ESP32-C3 SuperMini через какое-то время зависает, вплоть до срабатывания сторожевого таймера. Поиск решения проблемы в интернете не помог, но было замечено, что в эти моменты на плате очень сильно нагревается стабилизатор напряжения 3.3V, да так, что даже рука не терпит, тогда как при работе тестовых примеров (где WiFi работает нормально) такого эффекта не наблюдается.

Из-за этого решил копать именно в этом направлении.

Читать далее

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

Время на прочтение9 мин
Охват и читатели8.3K

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

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

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

Поэтому пластина с божьей коровкой тут очень поможет.

Теперь давайте я расскажу про то, как проектируются такие пластины под пациентов, и покажу самих пациентов.

Читать далее

NewOnGears | Невангеры 2 на Godot 4

Время на прочтение4 мин
Охват и читатели8.6K

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

Читать далее