Pull to refresh
39
0
sysprg@sysprg

User

Send message

Вакансия Шредингера? Зачем компании размещают «ненастоящие» объявления о работе — причины и признаки «призраков»

Reading time9 min
Reach and readers6K

Мы в Beeline Cloud продолжаем разбирать вопросы, связанные с работой в ИТ и за пределами отрасли. Уже писали о том, что ученые думают о противостоянии удаленки и офиса, а также о причинах массовых сокращений в западном ИТ-секторе. Сегодня развиваем тему и посмотрим на еще один любопытный феномен современного трудоустройства: «фантомные вакансии». Расскажем, что это, как находят такие «фейки» и зачем вообще компании публикуют «вакансии-подделки».

Читать далее

Нормированные пространства и рендеринг трёхмерных фрактальных множеств: ray marching, поле расстояний, базовые примеры

Reading time10 min
Reach and readers6.1K

За решениями нестандартных задач часто стоит какая-то интересная математика. Вместе с навыками работы с графикой она позволяет выходить за рамки стандартных инструментов и пробовать новые подходы в рабочих проектах.

Меня зовут Андрей Гринблат, я ИТ-инженер в СберТехе, занимаюсь разработкой фронтенд-интерфейсов приложений.
В этой статье расскажу о том, как с помощью математики и ray marching построить фотореалистичные изображения 3D-фракталов. Всех, кому интересно, прошу под кат.

Читать далее

Решение задачи о покрытии с помощью SAT-солвера

Level of difficultyEasy
Reading time1 min
Reach and readers7K

Студенты пришли в библиотеку, чтобы подготовиться к экзаменам. Всего у них M предметов. Каждая из N книг покрывает некоторое множество предметов. Нужно выбрать минимальное число книг, которые покроют все предметы.

Читать далее

О формализме матриц Паули и геометрической алгебры в нерелятивистской квантовой механике

Level of difficultyHard
Reading time7 min
Reach and readers8.2K

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

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

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

Читать далее

О спинорах человеческим языком

Level of difficultyHard
Reading time7 min
Reach and readers21K

Одной из самых больших сложностей в осознании квантовой механики для меня стали спиноры. Действительно, откройте любое популярное изложение, и вам навешают лапшу на уши о то что "спинор - это такой объект, который при повороте на 360 градусов превращается в свою противоположность". Полезное определение? Кажется не очень.

Ну хорошо, черт с ними с популярными изложениями. Откроем учебник физики. Представление векторов как матриц (почему, откуда?), их разложения по столбцам и строкам, какие-то стрелочки \left| \uparrow \right>, \left| \downarrow \right>, матрицы Паули, Гамма-матрицы, вся эта дичь вроде работает и ее можно использовать для решения уравнения Дирака, но выглядит ли это разумным человеческим языком?

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

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

Читать далее

Кватернионы — не только то, что мы о них думали

Level of difficultyHard
Reading time6 min
Reach and readers8.9K

Предложу сегодня подход и буду признателен, если специалисты его дополнят.

Выведу по шагам, как матрица кодирует параллелограмм на вещественной плоскости и как один параллелограмм преобразовывает второй параллелограмм. Лирику вообще не пишу. Для общего образования статья тоже может быть полезна, если вы интересуетесь математикой.

Представление этого инструментария на плоскости сделает проще изучение его же в 3D. А если надо просто ознакомиться, то пробегитесь по картинкам с пояснениями, не открывая подкаты.

Обозначения и названия введу постепенно: от простого, с первого курса, к математическому сленгу. 3D не рассматриваю, это понимания сути не добавит. Но ключевой тезис по 3D — в конце шестой части.

Читать далее

Всеобъемлющая Теория Матриц

Level of difficultyEasy
Reading time13 min
Reach and readers15K

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

Погрузится в мир матриц

Вычисление обратной величины целого числа и его применение в алгоритме деления чисел

Level of difficultyMedium
Reading time4 min
Reach and readers9K

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

Читать далее

Градиентный спуск для новичков: когда ты падаешь, но становишься лучше

Level of difficultyEasy
Reading time4 min
Reach and readers9.6K

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

Читать далее

Непостижимая эффективность современных алгоритмов сортировки

Level of difficultyEasy
Reading time10 min
Reach and readers17K

Предупреждение о возможном конфликте интересов: автор этого документа также является соавтором реализаций ipnsort и driftsort, используемых в стандартной библиотеке Rust.

Сценарий

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

Читать далее

Снятие проклятия размерности: как познакомиться со своими данными

Reading time6 min
Reach and readers5.3K

1. Проклятие размерности

Человек эволюционировал в 3 пространственных измерениях, и в них мы себя шикарно чувствуем. В них мы живем, радуемся, грустим, да и все драмы жизни проходят в этих измерениях. Правда в первой половине 20 века Теодор Калуца и Оскар Клейн нашли еще одно измерение, но оно маленькое и его людям не видно. После струнные теоретики, такие как Леонард Сасскинд, Герард т`Хофт, Яу Шинтун, Александр Виленкин  и другие, опять сильно усложнили картину мира, и к 4 пространственным измерениям добавили еще 6 (это минимум), но они все где то не пойми где, и влияют на жизнь только физиков-теоретиков, а остальным n-миллиардам людей на Земле, нет никакого дела до этих измерений, им и в 3 хорошо живется.

Другое дело математика и наука о данных, тут измерений может быть сколько угодно, например вот:

Читать далее

7 SQL-запросов, которые решают 90% всех задач на работе

Level of difficultyEasy
Reading time4 min
Reach and readers39K

Каждый день одно и то же. Открываешь клиент базы данных, чтобы что-то проверить, посчитать или найти. И снова пишешь почти тот же SELECT, что и вчера, с тем же WHERE и JOIN. Знакомо?

SQL в большинстве случаях не требует сложные 100-строчные запросы с вложенными подзапросами на три уровня глубины. Чаще всего нам нужны простые, отточенные и, главное, эффективные конструкции.

В этой статье я собрал 7 таких запросов-«рабочих лошадок». Это не какой-то там справочник, а готовая шпаргалка для реальных задач.

Читать далее

Векторный поиск в Elasticsearch: dense_vector, HNSW и фильтрация по атрибутам

Level of difficultyMedium
Reading time9 min
Reach and readers5.6K

Привет, Хабр!

В современном поиске всё чаще используется поиск «по смыслу» с помощью векторных эмбеддингов. Вместо привычного анализа текста по словам мы представляем документы и запросы в виде многомерных векторов и ищем ближайших соседей по евклидовому или косинусному расстоянию. Это позволяет, например, находить документы, схожие по смыслу, а не только по точному совпадению слов. В Elasticsearch поддержка такого поиска реализована через поле dense_vector и алгоритм HNSW (Hierarchical Navigable Small World) для быстрого приближённого поиска ближайших соседей.

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

Читать далее

BPF CPU Scheduler: не нравится стандартный планировщик в Linux? Напиши свой

Level of difficultyEasy
Reading time6 min
Reach and readers8.6K

Всем привет! В статье расскажу про относительно новую возможность написания собственных CPU планировщиков для Linux с помощью BPF. Разберёмся, для чего это нужно, как работает, а также посмотрим на примеры уже написанных планировщиков.

Читать далее

Медианный фильтр на двух бинарных кучах

Level of difficultyEasy
Reading time21 min
Reach and readers12K

В программировании микроконтроллеров порой приходится прибегнуть к медианной фильтрации.

В этом тексте я произвел разбор решения LeetCode задачи 480. Sliding Window Median в контексте реализации на языке программирования Си.

Читать далее

Как спроектировать кэш-библиотеку нового поколения и не умереть?

Level of difficultyMedium
Reading time14 min
Reach and readers14K

Всем привет! Меня зовут Алексей Майшев, я работаю Go-инженером в Авито. В этой статье рассказываю, как мы проектировали и разрабатывали кэш-библиотеку следующего поколения для Go — otter

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

Читать далее

Железо-воздушные аккумуляторы

Reading time7 min
Reach and readers12K

Картинка: vectorjuice, freepik

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

Однако у них есть и свой минус — опасность возгорания, который, надо сказать, в некоторой степени нивелируется (как самой конструкцией, так и средствами контроля заряда/разряда), но всё равно не до конца. Кроме того, они отличаются и относительно высокой стоимостью. 

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

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

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

Читать далее

Как устроена память внутри микропроцессора и при чем тут компиляторы

Level of difficultyMedium
Reading time12 min
Reach and readers20K

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

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

Читать далее

Как засуха в Америке меняет глобальную экономику

Level of difficultyEasy
Reading time7 min
Reach and readers6.7K

А если точнее – распределение ресурсов, таких как вода, радиочастоты, воздух и так далее. Река Колорадо пересыхает из-за устаревших законов, и нашелся человек, который способен изменить (и который уже менял) подход к распределению неисчисляемых ресурсов.

Читать далее

Решение задачи коммивояжера (TSP) в реальных приложениях

Level of difficultyEasy
Reading time7 min
Reach and readers8.2K

Образовательные программы компьютерных наук и информатики обязательно включают курс алгоритмов, это элегантные решения сложных проблем. Например, одна из самых интересных проблем комбинаторной оптимизации — задача коммивояжёра (TSP, travelling salesman problem). Суть в поиске самого выгодного маршрута, проходящего через указанные точки ровно по одному разу. Сложность задачи при точном решении брутфорсом составляет O(n!). И для неё тоже придумано несколько элегантных алгоритмов. Хотя поиск самого эффективного продолжается до сих пор.

В реальности уже нет коммивояжёров, путешествующих по городам, профессия ушла в прошлое. Но есть курьеры, таксисты, логисты, грузоперевозчики и просто туристы, которые хотят посетить максимальное количество достопримечательностей. То есть задача по-прежнему актуальна. Как же максимально эффективно настоящие бизнесы решают TSP в реальной жизни?

Читать далее

Information

Rating
Does not participate
Date of birth
Registered
Activity