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

Все потоки

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

Оптимизация производительности кода — это тяжёлый труд

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

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

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

Читать далее

[НЕ]Вайбкодим анализатор страниц на FastAPI

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

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

В нашем чате "Кот на салфетке" (кстати, заходите — у нас весело) регулярно всплывают бугурты об использовании различных ИИ-агентов (Copilot, Cursor) для написания кода. Главными инициаторами сего действа выступают Сергей и Кавай (расскажите маме, что вы в "тиливизаре").

Они оба проповедуют диаметрально противоположные позиции:

Читать далее

Скрытая стоимость BI: что не учитывают 8 из 10 компаний при внедрении аналитических систем

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

Почему, по данным экспертов GlowByte, целых 80% проектов внедрения систем бизнес-аналитики выходят за рамки изначально запланированного бюджета? Ответ парадоксально прост и сложен одновременно: компании систематически недооценивают реальную совокупную стоимость владения BI-системами. Наши наблюдения показывают, что большинство заказчиков концентрируются исключительно на очевидных статьях расходов, игнорируя множество "скрытых" факторов, которые неизбежно проявляются по мере развития проекта.

За годы работы с десятками проектов внедрения аналитических систем мы в GlowByte выявили закономерность — даже опытные ИТ-директора порой не учитывают до 40% реальных затрат при планировании бюджета на BI-инициативы. В этой статье я поделюсь инсайтами о наиболее типичных "финансовых ловушках", которые подстерегают компании на этом пути.

Читать далее

Сингулярность чёрных дыр: что скрывается за горизонтом событий?

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

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

Читать далее

В поисках хорошего стиля. Часть 2. Пишем свой линтер на Go для golangci-lint

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

Привет! Меня зовут Артём Блохин, я Go-разработчик в команде интеграций Островка. Сегодня поговорим о линтинге кода.

Если бы «Сумерки» были про код, Эдвард — был линтером, а Белла — легаси-кодом, их диалог звучал бы так:

Читать далее

Tcl/Tk. SVG-виджеты. Генератор градиентной заливки

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

После серии статей про svg-виджеты в tcl/tk, меня не оставляло чувство какой-то незавершенности. Всматриваясь в проект svgwidgets, стало понятно, что не хватает утилиты с удобным интерфейсом для генерации градиентной заливки.

Читать далее

Как использовать японские подходы в IT. Часть 5: в плену процесса

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

И каппа тонет (Каппа — японский водяной). Конь о четырех ногах, да спотыкается. Чаще всего тонут хорошие пловцы.

Японские пословицы.

(こんにちは) Конничива! Я Виктор, менеджер проектов в Selectel. Это пятая часть цикла о применении TPS/TBP (Toyota Production System/Toyota Business Practice) на практике в IT. Любому инженеру знакомо правило: работает — не трожь, не сломано — не чини. Но что делать, когда оно работает, но не так? Или работает, но часто ломается? Разбираемся под катом.
Читать дальше →

Играем в старый мобильный Minecraft… на ПК без эмуляторов?

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

Добрый день, хабровчане! Сегодня речь пойдет о Minecraft PE — в основном для тех, кто хочет окунуться в ностальгию по старым версиям именно мобильного (карманного) издания. Способ поиграть на ПК весьма нетривиальный, зато удивит последующими возможностями игры и не использует эмуляцию.

Читать далее

Почему мы делаем собственное объектное хранилище в MWS

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

Привет! Меня зовут Алексей Баранов, я руковожу направлением Data Storage Systems в облаке MWS. Мы начинаем серию статей, в которой расскажем, как устроены наши системы хранения, почему мы их делаем так и почему именно такие.

В этой статье расскажу, как мы подошли к выбору технологий для object storage новой облачной платформы. Обсудим плюсы и минусы популярных на рынке решений вроде Ceph RGW, какие требования мы предъявляли к системе, и какая архитектура в итоге получилась.

Читать далее

Проект «Мультиключ». Эмулятор ключей от домофона на ESP8266

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

Никак не доходили руки до написания этой статьи, точнее я её планировал написать после полноценного перевода устройства на esp32 c3, который никак не состоится.

Вкратце напомню о чем этот проект, и чем он закончился в прошлой статье. Мы разрабатываем компактное устройство для чтения, хранения, записи и эмуляции электронных ключей (которые чаще всего встречаются у нас в подъездах и на проходных). Изначально это был проект одного из моих учеников. Но в этом году, для участия во ВСОШ по робототехнике ему пришлось поменять тему работы, которая тоже довольно интересная, как-нибудь по неё тоже напишу). А я по наличию времени и энтузиазма продолжил добивать программную часть.

В прошлой статье мы перевели устройство на esp8266, что сделало его более производительным и решило проблему с памятью. У нас получилось прочитать и эмулировать контактные ключи dallas и русские Сyfral и Metacom. После этого мы решили перейти к бесконтактным ключам стандарта EmMarine.

Без контактные ключи уже так просто, при помощи одного резистора, не прочитаешь, нужен детектор-генератор на 125 кГц. На этом этапе опять очень помог проект от Alex Malov EasyKeyDublicator. У него я взял схему детектора без изменений. И первые тесты производил на Arduino Nano.

Читать далее

Прячем код по-настоящему: тёмные уголки обфускации R8 и ProGuard

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

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

Подробности

Оптимизация Spark-приложений: шаг за шагом от базовых техник до продвинутых приёмов

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

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

Привет, Хабр! Меня зовут Александр Маркачев и я — Data Engineer команды Голосовой Антифрод в билайн. Расскажу, как борьба с мошенниками может обернуться личным вызовом.

Все техники сопровождаются объяснениями, примерами и рекомендациями для самостоятельного повторения.

Читать далее

От инженеров до барыг, или откуда растут переработки и прочая корпоративная шиза. Часть 2

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

Почему в современном менеджменте столько глупости? Почему руководители принимают идиотские решения, верят в переработки, садистское отношение к сотрудникам и не умеют думать на 2 шага вперёд?

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

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

Разобрать механизм появления барыг

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

Всё про Generic Math в C#

Уровень сложностиСложный
Время на прочтение21 мин
Количество просмотров8.5K


С момента своего релиза в C# 11 и .NET 7 Обобщённая Математика так и осталась тёмной лошадкой в глазах программистов. Разработчики не понимают и не используют эту фичу, статья же ответит на все вопросы и разложит всё по полочкам.

Рассмотрим с нуля концепцию Generic Math. Как она выглядит в C# и других языках программирования, почему вообще появилась. Также зароемся в «кишки» System.Numerics и узнаем, как применить в продакшне кровавого ынтэрпрайза.
Читать дальше →

Dockhost год в проде: как мы строим свою платформу хостинга приложений

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

Всем привет! У нас знаменательное событие — Dockhost отмечает первый день рождения!

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

Меня зовут Евгений Бабий, я один из основателей платформы Dockhost. И в этой статье я хочу оглянуться назад и рассказать про наш путь в построении платформы: что мы задумывали, что в итоге получилось и к чему мы стремимся в будущем.

Читать далее

Управление отставанием lag в Kafka Consumers: как не просто замерить, а стабилизировать

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

Привет, Хабр!

Сегодня рассмотрим, почему отставание у Kafka-консьюмеров — это не просто строчка в kafka-consumer-groups, а метрика, от которой зависит SLA вашего сервиса. Рассмотрим, как её считать без самообмана, как соорудить собственный мониторинг на Python и Go, а главное — чем именно тушить всплески lag’а: throttle, autoscale и backpressure.

Читать далее

Шестидесятилетний заключённый и лабораторная крыса. F# на Godot. Часть 5. Ошибки и исключения

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

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

Я начал с ошибок, потому что Godot эту тему фактически проигнорировал, и вряд ли за ненадобностью, так как несколько раз мне уже было очень больно. У меня всё ещё не дошли руки покопаться в GDScript, так что я понятия не имею, вызван ли этот пробел ограничениями языка или архитектурным решением, но в любом случае нам его надо закрывать.

C# и ФП пропагандируют разные подходы к ошибкам. F#, будучи на перепутье, испытывает влияние обоих. Можно много говорить про плюсы взаимного обогащения культур, но судя по публичным баталиям, это не совсем наш случай. Вместо синтеза я куда чаще наблюдаю эмоциональные взрывы в среде представителей то одного, то другого лагеря. Я не буду ввязываться в эту борьбу (в этот раз) и сосредоточусь на решении более насущной задачи. Мне нужно доработать интероп так, чтобы он соблюдал привычную систему распределения ответственности. Так что сегодня только рутина, без красивых ходов и эффектных бросков.

Читать далее

Исследование SETI выявило необъяснимые импульсы от далеких звезд

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

Более шестидесяти лет назад поиск внеземного разума (SETI) официально начался с проекта Ozma в обсерватории Гринбэнк на Западном берегу, штат Вирджиния. Под руководством знаменитого астронома Фрэнка Дрейка (который придумал уравнение Дрейка), это исследование использовало 25-метровую (82-футовую) тарелку обсерватории для наблюдения за Эпсилон Эридана и Тау Кита — двумя близлежащими солнцеподобными звездами — в период с апреля по июль 1960 года. С тех пор было проведено несколько исследований на разных длинах волн для поиска признаков технологической активности (так называемых «техносигнатур») вокруг других звезд.

Хотя не было найдено никаких убедительных доказательств, указывающих на присутствие развитой цивилизации, было много случаев, когда ученые не могли исключить эту возможность. В недавней статье ветеран NASA Ричард Х. Стэнтон описывает результаты своего многолетнего исследования более 1300 звезд, похожих на Солнце, на предмет оптических сигналов SETI. Как он указывает, это исследование выявило два быстрых идентичных импульса от звезды, похожей на Солнце, находящейся примерно в 100 световых годах от Земли, которые совпадают с аналогичными импульсами от другой звезды, наблюдавшимися четыре года назад.

Доктор Стэнтон — ветеран Лаборатории реактивного движения NASA (JPL), в чьи обязанности входило участие в миссиях Voyager и работа в качестве технического руководителя миссии Gravity Recovery And Climate Experiment (GRACE). После выхода на пенсию он посвятил себя поиску внеземного разума (SETI) с использованием 76,2-см (30-дюймового) телескопа в обсерватории Shay Meadow в Биг-Беар, Калифорния, и многоканального фотометра, который он самостоятельно спроектировал. Статья, описывающая результаты его исследования, была опубликована в журнале Acta Astronautica.

Читать далее

Разведочный анализ данных (EDA) через тематическое моделирование и мягкую кластеризацию

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

Привет! Меня зовут Соня Асанина, я работаю в команде Центра технологий искусственного интеллекта Газпромбанка. В этой статье я расскажу, как тематическое моделирование и мягкая кластеризация помогают нам извлекать ценные инсайты из клиентских отзывов.

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

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

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

Читать далее

Создаем аналог Hamachi на примере ZeroTier для игры с друзьями по сети

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

Преимущества

⭐️ Нет ограничения по слотам.
⭐️ Низкий пинг - можно выбрать любую локацию, например Москва или Питер.
⭐️ Безлимитное количество сетей и устройств, ограничено только мощностью сервера.
⭐️ Нет необходимости покупать дорогостоящий сервер - достаточно арендовать сервер с минимальными ресурсами для обеспечения соединения между игроками, которые и будут выступать хостом.

Читать далее