Pony — убийца.
Всем известны такие прогрессивные новички в программировании как — «Go, Rust, Nim, Crystal» и все они очень круты в своих определенных областях.
К примеру:
- Go был рожден как супер простой и промышленный язык для быстрого решения поставленных задач с идеями, которые всем прекрасны известны, но некоторые из них прибиты к другим языкам гвоздями (На 5мм).
- Второй наш оппонент — это Rust, победитель по жизни, но из-за своей сложной жизни в развитии он стал для сообщества, как будущая и модная замена C++. Для меня его судьба пока не понятна, так как с зелеными потоками и IO под них там пока туго, то я его ставлю на место в ряд с C для микроконтроллеров, драйверов и операционных систем.
- Crystal… Прямо и четко говорю, что это супер производительный клон Ruby. Больше сказать нечего, весь он пропитан его духом.
- Nim (Он же Нимушка или Нимрод) и его похожесть на скриптовые языки создают ему особую атмосферу, однако внутри он достаточно сложный организм и для меня сия сущность, как Haxe с такими же ощущениями при программировании на нем.
Это только начало
Предварительно расскажу немного о себе, чтобы создать вам особую атмосферу для понимания языка и его возможных применений.
Мультфильм про Май Литл Пони. Дружба — это чудо 5 сезон! Гвоздь программы
- Я — Nyarum, известен, как простой пользователь языка Go. Часто задвигаю иронию с Растом и являюсь соавтором Slack сообщества гоферов.
- Мои петпрожекты всегда связаны с эмулированием онлайн игр. От реверса до воспроизведения серверной части.
- И я очень люблю Аниме.
Язык и краткий ликбез
Это тот самый жизнерадостный кормилец и он больше похож на кролика
Pony — объектно-ориентированный язык программирования, построенный в первую очередь на модели акторов и прозрачной конкурентности. В его дополнительных плюсах трутся такие понятия, как — «Open-source, производительность, интересные идеи». Основной упор идет на многоядерный системы, современную разработку без мыслей о низком уровне и очень производительную конкурентность.
Возможности
- Типобезопасность. Подтвержденная математическим бекграундом.
- Безопасная работа с памятью. Хоть это и является следствием из типобезопасности, но нельзя упускать данный пункт. В нем вы не найдете повисших указателей, переполнение буффера или в самом частом случае — вам не придется знать, что такое null.
- Безопасная работа с экзепшенами. Все они определяются на семантическом уровне и никаких рантайм неожиданностей.
- Скажем нет гонкам данных! Никаких атомиков, мьютексов или таймеров. Система типов с проверками во время компиляции дают высокую гарантию сего понятия. Пишите конкурентный код и не переживайте за остальное.
- Никаких дедлоков. Следствие из отсутствия любых операций с блокировками.
Краткая спецификация по языку
Система типов:
-
Класс, стандартен из ООП мира. Поля, конструкторы и функции в вашем распоряжении.
Работа с программой Pony Prog
class Habra let _name: String new create(name’: String) => _name = name’ fun name(): String => _name
actor Habro let name: String var _hunger_level: U64 = 0 new create(name’: String) => name = name’ be eat(amount: U64) => _hunger_level = _hunger_level — amount.min(_hunger_level)
primitive _Habras
// Trait trait Family fun age(): U64 => 5 class Habravi is Family // Interface interface Habrovik fun name(): String class Habrovichek fun name(): String => «Model #1»
// Enumeration primitive Red primitive Blue primitive Green type Colour is (Red | Blue | Green) // Complex interface HasName fun name(): String interface HasAge fun age(): U32 interface HasAddress fun address(): String type Person is (HasName HasAddress)
var x: (String, U64) x = («hi», 3)
var x: (String | U64) x = «hello habr» // or x = 5
type Map[K: (Hashable box https://habr.com/ru/post/269885/» target=»_blank»]habr.com[/mask_link]
:: Программатор PonyProg ::
PonyProg2000. Инструкция
PonyProg написан итальянцем Клаудио Ланконелли (Claudio Lanconelli) и существует в Windows (9x/ME/NT/2000/XP) и Linux версиях. Имеет поддержку русского языка. Может использовать параллельный порт (LPT) или стандартный последовательный порт (COM).
Поддерживаемые PonyProg микроконтроллеры семейства AVR. |
AT90S1200, AT90S2313, AT90S2323, AT90S2343, AT90S4414, AT90S4434, AT90S8515, AT90S8535, AT90S2323, AT90S2343, AT90S2333, AT90S4433, AT90S4434, AT90S8535, AT90S8534 |
ATmega103, ATmega161, ATmega163, ATmega323, ATmega128, ATmega8, ATmega16, ATmega64, ATmega32, ATmega162, ATmega169, ATmega8515, ATmega8535, ATmega44, ATmega88, ATmega168, ATmega164, ATmega324, ATmega644, ATmega640, ATmega1280, ATmega1281, ATmega2560, ATmega2561 |
ATtiny12, ATtiny15, ATtiny26, ATtiny2313, ATtiny13, ATtiny25, ATtiny45, ATtiny85, ATtiny261, ATtiny461, ATtiny861 |
AT90can32, AT90can64, AT90can128 |
PonyProg поддерживает ряд популярных программаторов, в том числе STK200 /300, JDM/Ludipipo, EasyI2C и DT-006 AVR от Dontronics.
С помощью PonyProg можно загружать данные в микроконтроллеры Atmel AVR и MicroCHIP PicMicro, а также программировать микросхемы памяти с последовательным доступом (I2C Bus, Microwire, SPI eeprom).
Полный список программируемых микросхем можно прочитать на сайте PonyProg , а скачать эту замечательную программу со страницы http://www.lancos.com/ppwin95.html или из раздела Downloads сайта myROBOT.
Помимо всего вышеперечисленного, PonyProg предоставляет возможность редактирования текста программы на уровне изменения значения байтов.
Загрузка программы с помощью PonyProg PonyProg2000. Инструкция по использованию |
Чтобы загрузить уже готовую программу с помощью PonyProg в микроконтроллер AVR, можно воспользоваться упрощенным вариантом программатора STK200, который описан в статье «ПРОСТОЙ ПРОГРАММАТОР AVR». Это устройство состоит из 25-контактного разъема для параллельного (LPT) порта, 4-х резисторов (150 Ом) и соединительного кабеля, длина которого не должна превышать 1,5 метра.
Рассмотрим последовательность действий по загрузке программы в микроконтроллер на примере ATmega8 .
При первом запуске PonyProg попросит произвести калибрацию и указать тип используемого программатора с помощью двух предупреждающих сообщений.
Сделаем так, как он просит. Зайдем в меню «Setup» и выберем пункт «Calibration».
При появлении предупреждения убедимся, что, кроме PonyProg, у нас не запущено никаких приложений, загружающих процессор и жесткий диск.
После чего нажмем «Yes» и подождем несколько секунд.
После выполнения процесса калибрации появится сообщение об успешном завершении.
Если что-то пошло не так, калибрацию стоит провести заново.
Теперь выберем в меню «Setup» пункт «Interface Setup. «.
В появившемся окне выберем параллельный порт и способ работы с этим портом (в Windows2000/XP мы должны выбрать «AVR ISP I/O» и использовать стандартный LPT-порт).
Внимание! Не указывайте порт, к которому подключен модем: это может вывести его из строя.
Указать тип микроконтроллера можно, воспользовавшись меню «Device» — «AVR micro».
Когда все приготовления выполнены, загрузим в PonyProg файл с откомпилированной программой.
Как получить файл с откомпилированной программой с помощью среды WinAVR, можно прочитать в статье «MAKEFILE И КОМПИЛЯЦИЯ ПРОГРАММЫ».
Подсоединим шлейф программатора STK200 к программируемому микроконтроллеру, убедимся, что все подключено правильно, и подадим питание.
Если из ATmega8 не повалил едкий дым и его корпус не начал заметно нагреваться, можно загружать подготовленную программу во FLASH-память микроконтроллера. В меню «Command» выберем пункт «Write Program (FLASH)» и дождемся успешного завершения загрузки.
Программатор PonyProg позволяет также загружать данные в EEPROM-память, считывать данные из памяти микроконтроллера, стирать память и программировать FUSE-биты .
Это оригинальная статья myROBOT.ru Постоянный адрес статьи: http://myrobot.ru/articles/mc_ponyprog.php |
Ссылки:
PonyProg
http://www.lancos.com/prog.html
Источник: myrobot.ru
PonyProg2000
Нетребовательная и многофункциональная программа — программатор, предназначенная для работы с микроконтроллерами и постоянными запоминающими устройствами с последовательным доступом различных производителей.
PonyProg2000 получила большую известность благодаря простой и доступной в изготовлении аппаратной части, которая подключается к последовательному (COM) или параллельному (LPT) порту обычного компьютера. Программное обеспечение поддерживает интерфейсы оборудования JDM / Ludipipo, EasyI2C, DT-006 AVR (от Dontronics) и AVR ISP (STK200/300). В аппаратную часть программатора устанавливается микроконтроллер или микросхема EEPROM / флэш-памяти.
После предварительной настройки PonyProg2000 может считывать и записывать программный код или данные, редактировать текст программы путем модификации значений байтов, очищать память и даже программировать легендарные FUSE-биты. Для организации связи с устройством программатор поддерживает интерфейсы: SPI EEPROM, I2C, Microwire для микросхем памяти и Atmel AVR, MicroCHIP PicMicro для микроконтроллеров. Программа входит в джентльменский набор любого хакера поскольку позволяет взламывать защитные коды с автомобильных магнитол, мобильных телефонов и других устройств.
Полный список поддерживаемых устройств, возможностей программы и схем аппаратной части для различных интерфейсов можно посмотреть здесь.
Программа работает во всех 32-битных операционных системах Windows, а также Linux и UNIX при установке соответствующей версии.
Распространение программы: Freeware (бесплатная)
Официальный сайт PonyProg2000: http://www.lancos.com/prog.html
0
Eduardo 20.10.2017 21:15 #
Вышла новая версия, портированная на Qt.
Из новшеств:
Полностью переработано и дополнено текстовой информацией окно программирования FUSE/LOCK-битов;
Программа собирается с Qt версий 4.8 и выше, совместима с Qt 5;
Проект собирается с компиляторами, поддерживающими параметр c++0x и выше. В том числе возможна сборка исходников на дистрибутивах 2012 года, например, Ubuntu 12.04;
Поддержка многоязычности и переключения локали интерфейса «на лету»;
Файлы перевода основаны на простых текстовых файлах для облегчения тестирования новых локализаций энтузиастами, не имеющих опыта работы с Qt Linguist;
Оптимизирован поиск информации при выборе микросхемы;
Переработаны внутренние структуры для более простого расширения программы под новые чипы
0
vkn 13.01.2020 18:39 #
Актуальная версия 3.1.0
Качаем свежие версии отсюда: https://github.com/lancos/ponyprog/releases
0
Станислав 24.06.2022 09:13 #
У меня есть в наличии три программатора USBapsmega8A. и CH341A, и еще PIC K150. Мне нужно прошить контроллер PIC16F676, кто мне дураку поможет это сделать, то есть все пошагово какую программу скачать ссылку на нее как подключить программатор к контроллеру ну и т.д.
МиниПК MK809V — 4 ядра, Android 4.4.2
1999-2022 Сайт-ПАЯЛЬНИК ‘cxem.net’
При использовании материалов сайта, обязательна
ссылка на сайт ПАЯЛЬНИК и первоисточник
Источник: cxem.net
Русские Блоги
В Wallaroo Labs я являюсь вице-президентом по разработке, и мы создаем высокопроизводительный распределенный потоковый процессор, написанный на языке программирования Pony. Большинство людей не слышали о Pony, но он всегда был лучшим выбором для Wallaroo, а также может быть лучшим выбором для вашего следующего проекта.
Я участвую в проекте Pony, но здесь я хочу поговорить о том, почему Pony — хороший выбор для таких приложений, как Wallaroo, и рассказать, как я использую Pony. Если вас интересует, почему мы используем Pony для написания Wallaroo, у нас есть сообщение об этом в блоге.
Что такое пони?
Вы можете думать о Пони как о чем-то «Ржавчина встречается с Эрлангом». У Pony есть самые интересные особенности, а именно:
Безопасность типов
Безопасность хранилища
Исключительно безопасно
Нет конкуренции за данные
Нет взаимоблокировки
Кроме того, его можно скомпилировать в эффективный машинный код. Он разработан в открытых условиях и выпущен под лицензией BSD, состоящей из двух предложений.
Выше упоминалось множество функций, но здесь я остановлюсь на тех функциях, которые необходимы нашей компании для внедрения Pony.
Зачем использовать Пони?
Использовать большинство наших существующих инструментов для написания быстрых, безопасных, эффективных и синхронизированных программ непросто. «Быстрый, эффективный, высокий уровень параллелизма» — достижимая цель, но после добавления «безопасности» это намного сложнее. В Wallaroo мы надеемся достичь четырех целей одновременно, и Pony облегчает их достижение.
Высокая степень параллелизма
Pony упрощает параллелизм. Частично это достигается путем предоставления упорного параллелизма подхода. На языке Pony весь параллелизм осуществляется через модель Actor.
Модель Actor наиболее известна своей реализацией в Erlang и Akka. Модель Actor появилась в 1970-х годах, и детали меняются в зависимости от того, как она реализована. Что остается неизменным, так это то, что все вычисления выполняются субъектами, общающимися через асинхронные сообщения.
Вы можете взглянуть на модель акторов следующим образом: объекты в объектно-ориентированной модели — это методы состояния + синхронные методы, а субъекты — это методы состояния + асинхронные методы.
Когда актор получает сообщение, он выполняет соответствующий метод. Этот метод можно запустить в состоянии, доступном только субъекту. Модель актора позволяет нам одновременно безопасно использовать изменяемое состояние. Каждый актер однопоточный. Два метода в акторе никогда не будут выполняться одновременно.
Это означает, что в данном актере обновления данных не вызовут гонок данных или других проблем, обычно связанных с потоками и изменяемым состоянием.
Быстро и эффективно
Актер-пони отправляется через эффективный планировщик кражи заданий. Для каждого доступного процессора существует отдельный планировщик Pony. Эта модель параллелизма с одним потоком на ядро является частью попытки Pony работать с процессором, чтобы работать с максимальной эффективностью. Pony старается максимально использовать кеш процессора во время работы.
Чем меньше кода вмешивается в кеш, тем лучше он работает. Пони намеревается помочь вашему коду справиться с кешем процессора.
В Pony также есть куча для каждого актора во время выполнения, поэтому во время сборки мусора нет шага «остановить все». Это означает, что ваша программа всегда будет делать хотя бы небольшую работу. Таким образом, программы Pony имеют очень стабильную производительность и предсказуемую задержку.
безопасности
Система типов Pony вводит новую концепцию: способность ссылаться, которая делает безопасность данных частью системы типов. Каждый тип переменной на языке Pony содержит информацию о том, как обмениваться данными между участниками. Компилятор Pony использует эту информацию, чтобы подтвердить, что ваш код свободен от гонок данных и взаимоблокировок во время компиляции.
Если это немного похоже на Rust, то потому, что это так. И функция цитирования Pony, и средство проверки заимствований в Rust обеспечивают безопасность данных; просто они подходят к этой цели по-разному и имеют разные компромиссы.
Пони тебе подходит?
Трудно решить, использовать ли новый язык программирования в проекте, не относящемся к хобби. По сравнению с другими методами необходимо взвесить целесообразность и незрелость инструмента. Итак, Пони тебе подходит?
Если вам нужно решить сложную проблему параллелизма, то Pony может быть хорошим выбором. Решение проблем с параллельными приложениями — вот причина, по которой существует Pony. Если вы можете делать то, что вам нужно, с помощью однопоточного скрипта Python, вероятно, он вам не понадобится. Если у вас сложная проблема с параллелизмом, вам следует рассмотреть Pony и его мощную конкуренцию без данных, систему типов с поддержкой параллелизма.
Вы получите компилятор, который предотвратит появление множества ошибок, связанных с параллелизмом, и обеспечит отличные характеристики производительности во время выполнения.
Начать использовать Pony
Если вы готовы начать использовать Pony, вам нужно сначала посетить раздел обучения на веб-сайте Pony. Здесь вы найдете инструкции по установке компилятора Pony и ресурсы для изучения языка.
Если вы готовы внести свой вклад в язык, который используете, мы предоставим вам несколько удобных для новичков вопросов на GitHub.
А пока мне не терпится поговорить с вами на нашем IRC-канале и в списке рассылки Pony.
Чтобы узнать больше о Пони, обратитесь к речи Шона Аллена на 20-й конференции OSCON в Портленде, штат Орегон, 16-19 июля 2018 г .: Пони, как мне перестать беспокоиться и принять Проверенная технология.
Источник: russianblogs.com
Что это за программа — mipony?
Mipony — это менеджер загрузок, который необходим для загрузки файлов с файлообменников.
Дело в том, что при загрузке файлов нередко возникают проблемы. Например, существуют лимиты загрузки. Очень часто большие файлы рабиты на куски, которые потом нужно сложить вместе.
Для решения этих проблем и существует программа Mipony.
Программа Mipony позволяет не только загружать, но и докачивать недогруженный файл, оптимизирует соединения, работает с учетными записями файлообменников.
Источник: www.bolshoyvopros.ru