• Подробная инструкция по изготовлению сплит клавиатуры на основе ATmega32U4. Аналог Iris / Jiran своими руками

    • Tutorial

    Моя самоделка


    image

    Перед изготовлением своей клавиатуры я наметил следующие цели:

    1. Максимально возможный тактильный комфорт.
    2. Добиться того, чтобы совершенно не было необходимости смотреть на клавиатуру при работе, чтобы она никоим образом не отвлекала внимание на себя, чтобы даже смотреть на нее было бессмысленно. Именно поэтому на моих колпачках нет надписей.
    3. Клавиатура — это мой рабочий инструмент, сосредотачиваемся на ее функционале и удобстве. Внешний вид совершенно неважен. Кто не может жить без RGB подсветки и внешней броской красоты – нам с вами не по пути, эта статья совсем про другое. В этой статье я вас научу как недорого и просто сделать себе удобный и функциональный инструмент для работы.
    4. Удобство перевозки. Сделать компактное и удобное для переноски устройство.
    Читать дальше →
  • Для победы в этой игре с числами нужно научиться избегать закономерностей

    • Перевод

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




    Если за окошком дождь, или объявлена самоизоляция, то рекомендуем вам такую простую числовую игру. Допустим, вы и я по очереди вычёркиваем числа из списка {1, 2, 3, …, 9}. Победит последний человек, вычеркнувший число так, чтобы три вычеркнутые числа не шли подряд. Играем! Вы первый.

    Допустим, после четырёх ходов мы вычеркнули следующие числа:

    1 2 3 4 5 6 7 8 9

    Снова ваш ход. Если вы вычеркнете 4, вы проиграете, поскольку тогда вы составите последовательность из трёх чисел, 3-4-5. Также вы проиграете, вычеркнув 7, из-за последовательности 7-8-9. Безопасно будет вычеркнуть только 1, 2 или 6. Однако вне зависимости от того, какое число вы вычеркнете, я вычеркну одну из оставшихся и выиграю, не оставив вам безопасных ходов.
    Читать дальше →
    • +13
    • 3,5k
    • 7
  • Практическое руководство по разработке бэкенд-сервиса на Python

    • Tutorial
    Привет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.



    TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
    Читать дальше →
  • Моя шпаргалка по pandas

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

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



    Нельзя сказать, что это — исчерпывающий список возможностей pandas, но сюда входят функции, которыми я пользуюсь чаще всего, примеры и мои пояснения по поводу ситуаций, в которых эти функции особенно полезны.
    Читать дальше →
    • +47
    • 64,8k
    • 8
  • Обработка миллионов событий в сутки при помощи каскадов очередей

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


      Читать дальше →
      • +13
      • 5,2k
      • 8
    • Роботаракан Петя за десять баксов

      • Tutorial

      Знакомьтесь с Петей, шестиногом о трёх сервоприводах


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


      Читать дальше →
    • Имитируем сетевые проблемы в Linux

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

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


        Читать дальше →
      • Современный курс по Node.js в 2020

        • Tutorial


        Дорогие товарищи инженеры, сообщество Метархия представляет вашему вниманию современный курс по Node.js, который включает глубокий разбор всех возможностей и аспектов платформы. Основной упор делается на то, как создавать надежные высоконагруженные сервера приложений и API без привязки к конкретному фреймворку и даже протоколу, т.е. абстрагировать бизнес-логику в отдельный слой. К лекциям прикреплено множество примеров кода, демонстрирующих гибкую структуру приложений и архитектурные приемы, в том числе работу с СУБД через слой доступа к данным, создание интерактивных приложений на вебсокетах, обеспечение безопасности, Graceful shutdown, межпроцессовое взаимодействие, предотвращение утечек памяти, масштабирование и кластеризацию при помощи процессов и потоков. На текущий момент в курсе 38 лекций (около 35 и ½ часов видео), 37 репозиториев с примерами кода, 4 PDF со слайдами. Перед основной частью курса по Node.js нужно сначала освоить хоть частично курс по асинхронному программированию.

        Читать дальше →
      • SVG в реальной жизни. Доклад Яндекса

          Привет, меня зовут Артём, я руководитель одной из групп разработки интерфейсов в Яндексе. Неделю назад на Я.Субботнике я рассказал, как мы использовали SVG для создания внутреннего календаря. Это расшифровка моего доклада, несколько историй из реализации виджета календаря: масштабирование, заливка паттерном, маски, символы и особенности формата.



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

          Читать дальше →
        • Контактная сварка для аккумуляторов 18650

            Небольшая статья про самостоятельное изготовление аппарата для контактной сварки аккумуляторов (18650 и аналогичных). С помощью подобного устройства можно в домашних условиях и из подручных материалов сваривать и ремонтировать аккумуляторные батареи и сборки. Дешево, сердито и доступно каждому.


            Читать дальше →
          • CI\CD для стартапа: какие есть инструменты, и почему ими пользуются не только крупные и известные компании

              Разработчики CI\CD-инструментов часто указывают в качестве клиентов крупные компании — Microsoft, Oculus, Red Hat, даже Ferrari и NASA. Казалось бы, что такие бренды работают только с дорогими системами, которые не сможет позволить себе условный стартап из пары разработчиков и дизайнера. Но значительная часть инструментов доступна и для небольших команд.

              На что можно обратить внимание — расскажем далее.

              Читать дальше →
            • Галерея лучших блокнотов по ML и Data Science

                Привет, читатель.

                Представляю пост который идёт строго (!) в закладки и передаётся коллегам. Он с подборкой примечательных файлов формата Jupyter Notebook по Machine Learning, Data Science и другим сферам, связанным с анализом данных. Эти блокноты Jupyter, будут наиболее полезны специалистам по анализу данных — как обучающимся новичкам, так и практикующим профи.

                image

                Итак, приступим.

                Вводные курсы в Jupyter Notebook


                Читать дальше →
                • +27
                • 25,7k
                • 7
              • Очередной обход авторизации в публичных Wi-Fi сетях

                  На эту тему уже было несколько статей — Как обойти SMS-идентификацию при подключении к публичным Wi-Fi сетям? и И еще раз: не пользуйтесь публичным WiFi, но появляются новые методы авторизации, поэтому пришло время поговорить об этом еще раз. Недавно в московском кафе я наткнулся на незнакомый способ авторизации в сети. Сразу возникло желание проверить, можно ли обойти эту авторизацию, и чем это грозит обычным людям.


                  Читать дальше →
                • Альтернативы Raspberry Pi

                    29 февраля 2012 наш мир немного изменился к лучшему. Raspberry Pi Foundation анонсировал начало продаж маленьких одноплатных компьютеров под маркой Raspberry Pi. В начале продаж купить устройство было непросто, но понемногу рынок насытился и с июля 2012 вы наконец могли просто пойти в магазин и купить или заказать через интернет первую «Малинку», Raspberry Pi Model B — одноплатный Linux-компьютер с 700 МГц процессором, 0.5 Гбайт ОЗУ, USB, Ethernet и 26 выводами GPIO, позволяющими подключать внешние платы, устройства ввода-вывода и исполнительные устройства. Устройство, построенное на базе относительно недорогой четырехслойной платы, с низкой себестоимостью, с ценой для конечного потребителя $35, сделанное настолько хорошо, что альфа-версия Raspberry Pi Model B стала победителем номинации «Hardware Design» на ARM TechCon 2011.


                    Читать дальше →
                  • Уроки по SDL 2: Урок 1 — привет, SDL 2

                    Всем привет! Решил вот посмотреть на SDL 2, но на русском ничего толкового не нашел. Решил написать свое, питаясь вдохновением отсюда.

                    Установку SDL 2 я пропущу, а начну сразу с написания программ, итак:

                    Ваше первое окно



                    Читать дальше →
                  • Опусы про Его Величество Клей. Часть первая — вводная

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

                    Читать дальше →
                  • О простых вещах-сложно. Письмо химика 3D-печатнику. Растворители для пластмасс и защита от них

                    • Tutorial
                    DIY посвящается...

                    Одним из наиболее часто задаваемых вопросов в моей консультационной практике являются вопросы связанные с растворением/склейкой пластмасс с помощью всевозможных органических растворителей. В последнее время произошел настоящий всплеск интереса к химии высокомолекулярных соединений, связанный с появлением доступных 3D принтеров и необходимостью ориентироваться в «чернилах» для них (т.е. полимерных нитях-филаментах). Лишний раз убеждаюсь в том, что ни один, даже самый продвинутый «музей науки» с эффектным шоу не может так заставить IT-шника интересоваться пластмассами, как собственный 3D-принтер. Так что, читатель, если тебе хоть раз приходилось думать чем склеить пластмассу, которую не клеил default-ный суперклей, если мучали сомнения по поводу растворения поддержек свежеотпечатанной детали, да и просто интересно, чем можно отмыть клей от магазинного ценника на подарке — прошу под кат. Также настоятельно рекомендую страницу отправить в закладки не только тем, кто часто занимается склеиванием пластмасс, но и всем тем, кому часто приходится работать с различными растворителями/разбавителями. Делалось для себя — подарено Хабру!

                    Читать дальше →
                  • Чек-лист: что нужно было делать до того, как запускать микросервисы в prod

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


                      К сожалению, некоторые невысокие программисты всерьёз полагают, что Dockerfile с какой-нибудь вообще любой командой внутри — это уже сам по себе микросервис и его можно деплоить хоть сейчас. Докеры крутятся, лавешка мутится. Такой подход оборачивается проблемами начиная с падения производительности, невозможностью отладки и отказами обслуживания и заканчивая кошмарным сном под названием Data Inconsistency.


                      Если вы ощущаете, что пришло время запустить ещё одну аппку в Kubernetes/ECS/whatever, то мне есть чем вам возразить.


                      English version is also available.

                      Читать дальше →
                    • KeeBee. Изготовление с нуля собственной USB-клавиатуры

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


                      Клавиатура KeeBee в окончательном виде

                      Несколько целей проекта:

                      1. Самостоятельное создание схемы.
                      2. Написание прошивки клавиатуры.
                      3. Узнать, как работает протокол USB.
                      Читать дальше →
                    • Liveprof покажет, когда и почему менялась производительность вашего PHP-приложения



                        Привет, Хабр! Меня зовут Тимур Шагиахметов, я PHP-разработчик в Badoo.

                        Производительность приложения — один из важнейших критериев качества работы программиста. В вопросах оптимизации PHP-приложений помощником является профайлер.

                        Недавно мы рассказывали о том, какими инструментами пользуемся для профилирования. Напомню: одним из инструментов для анализа производительности, когда непонятно, какие части кода повлияли больше всего на увеличение времени формирования ответа, является XHProf. Это расширение для PHP, которое позволяет профилировать код на боевом сервере и впоследствии  улучшать его.

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

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

                        В этой статье я расскажу о деталях реализации и особенностях использования этого инструмента.
                        Читать дальше →
                        • +84
                        • 15,3k
                        • 7