Pull to refresh
8
0
Алексей @Rumyantsev

Математик

Send message

Пишем на С++ вектор, умеющий расширяться без копирования элементов

Reading time9 min
Views23K

В языке С есть функции malloc, free и realloc. При использовании последней вы можете написать этакий расширяющийся массив из примитивных типов или структур (классов-то нет), который, можно надеяться, не будет копировать все данные при каждом расширении. В С++ есть встроенный класс vector, который представляет из себя расщиряющийся массив, но он так не умеет: при каждом расширении вектора выделяется новый участок памяти и все элементы перемещаются на него (по возможности, с использованием move-семантики). Но ведь, если можно каждый раз не копировать все старые элементы на новое место, вектор должен работать быстрее? В этой статье я попробую написать вектор, который умеет расширяться без копирования элементов.

Код приведён здесь.

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

Читать далее
Total votes 15: ↑11 and ↓4+9
Comments70

Гипотеза Эскобара

Reading time28 min
Views14K
Эскобар — великий математик, живший на Земле на прошлом витке общемирового времени.
На прошлом витке чего-о?


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

Комплексные числа были открыты без участия Эскобара, но это не значит, что мы должны отказываться от его наследия. Все знают, что 2+2=4, 2×2=4, 2^2=4. Только, при возведении в степень существует разница в порядке аргументов. Что если применить аксиому Эскобара на нашем убеждении, что у порядка при возведении в степень может быть только два варианта? Ну а вдруг — больше?
Пишет тексты нам никто
Total votes 22: ↑16 and ↓6+15
Comments19

Организация видеонаблюдения при помощи Raspberry Pi и веб камеры Logitech

Reading time8 min
Views25K

В данной статье хотелось бы поделиться одним простым и доступным способом как мне удалось организовать видеонаблюдение за подъездом при помощи малинки и бытовой веб камеры. Думаю, у многих нынче в закромах завалялись уже не нужные вебки. Сужу по себе, раньше, в эпоху преобладаня десктопов такая камера была вещью весьма необходимой для желающих показать себя собеседнику, а то и миру. Однако время идет, десктопы все больше заменяются ноутбуками, планшетами и телефонами, имеющими на борту свою камеру. Но зачем же добру лежать без дела?

И вот пришла идея подключить к малинке валяющуюся без дела вебку Logitech C270. Далее следовал период гугления, проб и ошибок, который в итоге привел к тому, что я и собираюсь описать.

История этого проекта началась с покупки Raspberry 3b+. После получения и первичной настройки сего чудо-девайса встал нетривиальный вопрос: "Хорошо, ну а дальше то что?". Ведь покупал я ее не с конкретной целью - а скорее как катализатор погружения в волшебный мир компьютерных технологий. Забегая вперед, скажу, что план оказался отличным и работает по сей день).

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

Как построить прогноз спроса и не потерять голову

Reading time13 min
Views15K

Всем привет! Представьте себе ситуацию: ваша уютная маленькая команда Data Science занимается прогнозированием спроса для пары десятков дарксторов с помощью какого-нибудь коробочного Prophet. И в один прекрасный день к вам приходит бизнес. Бизнес садится, закидывает ногу на ногу, закуривает сигару и говорит:

«Мы хотим максимально автоматизировать закупки. Нам нужно, чтобы вы умели строить прогноз по всем товарам, старым и новым, для всех дарксторов, старых и новых. А их будет много, их будут сотни, тысячи, миллионы. А ещё у нас будет миллион видов скидок и разные типы ценообразования, и ещё куча промо-механик и конкурсов интересных. Мы хотим, чтобы прогноз обязательно адекватно на всё это реагировал». (с) Типичный Бизнес

Хорошо, думаем мы, кажется, что это звучит нетрудно… 

С этой задачи начинается моя история о прогнозе спроса в Самокате. Меня зовут Мария Суртаева, я Data Scientist и расскажу о концепции прогноза спроса, его практических задачах и роли градиентного бустинга.

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

Summarization is all you need

Reading time10 min
Views5.2K

Привет! Меня зовут Станислав, я — дата-сайентист из команды Поиска в hh.ru. У нас в компании дата-сайентисты занимаются главным образом работой над рекомендательными системами. Если у вас есть резюме на hh.ru, то скорее всего вы хотя бы раз просматривали список подходящих вам вакансий. И вот то, насколько они действительно вам подошли, и является нашей зоной ответственности.

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

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments5

Как в Тинькофф создавали Data Catalog

Reading time9 min
Views14K

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

Меня зовут Дмитрий Пичугин, я занимаюсь внедрением Data Governance и Data Quality в Тинькофф. Я расскажу, как мы решали проблему поиска данных. Помогать мне в этом будет Роман Митасов. Он виновен в появлении большей части бэкенда Data Detective и расскажет про технические детали проекта.

Читать далее
Total votes 21: ↑20 and ↓1+19
Comments6

Ламповое звучание: о пользе второй гармоники

Reading time4 min
Views20K

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

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

XF5U-1: истребитель, раздавленный бабой

Reading time13 min
Views14K

Мы завершаем августовский мини-цикл (1, 2) об американских самолётах с крылом малого удлинения 1930-40-х гг. Талантливый инженер-аэродинамик Чарльз Циммерман придумал оригинальную концепцию вертикально взлетающего "блинчика" и долго её "пробивал", сумев заинтересовать ей руководство фирмы "Чанс-Воут" и Военно-морского флота. Казалось, уже скоро на американских транспортах, линкорах, а то и крейсерах появятся маленькие полётные палубы, с коих на перехват "Кондорам" и "Бетти" взовьются истребители, удивительные как своим внешним видом, так и характеристиками. Но рождалась невиданная машина куда медленнее, чем требовал прогресс авиации того времени.

Читать далее
Total votes 44: ↑42 and ↓2+49
Comments31

Безопасность в Linux

Reading time8 min
Views38K

В новой статье говорим про безопасность в Linux: как настроить и что важно учитывать в процессе. Дополнительно разбираем PAM и модули аутентификации, рассматриваем iptables. 

За основу взят один из уроков нашего практического курса «Администрирование Linux Мега».

Читать далее
Total votes 23: ↑13 and ↓10+4
Comments19

Как работать с библиотекой sktime: разбираемся на примере прогнозирования продаж

Reading time11 min
Views9.3K

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

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

Анализ временных рядов, применение нейросетей (1 часть)

Reading time9 min
Views29K

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

Если Вы готовы погрузиться в одну из очень интересных тем статистики и Вы любитель машинного обучения, продолжайте читать :-)

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

Пробую российский софт для умного дома. Он правда работает?

Reading time8 min
Views24K

Всем привет! С вами снова Дмитрий, не программист. В прошлый раз я установил на Wiren Board 7 визуальную среду Node-RED, не умерев в консоли. И даже проверил четыре популярных сценария: ноду Debug, мастер-выключателя, включения вытяжки при превышении концентрации CO₂, приборной панели (dashboard). Позднее я рассмотрел еще три сценария: темной комнаты, дневного/ночного освещения, термостата для теплого пола и батарей.

Но умный дом можно собрать не только на визуальной среде Node-RED. Российские разработчики давно предлагают программный пакет Sprut.hub для домашней автоматизации. Сценарии можно задавать как через фирменную визуальную среду, так и скриптами js. В Sprut.hub поддерживается большое число различных устройств, а некоторые пользователи считают его даже удобнее и проще Node-RED. Значит, настало время его попробовать! Более подробную информацию о Sprut.hub можно почерпнуть здесь.

Читать далее
Total votes 13: ↑12 and ↓1+16
Comments10

Диффузионные Нейросети — самый актуальный подход к генерации изображений

Reading time6 min
Views24K

Метод обратной диффузии поистине является самым нашумевшим в этом году методом генерации изображений нейросетями. Его используют: DALLE 2, Midjourney, imagen и другие актуальные модели 2022 года.

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

Под катом будет много кода, программирования, математики, в общем — всё, как вы любите.
Читать дальше →
Total votes 38: ↑35 and ↓3+47
Comments5

Леньхаки. Так лень, что не лень

Reading time6 min
Views34K

Миша – удивительный чувак. Поразительный и заразительный. Лучший руководитель в региональной IT-компании. Ещё и офигенный программист.

Мы разговаривали всего полчаса, а он успел меня заразить. Вот вы сейчас о чём подумали? Ну, явно не о насморке… Наверное, что он увлечённо рассказывает о повышении эффективности? Новых технологиях? Цифровизации? И я прям такой наслушался и кинулся статью писать?

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

И его лень заразительна. Так заразительна, что мне лень писать много букв. В кои-то веки буду краток.

Читать далее
Total votes 94: ↑76 and ↓18+72
Comments30

Taichi и 100-кратное ускорение Python-кода

Reading time12 min
Views35K

Python стал самым популярным языком во многих быстроразвивающихся областях, таких, как глубокое обучение и различные направления анализа и обработки данных. Но при этом за удобство работы с Python-кодом, за высокий уровень его читабельности, приходится платить производительностью. Конечно, все мы время от времени жалуемся на скорость работы программ, и Python, безусловно, не стоит винить во всех грехах. Несмотря на это, справедливым будет заявление о том, что природа Python, интерпретируемого языка, не способствует высокой производительности кода, особенно когда речь идёт о «тяжёлых» вычислениях (один из признаков таких вычислений — наличие в программе нескольких вложенных циклов).

Если вы когда-либо попадали в одну из следующих ситуация — тогда эта статья, определённо, написана для вас.

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

Как обезличить персональные данные

Reading time8 min
Views9.2K

Для ML-моделей не нужны (и даже вредны) персональные данные. Но пригодятся данные, которые описывают не отдельных людей, а их группы, то есть обезличенные. Как их получить и как с ними работать? Как убедиться, что права того, чьи данные были взяты за основу, не нарушены? И где граница между персональными и анонимными данными?

Меня зовут Алексей Нейман, я исполнительный директор Ассоциации больших данных. В этой статье попробуем разобраться в этих вопросах.

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

Определение типа личности по тексту (на замену закрытому IBM Watson Personality Insights)

Reading time16 min
Views5.7K


Некоторое время назад к нам обратился заказчик с не совсем обычной задачей — воспроизвести сервис IBM Watson Personality Insights, который анализировал текст, написанный человеком и определял по нему ряд личностных характеристик. Задача возникла по причине того, что бизнес заказчика основывался на этом сервисе, в то время как IBM объявила, что сервис вскоре станет недоступен. В этой статье расскажем, что делал этот сервис и чем закончилась задача воспроизведения его функционала.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments18

Как разрезать полметра стали, в домашних условиях, почти бесшумно — используя электричество?

Reading time8 min
Views69K

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

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

Читать дальше →
Total votes 101: ↑99 and ↓2+127
Comments59

Как создать переводчик, который переводит лучше, чем Google Translate

Reading time8 min
Views30K

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

В этот раз я решил окунуться немного в прошлое и сделать то, что хорошо сделать тогда у меня не получилось.

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

Information

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