Думаю, никого сегодня не удивить рекомендательными системами. Их можно встретить повсюду: на сайте с книгами (ozon.ru), блогах (habr.ru), интернет-магазинах (практически любой), стриминговых музыкальных (spotify, Яндекс.Музыка) и видео сервисах (kinopoisk, ivi, amediateka). Самый продуктивный способ разобраться как работают подобные алгоритмы — написать самому с самого начала. Этому и будет посвящена текущая статья. В рекомендательных системах есть два основных подхода: Content-based рекомендации основанные на описании объектов, которые требуется рекомендовать (рекомендуем фильмы, похожие на те, которые понравились пользователю); Коллаборативная фильтрация основанная на оценках пользователя и похожести его на других пользователей.
Continue reading

Оригинал Уже десятилетия я программирую с на объектно-ориентированных языках программтрования. Первым объектно-ориентированным языком, который я использовал, был C++. После этого был Smalltalk и, в конце, .NET и Java. Я фанатично использовал преимущество Наследования, Инкапсуляции и Полиморфизма. Три столпа Объектно-ориентированного программирования. Я жаждал получить обещаное Переиспользование и использовать мудрость полученную теми, кто был до меня в этом новом удивительном мире. Я не мог сдержать волнения при мысли, что можно сопоставить объекты реального мира с моими классами и ожидал, что всё встанет на свои места.
Continue reading

На днях наконец-то решил добраться до такой хайповой темы как Docker: Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами. Изначально использовал возможности LXC, с 2015 года применял собственную библиотеку, абстрагирующую виртуализационные возможности ядра Linux — libcontainer.
Continue reading

Использование переменных окружения в Postman Продолжу тему про Postman. В этой заметке немного расскажу про использование переменных в Postman. JavaScript API Во-первых, напомню, что переменные можно использовать в JavaScript API Postman. Например, для тестов или в pre-request: console.log(pm.variables.get(‘param’)); console.log(pm.environment.get(‘param’)); console.log(pm.globals.get(‘param’)); Объекты variables, globals и environment объекта pm хранят значения переменных из соответствующих scope-ов: из переменных коллекции, из глобального scope и из переменных окружения. Приоритеты получения переменной: pm.environment содержит значения переменных, означенных для окружения, pm.
Continue reading

Вдохновившись статьёй для английских книг, решил проверсти аналогичный анализ для русских произведений. Преподаватель английского языка автора оригинальной статьи утверждал, что прочитав 20 страниц любой книги можно узнать 90% всех слов произведения и далее читать книгу будет значительно проще. В этой статье я хочу проверить аналогичное утверждение для русского языка: сколько страниц необходимо прочитать, чтобы узнать 90% книги. Спойлер: прочитав 20 страниц книги вы практически наверняка не узнаете 90% всех слов.
Continue reading

Наткнулся буквально только что, но, думаю, проблема известная: при запуске из консоли команды jupyter notebook браузер запускается, но при открытии блокнота намертво зависает. Казалось бы, в чём может быть проблема, если только что на другом комьютере всё работало отлично? Однако, внимательный поиск в Google моей любимой поисковой системе натолкнул на мысль, что дело может быть в размере этого блокнота (на момент обнаружения проблемы блокнот дорос до 21Мб). Для проверки этой догадки получил одну из первых версий этого блокнота из VSC (около 200Кб).
Continue reading

Некоторые люди на React Conf спрашивали у меня о том, как улучшить свои навыки программиста. По некоторым причинам люди видят во мне продвинутого программиста, которого следует прислушиваться. Я подумал, что стоит написать статью о моей “мыслительной модели” того, как я подхожу к программированию в течение лет. Расскажу немного о себе: мне 32 года и у меня за спиной более 10 лет стажа. Но только в последние несколько лет я действительно начал чувствовать уверенность в том, что я делаю.
Continue reading

Author's picture

feeeper

Разработчик enterprise-решений. В основном на .NET. В свободное время пишу на golang, python. Немного упарываюсь по ML/DS.

Software developer

Russia