Search
Write a publication
Pull to refresh
14
0
Николай @DoNotPanic

Специалист по рассуждениям

Send message

Сколько ядер CPU можно использовать параллельно в Python?

Level of difficultyMedium
Reading time6 min
Views23K

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

Как же проверить, сколько ядер есть у компьютера? И действительно ли это хороший совет?

Оказывается, на удивление сложно определить, сколько потоков выполнять:

- В стандартной библиотеке Python есть множество API для получения этой информации, но ни одного из них недостаточно.

- Хуже того, из-за таких функций CPU, как параллельность на уровне команд и одновременной многопоточности (Hyper-threading в CPU Intel), количество ядер, которое можно эффективно использовать, зависит от того кода, который напишете вы!

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

Читать далее

Создание анимированных видео в нейросети Stable Diffusion, пошаговое руководство

Level of difficultyMedium
Reading time7 min
Views69K

Друзья, всем привет, даже от меня вы уже не раз слышали, что в нейросетях сейчас можно делать буквально все: создавать тексты, генерировать музыку, делать дипфейки, создавать изображения и даже видео. Раньше генерировать видео можно было только в больших платных проектах типа Gen-2 от Runway или в пока еще бесплатном дискорд боте Pika Labs. Локальные решения были плохими или требовали топовых видеокарт.

Осторожно, много тяжелых гифок.

Читать далее

Fooocus v2 — бесплатный Midjourney у вас на компьютере. Подробная инструкция по установке и использованию нейросети

Level of difficultyEasy
Reading time10 min
Views347K

Друзья, всем привет! Сегодня я хочу рассказать вам про самую простую и доступную для понимания нейросеть, которая создает изображения по вашему текстовому описанию. Она называется Fooocus и основана на знаменитой Stable Diffusion XL. Это идеальное решение в качестве вашей первой нейросети, и необходимый инструмент для любого дизайнера или контент мейкера.

Внутри много тяжелых изображений.

Читать далее

Не Unity единым…

Level of difficultyEasy
Reading time15 min
Views43K

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

Существует более сотни игровых движков, каждый из них содержит как минимум одну фичу которой нет ни в каком другом. Всех возможностей вместе нет ни в одном, и это прекрасно - иначе бы такой движок монополизировал рынок. Хм, Unreal5 ты ли это? Иногда полезно пробежать по release notes движка, чтобы оставаться в курсе последних новостей. Возможно вы разрабатываете свое решение и эта статья натолкнет вас на новые идеи. Готовы узнать что ваша любимая игры была сделана не на Unity, а на православном SDL?

Читать далее

Взлом YouTube для быстрого скачивания видео

Reading time9 min
Views83K
Мы неоднократно рассказывали о специальном софте, который позволяет скачивать видео с YouTube. Это в первую очередь youtube-dl (yt-dl) и его клоны, такие как yt-dlp и yt-dlc. С ними воюют могучие копирасты, пытаются удалить их из поисковой выдачи, с хостингов, с Github и так далее, по известной схеме «тотальная война».

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

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

Дегуглификация Chromium

Level of difficultyEasy
Reading time6 min
Views66K

На сегодня Chrome — пусть и не самый быстрый, но самый популярный браузер в мире, с большим отрывом от остальных. А единственным реальным конкурентом остался Firefox, потому что практически все остальные тоже перешли на кодовую базу и движок Chromium.

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

Но это не так просто сделать. К сожалению, следы Google проникли не только в проприетарный Chrome, но и в опенсорсный Chromium.
Читать дальше →

Windows — причина медленного интернета

Level of difficultyEasy
Reading time4 min
Views126K

Если вы столкнулись с «особой» проблемой медленного интернета и никакие танцы с бубном вам не помогают, то это статья для вас.

Провайдер, роутер, интернет-кабели, rg-45, обжимка, cat5e, порты, драйвера, программы уменьшающие скорость, утилиты, вирусы, настройки сетевого адаптера — это не какие-то страшные слова, на самом деле это всё не причина замедления интернета. В случае, если вы прошли всю эту цепочку и ничего не изменилось, тогда читайте дальше.

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

Читать далее

Собственная копия YouTube

Level of difficultyMedium
Reading time7 min
Views48K


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

В итоге получается, что мы делаем нечто вроде маленькой копии YouTube, только на своём сервере. В определённом смысле это архивная копия на случай удаления видеоконтента из-за цензуры YouTube. Или на случай, если серверы YouTube станут недоступны с территории РФ из-за какого-то «технического сбоя».
Читать дальше →

Как использовать Reddit после APIкалипсиса?

Level of difficultyEasy
Reading time3 min
Views7K

Прошлая неделя оказалась весьма плачевной для пользователей соцсети с красным пришельцем на логотипе. Протесты касательно введения новых расценок на использование API в Reddit не привели к ожидаемым результатам и почти все популярные клиенты (Sync, Infinity, Apollo, RiF, Boost и прочие) прекратили свою работу 1 июля 2023 года. Как быть, если хочется продолжать пользоваться Reddit, а официальный клиент не устраивает?

Читать далее

Проблемы накапливаются. Софт тормозит. Везде некомпетентность и хаос

Level of difficultyEasy
Reading time6 min
Views54K


Закон Старджона гласит: «Ничто не может всегда идти правильно». Рано или поздно всё ломается.

Это естественная причина, почему софт ухудшается с каждым годом. Иначе и быть не могло. Кодовая база растёт, количество ошибок увеличивается, проекты просто тонут в багах.

Взять недавний случай с багом в Windows Defender, который вызывал тормоза Windows. Крайне показательная история. Да, этот баг обнаружили, но в кодовой базе остались такие же. Мы этого не знаем наверняка, но вполне логично предположить, что количество скрытых багов растёт пропорционально кодовой базе. Поэтому софт всё больше тормозит со временем. Это естественный процесс, почти как закон природы.
Читать дальше →

Дядя Фёдор и методы рационального мышления

Level of difficultyEasy
Reading time21 min
Views26K

Несколько лет назад я с удовольствием прочитал фанфик «Гарри Потер и методы рационального мышления»  Элиезера Юдковского. Несмотря на подростковую направленность книжки, она получилась интересной. И умопомрачительно смешной – особенно на контрасте с оригинальным произведением.

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

Мне очень понравился формат книги Элиезера – в которой он объяснял серьезные научные концепции на примере знакомых с детства персонажей. Читая, я задавал себе вопрос: Какими бы получились «Гарри Потер и Методы», если бы Элиезер жил в России? Какую книгу он выбрал бы для основы? Приключения Буратино заняты покойным Константином Крыловым, так что остается только Незнайка и дядя Фёдор.  При этом дядя выглядит тут предпочтительнее – Незнайка слишком оторван от окружающей нас реальности, которая требует осмысления.

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

Читать первую главу:

Как использовать Midjourney: подробный гайд, лайфхаки, промты

Level of difficultyEasy
Reading time7 min
Views116K

Ранее мы рассказывали о своих впечатлениях и результатах тестирования приложений на основе нейросети. В своей работе на платформе «РСХБ в цифре» мы активно используем Midjourney и искусственный интеллект. В новой статье хотим поделиться советами, которые позволят с нуля разобраться в основных функциях и командах, чтобы приступить к созданию интересных изображений с помощью этого приложения.

Читать далее

Британская паровая империя

Reading time12 min
Views12K


<< До этого: Пароходы, часть 2: дальнейшие приключения Изамбарда Кингдома Брюнеля

Британская империя XIX века господствовала в Мировом океане и на большей частьи суши: в Канаде, южной и северо-восточной Африке, Индийском субконтиненте и Австралии. На пике своего мирового господства в викторианскую эпоху эта политическая и экономическая машина работала на энергии угля и пара; то же самое можно сказать и обо всех других крупных державах того времени, начиная с неэффективных империй, таких как Франция и Нидерланды, и заканчивая восходящими государствами, Германией и Соединёнными Штатами.

Две технологии связывали широко разбросанную Британскую империю воедино: пароходы и телеграф; причём последняя, которая, казалось бы, должна была представлять собой новую, независимую техническую парадигму, основанную на электричестве, зависела от первой. Только пароходы, способные произвольно менять курс и скорость независимо от преобладающих ветров, могли эффективно прокладывать подводный кабель [1].
Читать дальше →

Хейт теории эволюции (Кельвин vs Дарвин)

Reading time9 min
Views22K

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

Читать далее

Как снимали Терминатор 2 и почему он актуальнее, чем кажется

Level of difficultyMedium
Reading time12 min
Views70K

Не знаю, с какого фильма вы начали смотреть VHS кассеты дома. Но когда у нас появился первый видеомагнитофон (даже не купленный, а выменянный у соседа), отец побежал на барахолку, нашел и притащил несколько кассет. Как сейчас помню, это были «Бетховен», «Змея в тени орла» и «Терминатор 2: Судный день». Как думаете, что выберет юный неокрепший ум, глядя на картинки с огромной псиной (хотя фильм очень добрый и клевый), каким-то китайцем (прости, Джеки Чан — я люблю тебя) и крутым мужиком в кожанке и с пушкой?

На кассетах еще были заботливо кем-то наклеены бумажки не просто с названием, а с кратким содержанием фильма. Это было что-то очень смешное, что сейчас мог бы выдать условный ChatGPT. Но тогда рассказ про киборга, возвращающегося в прошлое и пытающегося спасти будущего спасителя человечества — простите, что? Папа, включай поскорее — уже хочу увидеть кошмарное качество и незабываемый перевод Андрея Гаврилова. 

В общем, лично для меня Терминатор 2 стал первым фильмом, который я увидел на VHS. И после него мир уже не был для меня прежним. Потом еще были оба «Хищника» и первые две части «Чужих» — это вот мое детство. 90-е, было реально тяжело, но я пересматривал фильмы и буквально уносился в неведомые миры, где вместе с героями сражался с монстрами и киборгами. 

Ну да ладно, от слов к делу. Давайте посмотрим, как его снимали и почему он стал реально культовым не только у меня во дворе.  

Мне нужна твоя одежда и мотоцикл!

Карта, золото, «Герои»: продолжаем разбираться в технико-исторической части HeroWO.js — браузерного клона культовой игры

Level of difficultyEasy
Reading time11 min
Views6.8K

TL;DR для тех, кому некогда читать™:




День пятый

О, «Герои»? Дайте две! Как я писал очередной браузерный клон легендарной стратегии, в который уже почти* можно играть

Level of difficultyEasy
Reading time14 min
Views36K


TL;DR для тех, кому некогда читать™:




Вот как всё начиналось

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

Level of difficultyHard
Reading time7 min
Views15K

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

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

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

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

Читать далее

Ускоряем Python в сто раз при помощи менее чем ста строк на Rust

Level of difficultyMedium
Reading time15 min
Views21K

Однажды на работе у нас возникла проблема с производительностью одной из наших основных Python-библиотек.

Эта библиотека формирует фундамент нашего конвейера 3D-обработки. Это довольно большая и сложная библиотека, использующая NumPy и другие научные пакеты Python для выполнения широкого спектра математических и геометрических операций.

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

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

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

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

Если вы хотите сразу перейти к получившемуся коду, то читайте раздел «Подведение итогов».
Читать дальше →

Странный мир путей файлов в Windows

Reading time6 min
Views77K

Пути файловых систем в Windows страннее, чем можно подумать. В любой производной от Unix системе пути на удивление просты: если нечто начинается с /, то это путь. Но всё совершенно иначе в Windows, которая имеет озадачивающее разнообразие схем составления пути.

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

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

Information

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