User
Преобразование Уолша-Адамара

На сайте hackerrank.com есть отличная задача. По заданному массиву short[] A;
найти максимальное количество его подмассивов, xor
элементов которых будет одинаковым. Сам этот xor
тоже нужно найти.
Максимальная длина массива равна 105, так что квадратичный алгоритм не укладывается в лимит по времени исполнения. Я в своё время с этой задачей не справился и сдался, решив подсмотреть авторское решение. И в этот момент я понял почему не справился — автор предлагал решать задачу через дискретное преобразование Фурье.
Итак, вы унаследовали старую кодовую базу на C++. Что дальше?

Вы жили своей обычной жизнью, но внезапно, всё поменялось. Возможно, вы устроились в новое место, сменили команду или из вашей компании ушёл сотрудник.
Теперь вы отвечаете за кодовую базу на C++. Она большая, сложная и своеобразная; достаточно слишком долго на неё посмотреть, как она начинает разваливаться разными интересными способами. Иными словами, это легаси.
Но баги всё равно как-то нужно устранять, а ещё добавлять новые фичи. То есть вам нельзя просто закрыть на неё глаза или что ещё лучше, взорвать её динамитом. Она важна для компании. По крайней мере, для тех, кто платит вам зарплату. А значит, важна для вас.
И что делать теперь?
Не волнуйтесь, у меня такое случалось очень много раз и в разных компаниях (кто-то язвительный может спросить: а разве кодовые базы на C++ бывают какими-то другими?), выход есть, он не особо сложен и поможет вам действительно устранять баги, добавлять фичи, а то и когда-нибудь переписать её.
В этой статье я расскажу о том, что оказалось полезным для меня, и о том, чего стоит всячески избегать.
Цикл статей от технолога по запуску печатных плат в производство: от выбора материалов до поиска ошибок проектирования

Нормы проектирования печатных плат зафиксированы в ряде многостраничных спецификаций, которыми пользуются специалисты. При этом есть нюансы, о которых можно узнать лишь на практике. Проводником в непростой мир изготовления печатных плат для вас станет Александр Патутинский, технолог по подготовке и запуску печатных плат в производство и специалист по DFM- и DFA-анализам.
Цикл из трех статей погрузит вас в тему — от выбора материалов для производства плат до особенностей, которые стоит учесть в конструкторской документации, чтобы защититься от проблем на этапе автоматизированного монтажа компонентов на плате. Вы также познакомитесь с подходами Design for Manufacturing (DFM) и Design for Assembly (DFA), которые Александр постарался доступно объяснить.
Все технологические нюансы проиллюстрированы схемами и примерами ошибок при проектировании (а также вариантов их исправления). Подборка будет полезна и тем, кто хочет комплексно изучить тему проектирования печатных плат, и специалистам, которые уже работают на производстве.
Обратный маятник простым PID-регулятором
Как-то давно для выставки делал небольшую инсталляцию. Привёрнутый маятник. Вот где пришлось настраивать ПИД-регуляторы. Маятник удерживается в верхнем положении двумя ПИД регуляторами, соединенными каскадом. Первый быстрый (настоящий ПИД, т.к. пришлось настраивать дифференциальную составляющую) реагирует на угол отклонения маятника от вертикали и подыгрывает положением точки подвеса. Но, поскольку ход точки подвеса ограничен, то второй медленный ПИ-регулятор стремит точку подвеса к центру рельсов. Выход ПИ – регулятора является уставкой угла для первого быстрого ПИД. Действительно, стандартных функциональных блоков - ПИД регуляторов часто бывает вполне достаточно для стабилизации даже очень неустойчивых систем. Но, например, в этом проекте есть больше математики: "Все, что вы хотели знать об обратном маятнике"
Согласование волнового сопротивления на СВЧ

Иногда приходится наблюдать борьбу за каждую долю Ватта, а то и миллиВатта при первых запусках аналоговых СВЧ-схем. Когда разработчик делает плюхи раскатанным индием по поверхности печатной платы устройства. Либо просто недоумевают откуда возник повышенный уровень отражений на его входе, хотя покупные СВЧ-компоненты соединены между собой дорожками по 50 Ом, которые не предполагают сильных рассогласований. А если детально покопаться, то замечаешь, что в погоне за 50 Ом произошло пренебрежение, казалось бы, мелкими, но важными вещами, влияющим на качество согласования узлов между собой. Кто-то пытается досогласовывать вот так, по факту, хотя проще это сделать на этапе проектирования. Как можно было избежать подобных неприятностей?
Мифический человеко-DevOps
Привет! Меня зовут Эмин, я тех-лид платформенных команд в Профи. В этой статье поделюсь мнением о том, что такое хороший DevOps и какими качествами должен обладать DevOps-инженер.
О Важном в управлении проектами

Всем привет! Меня зовут Андрей Софронов и я тимлид продукта “ЭДО и S2P”.
Хочу поделиться с тобой своим опытом и наблюдениями о том, что важно в управлении проектами, как можно посмотреть на проект и свою деятельность в целом, что следует учесть, что помнить и о чем позаботиться. Моя статья будет полезна как тем, кто только начал свой путь в управлении проектами, так и опытным руководителям, т.к. всегда полезно разложить по полочкам то, что знаешь и умеешь.
Упражнения для глаз
Сразу скажу, что если есть какие то медицинские проблемы с глазами, то спросите у врача, можно ли их вам выполнять.
Эти упражнения позволяют сохранять качественное зрение в любом возрасте.
Выполнение всего комплекса занимает 30-40 минут, каждый день делать надоест. Поэтому попробуйте делать курсами Несколько недель через день, через два весь комплекс, а затем от случая к случаю. Но регулярно рекомендую выполнять соляризацию и пальминг.
Упражнения описывал сам, но кто хочет, может обратится к первоисточнику, ссылка на книгу внизу. Часть упражнений не описал, либо сам не делал, либо решил, что всё равно не будете делать:)
Выполнять упражнения обязательно с удовольствием, никакое напряжение не допустимо.
ХМУС система. Твой друг в найме и постановке задач
В рамках статьи вы узнаете про Систему ХМУС, или Хочет, Может, Управляем, Совместим.
Что делать, если сотрудник Хочет и может, но не управляем?
Какие вопросы нанимателю стоит задать на собеседовании, чтобы определить наличие или отсутствие этих критериев у соискателя?
И другие интересности...
Тиннитус (шум в ушах) для айтишников, геймеров, и не только

ВНИМАНИЕ! Если у вас нет шума в ушах (тиннитуса) и/или нейросенсорной тугоухости, но есть особенности психики в части психосоматики или подобного – покиньте данный пост не читая.
Самые важные победы в мире – победы над собой
Всем привет. Меня зовут Паша Герасимов, мне 38, я – инженер в ИТ, геймер, и у меня диагноз НСТ (нейросенсорная тугоухость), а также субъективный шум в ухе (тиннитус) и гидропс правого лабиринта. По ощущениям, это комбо – шум/гул/свист в ухе, снижение слуха, чувство заложенности за перепонкой, и гиперакузия (повышенная чувствительность к некоторым звукам). Для тех, кто не в теме – представьте, что у вас ухо заложено ваткой, а внутри уха – звук неработающего канала ТВ (как видео пример, или mp3). И так – регулярно, месяцами, без возможности исправления.
До 37 лет я практически не болел и не ходил по поликлиникам, это повлияло на всю историю с тиннитусом, поэтому для многих очевидные вещи, я понял на своей шкуре.
Когда private, но очень хочется public

В 2016 году меня пригласили помочь с разработкой экшн-очков "ORBI", это такие водонепроницаемые очки с несколькими камерами, которые могут стримить 360видео сразу на смартфон, ну а если с ними поплавать, тоже ничего сломаться не должно. (https://www.indiegogo.com/projects/orbi-prime-the-first-360-video-recording-eyewear#/). Собственно моей задачей было написать алгоритм склейки видео потока с четырех камер в одно большое 360* видео, на тот момент задача не очень сложная, но требующая немного специфичных знаний opencv и окружения. Но статья не об этом, потому что теперь это все оберегаемое IP, а про то как мы легальными и не очень средствами языка С++ писали тестовое окружение для используемых классов и соответственно алгоритмов. Да вы скажете, что там такого - сделал гетеры да тестируй себе на здоровье. А если гетера нет или переменная класса спрятана в private секцию и возможность изменить хедер отсутствует. Или вендор либы забыл положить хедеры, и прислал только скан исходников (китайские друзья они такие), а тестировать это надо? Помножив желание написать тесты на утренний кофф и приплюсовав дикий энтузиазм, можно получить очень много ошибок компиляции интересного опыта. Как говорил один мой знакомый лид: "Нет такого кода, который мы не сможем порефакторить, особенно за утренним кофф".
Проектируем узлы печатной платы с учетом особенностей монтажа при массовом производстве. Подход DFA

Сегодня мы рассмотрим, что стоит учесть в конструкторской документации, чтобы защититься от проблем на этапе автоматизированного монтажа компонентов на плате. Я покажу, как можно организовать подбор элементов, их взаимное расположение и разводку для монтажа, чтобы увеличить коэффициент выхода годных плат и упростить их диагностику на производстве.
Подход, на который мы будем опираться, называется DFA — Design for Assembly (проектирование для сборки). Набор методов DFA гарантирует возможность сборки компонентов на плате, когда она поступит на монтажный участок, и позволяет отправлять плату в тираж без страха потерять деньги и время.
5 книг, которые стоит прочесть С++-разработчику

Современным разработчикам, чтобы совершенствовать профессиональные навыки, требуется постоянно заниматься самообразованием. Как говорила Алиса из небезызвестной книги Льюиса Кэрролла: «Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее». И это действительно так — останавливаться не стоит.
Один из самых распространённых инструментов самообразования — книги. Сегодня поговорим о полезных для разработчиков С++ изданиях, часть которых — просто must have. Всего в подборке пять вариантов, некоторые из них, вероятно, покажутся читателям необычным выбором. Но все они полезны для программистов. Если у вас есть собственные предпочтения, которые в подборку не попали, пишите о них в комментариях, с удовольствием ознакомимся.
VS Code, python, контейнеры — как обуздать эту триаду и разрабатывать внутри контейнера
Как пользоваться VS Code в полную силу
Это небольшой туториал о настройке VS Code для работы с python. Здесь вы не увидите каких-то божественных откровений — тут будет просто мой опыт о том, как сделать свою работу/хобби немного комфортнее и почему я пришел именно к такой конфигурации.
«Быть руководителем — скучно»: 0b100 ошибок, породивших популярный IT-миф

На своем примере могу сказать, что это не так. Идти в руководство — логичный и захватывающий шаг.
В этой статье поговорим о стереотипе, будто переход из разработчика в руководители лишает человека интересных задач и карьерного развития. Разберу некоторые типовые ошибки начинающего (и не только) руководителя, приводящие к формированию этого впечатления. Постараюсь дать советы, на что смотреть, чтобы оценить ситуацию, и какие меры предпринять, чтобы жить стало «бодрее и веселее».
Настраиваем удобную сборку проектов в Visual Studio
В качестве примера попробуем сделать так чтобы в Студию можно было добавлять flatbuffer schema, а Студия автоматически вызывала flatc в тех случаях когда это нужно (и не вызывала — когда изменений не было) и позволяла задавать настройки напрямую через File Properties

Feature freeze С++23. Итоги летней встречи комитета

На недавней встрече комитет C++ «прорвало», и в черновую версию C++23 добавили:
std::mdspan
std::flat_map
std::flat_set
- freestanding
std::print("Hello {}", "world")
- форматированный вывод ranges
constexpr
дляbitset
,to_chars/from_chars
std::string::substr() &&
import std;
std::start_lifetime_as
static operator()
[[assume(x > 0)]];
- 16- и 128-битные float
std::generator
- и очень много другого
Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google

Мой уход из Яндекса, как не потерять мотивацию за полгода подготовки в FAANG и реджект в Google.
Памятка/шпаргалка по SQL

Доброго времени суток, друзья!
Изучение настоящей шпаргалки не сделает вас мастером SQL, но позволит получить общее представление об этом языке программирования и возможностях, которые он предоставляет. Рассматриваемые в шпаргалке возможности являются общими для всех или большинства диалектов SQL.
Information
- Rating
- 10,184-th
- Registered
- Activity