• Itertools в Python

    • Перевод

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

    Модуль itertools находится в стандартной библиотеке Python.

    Модуль представляет следующие типы итераторов: 

    - Бесконечные итераторы;

    - Конечные итераторы;

    - Комбинаторные генераторы.

    Читать далее
    • +13
    • 3,6k
    • 1
  • Собираем логи с Loki


      Мы в Badoo постоянно мониторим свежие технологии и оцениваем, стоит ли использовать их в нашей системе. Одним из таких исследований и хотим поделиться с сообществом. Оно посвящено Loki — системе агрегирования логов.


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

      Читать дальше →
    • Пишем «Змейку» для клавиатуры с подсветкой

      • Перевод


      Введение


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

      Разумеется, жизнь большинства клавиатур не вечна. (Хотя я сильно подозреваю, что моя домашняя IBM Model M практически бессмертна.) Однажды я заметил, что клавиша Shift моей рабочей клавиатуры начала отказывать. Из-за этого мои электронные письма начали выглядеть более ленивыми, а в коде воцарился хаос, поэтому мне понадобилась новая клавиатура. Старая клавиатура была вполне неплохой, но в целом довольно стандартным устройством с резиновыми прокладками переключателей, поэтому у меня появилась неплохая возможность взять что-нибудь получше, например, механическую клавиатуру.

      Я вышел в Интернет и поискал хорошую клавиатуру. Я хотел что-нибудь с механическими переключателями Cherry Brown, потому что, скорее всего, никого бы не обрадовал громкими Cherry Blue. Довольно полезным было бы отсутствие лишних десяти клавиш (цифровой клавиатуры справа), потому что я всё равно ими не пользуюсь и это уменьшило бы расстояние, на которое нужно перемещаться моей руке к трекболу.

      Самой дешёвой клавиатурой, удовлетворяющей всем этим требованиям, оказалось устройство с довольно длинным названием: Coolermaster Quickfire Rapid-I.
      Читать дальше →
      • +46
      • 9,9k
      • 6
    • Почему песок мягкий?

      • Перевод

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


      Какой песок в мире самый мягкий? Почему одни виды песка мягче других?
      — спрашивает Питер С. из Бруклина

      Мы не знаем. Никто не понимает, как работает песок.

      Звучит абсурдно, но в принципе так и есть. Понимание потока гранулированных материалов, типа песка, — одна из основных нерешённых задач физики.



      Допустим, вы решили сделать песочные часы и заполнить их гранулами песка, размер и форма которых известны. Вы не найдёте формулы, способной точно предсказать, сколько времени песок будет перетекать из одной части часов в другую, и будет ли он перетекать вообще. Вам останется только провести эксперимент.
      Читать дальше →
    • Как получить 9В/12В от зарядного с Quick Charge (на примере STM32)

      Чем может быть полезна быстрая зарядка


      С увеличением ёмкости аккумуляторов телефонов потребовалось увеличить и мощность зарядных устройств, чтобы достичь маленького времени зарядки, для чего и нужно было увеличивать выходную мощность: напряжение, ток. Таким образом зарядные с Quick Charge 3.0 кроме 5 В могут выдавать 9В/12В/20В +возможность регулировки с шагом 0.2 В (до 12 В).


      image

      Ввиду распространенности ЗУ с этой технологией появляется интерес использовать их для получения повышенного напряжения без дополнительных преобразователей.

      Читать дальше →
    • Разбираемся с модулем ШИМ на tms320

      Добрый день. Какое-то время назад я прочёл, что какому-то человеку захотелось изучить поглубже вопрос про ePWM модуль на мк tms320f28xxx, поэтому я решил, почему бы и мне не написать статью на эту тему, в которой я постараюсь подробно разжевать этот модуль на примере tms320f28335.
      Читать дальше →
      • +14
      • 2,1k
      • 6
    • Электронная книжка в качестве дисплея

      • Tutorial
      Нетрадиционное применение распространённых вещей — это то, что всегда нам интересно! Ведь так хочется порой похачить очередное устройство. Понять как оно работает и внести какие-то свои коррективы в его работу, добавив новых функций.


      Выводим свои картинки

      Я расскажу, как можно старенькую читалку Sony PRS-505 превратить в удобный дисплейчик. И также расскажу, как можно писать свои программы для этой книжечки

      Погнали
    • Про установку и использование LineageOS 16, F-Droid

        Предлагаю вашему вниманию инструкцию как оптимально (по моему мнению) перейти на свободное программное обеспечение при использовании смартфона на примере операционной системы LineageOS (далее сокращённо LOS) и приложений из F-Droid.

        Я думаю, что это статья будет вам интересна, даже если вы не можете установить себе LOS, так как в данной статье также рассмотрены стандартные настройки Android, настройки и методика использования полезных приложений, магазин приложений F-Droid, разрешения Android, которые нельзя ограничить и другие, возможно полезные для вас нюансы.
        Читать дальше →
      • Python и теория множеств

        Python и теория множеств


        В Python есть очень полезный тип данных для работы с множествами – это set. Об этом типе данных, примерах использования, и небольшой выдержке из теории множеств пойдёт речь далее.


        Читать дальше →
      • Обзор возможностей Qt Creator 4.13 и QBS 1.17 для программирования микроконтроллеров

          Здравствуйте, товарищи программисты «железячники» и все кто им сочувствует. Я хотел бы продолжить обзор возможностей IDE Qt Creator в связке с системой сборки QBS в части программирования микроконтроллеров.

          Ранее я уже писал про улучшения в предыдущих версиях:


          Кому эта тема интересна, добро пожаловать по кат.
          Читать дальше →
        • Три редко используемых возможности Python 3, о которых каждый должен знать

          • Перевод

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

          Данная статья является переводом 3 Neglected Features in Python 3 That Everyone Should Be Using.
          Читать дальше →
        • Памятка для пострадавшего от слезоточивого газа/перцового баллона

          • Tutorial
          Началась эта история еще в докоронавирусное время, еще тогда когда в моем LAB66 была всего пара тысяч подписчиков и работал бот-автоответчик. И вот в этот бот как-то постучался русскоговорящий парень из Чили и задал вопрос про слезоточивый газ. Про то, как жить вообще, когда по улицам ездят автомобили и распыляют «просроченный слезоточивый газ из Бразилии». Тогда я клятвенно пообещал вопросом этим заняться. Прошло… а прошло всего лишь полгода (хотя из-за обилия событий в 2020 кажется, что прошло 20 лет :) и я решил наконец написать парню ответ. Извини за задержку, Sergio из Чили, я был занят коронавирусом… Читай ответ под катом!


          Всякое в жизни бывает, а вдруг да и пригодится...
        • Как мы в Dropbox перешли с Nginx на Envoy

          • Перевод

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


          Читать дальше →
        • Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон, часть 3

          • Tutorial

          В этой части мы перестаём говорить о простом и приятном и начинаем говорить о трудном. Переменные в Ansible: scope, precedence, рекурсивная интерполяция. Для тех, кто дочитает до конца, маленький бонус: упрощённая таблица приоритетов, с которой можно жить. Предыдущие части: 1, 2.


          Обычно рассказ про переменные в Ансибл начинают с чего-то очень простенького, что создаёт у читателя иллюзию, что переменные в Ансибл — это как в любом другом языке программирования. Мутабельные или немутабельные, локальные и глобальные. Это не так.


          Это не так.


          У Ансибла возникла уникальная модель переменных (модель памяти?), которую надо учить с нуля. И рассматривать мы её начнём с того места, где значения используются (обычно переменные Ансибла рассматривают с того места, откуда они появляются). Почему? Потому что при рассказе в этом направлении у нас образуется направленный граф, который куда легче уложить в голову.


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

          Читать дальше →
        • НАСА успешно запустило тяжёлую ракету-носитель Atlas V с новым марсоходом Perseverance



            30 июля 2020 года в 14:50 МСК НАСА успешно запустило с базы ВВС США на мысе Канаверал тяжелую ракету-носитель Atlas V с новым марсоходом Perseverance («Настойчивость») и первым марсианским вертолетом Ingenuity («Изобретательность»). Ранее запуск планировалось провести позже, но из-за прогноза погоды НАСА приняло решение перенести его на несколько часов раньше, чтобы не откладывать на годы.
            Читать дальше →
          • Быстрый роутинг и NAT в Linux

              По мере исчерпания адресов IPv4, многие операторы связи столкнулись с необходимостью организовывать доступ своих клиентов в сеть с помощью трансляции адресов. В этой статье я расскажу, как можно получить производительность уровня Carrier Grade NAT на commodity серверах.
              Читать дальше →
            • Зачем, когда и как использовать multithreading и multiprocessing в Python

              • Перевод
              Салют, хабровчане. Прямо сейчас в OTUS открыт набор на курс «Machine Learning», в связи с этим мы перевели для вас одну очень интересную «сказочку». Поехали.




              Давным-давно, в далекой-далекой галактике…

              Жил в маленькой деревушке посреди пустыни мудрый и могущественный волшебник. И звали его Дамблдальф. Он был не просто мудр и могущественен, но и помогал людям, которые приезжали из далеких земель, чтобы просить помощи у волшебника. Наша история началась, когда один путник принес волшебнику магический свиток. Путник не знал, что было в свитке, он лишь знал, что если кто-то и сможет раскрыть все тайны свитка, то это именно Дамблдальф.
              Читать дальше →
            • Юлия → Iuliia. Всё о транслитерации

              Транслитерация


              Транслитерация — это запись кириллических слов латиницей (Анна → Anna, Самара → Samara). Её используют в загранпаспортах, водительских удостоверениях, трансграничной доставке, библиотечных каталогах и множестве других международных процессов.


              Так вышло, что я недавно окунулся в эту тему, а в Википедии она раскрыта слабо. Поэтому расскажу, что к чему (спойлер — если вы думаете, что с транслитерацией всё плохо, то на самом деле всё ещё хуже).


              И конечно, поскольку это Хабр — предложу open-source библиотеки для решения проблемы.

              Читать дальше →
            • Ручной монтаж сложных плат на компонентах 0402, 0603, QFN, LQFP и THT

                Приветствую!



                Сегодня речь пойдет о том, как добиться высокого качества монтажа на платах с большим количеством компонентов — до 1500шт (можно и больше при плотном монтаже или при сборке 1-2 плат одновременно — не более). Потребность в таком сложном монтаже обычно возникает при изготовлении первого макета или нескольких образцов, чтобы убедиться в правильности трассировки печатной платы (основных сложных моментов) или же при разовом производстве. После получения такого макета можно начинать отлаживать программное обеспечение и вносить корректировки в плату. Заводская сборка, в этом случае, не совсем подходит из-за ее стоимости, подготовки конструкторской документации, подборки компонентов, сроков, макетирования и многого другого (под катом картинки на 8Мб).
                Читать дальше →