Обновить
12
0
Александр Шатилов@alexbraun

AI CPTO

Отправить сообщение

Как ИИ поможет создавать учебные курсы

Время на прочтение7 мин
Охват и читатели1.9K

Привет, Хабр! Меня зовут Полина Шнайдер, я ML-инженер в лаборатории LISA в ИТМО. Сейчас я разрабатываю систему, которая помогает нашим преподавателям создавать программы учебных курсов. Разработка учебной программы ― творческая работа, во многом завязанная на опыт преподавателя. Но в ней есть большая доля рутины, например, глубокий анализ и проработка тематического плана, которую я и хотела бы автоматизировать с помощью больших языковых моделей, дополненных данными из нашей университетской базы знаний. Надо отметить, что я не просто решаю практическую задачу, а занимаюсь исследованиями. Не все большие языковые модели (особенно облегчённые версии) обладают глубокими знаниями по университетским дисциплинам. Поэтому одной из целей моей работы было выяснить, могут ли модели меньшего размера давать адекватные ответы с дополнительным контекстом из университетской базы.

В этой статье расскажу, что у нас получилось.

Читать далее

Как мы запустили автоматическую модерацию видео в объявлениях Авито

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели4K

Привет! Я Владимир Морозов, senior DS engineer в команде модерации Авито: в основном занимаюсь автомодерацией видео, но развиваю и другие проекты. В статье рассказываю, с какими трудностями мы столкнулись при модерации видео в условиях небольшого количества данных, и как их решили. Думаю, материал будет полезен всем, кто занимается похожими задачами в крупных продуктовых компаниях.

Читать далее

Взлом YouTube для быстрого скачивания видео

Время на прочтение9 мин
Охват и читатели98K
Мы неоднократно рассказывали о специальном софте, который позволяет скачивать видео с YouTube. Это в первую очередь youtube-dl (yt-dl) и его клоны, такие как yt-dlp и yt-dlc. С ними воюют могучие копирасты, пытаются удалить их из поисковой выдачи, с хостингов, с Github и так далее, по известной схеме «тотальная война».

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

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

Скачиваем кусок видео с YouTube с помощью ffmpeg

Время на прочтение5 мин
Охват и читатели16K

Я выступил с докладом на WordCamp US 2023 и захотел скачать видео с ним. Я всегда стараюсь хранить собственные копии таких видео, потому что некоторые конференции в прошлом со временем закрывали к ним доступ.

Моя презентация в прямом эфире транслировалась через YouTube, однако получившееся видео длится 9,5 часа!

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

Читать далее

Синхронизация локальных изменений с docker/kubernetes контейнером

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели15K

Салют!

Хочу рассказать вам про такие замечательные инструменты как docker compose(быть точнее про новую возможность watch), skaffold, tilt.

Рассказать для чего они полезны, как пользоваться и с примерами.

Читать далее

Синхронизация локальных изменений с kubernetes контейнером. Часть 2

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели3.1K

В предыдущей статье показал вам как работают docker desktop watch, skaffold dev и tilt up, которые помогают синхронизировать локальные изменения в контейнер, что очень важно во время разработки.

На этот раз хочу показать DevSpace и Garden, эти инструменты очень похожи на Tilt, у них есть dashboard, как у Tilt, есть мгновенная синхронизация изменений и под катом вы увидите, как легко можно запустить проект в kubernetes и начать разрабатывать.

Читать далее

Как уменьшить вес продуктовой анимации в 400 раз (без AI)

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели13K

Все любят красивую и качественную графику, но обычно такая графика весит много и влечёт проблемы с её добавлением в дистрибутив проекта. А, возможно, и доработки по внешней загрузке или самое частое — сжатие с потерей качества. Каждый дизайнер хоть раз, да говорил «Вот бы можно было и качество сохранить, и отдать разработчикам легкие файлы…». Сегодня нет классных AI-решений для этой задачи, но в этой статье мы расскажем о том, как нам удаётся значительно ужимать графику с использованием растровых и векторных элементов, содержащей альфа-канал.

В статье мы ответим на следующие вопросы: Какой формат анимации с растровыми элементами выбрать для использования в мобильном приложении? Как уменьшить вес файла и не потерять качество картинки? И как со всем этим связаны Lottie-анимации?

Читать гайд

React hooks, как не выстрелить себе в ноги. Часть 4

Время на прочтение13 мин
Охват и читатели25K

Использование ref в функциональных компонентах играет две роли:

1. С помощью них можно получить ссылку на dom элементы и react компоненты

2. ref можно использовать как стабильные переменные.

В этой статье сосредоточимся на первой роли, разберем, как с помощью ref получить доступ к dom элементам и компонентам react, включая такие какие способы как createRef, useRef и ref callback. Обсудим для чего нужны forwardRef и useImperativeHandle , и как с их помощью получить ссылку на функциональные компоненты, спойлер: нельзя так просто получить ссылку на функциональный компонент с помощью ref. А уже в следующей статье обсудим роль ref в качестве стабильной переменной, и как это облегчит нам жизнь при использовании useEffect, useMemo, useCallback.

Читать далее

Наблюдение за температурой: введение в холодные и горячие Observable в rxjs

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели25K

По мере изучения RxJS разработчик рано или поздно сталкивается с такими понятиями, как cold и hot observable. А на технических собеседованиях в команды, которые используют RxJS, можно услышать вопросы по этой теме.

Например, чем горячий поток отличается от холодного? Можно ли холодный поток превратить в горячий и наоборот? И если да, то как это сделать?

В статье попробуем разобраться в теме и найти ответы.

Читать далее

5 советов для прокачки своих навыков в Angular

Время на прочтение9 мин
Охват и читатели26K

Этим летом мы с Ромой запустили серию твитов с полезными советами и приемами по Angular. Сообщество тепло встретило эту инициативу, и я решил написать обобщающую статью.

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

Читать далее

Полное руководство по стратегии обнаружения изменений Angular onPush

Время на прочтение8 мин
Охват и читатели116K

image


Default cтратегия обнаружения изменений


По умолчанию Angular использует ChangeDetectionStrategy.Default стратегию обнаружения изменений.


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

Читать дальше →

Ленивые бесконечные списки на основе Deferrable Views

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5K

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

В статье рассмотрим, как сделать бесконечные ленивые списки на основе Deferrable Views, недавно появившихся в Angular 17 и затронем некоторые моменты оптимизации предлагаемого подхода. Статья содержит примеры кода и демонстрационное приложение, показывающее применение Deferrable Views для решения задачи.

Читать далее

Насколько быстр Javascript? Симулируем 20 миллионов частиц

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели18K

Я бросил себе вызов: симулировать 1000000 (миллион) частиц на чистом Javascript на телефоне, используя только CPU и добившись 60 FPS.

Поехали.

Задача не особо сложна, если выполнять всю работу на GPU, но правило гласит, что нужно пользоваться только CPU, при этом работая на JS, так что никакого WASM.

Читать далее

Работа с событиями на стероидах

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели4K

Это будет познавательная статья про одну из самых интересных возможностей Angular, о которой редко вспоминают. Но также это будет и реклама нашей open-source-библиотеки. Поскольку вы, возможно, просто не знаете, насколько она вам нужна. 

За какой-то 1кБ gzip вы сможете улучшить DX во многих различных сценариях, которые мы рассмотрим ниже. Если вы уже знакомы с этой библиотекой, в статье я расскажу про пару новых возможностей.

Как Angular работает с событиями? Что происходит, когда вы пишете (click) в шаблоне? Какая магия обрабатывает клавишу Escape, когда вы подписываетесь на (keydown.esc)? Немного заглянем в исходный код и узнаем про малоизвестный публичный API и как можно использовать его себе во благо.

Читать далее

Замыкания в JavaScript для начинающих

Время на прочтение8 мин
Охват и читатели124K
Замыкания — это одна из фундаментальных концепций JavaScript, вызывающая сложности у многих новичков, знать и понимать которую должен каждый JS-программист. Хорошо разобравшись с замыканиями, вы сможете писать более качественный, эффективный и чистый код. А это, в свою очередь, будет способствовать вашему профессиональному росту.

Материал, перевод которого мы публикуем сегодня, посвящён рассказу о внутренних механизмах замыканий и о том, как они работают в JavaScript-программах.

Читать дальше →

Как работают this, call, apply и bind в Java Script: разбираемся на примерах

Время на прочтение3 мин
Охват и читатели50K

Привет, Хабр! Эту статью написал Тарас Голомозый, fullstack web-разработчик и преподаватель в школе программирования Эльбрус Буткемп. В своей практике он часто сталкивается с кейсами выпускников, которых на собеседовании просят рассказать о роли ключевого слова this в JavaScript. Простого определения про ссылку на контекст часто оказывается недостаточно, требуется более глубокое погружение в тему. В этой статье он на нескольких примерах разбирает, в каких ситуациях может пригодиться это ключевое слово и как используется call, apply и bind.

Читать далее

Squad Health Check: измеряем здоровье команд

Время на прочтение9 мин
Охват и читатели37K
Метрики, KPI, SLA, DoD, OKR — численных показателей производительности и эффективности команд существует много, но часто их недостаточно, чтобы понять, как на самом деле обстоят дела в команде. Довольны ли люди тем, что они делают, гордятся ли своим продуктом, хотят ли идти в офис?

Squad Health Check — модель оценки здоровья команды, придуманная в Spotify, и сегодня расскажем, как мы в Яндекс.Деньгах измеряем наше здоровье и что из этого вышло.


Читать дальше →

Измеряем команду с JIRA и Grafana: sprint reports, грейдирование и не только

Время на прочтение10 мин
Охват и читатели18K

Всем привет! Меня зовут Дмитрий Шкилёв, я тимлид команды Teachers Platform. Мы занимаемся личным кабинетом преподавателя и внутренними ресурсами, которые необходимы для обеспечения работы преподавателей. 

Сегодня хотелось бы поговорить про такую не очень популярную историю, как измерение показателей команды разработки. За рамками статьи хочу оставить, почему необходимо измерять что-либо в работе команды — это тема для отдельного рассказа. Также тут вы не найдёте готовых рецептов для построения бордов в Grafana, но зато получите всё необходимое, чтобы начать их делать самостоятельно. Цель статьи — поделиться, как с минимумом инструментов измерять интересующие тимлида показатели.

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

Читать далее

Журнал архитектурных решений (ADL) при проектировании информационных систем

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели11K

Для сложных информационных систем бывает крайне сложно принять компромиссные решения с учетом ограниченных ресурсов. Одним из возможных способов решения является подход Architecture Description Log, который внедрен в крупных компаниях, таких как Google, Spotify и Microsoft. В этой статье мы рассмотрим основные положения ADL и обсудим, чем это может быть полезно для создания сбалансированной архитектуры в гибкой методологии разработки.

Читать далее

Градиентный бустинг. Реализация с нуля на Python и разбор особенностей его модификаций (XGBoost, CatBoost, LightGBM)

Уровень сложностиСложный
Время на прочтение28 мин
Охват и читатели42K

На сегодняшний день градиентный бустинг (gradient boosting machine) является одним из основных production-решений при работе с табличными, неоднородными данными, поскольку обладает высокой производительностью и точностью, а если быть точнее, то его модификации, речь о которых пойдёт чуть позже.

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

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность