Pull to refresh
-4
Эдуард Зиганшин @e-zigread⁠-⁠only

Разработка электроники

Send message

Девочка, балансирующая на NVME-over-TCP 2.0

Reading time10 min
Views17K

Привет всем! Рад вас снова видеть, и я счастлив, что вам так понравилась моя предыдущая статья под названием «А все ли врут? Продолжаем издеваться над NVME».

Напомню, что в этой статье я объяснил, как правильно подключить ваш NVME диск удалённо по сети. Не «как расшарить папку на диске?» и не «какой стороной впихивать NVME в компьютер?» а именно «Как подключить ваш NVME диск по сети».

Что вам это даёт? Вы можете подключить NVME диск на одном компьютере в другой компьютер прямо по сети. По самому обыкновенному медному кабелю. И вам не нужно будет устанавливать какие-то левые программы и настраивать что-то сомнительное. Вся система — часть стандартного набора драйверов Linux.

Более того, при наличии сети на 10Gbps вы сможете в полной мере насладиться полной скоростью NVME устройства. Вам будет казаться, что устройство работает как будто на вашем компьютере и с максимальной скоростью. Главное, чтобы сеть позволяла.

Всё это кажется магией, но на самом деле это возможно. И, конечно, у многих из вас это вызвало массу вопросов. Что же, у меня есть ответы. Всё, что вы хотели узнать об NVME-over-TCP, но боялись спросить.

Давайте под кат.
Читать дальше →

Миллионы рублей за 1/100 секунды

Reading time12 min
Views33K
Продолжаем цикл про современные устройства защиты у вас в электрощитке. На очереди устройства, которые окупаются за 1/100 секунды.



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

Ссылки и ссылочные типы в C++

Level of difficultyMedium
Reading time47 min
Views142K

Продолжаем серию «C++, копаем вглубь». Цель этой серии — рассказать максимально подробно о разных особенностях языка, возможно довольно специальных. Это пятая статья из серии, список предыдущих статей приведен в конце в разделе 6. Серия ориентирована на программистов, имеющих определенный опыт работы на C++. Эта статья посвящена ссылкам и ссылочным типам в C++.


Термин «ссылка» широко используется и в обыденной жизни, в компьютерных и других науках и поэтому его смысл сильно зависит от контекста использования. В языках программирования под ссылкой понимают небольшой объект, главная задача которого обеспечить доступ к другому объекту, расположенному в другом месте, имеющему другой размер и т.д. Объекты ссылки удобно использовать на стеке, они легко копируются, что позволяет получить доступ к объекту, на который эта ссылка ссылается, из разных точек кода. В той или иной форме ссылки поддерживаются во всех языках программирования. В ряде языков программирования, таких как C#, Java, Pyton и многих других, ссылки, по существу, являются концептуальным ядром.



В C роль ссылок играют указатели, но работать с ними не очень удобно и в C++ появилась отдельная сущность — ссылка (reference). В C++11 ссылки получили дальнейшее развитие, появились rvalue-ссылки, универсальные (передаваемые) ссылки, которые играют ключевую роль в реализации семантики перемещения — одном из самых значительных нововведений C++11.



Итак, попробуем рассказать о ссылках в C++ максимально подробно.


Читать дальше →

Повышаем эффективность работы с Word

Reading time15 min
Views88K

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

Не рассматриваются подходы с использованием Markdown, Pandoc, Asciidoc и Confluence как более сложные и узкоспециализированные, а статью хотелось сделать доступной и понятной не только молодым людям, но и людям старших возрастов.

Читать далее

И всё-таки, возможен ли 1мс таймер в Windows?

Reading time4 min
Views18K

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

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

Есть ли такое решение? Из коробки - нету, но при помощи нехитрых приспособлений наше досадное недоразумение превращается... в точный таймер, конечно же.

Читать далее

Операционные усилители. Часть 1: Введение. Модель идеального операционного усилителя

Level of difficultyHard
Reading time7 min
Views87K

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

Операционные усилители как класс появились в качестве унифицированных элементов аналоговых вычислительных машин (АВМ) после Второй Мировой войны. На них собирались звенья, производящие математические операции: сложение, вычитание, интегрирование, дифференцирование и т.п. Слово «операционный» в названии появилось в силу этого факта. В качестве входного сигнала использовалось напряжение.
Читать дальше →

Как понять, что перед вами плохой разработчик

Reading time12 min
Views181K

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

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

Читать далее

Подборка полезных ресурсов от экспертов Positive Technologies: от лаб и подкастов до блогеров и сообществ. Часть 2

Reading time7 min
Views5.3K

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

В этом посте — три десятка полезных ресурсов по машинному обучению от Александры Мурзиной, Вадима Столярова и Игоря Пестрецова. По их словам, они подойдут и совсем новичкам, которые хотят развиваться в этом направлении, и тем, кто делает первые шаги и еще не успел освоить все тонкости, и опытным исследователям, которым важно следить за новостями из мира ML и data science и постоянно совершенствовать свои навыки.

Смотреть подборку

Воспаления головного мозга: как это вообще работает, если за ГЭБ нет иммунной системы

Reading time9 min
Views25K

Так выглядит строение головного мозга

Гематоэнцефалический барьер в нашем организме — это такая структура, которая защищает наш мозг от всего, что может ему навредить. Иногда этот барьер ломается и уже не может останавливать всё, что в мозг попадать не должно. И в этом случае случается воспаление.

Но воспаление — это штука, которую делает иммунная система. А за ГЭБ иммунной системы нет — ведь мозг функционирует автономно и независимо от остальных систем в организме. Как тогда получается, что люди умирают от менингита и энцефалита?

Дело в том, что иммунитет за ГЭБ всё-таки есть — правда, свой собственный. Поэтому там могут развиваться воспалительные процессы. Медицина уже очень много знает и умеет, но тёмных пятен в истории с иммунной системой в мозге ещё предостаточно — кстати, это перспективное поле для получения Нобелевской, если вы вдруг планировали.
Читать дальше →

Разнообразие квантовых технологий: вычисления, сети, криптография, сенсорика

Reading time13 min
Views12K

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

В День российской науки вспоминаем Tech Science Meetup от SuperJob, на котором руководитель научной группы Российского квантового центра, профессор МФТИ Алексей Федоров рассказал о том, что представляют собой квантовые компьютеры, об их светлой и темной сторонах и какую роль сейчас играют квантовые технологии в сфере ИТ.

Читать далее

Статическое константное дерево на шаблонах C++

Reading time6 min
Views10K

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

В статье предлагается рассмотреть особенности реализации элементарной структуры данных и способы оптимизации в условиях малого объема доступной памяти.

Читать далее

Роль водородной энергетики в мировой энергетической системе

Reading time42 min
Views11K

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

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

Читайте о водородной энергетике

Высокоточная навигация GNSS RTK

Level of difficultyEasy
Reading time7 min
Views25K

Демонстрации возможностей микросхем ZED F9P. Это примёмник GNSS с возможностью высокоточной навигации по технологии RTK.

Я решил самостоятельно оценить точность измерения координат.

Читать далее

КВЧ-радары изменят нашу жизнь. Военная технология идёт в смартфоны

Reading time5 min
Views31K

Слева направо: эволюция датчиков КВЧ-излучения со встроенным радаром, источник: Google AI

Миллиметровые волны (ММВ) или крайне высокие частоты (КВЧ) — диапазон радиоволн с длиной волны от 10 мм до 1 мм, что соответствует частоте от 30 ГГц до 300 ГГц. Они используются в военных и полицейских радарах, сканерах безопасности, КВЧ-терапии для лечения многих болезней, астрономических инструментах.

Но сейчас наступает эпоха, когда радары миллиметрового излучения (mmWave, 60 ГГц) созрели для широкого коммерческого применения. Скоро их разрешат встраивать в обычные смартфоны. Это открывает кардинально новые возможности по использованию портативных гаджетов: распознавание жестов в автомобилях, дистанционный мониторинг сна, отслеживание перемещения всех людей в офисе и многое другое.
Читать дальше →

Как вырастить тупого ребёнка (научно обоснованные вредные советы)

Reading time7 min
Views269K

Brain of someone described as an «idiot»

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

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

Что мы подразумеваем под умственным развитием


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

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

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

Когда и зачем нужен CI/CD

Reading time6 min
Views30K

Скорость сборки продукта — важное конкурентное преимущество в разработке программного обеспечения. То, что раньше делалось месяцами, сегодня выполняется за считанные дни без потери качества. Путь к ускорению релизов лежит через автоматизацию и внедрение CI/CD.

В статье разберём, когда и зачем нужен CI/CD, но перед этим, расскажем, как устроена методология и почему эффективнее внедрить её, чем деплоить вручную.

Читать далее

Использование шаблонного метапрограммирования для микроконтроллеров AVR

Reading time21 min
Views27K

AVR


Микроконтроллеры AVR фирмы Atmel хорошо знакомы разработчикам и не нуждаются в особом представлении. Эти устройства используют модифицированную гарвардскую архитектуру и демонстрируют приличную производительность при низком энергопотреблении. Видимо не будет преувеличением сказать, что сегодняшней популярностью AVR во многом обязан проекту Arduino.
Читать дальше →

Трактат о Pinе. Мысли о настройке и работе с пинами на С++ для микроконтроллеров (на примере CortexM)

Reading time15 min
Views8.9K

Последнее время я сильно увлекся вопросом надежности софта для микроконтроллеров, 0xd34df00d посоветовал мне сильнодействующие препараты, но к сожалению руки пока не дошли до изучения Haskell и Ivory для микроконтроллеров, да и вообще до совершенно новых подходов к разработке ПО отличных от ООП. Я лишь начал очень медленно вкуривать функциональное программирование и формальные методы.


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


Продолжу развивать тему о встроенном софте для небольших микроконтроллеров в устройствах для safety critical систем.


На этот раз попробую предложить способ работы с конкретными ножками микроконтроллера, используя обертку над регистрами, которую я описал в прошлой статье Безопасный доступ к полям регистров на С++ без ущерба эффективности (на примере CortexM)


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


using Led1Pin = Pin<Port<GPIOA>, 5U, PinWriteableConfigurable> ;
using Led2Pin = Pin<Port<GPIOC>, 5U, PinWriteableConfigurable> ;
using Led3Pin = Pin<Port<GPIOC>, 8U, PinWriteable> ;
using Led4Pin = Pin<Port<GPIOC>, 9U, PinWriteable> ;
using ButtonPin = Pin<Port<GPIOC>, 10U, PinReadable> ;

//Этот вызов развернется в  2 строчки
// GPIOA::BSRR::Set(32) ; // reinterpret_cast<volataile uint32_t *>(0x40020018) = 32U 
// GPIOС::BSRR::Set(800) ; // reinterpret_cast<volataile uint32_t *>(0x40020818) = 800U 
 PinsPack<Led1Pin, Led2Pin, Led3Pin, Led4Pin>::Set() ; 

//Ошибка компиляции, вывод к которому подключена кнопка настроен только на вход
ButtonPin::Set() 

auto res = ButtonPin::Get() ; 
Читать дальше →

Безопасный доступ к полям регистров на С++ без ущерба эффективности (на примере CortexM)

Reading time24 min
Views17K
image
Рис. взят с сайта www.extremetech.com/wp-content/uploads/2016/07/MegaProcessor-Feature.jpg

Всем доброго здравия!

В прошлой статье я рассмотрел вопрос о проблеме доступа к регистрам микроконтроллера с ядром CortexM на языке С++ и показал простые варианты решения части проблем.

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

Всех кого заинтересовал, добро пожаловать под кат. Кода будет много.
Читать дальше →

Information

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

Specialization

System Software Engineer, Hardware Engineer
Senior
From 225,000 ₽
C++
Qt
Verilog HDL
VHDL
C
Git
Linux