• 10 советов схемотехнику

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


      Читать дальше →
    • 41 вопрос о работе со строками в Python

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

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

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


      Читать дальше →
    • Как начать использовать USB Type-C в своих разработках


        В современных embedded-устройствах используется огромное количество различных разъемов, таких как USB Type-B, miniUSB, microUSB и так далее. Все они отличаются форм-фактором, максимальной пропускной способностью и другими различными характеристиками. Самым верным решением в данной ситуации было бы минимизировать количество используемых разъемов и остановиться на каком-то одном, «едином» для большинства разработок. Наиболее перспективным выглядит использование разъема Type-C. В нем объединены невероятная пропускная способность с высокой мощностью питания. Такие производители, как Apple, Huawei, Sony уже внедряют разъем Type-C в свои разработки, постепенно отказываясь от использования «старых» разъемов. А чем embedded-разработчики хуже?


        В данной статье мы приведем общую информацию, необходимую для практического применения Type-C. Наиболее полезной она будет для новичков в сфере embedded, но надеемся, что каждый найдет в ней что-то интересное.

        Читать дальше →
      • Сравнение популярных CLI-библиотек для Python: click, cement, fire и другие



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

        Для удобства чтения обзор разделён на два поста: в первом сравнивается шесть самых популярных библиотек, во втором — менее популярные и более специфичные, но всё же заслуживающие внимания.
        Читать дальше →
        • +21
        • 10.3k
        • 7
      • Полезные советы по Python, которых вы ещё не встречали. Часть 2

        • Translation
        Недавно мы опубликовали перевод материала, в котором были приведены полезные советы для Python-программистов. У того материала есть продолжение, которое мы представляем вашему вниманию сегодня.


        Читать дальше →
      • Опыт создания сборок Linux под одноплатники с поддержкой обновлений

        image

        Введение


        На данный момент, на рынке представлен большой ассортимент одноплатников на любой вкус по приемлемой цене.

        Как правило, различные сборки от производителей, предназначены для оценки платформы и являются отправной точкой нового проекта, поэтому не всегда подходят под конкретные задачи. В задачах где требуется высокая надежность, перед разработчиком встает вопрос, как доработать дистрибутив и потом не поплатиться за это полной переработкой образа и системы обновления.
        Читать дальше →
      • Где покупать радиодетали и компоненты? Часть I: Россия

          Давайте поговорим о покупке электронных компонентов в интернете. Я собрал список интересных отечественных и зарубежных магазинов:

          а) которые заточены под любителей DIY и делают свои собственные крутые продукты: конструкторы, модули, обучающие курсы и т.д.;

          б) для профи, с широкой номенклатурой электронных компонентов.

          Продолжение: Часть II: зарубежные магазины

          Кадр из к/ф «Иван Васильевич меняет профессию»
          Продолжение
        • Отладка cети с помощью eBPF (RHEL 8 Beta)

            Всех с прошедшими праздниками!

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

            Автор статьи: Matteo Croce
            Оригинальное название: Network debugging with eBPF (RHEL 8 Beta)


            Введение

            Работа с сетью — увлекательное занятие, но избежать проблем удается не всегда. Устранение неполадок может быть сложным занятием, также как и попытки воспроизвести неправильное поведение, происходящее “в полевых условиях”.

            К счастью, существуют инструменты, способные с этим помочь: сетевые пространства имен, виртуальные машины, tc и netfilter. Простые сетевые настройки могут быть воспроизведены с помощью сетевых пространств имен и veth-устройств, в то время как более сложные настройки требуют соединения виртуальных машин программным мостом и использования стандартных сетевых инструментов, например, iptables или tc, для симуляции некорректного поведения. При наличии проблемы с ICMP-ответами, сгенерированными при падении SSH-сервера, iptables -A INPUT -p tcp --dport 22 -j REJECT --reject-with icmp-host-unreachable в правильном пространстве имен может помочь решить проблему.

            В этой статье описывается устранение сложных проблем сети с помощью eBPF (extended BPF), расширенной версии Пакетного Фильтра Беркли. eBPF — сравнительно новая технология, проект находится на ранней стадии, поэтому документация и SDK пока не готовы. Но будем надеяться на улучшения, особенно с учетом того, что XDP (eXpress Data Path) поставляется с Red Hat Enterprise Linux 8 Beta, которую можно загрузить и запустить уже сейчас.

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

            Читать дальше →
            • +25
            • 5.5k
            • 3
          • Оптимизация энергопотребления STM32: практическое руководство

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

              В сети довольно много статей про работу микроконтроллеров STM32 в энергоэффективных устройствах — как правило, это устройства на батарейном питании — однако среди них прискорбно мало разбирающих эту тему за пределами перечисления энергосберегающих режимов и команд SPL/HAL, их включающих (впрочем, та же претензия относится к подавляющему большинству статей про работу с STM32).

              Тем временем, в связи с бурным развитием умных домов и всевозможного IoT тема становится всё более актуальной — в таких системах многие компоненты имеют батарейное питание, и при этом от них ожидаются годы непрерывной работы.

              Восполнять данный пробел мы будем на примере STM32L1 — контроллера весьма популярного, достаточно экономичного и при этом имеющего некоторые специфические именно для этой серии проблемы. Практически всё сказанное будет также относиться к STM32L0 и STM32L4, ну и в части общих проблем и подходов — к другим контроллерам на ядрах Cortex-M.



              Практический результат должен выглядеть примерно так, как на фотографии выше (и да, о применимости мультиметров и других средств измерения к подобным задачам тоже поговорим).
              Читать дальше →
            • Давайте уберём кватернионы из всех 3D-движков

              • Translation
              image

              Для записи трёхмерных поворотов программисты графики используют кватернионы. Однако в кватернионах сложно разобраться, потому что изучают их поверхностно. Мы просто принимаем на веру странные таблицы умножения и другие загадочные определения, и используем их как «чёрные ящики», поворачивающие векторы так, как нам нужно. Почему $\mathbf{i}^2=\mathbf{j}^2=\mathbf{k}^2=-1$ и $\mathbf{i} \mathbf{j} = \mathbf{k}$? Почему мы берём вектор и превращаем его в «мнимый» вектор, чтобы преобразовать его, например $\mathbf{q} (x\mathbf{i} + y\mathbf{j} + z \mathbf{k}) \mathbf{q}^{*}$? Да кому это интересно, если всё работает, правда?

              Существует способ описания поворотов под названием ротор, который относится к области и комплексных чисел (в 2D), и кватернионов (в 3D), и даже обобщается до любого количества измерений.

              Мы можем создавать роторы практически полностью с нуля, вместо того, чтобы определять из ничего кватернионы и пытаться объяснить, как они работают задним числом. Это занимает больше времени, но мне кажется, что это стоит того, потому что их гораздо легче понять!

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

              Было бы здорово, если бы начали вытеснять использование и изучение кватернионов, заменяя их роторами. Заменить их очень просто, а код останется почти таким же. Всё, что можно делать с кватернионами, например, интерполяцию и устранение блокировки осей (Gimbal lock), можно сделать и с роторами. Но понимать мы начинаем гораздо больше.
              Читать дальше →
            • Проблемы современной записи математических текстов

                В недавней статье товарищ KvanTTT поднял вопрос:
                Можете пояснить что вам не нравится в современной записи (математических положений и) формул и как ее можно улучшить?
                Я постарался ответить в одном комментарии, но размер текстового поля не позволил закончить выкладки. Данная статья — чрезмерно развернутый ответ.

                Сразу скажу, материал холиварный. Местами слишком эмоциональный. Очень спорный. Слишком личный — часто основан на собственном опыте, небогатом, хоть и разнообразном. Пост касается школьных и университетских текстов учебников: у «профессиональной» литературы своя специфика, своя аудитория. Решения у проблемы в текущих реалиях нет. При этом, часть «моих» наблюдений задолго до меня высказывали такие авторитеты, как Кнут и Хэмминг; чуть менее популярные ребята даже запилили инструкцию "Как читать математику".

                Итак, на мой взгляд, основные претензии не столько к записи формул, сколько к подаче материала. Причем, к подаче материала на практически всех уровнях образования, начиная со школы, и заканчивая передовой наукой. Начало текущей ситуации положил Евклид, заявивший про отсутствие царской дороги в математике. Царскую дорогу не проложили до сих пор. Евклид обходился, и мы сможем.
                Какие же проблемы есть у подачи материала?
              • Памятка пользователям ssh

                  abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

                  Предупреждение: пост очень объёмный, но для удобства использования я решил не резать его на части.

                  Оглавление:
                  • управление ключами
                  • копирование файлов через ssh
                  • Проброс потоков ввода/вывода
                  • Монтирование удалённой FS через ssh
                  • Удалённое исполнение кода
                  • Алиасы и опции для подключений в .ssh/config
                  • Опции по-умолчанию
                  • Проброс X-сервера
                  • ssh в качестве socks-proxy
                  • Проброс портов — прямой и обратный
                  • Реверс-сокс-прокси
                  • туннелирование L2/L3 трафика
                  • Проброс агента авторизации
                  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
                  Читать дальше →
                • Туннели и VPN, устойчивые к DPI

                    Мы живем в интересное время. Я бы даже сказал, в удивительное. По одну сторону мы видим неких лиц, которые очень хотят знать, о чем между собой разговаривают другие люди, и очень хотят указывать им, что можно читать, а что нельзя. С другой стороны граждане, которые хотят отстоять свои права тайны личной переписки и свободного получения информации, и не хотят, чтобы факты этой самой переписки и получения этой самой информации были использованы против них. Бонусом страдает огромное количество сторонних сайтов, сервисов и бизнесов, которых задевает «ковровыми блокировками».

                    Но нет, эта статья не об обществе, а о технологиях.

                    image
                    Читать дальше →
                  • PHP: фрактал плохого дизайна

                    • Translation

                    Предисловие


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

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

                    PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

                    PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
                    Читать дальше →
                  • Логика мышления. Часть 1. Нейрон



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

                      В настоящем цикле статей планируется рассказать о той концепции интеллекта над которой мы сейчас работаем и продемонстрировать некоторые решения, являющиеся принципиально новыми в сфере моделирования работы мозга. Но чтобы повествование было понятным и последовательным оно будет содержать не только описание новых идей, но и рассказ о работе мозга вообще. Какие-то вещи, особенно в начале, возможно покажутся простыми и общеизвестными, но я бы советовал не пропускать их, так как они во многом определяют общую доказательность повествования.
                      Читать дальше →
                    • NFC Кольцо Всевластья

                        Натолкнулся на очень интересный проект на Кикстартере — NFC Ring. Кольцо позволяет открывать двери, разблокировать мобильный телефон и передавать данные.

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



                        Читать дальше →
                      • Логика мышления. Часть 5. Волны мозга



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

                          В предыдущей части мы говорили о том, что активность нейронов делится на вызванную и фоновую. Отголоски фоновой активности наблюдают, снимая электроэнцефалограмму. Записываемые сигналы имеют сложную форму и зависят от места приложения электродов к голове, но, тем не менее, в них достаточно четко прослеживаются отдельные гармонические составляющие.
                          Читать дальше →
                        • Брюс Шнайер: Иллюзия безопасности

                            image
                            Брюс Шнайер не нуждается в представлениях. На Хабрахабре можно найти много статей, касающихся деятельности этого «гуру криптографии». Под катом — текстовая расшифровка видеолекции Брюса Шнайера «The security mirage» («Иллюзия безопасности»).
                            Эта лекция доступна на YouTube, на Amara её можно посмотреть с субтитрами на 28-ми языках (включая русский). Что же заставило меня отнимать твоё время, хабрачитатель?
                            Ну и что же там?
                          • По следам интеллекта 2

                              Некоторые люди полагают, что они мыслят, в то время как они просто переупорядочивают свои предрассудки.
                              Давно я написал статью-обзор по эволюции методов моделирования нейронов и забросил это дело. В описание попали старые и всем интересующимся нейронами известные методы, можно сказать, получился обзор учебников выпущенных до распада СССР. Если кому интересно может сходить habrahabr.ru/post/101020, посмотреть старый обзор. Сейчас у меня подсобрался материал по нескольким с моей точки зрения увлекательным и более современным методам моделирования, которые заслужили упоминания в виде структурированного обзора. Здесь я только упомяну эти методы в описательном порядке, по той простой причине, что для большинства интересней знать, зачем мы его применяем, а не как он работает и как его применять. Объем текста значительно уменьшится, интересность повысится, а то, как в действительности работают эти методы, каждый сможет найти сам.
                              Итак, готовьтесь.
                              Читать дальше →
                              • +37
                              • 22.4k
                              • 6
                            • Реакторы на быстрых нейтронах — вот надежда человечества!

                                В предыдущих статьях — мы выяснили, что ни солнечная энергетика не сможет удовлетворить потребности человечества (из-за быстрого выхода из строя аккумуляторов и их стоимости), ни термоядерная (т.к. даже после достижения на экспериментальных реакторах положительного выхода энергии — остается фантастическое количество проблем на пути коммерческого использования). Что же остается?

                                Уже не первую сотню лет, не смотря на весь прогресс человечества, основной объем электроэнергии получается от банального сжигания угля (который до сих пор является источником энергии для 40.7% генерирующих мощностей в мире), газа (21.2%), нефтепродуктов (5.5%) и гидроэнергетики (еще 16.2%, в сумме все это — 83.5% по данным на 2008 год).

                                Остается — ядерная энергетика, с обычными реакторами на тепловых нейтронах (требующих редкий и дорогой U-235) и с реакторами на быстрых нейтронах (которые могут перерабатывать природный U-238 и торий в «замкнутом топливном цикле»).

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