Привет, Хабр! Меня зовут Полина Шнайдер, я ML-инженер в лаборатории LISA в ИТМО. Сейчас я разрабатываю систему, которая помогает нашим преподавателям создавать программы учебных курсов. Разработка учебной программы ― творческая работа, во многом завязанная на опыт преподавателя. Но в ней есть большая доля рутины, например, глубокий анализ и проработка тематического плана, которую я и хотела бы автоматизировать с помощью больших языковых моделей, дополненных данными из нашей университетской базы знаний. Надо отметить, что я не просто решаю практическую задачу, а занимаюсь исследованиями. Не все большие языковые модели (особенно облегчённые версии) обладают глубокими знаниями по университетским дисциплинам. Поэтому одной из целей моей работы было выяснить, могут ли модели меньшего размера давать адекватные ответы с дополнительным контекстом из университетской базы.
В этой статье расскажу, что у нас получилось.
Tech Lead using Angular & .net
Как мы запустили автоматическую модерацию видео в объявлениях Авито
Привет! Я Владимир Морозов, senior DS engineer в команде модерации Авито: в основном занимаюсь автомодерацией видео, но развиваю и другие проекты. В статье рассказываю, с какими трудностями мы столкнулись при модерации видео в условиях небольшого количества данных, и как их решили. Думаю, материал будет полезен всем, кто занимается похожими задачами в крупных продуктовых компаниях.
Взлом YouTube для быстрого скачивания видео
Но главным врагом для этих программ остаются даже не правообладатели, а злобная корпорация Google, которая постоянно вносит изменения в YouTube API, чтобы
Сами программки — просто технические инструменты для скачивания общедоступного контента, они ничего не воруют и не пиратят. Просто доступ происходит нестандартным способом, который не предусмотрен официально. Посмотрим, как это делается.
Скачиваем кусок видео с YouTube с помощью ffmpeg
Я выступил с докладом на WordCamp US 2023 и захотел скачать видео с ним. Я всегда стараюсь хранить собственные копии таких видео, потому что некоторые конференции в прошлом со временем закрывали к ним доступ.
Моя презентация в прямом эфире транслировалась через YouTube, однако получившееся видео длится 9,5 часа!
В обычной ситуации я бы скачал видео полностью и обрезал его локально, но тогда я был подключен к WiFi конференции и не хотел ждать всего файла, поэтому решил проверить, можно ли скачать его часть.
Синхронизация локальных изменений с docker/kubernetes контейнером
Салют!
Хочу рассказать вам про такие замечательные инструменты как docker compose(быть точнее про новую возможность watch), skaffold, tilt.
Рассказать для чего они полезны, как пользоваться и с примерами.
Синхронизация локальных изменений с kubernetes контейнером. Часть 2
В предыдущей статье показал вам как работают docker desktop watch, skaffold dev и tilt up, которые помогают синхронизировать локальные изменения в контейнер, что очень важно во время разработки.
На этот раз хочу показать DevSpace и Garden, эти инструменты очень похожи на Tilt, у них есть dashboard, как у Tilt, есть мгновенная синхронизация изменений и под катом вы увидите, как легко можно запустить проект в kubernetes и начать разрабатывать.
Как уменьшить вес продуктовой анимации в 400 раз (без AI)
Все любят красивую и качественную графику, но обычно такая графика весит много и влечёт проблемы с её добавлением в дистрибутив проекта. А, возможно, и доработки по внешней загрузке или самое частое — сжатие с потерей качества. Каждый дизайнер хоть раз, да говорил «Вот бы можно было и качество сохранить, и отдать разработчикам легкие файлы…». Сегодня нет классных AI-решений для этой задачи, но в этой статье мы расскажем о том, как нам удаётся значительно ужимать графику с использованием растровых и векторных элементов, содержащей альфа-канал.
В статье мы ответим на следующие вопросы: Какой формат анимации с растровыми элементами выбрать для использования в мобильном приложении? Как уменьшить вес файла и не потерять качество картинки? И как со всем этим связаны Lottie-анимации?
React hooks, как не выстрелить себе в ноги. Часть 4
Использование ref в функциональных компонентах играет две роли:
1. С помощью них можно получить ссылку на dom элементы и react компоненты
2. ref можно использовать как стабильные переменные.
В этой статье сосредоточимся на первой роли, разберем, как с помощью ref
получить доступ к dom элементам и компонентам react, включая такие какие способы как createRef
, useRef
и ref callback
. Обсудим для чего нужны forwardRef
и useImperativeHandle
, и как с их помощью получить ссылку на функциональные компоненты, спойлер: нельзя так просто получить ссылку на функциональный компонент с помощью ref
. А уже в следующей статье обсудим роль ref в качестве стабильной переменной, и как это облегчит нам жизнь при использовании useEffect
, useMemo
, useCallback
.
Наблюдение за температурой: введение в холодные и горячие Observable в rxjs
По мере изучения RxJS разработчик рано или поздно сталкивается с такими понятиями, как cold и hot observable. А на технических собеседованиях в команды, которые используют RxJS, можно услышать вопросы по этой теме.
Например, чем горячий поток отличается от холодного? Можно ли холодный поток превратить в горячий и наоборот? И если да, то как это сделать?
В статье попробуем разобраться в теме и найти ответы.
5 советов для прокачки своих навыков в Angular
Этим летом мы с Ромой запустили серию твитов с полезными советами и приемами по Angular. Сообщество тепло встретило эту инициативу, и я решил написать обобщающую статью.
Вот мои 5 рекомендаций, которыми хочется поделиться с разработчиками. Эти советы будут подкреплены конкретными примерами из моего твиттера. Они помогут вам поднять свои навыки или как минимум дадут пару практических приемов.
Полное руководство по стратегии обнаружения изменений Angular onPush
Default cтратегия обнаружения изменений
По умолчанию Angular использует ChangeDetectionStrategy.Default стратегию обнаружения изменений.
ChangeDetectionStrategy.Default работает таким образом, что каждый раз, когда что-то меняется в нашем приложении, в результате различных пользовательских событий, таймеров, XHR, промисов и т.д., обнаружение изменений будет запускаться по всем компонентам.
Ленивые бесконечные списки на основе Deferrable Views
При создании удобных и отзывчивых интерфейсов часто возникает ситуация, когда нужно иметь дело с большими коллекциями элементов. Один из способов организации списков – бесконечный просмотр, но данный способ скрывает в себе ряд технических сложностей.
В статье рассмотрим, как сделать бесконечные ленивые списки на основе Deferrable Views, недавно появившихся в Angular 17 и затронем некоторые моменты оптимизации предлагаемого подхода. Статья содержит примеры кода и демонстрационное приложение, показывающее применение Deferrable Views для решения задачи.
Насколько быстр Javascript? Симулируем 20 миллионов частиц
Я бросил себе вызов: симулировать 1000000 (миллион) частиц на чистом Javascript на телефоне, используя только CPU и добившись 60 FPS.
Поехали.
Задача не особо сложна, если выполнять всю работу на GPU, но правило гласит, что нужно пользоваться только CPU, при этом работая на JS, так что никакого WASM.
Работа с событиями на стероидах
Это будет познавательная статья про одну из самых интересных возможностей Angular, о которой редко вспоминают. Но также это будет и реклама нашей open-source-библиотеки. Поскольку вы, возможно, просто не знаете, насколько она вам нужна.
За какой-то 1кБ gzip вы сможете улучшить DX во многих различных сценариях, которые мы рассмотрим ниже. Если вы уже знакомы с этой библиотекой, в статье я расскажу про пару новых возможностей.
Как Angular работает с событиями? Что происходит, когда вы пишете (click)
в шаблоне? Какая магия обрабатывает клавишу Escape, когда вы подписываетесь на (keydown.esc)
? Немного заглянем в исходный код и узнаем про малоизвестный публичный API и как можно использовать его себе во благо.
Замыкания в JavaScript для начинающих
Материал, перевод которого мы публикуем сегодня, посвящён рассказу о внутренних механизмах замыканий и о том, как они работают в JavaScript-программах.
Как работают this, call, apply и bind в Java Script: разбираемся на примерах
Привет, Хабр! Эту статью написал Тарас Голомозый, fullstack web-разработчик и преподаватель в школе программирования Эльбрус Буткемп. В своей практике он часто сталкивается с кейсами выпускников, которых на собеседовании просят рассказать о роли ключевого слова this в JavaScript. Простого определения про ссылку на контекст часто оказывается недостаточно, требуется более глубокое погружение в тему. В этой статье он на нескольких примерах разбирает, в каких ситуациях может пригодиться это ключевое слово и как используется call, apply и bind.
Squad Health Check: измеряем здоровье команд
Squad Health Check — модель оценки здоровья команды, придуманная в Spotify, и сегодня расскажем, как мы в Яндекс.Деньгах измеряем наше здоровье и что из этого вышло.
Измеряем команду с JIRA и Grafana: sprint reports, грейдирование и не только
Всем привет! Меня зовут Дмитрий Шкилёв, я тимлид команды Teachers Platform. Мы занимаемся личным кабинетом преподавателя и внутренними ресурсами, которые необходимы для обеспечения работы преподавателей.
Сегодня хотелось бы поговорить про такую не очень популярную историю, как измерение показателей команды разработки. За рамками статьи хочу оставить, почему необходимо измерять что-либо в работе команды — это тема для отдельного рассказа. Также тут вы не найдёте готовых рецептов для построения бордов в Grafana, но зато получите всё необходимое, чтобы начать их делать самостоятельно. Цель статьи — поделиться, как с минимумом инструментов измерять интересующие тимлида показатели.
Под катом несколько кейсов. Они актуальны для конкретной команды с ее укладом, поэтому прежде всего погружу вас в наши процессы. Но при этом прошу помнить, что статья — не агитация за определённый процесс работы, а описание способа построения дашбордов на примере отдельно взятой команды. Вы вправе сами решить, делать ли вам Code Review, логировать ли время, оценивать с помощью идеальных часов или стори поинтов, использовать ли сабтаски или связанные таски, как связывать баги с задачами и каким образом разделять задачи по эпикам. И я надеюсь, что после прочтения статьи вы сможете создать актуальный для вас борд.
Журнал архитектурных решений (ADL) при проектировании информационных систем
Для сложных информационных систем бывает крайне сложно принять компромиссные решения с учетом ограниченных ресурсов. Одним из возможных способов решения является подход Architecture Description Log, который внедрен в крупных компаниях, таких как Google, Spotify и Microsoft. В этой статье мы рассмотрим основные положения ADL и обсудим, чем это может быть полезно для создания сбалансированной архитектуры в гибкой методологии разработки.
Градиентный бустинг. Реализация с нуля на Python и разбор особенностей его модификаций (XGBoost, CatBoost, LightGBM)
На сегодняшний день градиентный бустинг (gradient boosting machine) является одним из основных production-решений при работе с табличными, неоднородными данными, поскольку обладает высокой производительностью и точностью, а если быть точнее, то его модификации, речь о которых пойдёт чуть позже.
В данной статье представлена не только реализация градиентного бустинга GBM с нуля на Python, но а также довольно подробно описаны ключевые особенности его наиболее популярных модификаций.
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity