Search
Write a publication
Pull to refresh
19
0.1
Андрей @andi123

специалист по всему

Send message

DIY: Личная электронная медицинская карта

Level of difficultyEasy
Reading time11 min
Views3K

Всем привет!

Как говорит народная мудрость, «коли болен — лечись, а здоров — берегись». Долгое время я ощущал себя здоровым человеком (хоть и были некоторые хронические заболевания), и не посещал регулярно врачей. Но всё когда-нибудь кончается, и в 41 год я понял, что ощущение здоровья улетучивается как спирт из открытой тары. С этим запросом я пошёл к лекарю – понять какие у меня есть проблемы и что нужно сделать, чтобы вернуться в состояние здоровья.

Как обычно, на приёме был назначен ряд лабораторных и инструментальных исследований, а также были даны направления на консультации к другим узким специалистам. Те, в свою очередь, назначили другие исследования. В рюкзаке стали копиться направления, протоколы приёмов, результаты анализов, диски с результатами исследований. Попытки систематически разложить их в отдельные папки успехом не увенчались – непонятно какой должен быть принцип. Хронологический? Или по системам организма? Или по врачам? Любой вариант в каких-то сценариях неудобен.

Поскольку я всё же ИТшник, то было принято решение систематизировать материалы и сделать свою «электронную медицинскую карту» - с которой лично мне было бы удобно работать. А поскольку я не разработчик (хоть иногда и пишу код), то использовал для этого Excel. В статье хочу поделиться опытом использования Excel для ведения личной электронной медицинской карты – что я там веду, почему именно это и почему именно в такой форме.

Читать далее

Земля в печатных платах | Слои, компоненты, секции, питание и переходы | Тренинг Рика Хартли

Level of difficultyMedium
Reading time30 min
Views19K

В этой статье представлен большой тренинг Рика Хартли по разводке земли в печатных платах. Перевёл и озвучил данное видео Dmitry Muravyev, за что ему огромное спасибо. Я всего лишь сделала конспект этого замечательного тренинга, чтоб люди могли ознакомиться с ним быстрее, чем смотреть двухчасовое видео, либо вернуться к каким-то отдельным темам, если позабылось. Категорически рекомендую ознакомиться с источником.

Впервые люди начали использовать землю в качестве проводника около 300 лет назад для отведения молний от зданий. Молния сама естественным образом стремится разрядиться на землю. Так что установив железный стержень на крыше здания и проведя от него  большой толстый провод вниз по зданию к балке, вбитой в землю, люди отводили молнии от зданий. Это был первый опыт использования земли в качестве возвратного пути для протекания тока. Из чего скоро стало ясно, что землю можно использовать в качестве возвратного пути и для других целей.

Читать далее

«Культурный контракт» с сотрудником

Level of difficultyEasy
Reading time10 min
Views6.6K

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

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

Так при чем тут "культурный контракт"? Все просто, при приеме каждого сотрудника моя первая беседа с ним была на основе тезисов:

Читать далее

Расшифровка startup файла Arm Cortex-M

Level of difficultyHard
Reading time7 min
Views5.3K

В статье предпринята попытка разобраться в содержимое startup файла микроконтроллера STM32F4, построенного на базе ядра Arm Cortex M4. Для запуска ядра используется ассемблерный код, который и предстоит изучить. Для лучшего понимания материала необходимо иметь представление об архитектуре ядра Cortex M4. Сразу отмечу, что замечания и уточнения приветствуются, т. к. они позволят дополнить представленную информацию.

Читать далее

Кто ты, воин? Или о правильных собеседованиях

Level of difficultyEasy
Reading time4 min
Views20K

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

Читать далее

4 стихии программной документации. The Grand Unified Theory of Documentation

Level of difficultyMedium
Reading time8 min
Views5.7K

В статье я хочу рассказать об одной очень интересной теории разработки документации на системы и программы. Её авторы утверждают, что создали ни много ни мало «Великую Единую Теорию Документации» (The Grand Unified Theory of Documentation). Мы привыкли с опаской относиться к заявлениям о том, что кто-то обнаружил сокровенную истину и раскрыл её профессиональному сообществу. В теории изложены идеи и правила, которые мы встречаем в разных методиках разработки документации и сами применяем на практике.

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

Читать далее

Возможности современного клавиатуростроения (программные)

Reading time12 min
Views20K

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

Читать далее

Обхода блокировок много не бывает на роутерах Keenetic

Reading time23 min
Views178K

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

В данной статье будет описана работа телеграм-бота, написанного на python. С его помощью будет возможна установка данного обхода с небольшими предварительными настройками, а также работа со списками блокировок.

Читать далее

Ассемблер: x86/x86_64/Arm32/Arm64

Level of difficultyMedium
Reading time6 min
Views12K

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

Но как всегда для практики надо быть подготовленным, а как оказалось, я был не подготовлен...

Читать далее

Разреженные структуры данных

Level of difficultyMedium
Reading time7 min
Views14K

Когда-то я писал пост про различные интересные структуры данных. Среди них был т.н. sparse set. Там мы описали его в общих чертах, опустив некоторые детали (которыми позже статья была дополнена). Но кроме sparse set существуют и другие разреженные структуры данных! На них сегодня и посмотрим : )

Разредиться!

Увеличиваем оперативную память программиста, тренируясь в dual-n-back

Level of difficultyMedium
Reading time9 min
Views14K

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

После этого я задумался, как бы мне увеличить мозговой ресурс для решения подобных задач. И вбил в поисковик “Увеличение оперативной памяти человека”.

Через N времени гугления я наткнулся на ряд ссылок, ведущих к упражнению «Задача n‑назад», наиболее распространенный вариант которой называется «dual‑n-back».

Увеличить оперативную память

Как не давать пустых обещаний себе, команде и заказчику

Reading time10 min
Views16K

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

14 лет я работал в международной компании Airbus – компании, занимающейся авиастроением. В IT же мой путь начался совсем недавно – всего лишь чуть больше года назад.

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

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

Читать далее

Qucs-S: руководство по видам моделирования, часть 1

Reading time10 min
Views15K

Qucs-S является программой с открытым исходным кодом для моделирования электронных схем. Qucs-S кроссплатформенный (поддерживаются Linux и Windows) и написан на С++ с использованием набора библиотек Qt. О данной программе рассказывают мои предыдущие статьи. Для работы Qucs-S рекомендуется использовать также открытый движок моделирования Ngspice. Актуальным релизом Qucs-S на текущий момент является версия 2.1.0. В данной статье подробно рассматриваются виды моделирования, имеющиеся в Qucs-S. Начальное руководство по работе с программой можно найти здесь: https://habr.com/ru/articles/678526/

Читать далее

Сам себе мобильный интернет. Запускаем базовую станцию стандарта 4G LTE

Level of difficultyHard
Reading time13 min
Views105K
Приветствую всех!

Я уже не раз рассказывал про то, как в домашних условиях поднять сотовые сети разных стандартов. Но всё же все они были уже весьма древними. Самое время замахнуться на кое-что поинтереснее — LTE.



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

В открытом доступе бесплатно лекция о современном состоянии раздела о выносливости спортивной физиологии (рекламы НЕТ)

Reading time4 min
Views7.9K

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

Читать далее

Почему Нам Нужен UART-Shell? (или Добавьте в Прошивку Гласность)

Level of difficultyEasy
Reading time17 min
Views16K

Есть такая классическая и одновременно забытая технология отладки FirmWare как интерфейс командной строки поверх UART.

В этом тексте я напишу про достоинства и недостатки отладки через UART Shell.

Читать далее

CG Charger BQ: как TP4056, только на стероидах (BQ25895)

Level of difficultyMedium
Reading time16 min
Views17K


Сегодня на нашем операционном столе очередное гениальное изобретение компании ClimateGuard — девайс под не менее гениальным названием CG Charger BQ. Расшифровке того, что же всё-таки скрывается под этими загадочными буквами BQ (что означают буквы CG постоянные читатели моего блога уже знают) и посвящена эта статья.

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

Правда для осмысленной работы с BQ25895 вам понадобятся пара высших образований в Computer Science (смайл) и… эта статья…
Читать дальше →

Концепция RAII (Resource Acquisition Is Initialization)

Level of difficultyEasy
Reading time9 min
Views17K

Здравствуй, Хабр!

RAII (Resource Acquisition Is Initialization) - это важная концепция в C++. Она представляет собой парадигму управления ресурсами, которая способствует безопасности и эффективности кода. В основе RAII лежит идея связывания жизненного цикла ресурса (например, памяти, файлового дескриптора или других ресурсов) с жизненным циклом объекта в C++. Это означает, что ресурсы выделяются и освобождаются автоматически при создании и уничтожении объектов.

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

Читать далее

Моя любимая задачка по программированию для кодинг-интервью

Reading time10 min
Views72K

За время работы в Google я провёл более двух сотен интервью. И главное, что я вынес из этой работы — проводить качественные собеседования очень непросто. Все дело в сигналах, которые мы посылаем и получаем. И у интервьюера, и у самого кандидата есть меньше часа, чтобы выложиться на полную. Порой, по разным причинам, мы получаем друг от друга ложные или неточные сигналы. Такова уж человеческая природа.

С годами я выработал вопрос по кодингу, который мне самому очень нравится. Это до жути простой и в то же время заковыристый вопрос. Решение занимает не более 30 строк кода, но зато даёт мне все нужные сигналы для вынесения верной оценки кандидату. Кроме того, мой вопрос отлично масштабируется и подходит как стажёрам, так и опытным инженерам. Здесь я не стремлюсь доказать, что мой вопрос лучше какого-то другого. Я лишь хочу объяснить, как он помогает мне как интервьюеру и на что я обращаю внимание на собеседовании по программированию.

В этой статье будут вещи, с которыми вы можете не согласиться. Это нормально. Это просто моё мнение, а так как я уже вышел на пенсию, то больше не представляю опасности ни для интервьюеров, ни для инженеров Google при принятии решений о найме! ;-)

Читать далее

Принципы непрерывного рефакторинга

Level of difficultyHard
Reading time23 min
Views15K

Работа со старым кодом для многих команд является частью повседневных обязанностей. За свою карьеру я видел и применял разные способы борьбы с тяжестью легаси. Они обычно сводились к одному из трёх основных сценариев:

«Работает — не трогай!»: вообще забить на чистки и ничего не менять. В некоторых случаях валидный подход. Но в коде, который приходится менять хотя бы даже эпизодически (фиксы багов, мелкие доделки, смена окружения и т. п.), со временем неизбежно приводит к катастрофе. Вам надо что‑то поменять в коде, и это оказывается невозможно сделать легко. Даже за тривиальные изменения приходится платить большой кровью.

«Я прочитал Роберта Мартина»: включаем чистки в обычный код. Надеваем галстук бойскаута и чистим код прямо по ходу работы над текущими задачами. Отправляем его коллегам на ревью и ждём несколько дней, покуда они не разберутся, где заканчиваются рефакторинги и начинаются непосредственно изменения по задаче. Или же уходим по кривой дорожке рефакторингов в тёмный лес и продалбываем к чертям все изначальные сроки. Когда начинаешь приводить код к идеалу, не всегда бывает так легко остановиться!

«Нужен порядок и учёт»: делаем отдельные коммиты с чистками, но нерегулярно — только когда в дело берётся соответствующий тикет. Правда, тикеты на рефакторинг почему‑то регулярно получают самый низкий приоритет во время планирования и маринуются в беклоге месяцами. Но что уж тут поделать?

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

За прошедший год я нащупал и отточил ещё один подход, который лишён указанных недостатков. И теперь готов поделиться им с вами.

Читать далее

Information

Rating
5,309-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer
Lead
From 100,500 ₽
Linux