Pull to refresh
3
0.3
Send message

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

Reading time9 min
Views20K

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

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

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

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

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

Простейший алгоритм разделения слова на слоги

Reading time3 min
Views6.7K
Однажды на проводимом мной практическом занятии [по ЯП] я, скучая, разглядывал список студентов группы. Глаз зацепился за знак ударения в фамилии Лемзекóв, который я поставил [для себя] после того, как произнёс фамилию этого студента неправильно. Я мысленно прочёл эту фамилию по слогам, и тут у меня возник вопрос: «а по какому алгоритму мозг разбивает слова по слогам?» Почему-то интуитивно получается "Лем-зе-ков", а не "Ле-мзе-ков" или "Лем-зек-ов". Я выписал ещё несколько примеров, и разглядывая их размышлял о том, как перевести это в алгоритм.
Читать дальше →

Самый простой способ ввести Linux в домен

Level of difficultyMedium
Reading time5 min
Views65K

Всем привет!

Термин Microsoft Active Directory Domain Services включает в себя множество технологий, поэтому сразу уточню, в этой статье речь пойдет про использование контроллера домена только для аутентификации пользователей. То есть в финале, нужна возможность любому сотруднику предприятия сесть за любую рабочую станцию Linux, используя свой доменный логин и пароль.

Начиная с Windows 2000 Server для аутентификации пользователей домена используется протокол Kerberos, разработанный еще в 80-х годах прошлого столетия, алгоритм работы которого, ИМХО, являет собой пример отличного инженерного хака, в хорошем (изначальном:) смысле этого слова. В конце статьи есть ссылка на описание его работы, а сейчас надо сказать, что имеется несколько реализаций этого протокола и решение из этой статьи не привязано только к Microsoft Active Directory

Читать далее

Временная релокация в Турцию для российского айтишника — основные вопросы, подводные камни, лайфхаки (обновляемая)

Reading time35 min
Views25K

Сколько же статей на эту тему написано и вот опять!

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

Читать далее

Формула Бине без плавающей точки

Reading time4 min
Views13K

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

Читать далее

PyQt6 — полное руководство для новичков

Reading time30 min
Views430K

К старту курса по разработке на Python делимся детальным руководством по работе с современным PyQt для новичков. Чтобы читать было удобнее, мы объединили несколько статей в одну:

1. Первое приложение

2. Слоты и сигналы

3. Виджеты

За подробностями приглашаем под кат.

Читать далее

Загрузочный диск Windows PE своими руками

Reading time36 min
Views155K
Сисадмину или мастеру сервисного центра, да и просто в хозяйстве на всякий случай помогает в работе загрузочная флешка с набором полезных программ, и в интернете можно найти полно готовых решений с «кучей» софта на все случаи в жизни. Но каждый, кто пользовался чужими готовыми вариантами LiveCD, рано или поздно задумывался о том, что по факту используется лишь малая часть приложений. Весь же остальной ненужный груз софта, который порой может составлять более 98% всего набора LiveCD, лишь мешает работать. Почему? Потому что LiveCD загружается прямиком в оперативную память, и чем больше объем LiveCD, тем больше ожидания загрузки, а если ещё и попался древний компьютер, то LiveCD может и вовсе не загрузится от нехватки памяти. И что же делать? Сделать свой собственный LiveCD! В этой статье я расскажу то, чего вы не найдете даже в гугле.
Читать дальше →

«Красный круче синего»: иерархия цвета в различных культурах

Reading time5 min
Views23K

В 1969 году два исследователя из Беркли, Пол Кэй и Брент Берлин, опубликовали книгу о довольно новаторской идее: каждая культура в истории, развивая свой язык, придумывала названия для цветов в одном и том же порядке.

Они выяснили это на основе простого теста на идентификацию цвета, в котором 20 респондентов распределили 330 цветных карточек по названию.

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

Теория была революционной — и она сформировала наше понимание того, как появляются цветовые термины.

image

Если бы я показал вам эти образцы и попросил назвать цвета, что бы вы ответили?

С помощью Python создаём математические анимации, как на канале 3Blue1Brown

Reading time6 min
Views37K

Вы наверняка когда-то испытывали трудности в понимании математических концепций алгоритмов машинного обучения и для лучшего понимания темы пользовались обучающим ресурсом 3Blue1Brown. 3Blue1Brown — известный математический YouTube-канал, который ведёт Грант Сандерсон. Многим нравится 3Blue1Brown за прекрасные объяснения Гранта и великолепные анимации.

21 мая стартует новый поток курса о математике для Data Science. Специально к его запуску мы делимся переводом, в котором автор решил рассказать, как делать анимации, подобные анимациям на канале 3Blue1Brown, чтобы вы могли иллюстрировать свои идеи и рассуждения о математике и не только.

Читать далее

Кручу-верчу, запутать хочу: углы Эйлера и Gimbal lock

Reading time3 min
Views131K


Выставите любой палец левой руки вперед. Давайте, не стесняйтесь, никто не будет над вами смеяться. Это нужно для важного эксперимента. Выставили? Теперь представьте что вы — это ваш палец (ну и бред). Повернитесь под прямым углом направо, затем наверх, и наконец налево. Где вы оказались? Правильно, в том же месте, но уже на спине.

С некоторой натяжкой именно так работает вращение с помощью углов Эйлера. Немного непредсказуемо и неудобно, не правда ли? Углы Эйлера имеют несколько недостатков, но есть одно особенно нехорошее свойство из-за которого вы не захотите с ними связываться. Его имя — Gimbal lock.

В русском языке gimbal lock называют по-разному: шарнирный замок, блокировка осей, складывание рамок. К сожалению, по запросам в поисковике с такими ключевыми словами выдаётся много мусора, а статья в Википедии оставляет желать лучшего, поэтому я сам расскажу вам об этом феномене и предложу как с ним бороться.

Внимание! Заходя под кат вы подвергаетесь риску поломать голову.
Ха! Я ничего не боюсь! Где этот gimbal lock?

Аэродинамика из STL

Reading time5 min
Views9.9K

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

Есть несколько способов получить эти цифры:

Читать далее

Как считывать и удалять метаданные из ваших фотографий с помощью Python

Reading time27 min
Views43K

Те, кто знает Python, могут делать поистине удивительные вещи, например, создавать арт-объекты и игры и красивые карты, полнотекстовую поисковую машину и систему распознавания лиц. Применим Python и для вполне бытовых задач. Сегодня, специально к старту новых потоков курсов Python для веб-разработки и Fullstack-разработчик на Python поделимся с вами туториалом, как считывать, добавлять и удалять EXIF метаданные из фотографий с помощью Python.

Читать далее

Кастомные QSettings::ReadFunc и QSettings::WriteFunc, или как я написал костыль для русификации файла настроек

Reading time9 min
Views4.8K

Введение


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

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

Проблема


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

Так как параметры разделены на группы по модулям устройства, то в конечном варианте получается структура «Группа — Ключ — Значение». Подходящим (но предназначенным по задумке для данной задачи) стал QSettings. Первая проба «пера» дала фиаско, с которым я не ожидал столкнуться.

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

QSerializer умер, да здравствует QSerializer

Reading time7 min
Views3.5K
Прошло несколько месяцев с тех пор, как я здесь рассказал о своем проекте Qt-based библиотеки для сериализации данных из объектного вида в JSON/XML и обратно. Надо признать — реализация получилась, прямо скажем, спорной.

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


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

Прощаемся с кометой NEOWISE

Reading time1 min
Views9.7K
Комета C/2020 F3 (NEOWISE) тускнеет — она все дальше от Солнца, район максимального сближения с Землей тоже позади, и последние измерения дают ее яркость на грани видимого глазом. Что ж, пора прощаться и вспомнить яркие кадры, которые нам подарила пока что самая яркая комета 21 века в северном полушарии.


Вид с МКС, фото NASA

Любовь, смерть, роботы и Пелевин

Reading time3 min
Views70K
image

В прошлом году, вернувшись с тренировки, я засел перед компьютером, чтоб посмотреть пару забавных мемов про котиков. И, обнаружив новость о выходе нового сериала Любовь, смерть и роботы– «Love, Death & Robots», я лениво потрогал её мышкой — глянуть одним глазком.

Пришел в себя я под утро. С красными глазами, затекшим, от сидения в кресле телом — но совершенно счастливым.

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

При пересмотре сериала, мои впечатления, впрочем, были уже не столь радужны — во мне проснулась писательская зависть. «Почему такое не снимают в России — возмущенно бормотал я, — я бы подобрал рассказы для сериала ничуть не хуже!»

«Я сниму свой сериал! — сказал я, чтоб справиться с завистью, — точнее, соберу 18 рассказов, ничуть не уступающих подборке сериала».
Читать дальше →

Запускаем камеру от телефона, или что делать, когда ничего не получается?

Reading time6 min
Views111K


Лет восемь назад работал я в одном… а в прочем, не важно где. Делали мы там всякие разные интересные вещи. В том числе занимались системами технического зрения для роботов. Роботы были немного маленькие. И если привод для них маленький сделать не было для нас особой проблемой, то вот сделать миниатюрную цифровую камеру, которая не была бы размером с половину робота, было трудно (когда же мы наконец похороним PAL в таких разработках и везде будет цифра?). Если вам любопытно узнать, чем же всё закончилось, прошу под кат!

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

Android Camera2 API от чайника, часть 6, финальная Стрим видео — сначала кодировали, теперь декодируем

Reading time28 min
Views5.9K

Итак, в предыдущем посте мы занимались кодированием «живого» видео формата H.264 на Android устройстве, которое затем отправляли для просмотра на персональный компьютер под виндой. Там наш видеопоток успешно раскодировывался и лицезрелся с помощью VLC плеера. А так же с помощью библиотеки VLCJ CAPRICA благополучно впихивался и в окошки JAVA приложения. Правда, каким именно образом он (VLC плеер) всё это проделывал, так и осталось загадкой. Но с другой стороны — работает, да и ладно.

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

Кому интересно — вперёд.
Читать дальше →

Information

Rating
3,875-th
Location
Кызыл, Тува (Тувинская Респ.), Россия
Registered
Activity

Specialization

Software Developer, Application Developer
Senior
From 150,000 ₽
Python
C++
Linux
Docker