Pull to refresh
0
0.1
Павел Гостев @fongostev

User

Send message

Запускаем Embedded Linux на Hard- и Soft-CPU Xilinx Zynq: проект программируемой логики

Level of difficultyHard
Reading time20 min
Views5.4K

Привет, Хабр! Меня зовут Павел Панкратов, я ведущий инженер-программист в дивизионе искусственного интеллекта YADRO. Этим текстом я запускаю цикл статей — экскурс в особенности работы с SoC, комбинирующей в себе реализованные в «железе» аппаратные блоки (Hard IP’s) и программируемую логику (Soft IP’s). Основная задача, которая объединит все три статьи, — параллельный запуск встраиваемой операционной системы на двух различных по архитектуре процессорах, представленных в виде Hard и Soft IP-блоков.

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

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

Делаем своего AI стилиста на python

Level of difficultyEasy
Reading time3 min
Views3.4K

Привет, чемпионы!

AI решение, которые я разберу в этой статье - после запуска в телеграм привлекло почти органически внимание 70 000 новых пользователей за месяц, а всего было произведено 400 000 генераций. Разбираю, как реализовал сама ML модель. Погнали!

Переодеть коллег
Total votes 10: ↑7 and ↓3+8
Comments7

Существуют ли шаровые молнии и как их объясняет современная наука?

Level of difficultyEasy
Reading time8 min
Views65K


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

Хотя почти у каждого человека в последние лет 20 с собой всегда есть телефон с видеокамерой, качественных видео с демонстрацией шаровой молнии почему-то не появилось — те, что можно найти, отличаются плохим качеством.
Читать дальше →
Total votes 108: ↑103 and ↓5+131
Comments398

Есть ли у Вселенной центр и куда указывает «дьявольская ось»?

Level of difficultyEasy
Reading time9 min
Views63K

Первые пятьсот лет прошлого тысячелетия никто не сомневался, что непоколебимый центр мира существует - и в нем находится Земля. Потом Коперник потряс основы мироздания, переместив Солнце в центр Вселенной и опустив Землю до рядовой планеты. Центр у Вселенной сохранился, но осадочек остался. Дальше – больше: потом и Солнце приравняли к обычным звездам и стали считать, что Млечный Путь является Вселенной, соответственно, центр нашей Галактики и является центром мира.

            Настал 20 век вместе с полной чехардой в науке. Весто Слайфер, сын фермера и сотрудник частной обсерватории Лоуэлла, уже в первое десятилетие этого беспокойного века показал, что Млечный Путь – тоже рядовая галактика, несмотря на то, что она нам как родная. Где центр у Вселенной будем делать? – совсем растерялись астрономы. Но в 1922 году многомудрый Фридман, на основе недавно созданной теории Эйнштейна придумал такую хитрую модель расширяющейся Вселенной, в которой центра-то и нет! Такая модель распухающего во все стороны теста с изюмом, где все изюминки (галактики) двигаются друг от друга, или, другими словами, расстояние между всеми галактиками растет. Так что, где хотите, там центр Вселенной делайте, да хоть на Земле! Чувствуете, как круг замкнулся?

            Конечно, концепция чего-то, которое неизвестно откуда и куда расширяется во всех точках одновременно, в обычных головах никак не укладывается. Ну и что? Зато всем понятно, что только космологи могут объять необъятное, а другие пусть просто благоговеют, глядя на них.

Читать далее
Total votes 106: ↑97 and ↓9+117
Comments360

Как загрузить, установить Office 2024 LTSC с сайта Microsoft и активировать навсегда?

Level of difficultyMedium
Reading time8 min
Views271K

Десять лет назад я писал пару статей - Как загрузить последний Office с сайта Microsoft без всякого App-V / Хабр (habr.com) и Как загрузить Microsoft Office 16 с сайта Microsoft / Хабр (habr.com), при помощи на тот момент еще мало кому известным Office Deployment Tool.

Время бежит стремительно, за Office 2016 выходит Office 2019, Office 2021, и вот сейчас подошло время для Office 2024. Что ж, посмотрим, что поменялось в плане загрузки, установки и активации продукта за десять лет.

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

Microsoft давно перешел на систему распространения продуктов семейства Office по разным, так называемым, "каналам" (channels), в зависимости от того как часто вы хотите получать нововведения и обновления.

Ключевым отличием в текущей загрузке и установке Office от того, что было актуально во времена Office 2016, является то, что вы должны определить, каким каналом распространения вы собираетесь пользоваться, - то есть с какого канала собираетесь устанвливать сам продукт. Тем, кто хотел бы подробно изучить разные каналы распространения я предложу почитать первоисточник - Обновления Office - Office release notes | Microsoft Learn. Остальным кратко резюмирую - Microsoft сейчас предпочитает всем продать подписку на Microsoft 365 (то, что ранее называлось Office 365), с регулярно обновляемыми возможностями в течении так называемой Современной политики жизненного цикла. По этой же современной политике распространяется пользовательские (коробочные, ретейл) версии Office 2021. Office 2021, например, поддерживается лишь до 13 октября 2026. А более старые версии следуют, так называемой политике фиксированного жизненного цикла, в рамках которой Office 2016 и Office 2019 поддерживаются лишь до 14 октября 2025. В целом, они не перестанут работать после, однако, перестанут обновляться. И у тех из вас, кто пользуется почтовыми сервисами на базе Microsoft Outlook.com или Office365, а возможно и пользователям Microsoft Exchange, с обновлениями выпущенными после 14 октября 2025 уже пора призадуматься об обновлении.

Читать далее об установке Office 2024
Total votes 166: ↑157 and ↓9+173
Comments259

Как пересобрать ядро для WSL2 и остаться в живых

Level of difficultyEasy
Reading time4 min
Views7K

Мы активно пользуемся WSL2 для того, чтобы открывать линуксовые коры в Visual Studio. Для обеспечения консистентности символов и коры мы монтируем squashfs образ, созданный в целевой системе. После очередного апдейта целевого дистрибутива, у нас всё сломалось - squash монтировался, но мог посередине файла выдать ошибку чтения, записав в dmesg что-то типа

SQUASHFS error: xz decompression failed
Total votes 29: ↑29 and ↓0+39
Comments2

Как изучать китайский язык / 怎样学习汉语? Пошаговая инструкция

Level of difficultyEasy
Reading time2 min
Views72K

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

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

И как же?
Total votes 22: ↑13 and ↓9+8
Comments39

Сборник встраиваемых модулей на ПЛИС

Level of difficultyEasy
Reading time6 min
Views9K

Интереса ради сделал несколько простеньких модулей (аля платки для встраиваемых систем), про которые и хочу рассказать и поделиться исходниками, вдруг кому пригодится. Да, эта статья не про ПЛИСовую тематику, а что бы её немного разбавить, хотя кого я обманываю, модули же с ПЛИСами.

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

Читать далее
Total votes 20: ↑18 and ↓2+21
Comments23

Малоизвестные библиотеки Python для анализа данных, которые сделают вашу жизнь проще

Level of difficultyMedium
Reading time14 min
Views29K

Привет Хабр! В этой статье мы рассмотрим некоторые полезные библиотеки Python для задач обработки данных, с которыми, возможно, вы еще не знакомы. Хотя для задач машинного обучения на ум приходят такие библиотеки, как pandas, numpy, scikit-learn, keras, tensorflow, matplotlib и т.д., но всегда полезно знать о других предложениях Python, особенно если это поможет улучшить ваши проекты.

Читать далее
Total votes 18: ↑17 and ↓1+20
Comments4

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

Level of difficultyMedium
Reading time7 min
Views43K


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

В итоге получается, что мы делаем нечто вроде маленькой копии YouTube, только на своём сервере. В определённом смысле это архивная копия на случай удаления видеоконтента из-за цензуры YouTube. Или на случай, если серверы YouTube станут недоступны с территории РФ из-за какого-то «технического сбоя».
Читать дальше →
Total votes 79: ↑78 and ↓1+102
Comments74

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

Level of difficultyEasy
Reading time4 min
Views112K

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

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

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

Читать далее
Total votes 138: ↑132 and ↓6+155
Comments316

Как можно компилировать типизированный Python

Reading time15 min
Views8.9K
Прошло уже целых 9 лет с тех пор, как состоялся документ PEP 484, в котором сообществу Python были ниспосланы типы. Многих это сильно разозлило, и в широких массах этот ход осуждался (1). С тех пор жители Интернета неоднократно заявляли, что стремятся выяснить: в самом ли деле это означает, что теперь можно компилировать Python в нативный код и таким образом его ускорять? Вопрос совершенно оправданный. Он возник у меня на самом раннем этапе моих разработок, касающихся Python-компиляторов. Итак, осуществимо ли это?

Нет. Но в каком-то роде и «да», с оговорками. Сейчас объясню. Разберём этот вопрос на примере «компиляции перед исполнением» (AOT) в коде на CPython или в смежном с ним коде. В настоящее время CPython – основная подобная реализация в коде на Python. Средства динамической (JIT) компиляции – уже другая категория, и они также будут подробнее описаны ниже. Совершенно новой информации в этом посте нет, я всего лишь постараюсь помочь вам разобраться в ворохе известных академических и отраслевых знаний.

Ключевой тезис статьи таков: типы – это очень развёрнутые подсказки, и иногда они врут.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments2

Как не оконфузиться при выборе автоматического выключателя

Reading time10 min
Views165K

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

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

Зачем рассказывать про контейнеризацию в 2023 году

Level of difficultyMedium
Reading time13 min
Views23K
image
Техножрец DevOps бережно описывает документацию по проекту

Опытные специалисты с характерным оттенком глаз могут справедливо возмутиться, что это всё уже давным-давно разжёвано и вообще RTFM. И будут отчасти правы. Тем не менее приходят новые специалисты, которые не застали бесплатную рассылку дисков с Ubuntu и вдумчивую компиляцию ОС с нуля.

Каждая новая технология поначалу держится на энтузиастах, которые её полностью понимают. Например, первые пользователи радио знали почти всё про радиосвязь, могли на коленке собрать детекторный приёмник и ловить радио «Маяк» на металлическую вешалку и моток проводов. Первые пользователи GNU/Linux знали всё про ядро и ключевые принципы работы. По крайней мере, вариант «поправил и скомпилировал драйвера для модема, чтобы настроить сеть» был не самым редким. Текущие пользователи обычно не сталкивались с основами, так как начали щупать технологию уже после снижения порога входа.

Те же процессы идут не только в среде потребителей технологий, но и среди инженеров. С одной стороны, узкая специализация совершенно нормальна, с другой — мы рискуем получить аналог культа Галактического Духа на Анакреоне из цикла романов «Основание» Азимова. Техножрецы выполняют сложные ритуалы, ядерные реакторы пайплайны работают. Ровно до тех пор, пока всё не сломается к чертям на низком уровне, а чинить будет некому.

Так происходит и с контейнеризацией. Я всё чаще встречаю на собеседованиях devops-инженеров, которые знают, как пользоваться Docker и Podman, пишут Dockerfile, но теряются, когда спрашиваешь про namespaces, и начинают плавать при вопросе: «А зачем, чем RPM хуже?» Все собирают контейнеры, и я собираю. Таков Путь. Не всегда, кстати, оптимальный.
Читать дальше →
Total votes 59: ↑59 and ↓0+59
Comments13

Полное практическое руководство по Docker: с нуля до кластера на AWS

Reading time39 min
Views1.7M



Содержание



Вопросы и ответы


Что такое Докер?


Определение Докера в Википедии звучит так:


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



Ого! Как много информации.

Читать дальше →
Total votes 125: ↑124 and ↓1+123
Comments44

Мы способны сами снизить свой биологический возраст — исследование

Reading time6 min
Views32K


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


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

Читать дальше →
Total votes 60: ↑37 and ↓23+28
Comments92

Памятки по искусственному интеллекту, машинному обучению, глубокому обучению и большим данным

Reading time4 min
Views37K


В течение нескольких месяцев мы собирали памятки по искусственному интеллекту, которыми периодически делились с друзьями и коллегами. В последнее время сложилась целая коллекция, и мы добавили к памяткам описания и/или цитаты, чтобы было интереснее читать. А в конце вас ждёт подборка по сложности «О большое» (Big-O). Наслаждайтесь.

UPD. Многие картинки будут читабельнее, если открыть их в отдельных вкладках или сохранить на диск.
Читать дальше →
Total votes 51: ↑47 and ↓4+43
Comments9

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

Level of difficultyMedium
Reading time15 min
Views20K

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

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

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

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

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

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

Если вы хотите сразу перейти к получившемуся коду, то читайте раздел «Подведение итогов».
Читать дальше →
Total votes 58: ↑54 and ↓4+68
Comments10

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

Level of difficultyMedium
Reading time18 min
Views22K

Известная шутка программистов гласит, что если решение вашей проблемы включает в себя парсинг текста при помощи регулярного выражения, то теперь у вас есть две проблемы. Некоторые программисты, прочитав шутку, решают попробовать иной подход. Возможно, регулярные выражения не так уж нужны. Возможно, задачу можно решить простым split строки или чем-то подобным. Однако другие могут задуматься немного глубже и задаться вопросом: «А если я сделаю нечто настолько дерзкое, что в результате получу три проблемы?» Мой пост написан в таком духе!

В нём используется код на Python, однако его легко можно адаптировать под любой язык с поддержкой функций высшего порядка.
Читать дальше →
Total votes 55: ↑53 and ↓2+65
Comments70

После GPT-4

Level of difficultyEasy
Reading time24 min
Views106K

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

Далее
Total votes 188: ↑174 and ↓14+216
Comments346

Information

Rating
3,570-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity