Pull to refresh
29
0
Дмитрий Головин @GolovinDS

User

Send message

Анализ Android-фич на доступность и внедрение accessibility в процесс разработки

Level of difficultyMedium
Reading time7 min
Views385

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

Читать далее

Хороший рефакторинг vs плохой рефакторинг

Level of difficultyEasy
Reading time10 min
Views7.8K

За последние годы я нанял многих разработчиков. И не раз случалось, что новички сразу заявляли, что наш код требует серьёзного рефакторинга. Но вот в чём дело: во многих случаях случаях их «улучшенный» код оказывался сложнее для понимания и сопровождения. Более того, он обычно становился медленнее и содержал больше багов.

Не поймите меня неправильно. Рефакторинг — это не что-то плохое само по себе. Это важная часть поддержания кода в хорошем состоянии. Проблема в том, что плохой рефакторинг это действительно плохо. И, к сожалению, попасть в ловушку «хотели как лучше, а получилось как всегда» проще, чем кажется.

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

Читать далее

Netpoll: пишем сервера, которые не умирают от нагрузки

Level of difficultyEasy
Reading time4 min
Views3.8K

Вы знаете, что обычные сетевые библиотеки Go начинают «тяжело дышать», если их нагрузить десятками тысяч соединений? Неважно, делали вы HTTP API или свой TCP сервер — дефолтные инструменты вроде net всегда имеют свои лимиты. Тут-то хорош зайдет Netpoll — библиотека, которая позволяет серверам обрабатывать сотни тысяч соединений одновременно и при этом не терять в производительности.

Читать далее

Task изнутри: управление потоками в .NET и создание своих планировщиков

Level of difficultyEasy
Reading time5 min
Views4.9K

Привет, Хабр! Сегодня поговорим о том, как работают задачи в .NET, зачем может понадобиться собственный TaskScheduler и как его реализовать.

Читать далее

Run, change, disrupt или как эффективно управлять различными видами деятельности в организации

Reading time5 min
Views1.7K

Современные компании постоянно сталкиваются с необходимостью управлять множеством разных процессов и инициатив. Чтобы не запутаться в этом сложном мире и максимально эффективно использовать ресурсы, важно разделять проекты и задачи на три основные категории: run, change и disrupt. Это не просто модель для описания потоков работ — это практический подход к управлению деятельностью в организации, помогающий расставить приоритеты и распределить ресурсы с умом.

Читать далее

Динамические SQL-запросы в PostgreSQL: когда, зачем и как

Level of difficultyEasy
Reading time4 min
Views4.9K

Сегодня поговорим о мощной штуке в PostgreSQL, которая одновременно помогает и открывает портал в ад: динамические SQL‑запросы. Динамика — это когда SQL собирается на лету, а не пишется заранее статичным текстом. Звучит неплохо, но при неправильном подходе легко превращается в катастрофу.

Читать далее

Мастерство работы с Java Stream

Level of difficultyMedium
Reading time14 min
Views8.7K

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

Читать далее

Что такое переобучение и как его избежать: основы

Level of difficultyEasy
Reading time8 min
Views3.3K

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

С технической точки зрения, переобучение происходит, когда модель имеет слишком много параметров относительно объёма и разнообразия тренировочных данных. Модель начинает подстраиваться под шумы и случайные отклонения в данных, вместо того чтобы уловить истинные закономерности.

Читать далее

Garbage Collection в Kubernetes: основы

Level of difficultyEasy
Reading time9 min
Views1.7K

Привет, Хабр! Сегодня мы рассмотрим механизмы garbage collection в Kubernetes: как удалять orphaned pods, утилизировать устаревшие данные и управлять томами.

Garbage Collection в Kubernetes — это автоматизированный процесс очистки неиспользуемых ресурсов, который предотвращает засорение кластера «мусором». Без GC кластер может превратиться в лабиринт забытых подов, устаревших ConfigMaps и ненужных томов, что очевидно приведет к снижению производительности и увеличению затрат.

Читать далее

Повышение эффективности воронки продаж. Автоматизация продаж.  Контрольные точки. Часть 3

Level of difficultyEasy
Reading time6 min
Views907

Привет, дорогой друг. Настало время поделиться информацией и про третий инструмент автоматизации. 

В статьях ранее я рассказывал про 2 инструмента из своего топ-3 списка: 

Читать далее

Работа с дисками в РЕД ОС

Level of difficultyEasy
Reading time4 min
Views6.3K

В последние годы российские дистрибутивы Линукс уверенно набирают популярность. Одним из наиболее распространенных дистрибутивов является РЕД ОС. Это разработка компании «РЕД СОФТ» которая с 2014 года занимается разработкой данной ОС. В основу этого дистрибутива была положена CentOS, который в свою очередь построен на основе Red Hat Enterprise Linux. На сегодняшний день на сайте проекта предлагается загрузить РЕД ОС версии 8 на базе ядра Linux 6.6 и РЕД ОС версии 7.3 на ядре Linux 6.1. Также на сайте указано, что операционная система доступна для скачивания с целью изучения и тестирования, а для коммерческого использования РЕД ОС необходимо приобрести лицензию на платной основе.

В этой статье мы не будем рассматривать общие вопросы использования РЕД ОС, а сконцентрируемся на работе с дисковой подсистемой. Тут сразу стоит отметить, что основные команды для управления дисками здесь те же, что и в других дистрибутивах, например, как в том же CentOS.

Читать далее

Понимают ли большие языковые модели данные из таблиц?

Level of difficultyMedium
Reading time7 min
Views7.3K

Всем привет! С вами команда IDP. Сегодня расскажем о том, как мы оцениваем языковые модели для ответов на вопросы по таблицам.

Наша команда занимается интеллектуальной обработкой документов, и мы нередко сталкиваемся с документами, содержащими таблицы. Человек обычно анализирует их, опираясь на геометрию и визуал (границы ячеек, выделение заголовков, выравнивание текстов в ячейках). Таблицы — это двумерные объекты, языковые модели же работают с одномерными последовательностями токенов. Это наталкивает на вопрос: а насколько хорошо LLM справляются с анализом таблиц в документах?

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

Читать далее

GigaChat MAX — новая, сильная модель GigaChat

Level of difficultyMedium
Reading time22 min
Views33K

Салют, Хабр! Прошедший сезон оказался богат на релизы: ровно год назад мы делились новостями о GigaChat Pro, затем весной рассказали об увеличении контекста и улучшении возможностей модели, а совсем недавно завершили обучение GigaChat Vision: мы научили GigaChat понимать картинки и уже пишем про это статью.

Наши модели непрерывно развиваются, обретая всё больше новых функций, и сегодня повод рассказать о них. Встречайте наш новый GigaChat MAX!

GigaChat MAX

State Space Models. Mamba

Level of difficultyHard
Reading time15 min
Views6.6K

Ни для кого не секрет, что доминирующей на данный момент архитектурой в области Deep Learning являются трансформеры. Они произвели настоящий фурор и стали основой для самых известных LLM. На данный момент они используются почти во всех фундаментальных моделях, от тех, что с открытым исходным кодом, таких как Mistral, до закрытых, таких как ChatGPT. Однако, трансформеры не лишены некоторых недостатков. Сегодня мы разберём архитектуру под названием Mamba, которая претендует на то, чтобы стать соперником трансформеров и решить их уязвимости.

Читать далее

Стратегии выживания в постиндустриальном мире

Reading time5 min
Views4.7K

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

Читать далее

Автономный картографический сервер с питанием от USB

Level of difficultyEasy
Reading time11 min
Views5.4K

Представьте себе: вы только что добрались до начала тропы, за многие километры от цивилизации, а приложение с картами на вашем смартфоне решило, что самое время уйти в оффлайн-режим. Статус приложения? Отключено. Обновления? Забудьте об этом. Память? Заполнена. Добро пожаловать на дикую природу, где ваш телефон потерян больше, чем вы сами.

Здесь на помощь приходит Backcountry Beacon — устройство с открытым исходным кодом, которое не зависит от Wi-Fi. В него предустановлены детализированные топографические карты USGS, которые не требуют обновлений; он оснащён надёжным GPS, точно определяющим ваше местоположение; а ещё он работает как простой файловый сервер, где можно хранить всё, что может понадобиться в походе, — будь то руководства по узлам, справочники растений или аудиокниги.

Читать далее

Всё, что вы хотели знать о Django Channels

Reading time10 min
Views4K

Приветствую, друзья!

Когда я впервые начал работать с Django, меня всё устраивало, за исключением одного момента: как сделать так, чтобы приложение могло общаться с пользователем в реальном времени? Веб-сокеты, уведомления, асинхронные запросы — казалось, это точно не про чистый Django. Но затем я наткнулся на Django Channels, и многое изменилось. Channels позволили мне сделать приложение асинхронным, добавить поддержку веб-сокетов и превратить его во что-то гораздо более крутое.

В этой статье я расскажу, как работать с Django Channels.

Читать далее

Scrum или Kanban, что выбрать для вашей команды?

Reading time5 min
Views2.7K

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

Читать далее

Как и зачем использовать Template Method в C#

Level of difficultyEasy
Reading time7 min
Views5.8K

Template Method (он же «Шаблонный метод») — это паттерн проектирования, который определяет скелет алгоритма в методе, оставляя определенные шаги подклассам. Проще говоря, есть базовый алгоритм, но мы можно менять детали, переопределяя части этого алгоритма в наследниках.

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

Template Method позволяет создать базовую структуру этих шагов и менять конкретные реализации без изменения самой структуры. В этой статье мы рассмотрим, как реализовать этот паттерн на C#.

Читать далее

Sidecar на Go: позволь другому заниматься твоими проблемами

Level of difficultyEasy
Reading time4 min
Views2.5K

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

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

Сегодня мы рассмотрим реализацию Sidecar на Golang.

Читать далее
1
23 ...

Information

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