• Самый полезный модуль стандартной библиотеки Python, о котором все постоянно забывают

    • Translation


    В Python много отличных доступных «из коробки» модулей. Один из самых полезных — collections. Он содержит «специализированные типы для создания контейнеров», являющихся альтернативами универсальным dict, list, set и tuple. Ниже мы рассмотрим три содержащихся в модуле класса, с которыми большинство питонистов сталкивались, но постоянно забывают применять на практике.

    Читать дальше →
  • В самом популярном фрагменте кода за всю историю StackOverflow ошибка! 

    • Translation
    Недавнее исследование «Использование и атрибуция сниппетов кода Stack Overflow в проектах GitHub» внезапно обнаружило, что чаще всего в опенсорсных проектах встречается мой ответ, написанный почти десять лет назад. По иронии судьбы, там баг.

    Давным-давно…


    Еще в 2010 году я сидел в своём офисе и занимался ерундой: развлекался код-гольфингом и накручивал рейтинг на Stack Overflow.

    Моё внимание привлёк следующий вопрос: как вывести количество байт в удобочитаемом формате? То есть как преобразовать что-то вроде 123456789 байт в «123,5 МБ».


    Старый добрый интерфейс 2010 года, спасибо The Wayback Machine
    Читать дальше →
  • Почему Вы должны попробовать FastAPI?

    image Лого взято из Github репозитория FastAPI


    FastAPI — относительно новый веб-фреймворк, написанный на языке программирования Python для создания REST (а если сильно постараться то и GraphQL) API, основанный на новых возможностях Python 3.6+, таких как: подсказки типов (type-hints), нативная асинхронность (asyncio). Помимо всего прочего, FastAPI плотно интегрируется с OpenAPI-schema и автоматически генерирует документацию для вашего API посредством Swagger и ReDoc


    FastAPI построен на базе Starlette и Pydantic.
    StarletteASGI микро-фреймворк для написания веб-приложений.
    Pydantic — библиотека для парсинга и валидации данных основанная на Python type-hints.

    Читать дальше →
  • Почему люди уходят из IT?

    Информационные технологии многим кажутся недавним изобретением. На самом деле это ошибочное мнение. Впервые об информационно-коммуникационных технологиях начали говорить в шестидесятые годы прошлого столетия. Именно в тот период появились первые информационные системы. В конце девяностых огромные деньги были вложены как в отрасль в целом, так и в интернет в частности. Быть IT-специалистом было престижно, модно. Ведь он создает что-то новое, разрабатывает программы, почти всё время сидит перед компьютером. К сожалению, делая выбор в пользу IT специальности, многие даже сейчас руководствуются стереотипами, которые сложились в 90-е годы XX века. В результате, человек приходит в IT фактически под впечатлением иллюзий, которые оказывают соответствующее влияние на не посвящённых людей. Но когда человек сталкивается с объективной реальностью, наступает глубокое разочарование. Оказывается, что тот же программист или системный администратор, это тяжёлый труд не только по работе, но и по самообразованию. Что помимо нажимания на кнопки нужно разбираться в очень многих зачастую очень скучных вещах. Если такой человек не сможет принять реальность такой, какая она есть на самом деле, он, скорее всего, уйдёт в другую профессию. Пока одни изо всех сил стараются войти в сферу it проходя курсы стажировки, собеседования, некоторые из тех, кому уже удалось это сделать, почему то стремятся бросить it.
    Читать дальше →
  • Пиксельная подсветка просто и быстро

    • Tutorial
    Ролики с демонстрацией пиксельной подсветки выглядят довольно эффектно — куча разноцветных всплохов, динамичные отблески смотрятся просто замечательно и выглядят более подвижными по сравнению с другими типами подобной подсветки.
    Желание поработать с управляемыми огоньками с помощью arduino побудили меня соорудить такую систему. Как оказалось, это довольно простое мероприятие, на которое в сумме было потрачено всего несколько часов (собственно, само сооружение — 10 минут, остальное — софт). Детали процесса сборки и программирования я и изложу в этой статье. Софт, выводы и демо прилагаются.

    Читать дальше →
  • 5 способов полезного использования Raspberry Pi. Часть вторая

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

      В первой части были рассмотрены 5 способов использования Raspberry Pi. Тема оказалась достаточно интересной, и сегодня я рассмотрю еще несколько вариантов того, как можно с пользой использовать этот микрокомпьютер.


      Фото с сайта learn.adafruit.com

      Как и в предыдущей части, я рассмотрю те способы, которые не требуют программирования.
      Для тех кому интересно, продолжение под катом.
      Читать дальше →
    • Маленький ветрогенератор 400 Вт — выводы

        Доброго времени суток, дорогие читатели. Сегодня я расскажу о своем опыте установки 400 Вт китайского ветрогенератора с трехфазным 24В контроллером заряда.

        image

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

          Есть виды софта, без которого одни люди жить не могут, а другие даже не представляют, что такое существует и кому-то вообще нужно. Для меня долгие годы такой программой был Macropool WebResearch, позволявший сохранять, читать и организовывать интернет-страницы в некое подобие оффлайновой библиотеки. Уверен, многие из читателей прекрасно обходятся коллекцией ссылок или комбинацией браузера и папки с набором сохранённых документов. Мне же хотелось бы иметь возможность хотя бы отмечать документы как "прочитанные" или "избранные", быстро переходить от одного текста к другому и не зависеть от доступности интернета или конкретного сайта. Бывает, что читать есть время ровно тогда, когда интернета нет (в дороге, например), да и ссылки, к сожалению, нередко оказываются недолговечными.

          Читать дальше →
        • Юрчик – маленький, но грозный мутант (н.-ф. рассказ)



            1.
            – Юрчик, вставай! Пора в школу.

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

            – Не хочу в школу.

            – Вставай, а то опоздаешь.

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

            После умывания сон ушел. Юрчик вскочил на табуретку и принялся уплетать завтрак: напиток «Могучий Иртыш» и бутерброд со вкусом колбасы. Уплетал, а сам в это время опустил один из окуляров развлекуха, чтобы полюбоваться на рисунок. Очень красиво, знаете: закат солнца между городскими антеннами. Юрчик сам вчера нарисовал и выложил на «Всемирной детской площадке». Никто ему не помогал, даже папа.
            Читать дальше →
          • Человек с четырьмя «эн» или Советский Нострадамус

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

              Николай Николаевич Носов в русской литературе фигура особенная. Его, в отличие от многих, становится чем дальше, тем больше. Он один из немногих писателей, книги которых действительно читало (добровольно читало!), и с теплотой вспоминает все население страны. Более того – хотя советская классика едва не вся осталась в прошлом, и давно не переиздается, спрос на книги Носова не только не упал ни на йоту, но и постоянно растет.

              Де-факто его книги стали символом успешно продающейся литературы.

              Достаточно вспомнить громкий уход Пархоменко и Горностаевой из издательской группы «Азбука-Аттикус», который объяснялся идеологически расхождениями с руководством издательства, которое «не готово выпускать ничего, кроме 58-го издания «Незнайки на Луне»».

              Но при этом о самом авторе никто не знает почти ничего.

              image
              Н.Носов с внуком Игорем

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

              Но некоторые обстоятельства этой тривиальной судьбы и впрямь поражают воображение. Все вы наверняка помните знаменитые рассказы Носова из условного цикла «однажды мы с Мишкой». Да, те самые – как они кашу варили, пеньки ночью выворачивали, щенка в чемодане возили и т.п. А вот теперь ответьте, пожалуйста, на вопрос – когда происходит действие этих рассказов? В какие годы это все происходит?
              Читать дальше →
            • Дозиметр для Серёжи. Часть III. Народный радиометр

              • Tutorial
              Самой частой претензией в комментариях к прошлой моей статье была претензия в «радиофобии». Хотя я в принципе не понимаю, какой деструктивный общественный посыл может нести это «заболевание» (в отличие от той же вакционофобии или какой-нибудь аблютофобии). Наоборот, чем больше людей будет интересоваться этой темой, тем меньше вероятность какой-то инцидент скрыть, а факты — переврать. Вторая претензия — необходимость возиться с электронными компонентами (а то и силовой электроникой), что под силу далеко не каждому. Поэтому сегодня под катом мой ответ на претензии и, одновременно, апогей идеи «меряем радиацию просто и доступно». Читаем, кладем в закладки и… обязательно распространяем среди максимально возможного количества знакомых и друзей. Искренне надеюсь, что Хабр станет началом «пути в народ» простого и достаточно точного устройства для определения аномальной радиоактивности (вполне сравнимого с простейшими бытовыми сигнализаторами). Тем более, что для его создания основной инструмент — прямые руки и светлая голова (а это, в отличие от лишних денег, пока у нашего брата имеется).

              Читать дальше →
            • Медвежьи услуги по требованию

                Можно не читать весь текст — в конце есть краткое содержание. Это я о вас забочусь, потому что я — хороший.

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

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

                Как-то давно я работал ИТ-директором, и меня заставили написать то ли положение об отделе, то ли стратегию – не помню, как называлась эта бумажка. Проверяли ее лютые бюрократы, но одну фразу они пропустили, и в ней содержалась квинтэссенция этой штуки.

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

                  Доброго времени суток, уважаемый Хабр!

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

                  Ой, что-то мы отвлеклись от основной темы. Не буду больше вас утомлять пространными речами, а перейду к делу.
                  Читать дальше →
                • Пуля

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

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

                    Принцип Пули очень прост: платить людям долю от прибыли. Не всем, а только тем, кто стоит в цепочке создания ценности. Банально, просто и скучно. Вся фишка не в самой системе, не в дележе прибыли, а в… Ну, сами узнаете.

                    На высшую истину не претендую. Название «Пуля» — не претензия на оригинальность или уникальность. Просто так удобнее обсуждать, когда одним словом называется. Внедрение Пули делал сам и видел, как это делают другие. Ничего не продаю. Просто рассказываю. Без программиста во внедрении не обойтись. Поэтому, как говорится, извините, что обращаюсь к вам.
                    Читать дальше →
                  • Зарабатываем на солнечной энергии или пассивный доход в 25% годовых, практический опыт. Часть 2

                    • Tutorial

                    КДВП © Diana, made by Siuzanna

                    Часть 2. Практическая


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

                      У нас на работе есть Сергей, он заместитель директора по общехозяйственным вопросам или же просто завхоз. Перегорела лампа – к нему. Сломался стул – к нему. Дверь с петель сорвали – Сергей починит. Нужна новая розетка – он поможет. Не хватает площадей – организует стройку. И вообще спасибо ему за свет и тепло в нашем офисе! Нет, серьезно, мы все понимаем, что это его заслуга, он нашел людей, проконтролировал их работу и проводит технические обслуживания, поэтому у нас в офисе всегда светло и тепло. Свою работу он никак не презентирует, поскольку то, что он может все это сделать ни для кого не является тайной, он же завхоз, а, значит, умеет все это делать (иначе завхозом он не стал бы). Логично, правда? С другой стороны его работу за него никто не делает: лампочки не меняют, замки не чинят, снег не чистят, воздух с батарей не спускают. Конечно, со временем можно даже медведя на мотоцикле научить ездить, так что коллеги научились болты выпадающие подкручивать, батареи регулировать, самые продвинутые выучили что если мебель ломается нужно ему звонить, а когда нужно купить что-то новое то что-то старое нужно сфотографировать чтобы точно то купил. Работа его кажется людям сложной (или же люди просто не хотят делать сами даже если так быстрее) и в неё никто не лезет, не претендует на его лавры.
                      Читать дальше →
                    • История алгоритмов рандомизации «Тетриса»

                      • Translation
                      image
                      В 1985 году Алексей Пажитнов и Вадим Герасимов выпустили в свет Tetris. Эта увлекательная и вызывающая сильное привыкание игра требовала от игроков соединять фигуры, появлявшиеся в случайном порядке. С того времени было выпущено более 150 лицензионных версий «Тетриса». Отличаясь игровыми режимами, правилами и реализацией, все они игрались слегка (или очень) по-разному. Рандомизатор «Тетриса» — это функция, возвращающая случайно выбранную фигуру. На протяжении многих лет правила выбора фигур эволюционировали, оказывая влияние на геймплей и саму случайность. Некоторые из этих алгоритмов были подвергнуты реверс-инжинирингу и задокументированы. Я составил список рандомизаторов, которые считаю важными, и покажу в статье, как с годами менялось внутреннее устройство «Тетриса».
                      Читать дальше →
                    • Написание змейки для Android на Kivy, Python

                      • Translation
                      • Tutorial
                      Привет!

                      Много людей хотели бы начать программировать на андроид, но Android Studio и Java их отпугивают. Почему? Потому, что это в некотором смысле из пушки по воробьям. «Я лишь хочу сделать змейку, и все!»



                      Начнем! (бонус в конце)
                      Читать дальше →
                    • Трюк с тригонометрией

                      • Translation

                      Скорее всего, вам известны следующие соотношения еще со школы:


                      $\sin(\alpha + \beta) = \sin\alpha \times \cos\beta + \cos\alpha \times \sin\beta \\ \cos(\alpha + \beta) = \cos\alpha \times \cos\beta - \sin\alpha \times \sin\beta$


                      Когда вы в детстве впервые познакомились с этой формулой, скорее всего, вашим первым чувством была боль из-за того, что эту формулу надо запомнить. Это очень плохо, потому что на самом деле вам не нужно запоминать эту формулу — она сама выводится, когда вы поворачиваете треугольник на бумаге. На самом деле, я делаю то же самое, когда записываю эту формулу. Это толкование будет очевидным к середине этой статьи. Но сейчас, чтобы оставить все веселье на потом и отодвинуть момент, когда вы скажете "Эврика!", давайте подумаем, а зачем нам вообще задумываться об этой формуле.


                      Читать дальше →