По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Одноплатные компьютеры стали довольно популярными в последние десятилетия благодаря их возможности быть использованными в процессе разработки и обучения для начинающих. Одноплатный компьютер представляет собой не что иное, как одну единственную плату, но работает как полноценный компьютер, оснащенный микропроцессором, памятью и устройством ввода-вывода, а также множеством других функций. Одноплатные компьютеры изначально использовались в качестве систем демонстрации и разработки для различных отраслей промышленности. В отличие от стандартного настольного компьютера, одноплатные компьютеры обычно не зависят от слотов расширения для расширения или основных функций. Хотя существует большое количество одноплатных компьютеров, Arduino и Raspberry Pi - два самых популярных устройства. Они стали довольно популярными среди студентов и профессионалов, а также любителей и начинающих программистов. У каждой платы есть свои плюсы и минусы, и профессионалы точно знают, когда и где использовать какую плату, а когда переключаться на другую. Но программисты, которые только начинают создавать проекты, часто мучаются в выборе между ними и пытаются сделать важный выбор - какую плату изучать и использовать для своих проектов. Raspberry Pi Несмотря на размер кредитной карты, Raspberry Pi представляет собой полнофункциональный компьютер, поскольку он имеет выделенную память, графическую карту и процессор. Плата может даже работать под управлением специально разработанной версии ОС Linux. Платы были разработаны Фондом Raspberry Pi для поощрения базового обучения информатике в школах наряду с развивающимися странами. Несмотря на то, что платы были предназначены только для обучения, они стали более популярными, чем предполагалось, и использовались в таких высокотехнологичных приложениях, как робототехника, медиаплееры, эмуляторы и даже АТС Asterisk (дистрибутив под названием RasPBX). Arduino Arduino - это одноплатный компьютер, состоящий из трех основных функций. Первым является аппаратная прототипная платформа, вторым - язык Arduino и, наконец, интегрированная среда разработки (IDE) и библиотеки. Плата Arduino - это скорее микроконтроллер, а не полноценный компьютер. На плате Arduino не может работать операционная система, но код может быть написан и выполнен так, как его постоянное программное обеспечение интерпретирует. Основная функция платы Arduino - взаимодействие со вторичными устройствами и датчиками, что делает ее идеальной для проектов, которые требуют минимальной сложности и работают только на датчике или ручном вводе. Разница между Arduino и Raspberry Pi И Arduino, и Raspberry Pi закрепили свое место в индустрии одноплатных компьютеров и любимы миллионами людей во всем мире. Хотя их характеристики и их возможности различны, все зависит от того, какая плата подойдет для вашего проекта. В этой статье мы обсудим особенности Arduino и Raspberry Pi и проведем сравнение их наиболее выдающихся характеристик, чтобы помочь вам сделать выбор в пользу наилучшего одноплатного компьютера для ваших проектов. Кривая обучения Как мы уже обсуждали ранее, Pi - это больше компьютер, а Arduino, по сути, является дверью в мир программирования. В целом, Arduino гораздо легче освоить, так как он имеет гораздо более низкий барьер для входа. Если у вас мало или совсем нет знаний в области компьютеров и программирования, но вы хотите начать, Arduino - правильный выбор для вас. С другой стороны, люди с опытом работы в Unix или Linux могут легко использовать Raspberry Pi, поскольку на него можно установить специальную версию Linux, созданною для оборудования Raspberry Pi. После установки ОС это похоже на работу на любом компьютере с Linux. Простота Плата Arduino намного проще в использовании по сравнению с Raspberry Pi. Плата Arduino может быть легко сопряжена с аналоговыми датчиками и другими электронными компонентами, используя всего несколько строк кода. В противоположность этому, есть много хлопот для простого считывания входных сигналов с датчиков, поскольку для этого требуется установка нескольких библиотек и программного обеспечения для создания интерфейса между платой и датчиками и другими электронными компонентами. Кодирование в Arduino также проще, чем в Raspberry Pi, который требует знания Linux и его команд. Доступные языки программирования Одноплатный компьютер Raspberry Pi был разработан с целью побудить молодежь присоединиться к программированию. Pi в Raspberry Pi происходит от языка Python, который обозначает его использование в плате. Несмотря на это, Raspberry Pi за короткое время освоила несколько языков программирования и стала основным выбором для обширной группы программистов. Некоторые из языков, которые доступны для использования в Raspberry Pi, это Scratch, Python, HTML 5, JavaScript, JQuery, Java, C, C ++, Perl и Erlang. В случае Arduino вы встретите Arduino IDE - кроссплатформенный пользовательский интерфейс, используемый для написания и загрузки программ на плату. Он написан на языке программирования Java и помогает любому достаточно легко начать программирование Arduino. Но в высокопроизводительных проектах Arduino IDE действует как ограничение того, что можно сделать. Если вы не хотите использовать IDE, вы можете кодировать Arduino, используя язык C ++. Есть много других инструментов, доступных для начинающих и профессионалов, которые можно использовать при программировании в Arduino. Одним из таких инструментов является ArduBlock, который помогает новичкам с минимальным опытом программирования визуализировать свой код, а не печатать его, помогая им понять логику. Еще одним визуальным инструментом является Snap4Arduino, который меньше ориентирован на программирование, но больше помогает пользователю понять, как он работает, так как он создан для немного более старой аудитории. Другими языками, которые могут использоваться прямо или косвенно через внешние коммуникаторы, являются C # и Python. Сетевые возможности Сетевые возможности Raspberry значительно превосходят возможности Arduino. Raspberry Pi 3 имеет Bluetooth и возможность беспроводного подключения. Он также может подключаться к Интернету через Ethernet. Плата поставляется с 1 портом HDMI, 4 портами USB, одним портом камеры, 1 портом Micro USB, 1 портом LCD и 1 портом Display Port DSI, что делает его идеальным для множества приложений. В то же время порты Arduino не созданы для прямого подключения к сети. Даже если это возможно, потребуется дополнительный чип с портом Ethernet, что потребует дополнительной проводки и кодирования. Скорость процессора Разница в скорости процессора между Raspberry Pi и Arduino довольно очевидна и огромна, что связано с тем, что первый является полностью работоспособным компьютером, а другой - микропроцессором. Сравнивая тактовую частоту платы Arduino Uno и платы Raspberry Pi Model B, мы видим значения 16 МГц и 700 МГц соответственно. Поэтому устройство Raspberry работает в 40 раз быстрее, чем плата Arduino. Кроме того, плата Pi имеет в 128 000 раз больше оперативной памяти, чем плата Arduino с оперативной памятью 0,002 МБ. Важно помнить, что Arduino - это просто plug & play устройство и может быть включено и выключено в любое время без каких-либо повреждений. Но Raspberry Pi работает под управлением операционной системы и сам по себе является полноценным компьютером, который требует надлежащего выключения перед отключением питания. Неправильное завершение работы Raspberry Pi может повредить плату, повредить приложения и даже повлиять на скорость процессора. Ввод/Вывод (I/O) Контакты ввода/вывода на вашем одноплатном компьютере позволяют ему общаться с другими подключенными к нему устройствами. Например, если вы хотите активировать двигатель или зажечь светодиод с помощью одноплатного компьютера, вам понадобятся эти выводы ввода/вывода для выполнения этих задач. Raspberry Pi (модель 2) имеет 17 контактов ввода/вывода, а плата Arduino (Uno) - 20 контактов. Потребляемая мощность Из-за своего мощного (сравнительно) процессора плата Pi требует непрерывного источника питания 5 В и может работать не идеально при питании от батарей. Но Arduino может бесперебойно работать с аккумулятором из-за его низких требований к питанию. Хотя энергопотребление может меняться с увеличением количества подключенных устройств. Место хранения Базовая плата Arduino поставляется с хранилищем 32 КБ для хранения кода, который предоставляет платам инструкции. Этого достаточно, так как хранилище не будет использоваться для приложений, видео и фотографий. Pi, однако, не поставляется с хранилищем, но поддерживает порт micro SD, который позволяет пользователю добавлять столько памяти, сколько ему нужно. Доступность и популярность И доски Arduino, и Raspberry Pi получили признание большого числа людей со всего мира. Благодаря такой высокой популярности платы Arduino и Raspberry Pi легко доступны для покупки. Для сравнения, Arduino намного дешевле плат Raspberry Pi из-за ограниченных возможностей. Стоимость может увеличиться с платами высокого класса. Arduino против Raspberry в робототехнике и IoT Выбор правильной одноплатной системы для вашего проекта очень важен, поскольку он будет определять, насколько быстро и эффективно ваша задача будет выполнена. Хотя у плат Arduino и Raspberry Pi есть свои плюсы и минусы, выбор правильной платы будет полностью зависеть от ваших требований. Например, если ваша задача - считывать данные датчиков и реагировать на них в режиме реального времени, плата Arduino подойдет вам больше, чем Raspberry Pi. Это связано с низким энергопотреблением и низким уровнем обслуживания. Arduino идеально подходит для проектов, которые должны работать непрерывно с минимальным взаимодействием и реакцией. Отличным примером такой задачи будет запись температуры на улице и отображение ее на экране. Платы Arduino идеально подходят для начинающих, которые только делают первые шаги и не пока не стремятся создать каких-либо проектов высокого уровня. С другой стороны, Raspberry Pi следует использовать для проектов, которые являются более сложными, чем пример, упомянутый выше. Плата должна использоваться, когда необходимо выполнить несколько задач одновременно, а некоторые или все из них сложны. Например, если ваш проект регистрирует температуру в определенном районе, анализирует тренды температуры за последние недели и прогнозирует погоду на следующие несколько дней, а также принимает решение, будет ли погода оптимальной для орошения, тогда Raspberry Pi это то, что вам нужно. Проще говоря, плата Raspberry Pi предназначена для профессионалов, которые строят сложный и надежный проект, для которого требуется способность выполнять несколько задач одновременно, чего не хватает в Arduino. Обзорная таблица Виртуальная машинаDocker контейнерИзоляция процесса на аппаратном уровнеИзоляция процесса на уровне ОСКаждая виртуальная машина имеет отдельную ОСКаждый контейнер может совместно использовать ОСЗагружается в считанные минутыЗагружается в считанные секундыВиртуальные машины занимают несколько ГБКонтейнеры легкие (КБ / МБ)Готовые виртуальные машины трудно найтиГотовые док-контейнеры легко доступныВиртуальные машины могут легко перейти на новый хостКонтейнеры уничтожаются и воссоздаются, а не перемещаютсяСоздание ВМ занимает относительно больше времениКонтейнеры могут быть созданы в считанные секундыБольше использования ресурсаМеньшее использование ресурсов Итого Обе платы имеют довольно длинный список плюсов и минусов, но они отлично подойдут, если требование будет правильным. Но какими бы разными они ни казались, существует сценарий, в котором они могут работать вместе, чтобы максимизировать результаты проекта. Вы можете сравнить плату Arduino со спинным мозгом тела, который принимает мелкомасштабные решения, такие как зажигание светодиода или измерение температуры жидкости, в то время как плата Raspberry Pi - это мозг, который принимает сложные решения, такие как анализ прошлых ценностей и прогнозирование будущих ценностей. В конце концов, как мы уже говорили, плата Arduino идеально подходит для вас, если вы новичок и хотите узнать об электронике или о тех, кто имеет опыт работы с электроникой и хочет заняться простыми проектами. Raspberry Pi идеально подходит для вас, если у вас есть знания Linux и вы хотите использовать их для создания сложных сетевых электронных проектов.
img
JSON (JavaScript Object Notation – нотация объектов JavaScript) – это популярный способ структурирования данных. Он используется для обмена информацией между веб-приложением и сервером. Но как прочитать файл JSON в Python? В этой статье я покажу вам, как использовать методы json.loads() и json.load() для интерпретации (или как еще говорят парсинга) и чтения файлов и строк JSON. Синтаксис JSON Прежде чем мы приступим к интерпретации и чтению файла JSON, сначала нам нужно разобраться с основным синтаксисом. Подробнее про JSON можно почитать в этой статье. Синтаксис JSON выглядит как объектный литерал JavaScript с парами ключ-значение. Вот пример данных JSON с данными организации: { "organization": "Company 1", "website": "https://www.website.org/", "formed": 2014, "certifications": [ { "name": "Responsive Web Design", "courses": [ "HTML", "CSS" ] }, { "name": "JavaScript Algorithms and Data Structures", "courses": [ "JavaScript" ] }, { "name": "Front End Development Libraries", "courses": [ "Bootstrap", "jQuery", "Sass", "React", "Redux" ] }, { "name": "Data Visualization", "courses": [ "D3" ] }, { "name": "Relational Database Course", "courses": [ "Linux", "SQL", "PostgreSQL", "Bash Scripting", "Git and GitHub", "Nano" ] }, { "name": "Back End Development and APIs", "courses": [ "MongoDB", "Express", "Node", "NPM" ] }, { "name": "Quality Assurance", "courses": [ "Testing with Chai", "Express", "Node" ] }, { "name": "Scientific Computing with Python", "courses": [ "Python" ] }, { "name": "Data Analysis with Python", "courses": [ "Numpy", "Pandas", "Matplotlib", "Seaborn" ] }, { "name": "Information Security", "courses": [ "HelmetJS" ] }, { "name": "Machine Learning with Python", "courses": [ "Machine Learning", "TensorFlow" ] } ] } Как парсить строки JSON в Python Python имеет встроенный модуль, который позволяет работать с данными в формате JSON. Вам необходимо будет импортировать модуль json. import json Если вам необходимо проинтерпретировать строку JSON, возвращающую словарь, то вы можете воспользоваться методом json.loads(). import json # assigns a JSON string to a variable called jess jess = '{"name": "Jessica Wilkins", "hobbies": ["music", "watching TV", "hanging out with friends"]}' # parses the data and assigns it to a variable called jess_dict jess_dict = json.loads(jess) # Printed output: {"name": "Jessica Wilkins", "hobbies": ["music", "watching TV", "hanging out with friends"]} print(jess_dict) Как парсить и читать файлы JSON в Python В данном примере мы имеем файл в формате JSON с именем fcc.json, который содержит те же данные, что и ранее, касающиеся курсов, которые предлагает сайт. Если вы хотите прочитать этот файл, то для начала вам нужно использовать встроенную в Python функцию open() с режимом чтения. Мы используем ключевое слово with, чтобы убедиться, что файл закрыт. with open('fcc.json', 'r') as fcc_file: Если файл не может быть открыт, то мы получим ошибку OSError. Это пример ошибки "FileNotFoundError" при опечатке в имени файла fcc.json. Затем мы можем проинтерпретировать файл, используя метод json.load() и присвоить его переменной с именем fcc_data. fcc_data = json.load(fcc_file) И в конце мы должны напечатать результат. print(fcc_data) Вот так будет выглядеть полный код: import json with open('fcc.json', 'r') as fcc_file: fcc_data = json.load(fcc_file) print(fcc_data) Как красиво напечатать данные JSON в Python Если мы посмотрим на то, как печатаются данные, то увидим, что все данные JSON печатаются в одной строке. Однако такой формат вывода может быть затруднительным для чтения. И чтобы это исправить, мы можем реализовать метод json.dumps() с параметром indent (отступ). В данном примере мы сделаем отступ в 4 пробела и будем печатать данные в более удобном для чтения формате. print(json.dumps(fcc_data, indent=4)) Также мы можем отсортировать ключи в алфавитном порядке, используя параметр sort_keys и установив его значение на True. print(json.dumps(fcc_data, indent=4, sort_keys=True)) Заключение JSON – это популярный способ структурирования данных, который используется для обмена информацией между веб-приложением и сервером. Если вам необходимо проинтерпретировать строку JSON, которая возвращает словарь, то вы можете использовать метод json.loads(). Если вам необходимо проинтерпретировать файл JSON, который возвращает словарь, то вы можете использовать метод json.load().
img
Сегодня в статье рассказываем про плагин kubectl, который использует tmux, чтобы быстрее устранить неполадки Kubernetes. Kubernetes - это процветающая платформа для взаимодействия контейнеров с открытым исходным кодом, которая обеспечивает масштабируемость, высокую доступность, надежность и отказоустойчивость приложений. Одной из его многочисленных функций является поддержка запуска пользовательских сценариев или двоичных файлов через основной двоичный файл клиента, kubectl. Kubectl очень мощный, и позволяет пользователям делать с ним все, что они могли бы сделать непосредственно в кластере Kubernetes. Устранение неполадок с псевдонимами Kubernetes Каждый, кто использует Kubernetes для управления контейнерами, знает о его особенностях - а также о сложности, причиной которого является его дизайн. Например, существует острая необходимость упростить поиск и устранение неисправностей в Kubernetes с помощью чего-то более быстрого и практически не требующего ручного вмешательства (за исключением критических ситуаций). Существует много сценариев, которые следует учитывать при устранении неполадок. В одном сценарии вы знаете, что нужно запускать, но синтаксис команды - даже если она может выполняться как одна команда - чрезмерно сложен, или для работы может потребоваться один-два входа. Например, если часто требуется перейти в запущенный контейнер в пространстве имен System, вы можете неоднократно писать: kubectl --namespace=kube-system exec -i -t <your-pod-name> Для упрощения поиска и устранения неисправностей можно использовать псевдонимы этих команд в командной строке. Например, можно добавить следующие файлы dotfiles (.bashrc или .zshrc): alias ksysex='kubectl --namespace=kube-system exec -i -t' Это один из многих примеров из хранилища общих псевдонимов Kubernetes, который показывает один из способов упрощения функций в kubectl. Для чего-то простого, подобного этому сценарию, достаточно псевдонима. Переключение на подключаемый модуль kubectl Более сложный сценарий устранения неполадок включает в себя выполнение множества команд, одной за другой, для исследования среды и выведения заключения. Одних псевдонимов недостаточно для этого варианта использования; необходима воспроизведение логического узла и корреляция между многими частями развертывания Kubernetes. На самом деле вам нужна автоматизация для получения нужного результата за меньшее время. Рассмотрим пространства имен от 10 до 20 или даже от 50 до 100, содержащие различные микросервисы в вашем кластере. Что поможет вам начать устранение неполадок в этом сценарии? Вам потребуется что-то, что может быстро определить, какой модуль в каком пространстве имен вызывает ошибки. Вам понадобится что-то, что сможет просматривать журналы всех модулей в пространстве имен. Также может потребоваться просмотр журналов определенных модулей в определенном пространстве имен, в котором были обнаружены ошибки. Любое решение, охватывающее эти вопросы, было бы очень полезно при изучении производственных проблем, а также в ходе циклов разработки и тестирования. Чтобы создать нечто более мощное, чем простой псевдоним, можно использовать плагины kubectl. Плагины подобны автономным сценариям, написанным на любом языке сценариев, но предназначены для расширения функциональных возможностей главной команды при работе в качестве администратора Kubernetes. Чтобы создать плагин, необходимо использовать правильный синтаксис kubectl- < имя-плагина > для того, чтобы скопировать сценарий в один из экспортированных путей в $PATH и предоставить ему исполняемые разрешения chmod+x. После создания плагина и перемещения его в свой путь, вы можете немедленно запустить его. Например, у меня на пути есть kubectl-krwl и kubectl-kmux: $ kubectl plugin list The following compatible plugins are available: /usr/local/bin/kubectl-krawl /usr/local/bin/kubectl-kmux $ kubectl kmux Теперь давайте изучим, как выглядит обеспечение работы Kubernetes с tmux. Использование силы tmux Tmux - очень мощный инструмент, на который полагаются многие команды для устранения проблем, связанных с упрощением работы - от разделения окон на панели для выполнения параллельной отладки на нескольких машинах до мониторинга журналов. Одним из основных его преимуществ является то, что его можно использовать в командной строке или в сценариях автоматизации. Я создал плагин kubectl, который использует tmux, чтобы сделать поиск и устранение неисправностей гораздо проще. Я буду использовать аннотации, чтобы пройти через логику за плагином (и оставить его для вас, чтобы пройти через полный код плагина): #NAMESPACE is namespace to monitor. #POD is pod name #Containers is container names # initialize a counter n to count the number of loop counts, later be used by tmux to split panes. n=0; # start a loop on a list of pod and containers while IFS=' ' read -r POD CONTAINERS do # tmux create the new window for each pod tmux neww $COMMAND -n $POD 2>/dev/null # start a loop for all containers inside a running pod for CONTAINER in ${CONTAINERS//,/ } do if [ x$POD = x -o x$CONTAINER = x ]; then # if any of the values is null, exit. warn "Looks like there is a problem getting pods data." break fi # set the command to execute COMMAND=”kubectl logs -f $POD -c $CONTAINER -n $NAMESPACE” # check tmux session if tmux has-session -t <session name> 2>/dev/null; then <set session exists> else <create session> fi # split planes in the current window for each containers tmux selectp -t $n ; splitw $COMMAND ; select-layout tiled ; # end loop for containers done # rename the window to identify by pod name tmux renamew $POD 2>/dev/null # increment the counter ((n+=1)) # end loop for pods done< <(<fetch list of pod and containers from kubernetes cluster>) # finally select the window and attach session tmux selectw -t <session name>:1 ; attach-session -t <session name>; После запуска скрипта плагина он будет выдавать выходные данные, аналогичные изображению ниже. Каждый модуль имеет собственное окно, и каждый контейнер (если их несколько) разделяется панелями в окне модуля в потоковые журналы по мере их поступления. Преимущество tmux можно увидеть ниже; При правильной конфигурации можно даже увидеть, какое окно активно (см. белые вкладки). Заключение Псевдонимы всегда полезны для простого устранения неполадок в средах Kubernetes. Когда среда становится более сложной, плагин kubectl является мощным вариантом для использования более продвинутых сценариев. Ограничения в выборе языка программирования, который можно использовать для записи плагинов kubectl, нет. Единственное требование состоит в том, чтобы соглашение об именовании в пути являлось исполняемым и не имело того же имени, что и существующая команда kubectl. Прочитать полный код или попробовать плагины можно тут
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59