Search
Write a publication
Pull to refresh
3
0

Пирожочек

Send message

Реализация простого SSE клиента на Dart

Level of difficultyMedium
Reading time3 min
Views1.2K

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

Мы рассматривали два подхода: WebSocket и Server-Sent Events (SSE). Оба варианта соответствовали нашим требованиям, но в итоге мы остановились на SSE — из-за его простоты реализации и использования стандартного HTTP-протокола.

Читать далее

Хранение 1 ТБ в виртуальной памяти на компьютере с 64 ГБ памяти с использованием Chronicle Queue

Reading time4 min
Views5K

Java разработчики часто сталкиваются с проблемой обработки очень больших наборов данных в рамках ограничений виртуальной машины Java (JVM). Когда размер кучи значительно увеличивается — часто более чем на 32 ГБ, — время паузы при сборке мусора (GC) может увеличиваться, что приводит к снижению производительности. В этой статье рассматривается, как Chronicle Queue обеспечивает хранение и эффективный доступ к набору данных размером 1 ТБ на компьютере с 64 ГБ оперативной памяти.

Читать далее

Flutter дайджест – Март 2025

Reading time3 min
Views1.4K

Привет, Flutter-разработчики! 👋 В этом выпуске вас ждут горячие новости, свежие пакеты и интересные видео.

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

Читать далее

Балансировка нагрузки LLM через Nginx

Level of difficultyMedium
Reading time6 min
Views4.2K

💻 Применение Nginx для балансировки нагрузки LLM чат сессий

В сети много примеров подключения LLM модели к Telegram-боту, но при большом числе пользователей нет руководств по распределению нагрузки между процессами — все туториалы предлагают монолит с одной репликой. Эта статья объясняет, как балансировать нагрузку бота для тысяч пользователей, в том числе, после подключения model context protocol для интеграций

Читать далее

Разработчики представили Typed Grammar — проект для изучения естественных языков с помощью TypeScript

Reading time1 min
Views5.1K

Разработчики Ифэн Ван (Yifeng Wang) и Сатоши Терасаки (Satoshi Terasaki) представили проект Typed Grammar. С его помощью пользователи могут выучить грамматику естественных языков с помощью TypeScript. Уже сейчас разработчики подготовили версию для изучения японского.

Читать далее

Прячем шифрованные диски

Reading time4 min
Views9.4K

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

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

Что, если попробовать совместить одно с другим?

Читать далее

Быстрый путь блокирования в PostgreSQL

Level of difficultyHard
Reading time9 min
Views4.1K

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

Читать далее

Бьем автоматизацией по ручной работе с данными: как мы избавились от рутины с ML-моделями

Level of difficultyEasy
Reading time7 min
Views6.2K

Всем привет! Это DS-ы Павел Парфенов и Максим Шаланкин из команды Финтеха Big Data МТС. Мы и наши коллеги Data Scientists и Data Analysts ежедневно обрабатываем огромные массивы информации, строим модели и выделяем целевые сегменты, чтобы принимать обоснованные решения. Наши рутинные задачи — предварительный анализ данных (EDA), обучение ML-моделей и сегментация аудитории — часто отнимают кучу времени и ресурсов. 

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

Читать далее

Вертим кеш на GPU

Level of difficultyMedium
Reading time10 min
Views4.8K

Идут значит: Redis, Docker и Postgres.
R: Как вы собираетесь надругаться над нами сегодня?
D: Я буду вертеть вас на GPU!
P: Ого, прямо на GPU?
D: Да, ресурсов - не жалею!

В данной статье мы:

1. Cравним Redis и Postgres (в качестве системы кеширования).
2. Запустим их на GPU.
3. Оценим их быстродействие.

Давайте разбираться...

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

Reading time5 min
Views61K

Одноплатные компьютеры уже давно не просто игрушка для энтузиастов. Это мощные системы, которые могут работать с AI, подверрживать одновременно несколько 4K-дисплеев, управлять роботами и даже выполнять серверные задачи. В 2025 году рынок пополнился новыми моделями, которые впечатляют возможностями и ценами. В этом обзоре — пять самых интересных новинок, которые подойдут как для разработчиков, так и для тех, кто ищет компактную, но мощную альтернативу традиционному ПК.
Читать дальше →

Переключение между контекстами убивает эффективность разработчиков на корню

Reading time10 min
Views30K

Я программист. Меня всё время отвлекают, и я хочу об этом поговорить.

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

Каждое короткое сообщение, которое вы отправляете коллеге в Slack, отнимает у него 23 минуты продуктивной работы. И это далеко не всё.

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

Читать далее

Сбор данных из DHT (как работают агрегаторы)

Level of difficultyEasy
Reading time3 min
Views4.5K

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

Начнем с базы

Разберемся, как работает IKnowWhatYouDownload (и подобные агрегаторы).
Вот что говорят его создатели:
Торрент-файлы попадают в нашу базу данных несколькими способами. Во-первых, мы собираем новинки с популярных торрент-сайтов (как зарубежных, так и российских). Во-вторых, у нас есть компоненты, которые постоянно мониторят DHT-сеть. Если кто-то ищет или анонсирует infohash, мы также добавляем его в базу.

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

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

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

Что такое DHT?

DHT (Distributed Hash Table) — это технология, которая используется в торрент-сетях для децентрализованного поиска участников раздачи (пиров) без необходимости подключения к центральному трекеру. Вместо того чтобы полагаться на сервер, DHT позволяет каждому участнику сети хранить и обмениваться информацией о пирах напрямую.

Читать далее

Ложные убеждения о нулевых указателях

Reading time10 min
Views6.7K
В этой статье предполагается, что вы знаете, что такое неопределённое поведение, и почему его не следует провоцировать, в самом общем виде знаете, как работают процессоры, а также умеете принимать во внимание конкретный контекст, не злоупотребляя излишним обобщением частностей. Эти убеждения можно считать заблуждениями, так как они не применяются глобально, а не потому, что обратное от них действует глобально. Если вы не уверены в себе, то, возможно, от прочтения этого текста вы больше проиграете, тем самым подпортив себе навыки программной инженерии. Поэтому ничего страшного, если вы не будете знакомиться с постом, а просто почитаете комментарии на Reddit — там уже написали, что может пойти не так, если вы, несмотря ни на что, углубитесь в этот материал.

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

15 мс на ответ: как мы добились высокой скорости работы API Gateway

Level of difficultyMedium
Reading time6 min
Views11K

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

Читать далее

Парсим сайт для получения УДК иерархии

Level of difficultyEasy
Reading time6 min
Views746

Предыстория:

У меня на домашнем ПК скопилось некоторое количество книг в электронном формате. Это в основной массе техническая литература. И мне хотелось всё это систематизировать. Придумывать не хочется, когда в книгах есть УДК, ББК классификаторы.

Читать далее

Использование JSONB-полей вместо EAV в PostgreSQL

Level of difficultyEasy
Reading time7 min
Views5.6K

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

Читать далее

Null-safety в Spring приложении с JSpecify и NullAway

Level of difficultyEasy
Reading time6 min
Views3.6K

Новый перевод от команды Spring АйО расскажет о проблемах, вызываемых неожиданным появлением NullPointerException в продакшен, о способах борьбы с этой проблемой, над которыми работает команда Java и о скором выходе новых решений, которые помогут разработчикам навсегда избавиться от этого кошмара.

Читать далее

Как Кремниевая долина превращает бум ИИ в новый пузырь доткомов

Reading time8 min
Views15K

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

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

Читать далее

Хранение пустых (NULL) значений в таблицах PostgreSQL

Level of difficultyHard
Reading time6 min
Views6.8K

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

Читать далее

Information

Rating
Does not participate
Registered
Activity