Как стать автором
Обновить
-13
0.1
Моё имя — стёршийся иероглиф @beeruser

Пользователь

Отправить сообщение

Простейшая нейросеть: еще раз и подробнее

Время на прочтение10 мин
Количество просмотров57K

Машинное обучение это незаменимый инструмент для решения задач, которые легко решаются людьми, но не классическими программами. Ребенок легко поймет, что перед ним буква А, а не Д, однако программы без помощи машинного обучения справляются с этим весьма средне. И едва ли вообще справляются при минимальных помехах. Нейросети же уже сейчас решают многие задачи (включая эту) намного лучше людей. Их способность обучаться на примерах и выдавать верный результат поистине очаровывает, однако за ней лежит простая математика. Рассмотрим это на примере простого перцептрона.
Данная статья представляет собой пересказ-конспект первой части книги Тарика Рашида "Создай свою нейросеть" для тех, кто начал изучать тему, не понял отдельные детали или с трудом охватывает общую картину.

Читать далее
Всего голосов 84: ↑83 и ↓1+95
Комментарии27

Флаттер крыла самолёта

Время на прочтение15 мин
Количество просмотров15K

Флаттер‑ это загадочное явление в аэродинамике, которое есть, но объяснения которого до сих пор нет.

Про «флаттер» я уже писал отдельную «главу № 4» в первой своей большой статье про «Подъёмную силу крыла без „закона Бернулли“.

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

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

Читать далее
Всего голосов 47: ↑40 и ↓7+53
Комментарии46

Работа с кодом на C++ в Swift

Время на прочтение9 мин
Количество просмотров2K

Привет, Хабр! Меня зовут Иван Мясников, я CTO проекта «Виртуальный ассистент» в МТС Диджитал. Встраивание кода С++ в приложения для iOS — достаточно трудная задача. Еще сложнее собрать SDK для дальнейшей поставки в сторонние приложения, используя логику на С++ совместно со Swift. В этой статье я расскажу, как мы создавали такой SDK так, чтобы он встраивался в любое приложение без танцев с целевой архитектурой процессора.

Встраивание C++ в Swift позволяет использовать один код на разных платформах и ускорить некоторые задачи, где Swift не хватает быстродействия. У нас есть библиотека на C++ для работы с ML на Tensorflow Lite. И эту библиотеку мы хотели встроить на Android, iOS, Linux под различные платформы и архитектуры процессора без переписывания логики оттуда на Kotlin, Swift или что-нибудь еще. В этой статье я расскажу, как мы заставили код на C++ работать в iOS и какие тут есть тонкости и ограничения. Я ориентировался на читателей, у которых может не быть экспертизы в iOS или в C++, и старался не погружаться в глубокие дебри. Этот материал познакомит с решениями, к которым мы пришли экспериментально, подбирая подходящие варианты под нашу задачу.

Читать далее
Всего голосов 11: ↑10 и ↓1+14
Комментарии12

Открытый онлайн-курс по цифровой схемотехнике: от истоков до первого устройства

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров16K

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

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

Читать далее
Всего голосов 58: ↑57 и ↓1+72
Комментарии23

Компилятор за выходные: наконец-то ассемблер

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.2K

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

Ну а когда оно заработает, предлагаю решить задачу: как сэмулировать побитовые операции and-not-xor-or при помощи четырёх арифметических.

Читать далее
Всего голосов 22: ↑22 и ↓0+27
Комментарии10

Орнитоптер своими руками?

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров13K
Картинка Freepik

«И не думать, как приземлиться
А у птиц свободе учиться
Оставив всё то, что жаль…»

Группа «Амега» — «Лететь»


Среди летательных аппаратов особое место занимают махолёты (их ещё называют орнитоптерами). И если раньше из-за отсутствия достаточно мощных и компактных источников энергии единственным вариантом построения таких аппаратов у любителей было использование в качестве источника энергии скрученной резиновой ленты/лент (так называемые «модели с резиномотором») то теперь появилась возможность создавать такие устройства с электрическим приводом, о чём мы поговорим в этой статье.
Читать дальше →
Всего голосов 65: ↑65 и ↓0+84
Комментарии15

FUSE: как написать свою файловую систему

Уровень сложностиСложный
Время на прочтение21 мин
Количество просмотров14K

Меня зовут Максим, я ведущий разработчик в VK. Занимаюсь инфраструктурой доставки электронной почты в проекте Mail.ru. Наша команда разработала и довела до эксплуатации файловую систему (ФС) на FUSE в рамках проекта распределённой почтовой очереди. В проекте требовалось реализовать сетевую ФС, которая сохраняет данные в трёх копиях, в разных ЦОДах. Цель — повысить отказоустойчивость, чтобы даже полный выход из строя одного ЦОДа не приводил к нарушениям SLA. Эта статья для всех, кто интересуется файловыми системами и хранением данных. Мы обсудим:

- зачем писать свою ФС;

- как написать свою ФС с помощью фреймворка FUSE;

- какие подводные камни есть у эксплуатации FUSE в production.

Эта статья — результат трёх лет разработки ФС. Сейчас самое время заварить чай, рассказ будет долгим. 

Заварить чай и читать
Всего голосов 64: ↑64 и ↓0+79
Комментарии15

Разглядывая JTAG: самый быстрый программный JTAG на Arduino

Уровень сложностиСредний
Время на прочтение26 мин
Количество просмотров10K

В предыдущих статьях цикла был приведен пример реализации ведомого модуля JTAG на Verilog. Я предположил, что количество инженеров, знающих Verilog, меньше, чем количество инженеров, которым требуется понимание принципов работы JTAG. Поэтому, помимо реализации на Verilog, модуль JTAG был также реализован на Си.

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

Субъективно, практическое применение программного JTAG мне по‑прежнему видится не вполне оправданным.
Но, во‑первых, это хороший повод рассмотреть предельные возможности микроконтроллеров.
А во‑вторых, есть формальная причина сказать, что в данной статье предлагается Решение Прикладной Задачи :)

Итак, сегодня мы поговорим про прерывания, поллинг и прочее. А протокол JTAG станет фоном для повествования.

jmp start
Всего голосов 40: ↑40 и ↓0+55
Комментарии30

Двигатели переменного тока – точные модели

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров4.4K

На семинаре «Преподавание электропривода в вузах», прошедшем в ЛЭТИ пятого октября прошлого года, был представлен доклад Алексея Сергеевича Анучина (далее для краткости А.С.) под названием «Модели, которым мы учим студентов».

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

Материал, изложенный ниже, является результатом этих раздумий.

Авторы: Ю.Н. Калачёв, Ф.И. Баум, А.Ю. Базин

Вполне допускаются и даже приветствуются возражения читателей.

Читать далее
Всего голосов 6: ↑6 и ↓0+9
Комментарии0

Рисуем рабочий процессор в Paint и запускаем на нём ОС | Ритуал по призыву демона Тьюринга

Уровень сложностиПростой
Время на прочтение28 мин
Количество просмотров15K


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

Термос этот он нашёл на улице и хотел перепрошить его маленький и беззащитный Cortex-M0+.
Человек бредил. Раз в пару минут его глаза загорались и он издавал душераздирающий крик: «Если что-то существует, то на этом можно запустить Doom!».

Но действительно ли это так? И что вообще значит «запустить»?

Почему нельзя просто вывести изображение логотипа или распиновать VGA для вывода изображения на дисплей абсолютно любого устройства?
Ведь все так и делают)


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

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

Ну а если вы всё ещё здесь — добро пожаловать под кат.
Читать дальше →
Всего голосов 78: ↑76 и ↓2+103
Комментарии16

Фен и нижний подогрев. Снятие/установка BGA без реболлинга

Время на прочтение5 мин
Количество просмотров8.9K

Приветствую, Хабр!

В статье хочу показать процесс снятия чипов в BGA корпусе и установки на новую плату не перекатывая шарики. Опишу некоторые нюансы, которые позволяют осуществлять данную операцию более или менее безболезненно.

Читать далее
Всего голосов 46: ↑45 и ↓1+68
Комментарии28

Популярные алгоритмы машинного обучения. Теоретические основы и реализация с нуля на Python

Уровень сложностиСложный
Время на прочтение1 мин
Количество просмотров33K

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

Читать далее
Всего голосов 22: ↑22 и ↓0+22
Комментарии21

Настоящее предназначение OpenAI SORA: как и зачем симулировать «Матрицу» для ChatGPT

Уровень сложностиСредний
Время на прочтение41 мин
Количество просмотров102K

Ну что, уже успели прочитать восхищения небывалым качеством видео от нейросетки SORA у всех блогеров и новостных изданий? А теперь мы вам расскажем то, о чем не написал никто: чего на самом деле пытается добиться OpenAI с помощью этой модели, как связана генерация видео с самоездящими машинами и AGI, а также при чем здесь культовая «Матрица».

Войти в симуляцию →
Всего голосов 248: ↑244 и ↓4+281
Комментарии122

Тормозящая виртуализация на x86. Небольшая попытка разобраться Часть 4. KVM

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров9.2K

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

Часть 4. Что из этого следует, и как устроен планировщик в KVM или KVM- QEMU. Тут тоже не будет ничего нового, но будет масса ошибок.

Читать далее
Всего голосов 29: ↑20 и ↓9+17
Комментарии13

Краткий обзор TinyML

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров6K

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

Читать далее
Всего голосов 13: ↑12 и ↓1+14
Комментарии2

Как работает протокол X11 на самом нижнем уровне

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров40K

X11 это тот механизм на чем работает весь графический интерфейс Unix подобных ОС.


Но мало кто знает как он работает на самом деле. Потому что с годами он оброс слоями и слоями библиотек, которые стремятся скрыть саму сущность протокола.


А протокол в своей сути прекрасен. Он лаконичен и почти совершенен.


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


А все книги и статьи по использованию X11 описывают это через библиотеки прокладки типа XLib и XCB, и даже, что хуже, GTK или Qt.


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


Как бы то ни было, если кому-то интересно как все работает на самом деле, пожалуйста под кат.

Читать дальше →
Всего голосов 160: ↑158 и ↓2+197
Комментарии182

Сколько строк на C нужно, чтобы выполнить a + b в Python?

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров62K

В своей предыдущей статье я исследовал структуру PyObject и её роль в качестве заголовка для всех объектов среды исполнения CPython. Эта структура играет важнейшую роль в обеспечении наследования и полиморфизма в системе объектов CPython. Но это лишь вершина айсберга.

В этой статье мы опустимся на один уровень ниже и посмотрим, что же происходит внутри среды исполнения Python для выполнения простого действия a + b. Иными словами, мы узнаем о подробностях реализации типов, операторов и динамической диспетчеризации в CPython.

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

Читать далее
Всего голосов 39: ↑36 и ↓3+52
Комментарии64

Exploring VALID/READY protocol, pipelines and experimenting with flow control using an HDL training tool

Уровень сложностиСредний
Время на прочтение1 мин
Количество просмотров1.4K

Ссылка на русскую версию / link to Russian version

Understanding valid/ready protocol is extremely important for every microarchitect.

Valid/ready is one of the main protocols used to organise flow-control inside a logic block as well as on inter-block (SoC) level.

In the last lesson, we explored FIFO buffer using hdlgadgets - human-in-the-loop HDL training tool.

This time we will take two FIFO buffers (which form a pipeline with valid/ready handshakes) and will experiment with it by changing flow-control logic of the pipeline.

We will show that valid/ready is not only a mechanism for transferring data from one FIFO queue to another, but also a method for organizing various kinds of logical functionality between queues.

If you have not worked with valid/ready protocol before, you will be surprised how easy it is to achieve desired functionality of the design by simply writing couple of lines of Verilog code in the handshaking logic block between two FIFOs.

Read further and watch the video
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Как создать собственный шрифт

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров21K

В этом месяце я решил узнать, как создать шрифт, который буду использовать в своём комиксе hakum. Раньше я рисовал текст в цифре на своём планшете. Результат оказывался хорошим, но иногда трудночитаемым (размер текста часто скакал на одной странице). Мне не хотелось использовать готовый шрифт, поэтому я решил создать собственный на основе своего рукописного текста. Шрифт повысит читаемость текста и сделает его однородным.

Примечание: это моя первая проба создания шрифта. Я не дизайнер, не освоил создание шрифтов в совершенстве и не специалист по программе FontForge. Возможно, существуют способы получше добиться того же результата. В этой статье я опишу свой процесс, который, вероятно, поможет другим начинающим создать свой первый шрифт (для личного пользования). Моя цель заключалась в создании шрифта TTF для применения в веб-публикациях с ограниченным набором символов (без полужирного и курсивного написания).

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии0

Графика древности: палитры, часть 1/2

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров16K

Хотя пиксельная графика прошлых лет полна нюансов, несомненно, одной из её главнейших характеристик, наряду с разрешением, является палитра — ограниченный набор цветов, которым нарисовано пиксельное изображение. Уникальное сочетание цветов, доступное на отдельно взятом старом компьютере или игровой приставке, часто позволяет даже беглым взглядом отличить графику для одной платформы от другой. Техники работы с палитрами и подбор оттенков также являются визитной карточкой многих пиксельных художников прошлого и современности. Но палитра — это не просто случайный набор цветов. Это результат технических ограничений и инженерных решений, в результате которых родились необычные техники рисования, анимационные спецэффекты, и особая визуальная эстетика.
Читать дальше →
Всего голосов 91: ↑90 и ↓1+126
Комментарии38
1
23 ...

Информация

В рейтинге
2 858-й
Дата рождения
Зарегистрирован
Активность