Search
Write a publication
Pull to refresh
-8
Some Name @sswwsswwread⁠-⁠only

Middle Python Backend Developer

Send message

Программирование как разработка теорий: почему senior-разработчики стали ценны как никогда?

Level of difficultyEasy
Reading time6 min
Views39K

В 1985 году учёный Питер Нур будто зрил в будущее, написав свою работу под названием «Programming as Theory Building», которая сегодня стала весьма актуальной. Мы всё чаще видим, как начинающие разработчики бездумно принимают сгенерированный ИИ код, который толком не понимают, а кодовые базы разрастаются лишёнными теоретических основ реализациями. В свете всего этого чётко вырисовывается основная идея Нура: «программа – это не её исходный код».

Читать далее

Domain-Driven Design: ошибки, которые не описаны в книгах

Level of difficultyMedium
Reading time13 min
Views11K

Всем привет! Меня зовут Андрей, уже несколько лет я работаю тимлидом/техлидом в разных компаниях и различных проектах. В последнее время подход Domain Driven Design у всех на слуху. Хотя этот подход развивается уже много лет (с 2003), только сейчас на него обращают активное внимание и многие команды пробуют внедрять его у себя.

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

Читать далее

SoftEther VPN — продвинутый мультипротокольный VPN-сервер и клиент

Reading time3 min
Views411K
Как скоро я смогу вас заинтересовать, если скажу, что в этой статье речь пойдет о VPN-сервере, который может поднимать L2TP/IPsec, OpenVPN, MS-SSTP, L2TPv3, EtherIP-серверы, а также имеет свой собственный протокол «SSL-VPN», который неотличим от обычного HTTPS-трафика (чего не скажешь про OpenVPN handshake, например), может работать не только через TCP/UDP, но и через ICMP (подобно pingtunnel, hanstunnel) и DNS (подобно iodine), работает быстрее (по заверению разработчиков) текущих имплементаций, строит L2 и L3 туннели, имеет встроенный DHCP-сервер, поддерживает как kernel-mode, так и user-mode NAT, IPv6, шейпинг, QoS, кластеризацию, load balancing и fault tolerance, может быть запущен под Windows, Linux, Mac OS, FreeBSD и Solaris и является Open-Source проектом под GPLv2?

То-то и оно. Такое пропустить нельзя.
Читать дальше →

Оптимизация асинхронного сервиса на Python

Level of difficultyMedium
Reading time6 min
Views3.8K

Всем привет! Сегодня хочу поделиться с вами нашим опытом ускорения асинхронного микросервиса на Python примерно на 25%. Я расскажу, какие действия мы предпринимали с командой, что помогло, а что оказалось не особенно полезно с точки зрения ускорения сервиса.

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

Читать далее

ARGUS: как масштабировать рекомендательные трансформеры

Reading time29 min
Views8.6K

Привет! Меня зовут Кирилл Хрыльченко. Я руковожу командой, которая занимается R&D для рекомендательных технологий в Яндексе. Одна из наших основных задач — развивать трансформерные технологии в контексте рекомендательных систем, и мы активно занимаемся этим уже примерно пять лет. Не так давно у нас произошёл новый виток в развитии рекомендательных технологий, которым мы хотим поделиться с вами в этой статье.

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

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

Читать далее

Когда O(n) мешает отбирать резюме в Росатоме

Reading time9 min
Views21K
image

Главная проблема поиска сотрудников — предвзятость. Порой кажется, что наше резюме подходит под свою роль на 100 %, а рекрутер отклоняет его. Проблема с противоположной стороны баррикад: рекрутер должен отсмотреть по 200, 300 и более резюме в день. По разным данным, на каждое уходит всего лишь 6–10 секунд.

А что если можно решить эти две проблемы с помощью ML? Сделать модель, которая исключит любой байес и поможет рекрутеру объективно отбирать подходящих кандидатов (где «подходящесть» обусловлена красивой математикой!).

Мы это сделали. Оказалось, что если вы хотите добиться непредвзятости, то вам придётся внести в систему предвзятость. Оксюморон в статистике!

Что мы увидели:

  • Женатые и замужние — в топе: пока вы не уходите глубоко в анализ, этот быстрый фактор повышает ранг. Чем точнее ваша модель, тем меньше его вес.
  • Английский — плохо: знание английского почему-то работало как антипаттерн, снижая релевантность.
  • ОГУРЕЦ: кто-то зачем-то написал это слово в резюме. Оно попало в словарь модели и получило большой вес.
  • Иксель — люди пишут Excel как угодно, и само слово в правильном написании оказалось снижающим оценку.
  • К резюме может быть приложено много мусора. Самый эпичный пример: авиабилет Москва — Челябинск вместо резюме.

Но давайте начну с начала.
Читать дальше →

Разбираемся с суффиксами квантования LLM: что на самом деле значат Q4_K_M, Q6_K и Q8_0

Level of difficultyMedium
Reading time7 min
Views12K

Привет!
Задумывались, какую версию квантованной LLM выбрать: Q4_K_M, Q6_K или Q8_0? Насколько Q6_K хуже справляется с задачами по сравнению с Q8_0? И что вообще означают все эти буквы в суффиксах?

Примечание: это адаптированный перевод моей статьи на Medium. Перевод был сделан при помощи мозга, а не нейросетей или Google Translate.

Узнать чуть больше про квантование LLM

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

Level of difficultyEasy
Reading time8 min
Views14K

В 2025-м нейросети стали чем-то большим, чем просто инструменты. Это уже инфраструктура. Они умеют всё — от генерации сайтов и UI до видео со звуком и автоматизированных CRM. Но главное — они делают это быстрее, чем мы привыкли. Разбираем, кто сейчас в топе AI-инструментов и почему вокруг них такой шум.

Читать далее

Функциональное и объектно-ориентированное проектирование

Level of difficultyMedium
Reading time6 min
Views7.2K

В современном обучении программированию, как правило, основное внимание уделяется парадигме объектно-ориентированного программирования (OOP) и вытекающей из неё методологии объектно-ориентированного проектирования (OOD). Определённый ренессанс в наше время испытывает парадигма функционального программирования, но практически никогда в связке с ней не рассматривается функциональное проектирование. Попытаемся осветить наше видение этих вопросов.

Читать далее

Наша Вселенная находится внутри сверхмассивной черной дыры — исследование

Level of difficultyHard
Reading time5 min
Views234K

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

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

Это объясняет многое о тёмной материи и позволяет убрать ряд парадоксов. А весь секрет, оказывается, состоял в белых карликах, живущих сотни триллионов лет.

Читать далее

Гайд по зрению: здоровье глаз в цифровую эпоху

Level of difficultyEasy
Reading time20 min
Views19K

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

За свою жизнь я успел пообщаться с десятками специалистов, несколько раз прошёл процесс лечения и даже операцию "лазерной коррекции", и теперь я готов поделиться советом с вами, а также развеять некоторые популярные мифы. Поговорим о БАДах, каплях, мониторах, программах, рисках, и даже про курение.

Я страдал и продолжаю страдать от:
- Мейбомиевого блефарита
- Синдрома сухого глаза
- Спазма аккомодации сетчатки
- Астигматизма
- Близорукости

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

Читать далее

Ускорение тестового набора PyPI на 81%

Reading time12 min
Views1.4K

Компания Trail of Bits уже несколько лет сотрудничает с репозиторием PyPI, помогая добавлять в проект новые возможности и улучшать стандартные параметры безопасности в экосистеме управления пакетами Python.

Читать далее

Топ-7 нейросетей для генерации видео: лучшие AI-сервисы 2025 года

Level of difficultyEasy
Reading time10 min
Views24K

Признайтесь: сколько раз вы хотели сделать видео — для презентации или поста — но вместо вдохновения получали лишь папку с шаблонами и вкладки «Как сделать анимацию за 5 минут»? Идея была, энергия — тоже. Но где-то между рендерами и туториалами всё растерялось.

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

Сегодня мы протестируем 7 сервисов для генерации видео. Но вместо скучного списка с сухими характеристиками — сделаем это иначе.

Уже обратили внимание на обложку? Да, это докторская колбаса и селёдка под шубой — но буквально. Покажем, как нейросети видят названия блюд — не метафорично, а визуально.

Что получится, если макароны по-флотски встанут по команде «смирно»? А Цезарь лично выберет — курицу или креветки?

Будет необычно. Будет живо. И, возможно, немного аппетитно.

Приятного чтения!

Читать далее

Быстрый деплой бота (и не только) на Docker-хостинге с Portainer

Level of difficultyEasy
Reading time16 min
Views3.9K

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

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

За эти два года мне в личку и в чат Telegram-канала довольно часто пишут новички и их вопросы можно разделить на две категории:

Читать далее

Как собрать Docker-образ, который можно запускать в проде (а не только у себя на ноуте)

Level of difficultyEasy
Reading time4 min
Views31K

Если ты пишешь Dockerfile, скорее всего, он работает. Но вопрос не в том, работает ли. Вопрос в другом: будет ли он работать через неделю, на другом сервере, в CI/CD, на чужом железе — и будет ли это безопасно?

Читать далее

Соединяем физику и лирику. Как я собрал рекомендательную систему для стихов с помощью Flask, sqlite-vec и Hugging Face

Level of difficultyEasy
Reading time9 min
Views1.5K

Для песен рекомендательные системы есть, для книг — есть, для фильмов — есть, для стихов — нет. Непорядочек 🤔

Используя Flask, Jinja2, Sentence-Transformers и sqlite-vec, собрал первый прототип рекомендательной системы для стихов. Для машины измерить в цифрах схожесть двух стихов трудно. А для человека — в самый раз. Прикрутил форму оценки рекомендаций, собрал человеческий фидбек.

В статье подробно рассказываю о деталях конструкции.

Читать далее

Почему multiprocessing.Queue() тормозит и как обойти это с помощью shared_memory

Level of difficultyEasy
Reading time6 min
Views1.9K

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

Вы запускаете многопроцессную задачу, кидаете данные в multiprocessing.Queue(), а потом вдруг замечаете... что всё тормозит. Муторно. Медленно. Местами прям отвратительно. Вы смотрите в монитор, на top, на htop, на код — и не понимаете: ну ведь должно же летать! А не летит.

Читать далее

Perforator: новая система непрерывного профилирования теперь в опенсорсе

Level of difficultyMedium
Reading time21 min
Views40K

Привет! Сегодня мы выложили в опенсорс Perforator — систему непрерывного профилирования (continuous profiling), которую используем внутри Яндекса для анализа производительности большинства сервисов.

В Github-репозитории доступен исходный код системы и инфраструктура для развёртывания своей инсталляции Perforator на кластере Kubernetes. Кроме того, Perforator можно использовать на своём компьютере как более простую замену perf record: профили получаются точнее, а оверхед меньше. Исходный код доступен под лицензией MIT (и GPL для eBPF-программ) и запускается под x86-64 Linux.

При помощи Perforator и прошлых подходов к задаче профилирования мы регулярно оптимизируем самые крупные сервисы в Яндексе, например Баннерную крутилку или Поиск, на десятки процентов. Кроме того, Perforator реализует недостающий в опенсорсе компонент профилирования для простой автоматической оптимизации программ с использованием profile-guided optimization. Наши тесты показывают, что использование PGO даёт ускорение около 10% в разных сценариях.

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

Читать далее

Структурированная генерация в LLM

Level of difficultyMedium
Reading time10 min
Views4.2K

Привет. Меня зовут Андрей Соколов, я руководитель команды LLM в AI VK, которая обучает и дорабатывает модели, а потом помогает другим командам интегрировать их в свои продукты. И сегодня я расскажу про такое направление в LLM, как структурированная генерация. 

Читать далее

Mystical: визуальный язык программирования. Что это и как работает?

Reading time4 min
Views9.9K

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

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

Information

Rating
Does not participate
Location
Cascade Station, None, Австралия
Date of birth
Registered
Activity

Specialization

Backend Developer
Middle
From 250,000 ₽
Python
PostgreSQL
Fastapi
Google Cloud Platform
Kubernetes
CI/CD
Docker