Search
Write a publication
Pull to refresh
0
@scriptbunnyread⁠-⁠only

User

Send message

Play Store теперь принимает прогрессивные веб-приложения (PWA)

Reading time15 min
Views39K

Дисклеймер: я не связан с Google Play, Chrome или любой упомянутой компанией. Это не официальное заявление. Логотип и названия используются только для иллюстрации.

В Chrome 72 для Android реализована долгожданная функция Trusted Web Activity. Это означает, что теперь мы можем распространять PWA через каталог Google Play и запускать Chrome без UI в автономном режиме для нативных пакетов! Я некоторое время поигрался с этой функцией, копаясь в API, а здесь расскажу, о чём речь, чего ожидать и что доступно уже сегодня.

Масштабируемая Big Data система в Kubernetes с использованием Spark и Cassandra

Level of difficultyMedium
Reading time39 min
Views4.4K

В предыдущей статье я рассказал, как организовать систему распределенного машинного обучения на GPU NVidia, используя язык Java с фреймворками Spring, Spark ML, XGBoost, DJL в standalone кластере Spark. Особенностью поставленной задачи являлось организация системы под управлением ОС Windows 10 Pro, в Docker‑контейнерах. Эксперимент оказался не вполне успешным. В данной статье я покажу, как воспользоваться имеющимися наработками и запустить Spark Jobs в Kubernetes в режимах client и cluster, опишу особенности работы с Cassandra в Spark, покажу пример обучения модели и ее дальнейшего использования. В этот раз буду использовать язык Kotlin. Репозиторий с кодом доступен на GitLab.

Данная статья представляет интерес для тех, кто интересуется системами Big Data и стремится создать систему, позволяющую, в том числе, выполнять задачи распределенного машинного обучения на Spark в Kubernetes, используя GPU NVidia и Cassandra для хранения данных.

Читать далее

Микросервисная архитектура, ее паттерны проектирования и особенности

Reading time7 min
Views86K

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

Читать далее

PHP на стероидах: Swoole in production

Reading time6 min
Views27K

Представьте себе ситуацию, большой маркетплейс, 60 тыс. посетителей в сутки (600 тыс. просмотров) и это только веб, а с мобильного приложения, плюс еще 100 тыс уникальных посетителей. С точки зрения HTTP API запросов к PHP бекенду - это порядка 13 млн. запросов (в пиковых нагрузках ~300-400 RPS). И это всё (PHP only) обрабатывает сервер с 8 vCPU (ядрами) и 32 Gb RAM и самое главное, что сервер практически не напрягается (см. КДПВ).

Как это возможно?

Теорема Байеса: просто о сложном

Reading time8 min
Views67K

В этой статье мы рассказываем об основах и применении одного из самых мощных законов статистики - теоремы Байеса. 

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

Мы также покажем истинную силу байесовских рассуждений и как несколько байесовских вычислений можно объединить в цепочку, чтобы вычислить общую апостериорную вероятность.

Читать далее

Знаете ли вы, что такое лёд?

Reading time18 min
Views22K

С древнейших времён, со времён ледникового периода, когда толщина ледяного покрова достигала 2000 м и по нынешний день, мы можем любоваться таким интересным состоянием вещества, как лёд. Не всегда лёд является положительным явлением, зачастую нарушая хозяйственную деятельность человека и принося существенный ущерб. Но тем не менее, что же из себя представляет лёд?
Читать дальше →

Учимся считать, играя: подготовка к школе

Reading time6 min
Views3.8K

Школа предъявляет высокие требования к ребенку: уже с первых занятий необходимо уметь быть усидчивым, сосредоточенным, слушать, удерживать и выполнять инструкцию, ориентироваться в том, как выполнять задание. Например, для последнего нужно понимать структуру задачи, что в ней можно выделить несколько действий, что для успешного решения нужно выполнять их в определенном порядке. Для этого нужно не только успевать осваивать большие объемы учебного материала, но и уметь учиться - понимать «правила» того, как выглядит учебный процесс.

3-7 лет - возраст, когда многие родители задумываются о том, не отдать ли ребенка в продвинутый детский сад или подготовительный класс с математическим или гуманитарным уклоном, чтобы позднее отдать ребенка в более престижную школу. Однако этот период является крайне важным для развития ребенка за пределами учебы и учебной программы. Как писал советский психолог Дмитрий Эльконин, основной деятельностью в дошкольный период является сюжетно-ролевая игра, в рамках которой ребенок социализируется, расширяет круг контактов со сверстниками, а совместная деятельность со взрослым временно отходит на второй план. Отыгрывание новых понятий, правил, ситуаций является чрезвычайно важным для формирования мировоззрения и познания ребенка. В этот период активно формируется наглядно-образное мышление - ребенок начинает представлять элементы задачи и ситуации в виде образов, не используя реальные действия с ними. Следующим видом мышления, который будет развиваться у ребенка уже в младшем школьном возрасте - абстрактное, которое активно будет использоваться при изучении аспектов математики. Используя эти особенности развития, можно эффективно подготовить ребенка к занимательному путешествию в страну Математику.

Читать далее

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

Reading time8 min
Views14K


Open In Colab


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


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


По этой причине мы бы хотели поделиться с сообществом системой, которая:


  • Расставляет заглавные буквы и основные знаки препинания (точка, запятая, дефис, вопросительный знак, восклицательный знак, тире для русского языка);
  • Работает на 4 языках (русский, английский, немецкий, испанский);
  • По построению должна работать максимально абстрактно на любом тексте и не основана на каких-то фиксированных правилах;
  • Имеет минимальные нетривиальные метрики и выполняет задачу улучшения читабельности текста;

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

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

Как классифицировать данные без разметки

Reading time7 min
Views9.6K

Пользователи iFunny ежедневно загружают в приложение около 100 000 единиц контента, среди которого не только мемы, но и расизм, насилие, порнография и другие недопустимые вещи. 

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

Как мы это в итоге сделали — расскажу под катом на наглядном примере. Статья рассчитана на тех, кто знаком с Python (при этом необязательно разбираться в Data Science и Machine Learning).

Читать далее

Как я получил 4 оффера в FAANG в Европе или из Воронежа в Лондон

Reading time16 min
Views45K


Очередная история успеха после череды неудач. Расскажу, чего мне стоило получить офферы от Facebook*, Google, Amazon, JP Morgan в Европе, как я готовился, сколько собесов зафейлил перед тем, как удача повернулась ко мне правильной стороной.


TL;DR. Послал сотни резюме. Прорешал около 100 задач на Leetcode. Прочел книжку по архитектуре (не той, которая про дома, а той, которая system design). Прошел 9 интервью. Получил 4 оффера. Принял 1. Жил, пока что, не очень долго, но, вполне себе, счастливо в Лондоне.
Читать дальше →

Памятка и туториал по HTTP-заголовкам, связанным с безопасностью веб-приложений

Reading time27 min
Views41K


Доброго времени суток, друзья!


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


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


В практической части мы реализуем простое Express-приложение, развернем его на Heroku и оценим безопасность с помощью WebPageTest и Security Headers. Также, учитывая большую популярность сервисов для генерации статических сайтов, мы настроим и развернем приложение с аналогичным функционалом на Netlify.


Исходный код приложений находится здесь.


Демо Heroku-приложения можно посмотреть здесь, а Netlify-приложения — здесь.


Основными источниками истины при подготовке настоящей статьи для меня послужили следующие ресурсы:


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

Плюсы и минусы 30 способов продвижения интернет-магазинов

Level of difficultyEasy
Reading time18 min
Views58K

Обзор составлен в первую очередь для владельцев интернет-магазинов. Цель обзора - предоставить объективную оценку (насколько это возможно) проверенных способов продвижения, без приукрашивания положительных сторон и сокрытия недостатков, чтобы предприниматель мог принимать более взвешенные решения в вопросах интернет-маркетинга, опираясь на данные обзора.

Читать далее

Taiga UI — библиотека компонентов под Angular, которую вам стоит попробовать

Reading time5 min
Views25K

Привет!

Саша Инкин и я регулярно пишем на Хабр статьи по Angular. Почти все они основаны на нашем опыте разработки большой библиотеки компонентов.

Эту библиотеку мы развиваем, перерабатываем и дополняем уже несколько лет, а свои идеи проверяем на нескольких десятках проектов Тинькофф Бизнеса и внутренних систем компании. Мы рады сообщить: выложили нашу библиотеку в открытый доступ!

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

Что там за Taiga UI?

Прокачиваем работу с событиями в Angular

Reading time5 min
Views15K

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


Однако описанный мною метод громоздкий и сложный для восприятия. Пришло время переписать фильтрацию на декораторы.


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

ВИЧ — нулевой пациент мировой пандемии

Reading time16 min
Views700K

Синдром приобретённого иммунодефицита - безжизненная и формальная фраза, описывающая состояние, развивающееся на фоне ВИЧ инфекции. Терминальная стадия заражения, заболевания Вирусом иммунодефицита человека - последний этап чумы 21 века в вашем теле. Около 40 млн человек живут с этой болезнью, медленно ожидая трагической развязки. Всемирная организация здравоохранения, ученые и средства массовой информации бесконечно тиражируют страх перед глобальной угрозой, предрекая нам катастрофу.

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

Часть 1. Рождение мифа

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

Дело было так, Центр по контролю и профилактике заболеваний публиковал еженедельные отчеты о заболеваемости и смертности, и несколько недель подряд в них отображались необычно высокие данные по числу сарком, пневмонии Pneumocystis carinii pneumonia (PCP) и оппортунистических инфекций. То, чем обычно болеют достаточно редко. Общее состояние пациентов выделили в отдельный синдром, собрали рабочую группу и стали разбираться.

И вот спустя пару месяцев, в марте 1984 года в Центре по контролю и профилактике заболеваний в США уже вовсю тщательному анализу и исследованию подвергались сексуальные связи нескольких геев и бисексуальных мужчин. По странному стечению обстоятельств из всех заболевших мужчин, женщин и детей именно эта группа была наиболее многочисленной. Одним из подопытных «содомитов» стал канадский бортпроводник Гаэтан Дугас. Он работал в Эйр Кэнада и умер в 1984-м от почечной недостаточности, вызванной оппортунистической инфекцией на фоне ослабленного иммунитета. Множество журналистов и публицистов 80-х впоследствии опишут Дугаса, как очаровательного и сексуального спортсмена с необъёмным гомосексуальным либидо. Ошибочно определённый как пациент «Ноль», Гаэтан на самом деле не были ни «пациентом О», ни нулевым как таковым. Касательно канадского бортпроводника, его случай числился за номером 57, а обозначение «О» относилось к слову «outside» - то есть, прибывшим из-за пределов США. Именно с Дугаса вообще начинается использование термина «нулевой пациент» в эпидемиологии. Но, как часто бывает, это всего лишь опечатка, вернее, неправильно воспринятая аббревиатура. 57-й пациент был ответственнен за, по меньшей мере, 40 из 248 случаев заражения ВИЧ в 1983 году (исследования Уильяма Дароу в Центре контроля заболеваний). Многие нити на нарисованной эпидемиологами схеме распространения вируса сводились к Гаэтану. Но ,во-первых, далеко не все из них и, во-вторых, на нем они не заканчивались. Молодой человек был продуктом своей эпохи, ВИЧ в его случае и его положении был скорее вопросом времени.Чтобы вы понимали, что за радужные времена в Канаде были в эти годы, нужно упомянуть, что к 1970-м ЛГБТ сообщество игривой походкой праздновало свои победы. В 1971 году в Оттаве состоялся первый в Канаде марш за права геев. Стала выпускаться первая Канадская газета на тему освобождения гомосексуалистов - The body politic - в Торонто. Вышел документальный ЛГБТ сериал «Выход» («каминг аут»). В 73-м году сразу несколько городов в Канаде провели масштабные мероприятия по защите прав геев, назвав это всё «неделей гордости» («прайд вик»). В 74-м году молодому Дугасу было 22 года, быть геем было дерзко и даже немного модно. Во время полётов в самолётах всё ещё курили и подавали крепкий алкоголь крупными порциями, небо пахло романтикой и приключениями. Дугас рос в небольшой семье в пригороде Квебека L’ansien-lorette, возле пригородного аэропорта, он учился на парикмахера и с восторгом наблюдал за пролетающими самолётами. Как только авиакомпании вслед за волной всеобщей либерализации сняли запрет на работу мужчин на борту самолётов, Дугас понял, что всю жизнь мечтал стать стюардессой: белоснежная рубашка с длинными лацканами воротника, голубые обтягивающие штаны и платочек на поясе. Он делился советами по макияжу с коллегами-женщинами и был на острие хипстерской моды 80-х, крутил романы, посещал гей бары и жил полной активной жизнью гейской стюардессы.

Читать далее

Как мы используем item2vec для рекомендаций похожих товаров

Reading time9 min
Views19K

Привет, меня зовут Вася Рубцов, я занимаюсь разработкой рекомендательных систем в Авито.


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


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


В статье я расскажу, как мы улучшили наши item2item рекомендации за счёт item2vec и как это повлияло на user2item рекомендации.


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

ML и DS оттенки кредитного риск-менеджмента | Компоненты

Reading time18 min
Views34K

Привет!

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

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

За подробностями добро пожаловать под кат.
Читать дальше →

AutoVIML: Автоматизированное машинное обучение

Reading time4 min
Views2.9K

Перевод статьи подготовлен специально для студентов курса «Промышленный ML на больших данных»

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

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

Читать далее

Склеиваем несколько фотографий в одну длинную с помощью компьютерного зрения

Reading time4 min
Views27K
В предыдущих статьях был описан шеститочечный метод разворачивания этикеток и как мы тренировали нейронную сеть. В этой статье описано, как склеить фрагменты, сделанные из разных ракурсов, в одну длинную картинку.
Читать дальше →
1
23 ...

Information

Rating
Does not participate
Registered
Activity