Pull to refresh
44
0
Хачатрян Карен @karen07

User

Send message

Александров Павел Сергеевич: советский математик, чьи труды высоко оценило мировое научное сообщество

Level of difficultyEasy
Reading time7 min
Views4.7K

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

Читать далее

Делим неделимое в Kubernetes: шеринг GPU с помощью MIG и TimeSlicing

Level of difficultyHard
Reading time21 min
Views10K

Привет, Хабр! На связи снова Антон, DevOps-инженер в отделе Data- и ML-продуктов Selectel. В предыдущей статье я рассказал о шеринге GPU и показал, как запустить несколько инстансов на одной видеокарте с помощью MIG. А в конце затронул тему с автомасштабированием инференс-серверов. Она оказалась актуальной, и я решил написать продолжение.

В этот раз посмотрим, как применять технологии шеринга в Kubernetes, а также разработаем прототип автомасштабируемой инференс-платформы за один вечер. Интересно? Тогда добро пожаловать под кат!
Читать дальше →

Биологическое происхождение арифметики как выраженной в символах «глубинной структуры» нашего восприятия

Level of difficultyEasy
Reading time4 min
Views3.3K

Все знают, что арифметика верна: 2 + 2 = 4.

Но, как ни странно, мы не знаем, почему это так.

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

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

Таким образом, чудесное соответствие между математикой и физической реальностью, вызывающее удивление со времён древних греков и до наших дней, — как это показано в книге астрофизика Марио Ливио «Математик ли бог?» — позволяет предположить, что разум и мир являются частью единого целого.

Читать далее

Как открыть портал наружу: самый полный гайд по VPN

Level of difficultyEasy
Reading time19 min
Views70K

Выбор, установка и настройка VPN. Какие VPN заблокированы на территории РФ. Рабочие VPN в России в 2023 году с оплатой криптой. Как ускорить VPN. Как узнать, работает ли шифрование трафика

Читать далее

Почему E = mc² — это лишь половина описания происходящего

Level of difficultyMedium
Reading time10 min
Views71K

Одним из наиболее глубоких открытий в физике стало самое известное уравнение Эйнштейна: E = mc². Проще говоря, оно гласит, что энергия равна массе объекта, умноженной на квадрат скорости света. Это простое на первый взгляд математическое соотношение таит в себе огромное количество физических смыслов, в том числе:

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

если пара частиц материя-антиматерия аннигилирует, то при этом выделяется определённое количество энергии, определяемое массами аннигилировавшей пары частиц,

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

Это уравнение, E = mc², описывает, сколько энергии присуще любой массивной частице, находящейся в состоянии покоя, включая то, сколько энергии требуется для её создания и сколько энергии выделяется при её разрушении.

Но что если частица не находится в состоянии покоя или если она вообще не имеет массы? В этих случаях E = mc² — это только половина значимого уравнения. Вторая половина гораздо интереснее и необходима для того, чтобы понять физический смысл происходящего.

Читать далее

История печатных плат: от Эйслера до наших дней

Reading time18 min
Views18K

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

Читать далее

Фильтрация избыточных вершин в геометриях 3D моделей

Level of difficultyMedium
Reading time6 min
Views2.6K

Всем привет! Меня зовут Евгений, я backend‑разработчик в компании Bimeister. Сегодня я хотел бы продолжить рассказ о нашем 3D движке Spatium. В статье речь пойдет еще об одном из алгоритмов оптимизации - поиске и удалении избыточных вершин из 3D моделей.

Материал может представлять интерес для инженеров, связанных с проектированием и разработкой в области 3D.

Читать далее

DNSTT. DNS туннель для обхода блокировок

Level of difficultyMedium
Reading time11 min
Views18K

dnstt — это DNS-туннель (VPN over DNS), который может использовать резолверы DNS через HTTPS (DoH) и DNS через TLS (DoT). Проект написан на языке Go.

Руководство будет включать:

1. Описание работы DNSTT

2. Настройку DNS для домена

3. Настройку туннеля dnstt на сервере

4. Настройку клиента dnstt на OpenWRT

5. Настройку автозапуска сервера, клиента и tun2socks

Читать далее

Быстрый двоичный поиск без ветвления

Level of difficultyMedium
Reading time15 min
Views17K

Мои читатели — занятые люди, поэтому сразу перейду к делу. Вот она, самая быстрая обобщённая (и простая) реализация двоичного поиска на C++:

template <class ForwardIt, class T, class Compare>
constexpr ForwardIt sb_lower_bound(
      ForwardIt first, ForwardIt last, const T& value, Compare comp) {
   auto length = last - first;
   while (length > 0) {
      auto rem = length % 2;
      length /= 2;
      if (comp(first[length], value)) {
         first += length + rem;
      }
   }
   return first;
}

Тот же интерфейс функции, что и у std::lower_bound, но вдвое быстрее и короче. «Без ветвления», потому что if компилируется в команду условной передачи, а не в ветвление/условный переход. Ближе к концу статьи мы изучим опции компилятора и даже более быстрые версии полностью без ветвления. Для понимания этой статьи не нужны особые знания в C++. Достаточно понимать, что итераторы (first и last) по сути являются указателями на элементы массива, хотя могут указывать на один элемент дальше, чем последний элемент массива. Можете не обращать внимания на template, class, constexpr и &. Вот если бы существовал быстрый и чистый язык, работающий на уровне железа...1 2
Читать дальше →

Как создавалась Bioshock

Level of difficultyEasy
Reading time9 min
Views9.9K
image

О, Bioshock, как много в этом слове. Страх от неизведанного и нового мира, эстетический восторг от Восторга и вывернутая наизнанку душа по ходу прохождения – в далеком 2007-м эта игра конкретно встряхнула моё юное и неокрепшее сознание. И таким же образом Bioshock перевернул и игровую индустрию, став первым за долгие годы представителем жанра immersive sim, который смог не просто стать успешным, а буквально захватить мир. Как студии Irrational Games удалось буквально невозможное? Насколько тернистым оказался их творческий путь? Об этом и не только сегодня и поговорим. Тема объёмная, так что заварите чаёк, включите Фрэнка Синатру на фон – мы начинаем погружение.
Читать дальше →

Почему здесь так жарко? Взламываем умный кондиционер

Reading time15 min
Views17K


Многие производители кондиционеров сегодня выпускают устройства, которые можно подключать к Wi-Fi и управлять ими через приложение. Включение кондиционера и охлаждение воздуха дома, пока вы едете с работы — это настоящая мечта. Однако пользоваться приложениями производителей часто не так удобно, как более совершенным ПО для автоматизации дома, которое может интегрироваться с голосовыми помощниками Google и Amazon. Поэтому, когда один из нас переехал в квартиру с умным контроллером кондиционера, одной из приоритетных целей стал взлом этого устройства для работы с Home Assistant.

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

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

Исходники закрыты, но мы не сдадимся: Пишем полностью нативное GUI-приложение под No-Name смартфон без Android

Level of difficultyMedium
Reading time10 min
Views22K
image

Для многих разработчиков приложений далеко не секрет, что экосистема Android не предполагает написание полностью нативных приложений: в этой платформе очень многое завязано на Java и без ART можно запустить только простые службы без какого-либо интерфейса. Однако, есть один способ писать практически под «голый» Linux, не перекомпилируя ядро и при этом пользоваться самыми интересными фишками устройства без оверхеда в виде тяжелого Android: ускорение 3D-графики (OpenGLES), микшер звука, ввод с различных устройств, OTG, Wi-Fi и если очень постараться — даже 3G. Это открывает множество разных интересных применений старым устройствам: «железо» смартфонов зачастую гораздо мощнее современных недорогих одноплатников. Сегодня я покажу вам, как написать и запустить программу, которая полностью написанное на C без Android, на No-Name Android-смартфоне практически без модификаций. Интересно? Жду вас в статье!
Читать дальше →

Simba: Симуляция десятков тысяч частиц в потенциале Леннарда-Джонса на чистом Python с GPU-ускорением

Reading time9 min
Views20K

Добрый день, уважаемые хабровчане.

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

Самостоятельно потыркать проект можно вот тут: https://github.com/r-aristov/simba-ps

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

В глубины симуляции

В {n} раз быстрее Си

Level of difficultyHard
Reading time13 min
Views39K

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

Эта статья публиковалась на главной странице HackerNews, и к её обсуждению вы можете присоединиться здесь.
Читать дальше →

Как работает хэширование

Level of difficultyMedium
Reading time12 min
Views85K

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

Хэш-функции фундаментальны и используются повсюду.

Но что же такое хэш-функции и как они работают?

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

Потоковая обработка данных с помощью Kafka Streams: архитектура и ключевые концепции

Level of difficultyMedium
Reading time23 min
Views40K

При реализации потоковой обработки и анализа данных может возникнуть необходимость агрегирования записей для объединения нескольких независимых поток данных или обогащения какой-либо модели данных. Для этой цели может использоваться Kafka Streams, которая позволяет выполнять обработку данных в режиме реального времени. 

В этой статье мы рассмотрим основные компоненты Kafka Streams и теоретические аспекты их использования. Мы будем использовать последние версии технологий, доступных на сегодня: Kafka 3.4.0 и Java 17 в качестве языка программированию. Для снижения входного порога мы будем использовать только нативные возможности Kafka и Kafka Streams, и не будем рассматривать решения с использованием различных фреймворков вроде Spring.

Читать далее

Как алюминий стал одним из главных металлов наших дней

Level of difficultyEasy
Reading time10 min
Views15K

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

Читать далее

Кодеки новой эпохи: HEVC, AV1, VVC и нейросети

Level of difficultyMedium
Reading time6 min
Views27K
Сжатие с учётом контекста, источник: WaveOne (сайт удалён)

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

В новом поколении кодеков алгоритмы машинного обучения используются для анализа и понимания визуального содержания видео, выявления избыточных данных и более эффективного сжатия. Вместо написанных вручную алгоритмов, тут применяют методы Software 2.0, основанные на обучении. Данная область развивается на протяжении десятилетий, но в последние годы получила сильный толчок. Все знают, что в 2017 году произошёл прорыв в разработке ИИ благодаря изобретению трансформеров. В свою очередь, они основаны на концепции внимания, которую придумали в 90-е. Эта техника впервые позволила соотносить друг с другом отдельные части текста или видеокадра.
Читать дальше →

Регрессия к среднему — невидимая рука хаоса

Reading time9 min
Views11K

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

Проявить любопытство

Что под капотом у нейронной сети. Нейросеть c точки зрения математики и программирования

Level of difficultyEasy
Reading time3 min
Views29K

Цель данной публикации – комплексное рассмотрение строения искусственных нейронных сетей c точки зрения и математики и программного кода. В данной работе нейронная сеть реализуется на языке Python с использованием библиотеки tensorflow.keras. Статья сосредоточена в основном на строении и функционировании искусственной нейронной сети, поэтому такие этапы как обучение и т.д. в ней не затрагиваются.

Читать далее

Information

Rating
Does not participate
Registered
Activity