Pull to refresh
3
0
Максим Коллегин @maxdm

User

Send message

FastCGo: как мы ускорили вызов C-кода в Go в 16,5 раза

Level of difficultyHard
Reading time19 min
Views7K

В Deckhouse Prom++ мы переписали ядро хранения и обработки горячих данных на C++, при этом вся оркестрация и периферия остались в Prometheus на Go, что позволило сохранить полную совместимость с Prometheus. Для частых вызовов кода C++ мы использовали механизм CGo, однако первые тесты показали, что производительность CPU практически не улучшилась из-за его медлительности. В итоге мы переписали CGo, создав собственный механизм вызова.

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

Читать далее

Основные принципы создания иконок

Level of difficultyEasy
Reading time3 min
Views1.7K

Привет, Хабр! Я Маша, продуктовый дизайнер в ОТП Банке. Наш банк последнее время активно развивает дизайн, сегодня хочу поделиться опытом работы с иконками. Сразу скажу, большинство перечисленных принципов вам скорее всего знакомы, но есть некоторые неочевидные нюансы, на которые стоит обратить внимание 👇

Читать далее

Как за один вечер создать репутацию вашего стартапа в поисковой выдаче: 20 бесплатных площадок для быстрого буста

Level of difficultyEasy
Reading time10 min
Views18K

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

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

Читать далее

Game++. Dancing with allocators

Level of difficultyEasy
Reading time34 min
Views12K

C и C++ не имеют встроенной сборки мусора, поэтому разработчик сам решает, как и когда выделять и освобождать память. Мы, конечно, можем покивать в сторону STL, сокрытия аллокаций в контейнерах, но от этого они никуда не денутся. Просто если раньше приходилось думать про выделенный кусок памяти, понимать, как он скажется на времени фрейма, помнить, что его надо удалить (а может, не надо и стоит оставить на следующий фрейм), то теперь всё заворачивается в сахарные контейнеры и разработку в стиле STL-blin-vse-sterpit. STL-то может и стерпит, и даже как-то будет ворочаться, однако не стоит полагаться исключительно на системный аллокатор, бездумно вызывая new или malloc для каждого запроса памяти. Вы ведь понимаете, что std::vector посреди цикла или горячей функции — это плохая идея?

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

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

Я отнюдь не призываю вас встать на путь ручного управления памятью, ибо он будет усеян ловушками, граблями и чреват утечками. Но разработчик в итоге оказывается перед выбором: либо довериться системному аллокатору и столкнуться с проблемами вроде размазанного перфа, когда вроде и код написан правильно, модно и молодежно, но отчего-то работает небыстро, либо взять всё в свои руки, создавая собственные механизмы выделения и освобождения ресурсов.

Ребята из HFT, Database, Automotive и Embedded-систем наверняка могут рассказать немало интересных историй про оптимизацию new/delete. Давайте я расскажу немного про разные аллокаторы в играх?

Аллокатор аллокатору аллокации аллоцировал

Как сделать идеальную вентиляцию в городе, где часто бывает смог: приточка, вытяжка, увлажнитель и кондиционеры

Level of difficultyEasy
Reading time10 min
Views20K

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

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

Нам удалось побывать в умной квартире Александра, в статье подробно о ней расскажем.

Читать далее

Проект «Телепорта»

Level of difficultyEasy
Reading time20 min
Views3.2K

Хочу поделиться с широкой общественностью одним нашим внутренним инструментом, совсем недавно выложенным в публичный доступ. Читатели заставшие ФИДОнет обнаружат знакомые уши ;)

Телепортировать

Икигай — это что такое? Действительно ли он помогает найти смысл жизни или это просто модный хайп из Японии?

Level of difficultyEasy
Reading time24 min
Views17K

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

В статье я поделюсь собственным опытом и опишу алгоритм, по которому я всё делал. Хорошая новость в том, что делается это всего один раз, постоянного ведения Икигай не требует. Если работа сделана тщательно, этот инструмент станет неким «светильником», освещающим путь впереди.

Один раз сделанная работа не значит, что вообще ничего и никогда переделывать и дорабатывать не нужно. Периодически всё же стоит заглядывать в то, что получилось, и подгонять под себя. Люди пластичны, мы приобретаем новый опыт, меняем ценности. Это и должно быть отражено в Икигай.

Прежде всего, добавь себе эту статью в закладки, потому что вряд ли у тебя получится сделать всё, что тут описано, сразу. А иметь под рукой короткое понятное руководство — это удобно. Да и поделиться с кем-то, кому такое тоже надо, будет проще.

Читать далее

Установка любого издания Windows 10/11/Server поверх с сохранением данных и приложений, IoT LTSC поверх Корпоративной…

Reading time4 min
Views21K

Меня всё чаще в комментариях и ПМ спрашивают, как установить так рекомендуемую мной Windows IoT Enterprise LTSC поверх существующей инсталляции (будь то Windows 7, Windows 10 или Windows 11) с сохранением всех приложений, данных и настроек. Я уже писал подробную статью об установке ОС как апгрейда – Как правильно сделать апгрейд ОС — установить Windows 11 поверх существующей с сохранением приложений и настроек / Хабр (habr.com), где рассказывал о разных сложностях, встречающихся на пути установки ОС – новых требованиях к железу, разных языках и, конечно, о несовместимости изданий, не позволяющих обновиться с сохранением приложений и данных пользователя. Но методы редактирования реестра для многих читателей оказались сложными.

И я вообще не затронул тогда Windows Server – как обновиться с Server Core до Server с рабочим столом, как обновить AzureStackHCI до Server Datacenter Azure Edition, и как обновляться с Annual Cycle изданий Windows Server AC (например, 23H2) до LTSC (например, 24H2) и наоборот с LTSC до AC (в 2025 году нас ждёт только ServerDatacenterACorCore).

За пару месяцев с прошлой заметки на форумах MyDigitalLife было выпущено два новых проекта, позволяющих очень упростить процедуру апгрейда, и ниже я расскажу как раз об этом. Мы сможем подготовить образ Windows 11 24H2 IoT Enterprise LTSC так, что с любого издания Windows 7/8/8.1/10 вы сможете обновиться до него без потери данных. Ну и научимся обновлять Windows Server.

Для примеров ниже я буду рассказывать о трёх сценариях:

Pro <-> IoT LTSC, Server Core <-> Full

ИБП для всего дома STARK COUNTRY 3000 INV LT + аккумуляторы Ventura GPL 12-120

Level of difficultyEasy
Reading time5 min
Views21K
Во многих местах за городом часто отключают электричество, но есть способ, как сделать так, чтобы практически не чувствовать этих отключений и жить в загородном доме или на даче с комфортом даже тогда, когда соседи бегают по своим тёмным домам с фонариками.

Источник бесперебойного питания (ИБП) для всего дома работает полностью автоматически, обеспечивает практически мгновенное переключение на питание от батарей при отключении электричества, а когда электричество вновь включают, переключается на питание от сети и заряжает аккумуляторы.



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

Блочное программирование для детей: среды, языки и уроки

Level of difficultyEasy
Reading time7 min
Views4.4K

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

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

Читать далее

Инициатива по интеграции DNS в Windows 11 вызывает опасения экспертов

Reading time3 min
Views9.2K


Как известно, процедура перевода доменных имён в IP-адреса (DNS-резолвинг) опасная по умолчанию. Поскольку в процессе отсутствует сквозное шифрование, то посторонний злоумышленник может получить доступ к этому трафику. Более того, он может подменить ответы на запросы к легитимным сайтам на вредоносные. В конце концов, многие устройства конечных пользователей можно легко настроить так, чтобы они использовали вредоносные DNS-серверы вместо легитимных.

В мае 2024 года Microsoft представила довольно сложную конструкцию внедрения DNS в клиентские устройства, что может решить некоторые проблемы.

Однако независимые специалисты по безопасности беспокоятся, что таким образом Microsoft блокирует систему DNS в сетях Windows. Принятие «белого списка» разрешённых IP-адресов требует максимального доверия к администратору этого списка и угрожает потенциальными злоупотреблениями.
Читать дальше →

Java HotSpot JIT компилятор — устройство, мониторинг и настройка (часть 1)

Reading time8 min
Views41K
JIT (Just-in-Time) компилятор оказывает огромное влияние на быстродействие приложения. Понимание принципов его работы, способов мониторинга и настройки является важным для каждого Java-программиста. В цикле статей из двух частей мы рассмотрим устройство JIT компилятора в HotSpot JVM, способы мониторинга его работы, а также возможности его настройки. В этой, первой части мы рассмотрим устройство JIT компилятора и способы мониторинга его работы.
Читать дальше →

Вскрываем средства для DDoS-атак на российскую ИТ-инфраструктуру. Часть вторая

Level of difficultyMedium
Reading time26 min
Views5.2K

По разным источникам, в 2023 году было зафиксировано несколько миллионов DDoS-атак на российские информационные системы. И судя по статистике, их количество только растёт. В связи с этим, а также по многочисленным просьбам коллег мы решили углубить наше исследование и более подробно разобрать средства используемые для этих атак и продемонстрировать возможные подходы для их анализа.
Хотите узнать о том, как мы проанализировали несколько инструментов таких атак? Добро пожаловать под кат!

Disassemble

Как мы ускорили автоустановку ОС в четыре раза

Reading time13 min
Views19K

Привет! Меня зовут Лев, я системный администратор в Selectel. Ранее рассказывал об адаптации ARM-серверов под наши процессы. Тогда мы столкнулись со множеством проблем, одной из которых была интеграция автоустановки Ubuntu 22.04. Теперь поделюсь, как мы сделали новый процесс автоустановки быстрее, завезли несколько фич, а также ускорили добавление новых ОС.
Читать дальше →

Топ добавок для повышения работоспособности и энергии

Reading time7 min
Views5.8K

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

На связи RISE: сообщество про Ноотропы и Биохакинг. Сегодня разберем особенность добавок для повышения работоспособности и энергии. Сами по себе они не делают человека продуктивным. Они помогают эффективнее выполнять то, что вы делаете каждый день. И, что самое важное, не так важна дозировка, как правильный подбор компонентов для комплексного воздействия на организм.

Читать далее

ИТ с пеленок. 6 игр, которые познакомят детей с программированием. Часть 1

Reading time3 min
Views13K

Если ты влюблен в программирование, перетащить своего ребенка «на эту сторону» тоже однажды захочется. Годовасику про JSON рассказывать, конечно, рано (хотя за колыбельную прокатит), а вот с детьми 4+ уже можно прикоснуться к основам. Помогут в этом специальные игры для детей — 6 из них собрали в этом посте. Некоторые подойдут для дошкольников, другие — для детей постарше.

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

Читать далее

ИТ с пеленок: игры, которые знакомят детей с программированием. Часть 2

Reading time4 min
Views2.3K

Привет, Хабр! Меня зовут Дарья Фролова. Я редактор в МТС Диджитал, а еще — родитель, который старается подбрасывать детям полезный контент получается не всегда.

Пару недель назад я опубликовала подборку игр, которые помогают научить ребенка основам кодинга и логического мышления. Спасибо, что забрали в закладки и посоветовали еще игры. Так что возвращаюсь со второй частью — тут один вариант для шестилеток, остальные — для ребят постарше. Ну, поехали!

Читать далее

Пишем плагин для Atlassian Jira — добавляем на экран задачи вкладку с логом автоматизаций

Level of difficultyEasy
Reading time15 min
Views1.7K

Когда Jira обрастает кастомной логикой, автоматизациями и интеграциями, рано или поздно возникает потребность в отслеживании действий, которые произвели (или не произвели) с задачей все эти роботы.

- Если вам периодически приходят баги о неработающей автоматизации и вы начинаете смотреть логи scriptrunner, automation и прочих JWME – этот момент настал.

- Если заказчик просит фиксировать факт отправки сообщения во внешнюю систему в комментарии к задаче – этот момент точно настал.

- Если вы уже и сами начали создавать комментарии из автоматизаций и groovy-скриптов – момент настал совершенно абсолютно точно.

Этот туториал будет полезен начинающим разработчикам в стеке Atlassian и администраторам Jira, пробующим себя в разработке плагинов.

Читать далее

Как Intel Core i5-12400F и AMD Ryzen 5 8400F ведут себя в играх и какой процессор лучше взять для геймерского ПК

Level of difficultyEasy
Reading time4 min
Views29K

Использовать самые мощные и дорогие процессоры в геймерских сборках - это шаг, который окупает себя далеко не всегда. Опытные сборщики знают, что ключ к оптимальной игровой системе — в балансе компонентов и отсутствии эффекта бутылочного горлышка, когда один компонент ограничивает производительность всей системы. Как ни странно, но этому критерию соответствуют многие далеко не новые CPU. Сегодня мы рассмотрим два таких варианта, сравним их в самых современных играх и узнаем, кто оказался лучше: Intel Core i5-12400F и AMD Ryzen 5 8400F

Читать далее

Запускаем 64-битную библиотеку в пространстве WOW64, часть 1

Level of difficultyHard
Reading time3 min
Views2.7K

Приветствую всех!

Сегодня я вам представлю свои наработки по способу инжекта 64-битных DLL библиотек в процессы WOW64, сам который считал невозможным. Любителей потрогать внутренности Windows приглашаю под кат.

Зайдем поглубже
1
23 ...

Information

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