Pull to refresh

Technotext

Assembler в Go: техники ускорения и оптимизации

Level of difficultyHard
Reading time8 min
Views7K

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

В прошлой статье я рассказывал об ускорении копирования элементов одного слайса в другой с помощью средств Go. В этот раз я решил пойти дальше и посмотреть, что можно достичь, начав разговаривать с процессором на его языке. Я выбрал одну из оптимизированных версий функции Copy в качестве объекта исследования из решения задачи VK Cup'22/23, которая копирует только синий компонент RGBA в Paletted картинку. Если интересно узнать как её ускорить почти в 10 раз, прошу под кат.

Читать далее

Dedup Windows vs Linux, MS снова “удивит”?

Level of difficultyEasy
Reading time17 min
Views11K

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

Читать далее

.NET 7 против российской криптографии

Level of difficultyMedium
Reading time9 min
Views27K

Разрабатывая один проект на свежем .NET 7 столкнулся с необходимостью подписывать данные с использованием отечественных криптоалгоритмов. Ранее, в .NET Framework хорошая поддержка работы с со сторонними криптопровайдерами, реализующими семейство алгоритмов ГОСТ (CryptoPro CSP, ViPNet CSP и пр.), шла "из коробки". К сожалению, в новые версии фреймворка часть ранее работающего функционала по работе с CMS-сообщениями не попала, и пришлось восполнять пробел надёжными дедовскими методами, т. е. с помощью старого доброго WinAPI.

Читать далее

Сквозь время – ускоряем автотесты

Level of difficultyMedium
Reading time8 min
Views5.3K

В идеальном мире автотесты должны проходить быстро, чтобы их хотелось запускать как локально, так и в CI. Но почему в большинстве проектов запуск тестов отнимает критически много времени?

– Зачастую причиной является неправильная работа с асинхронными операциями. В статье разберемся, как Jest помогает писать молниеносные тесты, и рассмотрим ключевые сценарии.

Читать далее

Анализ вакансий ИТ в Москве: системное администрирование, 2023г

Level of difficultyEasy
Reading time15 min
Views9.9K

Прошел ровно год с предыдущего анализа вакансий системных администраторов и снова появилась необходимость в актуальных данных для планирования заработных плат специалистам уже на 2024 год.

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

Читать далее

Как получить доступ к chatGPT в России

Reading time4 min
Views1.5M

Всем привет! Перед началом статьи сразу скажу:

САМЫЙ ВАЖНЫЙ ДИСКЛЕЙМЕР: естественно, покупая смс на чужой номер вы полностью компрометируете безопасность своего аккаунта. Мало ли кто его потом еще купит для получения доступа. Поэтому, помните, что представленный в данной статье способ получения доступа - это только на "поиграться". Не стоит вводить туда свои реальные почты и использовать это в работе, так как полученный доступ может быть в любой момент взломан/прикрыт.

Но да ладно, приступим. Здесь без всякого объяснения того что такое ChatGPT - кому надо тот знает. В этой статье я хочу поделиться путем который вас за 30Р может к этому боту привести. Вдаваться в детали бота я не хочу, это чисто статья для ребят которые хотят без лишних запар пройти путь человека который доступ к боту уже получил :)

Как и многих вокруг, меня удивила новая технология от Open AI. Попытался зайти и зарегистрироваться через гугл, но...

Читать далее

Многопоточный Python на примерах: токены отмены

Level of difficultyHard
Reading time10 min
Views11K

В этой статье мы обсудим паттерн "Cancellation Token", популярный в некоторых других языках, но почему-то обойденный вниманием в Python-сообществе. Он о том, как безопасно и красиво завершать работу функции, треда или корутины.

keep_on()

Что такое NiFi

Level of difficultyEasy
Reading time6 min
Views18K

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

Читать далее

Архитектура unity проектов

Level of difficultyMedium
Reading time9 min
Views24K

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

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

Не волнуйтесь, никаких SOLID и других изотерических практик. Коротко, по делу, подкрепленное использованием на нескольких проектах.

Читать далее

Перенос материалов из компонента K2 в стандартный компонент материалов Joomla

Level of difficultyEasy
Reading time12 min
Views1.6K

K2 - в целом неплохой компонент (был). Некоторое время он давал гораздо больше возможностей для отображения контента, чем стандартный компонент материалов Joomla. Однако, время не стоит на месте, и сейчас стандартный компонент не уступает в возможностях компоненту K2. Разработчики Joomla потрудились на славу, чего не скажешь о разработчиках компонента K2. Мало того, что долгое время не обновлялся функционал компонента, так они не подготовили обновление для перехода на 4 версию Joomla. На момент написания этой статьи прошло почти два года с выпуска Joomla 4, а обновления компонента K2 для совместимости с новой версией так и нет. Возможно, на тот момент, когда вы будете читать эти строки разработчики K2 что-то выкатят, но сейчас нет.

Читать далее

50 вопросов для опроса удовлетворённости клиентов, для вашего вдохновения

Reading time15 min
Views38K

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

В этой статье мы сосредоточим внимание на том, как эффективно измерить удовлетворенность клиентов через опросы. Мы представим 50 вдохновляющих вопросов для опроса удовлетворенности, рассмотрим современные метрики, такие как NPS, CSI, CES и CSAT, и обсудим, как избежать распространенных ошибок при проведении опросов. Кроме того, мы предложим обзор платформ для проведения опросов, чтобы вы могли выбрать наиболее подходящий инструмент для вашего бизнеса. Эта статья станет вашим надежным руководством в мире опросов удовлетворенности клиентов.

Читать далее

Микрофронтенды — универсальное решение всех проблем или просто удобный подход?

Level of difficultyEasy
Reading time8 min
Views44K

Сейчас понятие «микрофронтенды» встречается довольно часто, но что это такое и какие задачи они решают? Зачем нам микрофронтенды, если есть микросервисы или монолит? И стоит ли тащить микрофронтенды в свой проект только потому, что это модно? Расскажу об этом, а также о трёх способах организации микрофронтендов: Podium, Single-SPA и Module Federation. Какой среди них лучший и нашли ли разработчики в нём панацею? Об этом читайте под катом.

Читать далее

Как работают text2image модели?

Reading time6 min
Views20K

Вы, наверное, слышали про dalle-2, midjourney, stable diffusion? Слышали о моделях, которые по тексту генерируют картинку. Совсем недавно они продвинулись настолько, что художники протестуют, закидывая в стоки картинки с призывом запретить AI, а недавно, вообще, в суд подали! В этой статье будем разбираться, как такие модели работают. Начнем с азов и потихоньку накидаем деталей и техник генерации.

Читать далее

Gitlab-ci модульные pipelines для вашего enterprise

Level of difficultyHard
Reading time7 min
Views16K

Привет, меня зовут Панов Михаил, я DevOps‑инженер МТС Digital. Хочу поделиться с вами опытом построения «модульных» pipelines на основе gitlab-ci. В этой статье я расскажу, что такое модульный CI/CD, из чего он состоит, для чего нужен и как поможет командам, поддерживающим большой список нетиповых репозиториев.

Читать далее

«Разгоняем» HashSet, HashMap и циклы на примере Dart

Level of difficultyMedium
Reading time11 min
Views5.3K

Если вы занимались профилированием своего приложения, то, глядя на CPU Flame Chart, вероятно, испытывали смесь досады и азарта, глядя на особо «жирный» метод. Досады – что ваша программа всё ещё не идеальна по скорости. Азарт – от того, что вы можете докопаться до причины проблемы и отжать для процессора ещё немного свободного времени на более полезные вычисления. По крайней мере, я регулярно становлюсь жертвой обоих этих чувств, чему данная статья и обязана своим появлением.

Мой кейс – это попытка выжать из игрового движка Flame больше скорости и возможностей, чем он может «из коробки». Гейм-разработка имеет свои особенности по сравнению с «парсингом большого json» или устранением подлагивания при разовом проигрывании анимации, как минимум потому что здесь потенциально объёмные вычисления производятся абсолютно на каждом кадре. Так что, наверное, мой опыт не сильно будет перекликаться с теми проблемами, которые встречает большинство Flutter-разработчиков.

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

Читать далее

Тебе не нужно классическое ООП в твоём бэкенд микросервисе

Reading time24 min
Views20K

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

Читать далее

Как вырастить ИТшника или принстонский Computer Science для школьников

Level of difficultyEasy
Reading time23 min
Views9.9K

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

На практике успеха в этих направлениях достигает лишь малая доля из первоначально заинтересованных. Ученики отваливаются в самом начале пути, столкнувшись с высоким порогом входа в мир ИТ.

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

Читать далее

Визуальный и интерактивный отчёт матрицы коллизий из Autodesk Navisworks в Microsoft Power BI

Level of difficultyEasy
Reading time9 min
Views6.7K

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

Эта статья является более расширенной версией поста с Dzen про формирование динамической матрицы коллизий. Судя по обратной связи, многим не хватило более подробного раскрытия процесса импорта и преобразования отчёта .xml в Power BI и дальнейшая работа с данными. В этой статье я постараюсь дать более подробный гайд, но также освещу весь процесс начиная с формирования поисковых наборов (Search Sets) в Autodesk Navisworks для более целостной картины.

В конце должны получить примерно такой результат...

Читать далее

Как выбрать дефектоскоп: критерии, влияющие на выбор ультразвукового прибора

Reading time17 min
Views3.7K


В статье проверенная информация для инженеров и более узких специалистов. Рассказано, что надо учесть при выборе ультразвукового дефектоскопа. Зависимость выбора от задачи, которую должен выполнить дефектоскоп, от материала, с которым он будет работать и выбор в зависимости от функциональности.
Читать дальше →

Делай нейминг как сеньор

Reading time13 min
Views123K

Это объект Pizza, там хранится инфа о латте, а заказали его в Restaurant или в Pizzeria? Неудобно? Максимально. Мы читаем код существенно больше, чем пишем. И хочется сразу понимать, что происходит, не играя в квесты «что имел в виду автор», «да как это работает» и «я снова ничего не понял». Без навыка давать хороший нейминг невозможно писать качественный и поддерживаемый код. Про нейминг говорят заодно, в рамках архитектуры и общих инженерных практик. В статье поговорим про него отдельно.

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

Читать далее