• Свой Telegram бот для отслеживания uptime своих серверов на python и docker

      1. Делаем телеграм бота


      Для начала нужно написать бота, который будет пинговать нужные ip и посылать сообщение, когда нужный сервис пропадает из сети, а потом появляется


      Читать дальше →
    • Создание и хостинг телеграм бота. От А до Я

      Привет, хабрчане! Какой бы заезженной не была тема создания телеграм бота на python3, я не нашёл инструкций, где показан путь от первой строчки кода до деплоинга бота (по крайней мере все методы, что я видел, немного устарели). В этой статье я хочу показать процесс создания бота от написания BotFather-у до деплоинга бота на Heroku.

      Статья получилась длинной, советую пробежаться глазами по содержанию и кликнуть по интересующему вас пункту.

      P.S. Пишите если нужна статья по созданию более сложного бота, т.е. с вебхуками, БД с настройками юзеров и т.д.


      Для начала стоит определиться, что же будет делать наш бот. Я решил написать банального простого бота, кторый будет парсить и выдавать нам заголовки с Хабра.
      И так, начнём же.
      Читать дальше →
    • Serverless по стоечкам


        Serverless ― это не про физическое отсутствие серверов. Это не «убийца» контейнеров и не мимолетный тренд. Это новый подход к построению систем в облаке. В сегодняшней статье коснемся архитектуры Serverless-приложений, посмотрим, какую роль играет провайдер Serverless-услуги и open-source проекты. В конце поговорим о вопросах применения Serverless.
        Читать дальше →
        • +18
        • 10.8k
        • 7
      • Linux kernel development для самых маленьких


          Любой программист знает, что теоретически он может внести свой посильный вклад в развитие Linux ядра. С другой стороны, подавляющее большинство уверено, что занимаются этим исключительно небожители, а процесс контрибьюта в ядро настолько сложен и запутан, что обычному человеку разобраться в нём нет никакой возможности. А значит, и надобности.
          Сегодня мы попробуем развеять эту легенду и покажем, как абсолютно любой инженер при наличии достойной идеи, воплощённой в коде, может предложить ее на рассмотрение Linux community для включения в ядро.

          Читать дальше →
        • «Жизнь» на PostgreSQL

            Недавно на Хабре была опубликована статья Морской бой в PostgreSQL. Должен признаться: я обожаю решать на SQL задачи, для SQL не предназначенные. Особенно одним SQL-оператором. И полностью согласен с авторами:

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

            И еще. Будем честны: всегда использовать SQL по назначению — тоска зеленая. Вспомните, какие примеры приводятся во всех учебниках, начиная с той самой статьи Кодда? Поставщики да детали, сотрудники да отделы… А где же удовольствие, где же фан? Для меня один из источников вдохновения — сравнение процедурных решений с декларативными.

            Я, позвольте, не буду объяснять, что такое Жизнь Джона Конвея. Скажу только, что — оказывается — используя клеточный автомат Жизни, можно построить универсальную машину Тьюринга. Мне кажется, это грандиозный факт.

            Так вот, можно ли реализовать игру Жизнь одним оператором SQL?
            Конечно можно
          • Приключение чисел в ASCII-ландии. Часть 0x01u. Беззнаковые целые числа



              Думаю, с переводом чисел в ASCII строки в своей жизни сталкивался каждый программист. В свое время для меня было удивительно узнать, что перевод десятичной цифры в равнозначный ASCII символ – операция сложения. С этим знанием я ложился спать, и с этим же знанием я бодро просыпался утром. Но однажды я задал себе вопрос – а как переводятся числа с плавающей запятой: Float или Double!? С этого момента, сна в моей жизни, а тем более крепкого и спокойного – стало меньше. Уверен, не я один задавался этим вопросом, и более того, не я один нашел ответ на оный. Но я думаю, есть те, кто заблудился, те, кто до сих пор неровно дышит от полного непонимания, что же происходит под капотом этих ваших трансляторов, компиляторов и прочего-прочего. Более того, не только полное отсутствие знаний в трансляции чисел нарушало мое психическое равновесие: люди, услышавшие мои душевные страдания, кидали сомнения в нужности и полезности этого знания. Мне говорили так: “Ну раскроешь ты завесу тайны, а дальше то что?! Напишешь свой велосипед, который будет работать в сто раз медленнее?! Иди ка ты, Ваня, асфальт укладывай, а мы тут великим займемся – вон, JSON пришел, надо еще подумать, как его переложить...”. Я же, парировал: “Нет, я напишу мотоцикл! Он будет быстр как Ямаха, а его рев будет устрашать даже матерых программистов!”.
              Читать дальше →
            • Жизнь айтишника в Буэнос-Айресе: карьера в IT, зарплаты, стоимость жизни и необычные плюсы Аргентины

                Всем привет, меня зовут Юра, и уже больше пяти лет я живу в Буэнос-Айресе и работаю на позиции scrum master в крупной международной компании. Сегодня поделюсь с вами своим опытом прохождения собеседований, расскажу о зарплатах и стоимости жизни в стране, ну и поделюсь советами. Надеюсь, будет интересно. Поехали! 

                Читать далее
              • Тридцать лет С++. Интервью с Бьерном Страуструпом

                • Translation

                Ранее мы делали материал про использование C и C++ в Data Science. А сегодня мы хотим поделиться с вами интервью с автором C++ Бьерном Страуструпом. Далее в посте вас ждет рассказ о профессиональном пути Бьерна, деталях создания собственного языка программирования и извлеченные им из этого уроки.
                Приятного чтения!
                • +33
                • 12.9k
                • 6
              • Почему в EBCDIC буквы идут не подряд?

                  Стандарт ASCII был принят в 1963, и сейчас вряд ли кто-нибудь использует кодировку, первые 128 символов которой отличались бы от ASCII. Тем не менее, до конца прошлого века активно использовалась EBCDIC — стандартная кодировка для мейнфреймов IBM и их советских клонов ЕС ЭВМ. EBCDIC остаётся основной кодировкой в z/OS — стандартной ОС для современных мейнфреймов IBM Z.

                  То, что сразу бросается в глаза при взгляде на EBCDIC — то, что буквы идут не подряд: между I и J и между R и S остались неиспользованные коды (на ЕС ЭВМ по этим промежуткам распределили символы кириллицы). Кому могло придти в голову кодировать буквы с неравными пропусками между соседними буквами?

                  Читать далее
                • «Мой адрес не дом и не улица, Мой адрес сегодня такой: www.leningrad.spb.ru». В 2002 году всем было очевидно, что адрес интернет-сайта или электронной почты должен быть записан именно латиницей. Ну не бывает же не-ASCII-символов в названии домена! А сейчас возможны варианты. Уже 10 лет наряду с латинскими символами в доменах верхнего уровня используются символы национальных алфавитов: от китайских и корейских иероглифов до кириллицы и арабской вязи. Под катом — о том, как это стало возможным, как осуществляется поддержка символов Unicode в доменных именах, и как обстоят дела с кириллическими адресами в интернете.
                  Спойлер: всё хорошо
                • Передача файлов между двумя компьютерами по интернету (netcat)

                    Простая и очень нужная утилита, способная передавать данные по сети.
                    netcat (или nc) должна быть в любом дистрибутиве. Если же ее нету, то на примере дебиана ставится она так:
                    apt-get install netcat

                    Идея netcat очень проста: он просто перенаправляет поток данных в порт сетевого устройства, а на другом конце поток перенаправляется в файл.

                    использовать ее так:

                    на стороне сервера
                    nc -l -p 3333 > file.txt

                    на стороне клиента:
                    cat file.txt | nc -q 0 <remote_ip> 3333
                    Ключ -q 0 нужен для того, что бы netcat завершил работу сразу после отправки

                    можно отправлять файлы предварительно запаковав их:
                    на стороне сервера
                    nc -l -p 3333 | tar xv

                    на стороне клиента:
                    tar cv * | nc -q 0 <remote_ip> 3333
                  • Как с tcpserver и netcat открыть туннель в Kubernetes pod или контейнер

                    • Translation
                    Прим. перев.: Эта практическая заметка от создателя LayerCI — отличная иллюстрация так называемых tips & tricks для Kubernetes (и не только). Предлагаемое здесь решение — лишь одно из немногих и, пожалуй, не самое очевидное (для некоторых случаев может подойти уже упомянутый в комментариях «родной» для K8s kubectl port-forward). Однако оно позволяет как минимум посмотреть на проблему с позиции применения классических утилит и их дальнейшего комбинирования — одновременно простого, гибкого и мощного (см. «другие идеи» в конце для вдохновения).



                    Представьте типичную ситуацию: вы хотите, чтобы порт на локальном компьютере волшебным образом перенаправлял трафик в pod/контейнер (или наоборот).
                    Читать дальше →
                  • 2400 иконок флагов под свободной лицензией



                      Самая большая коллекция флагов: 2400 пиктограмм размерами 16×16, 24×24, 32×32, 48×48 и 64×64. Есть государственные флаги всех стран, плюс бонусы: Англия, Абхазия, Нагорный Карабах, Красный крест, Южная Осетия, Сомалиленд, флаг Марса, НАТО и проч.

                      Все иконки в двух вариантах: стандартный и глянцевый.

                      Скачать:
                      www.gosquared.com/download/pixels/flags.zip

                      Лицензия MIT (GPL-совместимая), разрешает использование иконок в коммерческих проектах.
                    • Министерство культуры планирует открыть торговую площадку для продажи изображений музейных предметов

                        Министерство культуры РФ планирует создать интернет-магазин для продажи цифровых изображений музейных предметов. По словам ТАСС, МКРФ запустит такой сайт к 2022 году. Об этом сообщил директор Департамента информационного и цифрового развития МКРФ Вадим Ваньков (29 сентября). — Нам это интересно как политика, которую, может быть, ещё удастся переменить в сторону открытости.

                        Динарий кесаря!
                        Динарий кесаря должен быть отдан кесарю!
                        (Classical Numismatic Group, Wikimedia Commons, CC-BY-SA)
                        Читать дальше →
                      • Как pod в Kubernetes получает IP-адрес

                        • Translation
                        Прим. перев.: эта статья, написанная SRE-инженером из LinkedIn, в деталях рассказывает о той «внутренней магии» в Kubernetes — точнее, взаимодействии CRI, CNI и kube-apiserver, — что происходит, когда очередному pod'у требуется назначить IP-адрес.

                        Одно из базовых требований сетевой модели Kubernetes состоит в том, что у каждого pod'а должен быть свой собственный IP-адрес и любой другой pod в кластере должен иметь возможность связаться с ним по этому адресу. Есть множество сетевых «провайдеров» (Flannel, Calico, Canal и т.п.), которые помогают реализовать данную сетевую модель.

                        Когда я только начинал работать с Kubernetes, мне было не совсем ясно, как именно pod'ы получают свои IP-адреса. Даже с пониманием, как функционируют отдельные компоненты, было сложно представить их совместную работу. Например, я знал, для чего нужны плагины CNI, но не представлял, как именно они вызываются. Поэтому решил написать эту статью, чтобы поделиться знаниями о различных сетевых компонентах и их совместной работе в кластере Kubernetes, которые и позволяют каждому pod'у получить свой уникальный IP-адрес.
                        Читать дальше →
                        • +38
                        • 7.3k
                        • 2
                      • Основы формата GLTF и GLB, часть 1

                          Что такое GLTF и GLB?


                          GLTF (GL Transmission Format) — это формат файла для хранения 3Д сцен и моделей, который является крайне простым в понимании (структура записана в стандарте JSON), расширяемым и легко взаимодействующим с современными веб-технологиями. Данный формат хорошо сжимает трёхмерные сцены и минимизирует обработку во время выполнения приложений, использующих WebGL и другие API. GLTF сейчас активно продвигается Khronos Group как JPEG от мира 3D. На сегодняшний день используется GLTF версии 2.0. Существует и бинарная версия данного формата, которая называется GLB, единственное различие которого в том, что все хранится в одном файле с расширением GLB.


                          Эта статья — 1 часть из 2х. В ней мы с вами рассмотрим такие артефакты формата и их атрибуты, как Scene, Node, Buffer, BufferView, Accessor и Mesh. А во второй статье мы рассмотрим оставшиеся: Material, Texture, Animations, Skin и Camera. Больше общей информации о формате можно найти здесь.
                          Если в процессе просмотра статьи захочется лично поработать с данным форматом, то можете скачать модели GLTF 2.0 с официального репозитория Khronos на GitHub


                          image


                          Проблематика и её решение


                          Изначально GLTF формат был задуман Khronos Group как решение для передачи 3D контента по интернету и был призван минимизировать количество импортеров и конвертеров, разные виды которых создаются при работе с графическими API.


                          image

                          На текущий момент GLTF и его бинарный брат GLB используются как унифицированные форматы и в CAD программах (Autodesk Maya, Blender и т. д.), в игровых движках (Unreal Engine, Unity и прочих), AR/VR приложениях, соц. сетях и т.д.

                          Читать дальше →
                          • +17
                          • 13.3k
                          • 3
                        • Четыре простые настройки терминала Kubernetes, которые повысят вашу продуктивность

                          • Translation

                          Я управлял эксплуатацией больших Kubernetes-кластеров более трёх лет, и хочу поделиться своим минималистичным подходом к настройке терминала kubectl terminal, которая доказала свою высокую эффективность в повседневной работе. Хорошо настроенный терминал с командной строкой может значительно повысить вашу продуктивность. Это как хлеб и масло — волшебное сочетание.

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

                          Вот четыре мои простых дополнения к терминалу kubectl. С этой конфигурацией я каждый день управляю 20 большими Kubernetes-кластерами на 400 машин.
                          Читать дальше →
                          • +57
                          • 7.5k
                          • 7
                        • Гугл-программисты. Как идиот набрал на работу идиотов

                            В стародавние времена я, на постоянной основе, занимался техническими собеседованиями – отбирал кандидатов на должность программиста в компанию. У меня была простая, понятная, шикарная методика (не мной придуманная). Чувак сначала проходил длинное собеседование по куче разнообразных вопросов, потом решал несколько задач. На бумаге, как мы делали в ВУЗе.

                            Оглядываясь назад, понимаю – отбор действительно работал шикарно. Все, кого я тогда отобрал, стали уважаемыми в нашей деревне специалистами. Больше половины из них давно открыли собственный it-бизнес, в самых разных сферах – от 1С до разработки CRM-систем.

                            Вот этот опыт и замутил моё сознание. Настолько, что я решил поменять методику – подумал, что дело не в ней, а во мне. Я есть великий специалист по техническим собеседованиям.
                            Читать дальше →
                          • Плагин kubectl-debug для отладки в pod'ах Kubernetes



                              В конце прошлого года на Reddit представили плагин к kubectl, помогающий производить отладку в pod'ах кластера Kubernetes — kubectl-debug. Эта идея сразу же показалась интересной и полезной нашим инженерам, так что мы решили посмотреть на её воплощение и рады поделиться своими результатами с читателями хабры.
                              Читать дальше →
                            • Устройство Helm и его подводные камни


                                Typhon freight hauler concept, Anton Swanepoel

                                Меня зовут Дмитрий Сугробов, я разработчик в «Леруа Мерлен». В статье расскажу, зачем нужен Helm, как он упрощает работу с Kubernetes, что поменялось в третьей версии и как с его помощью обновлять приложения в продакшене без простоя.

                                Это конспект по мотивам выступления на конференции @Kubernetes Conference by Mail.ru Cloud Solutions — если не хотите читать, смотрите видео.
                                Читать дальше →