• Представляем новый плагин для Grafana — Statusmap panel

      У Grafana есть возможность показывать статус, у Grafana есть возможность показывать данные во времени. Однако, как это ни парадоксально, у Grafana до настоящего момента не было удобного способа показывать статус во времени!

      Мы представляем свой плагин — Statusmap panel. Он позволяет наглядно отобразить состояния набора объектов за выбранный промежуток времени. В качестве примера, демонстрирующего работу плагина, представим себе множество локаций, в которых для кого-то готовят кофе:


      Можно увидеть, как Никки экономит электроэнергию, Герри быстро пополняет запасы воды, кофемашина Валеры частенько барахлит, а на Бифросте Wi-Fi явно лучше, чем на лунной станции, где, похоже, с водой совсем туго.

      Выглядит интересно? Но начнём с того, как мы вообще к этому пришли.
      Читать дальше →
    • Blender: 3D-модель микросхемы для подключения в библиотеке KiCad

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

      Но есть проблема: профессиональный CAD-редактор стоит не дёшево, а свободно распространяемые не всегда удобны в использовании.

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

      Читать дальше →
    • Курс о Deep Learning на пальцах

        Я все еще не до конца понял, как так получилось, но в прошлом году я слово за слово подписался прочитать курс по Deep Learning и вот, на удивление, прочитал. Обещал — выкладываю!

        Курс не претендует на полноту, скорее это способ поиграться руками с основными областями, где deep learning устоялся как практический инструмент, и получить достаточную базу, чтобы свободно читать и понимать современные статьи.

        Материалы курса были опробованы на студентах кафедры АФТИ Новосибирского Государственного Университета, поэтому есть шанс, что по ним действительно можно чему-то научиться.


        Читать дальше →
      • Визуализация связей процессов в Linux



          Приходилось ли вам отслеживать зависимости системных процессов, «кто чей папка», найти императора и убить его, чтобы рабы не респаунились? Можно ps'ать и grep'ать, можно lsof погонять, ведь это так увлекательно ;) Но любые связи, как мне кажется, всегда проще анализировать в визуальной форме, консольные утилиты рисуют хорошие таблички, но из них не всегда можно быстро понять, что с чем связано и в какой последовательности, а для диагностики это очень важно.
          Читать дальше →
        • Тестирование и непрерывная интеграция для Ansible-ролей при помощи Molecule и Jenkins

          • Tutorial


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

          Вместе с большим количеством кода появляется и старая, знакомая проблема: страх изменений. Люди не желают вносить изменения в «чужую» роль, опасаясь испортить её, вместо этого создают собственную копию. Рефакторинг кода не производится, если код прямо сейчас не находится в фокусе разработки, из-за опасения, что внесённые проблемы могут быть обнаружены спустя слишком большое время. Итог: плохой код растёт как снежный ком.
          Читать дальше →
          • +16
          • 6,4k
          • 8
        • Triton vs Kao’s Toy Project. Продолжаем хорошую традицию


            В данной статье речь пойдет про SMT-решатели. Так сложилось, что в исследовательских материалах, посвященных данной теме, появилась хорошая традиция. Уже несколько раз в качестве подопытного алгоритма для SMT-решателей разные исследователи выбирали один и тот же пример – крякми, придуманное некогда человеком с ником kao. Что ж, продолжим эту традицию и попробуем использовать для решения этого крякми еще один инструмент для символьных вычислений – Triton.

            Читать дальше →
            • +25
            • 4,3k
            • 3
          • Контроллер для Лего

              Чуть меньше полугода назад сделал сыну на день рождения подарок — конструктор Xiaomi MITU. Неожиданно для меня ребенок на неделю завис в этом конструкторе. Когда были испробованы первые модели и их управление с планшета, возник закономерный вопрос — «А как для него писать программы?»

              image
              Читать дальше →
            • Реализация FizzBuzz на FPGA

              • Перевод
              Недавно я увлёкся программированием FPGA и решил, что будет интересно реализовать на FPGA алгоритм игры FizzBuzz. FPGA (программируемая пользователем вентильная матрица) — интересная микросхема. Она программируется на выполнение произвольной цифровой логики. Можно сконструировать сложную схему, не прокладывая физические каналы между отдельными вентилями и триггерами. Микросхема способна превратиться во что угодно, от логического анализатора до микропроцессора и видеогенератора.

              Тест FizzBuzz — написать программку, которая выдаёт числа от 1 до 100, где кратные трём заменяются словом “Fizz”, кратные пяти — словом “Buzz”, а кратные пятнадцати — “FizzBuzz”. Поскольку такая программа реализуется в нескольких строчках кода, то её часто задают на собеседованиях чтобы отсеять тех, кто вообще не умеет программировать.


              Плата Mojo FPGA, подключенная к порту serial-to-USB. Большой чип на плате — это Spartan 6 FPGA

              Реализация FizzBuzz в цифровой логике, а не в коде, довольно бессмысленна, но показалась мне хорошим примером для обучения.1 Для этого проекта я использовал простую плату разработки Mojo V3 FPGA для начинающих. На ней установлен FPGA семейства Xilinx Spartan 6. Это один из самых маленьких FPGA, но у него 9000 логических ячеек и 11 000 триггеров — так что малыш на многое способен.
              Читать дальше →
            • EDC-устройство для сисадмина: Linux в кармане

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

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



              Можно приобрести внешнюю клавиатуру, держатель или подставку для планшета, но я считаю, что проще уж тогда носить с собой полноценный ноутбук. Места займет примерно столько же.
              Читать дальше →
            • Системы Линденмайера

              • Перевод

              Естественные паттерны


              Системы Линденмайера придумал венгерский биолог Аристид Линденмайер, изучая рост водорослей. Он разработал L-системы как способ описания процесса роста водорослей и простых растений. Результатом стал своего рода язык, на котором можно было выразить свойства рекурсивности и самоподобия роста организма. И в самом деле, L-системы можно использовать для генерирования естественных паттернов; кроме того, хорошо известные математические паттерны тоже можно записать в виде L-системы. В этой статье я расскажу о различных типах L-систем и продемонстрирую их с помощью отрисовки «черепашьей графикой» двухмерных и трёхмерных систем Линденмейера.
              Читать дальше →
              • +39
              • 10,2k
              • 3
            • Взлом компьютера за 3 секунды. Делаем USB-уточку с нуля на Arduino

              • Перевод
              Начнём с традиционного «Этот материал представлен только в образовательных целях». Если вы используете эту информацию для взлома HBO и выпуска следующего сезона «Игры престолов» бесплатно на YouTube, ну… здорово. В том смысле, что я никак не поощряю подобное поведение.

              Если не знаете, что такое «резиновая уточка» (USB Rubber Ducky), это устройство, которое сделал Hak5, на фото. Оно выглядит и ведёт себя как обычная флешка, но её можно запрограммировать на очень быстрый ввод клавиш с клавиатуры. «Уточка» способна взломать любую систему за несколько секунд. Единственный недостаток — вам понадобится физический доступ к компьютеру. И ещё она стоит $50, вот почему я написал эту статью.

              Мы используем 5V Adafruit Trinket и кабель microUSB — вот и всё, что нам понадобится.
              Читать дальше →
            • Заряжаем ноутбук Dell XPS от любого адаптера питания

                image

                Не так давно я решил произвести обновление своего ноутбука и приобрёл на Ebay Dell XPS 13 9350. Цена вышла очень приятная (в 2 раза дешевле, чем в отечественных магазинах, отлично проходило в лимит 1000 евро, при этом комплектация максимальная, а состояние «New»). Ноутбук мне очень понравился (стоит ли говорить — туда отлично встал Linux без каких-либо танцев с бубном кроме перевода SSD из режима RAID в режим AHCI одной галкой в UEFI). И я даже отлично попользовался им 2 недели, а потом… а потом блок питания ноутбука перестал работать.

                Конечно, я немного огорчился, но блок питания вещь не такая уж дорогая (как относительно стоимости ноутбука, так и относительно выгоды от заказа на ebay), а пытаться что-то выяснять с продавцом из-за такого пустяка — лишняя трата времени, так что я отправился в местный компьютерный магазин. Тут меня ждало первое разочарование — с подходящим штекером БП не нашлось. Я отправился в следующий магазин, но и там меня постигла неудача. В таком случае я рассудил, что можно позаимствовать штекер и кусочек провода от неисправного БП и сделать переходник, поэтому приобрёл произвольный БП с подходящей мощностью и выходным напряжением, а также совместимый с ним штекер (не резать же провод у нового БП).

                Однако всё было не так просто…
                Читать дальше →
              • Быстрый тест производительности Python для вычислительных задач

                  Мотивация


                  Совсем недавно вышла новая версия 0.34 библиотеки оптимизирующего JIT компилятора Numba для Python. И там ура! появилась долгожданная семантика аннотаций и набор методов для организации параллельных вычислений. За основу была взята технология Intel Parallel Accelerator.

                  В данной статье я хочу поделиться результатами первого тестирования скорости вычислений на основе этой библиотеки для некоторой современной машины с четырехядерным процессором.
                  Читать дальше →
                • Moby/Docker в продакшене. История провала

                  • Перевод

                  Обновление: у этой статьи появилось продолжение, переведённое @achekalin. В каком порядке читать — на ваше усмотрение: в этой статье можно получить удовольствие от обширной попоболи автора, а в продолжении — от сделанных им выводов.


                  Примечание переводчика: в предыдущей статье о подготовке к девопс-конференциям, Gryphon88 задал резонный вопрос: как отличить cutting-edge и хайп? Нижеследующая статья наполнена сочной незамутненной истерикой, которую так приятно читать с утра, попивая чашечку кофе. Минус в том, что она написана в ноябре 2016, но нетленка не стареет. Если после прочтения захочется добавки, есть комментарии на Hacker News. А у тебя, юзернейм, такой же ад? Пиши в комментариях. Итак, начнем.


                  В первый раз я встретился с Докером в начале 2015. Мы экспериментировали с ним, чтобы понять, для чего бы его можно употребить. В то время нельзя было запустить контейнер в фоне, не было команд чтобы посмотреть что запущено, зайти под дебагом или SSH внутрь контейнера. Эксперимент оказался быстрым, Докер был признан бесполезным и более похожим на альфу или прототип, чем на релиз.


                  Промотаем нашу историю до 2016. Новая работа, новая компания, и хайп вокруг докера поднялся безумный. Разработчики уже выкатили докер в продакшен, так что сбежать с него не удастся. Хорошая новость в том, что команда run наконец-то заработала, мы можем запускать и останавливать контейнеры. Оно шевелится!


                  У нас 12 докеризованных приложений, бегающих на проде прямо в момент написания этой заметки, размазанные на 31 хост на AWS (по одному приложению на хост, дальше объясню — почему).


                  Эта заметка рассказывает, как мы путешествовали вместе с Докером — путешествие полное опасностей и неожиданных поворотов.

                  Читать дальше →
                • Установка ArchLinux ARM рядом с Android без chroot

                  Я испробовал множество средств для установки Linux на свое Android устройство, но все они или не работали вовсе, или были слишком глючные. К счастью я использую на ПК ArchLinux и узнав о проекте ArchLinux ARM решил попробовать его в деле. И не просто установить в chroot, а заставить его работать и без него.
                  Читать дальше →
                • PhotoScan: как делать фотографии фотографий без бликов

                  • Перевод
                  19 апреля 2017 мы выпустили обновление PhotoScan, нашего мобильного приложения для iOS и Android, позволяющего оцифровывать бумажные фотографии одним только смартфоном. Одна из ключевых особенностей PhotoScan – возможность удалять блики с фотографий (их часто печатают на глянцевой, хорошо отражающей свет бумаге), а также со страниц пластиковых альбомов или фотографий под стеклом. Для этого мы разработали уникальное сочетание компьютерного зрения и технологии обработки изображений, которые могут точно совместить и скомбинировать несколько немного отличающихся снимков фотографии и отделить блик от самого изображения на фото.

                  image
                  Очень много фото. Очень.
                • Как оценить качество системы A/B-тестирования



                    Вот уже более полугода в компании используется единая система для проведения A/B-экспериментов. Одной из самых важных частей этой системы является процедура проверки качества, которая помогает нам понять, насколько мы можем доверять результатам A/B-тестов. В этой статье мы подробно опишем принцип работы процедуры проверки качества в расчете на тех читателей, которые захотят проверить свою систему A/B-тестирования. Поэтому в статье много технических деталей.
                    Читать дальше →
                    • +31
                    • 8,1k
                    • 6
                  • Особенности Jupyter Notebook, о которых вы (может быть) не слышали

                    • Перевод
                    Jupyter Notebook – это крайне удобный инструмент для создания красивых аналитических отчетов, так как он позволяет хранить вместе код, изображения, комментарии, формулы и графики:



                    Ниже мы расскажем о некоторых фишках, которые делают Jupyter очень крутым. О них можно прочитать и в других местах, но если специально не задаваться этим вопросом, то никогда и не прочитаешь.
                    Читать дальше →
                  • Знакомство с хранилищем Ceph в картинках

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

                    Знакомьтесь: Ceph


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



                    При выходе любого диска, узла или группы узлов из строя Ceph не только обеспечит сохранность данных, но и сам восстановит утраченные копии на других узлах до тех пор, пока вышедшие из строя узлы или диски не заменят на рабочие. При этом ребилд происходит без секунды простоя и прозрачно для клиентов.
                    Читать дальше →
                  • Гейзенбаг, или как Луна портит код

                      Луна убывает, такое бывает… ©Земфира

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

                      heisenbug /hi:'zen-buhg/ n.
                      A bug that disappears or alters its behavior when one attempts to probe or isolate it.




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


                      Эпизод I, OpenOffice не печатает во вторник


                      Историю этого замечательного багрепорта можно почитать на Ubuntu Launchpad, а я вкратце изложу суть для тех, кому не сподручно читать по ссылке. В системной утилите file был баг из-за которого, файлы содержащие в 4-м байте Tue определялись как Erlang JAM. Дефект присутствовал в версиях file 4.21 и 4.24 и был вызван ошибкой в magic файле.

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