Pull to refresh
15
0
Ильдус Курбангалиев @ildus

Программист

Send message

Расчет потерь в MOSFET транзисторах

Level of difficultyMedium
Reading time6 min
Views6.6K

Приветствую!

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

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

Варим C с компилятором Zig и его build.zig

Level of difficultyEasy
Reading time21 min
Views4.6K

По случаю выхода версии 0.11.0 языка Zig я решил написать ещё одну статью о языке Zig. В этот раз речь пойдет о системе сборки языка. А точнее, как пользоваться кодом написанным на языке C в проекте на языке Zig, с небольшими ответвлениями в стороны для описания некоторых возможностей системы сборки. Тем более, что она претерпела несколько изменений, о чём я так же коротко упомяну. Эксперименты проводились мной на Windows 11. Стоит сразу упомянуть, что указанные в статье команды будут работать и на других операционных системах. Это одна из особенностей языка Zig. Но пример кода линковки системных библиотек для сборки библиотеки raylib будет платформозависимый, так как для разных платформ набор библиотек отличается. Если интересно, то прошу...

пройти во внутрь
Total votes 14: ↑13 and ↓1+12
Comments30

Книга «Грокаем глубокое обучение с подкреплением»

Reading time13 min
Views12K
image Привет, Хаброжители!

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

Давайте научимся создавать системы глубокого обучения на примере увлекательных упражнений, сопровождаемых кодом на Python с подробными комментариями и понятными объяснениями. Вы увидите, как работают алгоритмы, и научитесь создавать собственных агентов глубокого обучения с подкреплением, используя оценочную обратную связь.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments3

Всё про USB-C: введение для электронщиков

Level of difficultyMedium
Reading time8 min
Views26K

Прошло уже почти пять лет, как во всевозможных устройствах начали появляться порты USB-C. Это стандарт, за рамки которого могут выходить многие производители и электронщики. Поначалу существовало много путаницы относительно того, что он в себе несёт, и всяческие отклонения со стороны производителей некоторых людей отталкивали. Однако теперь USB-C уже прочно вошёл в нашу жизнь, и я хочу показать вам, как именно этот стандарт используется, чего могут ожидать от него пользователи, а что он способен предложить электронщикам.
Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments17

Пишем и отлаживаем приложения для Flipper Zero

Reading time7 min
Views11K

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

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

Математика для Data Science и машинного обучения за 8 месяцев. Подробный план обучения

Level of difficultyEasy
Reading time7 min
Views76K

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

Машинное обучение держится на трёх основных столпах:

Читать далее
Total votes 24: ↑23 and ↓1+22
Comments44

Распознавание цифр, для максимально маленьких (python/keras)

Reading time6 min
Views19K

Этот пост я решил написать, для тех, кто также искал понятный код и рабочий пример, который можно было взять, вставить в гугл колаб(google colab) и сразу начать "играться" с кодом. Но не нашел. Для вас, друзья!

P.S весь код будет в конце.

Импортируем бэкэнд кераса, по началу, мы его использовать не будем, но некоторые функции нам понадобятся.

Читать далее
Total votes 12: ↑5 and ↓7-2
Comments7

Бюджет потерь USB 3.2

Reading time17 min
Views29K

Откуда столько названий стандартов USB? Какие допустимые потери сигнала в кабеле по спецификации, и почему почти никто ей не следует? Как измерить потери в дифференциальной линии и не продать почку?

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

Страх и ненависть в спецификации USB
Total votes 156: ↑155 and ↓1+154
Comments60

Линейная алгебра для спутниковой интерферометрии

Reading time6 min
Views2.5K

В предыдущих статьях с примерами Jupyter ноутбуков на Google Colab мы наблюдали эффект "танцующих гор" и потом разбирали, как же это возможно. Смотрите Танцующие горы Ирана по данным спутниковой интерферометрии и Спутниковая интерферометрия для танцующих гор Ирана на Google Colab. В статьях рассказано, как можно посчитать движения территории или отдельных объектов путем анализа радарных спутниковых снимков на примере снимков Sentinel-1. Теперь посмотрим, как можно усложнить себе жизнь (однократно), чтобы получать еще более точные результаты автоматически. Вместо ручного выбора референсного изображения построим всевозможные пары изображений и посчитаем для них интерферограммы, чтобы по полученным сериям смещений с заданной их вероятностью (когерентностью) для перекрывающихся интервалов времени найти наиболее вероятную траекторию движения каждого пикселя поверхности за весь период наблюдения. Хотя я стараюсь обходиться без лишних усложнений наподобии записи в матричной форме вычисления среднего значения двух величин (многие работы по интерферометрии делают именно так — демонстрируют матричные уравнения для нахождения среднего значения для смещений, вычисленных раздельно для восходящей и нисходящей орбиты… хоть это формально и правильно, с точки зрения здравого смысла в этом нет никакого смысла), сегодня без линейной алгебры и матриц обойтись нам не удастся, зато я постараюсь объяснить все это в максимально простой и понятной форме.


Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments0

Как умереть со своими зубами в 90 лет

Reading time11 min
Views41K

КТ челюсти. Очень важная вещь для составления календаря планового лечения.

Вообще у человека, который задался таким вопросом, есть три способа:

  1. Идеальный. От рождения до смерти следить за зубами.
  2. Типовой. Обратить внимание на свои зубы в возрасте примерно 30–40 лет. Вылечить кариес, наладить правильную гигиену. Это когда не просто горизонтальными движениями щёткой по зубам. И зайти к ортодонту и ортопеду. Если вы достоверно точно знаете, что с опорным аппаратом зубов у вас всё ОК, то можете пропустить этот шаг.
  3. Сложный. Когда вам уже 60 лет и вставную челюсть не хочется. Это, конечно, уже не про экономию, а про съёмные протезы и профилактику пародонтита.

Сегодня поговорим про календарь планового лечения, про то, что человек должен делать с начала своей жизни и в течение, чтобы у него с зубами было всё хорошо или, по крайней мере, прогнозируемо. В общем, этот пост — про экономию: как грамотно инвестировать в свои зубы и исходя из составленного плана управлять сроками, бюджетом и процессом лечения.
Читать дальше →
Total votes 55: ↑50 and ↓5+45
Comments48

10 советов схемотехнику

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


Читать дальше →
Total votes 212: ↑210 and ↓2+208
Comments244

Измеряем на коленке пропускную способность памяти

Reading time9 min
Views18K
Несколько недель назад в разговоре за обедом коллега пожаловался на какой-то медленный процесс. Он подсчитал количество сгенерированных байт, количество циклов обработки, и в конечном счёте, объём оперативной памяти. Коллега заявил, что современный GPU с пропускной способностью памяти более 500 ГБ/с съел бы его задачу и не подавился.

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



Я знаю, как писать код, который активно использует кэш. Знаю примерые цифры задержки. Но этого недостаточно, чтобы сходу оценить пропускную способность памяти.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments21

Noerden Life2 — аналоговые часы с «жестовым» управлением и «сенсорным» стеклом

Reading time5 min
Views13K
Вы, наверное, помните, как у Гофмана в «Житейских воззрениях...» герой «живо поделил весь род человеческий на две неравные части: одна состоит только из хороших людей, но плохих или вовсе не музыкантов, другая же — из истинных музыкантов...»

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

Ах, да: «никто из них не будет осужден, наоборот, всех ожидает блаженство, только на различный лад».


Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments4

Пишем операционную систему на Rust. Страничная организация памяти

Reading time17 min
Views30K
В этой статье представляем страницы, очень распространённую схему управления памятью, которую мы тоже применим в нашей ОС. Статья объясняет, почему необходима изоляция памяти, как работает сегментация, что такое виртуальная память и как страницы решают проблему фрагментации. Также исследуем схему многоуровневых таблиц страниц в архитектуре x86_64.

Этот блог выложен на GitHub. Если у вас какие-то вопросы или проблемы, открывайте там соответствующий запрос.
Читать дальше →
Total votes 83: ↑83 and ↓0+83
Comments17

Мой любимый алгоритм: нахождение медианы за линейное время

Reading time7 min
Views94K
image

Нахождение медианы списка может казаться тривиальной задачей, но её выполнение за линейное время требует серьёзного подхода. В этом посте я расскажу об одном из самых любимых мной алгоритмов — нахождении медианы списка за детерминированное линейное время с помощью медианы медиан. Хотя доказательство того, что этот алгоритм выполняется за линейное время, довольно сложно, сам пост будет понятен и читателям с начальным уровнем знаний об анализе алгоритмов.
Читать дальше →
Total votes 46: ↑45 and ↓1+44
Comments40

LSTM – сети долгой краткосрочной памяти

Reading time8 min
Views207K

Рекуррентные нейронные сети


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

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

Решить эту проблемы помогают рекуррентые нейронные сети (Recurrent Neural Networks, RNN). Это сети, содержащие обратные связи и позволяющие сохранять информацию.
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments4

Детектирование движения в видеопотоке на FPGA

Reading time13 min
Views25K

Предисловие


Меня давно интересовала тема обработки видео, вот только на отладочных платках 7-х и 9-х ARM-ов это получалось очень медленно и от этого становилось не интересно.

В настоящее время полным-полно мощного многоядерного железа и создано много библиотек для работы с видео, но мой выбор пал на ПЛИС.
Читать дальше →
Total votes 83: ↑80 and ↓3+77
Comments25

Lock-free структуры данных. Iterable list

Reading time7 min
Views14K
Lock-free list является основой многих интересных структур данных, — простейшего hash map, где lock-free list используется как список коллизий, split-ordered list, построенный целиком на списке с оригинальным алгоритмом расщепления bucket'а, многоуровневого skip list, являющегося по сути иерархическим списком списков. В предыдущей статье мы убедились, что можно придать такую внутреннюю структуру конкурентному контейнеру, чтобы он поддерживал thread-safe итераторы в динамичном мире lock-free контейнеров. Как мы выяснили, основным условием для того, чтобы lock-free контейнер стал итерабельным, является стабильность внутренней структуры: ноды не должны физически удаляться (delete). В этом случае итератор суть просто (быть может, составной) указатель на ноду с возможностью перехода к следующей (оператор инкремента).

Можно ли такой подход распространить на lock-free list?.. Посмотрим…
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments0

Установка Android планшета NEXUS 7 2013 вместо магнитолы в Mazda MX-5 – часть 1/2

Reading time7 min
Views77K
Привет читающим! Этой статьей я постараюсь описать весь путь установки планшета на андроиде в качестве магнитолы в автомобиль mazda мх5. Начиная от закупки комплектующих и заканчивая программной частью – в общем полный полный набор с кучей фото, видео и текста. Я проделал эту работу и постарался описать всё так, что бы это мог повторить каждый!

И вы сможете завтракать в пробках с ютубом



Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments99

Статистика для математика

Reading time3 min
Views24K

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

К сожалению, действительно хорошая литература, такая что умела бы предоставить одновременно математически строгие доказательства и понятные интуитивные объяснения, встречается не очень часто. И данные лекции, на мой взгляд, необычайно хороши для математиков, разбирающихся в теории вероятностей именно по этой причине. По ним преподают магистрам в немецком университете имени Кристиана-Альбрехта на программах «Математика» и «Финансовая математика». И для тех, кому интересно, как этот предмет преподается за рубежом, я эти лекции перевел. На перевод у меня ушло несколько месяцев, я разбавил лекции иллюстрациями, упражнениями и сносками на некоторые теоремы. Замечу, что я не профессиональный переводчик, а просто альтруист и любитель в этой сфере, так что приму любую критику, если она конструктивна.

Вкратце, лекции вот о чем:
Читать дальше →
Total votes 38: ↑37 and ↓1+36
Comments7
1
23 ...

Information

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