Pull to refresh
12
0
Александр Шатилов @alexbraun

Tech Lead using Angular & .net

Send message

Архитектура для пользователей

Reading time23 min
Views18K

Когда говорят о выборе архитектуры IT-системы, почти всегда упускают один ма-а-аленький нюанс: мы делаем продукты для пользователей, не для себя. А пользователям совершенно неважно, какая у сервиса архитектура. Никто в отзывах не ставит звёздочки за event-driven подход или классную реализацию service mesh — разве что в редких случаях, когда речь о продуктах для разработчиков. 

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

Читать далее
Total votes 53: ↑49 and ↓4+67
Comments19

Видео в звонках ВКонтакте: 4К-скриншеринг и Quality on-demand для тысяч участников

Reading time13 min
Views7.9K

Что нужно от картинки в видеозвонке? Базово — чтобы не пикселила, не замирала и не вешала весь звонок. Это основы real-time видео, и добиться этого не так трудно. 

Всё самое интересное начинается, когда вы хотите, чтобы в одном звонке могли участвовать сколько угодно человек. И при этом все могли включать видео, а не просто смотреть; разрешение скриншеринга было бы 4К; шеринг оставался суперчётким при любом интернете и т. д. И чтобы звонки работали на любых платформах и устройствах на мобильном нестабильном интернете. 

Как мы добиваемся всего этого в звонках ВКонтакте, какие хаки в настройках используем, как экономим трафик и CPU, как боремся за latency и где нам пришлось идти в обход WebRTC, читайте под катом. 

Читать далее
Total votes 32: ↑30 and ↓2+42
Comments11

Разбираемся в redux-saga: От генераторов действий к сагам

Reading time9 min
Views208K


Любой redux разработчик расскажет вам, что одной из самых тяжелейших частей разработки приложений являются асинхронные вызовы — как вы будете обрабатывать реквесты, таймауты и другие коллбэки без усложнения redux действий(actions) и редьюсеров(reducers).

В этой статье я опишу несколько различных подходов к управлению асинхронностью в вашем приложении, начиная от простых подходов как redux-thunk, заканчивая более продвинутыми библиотеками вроде redux-saga.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments22

Schedulers в RxJS

Reading time4 min
Views14K

Что вы знаете о Schedulers в RxJS? Они скрывают от разработчиков работу с контекстом выполнения Observable. Как те эльфы-домовики из Гарри Поттера, которые выполняют всю черную работу в Хогвартсе, а о них никто даже и не слышал. Давайте исправим это и узнаем о них чуть больше.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments12

Руководство по Node.js, часть 6: цикл событий, стек вызовов, таймеры

Reading time11 min
Views47K
Сегодня, в шестой части перевода руководства по Node.js, мы поговорим о цикле событий, о стеке вызовов, о функции process.nextTick(), о таймерах. Понимание этих и других механизмов Node.js является одной из основ успешной разработки приложений для этой платформы.



Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments3

Огромный открытый датасет русской речи

Reading time3 min
Views36K
image

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

Мы торопимся исправить это годами длящееся недоразумение.

Итак, мы предлагаем вашему вниманию набор данных из 4000 часов аннотированной устной речи, собранный из различных интернет-источников.

Подробности под катом.
Читать дальше →
Total votes 101: ↑96 and ↓5+91
Comments50

Первая модель: набор данных Fashion MNIST

Reading time21 min
Views41K
Полный курс на русском языке можно найти по этой ссылке.
Оригинальный курс на английском доступен по этой ссылке.

Выход новых лекций запланирован каждые 2-3 дня.
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments5

Делаем параллельный корпус из книг с помощью sentence embeddings

Reading time8 min
Views9.1K

Parallel trucks (image by Unsplash


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


Задача


Такая задача называется выравниванием текстов и может быть до какой-то степени решена следующими способами:


  • Использовать эвристики. Можно считать количество предложений в текстах, количество слов в них и на основе этого производить сопоставление. Такой способ не дает хорошего качества, но может тоже быть полезным.
  • Использовать sentence embeddings. Наверняка вы слышали про модели типа word2vec или sent2vec или видели такой пример их использования — "король" + "женщина""мужчина" = "королева". Если коротко, то суть в том, чтобы перевести слова (предложения, тексты) в векторное пространство с сохранением семантического расстояния между ними. Такой подход открывает перед нами замечательные возможности по оценке близости текстов и их кусочков по смыслу.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments4

6 причин использовать Kubernetes на сервере bare metal

Reading time5 min
Views6.8K

Развертывание Kubernetes на физических серверах  рекомендуется организациям, которые находятся в поисках новых возможностей в сфере управления инфраструктурой. Рассмотрим 6 причин попробовать K8s на выделенных серверах. 

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

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

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

Читать далее
Total votes 13: ↑10 and ↓3+7
Comments0

Что такое MLOps? (Часть 1)

Reading time5 min
Views24K

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

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

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments1

Тензоры в TensorFlow

Reading time6 min
Views31K

image


Основным объектом которым манипулируют в Tensorflow, является тензор. О том, что такое тензор, какие бывают тензоры, какие у них есть свойства и как ими манипулировать читайте в переводном руководстве с сайта tensorflow.org.

Читать дальше →
Total votes 19: ↑15 and ↓4+22
Comments2

LLaMA (Large Language Model Meta AI)

Level of difficultyMedium
Reading time1 min
Views87K

Meta анонсировала LLaMA (Large Language Model Meta AI), свою модель NLP с миллиардами параметров и обученную на 20 языках.

Недавно её слили на торренты и товарищи смогли запустить сетку локально на обычном домашнем компьютере, на обычном CPU.

Для этого пришлось ужать модель из 32 битной в 4 битную, уменьшив вес модели с 13 до 4 ГБ.

Попробуем запустить самую маленькую модель LLaMA 7B у себя на домашнем компьютере на середнячке AMD Ryzen 5.

Читать далее
Total votes 36: ↑36 and ↓0+36
Comments66

TensorFlowJS: использование обученных моделей без их модификаций в браузере

Reading time11 min
Views5.7K

При работе с TensorFlowJS можно выделить три направления (рисунок 1):


1. использование обученных моделей без модификаций топологий и переобучений

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

3. создание и обучения моделей с нуля.

Читать далее
Total votes 4: ↑4 and ↓0+4
Comments0

TensorFlow.js: Часть 1: Использование Low-Level API для аппроксимации линейной функций

Reading time13 min
Views7.6K
В настоящее время Python занимает доминирующую позицию для машинного обучения. Однако, если вы являетесь JS-разработчиком и заинтересованы окунуться в этот мир, то не обязательно включать в свой арсенал новый язык программирования, в связи с появлением TensorFlow.js.
Total votes 3: ↑3 and ↓0+3
Comments0

17 вопросов по Kubernetes, которые может услышать разработчик на собеседовании

Level of difficultyEasy
Reading time10 min
Views36K
image

Kubernetes прочно вошел в технологический стек разработки cloud-native-приложений, став мейнстримовой технологией.

Разработчику, конечно же, не нужно быть экспертом по Kubernetes, чтобы запустить в нем свое приложение. Но понимание азов даст лучшее представление о том, как приложение живет и работает в Kubernetes.

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

Если есть свободные 20 минут, приглашаем устроить внеплановую ревизию своих знаний.

Читать дальше →
Total votes 23: ↑19 and ↓4+21
Comments24

Angular без zone.js: максимум производительности

Reading time12 min
Views19K
Angular-разработчики в большом долгу перед библиотекой zone.js. Она, например, помогает достичь в работе с Angular почти волшебной лёгкости. На самом деле, практически всегда, когда нужно просто поменять какое-нибудь свойство, и мы меняем его, ни о чём не задумываясь, Angular производит повторный рендеринг соответствующих компонентов. В результате то, что видит пользователь, всегда содержит самую свежую информацию. Это просто замечательно.

Здесь мне хотелось бы исследовать некоторые аспекты того, как применение нового компилятора Ivy (он появился в Angular 9) способно значительно облегчить отказ от использования zone.js.



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

Обратите внимание на то, что подход к оптимизации Angular-приложений, представленный в этом материале, возможен лишь благодаря тому, что Angular Ivy и AOT включены по умолчанию. Эта статья написана в учебных целях, она не направлена на пропаганду представленного в ней подхода к разработке Angular-проектов.
Читать дальше →
Total votes 48: ↑46 and ↓2+44
Comments16

Тестируем на реальных кейсах Chatgpt Code Interpreter

Level of difficultyEasy
Reading time5 min
Views13K

Меня зовут Андрей Цыган - я не программист, я смотрю на технологии ИИ с точки зрения человека, кто знает что хочет, но не имеет навыков это сделать через код.

Я протестировал новый плагин Code Interpreter на реальных задачах в бизнесе и остался приятно удивлён.

Посмотреть кейсы применения
Total votes 15: ↑10 and ↓5+10
Comments21

Как мы автоматизировали верстку статей на vc.ru, или почему в маркетинге нужны роботы

Reading time6 min
Views5.1K

Привет! Меня зовут Влад, я технический писатель в Selectel. Не так давно я выпустил статью, где рассказал, как мы с коллегами разработали верстальщик статей из Google-документов на Хабр.

Но мы работаем не только с Хабром, но и на vc.ru. Редактор статей там сильно отличается: нельзя верстать в html, есть другие типы элементов. Поэтому создать аналогичный верстальщик для этой площадки сложнее. Но вместе с командой PIX Robotics, которая специализируется на программных роботах, у нас это получилось. Подробности под катом!
Читать дальше →
Total votes 27: ↑26 and ↓1+34
Comments4

9 ИИ-сервисов в помощь разработчику: используем возможности нейросетей на полную

Reading time4 min
Views47K

Недавно мы публиковали статью «Плагины ChatGPT, которые помогут в работе — и не только программистам». В ней говорилось о плагинах ChatGPT, которые серьёзно облегчают жизнь большинству специалистов, связанных с IT. Сегодня давайте обсудим сервисы, которые предназначены для помощи исключительно программистам. С каждым днём таких сервисов всё больше, и наиболее интересные из них мы разместили в новой подборке.

Читать далее
Total votes 9: ↑6 and ↓3+10
Comments1

9 аналогов известных сервисов (Google Analytics, Slack, GitHub, ChatGPT) с открытым исходным кодом

Reading time3 min
Views12K

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

Читать далее
Total votes 14: ↑12 and ↓2+16
Comments9

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity