Как стать автором
Обновить
0
0

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

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

Как профилировать, когда perf видит не все

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


В современных системах интерпретаторы используются повсеместно. Для проверки на соответствие ожиданиям по производительности их необходимо профилировать. Но когда значительная часть логики исполняется встроенным интерпретатором, окинуть взглядом общую картину при профилировании становится крайне затруднительно, потому что существующие инструменты не способны отражать переходы между интерпретируемой и нативной частями системы.
Читать дальше →
Всего голосов 66: ↑66 и ↓0+66
Комментарии2

Что делать, когда выпускник топ-10 мирового вуза не может спроектировать блок сложения A+B

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

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

Когда я вижу у недавнего выпускника в резюме какой-то из протоколов в котором используется valid/ready, например AXI или AHB, я прошу его спроектировать блок, у которого на входе два числа A и B, а на выходе их сумма. Разумеется не просто написать SUM=A+B, а еще и поставить valid/ready сигналы на каждый из A, B, SUM, чтобы A и B могли приходить в разное время, а также чтобы блок ждал, если SUM не может быть передана другому блоку сразу.

Некоторые не справляются. Грустно смотреть на человека, который потратил 6 лет своей жизни (4 года в бакалавриате и 2 года в магистратуре) и океан денег на образование - и не может сложить два числа и бьется как угорь на сковородке. То блок не работает когда числа приходят в разное время, то создатель забывает снять valid, и блок на 2+2 выдает не 4, а 4-4-4-4-4-4-4... То числа складываются не попарно, а просто записываются в регистры и на выход идет их текущая сумма, хотя количество аргументов A и B не совпадает. То не отрабатывается backpressure и результаты теряются, то (после того как кандидат написал страницу кода на верилоге) блок работает на половинной производительности, то есть не может принимать поток чисел подряд, а ожидает между ними пропуски (gaps). Короче ведет себя как ChatGPT.

Как же прокачаться чтобы такого не было?
Всего голосов 135: ↑123 и ↓12+111
Комментарии222

Python в атомной энергетике: сообразительные нейроморфы, предсказание поломок и анализ нормативки

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

Атомная энергетика — отрасль наукоёмкая. Python со своими инструментами для анализа данных и построения ИИ как раз подходит АЭС, здесь с ним можно решать амбициозные задачи на острие науки о данных. Поэтому Хабр решил разузнать побольше про Python в Росатоме. И попросил меня помочь.

Меня зовут Тимур Тукаев, я IT-редактор. Начал писать о технологиях в 2007, когда поставил свой первый Linux. Увлечён идеями свободного ПО и open source, программирую на Kotlin, делаю о нём топики в JetBrains Academy.

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

Для чего же?
Всего голосов 20: ↑19 и ↓1+18
Комментарии8

Как выучить что угодно в 7 раз быстрее и эффективнее

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

Представьте себе, что в мире есть волшебное средство, которое в 7 раз повышает эффективность обучения — быстрее выучить английский, быстрее освоить программирование, быстрее понять что угодно в мире.

Удивительно, но такое средство было найдено в 1990 году американским социологом Майклом Хоу. Он провел серию тестов среди студентов и определил, что пользователи «волшебного средства» в 7 раз лучше запоминали материал, легко вспоминали факты и легко применяли знания на практике.

Тот, кто использовал «волшебное средство» был наголову выше обычных студентов. «Обычные» хуже помнили материал и хуже его понимали, более того, даже одаренные отличники были слабее тех, кто использовал это «волшебное средство».

Это удивительное средство...

Читать далее
Всего голосов 165: ↑118 и ↓47+71
Комментарии124

Система типов — лучший друг программиста

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

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

Значение в string не лучший тип для записи адреса электронной почты или страны проживания пользователя. Эти значения заслуживают гораздо более богатых и специализированных типов. Мне нужно, чтобы существовал тип данных EmailAddress, который не может быть null. Мне нужна единая точка входа для создания нового объекта этого типа. Он должен валидироваться и нормализироваться перед возвратом нового значения. Мне нужно, чтобы этот тип данных имел полезные методы наподобие .Domain() или .NonAliasValue(), которые бы возвращали для введённого foo+bar@gmail.com значения gmail.com и foo@gmail.com. Эта полезная функциональность должна быть встроена в эти типы. Это обеспечивает безопасность, помогает предотвращать баги и существенно повышает удобство поддержки.
Читать дальше →
Всего голосов 120: ↑118 и ↓2+116
Комментарии90

Считыватель показаний цифровых штангенциркулей VINCA

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

Этот проект посвящён замене кабеля передачи данных VINCA DTCR-03 «RS232» для цифрового штангенциркуля на микроконтроллер ESP8266/ESP32 с поддержкой Wi-Fi.

Штангенциркуль VINCA DCLA-0605 поддерживает передачу данных на ПК только через проприетарный кабель. Можно, конечно, купить адаптер, но это не так интересно, поэтому я решил разобраться с принципом работы RS232 и реализовать собственное решение.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии17

Клоны STM32: хороший, плохой, злой

Время на прочтение6 мин
Количество просмотров65K
После того, как некий продукт становится популярным, у компаний, которые могли бы его создать, но не сделали этого, неизбежно возникает желание прокатиться на волне его популярности. Это — лишь вопрос времени. Именно этот феномен в ответе за то, что было создано так много ужасных детских игрушек и компьютерных игр. Проявляется он и в мире электроники. Поэтому неудивительным должно выглядеть то, что произошло с чрезвычайно успешной серией микроконтроллеров (Microcontroller Unit, MCU) STMicroelectronics, основанных на ARM. На долю этих контроллеров выпало немалое количество имитаций, клонов и явных подделок.



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

Поговорим о том, какие существуют подделки и имитации STM32, и о том, каково это — с чем-то подобным столкнуться.
Читать дальше →
Всего голосов 60: ↑60 и ↓0+60
Комментарии64

Как «раскирпичить» STM32

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

Здравствуйте! Меня зовут Дмитрий Руднев. В этой публикации я поделюсь своим горьким опытом.

В современной разработке широко используются микроконтроллеры STM32. Они обладают неплохим соотношением цена/производительность, вокруг них сложилась развитая «экосистема». Для прошивки этих микроконтроллеров и внутрисхемной отладки обычно используют интерфейс Serial Wire (SWD).

В процессе отладки бывает всякое. Не беда, если STM32 после прошивки ведёт себя неадекватно. Обидно, если при этом к нему не удаётся подключиться.

На этом месте не надо впадать в отчаяние, т.к. «убить насмерть» STM32 в процессе программирования непросто, и его работоспособность можно восстановить штатными средствами.
Как это сделать, читайте дальше
Всего голосов 61: ↑53 и ↓8+45
Комментарии37

От взлома Firefox до подготовки к Апокалипсису. Как польский хакер Михал Залевски попал в «Матрицу»

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

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

К ним относится хакер-самоучка Михал Залевски (Michal Zalewski), который входит в список самых влиятельных представителей индустрии ИБ. Он построил успешную карьеру от технического специалиста польского интернет-провайдера до директора по информационной безопасности Google, а в своей недавней книге даёт практические советы, как подготовиться к наступающему концу света. В общем, это разносторонняя и талантливая личность. На рисунке из Твиттера (вверху) Михал изображён с женой и собакой.
Читать дальше →
Всего голосов 55: ↑54 и ↓1+53
Комментарии16

Составное устройство USB на STM32. Часть 1: Предпосылки

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


История эта началась три года назад, когда я осознал, что мне скоро исполнится 50 лет, что я погряз в бумажной работе, и что мне хочется чего-то нового. Работу поменять в моём возрасте уже проблематично, поэтому я решил начать pet-проект.

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

Основная проблема в разработке заключалась в том, что несложные SDR-радиостанции, работающие в связке со звуковой картой, требуют наличия у компьютера, к которому они подключены, двухканальных линейных входа и выхода для работы приёмо-передающего тракта, а также COM-порта для работы CAT-интерфейса. В современных же ноутбуках аудиовход обычно предназначен для подключения микрофона гарнитуры и бывает только монофоническим.

Решением проблемы стала реализация составного устройства USB, состоящего из виртуального COM-порта и дуплексной звуковой карты. Кому интересно, как я с этим справился, не имея опыта программирования, милости прошу под cut.
Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии40

Звуковая карта USB на STM32. Часть 1: Используем I2S-кодек

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

С момента публикации материала о реализации составного устройства USB на STM32 прошло полтора года. Данная статья в двух частях будет своеобразным отчётом о проделанной за это время работе.

Напомню, что описанное в предыдущей публикации решение состоит из двухканального звукового устройства USB и виртуального COM-порта. Разрабатывалось составное устройство USB для применения в составе любительской SDR-радиостанции.

Далее речь пойдёт об аппаратно-программной доработке двухканального звукового устройства USB в полноценную звуковую карту USB.
Читать дальше →
Всего голосов 56: ↑55 и ↓1+54
Комментарии13

Гитарный fuzz на кремниевых транзисторах

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


Привет, Хабр! Гитаристы шутят, что на пути творческого развития каждого любителя гитары ожидают несколько неминуемых этапов. Когда узнаёшь, что кроме зелёного 0.88 мм существуют медиаторы всевозможных форм, размеров и материалов. Когда открываешь для себя существование стробоскопических тюнеров. Когда переходишь на ламповое усиление. Когда понимаешь, что тебе обязательно необходима гитара фирмы Гибсон (чаще всего, такое случается после первого опыта игры на настоящем Гибсоне).

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

Gibson Explorer, Fender EVH 5150 III и Peterson StroboClip HD у меня есть, медиаторы тоже, нет только фуза и денег на его приобретение. Потому я его спаяю. Тем более что это интереснее, чем покупать готовый. Не у всех гитаристов это получается, но электронщик отличается тем, что в его практике не получалось очень многое, а потом что-то начало получаться.
Изучим, послушаем, посмотрим осциллограммы
Всего голосов 63: ↑62 и ↓1+61
Комментарии16

Построение диаграмм и графов в Doxygen

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


Данная статья входит в получившийся цикл статей о системе документирования Doxygen:

  1. Документируем код эффективно при помощи Doxygen
  2. Оформление документации в Doxygen
  3. Построение диаграмм и графов в Doxygen

Она завершает цикл статей о системе документации Doxygen. На этот раз статья посвящена построению различных диаграмм и графов в Doxygen. В ней мы рассмотрим основные их виды, различные способы их настройки и оформления, а также приведём ряд примеров и советов по их использованию.
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии2

Библиотека инструментов wxWidgets. Сборка

Время на прочтение10 мин
Количество просмотров65K
В продолжение поста (новости) wxWidgets. Мелочь, но приятно, ловите печеньку.

Картинка взята с ресурса: ru.wikipedia.org, автор: Bryan Petty.
Выдержка из Wiki: wxWidgets — это кросс-платформенная библиотека инструментов с открытым исходным кодом для разработки кроссплатформенных на уровне исходного кода приложений, в частности для построения графического интерфейса пользователя (GUI).

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

Внимание! Под катом трафик!
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии24

Сравнение микрополосковой и копланарной линий (для СВЧ плат)

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

От автора перевода:

Большая часть электроники в наши дни делается на основе печатных плат. СВЧ устройства требуют как специальных диэлектрических подложек (про это я писала тут и тут), так и других типов "дорожек". Чаще всего применяются микрополосковые и копланарные печатные линии.

Автор статьи - Джон Кунрад, технический маркетинг-менеджер компании Роджерс (Rogers Corp). Роджерс - крупнейший производитель диэлектрических подложек и других материалов.

Оригинал статьи можно найти тут. А вот тут и тут можно посмотреть видео этого автора на оф.канале компании на YouTube.

Оригинальная статья представлена без картинок, однако есть приписка "основано на презентации, показанной на IEEE 2015 International Microwave Symposium". Я нашла эту презентацию и дополнила слайдами перевод.

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

Согласование импедансов: о пользе формул

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

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

Подставить значения
Всего голосов 35: ↑35 и ↓0+35
Комментарии43

Согласование импедансов: переходные процессы и переходные отверстия

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

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

Металлизировать отверстия
Всего голосов 68: ↑67 и ↓1+66
Комментарии25

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

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

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

Симулировать работу
Всего голосов 30: ↑29 и ↓1+28
Комментарии10

Согласование импедансов: как сломать и как починить

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

Рано или поздно в руки любителей, начинавших с Ардуино, попадают куда более быстрые устройства. Накинув щупы осциллографа на навесные провода, они обнаруживают, что сигнал, который задумывался, как голубая линия на заглавной картинке на деле выглядит, как жёлтая. В поисках решения проблемы они приходят к весьма многогранной области знаний под названием «Целостность сигналов». И если такие её аспекты, как питание и возвратные токи относительно просты для понимания, то согласование импедансов содержит ряд контринтуитивных положений. В процессе освоения данной темы мне показалось, что материалы по ней разделены на три не слишком хорошо связанных блока:
1) теория с формулами и отсылками к 2 курсу ВУЗа
2) гипертрофированные примеры на симуляторах
3) применение на практике (с эмпирическими суевериями)

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

Согласовать импедансы
Всего голосов 90: ↑89 и ↓1+88
Комментарии40

С чего начать изучать программирование?

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

В голове почти любого человека начиная с 2018-2019 года появляются мысли о том, чтобы поменять профессию на что-то около IT. Эти мысли сразу разбиваются о скалы нескольких больших мифов.

Читать далее
Всего голосов 46: ↑24 и ↓22+2
Комментарии132
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность