Pull to refresh
0
0
Send message

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

Reading time11 min
Views5.2K


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

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

Reading time5 min
Views120K

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

Когда я вижу у недавнего выпускника в резюме какой-то из протоколов в котором используется 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.

Как же прокачаться чтобы такого не было?
Total votes 109: ↑97 and ↓12+111
Comments222

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

Reading time14 min
Views19K

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

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

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

Для чего же?
Total votes 11: ↑10 and ↓1+18
Comments8

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

Reading time4 min
Views117K

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

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

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

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

Читать далее
Total votes 141: ↑94 and ↓47+71
Comments124

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

Reading time8 min
Views31K

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

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

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

Reading time6 min
Views7.5K

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

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

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

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



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

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

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

Reading time3 min
Views46K

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

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

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

На этом месте не надо впадать в отчаяние, т.к. «убить насмерть» STM32 в процессе программирования непросто, и его работоспособность можно восстановить штатными средствами.
Как это сделать, читайте дальше
Total votes 38: ↑30 and ↓8+45
Comments37

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

Level of difficultyEasy
Reading time7 min
Views16K

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

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

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

Reading time5 min
Views15K


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

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

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

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

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

Reading time6 min
Views12K

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

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

Далее речь пойдёт об аппаратно-программной доработке двухканального звукового устройства USB в полноценную звуковую карту USB.
Читать дальше →
Total votes 43: ↑42 and ↓1+54
Comments13

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

Reading time7 min
Views13K


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

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

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

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

Reading time9 min
Views60K


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

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

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

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

Reading time10 min
Views65K
В продолжение поста (новости) wxWidgets. Мелочь, но приятно, ловите печеньку.

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

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

Внимание! Под катом трафик!
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments24

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

Reading time6 min
Views14K

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

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

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

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

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

Читать перевод
Total votes 26: ↑26 and ↓0+26
Comments22

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

Reading time17 min
Views20K

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

Подставить значения
Total votes 35: ↑35 and ↓0+35
Comments43

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

Reading time12 min
Views18K

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

Металлизировать отверстия
Total votes 54: ↑53 and ↓1+66
Comments25

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

Reading time5 min
Views12K

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

Симулировать работу
Total votes 21: ↑20 and ↓1+28
Comments10

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

Reading time8 min
Views34K

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

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

Согласовать импедансы
Total votes 68: ↑67 and ↓1+88
Comments40

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

Reading time6 min
Views120K

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

Читать далее
Total votes 40: ↑18 and ↓22+2
Comments132
1
23 ...

Information

Rating
Does not participate
Registered
Activity