Pull to refresh
19
0
Максим Логвинов @Zeben

Музыкант, программист

Send message

Следующее поколение программирования ближе, чем кажется

Reading time6 min
Views23K
Какое оно — программирование следующего поколения? Помочь ответить на этот вопрос могут воспоминания о том, как эволюционировали персональные компьютеры. Для того чтобы разобраться с тем, что я имею в виду, давайте ненадолго заглянем в 1970-е.


Читать дальше →
Total votes 53: ↑28 and ↓25+18
Comments117

Низкоуровневое программирование STM32: от включения питания до «Hello, World»

Reading time10 min
Views54K
В этом материале я хочу рассказать о том, как писать программы для микроконтроллеров (Microcontroller Unit, MCU) Cortex-M, вроде STM32, используя лишь набор инструментов ARM и документацию, подготовленную STMicroelectronics. У некоторых читателей может появиться вопрос о том, почему кому-то это может понадобиться. Если вам эта идея, на первый взгляд, не показалась очень уж страшной, то, возможно, вам будет интересно то, о чём пойдёт речь в этом материале. И, кстати, подумаем о том, кому и зачем это может пригодиться.

Конечно, разрабатывать программы для MCU STM32 можно с помощью существующих фреймворков. Это может быть ST HAL, обычный CMSIS, или даже что-то, более близкое к Arduino. Но… что тут увлекательного? Ведь, в итоге, тот, кто пользуется каким-то фреймворком, полностью зависим от документации к нему и от его разработчиков. И, с другой стороны, если документация к STM32 кажется кому-то, работающему с этой платформой, так сказать, бредом сивой кобылы, то можно ли говорить о том, что этот человек по-настоящему понимает данную платформу?



Поэтому давайте поговорим о низкоуровневом программировании STM32 и доберёмся от включения питания STM32 до «Hello, World».
Читать дальше →
Total votes 35: ↑25 and ↓10+29
Comments19

Искусство шаманства или кастомная прошивка для Olinuxino. UBOOT Часть 2

Reading time4 min
Views19K
Все это собиралось из под Ubuntu 16.04.

Решение собрать прошивку родилось из за отсутствия в свободном доступе образа для этой платы (Olimex A13-Olinuxino). А производитель предлагал преобрести SD карту с образом и стоило что то около 10 евро на тот момент, что очень не устроило, к тому же она была рассчитана на наличие монитора.

Конфигурирование загрузчика будем формировать для загрузки с SD карты. Поскольку NAND памяти на плате нету а все остальные варианты загрузки слегка кривоваты (у кого получиться собрать uboot для загрузки с USB носителя, пусть сделает два шага вперед и поделится). Алгоритм загрузки процессора allwinner a13 можно найти на сайте производителя. Или вот вырезка из даташита.


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

Почему я остаюсь с Лиспом (и вам тоже стоит)

Reading time15 min
Views15K

Зрелый язык может использоваться немногими. Но он остаётся частью моей кодовой базы.

Как давнего пользователя (и активного сторонника) Scheme/Common Lisp/Racket, меня иногда спрашивают, почему я предпочитаю их. К счастью, я всегда возглавлял собственные инженерные организации, поэтому мне никогда не приходилось оправдывать это перед руководством. Но есть еще более важная аудитория - мои собственные коллеги-инженеры, которые никогда не имели удовольствия использовать эти языки. Хотя им не требуются оправдания, они все же спрашивают из интеллектуального любопытства, а иногда и из-за удивления, почему я не схожу с ума по поводу следующей крутой функции, которая будет в этом месяце добавлена в Python или Scala, или что бы там ни было в их вкусе.

Читать далее
Total votes 32: ↑24 and ↓8+24
Comments136

DIY наушники. Как, а главное, зачем

Reading time14 min
Views53K

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

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

RS485 — стандарт промышленных сетей. Какими особенностями обладает микросхема приемопередатчика?

Reading time9 min
Views84K

При построении сети для общения между большим количеством устройств, можно задуматься: а какой интерфейс выбрать? У каждого интерфейса есть свои плюсы и минусы, которые определяют их применение: CAN – автомобилестроение, RS485/RS232 – промышленность, Ethernet – потребительская электроника/сервера. Какие “фичи” микросхемы приёмопередатчика помогают обезопаситься от множества проблем при монтаже и эксплуатации? Как происходит процесс измерений и исследования микросхем приемопередатчиков? Новая микросхема RS485 готова к выходу на рынок!
Читать дальше →
Total votes 92: ↑91 and ↓1+119
Comments80

Let's Encrypt перевел серверы БД на AMD EPYC

Reading time4 min
Views21K

Внутреннее устройство 2U-сервера Dell PowerEdge R7525. Два серебристых прямоугольника посередине — процессоры AMD EPYC 7542. Сверху и снизу от них планки оперативной памяти по 64 ГБ каждая. На левом краю фотографии — 24 диска NVMe, такое возможно только на EPYC

Let's Encrypt — крупнейший удостоверяющий центр в интернете, на его бесплатных TLS-сертификатах работает более 235 млн сайтов. В сердце УЦ находится база данных, на основе которой происходит управление сертификатами. Важно, чтобы её производительность была на уровне, иначе мы увидим ошибки API и таймауты при выдаче сертификатов.

В конце 2020 года некоммерческая организация сделала апгрейд своих серверов.
Читать дальше →
Total votes 61: ↑61 and ↓0+61
Comments110

Как книга «Электроника шаг за шагом» обрела новую жизнь

Reading time7 min
Views92K


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

Хорошие новости для тех, кто следил за историей переиздания книги Рудольфа Свореня «Электроника шаг за шагом» — книга вот-вот, на днях, покинет типографию и попадёт в руки читателей. Почему так долго пришлось ждать новое издание книги? Что изменилось в тексте? А иллюстрации всё те же? Что со схемами  — по-прежнему, на МП39, с плюсовой «землей»? Будет ли электронная версия книги? На эти и другие вопросы, я попытаюсь ответить ниже.
Читать дальше →
Total votes 112: ↑111 and ↓1+144
Comments156

Инженерный анализ схемы ускоренного переноса процессора Intel 8008

Reading time12 min
Views10K
В 1972 году Intel представили свой первый 8-битный микропроцессор – 8008. Несмотря на свою примитивность в сравнении с современными стандартами, Intel 8008 важен исторически, потому что именно он положил начало микропроцессорной революции и является предком современного семейства процессоров x86. Я поизучал кремниевый кристалл этого процессора под микроскопом и произвел инженерный анализ его схемы.

На нижеприведенном фото кристалла показаны главные функциональные блоки 1, включая регистры, декодер команд и хранилище стека. 8-битное арифметико-логическое устройство (АЛУ) находится слева. Над ним расположен генератор ускоренного переноса, повышающий производительность путем упреждающего вычисления переносов суммирования до выполнения самого суммирования. Немного удивительно видеть реализацию ускоренного переноса в столь ранней модели процессора. Но раз она в нем есть, то есть и повод рассказать вам о способе ее технической реализации.


Кристалл Intel 8008 и его ключевые функциональные блоки.
Читать дальше →
Total votes 45: ↑45 and ↓0+45
Comments9

Разрабы работают медленно и дорого — и люди считают нас лентяями. Просто в разработке всё сложно

Reading time7 min
Views75K

— Люди не из индустрии вечно не понимают программистов: что они там такое сложное делают, если видно только две кнопки? Что за непонятные слова говорят? Почему так много получают?


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


Читать дальше →
Total votes 188: ↑152 and ↓36+147
Comments533

Intel наносит ответный удар

Reading time10 min
Views68K


После более чем десятилетнего превосходства Intel уступила своему главному конкуренту, AMD. Джереми Лэрд пытался разобраться, где Intel встала на ложный путь и чем ответит противнику.


Так что же именно случилось с Intel? Когда-то безусловный лидер в производстве процессоров и микросхем сейчас уступает соперникам почти по всем возможным показателям. CPU от AMD оказались более продуманными, а технология производства от TSMC – эффективнее. Похоже, что Intel окончательно сбилась с пути.

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

Дела обстоят настолько плохо, что Apple сообщила о планах разорвать отношения с производителем и начать выпускать собственные чипы на базе ARM. Более того, поговаривают, что сама Intel задумывается о партнёрстве с TSMC, чтобы в будущем производить отдельные виды продукции, в том числе первые пользовательские видеокарты. В сущности, это может стать для корпорации полным унижением.
Читать дальше →
Total votes 42: ↑32 and ↓10+38
Comments211

Освободи свой Android

Reading time12 min
Views147K


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

В момент выхода этой статьи я как-то не обратил на неё внимания — тема смартфонов и Андроида мне вообще не очень интересна. Потом, уже через несколько месяцев, я вновь случайно наткнулся на эту статью, вчитался, и проникся идеями, содержащимися в ней. Действительно, почему бы не стать хозяином своему собственному смартфону?

Вашему вниманию предлагается отчёт об эксперименте, проведённым мной по мотивам инструкций из вышеозначенной статьи и о том, что из всего этого может получиться.
Читать дальше →
Total votes 93: ↑85 and ↓8+107
Comments192

Передача аналогового тв сигнала с помощью STM32

Reading time5 min
Views24K
Помните как некто cnlohr запустил передачу ТВ сигнала на ESP8266?

Недавно мне попалось к просмотру это видео, стало интересно как это возможно и выяснил что автор видео разогнал частоту I2S до телевизионного диапазона, а затем с помощью DMA генерировал AM сигнал. Мне захотелось повторить это, но или прошивка криво собирается, или ESP модуль оказался неподходящий. Запустить передачу телесигнала не получалось.

Затем я вспомнил что STM32 умеет выводить свой тактовый сигнал на один из пинов.
Total votes 89: ↑89 and ↓0+89
Comments35

Мама, кажется я архитектор

Reading time7 min
Views13K


Статья направлена на диалог о необходимости архитектора в команде. Она будет интересна тем, кто задумывается о пути своего развития, когда “все дороги уже исхожены”. Когда имеющийся богатый опыт делает твою работу “неэффективной” с точки зрения коллег. Когда тебя уже почти ничего не удивляет и каждый следующий проект это дежа вю. Ты выгораешь.

Читать дальше →
Total votes 21: ↑20 and ↓1+24
Comments53

Подключение OLED дисплея ssd1306 к STM32 (SPI+DMA)

Reading time7 min
Views28K
В данной статье будет описан процесс подключение oled дисплея с контроллером ssd1306 разрешением 128x64 к микроконтроллеру stm32f103C8T6 по интерфейсу SPI. Также мне хотелось добиться максимальной скорости обновления дисплея, поэтому целесообразно использовать DMA, а программирование микроконтроллера производить с помощью библиотеки CMSIS.

Подключение


Подключать дисплей к микроконтроллеру будем по интерфейсу SPI1 по следующей схеме:

  • VDD-> +3.3В
  • GND-> Земля
  • SCK -> PA5
  • SDA -> PA7(MOSI)
  • RES-> PA1
  • CS-> PA2
  • DS-> PA3

imageimage

Передача данных происходит по возрастающему фронту сигнала синхронизации по 1 байту за кадр. Линии SCK и SDA служат для передачи данных по интерфейсу SPI, RES — перезагружает контроллер дисплея при низком логическом уровне, CS отвечает за выбор устройства на шине SPI при низком логическом уровне, DS определяет тип данных (команда — 1/данные — 0) которые передаются дисплею. Так как с дисплея ничего считать нельзя, вывод MISO использовать не будем.
Читать дальше →
Total votes 29: ↑28 and ↓1+38
Comments32

Изучаем миниатюрный шаговый двигатель

Reading time16 min
Views50K
Шаговые двигатели нашли широкое применение в современной промышленности и самоделках. Их используют там, где необходимо обеспечить точность позиционирования механических узлов, не прибегая к помощи обратной связи и точным измерениям.

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


Total votes 44: ↑44 and ↓0+44
Comments37

Пишем свой плагин для VueJS. Как проект на VueJS трансформировать в расширение для браузера?

Reading time4 min
Views5.6K


Вступление


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


Расширения для браузеров часто имеют всплывающие окна, которые появляются при клике на иконку расширения. Во всплывающем окне может быть авторизация, регистрация или управление настройками расширения, а возможно и любая другая логика. Мне показалось очень удобным реализовать всплывающее окно и само расширение на VueJS. Было решено написать плагин для vue-cli который трансформирует существующий проект на VueJS в расширение для браузера. А содержимое проекта будет отображаться во всплывающем окне расширения. Этот плагин уже опробован в реальном проекте по проверке объявлений перекупщиков validauto.ru и расширениях для Google Chrome, Mozilla Firefox и Microsoft Edge "Узнай кто перекуп | (validauto.ru)"


Пишем плагин для vue-cli


Сначала мы создадим папку с именем vue-cli-plugin-simple-extension. Префикс vue-cli-plugin необходим для автоматического поиска плагина в npm пакетах при вызове команды vue add simple-extension.
В папке инициализируем package следующей командой


npm init
Читать дальше →
Total votes 6: ↑5 and ↓1+6
Comments5

Как изучать Machine Learning 5 дней в неделю 9 месяцев подряд

Reading time7 min
Views22K
image

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

Я уволился из Apple. Запустил веб-стартап, но из этого ничего не вышло. Душа к этому не лежала.

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

А воодушевление не оплачивает мои счета.

По выходным я начал подрабатывать в Uber, чтобы платить за учебу.

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

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

Uber по выходным. Машинное обучение по будням. Такой была моя повседневная жизнь. Я должен был учиться. Я был обязан научиться, я просто не мог водить. На тот момент у меня не было жизненной цели, но я точно знал, что это не вождение. Одним субботним вечером я заработал $280 и получил штраф в размере $290. Минус $10 за одну ночь.

Через девять месяцев после получения своей личной степени по ИИ, я нашёл работу. И это была лучшая работа в моей жизни.

Как у меня получалось заниматься каждый день?
А вот как.
Читать дальше →
Total votes 9: ↑5 and ↓4+5
Comments11

Использование C и C++ в Data Science для новичков

Reading time11 min
Views21K
Решим классическую задачу Data Science на C99 и C++11.

В то время как такие языки как Python и R становятся все более популярными для науки о данных, C и C++ могут быть сильным выбором для эффективного решения задач в Data Science. В этой статье мы будем использовать C99 и C++11 для написания программы, работающей с квартетом Энскомба, о котором я расскажу далее.

О своей мотивации к постоянному изучению языков я написал в статье, посвященной Python и GNU Octave, которую стоит прочитать. Все программы предназначены для командной строки, а не для графического интерфейса пользователя (GUI). Полные примеры доступны в репозитории polyglot_fit.

Задача по программированию


Программа, которую вы напишете в этой серии:

  • Считывает данные из CSV-файла
  • Интерполирует данные прямой линией (т.е., f(x)=m ⋅ x + q).
  • Записывает результат в файл изображения
Читать дальше →
Total votes 7: ↑4 and ↓3+3
Comments10

Делаем звёздное небо на потолке при помощи оптоволокна и Arduino

Reading time8 min
Views39K




Хотите увидеть кусочек галактики у себя на потолке? Как это сделать – рассказано ниже.

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

Немного о самом проекте. Я старался делать всё своими руками по-максимуму, что дало мне полную творческую свободу. В итоге у меня есть созвездия северного полушария, контроль над звёздными скоплениями при помощи пульта д/у (яркость и цвет), реакция на музыку, контроль подсветки, и, что самое важное – возможность изменить всё, что угодно.
Total votes 26: ↑26 and ↓0+26
Comments14

Information

Rating
Does not participate
Location
Дружковка, Донецкая обл., Украина
Date of birth
Registered
Activity