• О спасении от удушья в своей квартире или лонгрид о современной вентиляции

    О спасении от удушья в своей квартире или лонгрид о современной вентиляции 

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

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

    Читать далее
  • Две крайности руководителя

      Тимлидов можно поделить на две большие группы: технические и коммуникативные профессионалы. Первые занимают руководящую должность потому что именно они — самые сильные программисты. Вторые хорошо умеют находить общий язык и со всеми членами команды, и с «неадекватным» заказчиком, и со «странным» руководством. Можно ли подружить эти роли в одном человеке?

      Эксперт в области обучения руководителей в ИТ, управляющий партнер Школы менеджеров Стратоплан Александр Орлов на конференции Saint TeamLead рассказал о том, что толкает руководителей на разные полюса управления. Кроме того, он поделился способами найти работающий баланс и научиться меняться в роли тимлида.

      Читать далее
    • Зачем все ставят вентиляторы в туалет или как мы решили сделать умный вентилятор, история по DIY

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

        Читать далее
      • Программирование — это скучная магия

        • Translation

        Есть один карточный трюк, который запомнился мне навсегда. Вот его краткое описание: доброволец выбирает карту и запечатывает её в конверт. Затем фокусник предлагает добровольцу выбрать чай. У него есть десятки коробок чая, и все они упакованы в пластик. Доброволец выбирает одну из коробок, срывает обёртку и выбирает один из упакованных пакетиков с чаем. Потом он вскрывает упаковку, и… внутри оказывается его карта.

        Если вы не хотите знать, в чём хитрость этого трюка, то дальше не читайте.

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

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

        «Фокусом» это является именно потому, что такая подготовка выглядит настолько скучной, настолько невозможно монотонной, что когда мы видим трюк, то не можем представить, что кто-то проделал бы столь скучную работу, чтобы добиться такого простого эффекта.
        Читать дальше →
      • Коммиты — это снимки, а не различия

        • Translation

        Git имеет репутацию запутывающего инструмента. Пользователи натыкаются на терминологию и формулировки, которые вводят в заблуждение. Это более всего проявляется в "перезаписывающих" историю командах, таких как git cherry-pick или git rebase. По моему опыту, первопричина путаницы — интерпретация коммитов как различий, которые можно перетасовать. Однако коммиты это не различия, а снимки! Я считаю, что Git станет понятным, если поднять занавес и посмотреть, как он хранит данные репозитория. Изучив модель хранения данных мы посмотрим, как новый взгляд помогает понять команды, такие как git cherry-pick и git rebase.

        Читать далее
      • Когда «О» большое подводит

        • Translation


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


        Память, медленная-медленная память


        В начале 1980-х время, необходимое для получения данных из ОЗУ и время, необходимое для произведения вычислений с этими данными, были примерно одинаковым. Можно было использовать алгоритм, который случайно двигался по динамической памяти, собирая и обрабатывая данные. С тех пор процессоры стали производить вычисления в разы быстрее, от 100 до 1000 раз, чем получать данные из ОЗУ. Это значит, что пока процессор ждет данных из памяти, он простаивает сотни циклов, ничего не делая. Конечно, это было бы совсем глупо, поэтому современные процессоры содержат несколько уровней встроенного кэша. Каждый раз когда вы запрашиваете один фрагмент данных из памяти, дополнительные прилегающие фрагменты памяти будут записаны в кэш процессора. В итоге, при последовательном проходе по памяти можно получать к ней доступ почти настолько же быстро, насколько процессор может обрабатывать информацию, потому что куски памяти будут постоянно записываться в кэш L1. Если же двигаться по случайным адресам памяти, то зачастую кэш использовать не получится, и производительность может сильно пострадать. Если хотите узнать больше, то доклад Майка Актона на CppCon — это отличная отправная точка (и отлично проведенное время).

        Читать дальше →
      • Миф о RAM и O(1)

        • Translation


        Городская библиотека Стокгольма. Фото minotauria.


        В этой статье я хочу рассказать о том, что оценивать время обращения к памяти как O(1) — это очень плохая идея, и вместо этого мы должны использовать O(√N). Вначале мы рассмотрим практическую сторону вопроса, потом математическую, на основе теоретической физики, а потом рассмотрим последствия и выводы.


        Введение


        Если вы изучали информатику и анализ алгоритмической сложности, то знаете, что проход по связному списку это O(N), двоичный поиск это O(log(N)), а поиск элемента в хеш-таблице это O(1). Что, если я скажу вам, что все это неправда? Что, если проход по связному списку на самом деле O(N√N), а поиск в хеш-таблице это O(√N)?


        Не верите? Я вас сейчас буду убеждать. Я покажу, что доступ к памяти это не O(1), а O(√N). Этот результат справедлив и в теории, и на практике. Давайте начнем с практики.


        Измеряем


        Давайте сначала определимся с определениями. Нотация “О” большое применима ко многим вещам, от использования памяти до запущенных инструкций. В рамках этой статьи мы O(f(N)) будет означать, что f(N) — это верхняя граница (худший случай) по времени, которое необходимо для получения доступа к N байтов памяти (или, соответственно, N одинаковых по размеру элементов). Я использую Big O для анализа времени, но не операций, и это важно. Мы увидим, что центральный процессор подолгу ждет медленную память. Лично меня не волнует, что делает процессор пока ждет. Меня волнует лишь время, как долго выполняется та или иная задача, поэтому я ограничиваюсь определением выше.

        Читать дальше →
      • Хакаем CAN шину авто. Мобильное приложение вместо панели приборов

        • Tutorial

        Я продолжаю изучать CAN шину авто. В предыдущих статьях я голосом открывал окна в машине и собирал виртуальную панель приборов на RPi. Теперь я разрабатываю мобильное приложение VAG Virtual Cockpit, которое должно полностью заменить приборную панель любой модели VW/Audi/Skoda/Seat. Работает оно так: телефон подключается к ELM327 адаптеру по Wi-Fi или Bluetooth и отправляет диагностические запросы в CAN шину, в ответ получает информацию о датчиках.

        По ходу разработки мобильного приложения пришлось узнать, что разные электронные блоки управления (двигателя, трансмиссии, приборной панели и др.) подключенные к CAN шине могут использовать разные протоколы для диагностики, а именно UDS и KWP2000 в обертке из VW Transport Protocol 2.0.

        Как телефон взаимодействует с автомобилем
      • 3. Частотные характеристики звеньев и систем автоматического управления. ч. 3.4 Апериодическое звено 2−го порядка

        Лекции по курсу «Управление Техническими Системами» читает Козлов Олег Степанович на кафедре «Ядерные реакторы и энергетические установки» факультета «Энергомашиностроения» МГТУ им. Н.Э. Баумана. За что ему огромная благодарность!

        Данные лекции готовятся к публикации в виде книги, а поскольку здесь есть специалисты по ТАУ, студенты и просто интересующиеся предметом, то любая критика приветствуется.

        В предыдущих сериях:
        1. Введение в теорию автоматического управления.
        2. Математическое описание систем автоматического управления 2.1 — 2.32.3 — 2.82.9 — 2.13.
        3. ЧАСТОТНЫЕ ХАРАКТЕРИСТИКИ ЗВЕНЬЕВ И СИСТЕМ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ (РЕГУЛИРОВАНИЯ).
        3.1. Амплитудно-фазовая частотная характеристика: годограф, АФЧХ, ЛАХ, ФЧХ.

        3.2. Типовые звенья систем автоматического управления (регулирования). Классификация типовых звеньев. Простейшие типовые звенья.

        3.3. Апериодическое звено 1–го порядка (инерционное звено). На примере входной камеры ядерного реактора.

        Тема сегодняшней статьи:

        3.4. Апериодическое звено второго порядка.

        Как всегда будет жестко, познавательно и интересно.

        Читать далее
      • Обзор последних изменений в rotor'е (v0.10… v0.14)

          actor system


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

          Читать дальше →
        • Всё как в жизни: законы проектирования космических кораблей

          • Translation

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

          Читать далее
          • +24
          • 5.2k
          • 5
        • Новый подход к просмотру логов

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

          Хотелось иметь просмотрщик логов, позволяющий, в любой момент, открыть любой файл, без скачивания на локальную машину, как команда less в linux консоли. Но при этом, должна быть удобная подсветка текста, как в IDE, и фильтрация событий по различным параметрам. Фильтрация и поиск должны работать по событиям в логе, а не по строкам, как grep, это важно когда есть многострочные записи, например ошибки со стектрейсами. Так же должна быть возможность просматривать записи сразу из нескольких файлов на одной странице, смёржив их по таймстемпу, даже если файлы находятся на разных нодах.

          Читать далее
        • 3. Частотные характеристики систем автоматического управления. ч. 3.3 Апериодическое звено 1–го порядка

          • Tutorial

          Лекции по курсу «Управление Техническими Системами» читает Козлов Олег Степанович на кафедре «Ядерные реакторы и энергетические установки» факультета «Энергомашиностроения» МГТУ им. Н.Э. Баумана. За что ему огромная благодарность!

          Данные лекции готовятся к публикации в виде книги, а поскольку здесь есть специалисты по ТАУ, студенты и просто интересующиеся предметом, то любая критика приветствуется.

          В предыдущих сериях:

          1. Введение в теорию автоматического управления.

          2. Математическое описание систем автоматического управления 2.1 — 2.3, 2.3 — 2.8, 2.9 — 2.13.

          3. Частотные характеристики систем автоматического управления. 3.1 Амплитудно-фазовая частотная характеристика: годограф, АФЧХ, ЛАХ, ФЧХ.

          3.2. Типовые звенья систем автоматического управления (регулирования). Классификация типовых звеньев. Простейшие типовые звенья.

          Тема сегодняшней статьи:

          3.3. Апериодическое звено 1–го порядка (инерционное звено). На примере входной камеры ядерного реактора.

          Будет интересно, познавательно и жестко.

          Далее
        • Заповеди тимлида Авито

            Мы уже публиковали свои внутренние документы с ожиданиями от инженеров и менеджеров продукта в плейбуке на Гитхабе. Пришло время поделиться ещё одним — кодексом тимлида.


            Читать дальше →
          • Производительность TypeScript

            • Translation
            • Tutorial

            Есть лёгкие способы конфигурирования TypeScript для ускорения компиляции и редактирования. И чем раньше их внедрить, тем лучше. Также есть ещё некоторые популярные подходы к изучению причин медленной компиляции и редактирования, некоторые исправления и распространенные способы помочь TypeScript-команде в расследовании проблем.
            Читать дальше →
            • +37
            • 10.6k
            • 4
          • Вы безумны, остановитесь пока не поздно

            image

            Привет Хабр! Всего каких-то пару лет назад на страницах нашего любимого ресурса красовались вдохновляющие статьи успешного успеха, как вчерашний сантехник / таксист / сварщик / сутенёр успешно интегрировался в IT сообщество и начал зарабатывать 100500$ в секунду левой пяткой. Здорово, не правда ли? Но всё ли так радужно с этими историями с точки зрения действующих разработчиков? Прошу под кат.
            Читать дальше →
          • Наиболее точное скалярное произведение векторов типа double. Вычисление значения полинома

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

              Читать дальше →
            • 17 «хороших» и 4 «плохих» способа ускорения проекта

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

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

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

              Рассмотренные меры ускорения проектов являются дополнением к другим важным аспектам управления ИТ-проектами, таким как качество сбора и анализа требований, качество выработанного решения, качество производства кода и т.п.
              Читать дальше →
            • Фильтр Калмана — это легко



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