Pull to refresh
54
0
Волосатов Евгений @FFormula

Программист и Преподаватель

Send message

Знакомство с Jest Mocks

Reading time6 min
Views4.6K


Мокинг — это техника изоляции объектов тестирования путем замены зависимостей объектами, которые можно проверять и контролировать. Зависимостью может быть всё, от чего зависит объект, но обычно это модуль, который объект импортирует.
Читать дальше →
Total votes 10: ↑9 and ↓1+12
Comments0

Методы работы со смещением и дисперсией в модельках машинного обучения

Level of difficultyEasy
Reading time8 min
Views9.4K

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

Эта дилемма определяет, насколько хорошо модель будет работать на реальных данных.

Переобучение и недообучение – это Сцилла и Харибда в ML, между которыми нужно лавировать. С тех давних времен появилось множество методов для решения этой проблемы. Рассмотрим их кратко.

Читать далее
Total votes 14: ↑10 and ↓4+10
Comments2

Взгляд в хранилище данных. Анализ диска с помощью Kali Linux

Reading time8 min
Views5K

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

Читать далее
Total votes 10: ↑8 and ↓2+8
Comments0

SOLID и DRY в Go

Level of difficultyEasy
Reading time5 min
Views7.3K

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

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

В этой статье рассмотрим как эти принципы применяются в golang.

Читать далее
Total votes 12: ↑7 and ↓5+4
Comments8

Эмбеддинги для начинающих

Level of difficultyEasy
Reading time5 min
Views25K

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

В широком смысле, эмбеддинг - это процесс преобразования каких-либо данных (чаще всего текста, но могут быть и изображения, звуки и т.д.) в набор чисел, векторы, которые машина может не только хранить, но и с которыми она может работать. Звучит очень интересно. Казалось бы, наша речь - это так просто, все связано и понятно. Но как это объяснить машине?

В этой статье мы рассмотрим, что такое эмбеддинги и какие они бывают.

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

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

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

Читать далее
Total votes 20: ↑16 and ↓4+15
Comments3

Миф: наличие тестировщиков в Agile-команде необязательно

Level of difficultyEasy
Reading time5 min
Views4.3K

В этой статье я постараюсь развеять один из самых распространенных мифов о разработке по Agile: «Необязательно иметь в команде тестировщиков. Разработчики могут тестировать сами». Я думаю, такой подход возможен в некоторых «особых» сценариях, но в любом случае это было бы не очень эффективно.

Читать далее
Total votes 15: ↑11 and ↓4+9
Comments8

Обзор статьи «StreamDiffusion: конвейер для интерактивной генерации в режиме реального времени»

Reading time11 min
Views1.5K

StreamDiffusion — это новый диффузионный конвейер для интерактивной генерации изображений в режиме реального времени, позволяющий добиться более высокой производительности для прямых трансляций и других подобных сценариев. Он заменяет традиционное последовательное шумоподавление (sequential denoising) на более быстрый пакетный процесс и вводит параллельную очередь ввода-вывода для более плавной работы. В конвейере также используется новый метод Residual Classifier-Free Guidance (RCFG), позволяющий сократить количество этапов шумоподавления и повысить общую скорость работы. Кроме того, он включает стохастический фильтр сходства (Stochastic Similarity Filter) для повышения энергоэффективности. В целом StreamDiffusion может похвастаться 1,5-кратным ускорением обработки и 2,05-кратным увеличения скорости при использовании RCFG, достигая 91,07 кадров в секунду на графическом процессоре RTX4090. Кроме того, значительно снижается энергопотребление, что делает его более эффективным решением для генерации изображений в реальном времени.

Читать далее
Total votes 7: ↑6 and ↓1+7
Comments0

Как будет регулироваться искусственный интеллект в 2024 году?

Reading time8 min
Views2K


В наступившем году вступят в силу первые масштабные законы об искусственном интеллекте, а также будут предприняты глобальные усилия по привлечению технологических компаний к ответственности.
Читать дальше →
Total votes 11: ↑9 and ↓2+9
Comments1

Как построить гибкую и адаптивную компанию чтобы она могла достигать результатов быстрее?

Level of difficultyEasy
Reading time8 min
Views2.4K

Привет, хабр. Меня зовут Курдюмов Дмитрий, я основатель консалтингового агентства Smart units

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

Какую проблему это решает?

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

Читать далее
Total votes 15: ↑10 and ↓5+6
Comments0

Удачный переход Netflix на GraphQL

Reading time8 min
Views5.8K

В 2022 году с приложениями Netflix для iOS и Android произошли серьезные изменения. Мы перевели мобильные приложения Netflix на GraphQL с нулевым временем простоя, что повлекло за собой полное перепроектирование от клиента до уровня API.

До недавнего времени наши мобильные приложения работали на внутреннем API-фреймворке Falcor. Теперь они поддерживаются Federated GraphQL — распределенным подходом к API, при котором доменные команды могут независимо управлять и владеть определенными разделами API.

Сделать это безопасно и без сбоев для 100 миллионов клиентов — чрезвычайно сложная задача, особенно учитывая множество аспектов изменений. В этой статье мы расскажем о широко применяемых методах (помимо GraphQL), которые мы использовали для осуществления этой миграции. Мы обсудим три стратегии — A/B-тестирование, Replay Testing и Sticky Canaries.

Читать далее
Total votes 16: ↑15 and ↓1+16
Comments4

9 главных выводов ИТ-лидеров за 2023 год

Reading time9 min
Views7.6K

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

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

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

Читать далее
Total votes 15: ↑11 and ↓4+8
Comments2

Сериализация данных в Golang с Protobuf

Level of difficultyEasy
Reading time6 min
Views13K

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

Protobuf, или Protocol Buffers, это бинарный формат сериализации, разработанный в Google для эффективного обмена данными между сервисами. Это как JSON, только компактнее, быстрее и типизированнее. Если JSON был вашим первым крашем в мире сериализации, то Protobuf – это тот, с кем вы хотите серьёзных отношений.

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

Читать далее
Total votes 14: ↑9 and ↓5+6
Comments2

Продвинутые техники извлечения данных для достижения максимальной производительности

Reading time12 min
Views3.8K

Cегодня мы поговорим на тему оптимизации производительности для масштабируемых систем.

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

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

Читать далее
Total votes 15: ↑13 and ↓2+15
Comments0

Mockito и как им пользоваться

Level of difficultyMedium
Reading time12 min
Views26K

Привет, Хабровчане!

Помню, как в одном из моих первых проектов, мы столкнулись с проблемой тестирования кода, который зависел от внешних сервисов и баз данных. Это было не только трудоемко, но и занимало уйму времени. И сразу стало понятно, что без мокирования нам не обойтись. Мокирование создать поддельные версии сложных объектов или систем, чтобы мы могли тестировать каждую часть нашего кода изолированно. Это упрощает написание тестов и бустит их выполнение.

Несколько строк кода, и вы уже создаете моки для ваших сервисов и DAO! Mockito предоставляет понятный API для мокирования, который делает тесты не только проще в написании, но и более читабельными.

Читать далее
Total votes 15: ↑14 and ↓1+15
Comments2

Delivery Manager – очередной хайп или новый тренд управления

Level of difficultyEasy
Reading time5 min
Views19K

Несколько лет назад сочетание слов Delivery и Manager редко встречались вместе. Сегодня же количество таких вакансий исчисляется сотнями, и многие компании внедряют у себя такую роль.

Что это? Очередная дань моде? Или вполне четкая трансформация IT-менеджмента? Нужно ли относиться серьезно к этой роли, или через пару лет она также быстро исчезнет, как и появилась?

За ответами на все эти вопросы прошу под кат.

Читать далее
Total votes 17: ↑14 and ↓3+15
Comments21

SwiftUI: Разбираемся с identity на примере переходов

Reading time6 min
Views1.7K

Концепция идентификации (identity) в SwiftUI не так проста, как могло бы показаться на первый взгляд. Один из лучших способов разобраться в ней — понять роль идентичности в переходах (transitions).

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

Читать далее
Total votes 6: ↑5 and ↓1+5
Comments0

Сообщаются ли ваши тесты?

Reading time9 min
Views1.9K

Чтобы быстро продвигаться в рабочих задачах, необходимо иметь уверенность в том, что можно вносить изменения. А уверенность в изменениях зависит от тестового покрытия.

С тех пор как мы это поняли, автоматические тесты стали просто необходимы. Это привело к массовому внедрению шаблонов для старта работы. Однако просто начать работу недостаточно.

Читать далее
Total votes 11: ↑10 and ↓1+11
Comments1

Что нового в Apache Spark 3.4.0 — Spark Connect — Доработки для Shuffle

Reading time8 min
Views2.6K

Spark Connect — это, пожалуй, самая ожидаемая фича Apache Spark 3.4.0. Она была анонсирована на конференции Data+AI Summit 2022 и сейчас широко освещается в социальных сетях. Вот и я решил приобщиться и внести свой небольшой вклад в это дело, продемонстрировав вам несколько интересных деталей реализации.

Читать далее
Total votes 8: ↑6 and ↓2+5
Comments0

Паттерн Одиночка

Level of difficultyEasy
Reading time8 min
Views16K

Паттерн "Одиночка" (Singleton) является одним из паттернов проектирования, который используется для создания класса, имеющего только один экземпляр в системе, и предоставляющего глобальную точку доступа к этому экземпляру. Это означает, что в рамках приложения может существовать только один объект данного класса, и любой запрос на создание нового экземпляра будет возвращать ссылку на существующий.

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

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

Читать далее
Total votes 19: ↑10 and ↓9+3
Comments25

Веб- и мобильная автоматизация в CI-среде

Reading time13 min
Views1.1K

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

Эта статья является продолжением первой, в которой я рассказывал об основах Cucumber BDD с Selenium и Java. 

Без лишних слов, let’s CI, что я подготовил сегодня.

Читать далее
Total votes 10: ↑8 and ↓2+8
Comments1

Information

Rating
Does not participate
Location
Висагинас, Литва, Литва
Works in
Date of birth
Registered
Activity