Мы живём во времена, когда на оперативной памяти для heap Java-приложений почти не экономят, а архитектурные решения, которые ещё недавно можно было назвать расточительными, всё чаще воспринимаются как best practices.
Но не все коту масленица. Благодаря AI - буму, облачным вычислениям и микросервисной архитектуре с сотнями одновременно работающих инстансов, мы можем воочию наблюдать неукротимый рост стоимости оперативной памяти, что обязывает вернуться к рассмотрению принципов её экономии.
В этих условиях привычные абстракции требуют переоценки.
Сегодня я хочу напомнить об одной из самых распространенных в Java — autoboxing — механизме автоматической упаковки примитивных типов в соответствующие объекты-обертки.
Приглашаю вас посмотреть на знакомый Java-код не глазами разработчика, а глазами JVM, сборщика мусора и процессора, и разобраться, как незаметные на уровне синтаксиса решения превращаются в аллокации, давление на GC и раздувание heap.
ПогрузитьсяЭТО - НЕ ПРО ОШИБКУ КАДРОВ. Это про систему, где клиническая неспособность становится культом, а профессиональный кретинизм возводится в ранг гениальности. История о том, как в команду внедряют "ментального инвалида" на позицию продакта, и его начальник - сентиментальный идиот наверху - с благоговением принимает этот дефект за "нестандартное мышление".
Вы узнаете, как любая тупость - от предложения "сделать всё зелёным" на сложном техсовещании до полного игнорирования переписок - магическим образом превращается в "фокусировку на сути" и "созерцательную мудрость". Как молчание выдаётся за работу на "прорывных глубинах", а реальные победы команды, добытые вопреки и без него, нагло присваиваются этому "тихому гению".
Мы разберём наркотическую зависимость начальника от такого подчинённого: пустой сосуд, в который можно лить любой бред, не боясь вопросов или критики. И доведём ситуацию до логического абсурда - до сцены награждения, где "Лучшим сотрудником года" становится пустое место в дорогом свитере, а вкалывающая команда давится тошнотой.
В финале - не жалость, а чёткий, безжалостный алгоритм выживания. Ваше профессиональное достоинство не должно сгореть в костре, разожжённом восторженными идиота́ми. Эта статья - инструкция по тушению.
Читать далееДовелось мне, в своем университете, вести занятия для студентов колледжа по управлению роботами STUDICA.
Наша версия “WorldSkills Shanghai Collection 2022 - Insert - July 5-22”.
Мы использовали для управления язык LabView2020, с пакетами, как рекомендует производитель в документации.
В нашем распоряжении 5 роботов, нумерация каждого от «1111» до «5555» или от «первого» до «пятого».
Роботы активно эксплуатируются в течении года на занятиях и практиках, плюс в июне очень интенсивно три дня на демо экзамене в колледже.
Итак, на очередном занятии, робот с номером 4444 при движении вперед остановился и перестал реагировать на команды, чаще всего помогает перезагрузка робота путем выключения питания или замена разряженного аккумулятора. Однако, это не помогло. Робот перестал даже определяться по сети Wi-Fi и производить обмен информацией по шине CAN от VMX-pi к TITAN.
Стало ясно, что робот STUDICA производства канадской фирмы, позиционируемый как высоконадежный, вышел из строя, сломался.
Сначала, мы сделали запрос на форум поддержки STUDICA в канаде, но ответа не пришло до сих пор, похоже из-за санкций.
Пришлось самим в интернете искать документацию, описания, изучать схему и плату VMX-pi, смотреть работу индикаторов.
Первая попытка – перепрошить VMX-pi предлагаемыми производителем средствами – dfu метод, но он не помог. Прошивка прошла успешно, однако неисправность не исчезла.
Читать далееВсем привет!
Как и раньше, это «народный» курс — собрание проверенных материалов и проектов, которые помогут вкатиться в Go с нуля, выстроить обучение по четкому плану и собрать портфолио для первого трудоустройства.
Читать далееДисклеймер: разрушаем спекулятивные мифы по измерению ума научным методом
Возник тут у меня с коллегой философский спор на тему почему у нас в ИТ так мало девочек и скинул он мне такую картинку по значениям IQ (выше) которая, как я выяснил позже, сильно искажает реальность.
И сказал, вот у нас в айтишечке обычно работают умненькие с IQ выше 110, и посмотри насколько синенький график мальчиков выше красненького графика девочек в зоне дальше чем 110. А я что - меня задело, что этому всему надо верить на слово. И решил провести небольшое исследование.
Разбираемся с IQПривет! Мы — команда сопровождения депозитарных систем Национального Расчетного Депозитария (НРД), входящего в Группу «Московская биржа».
В данной статье мы расскажем об успешном кейсе внедрения продукта Kafka GitOps (в прошлой статье мы уже рассказывали про преимущества этого продукта) для автоматизации управления топиками и ACL в масштабах НРД.
Читать далееПока всё человечество спорит, кто умнее — человек или робот, мы как дизайнеры уже вовсю учимся жить в симбиозе с ИИ, метавселенными и прочими технологическими новшествами.
Технологии стали частью дизайнерского инструментария, а интерфейсы — лабораторией для экспериментов с мышлением, а не только с формой.
В этой статье мы разберём мировые тренды технологий, и как они переплетаются с дизайном интерфейсов.
Читать далееСамые дорогие дефекты иногда рождаются не в коде, а в момент, когда команда дружно кивает. Спорные допущения проходят в спринт «по инерции», неудобные вопросы остаются неозвученными, и это легко принять за норму — особенно в иерархиях и процессах «по умолчанию».
В статье разбираем интеллектуальный конформизм (на примере экспериментов Аша), почему он так живуч в разработке, и почему тестировщик часто становится первым безопасным голосом несогласия. Плюс — как shift-left помогает встроить это несогласие в работу так, чтобы оно снижало риски, а не повышало градус в чате.
Про конформизм2D‑разработка давно прошла путь от нишевого ремесла до полноценного сегмента индустрии. Инструменты вроде Unity, GameMaker и Godot сделали создание игр доступным, но параллельно многие студии продолжают писать свои движки ради большего контроля, лучшей производительности или уникального стиля. Многие проекты могут быть реализованы на готовых движках без серьезных компромиссов, но есть и такие, где собственное решение дает ощутимое преимущество.
В этой статье попробуем разобраться, обязательно ли использовать громоздкий SDK для создания относительно простой игры с двухмерной графикой. Или можно создавать технологическую базу прямо по ходу разработки.
Читать далееПривет, это новый выпуск «Нейро-дайджеста» — коротких и полезных обзоров ключевых событий в мире искусственного интеллекта и технологий.
Неделя выдалась насыщенной: OpenAI запустили ChatGPT Health для проверки здоровья, Anthropic релизнули Cowork — аналог Claude Code для непрограммистов, новые инструменты от Qwen и Higgsfield, а цены на оперативу вырастут ещё на 70%.
Всё самое важное — в одном месте. Поехали!
Читать дайджест →Крупные ставки на ИИ без участия людей не оправдывают ожиданий: там, где сокращали специалистов «под нейросеть», результаты оказывались слабее, а часть сотрудников возвращалась обратно. Рассказываю, как меняется работа благодаря ИИ, какие нейросети доказали эффективность, а также о нашем собственном ИИ-агенте для управления проектами.
Читать далееВ .NET есть обширный набор типов для работы с временем. Но нет решения для работы с интервалами времени. Я такое решение сделал и хочу о нем рассказать.
Читать далееЗадумывались ли вы когда-нибудь, с чего на самом деле начинается великая игра? Не с первой строчки кода. Не с первого полигона модели. И даже не с концепт-арта. Она начинается с мысли, которая была поймана и пригвождена к бумаге.
В индустрии принято много говорить о развитии технологий. Мы знаем всё об эволюции движков, о войне консолей и о том, как за считанные десятилетия пиксели превратились в фотореалистичные пейзажи. Но у нас есть огромное слепое пятно. Мы почти ничего не знаем об эволюции мысли. О том, как развивался сам способ вынимать абстрактную идею из головы и превращать её в систему, которую можно не только почувствовать, но и построить. Мы научились создавать логические мосты между нашим “я хочу, чтобы игрок ощутил это” и техническим “система должна работать вот так”, превращая эфемерные мечты в понятные инструкции для других людей.
Сегодня мы называем этот инструмент просто и почти до зевоты скучно — Гейм-Дизайн Документы.
Читать далее4000 строк в одном MR. Три часа на ревью, 12 замечаний, исправления - ещё 800 строк. На четвёртом заходе я закрыл вкладку и понял: проблема не в коде, а в том, что никто не знал, что именно нужно было написать.
Если ты работаешь с большими кодовыми базами, ситуация знакомая. Большие MR - симптом. Когда непонятно, чтоименно нужно сделать, разработчик пишет больше кода, чем требуется. Добавляет на всякий случай. Покрывает сценарии, которые никто не просил. MR растёт не потому что задача большая, а потому что границы размыты.
Другая причина — иллюзия, что проще сделать всё в одной задаче, чем декомпозировать. Кажется, что разбиение создаёт лишнюю работу. На практике монолитный MR на 4000 строк никто не может нормально проверить, и баги просачиваются в продакшн.
Читать далееДопустим, на повестке дня, по ТЗ, возник вопрос: «А как добавить в структуру подчиненности, то есть в отчет «Связанные документы», свои документы, добавленные через расширение?». Данная статья опишет, один из способов решения этого вопроса на примере стандартной конфигурации 1С:ERP 2.5 (релиз: 2.5.25.72).
По факту, у нас на руках есть уже заготовленное расширение, в котором есть стандартный документ «Заказ клиента» и наш документ «Корректировка заказа». Необходимо «прикрутить» наш документ в стандартный отчет «Связанные документы». Для интриги приведу конечный результат наших доработок.
Читать далееУ вас хоть раз в жизни скручивало спину? Передвигались в форме буквы «зю», держась за стеночку? Если да, то вам – сюда.
Я вот тружусь лидом в промышленном IT. Многие думают, что это значит через проходную протиснулся, каску надел – и в цех. А на деле у меня гибрид: в офисе появляюсь пару раз в месяц. Привет, сидячий образ жизни! И в один момент меня «скукожило» по полной.
Расскажу, что помогло мне вернуться к нормальной жизни. Предупреждаю: все настолько просто, что вы захотите закидать меня помидорами.
Намёк: делайте, что написано на кнопке.
ПоплылиВсем привет. Я Диана Шигаева, создатель «могучей кучки»
Мне был нужен инструмент, который позволил бы описать наши сервера, описать какие приложения на них запущены, как всё это связано между собой, как делаются бэкапы баз данных и так далее. Если бы я был DevOps, то наверное написал бы для этого Terraform конфиг. Но я архитектор, поэтому визуальные схемы мне ближе. В итоге мы скрестили ежа с ужом (ArchiMate с AWS Cloud Notation) — если вам интересно что получилось или вам интересно как в принципе создаются новые языки моделирования, то добро пожаловать в статью.
Читать далееКогда собираешь и тестируешь свой Linux для одноплатника достаточно долго, начинаешь замечать, что деплой Linux на SD-карту — монотонная повторяющаяся последовательность действий, занимающая ценное время, в которой легко совершить ошибку. К тому же больно видеть, как исчерпывает свой ресурс SD-карта и слот для неё.
Часто при embedded-разработке эти проблемы решают при помощи сетевой загрузки Linux.
В этой статье я расскажу, как организовать сетевую загрузку для Raspberry Pi и собрать минимальное ядро Linux, поддерживающее сетевую загрузку.
Сетевая загрузка рассматривается для Raspberry Pi 3 Model В и Raspberry Pi 4 Model B, которые я далее называю общим термином Raspberry Pi или более ласково — малинка.
Основное назначение окружения для сетевой загрузки — ускорение отладки и тестирование пользовательских приложений и программ разрабатываемого дистрибутива Linux.
Тема сетевой загрузки довольно многогранна и затрагивает несколько уровней стека — от протоколов локальной сети до особенностей загрузчика Raspberry Pi. Я старался изложить материал максимально просто и последовательно, но если у вас нет базовых знаний о работе локальных сетей (DHCP, TFTP), протоколах TCP/IP или процессе загрузки Linux, некоторые моменты могут показаться сложными.
Статья является продолжением моей предыдущей статьи, где я рассказывал, как создать минимальный Linux для Raspberry Pi, который грузится с SD-карты.
В свой репозиторий я поместил исходный код Docker-образов, упрощающий сборку минимального Linux и настройку окружения для сетевой загрузки.
Надеюсь, что статья сэкономит вам время, которое вы сможете потратить на свой увлекательный проект.
Читать далееПривет, Хаброжители! Мы приготовили для вас новый перевод про генерацию 3D-мешей из текста.
Недавно мне захотелось научиться преобразовывать текст в 3D-меши для последующего рендеринга, так, чтобы такими объектами можно было манипулировать в рамках моего проекта Geotoy и на языке Geoscript. Я занялся исследованием инструментов и библиотек, которые могли бы решать разные аспекты этой задачи, и потом собрал конвейер, реализующий всё вместе. Получились красивые 2-многообразные 3D-меши, поддерживающие произвольные шрифты, текстовые стили и многое другое.
В этом посте мы подробно разберём всю получившуюся конструкцию. Надеюсь, материал пригодится всем, кому интересно реализовать что-то подобное и самостоятельно пустить такой проект в работу.
Читать далее