Я на ваши вопросы ответил, Ваша очередь не игнорить мои.
Вы третий пост исходите словесами, в которых нет никакой нужды и которые не несут сколь-нибудь значимого смысла в рамках обсуждаемого вопроса. Еще раз прочтите внимательно формулировку "цикл естественным образом завершается". Вы ж утверждаете, что программист. Ну так и ответьте, что обычно происходит после того, как цикл "естественным образом" завершен? Или может я поотстал и в свете новых веяний после окончания всякого цикла в теле программы происходит неизбежное "падение серверного приложения" ? С какого перепуга там вообще должно что-то падать? Вам не очевидно, что выполнение программы (скрипта) после завершения цикла продолжается следующей после цикла строкой? Вам по какой-то причине сие представляется совершенно невероятным? Ну так я вам тогда сообщаю, что именно так и будет.
То, что я не изобразил в тексте скрипта отслеживание доступности последовательного порта с ардуиной не говорит о том, что это невозможно в принципе. В примере этот код был бы загромождающим, т.к. не иллюстрирует основной мысли. Если вы испытываете сомнения, вот вам недостающее слежение:
while (true) {
while (!(system("stty -F $serial_port 115200 clocal cread cs8 -cstopb -parenb") == 0 and open(FILE, $serial_port))) {
sleep 1;
}
while(<FILE>){ #read line by line from serial port
# main processing loop follows
# ...
#
}
close FILE;
}
Можно подключать и отключать ардуину любое количество раз и в любое время. Логика скрипта проста, как дверь -- есть порт -- ждем данные или читаем их оттуда. Если порта нет, то ждем, когда он появится. Если порт отвалился в процессе работы, выходим из внутреннего цикла во внешний и ждем, пока порт нарисуется вновь, чтобы опять перейти во внутренний цикл к основному процессу.
Я вот не пойму, такую простую конструкцию, что, так сложно представить, чтобы не убиваться третий пост сочинением всякого бутора? Тут кто профессиональный программист, я или вы? Почему я вынужден объяснять простейшие вещи?
Цитата:
Ложь. #52 и через 2 сообщения в развитии. Ну функционал яснодело подрос. Я его описал. И он весь по теме обсуждался. Даже серва. Читать надо.
Нда-с. Никак не мог подумать, что "Hello websocket", валящийся с криком "управляйтесь тут без меня" (см. стр. 84 и 102 ) при малейших затыках с этим самым сокетом и есть вдохновлящий образец надежного серверного приложения. Перефразируя ваше недавнее: "Серверное приложение упало от того, что не смогло с вебсокетом управиться, чего ж тут неестественного?" Вы когда в следующий раз возьметесь наветы сочинять, прежде повспоминайте, не стадаете ли вы тем же, в чем других надуманным образом обвиняете. А то некрасиво вышло -- про мой скрипт насочиняли, чего и быть не может, а про реальную горбуху именно того же свойства в собственых софтах решили не вспоминать лишний раз. Такая вот у вас получилась объективность с душком отчаянной пристрастности.
Цитата:
Я там выше ссылался, но разумно ограничится обсуждением функции GetArduinoStr исходя из того что она в софте не одна и не должна мешать остальному
Остальному чему? Не мешать кому-то другомму перехватить общение с ардуиной в произвольный момент? Вы это себе как представляете? Может и ардуина тоже должен отслеживать, с кем общается и на свой стороне организовывать "неблокирующий доступ" к последовательной передаче что-ли? Бред какой-то.
Я вообще-то рассматривал случай, когда скрипт общается с ардуиной единолично, лишь принимая от него данные и отправляя их далее в соответствии с некой схемой. Рассматривать вариант, когда доступ к ардуине может иметь, кто угодно в любое время, не считаю исполненным хоть какого нибудь смысла. Если требуется доступ к ардуине со стороны нескольких процессов, извольте организовать взаимодействие с неким демоном, который имеет монополию на общение с ардуиной и осуществляет необходимый арбитраж в плане доступа.
Цитата:
Поверте, админ в разработке ПО ниче не ...
Дадад! Прикладник-виндузятник для разработки системного ПО под никсы -- суть наше все. Самому-то не смешно? Вам же совершенно естественное построение юзерспейса по принципу "одна задача -- один процесс" с типичным взаимодействием между процессами видится не иначе, как "студенческий проект по изучению потоков". Вы про какую "разработку ПО" под никсы тут речь ведете с такими-то своеобразными представлениями?
Цитата:
Потому не будьте катигоричны и все наладится.
А где я в прошлый раз был категоричен, не напомните? Я лишь предлагал следовать все тому же канону "одна задача -- один процесс", а не избретать мега-супервайзер, где с помощю необъятного цикла и умопомрачительного количества свичей отслеживать все возможные ситуации во всех уголках системы исключительно с помощью неблокирующего доступа.
Вам бы не обо мне печалиться, а как-то самому наладить собственные представления о том, чем вы там собрались заниматься.
Цитата:
Знаете как выглядит статистика сервера с 500 активными потоками. Наверно догадвываетесь, 99% потоков waiting.
Какая-то странная хрень, не находите? Нет, чтобы одиним потоком, да в неблокирующем доступе всем рулить. Вы не знаете, чего это они?
Аппач вон, непостижимая в этом смысле софтина, вообще норовит форкнуться от каждого чиха, плодя процессы-копии самого себя. Это при том, что каждая копия сама по себе рулит целой кучей потоков. Студенты наверное писали, сами мало понимая, что делают. Изучали, видимо, эти, как их там, а, вот, потоки. Ага.
Насчет "лучше" -- это же очевидно -- решить задачу более простым способом, затратив меньше усилий. Для задач типа "принял данные из порта и пробросил в сеть", перл рвет си, просто на молекулы.
Присоединяюсь, есть программа DX cluster, написана на перле, разбор строк из компорта и отправка в базу данных, лучше перла с этим пока еще ничто не справляется )))
Работа с компортом там как раз основное
Ну допустим мой #350 в 3 раза меньше букв чем ваш #351 ;). В этом просто убедится.
Logik пишет:
Я на ваши вопросы ответил, Ваша очередь не игнорить мои.
// прочтите внимательно формулировку "цикл естественным образом завершается"...
В опубликованом куске кода вслед за завершением цикла завершается процесс, клиент получавший данные перестает их получать даже после востановление передачи данных с ардуино. Это и называется крах серверного приложения. Ардуино данные выдает, клиент их не получает.
//То, что я не изобразил в тексте скрипта отслеживание доступности последовательного порта с ардуиной не говорит о том, что это невозможно в принципе.
))) Будем обсуждать преимущества кода доступного к написанию в принципе?
//Если вы испытываете сомнения, вот вам недостающее слежение
Разслабтесь, оно мне и нахер не надо. А Вы его тестировали перед публикацией?
//Логика скрипта проста...
Да. Вечный цикл, без контроля ошибок с возможностю корректного завершения только килянием процесса. За такой код джуниору пару раз дадут по рукам, а если снова такое напишет то выгонят нафиг. Печалька. Или мне снова за вас чего придумать должно?
///Я вот не пойму, такую простую конструкцию, что, так сложно представить
)) Сново клоунада. Обсуждается опубликованый код. Дискусии о фантазиях не ведутся.
// Почему я вынужден объяснять простейшие вещи?
Не вынуждены. Выход с форума справа вверху страницы.
// (см. стр. 84 и 102 ) при малейших затыках с этим самым сокетом
Смотрю. Это не малейщие затык, это критическая ошибка. Пытаемся открыть серверный сокет, системный вызов вернул ошибку, открыть сокет не удалось (типичное - ктото уже открыл его, например второй экземпляр этого кода). Дальнейшая работа безсмыслена, клиент к нам не прийдет никак. Завершаемся с выводом кода ошибки. Стандартное поведение любого сервера. Вторая аналогичная, но при акцепте клиента. Вас не устраивает, что два сервера на одном порту не уживается и второй при этом отказывается запускатся?
///и есть вдохновлящий образец надежного серверного приложения.
Да. Дай бог Вам такому научится, но видно не дано, иначе с Вашей тягой к програмированию вы бы 10 лет в админах не сидели.
Цитата:
Я там выше ссылался, но разумно ограничится обсуждением функции GetArduinoStr исходя из того что она в софте не одна и не должна мешать остальному
///Остальному чему?
Остальным компонентам программы, два поста выше перечислял, повторять не вижу смысла..
///Не мешать кому-то другомму перехватить общение с ардуиной в произвольный момент? Вы это себе как представляете? Может и ардуина тоже должен отслеживать, с кем общается и на свой стороне организовывать "неблокирующий доступ" к последовательной передаче что-ли? Бред какой-то.
Вы правы. Это Ваш бред.
//Я вообще-то рассматривал случай, когда скрипт общается...
Ну и это вобщем тоже бред. Ссылки на то, чем я вас натолкнул на идею доступа к ардуино из нескольких процессов нету. Будем считать это Вам Голоса В Голове нашептали. Я с клиникой не спорю. А сам а идею - ну пусть лстается идеей, ни да, ни нет, возмрожно если будет нужно, но не сейчас.
Цитата:
Поверте, админ в разработке ПО ниче не ...
///Дадад! Прикладник-виндузятник для разработки системного ПО под никсы -- суть наше все. Самому-то не смешно?
Нет. Не смешно. Немного забавно, когда админ себя разрабом мнит (Сортировку пузырьком освоили? А перестановкой? или зачем, sort хватает?) и пытается всему миру расказать как код писать. Не более. Си - он кросплатформенній, написаный код будет работать что под виндой что под линухой.
//Вам же совершенно естественное построение юзерспейса по принципу "одна задача -- один процесс".
Если считать, что задача это обслуживание вэб клиента (клиентов) - то возможно. Но клиенту нужны данны не только с USB но и с GPIO. И все это в одном процессе, плюс протокол разумеется. Но насамом деле все много сложней.
/// типичным взаимодействием между процессами видится не иначе, как "студенческий проект по изучению потоков".
Ага . Это когда задачу типа a+b=c решают так: создаем процеессы источники данных a и b, они по пайпу передают даные в процесс сумирования, который ожидает данные с процессов и после их поступления производит сумирование, результат передает в процесс присвоения c. Это как раз то, что Вы предлагаете! )))
///А где я в прошлый раз был категоричен, не напомните?
Напомню. Например "Данная "ваша прога" тут никогда ранее не упоминалась и не публиковалась"
//Я лишь предлагал следовать все тому же канону "одна задача -- один процесс"
В вашеи понимании задача - это то, что является только малой частью от требуемого. Дробить и порождать десятки процессов для одного обслуживания - тупик. Это не проще и хуже по всем параметрам, так не пишут нормальный софт. Откройте хотяб ворд. Один процесс, или один процесс на один документ. Но не процесс на каждый пункт подменю. Точка. Тут нечего обсуждать.
/// Я лишь предлагал следовать все тому же канону "одна задача -- один процесс", а не избретать мега-супервайзер,
ИТ индустрия считает иначе, я тоже, боюсь мнения админа с десятилетним стажем недостаточно чтоб переубедить сообщество разрабов. А оно удачно сформулировано в принципе KISS а значить если нет аргументированой необходимости разбиения на несколько процессов - то делать один процесс. Знаю перл, не знаю Си - не аргумент, берем другого чела. Что может быть аргументом: полная независимость процессов, например блокнот и паинт - разные процессы; разные требования к процессорному времени - приоритеты разные например скринсервер и медиаплеер; необходимость строгой изоляции из-за потенциальной опасности, например код клиента выполняется в процессе, а он может быть опасным и т.д.
Понимаете, профи делает выбор осмыслено, а делитант - ограничен своими слабыми знаниями, и начинает вгонять задачу в них не видя других путей и руководствуясь сакральными фразами типа "одна задача -- один процесс". Или обезяничают - апачи так, значить и калькулятор писать также. Увы.
Цитата:
Знаете как выглядит статистика сервера с 500 активными потоками. Наверно догадвываетесь, 99% потоков waiting.
///Какая-то странная хрень, не находите? Нет, чтобы одиним потоком, да в неблокирующем доступе всем рулить. Вы не знаете, чего это они?
Знаю конечно. Когда я пришел этому комуникационному серверу было уже около 10 лет, когда подошел к проджектменеджеру с таким же вопросом, получил ответ "так исторически сложилось" ))) Его первую версию написали студенты (ичары набрали кого попало подешевле), рассуждавшие так, как и Вы. Их потом уволили, когда выяснилось что больше 10-15 клиентов оно не держит (а выяснилось очень не сразу, клиенты "железяки", не веб, пока они появились). Но переписать с нуля уже было невозможно, т.к. такие трудозатраты никто не оплатит. Вот и "полировали", ну и железо подросло, вконце довели до 100-120 клиентов, четыре потока на клиента. Отакот.
Это я так подробно описал чтоб вы понимали, насколько мне значимы Ваши сказки и где я их видел.
Про скорость перла заодно изложу. Ориентируйтесь на
Это не проще и хуже по всем параметрам, так не пишут нормальный софт. Откройте хотяб ворд. Один процесс, или один процесс на один документ. Но не процесс на каждый пункт подменю. Точка. Тут нечего обсуждать.
Действительно. Обсуждать системное программирование под никсы на примере ворда? Сложно придумать более глупое занятие.
Цитата:
ИТ индустрия считает иначе,
Это она (индустрия) вам сама сказала или "ИТ индустрия" -- это вы и есть?
Цитата:
мнения админа с десятилетним стажем недостаточно чтоб переубедить сообщество разрабов.
И "сообщество разрабов" -- это тоже вы?
Вы не устали там вещать от имени неких многочисленных авторитетных инстанций с таким видом, будто имеете письменное разрешение оперделять их точку зрения везде, где это может потребоваться? Не хотите начать говорить за себя и от своего имени? В противном случае складывается ощущение, что вы сами внутренне не уверены в авторитности собственных слов и все время пытаетесь опираться на чужой авторитет, правда, не имея к тому никаких возможностей. Глуповато выглядит.
Цитата:
А оно удачно сформулировано в принципе KISS
Ой, как неудачно вы сюда это приперли. Перепишите скрипты из сообщений 342-343 на своем Си и узрейте, к чему можно будет отнести KIS, а к чему оставшуюся S. Одной из причин существования скриптовых языков и является этот самый KISS, где вызовом единственного оператора может быть охвачен функционал, достижимый лишь с помощью нескольких страниц кода на традиционных языках программирования, типа Си.
Цитата:
Понимаете, профи делает выбор осмыслено, а делитант - ограничен своими слабыми знаниями,
Вы про свои взаимоотношения с линухом? Мне вообще непонятно, насколько неумеренным апломбом надо обладать, чтобы едва начав знакомство с линуксом не стесняться в категоричной форме поучать тех, кто в теме несколько дольше и немного глубже.
Цитата:
Знаю конечно. Когда я пришел этому комуникационному серверу было уже около 10 лет, когда подошел к проджектменеджеру с таким же вопросом, получил ответ "так исторически сложилось" ))) Его первую версию написали студенты (ичары набрали кого попало подешевле),
Пример ни о чем. Ваши слова невозможно проверить. Вы можете бесконечно черпать оттуда любые удобные вам доказательства, независимо от того, существут они там на самом деле или нет.
Теперь ознакомьтесь с контр-аргументом, реальность которого, в отличии от ваших россказней, легко проверить любому желающему. Берем любой линукс и выполяем команду top. В верхней строке видим что-то типа "Tasks: 126 total, 1 running, 125 sleeping, 0 stopped, 0 zombie". Убунту (в моем случае) тоже студенты писали, которых мгновенно уволили, но исправить было уже ничего нельзя, ибо "так исторически сложилось"? Или может есть какая-то другая причина?
Цитата:
Про скорость перла заодно изложу. Ориентируйтесь на
Язык
Java
Java -server
C++
C++, -O2
PHP
Python 2.6
Python 3.1
Perl 5.8
Ruby 1.8
Ruby 1.9(?)
Время исполнения, сек
5,3
2,8
8,5
2,6
62
91
145
91
207
~30
Производительность, %
160
303
100
327
14
9
6
9
4.11
28
Как видите 91/2,6=35. Перл тупей в 35 раз.
Не вижу. В клетке "Время исполнения" для Perl 5.8 пусто. Нельзя исключать, что кто-то действительно тупей в 35 раз (а то и больше), но не факт, что это как-то относится к перлу. В принципе на несуразность самого такого тестирования в комментариях автору материала изрядно попеняли, но персонажам, чти аналитические способности видимо не простираются дальше суждений "327 больше 9", такие таблички, должно быть, нравятся.
Цитата:
Не удивительно, схватку компилятор против интерпретатора легко прогнозировать.
Потрудитесь ответить на вопрос, кому могут потребоваться эти интерпретаторы, если результаты схватки столь очевидны, имеют решающее значение и вообще все так просто?
Обсуждать системное программирование под никсы на примере ворда?
Какие нафиг никсы. Под них даже софта общеизвесного нет чтоб пример привести.
a5021 пишет:
Цитата:
мнения админа с десятилетним стажем недостаточно чтоб переубедить сообщество разрабов.
И "сообщество разрабов" -- это тоже вы?
Отчасти. Но Вы к ним точно не относитесь.
Цитата:
А оно удачно сформулировано в принципе KISS
a5021 пишет:
Ой, как неудачно вы сюда это приперли. Перепишите скрипты из сообщений 342-343..
Щас все кину и буду недоделки смотреть.. принцип KISS определяет что нефиг процессы плодить если решается все одним.
a5021 пишет:
Цитата:
Понимаете, профи делает выбор осмыслено, а делитант - ограничен своими слабыми знаниями,
Вы про свои взаимоотношения с линухом? Мне вообще непонятно
Значить не поняли ниче. Ну и забейте, фиг сним, разработка - не ваше. Я вам не первый раз пишу. Больше тратить время на просветление админов не буду. Пишите на перле.
a5021 пишет:
Цитата:
Знаю конечно. Когда я пришел этому комуникационному серверу было уже около 10 лет, когда подошел к проджектменеджеру с таким же вопросом, получил ответ "так исторически сложилось" ))) Его первую версию написали студенты (ичары набрали кого попало подешевле),
Пример ни о чем. Ваши слова невозможно проверить. Вы можете бесконечно черпать оттуда любые удобные вам доказательства, независимо от того, существут они там на самом деле или нет.
Во первых, это не пример а ответ на Ваши вопросы "Какая-то странная хрень, не находите? Нет, чтобы одиним потоком, да в неблокирующем доступе всем рулить. Вы не знаете, чего это они?" Во вторых - так можеш не верить, это твои личные тараканы, я не ты чтоб в лгать.
a5021 пишет:
Теперь ознакомьтесь с контр-аргументом, реальность которого, в отличии от ваших россказней, легко проверить любому желающему. Берем любой линукс и выполяем команду top. В верхней строке видим что-то типа "Tasks: 126 total, 1 running, 125 sleeping, 0 stopped, 0 zombie". Убунту (в моем случае) тоже студенты писали, которых мгновенно уволили, но исправить было уже ничего нельзя, ибо "так исторически сложилось"? Или может есть какая-то другая причина?
Я уже излагал основания для создания отдельных процессов, очевидно они в этих случаях есть. Читай выше.
a5021 пишет:
Цитата:
Про скорость перла заодно изложу. Ориентируйтесь на
Язык
Java
Java -server
C++
C++, -O2
PHP
Python 2.6
Python 3.1
Perl 5.8
Ruby 1.8
Ruby 1.9(?)
Время исполнения, сек
5,3
2,8
8,5
2,6
62
91
145
91
207
~30
Производительность, %
160
303
100
327
14
9
6
9
4.11
28
Как видите 91/2,6=35. Перл тупей в 35 раз.
Не вижу. В клетке "Время исполнения" для Perl 5.8 пусто.
))) Для альтернативно сообразительных там ниже есть не "сехавшее" значение в процентах 327/9=36. Почему 36 а не 35 - разясняю (я уже понял уровень одаренности опонента, потому разжую), ошибки округления. При подсчете процентов дробные части были отброшены. Отбрасывают их по причине не высокой их важности в данном случае и ограниченой точности измерений.
a5021 пишет:
Нельзя исключать, что кто-то действительно тупей в 35 раз
Так я уже вижу кто, разжевую до самого. Серезных аргументов против приведеных в таблице значений нет?
a5021 пишет:
Цитата:
Не удивительно, схватку компилятор против интерпретатора легко прогнозировать.
Потрудитесь ответить на вопрос, кому могут потребоваться эти интерпретаторы, если результаты схватки столь очевидны и все так просто?
Отвечаю. Могут потребоваться тем, кто в силу умственных особенностей не смог освоить более сложные компиляторы. Так же они могут найти применение, если применение компиляторов в данных, конкретных условиях затруднено (неизвестная платформа, небезопасный источник кода). Типичные ситуации обучение азам програмирования - Бейсик, для пользователей ПК с целью облегчения их сугубо персональных рутинных действий по работе в ОС Shell или с данными perl (всего лиш Practical Extraction and Report Language (практический язык для извлечения данных и составления отчетов)), для выполнения простых действий на заведомо неизвестной платформе клиента JS или сервера TSQL,PL/SQL, DSQL, PHP и пр.
На этом я завершаю ликбез неадекватного админа, т.к. нахожу занятие безполезным и достаточно флудным.
К тому же сильно ушедшего в сторону от обсуждения преимущества тормозного, блокирующенго, не тестированого и корректируемого по ходу гомнокода на perl, над предложеннной функцией на чистом Си, демонстрирующе стабильную, быструю работу на протяжении многих суток.
На последующие вопросы ответ сразу в гугле ищите. Каждому - свое.
Какие нафиг никсы. Под них даже софта общеизвесного нет чтоб пример привести.
Я правильно понял, что и "общеизвестность" вы исключительно своим величайшим повелением определяете? Типа, сказали "нет", а там, даже если был и какой общеизвестный юниксовский софт, то он тут же мгновенно и бесследно исчез? Видимо вы и сами истово веруете в это.
Чем горбатого лепить, вспомните хотя бы самбу -- файловый сервер, который существует для умопомрачительного количества платформ и разннобразных юниксовых клонов, начиная от Solaris, HP UX, IBM AIX, OpenVMS и заканчивая многочисленными BSD. Не, никода не слышали? Хотя, вы то, как раз, могли и не слышать. От ваших компетенций можно и не такого ожидать. Это при том, что самба -- популяный софт для реализации файлового сервера и на обсуждаемой здесь Orange Pi. Такая вот общенеизвестность вырисовывается.
Ну не слышали, так не слышали. Это самая меньшая неприятность, которая может быть связана для вас с данным вопросом. Все остальное хуже. Да и не удалось бы вам самбу в пример привести, т.к. самба демонстрирует подходы в софтостроении, прямо-противоположные вашим представлениям и уверениям, как оно якобы должно быть.
Функционал самбы реализуется несколькими многопоточными процессами, которые охотно форкаются при возрастании нагрузки, плодя тем самым процессы-клоны самих себя. Удивительно, но, как и в случае с апачем, вместо того, чтобы одним тредом и одним процессом неблокирующим образом изящно и непринужденно перемолачивать всю нагрузку, разработчикам за каким-то хреном потребовались кучи тредов, процессов со сложным механизмом синхронизации между ними. Видимо эти олухи тоже не в курсе о существовании передовых трендов в "IT индустрии", единодушного мнения "сообщества разработчиков" и вашего персонального учения "Линукc и MS Word: единство во всем". Как то уж так получается, что все они делают наоборот от вами сказанного.
В прошлом своем сообщении вы неизвестно с какого бодуна брякнули:
Цитата:
Вечный цикл, без контроля ошибок с возможностю корректного завершения только килянием процесса. За такой код джуниору пару раз дадут по рукам, а если снова такое напишет то выгонят нафиг.
Поздравьте себя с очередной ахинеей и сверхточным попаданием пальцем в небо. Уж не знаю, приятно ли вам будет это узнать, но демоны самбы тоже понимают только килл. И хотя в убунте этот килл запрятан через вызов нескольких скриптов и отдельного демона start-stop, но иногда можно выдеть, как его действия случайно прорываются наружу.
Цитата:
sudo /etc/init.d/samba restart
* Stopping Samba daemons
start-stop-daemon: warning: failed to kill 2990: No such process
[ OK ]
* Starting Samba daemons [ OK ]
Здесь видно, как стартстоп-демон пытлся убить самбу дважды, т.к. ему показалось, что с первого раза не вышло. Повторый килл, правда, прилетел по пустому месту, т.к. самба к тому времени уже сама отошла в мир иной.
На некоторых платформах к услугам специально обученных киллеров не прибегают, а просто советуют заканчивать работу самбы так:
Цитата:
If you need to stop the smbd or nmbd daemon, you can use the following commands:
sudo kill <smbd PID>
sudo kill <nmbd PID>
Отсюда получается, что либо тамошним джуниорам по рукам бить некому, либо вы отчаянно бредите в обычной своей манере.
Цитата:
a5021 пишет:
И "сообщество разрабов" -- это тоже вы?
Отчасти. Но Вы к ним точно не относитесь.
От возглавляемого вами "сообщества разрабов", похоже, нужно только бежать, не разбирая дороги. Не приведи Господь кому встретить. Одним бредом могут завалить так, что потом хрен выберешься.
Цитата:
принцип KISS определяет что нефиг процессы плодить если решается все одним.
Апачам расскажите или самбам, какие грандиозные идеи вас посещают. Там ничего не знают про поцелуи в вашем исполнении.
Цитата:
Значить не поняли ниче. Ну и забейте, фиг сним, разработка - не ваше.
Так я никогда и не спорил, что разработка по вашим рецептам это мое. По моим предположения это вообще вряд ли может оказаться хоть чьим нибудь. Леденящие кровь фантазии прикладного программиста под виндовс о системном программировании в линуксе -- это какой-то Хичкок в переложении для IT.
Цитата:
Я вам не первый раз пишу. Больше тратить время на просветление админов не буду. Пишите на перле.
Так вы еще и просветитель админов по соместительству? Офигеть! Несть числа вашим талантам и видимо нет такой области человеческой деятельности, где не нашлось бы им блистательного применения.
Касательно писания на перле, спасибо за ваше великодушное дозволение. Я пожалуй продолжу использовать его в тех областях, где это показало свою эффективность и там где я располагаю необходимыми скиллами и икспириенсами.
Цитата:
Я уже излагал основания для создания отдельных процессов, очевидно они в этих случаях есть. Читай выше.
"основания для создания отдельных процессов" в видении убежденного виндузятника, взявшегося изучать линукс? Очередной триллер, полагаю?
Цитата:
Почему 36 а не 35 - разясняю (я уже понял уровень одаренности опонента, потому разжую), ошибки округления.
Основные ошибки округления, причем до нескольких знаков перед запятой, случились в голове проводившего тестирование, а может и у тех, кто с результатами оного принялся носиться, как с писанной торбой. В перле переменные по умолчанию имеют формат числа с плавающей точкой и разрядность от двадцати четырех до восьмидесяти восьми бит. Нужно быть полным дебилом, чтобы крутить циклы на скорость не убрав плавающую точку в итераторе. Горемыке в коментариях на все лады твердят, чтобы использовал стандартную перловскую директиву USE INTEGER, но болезному, в силу неграмотности ли или по причине тяжелой душевной болезни всюду грязные хаки мерещатся. Нахватал минусов, но веры своей идиотической не предал.
Проводить таким образом тестирование языков програмирования, это все равно, как сравнивать эффективность лобзика и бензопилы на выпиливании фигурок из фанеры. Хрен бы еще с ним, что выпиливание из фанеры не совсем подходящая для бензопилы задача, так дубиноголовое посчитало, что заправлять бензин является недопустимым хаком. Типа, раз в лобзик нельзя залить бензин, то условия должны быть равными для всех инстументов. Так и выпиливал болезный выключенной безнзопилой, защитного чехла не снимая. Полученные цифры, собственно, о данном подвиге и свидетельствуют.
Теперь с этим памятником человеческому идиотизму, как с иконой, вы решили подступиться к малопонятной для вас теме? Валяйте. Одной горбухой больше, одной меньше, для вас это уже ни на чем не скажется.
Цитата:
Серезных аргументов против приведеных в таблице значений нет?
Какие могут быть серьезные аргументы при таких раскладах? Сравнивать надплатформенный перл с оптимизированным для конкретной платформы копилированным кодом на Си ? Мож еще результаты для жопы с пальцем в табличку надо было записать? Нахожу, что последнее было бы достойным украшением и идеально дополняло бы достоверность приведенных там цифр, ничуть не нарушая логики тестирования вцелом.
Напомню просветителям админов, что область пременения перла -- это обработка текстовых данных с удобными методами манимуляции строками, форматами и видами представления, а так же элегантными способами преобразования данных и выполнения вычислений на лету. Для того, чтобы заставить перл выступать на поле для Си не требуется ни сил, ни ума. Собственно, это и продемонстрировал исполнитель тестов. А вот чтобы сравнить си и перл на поле для перла, можно запросто обосраться еще на этапе подготовки исходника для си и ни до какого тестирования так никогда и не добраться.
Я ведь с самого начала спросил, для какой из обсуждаемых здесь задач быстродействия перла недостаточно. Вы в своей обычной манере впилили куда-то в сторону, понеся очередную ахинею мимо кассы, мол чем больше скорость, тем лучше, не уточняя при этом о скорости чего идет собственно речь. Теперь, правда выяснилось, что более всего вас впечатляет скорость кручения двух вложенных циклов с одним арифметическим действием внутри. Непостижимой ценности прикладная задача оказыватся. Еще и просите коментариев к полученным совершенно ракообразным способам цифрам, характеризующим неизвестно что. Не, это ваше поприще, вам на нем и развлекаться.
Цитата:
a5021 пишет:
Потрудитесь ответить на вопрос, кому могут потребоваться эти интерпретаторы, если результаты схватки столь очевидны и все так просто?
Отвечаю. Могут потребоваться тем, кто в силу умственных особенностей не смог освоить более сложные компиляторы.
Отличный ответ. По-моему к данной фразе и добавлять ничего не надо. Так и запишем: Perl, Python и Ruby -- вотчина недоумков, не способных совладать с компилятором. Туда же верно относится и PHP c джаваскриптом, а так же еще кучка технологий помельче. Остается вас только поздравить с таким неожиданны открытием.
Цитата:
обсуждения преимущества тормозного
Насчет тормозного -- чушь и бред. Для парсинга выхлопа ардуины на скорости 115200 бод, нехватки производительности решений на перле представить решительно не могу. Я много чего разбирал из под ардуины перлом и не припомню ни единого случая проблем ни со скоростью, ни производительностью. Ну а чего вам там явилось в воспаленном воображении, да на фоне того, что с перлом в данном контексте вы вообще дела никогда не имели, как-то и не интересно совсем. Ну высасывает всякие небылицы из пальца заблудший прикладник из виндовс, чего ж в этом такого. Занятие хоть и необычное, но понять можно. Значит какой-то кураж от этого испытывает и ему от собственных фантазий хорошо делается. Остается только порадоваться, что кому-то может хорошо делаться даже от такого малопривлекательного занятия.
Цитата:
блокирующенго
Неблокирующий доступ не приобретает дополнительной ценности только от того, что вам вздумалось из одного громадного цикла пытаться ухвать в одну руку и сиську и письку по способу MS Word-a. Получение данных от ардуины возможно разными путями и если вы воспользовались одним, то это не делает автоматически все остальные заведомо проигрышными. У меня вообще закрадываются подозрение, что сей "неблокирующий" является для вас своего рода тотемным животным, трепет перед которым проистекает из неких событий, когда-то вы однажды сильно огребли от него. Уж не знаю, насколько такие события взаправду могли иметь место, но противоествественное благоговение именно перед неблокирующим доступом и упорное его выпячивание, именно к таким мыслям активно подталкивает.
Цитата:
не тестированого
Сон у вас такой был что-ли? Я вообще-то сдернул его из куска рабочего скрипта, убрав лишнее и упростив для понимания. Если навязчивые сомнения одолевают, возьмите да запустите. Линь у вас под рукой имеется, если нет перла в дистрибутиве, доставляется с репов за минуту. Какую засаду с нетестированностью вы тут изобразить тужитесь?
Цитата:
и корректируемого по ходу гомнокода на perl
Какого еще "корректируемого по ходу" ? Не устали там бредом фонтанировать? Код остался в неизменном виде в сообщении №343, что может в любой момент наблюдать всякий желающий. То, что я приводил дополнительные иллюстрации того, что можно предпринять на случай, если возникнет необходимость отключать и подключать ардуину в процессе работы скрипта, не является корректированием по ходу. Если позабыли, то я лишь предлагал возможный вариант, полностью отсекающий ваши дальнейшие фантазии на предмет "что будет если ардуинку вынути и сново воткнуть". Без исполнения идиотских действий вида "вынути и сново воткнуть" данный функционал никак не может быть востребован, в реализации не нуждается и никакой "правкой по ходу" быть не может по определению. Все, что вы наплели, является неким словесным шумом, неизвестно к чему относящимся.
Цитата:
функцией на чистом Си, демонстрирующе стабильную, быструю работу на протяжении многих суток.
Насколько быструю? Очень быструю или еще быстрее? Вы с самого начала упираете на некие характеристики, полезные свойства которых оценить чрезвычайно затруднительно. То невыразимо-самоценный неблокирующий доступ, то восхитительно-быструю работу неизвестно чего. О чем вообще эта песня?
PS. Скажите, а вот все эти "чистые си" и "и не смог освоить компиляторы" это к вам не от одного странного товарища из "Ищу исполнителя" пристало? Больно уж дерьмецом повелителя подмосковных фонтанов повеяло.
Для непосвященных - краткое содержание последней серии комедийного сериала от a5021
1. Перл такой же быстрый, даже немного быстрее. Все что в тестах - дерьмо. Весь мир заблуждается. Админ сказал, он знает, но цифр и ссылок на чужие цифры у него нет. (Вот только по недоразумению сам интерпретатор перла как и остальной линукс с самбами вместе на Си написа а не наоборот.)
2. Но это быстродействие вобще никому не надо, даже мешает. (Наверно кофе не попеш спокойно)
3. Один процесс занимает ресурсов больше чем 10. Потому нужно чтоб их было много, так у самбы. Кстати про её известность - знают её только линуксятники а их 5%, на винде поддержка протокола SMB родная системная лет 25 как уже , чистый виндусятник как правило даже слова самба не знает, кроме как танца. Очень известная прога. )))
4. Писать один процесс намного дольше чем 10. Их взвимодействие - ничто. Они сами узнают когда от них нужны будут данные, и никогда не мешают друг другу, при этом еще и не ждут и не блокируют. Отэто заряд для взрыва мозга))))
5. Особенно долго этот процесс писать на Си админу, который знает perl. Разраб, который знает и perl и Си и уже все написал и выложил код страницу назад конечно в ох.е от этой логики, но он в никсах не шарит;)
6. Горячее подключение к USB - ересь, кто ж в здравом уме в разем под электричеством полезет чего включать. Соответственно поддержка этого в софте вредна. Но можна дописать если нужно вечным циклом, как он завершится когда будет нужно - то не важно потому что у самбы иногда при килянии какойто глюк и она чегото пишет 8)))
ПС. Упоротый линуксоит - таки диагноз, предлагаю сокращать ЛГМ - линукс головного мозга. Но Вы a5021 таки не нервничайте, дайте санитарам хоть на праздник отдохнуть.
так у самбы. Кстати про её известность - знают её только линуксятники а их 5%,
Не утомились метаться в разные стороны и голосить ни о чем? Сначала стенали, что совсем нет "общеизвестного софта" под никсы, а когда выяснилось, что есть, то не меняя тональности продолжили, будто это все равно "ни о чем", так как линуксятников только 5%. Насколько я успел понять, для вас и не особо важно о чем конкретно устраивать ор. Главное драйв и градус экспрессии.
Цитата:
Очень известная прога.
Тем не менее, про ее существование вам известно, а еще сообщение назад вы на голубом глазу плели, будно никакого общеизвестного софта под никсы нет совсем. Забыли? Или в обычной своей манере продолжите извиваться с видом, будто ничего такого никогда и небыло? Вижу, что второе. Ну извивайтесь.
Метод произведения бури в стакане прост: завалить опонента ворохом чепухи, сочиненными на ходу аргументами, ссылками низвестно на что и бесконечными передергиваниями. Навал чепухи должен быть мощным, постоянным и никогда не прекращаться. Это создает у трололо иллюзию, что он достойно дерится в разговоре, в котором мало что понимает, а то и вовсе, сам себя уговорит, что вообще одерживает победу в споре. Все бы ничего, если бы со стороны это не выглядело, как полнейший угар.
Я вас не в первый раз прошу указать, где, по вашему мнению, для обсуждаемых здесь задач производительности перла недостаточно. В ответ только бесконечные прыжки в сторону и фиглярствования вида "Перл такой же быстрый, даже немного быстрее" или натужный сарказм "это быстродействие вобще никому не надо, даже мешает". Ничего конкретного, ни одного намека на разговор по существу. Один непрекращающийся вал чепухи.
О чем мне тут с вами говорить, если вы не способны отвечать даже на самые простые вопросы, резонно возникающие после ваших же удивительных утверждений? У вас нет позиции. Только ор и непрекращающаяся генерация ахинеи.
Цитата:
Особенно долго этот процесс писать на Си админу, который знает perl.
Да похрен, по большому счету, на чем писать. Если вы клоните к тому, что мой выбор перла проистекает исключительно из невозможности писать на Си, то это не более, чем очередной ваш бред. Просто в отличие от вас, я прекрасно понимаю, что для подобного вида задач, там где я управлюсь десятком строк на перле, на си придется писать полтора десятка страниц. Вы с большим пафосом рассказывали про KISS, но когда именно благодаря этому принципу я делаю выбор инструмента, вам не приходит ничего в голову, кроме как забиться в истерике про то, какой перл, якобы, тормоз.
Цитата:
Разраб, который знает и perl
После всего того бреда, что вы успели тут нагородить, испытываю серьезные сомнения, что вы понимаете перл сколь-нибудь глубже вопроса использования си-подобного синтаксиса си-образным же способом. Тобишь, для вас перл -- это тот же Си, только медленнее. Вот и все знания. Чего вы можете там насравнивать с таких позиций, даже предполагать не стану.
Цитата:
6. Горячее подключение к USB - ересь
Остановитесь. Вы делаете уже третий заход на одну и ту же тему. Два предыдущих для вас закончились неудачно, но вы не оставляете попыток "переговорить" опонента. В лоб не получается, пытаетесь бочком. Мне более не интересно это обсуждать, а про то, как отрабатывается "горячее подключение" на перле я уже рассказал и проиллюстрировал кодом. Вам там что-то непонятно или вас, как обычно, интересует совсем другое?
Свои утлые виндузовые представления, о том, как должны завершаться процессы в юниксе можете оставить при себе. Килл в линуксе считается полностью законным способом завершения любой программы и любого процесса, какой бы дичью лично вам это ни казалось.
Конкретно меня вы задеть не в состоянии и мне глубоко наплевать на все ваши личные выпады в мой адрес. "Упоротый линуксоит" ? Ничего не имею против, если конкретно вас преследуют именно такого рода галлюцинации. Мне вполне комфортно, когда я пользуюсь разными средствами (в т.ч. разработки), что под виндой, что под никсами и решаю нужные мне задачи, что там, что там. Вопросы противопоставления линя и винды меня не занимают. В сражении религиозных догматов принимать участия не испытываю потребности.
Атакуя меня персонально, вы скорее вызываете у меня приятные эмоции, т.к. тем самым расписываетесь в собственной беспомощности противостоять в разговоре по существу.
так у самбы. Кстати про её известность - знают её только линуксятники а их 5%,
.. нет "общеизвестного софта" под никсы, а когда выяснилось, что есть,
а 5% знают о нем - это общеизвестный?! Хм.. новый симптом ЛГМ.
a5021 пишет:
Тем не менее, про ее существование вам известно,
Потому как я знаю достаточно обе платформы, даже дипломом админа линукса могу подтвердить, если хош, но то звание - пустое место, потому я о нем даже не упоминаю как правило, это как первое место на утренике в детсаду, зачем о нем вспоминать достигнув иных уровней. Несерезное звание, и Вам им кичится не следовало бы. Но то ваш выбор. Это как работаю в министерстве.. дворником. Я разумеется админом ни часа не работал, так обучился потому как шара и чисто для себя, для кругозора ;) Кстати, а Вы высшее собираетесь закончить, или и так сойдет?
//Если вы клоните к тому, что мой выбор перла проистекает исключительно из невозможности писать на Си
Ага, только хуже, не в языке дело )) Мое описание возможностей ищите в #344 и считайте за ТЗ. Повторите на... да хоть на перле (зачем насиловать писать на неизвестном Вам языке, я гуманист, и Рождество к тому же) - продолжим диалог на равных.
// я прекрасно понимаю, что для подобного вида задач, там где я управлюсь десятком строк на перле, на си придется писать полтора десятка страниц.
Ну я управился в 50 строк ;) Это ли не показатель разницы в уровне. Нет, это просто капитуляция. Ладно, принимаю, токо ненадо больше "простынь" на три экрана, санитары нервничают. А на тормознутость перла объем Ваших постов не влияют. Это технический форум, словоблудие тут цены не имеет. 35 раз - значить 35 раз! Не согласны - аргументы, цифры, ссылки. Засерать форум своими высерами безсмыслено, это не доказательства.
//для вас перл -- это тот же Си, только медленнее.
Ну что вы! Перл намного противней! Как вобще Вам в голову пришло такое писать! На Си написано все! Все что упоминалось тут - винда, линукс, самба, апача, интерпретатор перла. А на перле что, кроме гомнокода некоторых админов? Как на нем, обработчик прерывания писать? Или драйвер? Даже на ту же ардуино хрен чего напишеш. Так безполезная отрыжка ИТ-прогресса, последная надежда умственно обездоленых айтишников или гуманитариев безневинных (понятно не в упрек им, их основной интерес совсем в другой области и для, к примеру биолога, умение перловку забабахать - весомо, как для меня бы инфузорию препарировать). Но претендовать на рассуждение о архитектуре софта на основе знания перла - ну утреник детсада, я там выше пояснял.
//Килл в линуксе считается полностью законным способом завершения любой программы и любого процесса
))) Ага. Только серверный сокет еще минуту зависает открытым, и повторно запустить сервак можна только после этого. Кому ты лажу гониш, админ. )))
//Атакуя меня персонально, вы скорее вызываете у меня приятные эмоции,
Господа, с кнопкой Oranga, кто разобрался? В инетах пишут, что она просто заведена на GPIO, однако на тех контактах что на раземе и что доступны из виринга и командой gpio её вроде нет. Кто получил с неё сигнал?
а 5% знают о нем - это общеизвестный?! Хм.. новый симптом ЛГМ.
Какие в баню 5% ? Вы совсем запутались в своих метаниях? Это не какие-то обезличенные 5 или 95%, а конкретно вы жаловались, что не существует "общеизвестного софта" и по этой причине именно вы не можете привести узнаваемый пример. Вы мне это объясняли, а не процентам неизвестно кого и неизвестно где. О чем вы опять бредите?
Цитата:
Потому как я знаю достаточно обе платформы,
Ага. Рассказывайте. То вы MS Word в линь тащите, т.к. другого примера привести не можете по причине отсутствие "общеизвестного софта", то "достаточно знаете обе платформы". Интересно, вы и вправду верите, что подобной галиматьей можно кого-нибудь развести?
Цитата:
Вам им кичится не следовало бы.
А где, говорите, вам пригрезилось, чтобы я этим кичился?
Цитата:
Кстати, а Вы высшее собираетесь закончить, или и так сойдет?
А вам, собственно, какое дело до моего образования? И почему только образование? Заходите уже сразу через национальность, материальное положение, социальный статус и политическую ориентацию. Для выкапывания аргументов, с последующим употреблением их в технических спорах, сии почвы для вас должны быть более благодатны.
Цитата:
Мое описание возможностей ищите в #344 и считайте за ТЗ. Повторите на... да хоть на перле (зачем насиловать писать на неизвестном Вам языке, я гуманист, и Рождество к тому же) - продолжим диалог на равных.
А мне это зачем, да на таких-то равных? Решать ваши задачи предложенным вами же ракообразным способом? Скажите, вы всех кроме себя идиотами считате?
Цитата:
// я прекрасно понимаю, что для подобного вида задач, там где я управлюсь десятком строк на перле, на си придется писать полтора десятка страниц.
Ну я управился в 50 строк ;)
Вам с какого перепугу примерещилось, что речь изначально шла именно о вашей задаче? Вы чего такое опять брякнули невпопад?
Цитата:
Это ли не показатель разницы в уровне.
Не раздувайтесь. MS Word, как образчик организации процессов в лине -- ваш уровень. Вы им уже ослепительно блеснули, теперь, правда, отмыться уже вряд ли сможете.
Цитата:
Это технический форум, гумонитарное словоблудие тут цены не имеет.
Сказал демагог, двумя абзацами ранее проявлявший необычный для вопросов обсуждаемых на технических форумах интерес к моей внефорумной биографии.
Цитата:
Ну что вы! Перл намного противней!
Не утруждайте себя. Ваши своеобразные представления о перле мне понятны.
Цитата:
))) Ага. Только серверный сокет еще минуту зависает открытым, и повторно запустить сервак можна только после этого. Кому ты лажу гониш, админ. )))
Извольте вкурить цитатку из мануала Апача:
Цитата:
In order to stop or restart the Apache HTTP Server, you must send a signal to the running httpd processes. There are two ways to send the signals. First, you can use the unix kill command to directly send signals to the processes.
а 5% знают о нем - это общеизвестный?! Хм.. новый симптом ЛГМ.
... вы жаловались, что не существует "общеизвестного софта" и по этой причине именно вы не можете привести узнаваемый пример.
Нда. Я действительно наблюдаю интересный факт. Проблема с софтом который бы:
1. Был общеизвестен и широко распостранен.
2. Был распостранен на обеих платформах.
Можна попытатся чего из браузеров вспомнить - так там IE>50% а самый популярный двухплатформенный хром токо 24 что для широко распостраненного маловато. С редакторами всех мастей - тоже понятно, вероятно OpenOfice претендовал бы на чтото, но его на рынке такой мизер. Хотя пожалуй наиболее подходящий - Adobe Acrobat, не уверен что о нем знают 80% пользователей ПК, но более 50% пожалуй да. Годится как пример однопроцессного распостраненного приложения. Что поменяется в рассуждениях от замены MS Word на Adobe Acrobat?
Цитата:
Кстати, а Вы высшее собираетесь закончить, или и так сойдет?
А вам, собственно, какое дело до моего образования?
Значить попал вопрос в цель. А дело вот в чем. "задача универа — дать определенный стиль мышления и умение находить информацию, воспитать критический подход к фактам и умение вести аргументированый диалог." Все то, чего у Вас нет. Вы занимаетесь базарной демагогией, вместо того, чтоб просто следующие вопросы и либо согласится, либо аргументировать хот чем либо весомым, бред пациента с ЛГМ - не аргумент, нужны цифры, ссылки, опыты, эксперименты.
Факты следующие.
1. Перл тормознутей. По имеющимся данным в 35 раз. Ссылка была выше.
2. Необходимость дробить приложение на много мелких процессов - вымысел. Существуют примеры успешных популярных однопроцесных приложений, в т.ч. и под линуксом. Под Виндой намного более, в следствии её большей популярности.
3. Приведеный Вами код на перле блокирующий, что исключает его применение в составе сложного приложения, выполняющего задачу удаленног (через веб) контроля всей специфической переферии и (GPIO, I2C, TCP и пр.) Что вынуждает перейти к многопроцесной архитектуре, и противоречит KISS. Вы какбы не отрицаете этот пункт.
4. Многопроцессная архитектура всегда более ресурсоемка и сложны в написании и отладке чем однопроцесная, в. т.ч. из-за необходимости синхронизации взаимодействия процессов. Расписано выше на примере многопроцесной организации простого действия.
5. Приведенный Вами код на перле не управляемый - завершение вечного цикла только только килянием, точка в которой оно произойдет случайна, что делает корректное завершение невозможным или затруднительным (см. ниже про апачу). Завершение по сторонней инициативе, сигнал с GPIO или команда от веб клиента невозможны.
6. Статус Вашего код не понятен. Вы утверждаете что я (не Вы - как автор кода, а почемуто я) должен "такую простую конструкцию, что, так сложно представить". И в другом месте "Я вообще-то сдернул его из куска рабочего скрипта". Внесите ясность, код с поддержкой горячего подключения тестировался?
7. Обемы исходного кода на перл и си соизмеримы. Мне символы считать лень. Хотите - посчитайте. Я принципиальной (раз в 3 и более) не вижу. Учитывая что в коде на перле напроч отсутствует контроль ошибок и сборка фрагментированых строк. Можна считат размеры приблизительно одинаковыми.
Исходя из пп.1-7 ответ на вопрос:
a5021 пишет:
Вам действительно видится, что предложенный код на Си чем-то лучше перловского
Таки да! И сильно.
Ах да, чуть не забыл.
a5021 пишет:
Так и хочется крикнуть всем этим апачевским мерзавцам: "Негодяи! Что же вы делаете?
Не надо кричать, вы не на базаре. Они апач не на перле, а на Си писали ))) Там завершение по килянию можна делать корректно обрабатывая сигналы. Потому пример в пользу Си.
ПС. И хватит этого базарного словоблудия, понимаю что "хочется крикнуть всем". Это от безсилия. Не надо. Пишите просто и по пунктам, с сылками, цифрами и т.д. Или не пишите. Но плодить флуд про самбу, апачу и пр. не надо.
Тут нужно говорить не о интересном факте, а скорее о интересной и крайне щекотливой ситуации. Для вас. Суть ее в том, что сморозив полную чушь, вы теперь с остервенением мечетесь в попытках дезавуировать ранее сказанное, заболтать тему и перевести стрелки, совершая дикие прыжки во все стороны одновременно. Выглядит зрелищно, но крайне комично.
Цитата:
Проблема с софтом
Завязывайте клоунаду устраивать. Мы оба прекрасно знаем, что произошло. Никакое количество словестного шума не покроет и не отменит ни этот ваш конфуз, ни все прочие глупости, которые вы на себя понацепляли. Вы напрасно тратите свои силы.
Цитата:
Значить попал вопрос в цель.
Единственное, куда вы все время попадаете с удивительной точностью -- это пальцем в небо. Не занимайтесь самообманом и не приписывайте себе незаслуженных достижений.
Цитата:
"задача универа — дать определенный стиль мышления и умение находить информацию, воспитать критический подход к фактам и умение вести аргументированый диалог."
Вообще-то, в той или иной формулировке данную "величайшую мудрость" озвучивают еще на организацонном собрании для поступивших на первый курс. Вы тут кем себя хотите изобразить, изрекая с важным видом вдрызг заезженные штампы?
Цитата:
Перл тормознутей. По имеющимся данным в 35 раз. Ссылка была выше.
И понеслось в сто первый раз опять по новой. И это не смотря, что я уже комментировал качество этих "35 раз", а так же настойчиво пытался выяснить, где вам не хватает производительности перла и как оная "тормознутось" отравляет ваше существование. Ответа небыло и нет. Вместо ответа вы вновь и вновь принимаетесь выкрикивать какие-то невразумительные агитки, нимало не понимая их сути. Далее говорить не о чем.
Цитата:
4. Многопроцессная архитектура всегда более ресурсоемка и сложны в написании и отладке чем однопроцесная,
Бред собачий. Разбив весь функционал по принципу "одна задача -- один процесс", легче и проще, что писать, что отлаживать уже хотя бы потому, что уменьшается число наблюдаемых состояний. Тут можно даже углядеть некую параллель со структурным программированием. Как там части кода, реализующие некий связанный набор действий, обединяются в отдельную функцию и изолируются от остальной программы, так и здесь происходит выделение обособленного функционала в отдельный модуль или процесс.
Большие у вас проблемы вызывает вызов отдельных функций в программе и обмен параметрами между ними? Теперь представьте, что кто-то вам начинает задвигать, что дробление на функции это так сложно, запутано и ресурсоемко, что аж жуть. Дичь? Дичь. А ведь именно так вы выглядите в моих глазах, когда несете здесь пургу точно такого же свойства про неподъемные издержки "многопроцессной архитектуры". Как-то даже странно, что вы этого не понимаете и столь глупо подставлятесь в простой ситуации.
Теперь о разработке в подходе с изолированными процессами. Конкретный пример: скрипт в сообщении 343 выполняет простую фукнцию -- принимает данные от ардуины и переправляет их некоторому кругу получателей. В примере с целью упрощения не показана обработка принтых данных, но она туда легко может быть встроена, причем любой сложности. Получателями при этом могут быть системные сервисы, другие модули, удаленные ресурсы и т.п. Скрипт легко масштабируется путем добавления блоков с типовым функционалом. Например, если возникает потребность выгрузки в облако или популярный сервис в и интернете, то достаточно добавить несколько незамысловатых строк, чтобы оно начало работать тут же. Это о простоте разработки. Да и отладки, пожалуй.
Чтобы далеко не ходить, вот кусок кода на перле из реально работающего (отдельно уточняю, а то у вас опять когнитивные проблемы насчет работоспособности кода возникнут) с середины прошлого года похожего скрипта:
my $ua = LWP::UserAgent->new;
my $ubi_url = 'http://things.ubidots.com/api/v1.6/devices/ws_data/?token=--private--;
my $ubi_req = HTTP::Request->new(POST=>$ubi_url);
$ubi_req->content_type('application/json');
my $ubi_text = '{"TEMPERATURE_1":"'.$temp1.'", "PRESSURE":'.$pressure.', "TEMPERATURE_2":"'.$temp2.'", "HUMIDITY":'.$humidity.', "ILLUMINANCE":'.$iluminance.', "DEVICE_TEMP":'.$temp3.', "VCC":"'.$vcc.'"}';
$ubi_req->content("$ubi_text");
my $ubi_res = $ua->request($ubi_req);
if ($ubi_res->is_success) {
print "UB_OK\n";
} else {
print "UB_ERR\n";
}
Десяток строк и данные с ардуины в формате json отправляются на популярный IoT сервис UBIDOTS. Легко, просто и наглядно.
Оттачивая функционал модуля, мне не нужно знать, чем у меня в это время занимается GPIO, ADC и всякая прочая периферия, т.к. за это отвечают другие автономные модули или системные процессы. Чего бы я не наворотил в модуле приема данных от ардуины, я всегда могу быть спокоен, что остальные модули у меня не испытывают никаких проблем с нормальным выполнением своих задач.
Когда мне вздумается запилить дополнительный функционал для другой периферии, я стану кромсать уже другой модуль, совершенно не задумываясь, как при этом будет себя чувствовать, скажем, модуль связи с ардуиной.
При вашей же "неблокирующей" схеме, запиливая новый функционал (разработка), каждый раз придется делать врезку в громадных размеров главный цикл, расчесывая репу, как бы не сломать чего или не заблокировать. Любая добавка даже небольших кусочков кода таким способом, привносит угрозу нарушения работоспособности управляющей программы, с выносом к чертовой бабушке функционала устройства целиком. На одной только проверке, не порушилось ли что, трудозатраты на разработку и отладку возрастают многократно.
Наверное откуда-то оттуда ростут ноги у ситуации, когда не справившись с веб-сокетом, барышня с воплями бросается в пруд, яростно отбрасывая в разные стороны сандалии и на лету посылая этот гребанный мир в едреня. "Хрен-то с ними, с этими долбанными GPIO и сервами! Пусть там сами рулятся как-нибудь." -- последние ее слова.
Вам отчего-то подобное кажется естественным, а мне лишь остается порадоваться, что это ваше устройство, а не мое.
Затягивая по десять раз подряд один и тот же фальшивый плачь, будто стоит лишь отпасть ардуине (еще бы понять, насколько это возможно без постороннего вмешательства), как все рушится, вы в этих своих бреднях как-то упускаете из виду очень важные нюансы. Данная галиматья вызывает изумление даже не тем, что она описывает совершенно невозможную ситуацию. Любопытно другое. По какой-то причине вы неспособны понять, что даже в этих ваших недалеких фантазиях рушится не весь функцинал устройства, а только небольшая его часть. Фиг с ним, вообразим, что ардуина отпал, отпал процесс/модуль связи с ним, но остальное-то осталось на своих местах и падать никуда не собирается. GPIO под контролем, сервы под присмотром, никакого разброда и самодеятельности. И это радикально иная ситуация, чем в вашем случае, когда из за одной утопленницы в сирот превращаются сразу все участники хора. Такую принципиальную разницу вы наблюдать совсем не в состоянии ?
В отличие от вас, мне нет необходимости тужится и мучительно придумывать бредовые напасти, пытаясь возвести напраслину. Я знаю о проблеме и говорю о ней, опираясь на собственный опыт.
Не так давно в теме про драйвер мотора я писал код на столь горячо вами любимом и рассово-правильном си. Код правда для stm8s003 (исходники доступны в ветке), но основные действия выполняются в неблокирующем стиле, чтобы вспоминать его тут, как раз к месту. Шерстить все из одного цикла там пришлось из-за необходимости реагировать практически в реальном времени на поступающие по нескольким каналам управляющие команды, плюс задача отслеживания происходящего с движком. На маленьком МК, при наличии скудных ресурсов, бешенный поллинг всего и вся, чуть не единственный доступный способ, хоть как-то запилить нужный функционал. Там это оправдано и имеет право на жизнь. Но мне в кошмарном бреду не может прийти в голову тащить за волосы данный подход на линя и считать его единственно верным. Линь -- это совсем другие ресурсы, подходы и возможности. В лине нет никакой нужды бешенно колотиться в единственном цикле, не в состоянии понять, что давно бы уже пора стащить этот ардуиновский loop() с головы.
Цитата:
Приведенный Вами код на перле не управляемый - завершение вечного цикла только только килянием, точка в которой оно произойдет случайна, что делает корректное завершение невозможным или затруднительным (см. ниже про апачу). Завершение по сторонней инициативе, сигнал с GPIO или команда от веб клиента невозможны.
Да полная херь все то, что вы тут плетете. В терминах функционирования устройства целиком -- это системный процесс, чей функционал не предусматривает ни остановки вообще, ни реакций на сторонние раздражители. Нет ни нужды, ни причины его когда-либо останавливать, пока устройство работает в своем обычном режиме. Все, что происходит вне его нормального work-flow -- это нештатная ситуация, авария и дизастер, причины которых и последствия должны устраняться иными средствами и способами. Не демонов это печаль.
Приняли данные от ардуины, передали дальше. Приняли, передали. И так до бесконечности. Это unattended процесс, к которому мерки виндузячей юзабилити уровня пользовательского приложения не применимы.
Цитата:
Внесите ясность, код с поддержкой горячего подключения тестировался?
Ответ: да. Еще что-то интересует или вы с иной целью спрашивали?
Я ж вроде написал, как вы можете самостоятельно это проверить. О чем вы тут все канючите, если сами можете во всем в два счета убедиться? У дипломированного админа проблемы с запуском простейшего скрипта в несколько строчек?
Цитата:
Обемы исходного кода на перл и си соизмеримы.
Мне не интересны ваши фантазии на сей счет. Данное заявление для вас является приговором и не нуждается в дальнейшем обсуждении.
Цитата:
a5021 пишет:
Вам действительно видится, что предложенный код на Си чем-то лучше перловского
Таки да! И сильно.
Не смею более тревожить эту вашу восхитительную негу в мире грез и волшебных фантазий.
Цитата:
Они апач не на перле, а на Си писали
Вы на своего любимого конька "Си vs чего-нибудь" что-ли под шумок вскочить пытаетесь? Слезайте, Семен Михайлович, гражданская давно закончилась.
Цитата:
Там завершение по килянию можна делать корректно обрабатывая сигналы. Потому пример в пользу Си.
Ух-ты! А на перле, значит, никак невозможно подобное? Ну что за ерунда, а? Как только начинаются конкретика и технические подробности, так предводитель "сообщества разрабов" мнговенно норовит с грохотом завалиться. Вот же напасть. Ну давайте я уж под нос вам подложу некую пищу для размышлений:
$SIG{INT} = sub { die "Caught a sigint $!" };
Скажите, как программисту с опытом, хорошо знающему перл, удается ли вам в этой строчке разглядеть что-то осмысленное или она представляется вам беспорядочным набором символов? Если последнее, то вынужден вас огорчить, т.к. данный код представляет собой простейший обработчик сигналов, о каковой фиче вы говорили с таким видом, будто она, кроме как из си, более ниоткуда не доступна. Ну и какие ваши рассуждения о перле после этого, можно воспринимать всерьез? Правильно, никакие, т.к. он вам совершенно неведом. Вот и не сотрясайте понапрасну страниц форума своим бредом на сей счет. Ну не заменяются знания фантазиями, с каким жаром их ни озвучивай.
Цитата:
Пишите просто и по пунктам, с сылками, цифрами и т.д. Или не пишите. Но плодить флуд про самбу, апачу и пр. не надо.
Конечно не надо. Я и сам вижу, сколь болезненны для вас упоминания никсового софта, который построен на принципах, прямо-противоположным от вами декларируемых. То ли дело для вас оперировать понятиями вида: "390 больше 9" или примерами из жизни MS Word-а. Ведь просто, понятно и лежит точно в плоскости ваших компетенций. А остальные малопонятные вам линуксовые подробности, разумеется, только чушь, флуд и мракобесие.
на праздниках на вторую флешку установил серверную версию linux, пробовал дебиан но чтото не пошло с установкой php i phpmiadmin. В общем не стал ковыряться а нашел вот такой образ http://dietpi.com без иксов. Встал хорошо и сразу, темпиратурка конечно отличается сильно, выше 40 не подымается с холодильником. а в убунте десктопной и до 80 подымалась если нагружал.
в общем поставил LAMP, и могу сказать в принципи удбно пользоваться и серверной версией. через ssh и аналог тотал командера. и вооще не страшно))))
темпиратурка конечно отличается сильно, выше 40 не подымается с холодильником. а в убунте десктопной и до 80 подымалась если нагружал.
Никак такого не будет при чесной загрузке 100%, у обоих будет одинаковая температура. Другое дело что на одинаковом тесте проценты загрузки разные могут быть, от того и градусы разные.
Baks пишет:
через ssh и аналог тотал командера. и вооще не страшно))))
Я именно так и работаю с "десктопной" убунтой 99% времени. Конечно не страшно. Немного противно просто по сравнению с виндой.
Для a5021. У меня нет ни времени ни желания читать эти грязные простыни ночного изготовления. Тем более чего отвечать. Думаю я не одинок в этом. Хотите чё сказать - коротко, по пунктам (я их обозначил) и доказательно. Аргумент уровня "мамой клянусь, перл быстрый" кроме улыбки сочувствия ниче не вызывает. Пролистал вашу "простыню" - ссылок 0, собственных сравнительных тестов - 0. Глаз выхватывает только мантру "линукс - совсем, другое". Типичный ЛГМ. Все ИТ не такое, угу, "весь полк не в ногу, а я в ногу". Уже было, нафиг, нафиг.
Я както упоминал графики по технологии SVG. Легко, быстро и без БД и лишних телодвижений.
Теперь подробней. Код.
const char SVG_TEMPLATE[] = "TempGraph.svg";
const char GRAPH_FILE[] = "/var/www/html/graphik.html";
const char* SvgLine="<line x1=%u y1=%u x2=%u y2=%u stroke-width='1' stroke='%s'/>\n";
const char* SvgEnd="</svg>";
void Graphik(char* name, int Point1_x, int Point1_y, int Point2_x, int Point2_y, int Color, bool EndPoint)
{
int fd;
static FILE* pFileSVG=NULL;
fd=open(name, O_RDONLY );
if(fd<0)
{
//указаного файла нет, копируем его из шаблона
FILE *f_write = fopen(name,"w"); //запись
FILE *f_read = fopen(SVG_TEMPLATE,"r");//чтение
char tmp[1024];
while (!feof(f_read))
{
int l=fread (tmp,1,sizeof(tmp),f_read);
fwrite(tmp,1,l,f_write);
}
fclose(f_write);
fclose(f_read);
}
else
close(fd);
if(!pFileSVG)
{
pFileSVG=fopen (name,"r+b");
fseek(pFileSVG, -strlen(SvgEnd), SEEK_END);
}
char s[10];
itoa(Color, s+1, 16);
s[0]='#';
fprintf(pFileSVG, SvgLine, Point1_x, Point1_y, Point2_x, Point2_y, s);
if(EndPoint && pFileSVG)
{
fprintf(pFileSVG, SvgEnd);
fclose(pFileSVG);
pFileSVG=NULL;
}
}
Коротко о работе. Сразу проверяет наличие файла-графика с указанным именем, ссли такого нет - копируем из шаблона сразу в каталог апача, его он будет выдавать клиенту. Далее, если файл не открыт - то открываем и отступаем от конца файла на длину закрывающего тега, мы его затрем последующим выводом. Потом в файл добавляем графический примитив - линию от предыдущей точки графика к текущей, используя заданый цвет. И если вывод точек в данный момент времени завершен, на что указывает последний параметр, - выводим закрывающий тег и закрываем файл. Теперь его могут посмотреть веб-клиенты. Почему именно так- функция ориентирована на построение временных графиков многих процессов сразу на одном изображении.
Теперь о шаблоне - это простор для творчества в плане оформления графиков, он лежит в файле TempGraph.svg рядом с исполняемым файлом. У меня сейчас там такое
В принципе ежеминутность - не догма, можна делать как удобней.
Если хочится большего, то 2 пути
1. SVG отлично совместима с другими веб-технологиями (css, html, JS и пр.), можна дорабатывать самому ориентируясь на них.
2. Использовать готовые наработки, веб трещит от вариантов либок построения графиков, на вход им как правило нужен xml с данными. Эта же функция позволит его получить после небольших правок: шаблон xml делаем, закрывающий тег его же, ну и вместо графического примитива svg делаем элемент xml. Родство svg и xml сказывается.
А тем временем в броузере графики подросли. Выглядят так
Красное - чистота воздуха с АЦП по I2C (пик - это я дунул в MQ), желтей - температура с внутренего термометра ардуинки на USB (положил его на проц оранжа, а потом снял). Почти час собирало данные.
А получившийся файл здесь, его можна сохранить html-ом и лично убедится.
ПС. Про закрытие тега </svg> В принципе все работает и без него, можна упростить код. Тогда просто доцепляем строки в конец файла и все. Но лучше соблюдать стандарт, броузеры разные бывают.
Для a5021. У меня нет ни времени ни желания читать эти грязные простыни
Не пренебрегайте гигиеной. Почистите монитор.
Цитата:
Тем более чего отвечать.
О чем вы? Нечем вам отвечать. Нет у вас нужной квалификации.
Цитата:
Думаю я не одинок в этом.
Постоянное упоминание воображаемых единомышленников и попытки озвучивания коллективного мнения, все это свидетельствует о шаткости ваших позиций и вашем понимании неблагополучности ситуации для себя.
Цитата:
Хотите чё сказать - коротко, по пунктам (я их обозначил) и доказательно.
Я вообще-то ответил по всем пунктам без исключения и не моя вина, что оценивать доказательства оказалось вам не по зубам. То, что всю конкретику вы чохом обозвали "грязными простынями" хорошо показывает, что никакое "доказательно" вам никогда и не требовалось. Цели ваших вопросов иные и я ранее уже это отмечал. Вопросы вы задаете исключительно из демагогических соображений "а нельзя ли будет в ответах поднакопать какого-нибудь дерьмеца". Когда с дерьмецом случается облом, никакое предметное содержание интереса для вас более не представляет. Вы отлично проиллюстрировали это последним своим сообщением.
Цитата:
Аргумент уровня "мамой клянусь, перл быстрый" кроме улыбки сочувствия ниче не вызывает.
Вам плакать нужно. Ваша манера -- сначала приписать оппоненту какое-нибудь бредовое утверждение, а потом сокрушаться по этому поводу -- выглядит весьма дурно. Это уж не говоря про жесточайший оксюморон ("улыбка сочуствия"), который вы тут ввернули совершенно горбатым образом, тщетно тужась усилить эмоциональную выразительность. Только когнитивными проблемами можно объяснить случай, когда "сочувствие" и "улыбку" вы употребляете в одном контексте. У психически-полноценного человека состояние сочувствия никогда не сопровождается улыбками. Это нонсенс.
Что же до того, быстрый перл или медленный, я ведь просил вас пояснить, в каком прикладном аспекте производительность перла вам видится недостаточной. Что вы мне ответили? Ничего не сомгли ответить. Ну раз ответить не можете, то и обсуждать скоростные качества перла с вами нет никакого смысла. Нет у вас достаточных компетенций для этого и вы сами в этом расписались.
Цитата:
Типичный ЛГМ.
Стереотипы, ярлыки и штампы -- вот весь нехитрый арсенал воинствующего демагога, вторнувшегося в область знаний, доселе ему неведомую. Не испытывая никакого пиетета ни к одной операционной системе, не нахожу возможным откликнуться на этот ваш страстный призыв немедленно принять участие в холиваре линь vs винда. Коли испытываете потребность, обратитесь лучше к кому-нибудь другому.
Цитата:
Все ИТ не такое, угу, "весь полк не в ногу, а я в ногу".
Товарищ полководец, мне стоит совсем оставить всякие попытки призвать вас говорить исключительно от своего имени? Уж извините, но начинает складываться впечатление, что не воображая себя во главе миллионов едимышленников, вы и говорить-то толком не можете.
"На последующие вопросы ответ сразу в гугле ищите. Каждому - свое. "
Что не понятно? Думаш я шутки шучу, ты буш игнорить мои вопросы, а я перед свиней бисер метать буду. Писдуй в гугл. Теперь он занимается твоим ликбезом и лечентем.
Если не доходит чем тормознутый код хуже быстрого, то никто не поможет. лечи ЛГМ.
"Для a5021. У меня нет ни времени ни желания читать эти грязные простыни ночного изготовления. Тем более чего отвечать. Думаю я не одинок в этом. Хотите чё сказать - коротко, по пунктам (я их обозначил) и доказательно."
Он сново лепит пару экранов помоев. Попытки конструктивно с ним общатся ниче не дают.
"На последующие вопросы ответ сразу в гугле ищите. Каждому - свое. "
Что не понятно? Думаш я шутки шучу, ты буш игнорить мои вопросы, а я перед свиней бисер метать буду. Писдуй в гугл. Теперь он занимается твоим ликбезом и лечентем.
Если не доходит чем тормознутый код хуже быстрого, то никто не поможет. лечи ЛГМ.
Но для себя более практичным нахожу выгружать все данные на публичный сервис и брать разрез за нужный период c помощью тамошних средств визуализации, когда это требуется. Вот, например, хроника оледенения последних дней взятая только что:
На скриншоте не видно, но график обладает некой интерактивностью и можно посмотреть любую точку более подробно.
На narodmon.ru визуализация тоже, в принципе, неплохая.
Раз удовлетворен - не лишне и целиком процитровать.
И не меньше десятка раз, как вы это любите.
Ок. Заводим отдельную тему, я буду тя посыла а тебя это будет удовлетворять. Мы нашли друг друга, если бы раньше не скрывал мазохистскую натуру - не пришлось бы те эти простыни дерьма набивать. Пиши просто и коротко, условие посылать не меннее десятка раз принимается. Знаю тут на форуме еще любители есть, для них - отдельный счетчик, мне всеже эксклюзив, согласись, я заслужил десяток. Токо уж на каждый раз - удовлетворение проявляй, можеш хоть мяукать, мне в принципе без разницы ;) но приятно знать что читаеш. Не сегодня извеняй - короткий день, только два раза... нет три. Еще процитирую сейчас.
"На последующие вопросы ответ сразу в гугле ищите. Каждому - свое. "
Что не понятно? Думаш я шутки шучу, ты буш игнорить мои вопросы, а я перед свиней бисер метать буду. Писдуй в гугл. Теперь он занимается твоим ликбезом и лечентем.
Если не доходит чем тормознутый код хуже быстрого, то никто не поможет. лечи ЛГМ.
Кстати по графикам из #379. Виден разрыв в данных, сервак останавливался, вот и разрыв. С таким моментом не всякая либка- рисовалка справится. Надо учитывать это.
Не думал, что еще и восхищатся моим видом со стороны будеш!
Восхищаться? Как-то не хочется мне вот таким восхищаться:
Потешаться, еще куда ни шло.
Цитата:
Тогда те бонус - пиздуй на хер.
У вас там сегодня бенефис?
Цитата:
А вобще внешний вид можна полировать пока не надоест.
Боюсь, до нижеприведенного не дополировать. Либо надоест быстрее, либо способности закончатся, а может то и другое вместе.
А тут мне двадцать минут назад пришло в голову сделать совмещенное представление данных по температуре воздуха и состояния батарей моего уличного метеодатчика с целью проследить, как меняется самочувствие нонеймовых солевых батареек в сильный мороз, так я взял, покурочил немного готовый джаваскрипт и извольте получить результат. Не надо ничего ни программировать, ни шлифовать. Данные представляет thnigspeak.com, графики рисует highcharts.com, а я их только наблюдаю и радуюсь. Все это интерактивное, конфигурабельное и можно рассматривать любые разрезы за любые периоды или просто в реальном времени. Cобственно, это и называется "Keep It Simple", а собственноручное написанние визуализаций осталось где-то в 2001 году.
Кстати, насчет батареек: ничего, держаться копеешные батарейки. При падении температуры с 0 до -32 градусов цельсия, снижение напряжения на паре последовательно-включенных батарей АА составило около 70 милливольт. Таким образом, на все страшилки, что обычные батарейки дохнут на морозе, можно наплевать и забыть.
А я как по вашему с пинами работаю))) Конечно на нем родимом! Не скажу что предел мечтаний, но вполне рабочая либа. Некоторые пины правда не видит. Я там выше писал выше результаты проверки. Причины разные, часть сконфигурирована под шины, часть просто не выведена (поискал я GPIO11, до сих пор помню), часть просто непонятно чего. Самое противное что кнопку не видет. Кнопка есть, использовать хочется, а фиг.
ПС. Вы его поищите сразу в оранже (/home/orangepi/WiringOP/WiringPi), некоторые образы его уже содержат.
Конечно пригодится. Там же родные серцу многих digitalWrite и digitalRead ;). Пример Blink для старта в один тык. Для старта проще нет. Но есть аппаратная проблема - в отличии от ардуин, нет светодиода на ножке блинка.
import serial
import requests
import time
usb0 = "/dev/ttyUSB0"
def usb_exist(device):
DevCheck = os.path.exists(device) #(проверяем наличие устройства)
return DevCheck
while True :
ser = serial.Serial(usb)
ser.baudrate = 9600
time.sleep(300)
while usb_exist(usb0) :
line = ser.readline() # читам ком порт и пишим в переменную
r = requests.get('<a href="http://localhost/test4.php?ID=" rel="nofollow">http://localhost/test4.php?ID=</a>' + line) # отправим строку в PHP скрипт для разбора (от ардуинки)
print r.text # тут ответ из php скрипта который должен вернуться в ардуинку
коллеги подскажите как замустить терминал при подключении через 3 отдельных контакта RX0 TX0 и через usb-ttl конвектор я все подключил, открыл putti, при старте вижу чтото грузится а потом останавливается
может надо что-то доустановить чтобы можно было работать как с обычным терминалом?
коллеги подскажите как замустить терминал при подключении через 3 отдельных контакта RX0 TX0 и через usb-ttl конвектор я все подключил, открыл putti, при старте вижу чтото грузится а потом останавливается
может надо что-то доустановить чтобы можно было работать как с обычным терминалом?
Нажать клавишу энтер два раза, попадёте в консоль )))
коллеги подскажите как замустить терминал при подключении через 3 отдельных контакта RX0 TX0 и через usb-ttl конвектор я все подключил, открыл putti, при старте вижу чтото грузится а потом останавливается
может надо что-то доустановить чтобы можно было работать как с обычным терминалом?
Нажать клавишу энтер два раза, попадёте в консоль )))
Графики можно посмотреть за период до двух лет )))
Свои? Даже если оранжа еще не было?! Феноменально ;)
так я сбрасываю в базу по протоколу CWOP )))
а на оранже это сделано или как-то иначе какая разница
Мои графики правда недавно там )))
А причем вообще CWOP - Citizen Weather Observer Program. Я вобще графики температуры 328р и качества воздуха на кухне показывал. Они к погоде как относятся )).
Если вопрос чисто о внешнем виде - так его я могу сделать вобще произвольным, ни один сервис не сравнится. Ну и хранить разумеется буду сколько захочу, пока место на диске не жалко. Но не вижу смысла дольше недели. Кому оно потом надо.
Да и по функционалу тоже. Показания MQ135 вобще довольно странные, он типичный "показометр" про единицы измерения лучше не спрашивать )) Потому качество воздуха сейчас в миливольтах, как с АЦП идет. Но не очень удобно, если чем запахнет - зашкаливаетза 1000, а в норме от воздуха на улице зависит от 35 до 50. Как и то и то на графике отобразить? Приходится хитрый логарифмический масштаб делать. Не уверен что сервисы позволят задать свою функцию масштабирования.
Вы третий пост исходите словесами, в которых нет никакой нужды и которые не несут сколь-нибудь значимого смысла в рамках обсуждаемого вопроса. Еще раз прочтите внимательно формулировку "цикл естественным образом завершается". Вы ж утверждаете, что программист. Ну так и ответьте, что обычно происходит после того, как цикл "естественным образом" завершен? Или может я поотстал и в свете новых веяний после окончания всякого цикла в теле программы происходит неизбежное "падение серверного приложения" ? С какого перепуга там вообще должно что-то падать? Вам не очевидно, что выполнение программы (скрипта) после завершения цикла продолжается следующей после цикла строкой? Вам по какой-то причине сие представляется совершенно невероятным? Ну так я вам тогда сообщаю, что именно так и будет.
То, что я не изобразил в тексте скрипта отслеживание доступности последовательного порта с ардуиной не говорит о том, что это невозможно в принципе. В примере этот код был бы загромождающим, т.к. не иллюстрирует основной мысли. Если вы испытываете сомнения, вот вам недостающее слежение:
Можно подключать и отключать ардуину любое количество раз и в любое время. Логика скрипта проста, как дверь -- есть порт -- ждем данные или читаем их оттуда. Если порта нет, то ждем, когда он появится. Если порт отвалился в процессе работы, выходим из внутреннего цикла во внешний и ждем, пока порт нарисуется вновь, чтобы опять перейти во внутренний цикл к основному процессу.
Я вот не пойму, такую простую конструкцию, что, так сложно представить, чтобы не убиваться третий пост сочинением всякого бутора? Тут кто профессиональный программист, я или вы? Почему я вынужден объяснять простейшие вещи?
Нда-с. Никак не мог подумать, что "Hello websocket", валящийся с криком "управляйтесь тут без меня" (см. стр. 84 и 102 ) при малейших затыках с этим самым сокетом и есть вдохновлящий образец надежного серверного приложения. Перефразируя ваше недавнее: "Серверное приложение упало от того, что не смогло с вебсокетом управиться, чего ж тут неестественного?" Вы когда в следующий раз возьметесь наветы сочинять, прежде повспоминайте, не стадаете ли вы тем же, в чем других надуманным образом обвиняете. А то некрасиво вышло -- про мой скрипт насочиняли, чего и быть не может, а про реальную горбуху именно того же свойства в собственых софтах решили не вспоминать лишний раз. Такая вот у вас получилась объективность с душком отчаянной пристрастности.
Остальному чему? Не мешать кому-то другомму перехватить общение с ардуиной в произвольный момент? Вы это себе как представляете? Может и ардуина тоже должен отслеживать, с кем общается и на свой стороне организовывать "неблокирующий доступ" к последовательной передаче что-ли? Бред какой-то.
Я вообще-то рассматривал случай, когда скрипт общается с ардуиной единолично, лишь принимая от него данные и отправляя их далее в соответствии с некой схемой. Рассматривать вариант, когда доступ к ардуине может иметь, кто угодно в любое время, не считаю исполненным хоть какого нибудь смысла. Если требуется доступ к ардуине со стороны нескольких процессов, извольте организовать взаимодействие с неким демоном, который имеет монополию на общение с ардуиной и осуществляет необходимый арбитраж в плане доступа.
Дадад! Прикладник-виндузятник для разработки системного ПО под никсы -- суть наше все. Самому-то не смешно? Вам же совершенно естественное построение юзерспейса по принципу "одна задача -- один процесс" с типичным взаимодействием между процессами видится не иначе, как "студенческий проект по изучению потоков". Вы про какую "разработку ПО" под никсы тут речь ведете с такими-то своеобразными представлениями?
А где я в прошлый раз был категоричен, не напомните? Я лишь предлагал следовать все тому же канону "одна задача -- один процесс", а не избретать мега-супервайзер, где с помощю необъятного цикла и умопомрачительного количества свичей отслеживать все возможные ситуации во всех уголках системы исключительно с помощью неблокирующего доступа.
Вам бы не обо мне печалиться, а как-то самому наладить собственные представления о том, чем вы там собрались заниматься.
Какая-то странная хрень, не находите? Нет, чтобы одиним потоком, да в неблокирующем доступе всем рулить. Вы не знаете, чего это они?
Аппач вон, непостижимая в этом смысле софтина, вообще норовит форкнуться от каждого чиха, плодя процессы-копии самого себя. Это при том, что каждая копия сама по себе рулит целой кучей потоков. Студенты наверное писали, сами мало понимая, что делают. Изучали, видимо, эти, как их там, а, вот, потоки. Ага.
Насчет "лучше" -- это же очевидно -- решить задачу более простым способом, затратив меньше усилий. Для задач типа "принял данные из порта и пробросил в сеть", перл рвет си, просто на молекулы.
Присоединяюсь, есть программа DX cluster, написана на перле, разбор строк из компорта и отправка в базу данных, лучше перла с этим пока еще ничто не справляется )))
Работа с компортом там как раз основное
//исходите словесами,
Ну допустим мой #350 в 3 раза меньше букв чем ваш #351 ;). В этом просто убедится.
// прочтите внимательно формулировку "цикл естественным образом завершается"...
В опубликованом куске кода вслед за завершением цикла завершается процесс, клиент получавший данные перестает их получать даже после востановление передачи данных с ардуино. Это и называется крах серверного приложения. Ардуино данные выдает, клиент их не получает.
//То, что я не изобразил в тексте скрипта отслеживание доступности последовательного порта с ардуиной не говорит о том, что это невозможно в принципе.
))) Будем обсуждать преимущества кода доступного к написанию в принципе?
//Если вы испытываете сомнения, вот вам недостающее слежение
Разслабтесь, оно мне и нахер не надо. А Вы его тестировали перед публикацией?
//Логика скрипта проста...
Да. Вечный цикл, без контроля ошибок с возможностю корректного завершения только килянием процесса. За такой код джуниору пару раз дадут по рукам, а если снова такое напишет то выгонят нафиг. Печалька. Или мне снова за вас чего придумать должно?
///Я вот не пойму, такую простую конструкцию, что, так сложно представить
)) Сново клоунада. Обсуждается опубликованый код. Дискусии о фантазиях не ведутся.
// Почему я вынужден объяснять простейшие вещи?
Не вынуждены. Выход с форума справа вверху страницы.
// (см. стр. 84 и 102 ) при малейших затыках с этим самым сокетом
Смотрю. Это не малейщие затык, это критическая ошибка. Пытаемся открыть серверный сокет, системный вызов вернул ошибку, открыть сокет не удалось (типичное - ктото уже открыл его, например второй экземпляр этого кода). Дальнейшая работа безсмыслена, клиент к нам не прийдет никак. Завершаемся с выводом кода ошибки. Стандартное поведение любого сервера. Вторая аналогичная, но при акцепте клиента. Вас не устраивает, что два сервера на одном порту не уживается и второй при этом отказывается запускатся?
///и есть вдохновлящий образец надежного серверного приложения.
Да. Дай бог Вам такому научится, но видно не дано, иначе с Вашей тягой к програмированию вы бы 10 лет в админах не сидели.
///Остальному чему?
Остальным компонентам программы, два поста выше перечислял, повторять не вижу смысла..
///Не мешать кому-то другомму перехватить общение с ардуиной в произвольный момент? Вы это себе как представляете? Может и ардуина тоже должен отслеживать, с кем общается и на свой стороне организовывать "неблокирующий доступ" к последовательной передаче что-ли? Бред какой-то.
Вы правы. Это Ваш бред.
//Я вообще-то рассматривал случай, когда скрипт общается...
Ну и это вобщем тоже бред. Ссылки на то, чем я вас натолкнул на идею доступа к ардуино из нескольких процессов нету. Будем считать это Вам Голоса В Голове нашептали. Я с клиникой не спорю. А сам а идею - ну пусть лстается идеей, ни да, ни нет, возмрожно если будет нужно, но не сейчас.
///Дадад! Прикладник-виндузятник для разработки системного ПО под никсы -- суть наше все. Самому-то не смешно?
Нет. Не смешно. Немного забавно, когда админ себя разрабом мнит (Сортировку пузырьком освоили? А перестановкой? или зачем, sort хватает?) и пытается всему миру расказать как код писать. Не более. Си - он кросплатформенній, написаный код будет работать что под виндой что под линухой.
//Вам же совершенно естественное построение юзерспейса по принципу "одна задача -- один процесс".
Если считать, что задача это обслуживание вэб клиента (клиентов) - то возможно. Но клиенту нужны данны не только с USB но и с GPIO. И все это в одном процессе, плюс протокол разумеется. Но насамом деле все много сложней.
/// типичным взаимодействием между процессами видится не иначе, как "студенческий проект по изучению потоков".
Ага . Это когда задачу типа a+b=c решают так: создаем процеессы источники данных a и b, они по пайпу передают даные в процесс сумирования, который ожидает данные с процессов и после их поступления производит сумирование, результат передает в процесс присвоения c. Это как раз то, что Вы предлагаете! )))
///А где я в прошлый раз был категоричен, не напомните?
Напомню. Например "Данная "ваша прога" тут никогда ранее не упоминалась и не публиковалась"
//Я лишь предлагал следовать все тому же канону "одна задача -- один процесс"
В вашеи понимании задача - это то, что является только малой частью от требуемого. Дробить и порождать десятки процессов для одного обслуживания - тупик. Это не проще и хуже по всем параметрам, так не пишут нормальный софт. Откройте хотяб ворд. Один процесс, или один процесс на один документ. Но не процесс на каждый пункт подменю. Точка. Тут нечего обсуждать.
/// Я лишь предлагал следовать все тому же канону "одна задача -- один процесс", а не избретать мега-супервайзер,
ИТ индустрия считает иначе, я тоже, боюсь мнения админа с десятилетним стажем недостаточно чтоб переубедить сообщество разрабов. А оно удачно сформулировано в принципе KISS а значить если нет аргументированой необходимости разбиения на несколько процессов - то делать один процесс. Знаю перл, не знаю Си - не аргумент, берем другого чела. Что может быть аргументом: полная независимость процессов, например блокнот и паинт - разные процессы; разные требования к процессорному времени - приоритеты разные например скринсервер и медиаплеер; необходимость строгой изоляции из-за потенциальной опасности, например код клиента выполняется в процессе, а он может быть опасным и т.д.
Понимаете, профи делает выбор осмыслено, а делитант - ограничен своими слабыми знаниями, и начинает вгонять задачу в них не видя других путей и руководствуясь сакральными фразами типа "одна задача -- один процесс". Или обезяничают - апачи так, значить и калькулятор писать также. Увы.
///Какая-то странная хрень, не находите? Нет, чтобы одиним потоком, да в неблокирующем доступе всем рулить. Вы не знаете, чего это они?
Знаю конечно. Когда я пришел этому комуникационному серверу было уже около 10 лет, когда подошел к проджектменеджеру с таким же вопросом, получил ответ "так исторически сложилось" ))) Его первую версию написали студенты (ичары набрали кого попало подешевле), рассуждавшие так, как и Вы. Их потом уволили, когда выяснилось что больше 10-15 клиентов оно не держит (а выяснилось очень не сразу, клиенты "железяки", не веб, пока они появились). Но переписать с нуля уже было невозможно, т.к. такие трудозатраты никто не оплатит. Вот и "полировали", ну и железо подросло, вконце довели до 100-120 клиентов, четыре потока на клиента. Отакот.
Это я так подробно описал чтоб вы понимали, насколько мне значимы Ваши сказки и где я их видел.
Про скорость перла заодно изложу. Ориентируйтесь на
Время исполнения — на P4-1.8Ггц. Брал здесь https://habrahabr.ru/post/66562/
Как видите 91/2,6=35. Перл тупей в 35 раз.
Не удивительно, схватку компилятор против интерпретатора легко прогнозировать.
Действительно. Обсуждать системное программирование под никсы на примере ворда? Сложно придумать более глупое занятие.
Это она (индустрия) вам сама сказала или "ИТ индустрия" -- это вы и есть?
И "сообщество разрабов" -- это тоже вы?
Вы не устали там вещать от имени неких многочисленных авторитетных инстанций с таким видом, будто имеете письменное разрешение оперделять их точку зрения везде, где это может потребоваться? Не хотите начать говорить за себя и от своего имени? В противном случае складывается ощущение, что вы сами внутренне не уверены в авторитности собственных слов и все время пытаетесь опираться на чужой авторитет, правда, не имея к тому никаких возможностей. Глуповато выглядит.
Ой, как неудачно вы сюда это приперли. Перепишите скрипты из сообщений 342-343 на своем Си и узрейте, к чему можно будет отнести KIS, а к чему оставшуюся S. Одной из причин существования скриптовых языков и является этот самый KISS, где вызовом единственного оператора может быть охвачен функционал, достижимый лишь с помощью нескольких страниц кода на традиционных языках программирования, типа Си.
Вы про свои взаимоотношения с линухом? Мне вообще непонятно, насколько неумеренным апломбом надо обладать, чтобы едва начав знакомство с линуксом не стесняться в категоричной форме поучать тех, кто в теме несколько дольше и немного глубже.
Пример ни о чем. Ваши слова невозможно проверить. Вы можете бесконечно черпать оттуда любые удобные вам доказательства, независимо от того, существут они там на самом деле или нет.
Теперь ознакомьтесь с контр-аргументом, реальность которого, в отличии от ваших россказней, легко проверить любому желающему. Берем любой линукс и выполяем команду top. В верхней строке видим что-то типа "Tasks: 126 total, 1 running, 125 sleeping, 0 stopped, 0 zombie". Убунту (в моем случае) тоже студенты писали, которых мгновенно уволили, но исправить было уже ничего нельзя, ибо "так исторически сложилось"? Или может есть какая-то другая причина?
Про скорость перла заодно изложу. Ориентируйтесь на
Как видите 91/2,6=35. Перл тупей в 35 раз.
Обсуждать системное программирование под никсы на примере ворда?
Какие нафиг никсы. Под них даже софта общеизвесного нет чтоб пример привести.
И "сообщество разрабов" -- это тоже вы?
Отчасти. Но Вы к ним точно не относитесь.
Щас все кину и буду недоделки смотреть.. принцип KISS определяет что нефиг процессы плодить если решается все одним.
Вы про свои взаимоотношения с линухом? Мне вообще непонятно
Значить не поняли ниче. Ну и забейте, фиг сним, разработка - не ваше. Я вам не первый раз пишу. Больше тратить время на просветление админов не буду. Пишите на перле.
Пример ни о чем. Ваши слова невозможно проверить. Вы можете бесконечно черпать оттуда любые удобные вам доказательства, независимо от того, существут они там на самом деле или нет.
Во первых, это не пример а ответ на Ваши вопросы "Какая-то странная хрень, не находите? Нет, чтобы одиним потоком, да в неблокирующем доступе всем рулить. Вы не знаете, чего это они?" Во вторых - так можеш не верить, это твои личные тараканы, я не ты чтоб в лгать.
Теперь ознакомьтесь с контр-аргументом, реальность которого, в отличии от ваших россказней, легко проверить любому желающему. Берем любой линукс и выполяем команду top. В верхней строке видим что-то типа "Tasks: 126 total, 1 running, 125 sleeping, 0 stopped, 0 zombie". Убунту (в моем случае) тоже студенты писали, которых мгновенно уволили, но исправить было уже ничего нельзя, ибо "так исторически сложилось"? Или может есть какая-то другая причина?
Я уже излагал основания для создания отдельных процессов, очевидно они в этих случаях есть. Читай выше.
Про скорость перла заодно изложу. Ориентируйтесь на
Как видите 91/2,6=35. Перл тупей в 35 раз.
))) Для альтернативно сообразительных там ниже есть не "сехавшее" значение в процентах 327/9=36. Почему 36 а не 35 - разясняю (я уже понял уровень одаренности опонента, потому разжую), ошибки округления. При подсчете процентов дробные части были отброшены. Отбрасывают их по причине не высокой их важности в данном случае и ограниченой точности измерений.
На этом я завершаю ликбез неадекватного админа, т.к. нахожу занятие безполезным и достаточно флудным.
К тому же сильно ушедшего в сторону от обсуждения преимущества тормозного, блокирующенго, не тестированого и корректируемого по ходу гомнокода на perl, над предложеннной функцией на чистом Си, демонстрирующе стабильную, быструю работу на протяжении многих суток.
На последующие вопросы ответ сразу в гугле ищите. Каждому - свое.
Я правильно понял, что и "общеизвестность" вы исключительно своим величайшим повелением определяете? Типа, сказали "нет", а там, даже если был и какой общеизвестный юниксовский софт, то он тут же мгновенно и бесследно исчез? Видимо вы и сами истово веруете в это.
Чем горбатого лепить, вспомните хотя бы самбу -- файловый сервер, который существует для умопомрачительного количества платформ и разннобразных юниксовых клонов, начиная от Solaris, HP UX, IBM AIX, OpenVMS и заканчивая многочисленными BSD. Не, никода не слышали? Хотя, вы то, как раз, могли и не слышать. От ваших компетенций можно и не такого ожидать. Это при том, что самба -- популяный софт для реализации файлового сервера и на обсуждаемой здесь Orange Pi. Такая вот общенеизвестность вырисовывается.
Ну не слышали, так не слышали. Это самая меньшая неприятность, которая может быть связана для вас с данным вопросом. Все остальное хуже. Да и не удалось бы вам самбу в пример привести, т.к. самба демонстрирует подходы в софтостроении, прямо-противоположные вашим представлениям и уверениям, как оно якобы должно быть.
Функционал самбы реализуется несколькими многопоточными процессами, которые охотно форкаются при возрастании нагрузки, плодя тем самым процессы-клоны самих себя. Удивительно, но, как и в случае с апачем, вместо того, чтобы одним тредом и одним процессом неблокирующим образом изящно и непринужденно перемолачивать всю нагрузку, разработчикам за каким-то хреном потребовались кучи тредов, процессов со сложным механизмом синхронизации между ними. Видимо эти олухи тоже не в курсе о существовании передовых трендов в "IT индустрии", единодушного мнения "сообщества разработчиков" и вашего персонального учения "Линукc и MS Word: единство во всем". Как то уж так получается, что все они делают наоборот от вами сказанного.
В прошлом своем сообщении вы неизвестно с какого бодуна брякнули:
Поздравьте себя с очередной ахинеей и сверхточным попаданием пальцем в небо. Уж не знаю, приятно ли вам будет это узнать, но демоны самбы тоже понимают только килл. И хотя в убунте этот килл запрятан через вызов нескольких скриптов и отдельного демона start-stop, но иногда можно выдеть, как его действия случайно прорываются наружу.
Здесь видно, как стартстоп-демон пытлся убить самбу дважды, т.к. ему показалось, что с первого раза не вышло. Повторый килл, правда, прилетел по пустому месту, т.к. самба к тому времени уже сама отошла в мир иной.
На некоторых платформах к услугам специально обученных киллеров не прибегают, а просто советуют заканчивать работу самбы так:
Отсюда получается, что либо тамошним джуниорам по рукам бить некому, либо вы отчаянно бредите в обычной своей манере.
И "сообщество разрабов" -- это тоже вы?
Отчасти. Но Вы к ним точно не относитесь.
От возглавляемого вами "сообщества разрабов", похоже, нужно только бежать, не разбирая дороги. Не приведи Господь кому встретить. Одним бредом могут завалить так, что потом хрен выберешься.
Апачам расскажите или самбам, какие грандиозные идеи вас посещают. Там ничего не знают про поцелуи в вашем исполнении.
Так я никогда и не спорил, что разработка по вашим рецептам это мое. По моим предположения это вообще вряд ли может оказаться хоть чьим нибудь. Леденящие кровь фантазии прикладного программиста под виндовс о системном программировании в линуксе -- это какой-то Хичкок в переложении для IT.
Так вы еще и просветитель админов по соместительству? Офигеть! Несть числа вашим талантам и видимо нет такой области человеческой деятельности, где не нашлось бы им блистательного применения.
Касательно писания на перле, спасибо за ваше великодушное дозволение. Я пожалуй продолжу использовать его в тех областях, где это показало свою эффективность и там где я располагаю необходимыми скиллами и икспириенсами.
"основания для создания отдельных процессов" в видении убежденного виндузятника, взявшегося изучать линукс? Очередной триллер, полагаю?
Основные ошибки округления, причем до нескольких знаков перед запятой, случились в голове проводившего тестирование, а может и у тех, кто с результатами оного принялся носиться, как с писанной торбой. В перле переменные по умолчанию имеют формат числа с плавающей точкой и разрядность от двадцати четырех до восьмидесяти восьми бит. Нужно быть полным дебилом, чтобы крутить циклы на скорость не убрав плавающую точку в итераторе. Горемыке в коментариях на все лады твердят, чтобы использовал стандартную перловскую директиву USE INTEGER, но болезному, в силу неграмотности ли или по причине тяжелой душевной болезни всюду грязные хаки мерещатся. Нахватал минусов, но веры своей идиотической не предал.
Проводить таким образом тестирование языков програмирования, это все равно, как сравнивать эффективность лобзика и бензопилы на выпиливании фигурок из фанеры. Хрен бы еще с ним, что выпиливание из фанеры не совсем подходящая для бензопилы задача, так дубиноголовое посчитало, что заправлять бензин является недопустимым хаком. Типа, раз в лобзик нельзя залить бензин, то условия должны быть равными для всех инстументов. Так и выпиливал болезный выключенной безнзопилой, защитного чехла не снимая. Полученные цифры, собственно, о данном подвиге и свидетельствуют.
Теперь с этим памятником человеческому идиотизму, как с иконой, вы решили подступиться к малопонятной для вас теме? Валяйте. Одной горбухой больше, одной меньше, для вас это уже ни на чем не скажется.
Какие могут быть серьезные аргументы при таких раскладах? Сравнивать надплатформенный перл с оптимизированным для конкретной платформы копилированным кодом на Си ? Мож еще результаты для жопы с пальцем в табличку надо было записать? Нахожу, что последнее было бы достойным украшением и идеально дополняло бы достоверность приведенных там цифр, ничуть не нарушая логики тестирования вцелом.
Напомню просветителям админов, что область пременения перла -- это обработка текстовых данных с удобными методами манимуляции строками, форматами и видами представления, а так же элегантными способами преобразования данных и выполнения вычислений на лету. Для того, чтобы заставить перл выступать на поле для Си не требуется ни сил, ни ума. Собственно, это и продемонстрировал исполнитель тестов. А вот чтобы сравнить си и перл на поле для перла, можно запросто обосраться еще на этапе подготовки исходника для си и ни до какого тестирования так никогда и не добраться.
Я ведь с самого начала спросил, для какой из обсуждаемых здесь задач быстродействия перла недостаточно. Вы в своей обычной манере впилили куда-то в сторону, понеся очередную ахинею мимо кассы, мол чем больше скорость, тем лучше, не уточняя при этом о скорости чего идет собственно речь. Теперь, правда выяснилось, что более всего вас впечатляет скорость кручения двух вложенных циклов с одним арифметическим действием внутри. Непостижимой ценности прикладная задача оказыватся. Еще и просите коментариев к полученным совершенно ракообразным способам цифрам, характеризующим неизвестно что. Не, это ваше поприще, вам на нем и развлекаться.
Отвечаю. Могут потребоваться тем, кто в силу умственных особенностей не смог освоить более сложные компиляторы.
Отличный ответ. По-моему к данной фразе и добавлять ничего не надо. Так и запишем: Perl, Python и Ruby -- вотчина недоумков, не способных совладать с компилятором. Туда же верно относится и PHP c джаваскриптом, а так же еще кучка технологий помельче. Остается вас только поздравить с таким неожиданны открытием.
Насчет тормозного -- чушь и бред. Для парсинга выхлопа ардуины на скорости 115200 бод, нехватки производительности решений на перле представить решительно не могу. Я много чего разбирал из под ардуины перлом и не припомню ни единого случая проблем ни со скоростью, ни производительностью. Ну а чего вам там явилось в воспаленном воображении, да на фоне того, что с перлом в данном контексте вы вообще дела никогда не имели, как-то и не интересно совсем. Ну высасывает всякие небылицы из пальца заблудший прикладник из виндовс, чего ж в этом такого. Занятие хоть и необычное, но понять можно. Значит какой-то кураж от этого испытывает и ему от собственных фантазий хорошо делается. Остается только порадоваться, что кому-то может хорошо делаться даже от такого малопривлекательного занятия.
Неблокирующий доступ не приобретает дополнительной ценности только от того, что вам вздумалось из одного громадного цикла пытаться ухвать в одну руку и сиську и письку по способу MS Word-a. Получение данных от ардуины возможно разными путями и если вы воспользовались одним, то это не делает автоматически все остальные заведомо проигрышными. У меня вообще закрадываются подозрение, что сей "неблокирующий" является для вас своего рода тотемным животным, трепет перед которым проистекает из неких событий, когда-то вы однажды сильно огребли от него. Уж не знаю, насколько такие события взаправду могли иметь место, но противоествественное благоговение именно перед неблокирующим доступом и упорное его выпячивание, именно к таким мыслям активно подталкивает.
Сон у вас такой был что-ли? Я вообще-то сдернул его из куска рабочего скрипта, убрав лишнее и упростив для понимания. Если навязчивые сомнения одолевают, возьмите да запустите. Линь у вас под рукой имеется, если нет перла в дистрибутиве, доставляется с репов за минуту. Какую засаду с нетестированностью вы тут изобразить тужитесь?
Какого еще "корректируемого по ходу" ? Не устали там бредом фонтанировать? Код остался в неизменном виде в сообщении №343, что может в любой момент наблюдать всякий желающий. То, что я приводил дополнительные иллюстрации того, что можно предпринять на случай, если возникнет необходимость отключать и подключать ардуину в процессе работы скрипта, не является корректированием по ходу. Если позабыли, то я лишь предлагал возможный вариант, полностью отсекающий ваши дальнейшие фантазии на предмет "что будет если ардуинку вынути и сново воткнуть". Без исполнения идиотских действий вида "вынути и сново воткнуть" данный функционал никак не может быть востребован, в реализации не нуждается и никакой "правкой по ходу" быть не может по определению. Все, что вы наплели, является неким словесным шумом, неизвестно к чему относящимся.
Насколько быструю? Очень быструю или еще быстрее? Вы с самого начала упираете на некие характеристики, полезные свойства которых оценить чрезвычайно затруднительно. То невыразимо-самоценный неблокирующий доступ, то восхитительно-быструю работу неизвестно чего. О чем вообще эта песня?
PS. Скажите, а вот все эти "чистые си" и "и не смог освоить компиляторы" это к вам не от одного странного товарища из "Ищу исполнителя" пристало? Больно уж дерьмецом повелителя подмосковных фонтанов повеяло.
Все, все... успокойся, все всё поняли.
Для непосвященных - краткое содержание последней серии комедийного сериала от a5021
1. Перл такой же быстрый, даже немного быстрее. Все что в тестах - дерьмо. Весь мир заблуждается. Админ сказал, он знает, но цифр и ссылок на чужие цифры у него нет. (Вот только по недоразумению сам интерпретатор перла как и остальной линукс с самбами вместе на Си написа а не наоборот.)
2. Но это быстродействие вобще никому не надо, даже мешает. (Наверно кофе не попеш спокойно)
3. Один процесс занимает ресурсов больше чем 10. Потому нужно чтоб их было много, так у самбы. Кстати про её известность - знают её только линуксятники а их 5%, на винде поддержка протокола SMB родная системная лет 25 как уже , чистый виндусятник как правило даже слова самба не знает, кроме как танца. Очень известная прога. )))
4. Писать один процесс намного дольше чем 10. Их взвимодействие - ничто. Они сами узнают когда от них нужны будут данные, и никогда не мешают друг другу, при этом еще и не ждут и не блокируют. Отэто заряд для взрыва мозга))))
5. Особенно долго этот процесс писать на Си админу, который знает perl. Разраб, который знает и perl и Си и уже все написал и выложил код страницу назад конечно в ох.е от этой логики, но он в никсах не шарит;)
6. Горячее подключение к USB - ересь, кто ж в здравом уме в разем под электричеством полезет чего включать. Соответственно поддержка этого в софте вредна. Но можна дописать если нужно вечным циклом, как он завершится когда будет нужно - то не важно потому что у самбы иногда при килянии какойто глюк и она чегото пишет 8)))
ПС. Упоротый линуксоит - таки диагноз, предлагаю сокращать ЛГМ - линукс головного мозга. Но Вы a5021 таки не нервничайте, дайте санитарам хоть на праздник отдохнуть.
Какого еще "корректируемого по ходу" ?
Какой удар судьбы! ЛГМ уже известен науке :( Гугл 101000 ссылок дает, например линукс головного мозга упомянут здесь http://lurkmore.to/Ubuntu
Не утомились метаться в разные стороны и голосить ни о чем? Сначала стенали, что совсем нет "общеизвестного софта" под никсы, а когда выяснилось, что есть, то не меняя тональности продолжили, будто это все равно "ни о чем", так как линуксятников только 5%. Насколько я успел понять, для вас и не особо важно о чем конкретно устраивать ор. Главное драйв и градус экспрессии.
Тем не менее, про ее существование вам известно, а еще сообщение назад вы на голубом глазу плели, будно никакого общеизвестного софта под никсы нет совсем. Забыли? Или в обычной своей манере продолжите извиваться с видом, будто ничего такого никогда и небыло? Вижу, что второе. Ну извивайтесь.
Метод произведения бури в стакане прост: завалить опонента ворохом чепухи, сочиненными на ходу аргументами, ссылками низвестно на что и бесконечными передергиваниями. Навал чепухи должен быть мощным, постоянным и никогда не прекращаться. Это создает у трололо иллюзию, что он достойно дерится в разговоре, в котором мало что понимает, а то и вовсе, сам себя уговорит, что вообще одерживает победу в споре. Все бы ничего, если бы со стороны это не выглядело, как полнейший угар.
Я вас не в первый раз прошу указать, где, по вашему мнению, для обсуждаемых здесь задач производительности перла недостаточно. В ответ только бесконечные прыжки в сторону и фиглярствования вида "Перл такой же быстрый, даже немного быстрее" или натужный сарказм "это быстродействие вобще никому не надо, даже мешает". Ничего конкретного, ни одного намека на разговор по существу. Один непрекращающийся вал чепухи.
О чем мне тут с вами говорить, если вы не способны отвечать даже на самые простые вопросы, резонно возникающие после ваших же удивительных утверждений? У вас нет позиции. Только ор и непрекращающаяся генерация ахинеи.
Да похрен, по большому счету, на чем писать. Если вы клоните к тому, что мой выбор перла проистекает исключительно из невозможности писать на Си, то это не более, чем очередной ваш бред. Просто в отличие от вас, я прекрасно понимаю, что для подобного вида задач, там где я управлюсь десятком строк на перле, на си придется писать полтора десятка страниц. Вы с большим пафосом рассказывали про KISS, но когда именно благодаря этому принципу я делаю выбор инструмента, вам не приходит ничего в голову, кроме как забиться в истерике про то, какой перл, якобы, тормоз.
После всего того бреда, что вы успели тут нагородить, испытываю серьезные сомнения, что вы понимаете перл сколь-нибудь глубже вопроса использования си-подобного синтаксиса си-образным же способом. Тобишь, для вас перл -- это тот же Си, только медленнее. Вот и все знания. Чего вы можете там насравнивать с таких позиций, даже предполагать не стану.
Остановитесь. Вы делаете уже третий заход на одну и ту же тему. Два предыдущих для вас закончились неудачно, но вы не оставляете попыток "переговорить" опонента. В лоб не получается, пытаетесь бочком. Мне более не интересно это обсуждать, а про то, как отрабатывается "горячее подключение" на перле я уже рассказал и проиллюстрировал кодом. Вам там что-то непонятно или вас, как обычно, интересует совсем другое?
Свои утлые виндузовые представления, о том, как должны завершаться процессы в юниксе можете оставить при себе. Килл в линуксе считается полностью законным способом завершения любой программы и любого процесса, какой бы дичью лично вам это ни казалось.
Конкретно меня вы задеть не в состоянии и мне глубоко наплевать на все ваши личные выпады в мой адрес. "Упоротый линуксоит" ? Ничего не имею против, если конкретно вас преследуют именно такого рода галлюцинации. Мне вполне комфортно, когда я пользуюсь разными средствами (в т.ч. разработки), что под виндой, что под никсами и решаю нужные мне задачи, что там, что там. Вопросы противопоставления линя и винды меня не занимают. В сражении религиозных догматов принимать участия не испытываю потребности.
Атакуя меня персонально, вы скорее вызываете у меня приятные эмоции, т.к. тем самым расписываетесь в собственной беспомощности противостоять в разговоре по существу.
.. нет "общеизвестного софта" под никсы, а когда выяснилось, что есть,
а 5% знают о нем - это общеизвестный?! Хм.. новый симптом ЛГМ.
Потому как я знаю достаточно обе платформы, даже дипломом админа линукса могу подтвердить, если хош, но то звание - пустое место, потому я о нем даже не упоминаю как правило, это как первое место на утренике в детсаду, зачем о нем вспоминать достигнув иных уровней. Несерезное звание, и Вам им кичится не следовало бы. Но то ваш выбор. Это как работаю в министерстве.. дворником. Я разумеется админом ни часа не работал, так обучился потому как шара и чисто для себя, для кругозора ;) Кстати, а Вы высшее собираетесь закончить, или и так сойдет?
//Если вы клоните к тому, что мой выбор перла проистекает исключительно из невозможности писать на Си
Ага, только хуже, не в языке дело )) Мое описание возможностей ищите в #344 и считайте за ТЗ. Повторите на... да хоть на перле (зачем насиловать писать на неизвестном Вам языке, я гуманист, и Рождество к тому же) - продолжим диалог на равных.
// я прекрасно понимаю, что для подобного вида задач, там где я управлюсь десятком строк на перле, на си придется писать полтора десятка страниц.
Ну я управился в 50 строк ;) Это ли не показатель разницы в уровне. Нет, это просто капитуляция. Ладно, принимаю, токо ненадо больше "простынь" на три экрана, санитары нервничают. А на тормознутость перла объем Ваших постов не влияют. Это технический форум, словоблудие тут цены не имеет. 35 раз - значить 35 раз! Не согласны - аргументы, цифры, ссылки. Засерать форум своими высерами безсмыслено, это не доказательства.
//для вас перл -- это тот же Си, только медленнее.
Ну что вы! Перл намного противней! Как вобще Вам в голову пришло такое писать! На Си написано все! Все что упоминалось тут - винда, линукс, самба, апача, интерпретатор перла. А на перле что, кроме гомнокода некоторых админов? Как на нем, обработчик прерывания писать? Или драйвер? Даже на ту же ардуино хрен чего напишеш. Так безполезная отрыжка ИТ-прогресса, последная надежда умственно обездоленых айтишников или гуманитариев безневинных (понятно не в упрек им, их основной интерес совсем в другой области и для, к примеру биолога, умение перловку забабахать - весомо, как для меня бы инфузорию препарировать). Но претендовать на рассуждение о архитектуре софта на основе знания перла - ну утреник детсада, я там выше пояснял.
//Килл в линуксе считается полностью законным способом завершения любой программы и любого процесса
))) Ага. Только серверный сокет еще минуту зависает открытым, и повторно запустить сервак можна только после этого. Кому ты лажу гониш, админ. )))
//Атакуя меня персонально, вы скорее вызываете у меня приятные эмоции,
Так всегда пожалуста ))
Пользуя паузой, пока a5021 пишет.
Господа, с кнопкой Oranga, кто разобрался? В инетах пишут, что она просто заведена на GPIO, однако на тех контактах что на раземе и что доступны из виринга и командой gpio её вроде нет. Кто получил с неё сигнал?
Ага. Рассказывайте. То вы MS Word в линь тащите, т.к. другого примера привести не можете по причине отсутствие "общеизвестного софта", то "достаточно знаете обе платформы". Интересно, вы и вправду верите, что подобной галиматьей можно кого-нибудь развести?
А где, говорите, вам пригрезилось, чтобы я этим кичился?
А вам, собственно, какое дело до моего образования? И почему только образование? Заходите уже сразу через национальность, материальное положение, социальный статус и политическую ориентацию. Для выкапывания аргументов, с последующим употреблением их в технических спорах, сии почвы для вас должны быть более благодатны.
А мне это зачем, да на таких-то равных? Решать ваши задачи предложенным вами же ракообразным способом? Скажите, вы всех кроме себя идиотами считате?
Ну я управился в 50 строк ;)
Вам с какого перепугу примерещилось, что речь изначально шла именно о вашей задаче? Вы чего такое опять брякнули невпопад?
Не раздувайтесь. MS Word, как образчик организации процессов в лине -- ваш уровень. Вы им уже ослепительно блеснули, теперь, правда, отмыться уже вряд ли сможете.
Сказал демагог, двумя абзацами ранее проявлявший необычный для вопросов обсуждаемых на технических форумах интерес к моей внефорумной биографии.
Не утруждайте себя. Ваши своеобразные представления о перле мне понятны.
Извольте вкурить цитатку из мануала Апача:
In order to stop or restart the Apache HTTP Server, you must send a signal to the running
httpd
processes. There are two ways to send the signals. First, you can use the unix kill command to directly send signals to the processes.kill -TERM `cat /usr/local/apache2/logs/httpd.pid`
Так и хочется крикнуть всем этим апачевским мерзавцам: "Негодяи! Что же вы делаете? Ведь там же
детиоткрытые сокеты!!!"Возвращаю ваш мяч: "Кому ты лажу гониш, админ."
Нда. Я действительно наблюдаю интересный факт. Проблема с софтом который бы:
1. Был общеизвестен и широко распостранен.
2. Был распостранен на обеих платформах.
Можна попытатся чего из браузеров вспомнить - так там IE>50% а самый популярный двухплатформенный хром токо 24 что для широко распостраненного маловато. С редакторами всех мастей - тоже понятно, вероятно OpenOfice претендовал бы на чтото, но его на рынке такой мизер. Хотя пожалуй наиболее подходящий - Adobe Acrobat, не уверен что о нем знают 80% пользователей ПК, но более 50% пожалуй да. Годится как пример однопроцессного распостраненного приложения. Что поменяется в рассуждениях от замены MS Word на Adobe Acrobat?
А вам, собственно, какое дело до моего образования?
Значить попал вопрос в цель. А дело вот в чем. "задача универа — дать определенный стиль мышления и умение находить информацию, воспитать критический подход к фактам и умение вести аргументированый диалог." Все то, чего у Вас нет. Вы занимаетесь базарной демагогией, вместо того, чтоб просто следующие вопросы и либо согласится, либо аргументировать хот чем либо весомым, бред пациента с ЛГМ - не аргумент, нужны цифры, ссылки, опыты, эксперименты.
Факты следующие.
1. Перл тормознутей. По имеющимся данным в 35 раз. Ссылка была выше.
2. Необходимость дробить приложение на много мелких процессов - вымысел. Существуют примеры успешных популярных однопроцесных приложений, в т.ч. и под линуксом. Под Виндой намного более, в следствии её большей популярности.
3. Приведеный Вами код на перле блокирующий, что исключает его применение в составе сложного приложения, выполняющего задачу удаленног (через веб) контроля всей специфической переферии и (GPIO, I2C, TCP и пр.) Что вынуждает перейти к многопроцесной архитектуре, и противоречит KISS. Вы какбы не отрицаете этот пункт.
4. Многопроцессная архитектура всегда более ресурсоемка и сложны в написании и отладке чем однопроцесная, в. т.ч. из-за необходимости синхронизации взаимодействия процессов. Расписано выше на примере многопроцесной организации простого действия.
5. Приведенный Вами код на перле не управляемый - завершение вечного цикла только только килянием, точка в которой оно произойдет случайна, что делает корректное завершение невозможным или затруднительным (см. ниже про апачу). Завершение по сторонней инициативе, сигнал с GPIO или команда от веб клиента невозможны.
6. Статус Вашего код не понятен. Вы утверждаете что я (не Вы - как автор кода, а почемуто я) должен "такую простую конструкцию, что, так сложно представить". И в другом месте "Я вообще-то сдернул его из куска рабочего скрипта". Внесите ясность, код с поддержкой горячего подключения тестировался?
7. Обемы исходного кода на перл и си соизмеримы. Мне символы считать лень. Хотите - посчитайте. Я принципиальной (раз в 3 и более) не вижу. Учитывая что в коде на перле напроч отсутствует контроль ошибок и сборка фрагментированых строк. Можна считат размеры приблизительно одинаковыми.
Исходя из пп.1-7 ответ на вопрос:
Таки да! И сильно.
Ах да, чуть не забыл.
ПС. И хватит этого базарного словоблудия, понимаю что "хочется крикнуть всем". Это от безсилия. Не надо. Пишите просто и по пунктам, с сылками, цифрами и т.д. Или не пишите. Но плодить флуд про самбу, апачу и пр. не надо.
Тут нужно говорить не о интересном факте, а скорее о интересной и крайне щекотливой ситуации. Для вас. Суть ее в том, что сморозив полную чушь, вы теперь с остервенением мечетесь в попытках дезавуировать ранее сказанное, заболтать тему и перевести стрелки, совершая дикие прыжки во все стороны одновременно. Выглядит зрелищно, но крайне комично.
Завязывайте клоунаду устраивать. Мы оба прекрасно знаем, что произошло. Никакое количество словестного шума не покроет и не отменит ни этот ваш конфуз, ни все прочие глупости, которые вы на себя понацепляли. Вы напрасно тратите свои силы.
Единственное, куда вы все время попадаете с удивительной точностью -- это пальцем в небо. Не занимайтесь самообманом и не приписывайте себе незаслуженных достижений.
Вообще-то, в той или иной формулировке данную "величайшую мудрость" озвучивают еще на организацонном собрании для поступивших на первый курс. Вы тут кем себя хотите изобразить, изрекая с важным видом вдрызг заезженные штампы?
И понеслось в сто первый раз опять по новой. И это не смотря, что я уже комментировал качество этих "35 раз", а так же настойчиво пытался выяснить, где вам не хватает производительности перла и как оная "тормознутось" отравляет ваше существование. Ответа небыло и нет. Вместо ответа вы вновь и вновь принимаетесь выкрикивать какие-то невразумительные агитки, нимало не понимая их сути. Далее говорить не о чем.
Бред собачий. Разбив весь функционал по принципу "одна задача -- один процесс", легче и проще, что писать, что отлаживать уже хотя бы потому, что уменьшается число наблюдаемых состояний. Тут можно даже углядеть некую параллель со структурным программированием. Как там части кода, реализующие некий связанный набор действий, обединяются в отдельную функцию и изолируются от остальной программы, так и здесь происходит выделение обособленного функционала в отдельный модуль или процесс.
Большие у вас проблемы вызывает вызов отдельных функций в программе и обмен параметрами между ними? Теперь представьте, что кто-то вам начинает задвигать, что дробление на функции это так сложно, запутано и ресурсоемко, что аж жуть. Дичь? Дичь. А ведь именно так вы выглядите в моих глазах, когда несете здесь пургу точно такого же свойства про неподъемные издержки "многопроцессной архитектуры". Как-то даже странно, что вы этого не понимаете и столь глупо подставлятесь в простой ситуации.
Теперь о разработке в подходе с изолированными процессами. Конкретный пример: скрипт в сообщении 343 выполняет простую фукнцию -- принимает данные от ардуины и переправляет их некоторому кругу получателей. В примере с целью упрощения не показана обработка принтых данных, но она туда легко может быть встроена, причем любой сложности. Получателями при этом могут быть системные сервисы, другие модули, удаленные ресурсы и т.п. Скрипт легко масштабируется путем добавления блоков с типовым функционалом. Например, если возникает потребность выгрузки в облако или популярный сервис в и интернете, то достаточно добавить несколько незамысловатых строк, чтобы оно начало работать тут же. Это о простоте разработки. Да и отладки, пожалуй.
Чтобы далеко не ходить, вот кусок кода на перле из реально работающего (отдельно уточняю, а то у вас опять когнитивные проблемы насчет работоспособности кода возникнут) с середины прошлого года похожего скрипта:
Десяток строк и данные с ардуины в формате json отправляются на популярный IoT сервис UBIDOTS. Легко, просто и наглядно.
Оттачивая функционал модуля, мне не нужно знать, чем у меня в это время занимается GPIO, ADC и всякая прочая периферия, т.к. за это отвечают другие автономные модули или системные процессы. Чего бы я не наворотил в модуле приема данных от ардуины, я всегда могу быть спокоен, что остальные модули у меня не испытывают никаких проблем с нормальным выполнением своих задач.
Когда мне вздумается запилить дополнительный функционал для другой периферии, я стану кромсать уже другой модуль, совершенно не задумываясь, как при этом будет себя чувствовать, скажем, модуль связи с ардуиной.
При вашей же "неблокирующей" схеме, запиливая новый функционал (разработка), каждый раз придется делать врезку в громадных размеров главный цикл, расчесывая репу, как бы не сломать чего или не заблокировать. Любая добавка даже небольших кусочков кода таким способом, привносит угрозу нарушения работоспособности управляющей программы, с выносом к чертовой бабушке функционала устройства целиком. На одной только проверке, не порушилось ли что, трудозатраты на разработку и отладку возрастают многократно.
Наверное откуда-то оттуда ростут ноги у ситуации, когда не справившись с веб-сокетом, барышня с воплями бросается в пруд, яростно отбрасывая в разные стороны сандалии и на лету посылая этот гребанный мир в едреня. "Хрен-то с ними, с этими долбанными GPIO и сервами! Пусть там сами рулятся как-нибудь." -- последние ее слова.
Вам отчего-то подобное кажется естественным, а мне лишь остается порадоваться, что это ваше устройство, а не мое.
Затягивая по десять раз подряд один и тот же фальшивый плачь, будто стоит лишь отпасть ардуине (еще бы понять, насколько это возможно без постороннего вмешательства), как все рушится, вы в этих своих бреднях как-то упускаете из виду очень важные нюансы. Данная галиматья вызывает изумление даже не тем, что она описывает совершенно невозможную ситуацию. Любопытно другое. По какой-то причине вы неспособны понять, что даже в этих ваших недалеких фантазиях рушится не весь функцинал устройства, а только небольшая его часть. Фиг с ним, вообразим, что ардуина отпал, отпал процесс/модуль связи с ним, но остальное-то осталось на своих местах и падать никуда не собирается. GPIO под контролем, сервы под присмотром, никакого разброда и самодеятельности. И это радикально иная ситуация, чем в вашем случае, когда из за одной утопленницы в сирот превращаются сразу все участники хора. Такую принципиальную разницу вы наблюдать совсем не в состоянии ?
В отличие от вас, мне нет необходимости тужится и мучительно придумывать бредовые напасти, пытаясь возвести напраслину. Я знаю о проблеме и говорю о ней, опираясь на собственный опыт.
Не так давно в теме про драйвер мотора я писал код на столь горячо вами любимом и рассово-правильном си. Код правда для stm8s003 (исходники доступны в ветке), но основные действия выполняются в неблокирующем стиле, чтобы вспоминать его тут, как раз к месту. Шерстить все из одного цикла там пришлось из-за необходимости реагировать практически в реальном времени на поступающие по нескольким каналам управляющие команды, плюс задача отслеживания происходящего с движком. На маленьком МК, при наличии скудных ресурсов, бешенный поллинг всего и вся, чуть не единственный доступный способ, хоть как-то запилить нужный функционал. Там это оправдано и имеет право на жизнь. Но мне в кошмарном бреду не может прийти в голову тащить за волосы данный подход на линя и считать его единственно верным. Линь -- это совсем другие ресурсы, подходы и возможности. В лине нет никакой нужды бешенно колотиться в единственном цикле, не в состоянии понять, что давно бы уже пора стащить этот ардуиновский loop() с головы.
Да полная херь все то, что вы тут плетете. В терминах функционирования устройства целиком -- это системный процесс, чей функционал не предусматривает ни остановки вообще, ни реакций на сторонние раздражители. Нет ни нужды, ни причины его когда-либо останавливать, пока устройство работает в своем обычном режиме. Все, что происходит вне его нормального work-flow -- это нештатная ситуация, авария и дизастер, причины которых и последствия должны устраняться иными средствами и способами. Не демонов это печаль.
Приняли данные от ардуины, передали дальше. Приняли, передали. И так до бесконечности. Это unattended процесс, к которому мерки виндузячей юзабилити уровня пользовательского приложения не применимы.
Ответ: да. Еще что-то интересует или вы с иной целью спрашивали?
Я ж вроде написал, как вы можете самостоятельно это проверить. О чем вы тут все канючите, если сами можете во всем в два счета убедиться? У дипломированного админа проблемы с запуском простейшего скрипта в несколько строчек?
Мне не интересны ваши фантазии на сей счет. Данное заявление для вас является приговором и не нуждается в дальнейшем обсуждении.
Таки да! И сильно.
Не смею более тревожить эту вашу восхитительную негу в мире грез и волшебных фантазий.
Вы на своего любимого конька "Си vs чего-нибудь" что-ли под шумок вскочить пытаетесь? Слезайте, Семен Михайлович, гражданская давно закончилась.
Ух-ты! А на перле, значит, никак невозможно подобное? Ну что за ерунда, а? Как только начинаются конкретика и технические подробности, так предводитель "сообщества разрабов" мнговенно норовит с грохотом завалиться. Вот же напасть. Ну давайте я уж под нос вам подложу некую пищу для размышлений:
Скажите, как программисту с опытом, хорошо знающему перл, удается ли вам в этой строчке разглядеть что-то осмысленное или она представляется вам беспорядочным набором символов? Если последнее, то вынужден вас огорчить, т.к. данный код представляет собой простейший обработчик сигналов, о каковой фиче вы говорили с таким видом, будто она, кроме как из си, более ниоткуда не доступна. Ну и какие ваши рассуждения о перле после этого, можно воспринимать всерьез? Правильно, никакие, т.к. он вам совершенно неведом. Вот и не сотрясайте понапрасну страниц форума своим бредом на сей счет. Ну не заменяются знания фантазиями, с каким жаром их ни озвучивай.
Конечно не надо. Я и сам вижу, сколь болезненны для вас упоминания никсового софта, который построен на принципах, прямо-противоположным от вами декларируемых. То ли дело для вас оперировать понятиями вида: "390 больше 9" или примерами из жизни MS Word-а. Ведь просто, понятно и лежит точно в плоскости ваших компетенций. А остальные малопонятные вам линуксовые подробности, разумеется, только чушь, флуд и мракобесие.
на праздниках на вторую флешку установил серверную версию linux, пробовал дебиан но чтото не пошло с установкой php i phpmiadmin. В общем не стал ковыряться а нашел вот такой образ http://dietpi.com без иксов. Встал хорошо и сразу, темпиратурка конечно отличается сильно, выше 40 не подымается с холодильником. а в убунте десктопной и до 80 подымалась если нагружал.
в общем поставил LAMP, и могу сказать в принципи удбно пользоваться и серверной версией. через ssh и аналог тотал командера. и вооще не страшно))))
темпиратурка конечно отличается сильно, выше 40 не подымается с холодильником. а в убунте десктопной и до 80 подымалась если нагружал.
через ssh и аналог тотал командера. и вооще не страшно))))
Для a5021. У меня нет ни времени ни желания читать эти грязные простыни ночного изготовления. Тем более чего отвечать. Думаю я не одинок в этом. Хотите чё сказать - коротко, по пунктам (я их обозначил) и доказательно. Аргумент уровня "мамой клянусь, перл быстрый" кроме улыбки сочувствия ниче не вызывает. Пролистал вашу "простыню" - ссылок 0, собственных сравнительных тестов - 0. Глаз выхватывает только мантру "линукс - совсем, другое". Типичный ЛГМ. Все ИТ не такое, угу, "весь полк не в ногу, а я в ногу". Уже было, нафиг, нафиг.
Я както упоминал графики по технологии SVG. Легко, быстро и без БД и лишних телодвижений.
Теперь подробней. Код.
Коротко о работе. Сразу проверяет наличие файла-графика с указанным именем, ссли такого нет - копируем из шаблона сразу в каталог апача, его он будет выдавать клиенту. Далее, если файл не открыт - то открываем и отступаем от конца файла на длину закрывающего тега, мы его затрем последующим выводом. Потом в файл добавляем графический примитив - линию от предыдущей точки графика к текущей, используя заданый цвет. И если вывод точек в данный момент времени завершен, на что указывает последний параметр, - выводим закрывающий тег и закрываем файл. Теперь его могут посмотреть веб-клиенты. Почему именно так- функция ориентирована на построение временных графиков многих процессов сразу на одном изображении.
Теперь о шаблоне - это простор для творчества в плане оформления графиков, он лежит в файле TempGraph.svg рядом с исполняемым файлом. У меня сейчас там такое
Весьма минималистически. Для суточных графиков из расчета минута - точка. Вызываю функцию соответственно раз в минуту так
В принципе ежеминутность - не догма, можна делать как удобней.
Если хочится большего, то 2 пути
1. SVG отлично совместима с другими веб-технологиями (css, html, JS и пр.), можна дорабатывать самому ориентируясь на них.
2. Использовать готовые наработки, веб трещит от вариантов либок построения графиков, на вход им как правило нужен xml с данными. Эта же функция позволит его получить после небольших правок: шаблон xml делаем, закрывающий тег его же, ну и вместо графического примитива svg делаем элемент xml. Родство svg и xml сказывается.
А тем временем в броузере графики подросли. Выглядят так
Красное - чистота воздуха с АЦП по I2C (пик - это я дунул в MQ), желтей - температура с внутренего термометра ардуинки на USB (положил его на проц оранжа, а потом снял). Почти час собирало данные.
А получившийся файл здесь, его можна сохранить html-ом и лично убедится.
Как видите все очень просто.
ПС. Про закрытие тега </svg> В принципе все работает и без него, можна упростить код. Тогда просто доцепляем строки в конец файла и все. Но лучше соблюдать стандарт, броузеры разные бывают.
Не пренебрегайте гигиеной. Почистите монитор.
О чем вы? Нечем вам отвечать. Нет у вас нужной квалификации.
Постоянное упоминание воображаемых единомышленников и попытки озвучивания коллективного мнения, все это свидетельствует о шаткости ваших позиций и вашем понимании неблагополучности ситуации для себя.
Я вообще-то ответил по всем пунктам без исключения и не моя вина, что оценивать доказательства оказалось вам не по зубам. То, что всю конкретику вы чохом обозвали "грязными простынями" хорошо показывает, что никакое "доказательно" вам никогда и не требовалось. Цели ваших вопросов иные и я ранее уже это отмечал. Вопросы вы задаете исключительно из демагогических соображений "а нельзя ли будет в ответах поднакопать какого-нибудь дерьмеца". Когда с дерьмецом случается облом, никакое предметное содержание интереса для вас более не представляет. Вы отлично проиллюстрировали это последним своим сообщением.
Вам плакать нужно. Ваша манера -- сначала приписать оппоненту какое-нибудь бредовое утверждение, а потом сокрушаться по этому поводу -- выглядит весьма дурно. Это уж не говоря про жесточайший оксюморон ("улыбка сочуствия"), который вы тут ввернули совершенно горбатым образом, тщетно тужась усилить эмоциональную выразительность. Только когнитивными проблемами можно объяснить случай, когда "сочувствие" и "улыбку" вы употребляете в одном контексте. У психически-полноценного человека состояние сочувствия никогда не сопровождается улыбками. Это нонсенс.
Что же до того, быстрый перл или медленный, я ведь просил вас пояснить, в каком прикладном аспекте производительность перла вам видится недостаточной. Что вы мне ответили? Ничего не сомгли ответить. Ну раз ответить не можете, то и обсуждать скоростные качества перла с вами нет никакого смысла. Нет у вас достаточных компетенций для этого и вы сами в этом расписались.
Стереотипы, ярлыки и штампы -- вот весь нехитрый арсенал воинствующего демагога, вторнувшегося в область знаний, доселе ему неведомую. Не испытывая никакого пиетета ни к одной операционной системе, не нахожу возможным откликнуться на этот ваш страстный призыв немедленно принять участие в холиваре линь vs винда. Коли испытываете потребность, обратитесь лучше к кому-нибудь другому.
Товарищ полководец, мне стоит совсем оставить всякие попытки призвать вас говорить исключительно от своего имени? Уж извините, но начинает складываться впечатление, что не воображая себя во главе миллионов едимышленников, вы и говорить-то толком не можете.
У психически-полноценного человека состояние сочувствия никогда не сопровождается улыбками. Это нонсенс.
Последние три - для вас.
"Вот какими могут быть спектры Улыбки:
— дружеская улыбка,
— приветливая улыбка,
...
— улыбка сожаления,
— улыбка сочувствия,
— улыбка сострадания.
УЛЫБКА МОЯ, ГДЕ ТЫ? МЫСЛИ В УЧИТЕЛЬСКОЙ. ШАЛВА АМОНАШВИЛИ
Ша́лва Алекса́ндрович Амонашви́ли— советский и российский педагог и психолог. Например тут - http://www.lomonosov.org/article/my_smile.htm , ну и в Вики.
О чем вы? Нечем вам отвечать. Нет у вас нужной квалификации.
каком прикладном аспекте производительность перла вам видится недостаточной. Что вы мне ответили? Ничего не сомгли ответить.
В http://arduino.ru/forum/otvlechennye-temy/orange-pi-one-nuzhen-start?page=7#comment-249454 мной было сказано четко.
"На последующие вопросы ответ сразу в гугле ищите. Каждому - свое. "
Что не понятно? Думаш я шутки шучу, ты буш игнорить мои вопросы, а я перед свиней бисер метать буду. Писдуй в гугл. Теперь он занимается твоим ликбезом и лечентем.
Если не доходит чем тормознутый код хуже быстрого, то никто не поможет. лечи ЛГМ.
Пацаны, завязывайте....
Ваш спор выглядит некрасиво, да и тему засираете...
Извините, что сунулся
Я че, не понимаю шоле. Я ему пишу
"Для a5021. У меня нет ни времени ни желания читать эти грязные простыни ночного изготовления. Тем более чего отвечать. Думаю я не одинок в этом. Хотите чё сказать - коротко, по пунктам (я их обозначил) и доказательно."
Он сново лепит пару экранов помоев. Попытки конструктивно с ним общатся ниче не дают.
Де воще модератор?
Истерикой удовлетворен. В отсутсвие иного содержания, вскипевшее дерьмо поперло через крышку.
Раз удовлетворен - не лишне и целиком процитровать.
В http://arduino.ru/forum/otvlechennye-temy/orange-pi-one-nuzhen-start?page=7#comment-249454 мной было сказано четко.
"На последующие вопросы ответ сразу в гугле ищите. Каждому - свое. "
Что не понятно? Думаш я шутки шучу, ты буш игнорить мои вопросы, а я перед свиней бисер метать буду. Писдуй в гугл. Теперь он занимается твоим ликбезом и лечентем.
Если не доходит чем тормознутый код хуже быстрого, то никто не поможет. лечи ЛГМ.
А мне вот такие графики нравятся )))

И не меньше десятка раз, как вы это любите. Заваливать шелухой технический форум -- ваше призвание.
Такие тоже ничего:
Perl + RRDTool, взято отсюда.
Но для себя более практичным нахожу выгружать все данные на публичный сервис и брать разрез за нужный период c помощью тамошних средств визуализации, когда это требуется. Вот, например, хроника оледенения последних дней взятая только что:
На скриншоте не видно, но график обладает некой интерактивностью и можно посмотреть любую точку более подробно.
На narodmon.ru визуализация тоже, в принципе, неплохая.
И не меньше десятка раз, как вы это любите.
Ок. Заводим отдельную тему, я буду тя посыла а тебя это будет удовлетворять. Мы нашли друг друга, если бы раньше не скрывал мазохистскую натуру - не пришлось бы те эти простыни дерьма набивать. Пиши просто и коротко, условие посылать не меннее десятка раз принимается. Знаю тут на форуме еще любители есть, для них - отдельный счетчик, мне всеже эксклюзив, согласись, я заслужил десяток. Токо уж на каждый раз - удовлетворение проявляй, можеш хоть мяукать, мне в принципе без разницы ;) но приятно знать что читаеш. Не сегодня извеняй - короткий день, только два раза... нет три. Еще процитирую сейчас.
В http://arduino.ru/forum/otvlechennye-temy/orange-pi-one-nuzhen-start?page=7#comment-249454 мной было сказано четко.
"На последующие вопросы ответ сразу в гугле ищите. Каждому - свое. "
Что не понятно? Думаш я шутки шучу, ты буш игнорить мои вопросы, а я перед свиней бисер метать буду. Писдуй в гугл. Теперь он занимается твоим ликбезом и лечентем.
Если не доходит чем тормознутый код хуже быстрого, то никто не поможет. лечи ЛГМ.
)))
ПС. Финал беседы на удивление положительный ))))
А мне вот такие графики нравятся )))
Это откудово? Похоже сайт какой-то.
Глядя на него понял что "легенда" таки не лишнее. Я то знаю что к чему, а вот пояснять каждый раз, что где не хочится.
Теперь так:
В шаблон для этого добавил
Еще какой! Видели бы вы себя со стороны.
Еще какой! Видели бы вы себя со стороны.
Принимается как знак удовлетворения от посылки.
Не думал, что еще и восхищатся моим видом со стороны будеш! Тогда те бонус - пиздуй на хер.
Кстати по графикам из #379. Виден разрыв в данных, сервак останавливался, вот и разрыв. С таким моментом не всякая либка- рисовалка справится. Надо учитывать это.
Восхищаться? Как-то не хочется мне вот таким восхищаться:
Потешаться, еще куда ни шло.
У вас там сегодня бенефис?
Боюсь, до нижеприведенного не дополировать. Либо надоест быстрее, либо способности закончатся, а может то и другое вместе.
А тут мне двадцать минут назад пришло в голову сделать совмещенное представление данных по температуре воздуха и состояния батарей моего уличного метеодатчика с целью проследить, как меняется самочувствие нонеймовых солевых батареек в сильный мороз, так я взял, покурочил немного готовый джаваскрипт и извольте получить результат. Не надо ничего ни программировать, ни шлифовать. Данные представляет thnigspeak.com, графики рисует highcharts.com, а я их только наблюдаю и радуюсь. Все это интерактивное, конфигурабельное и можно рассматривать любые разрезы за любые периоды или просто в реальном времени. Cобственно, это и называется "Keep It Simple", а собственноручное написанние визуализаций осталось где-то в 2001 году.
Кстати, насчет батареек: ничего, держаться копеешные батарейки. При падении температуры с 0 до -32 градусов цельсия, снижение напряжения на паре последовательно-включенных батарей АА составило около 70 милливольт. Таким образом, на все страшилки, что обычные батарейки дохнут на морозе, можно наплевать и забыть.
кстати кое что попалось интересное для работы с пинами апельсинки http://dietpi.com/phpbb/viewtopic.php?f=12&t=249&hilit=arduino
кстати кое что попалось интересное для работы с пинами апельсинки http://dietpi.com/phpbb/viewtopic.php?f=12&t=249&hilit=arduino
Это Вы о чем, о WiringPi ?
А я как по вашему с пинами работаю))) Конечно на нем родимом! Не скажу что предел мечтаний, но вполне рабочая либа. Некоторые пины правда не видит. Я там выше писал выше результаты проверки. Причины разные, часть сконфигурирована под шины, часть просто не выведена (поискал я GPIO11, до сих пор помню), часть просто непонятно чего. Самое противное что кнопку не видет. Кнопка есть, использовать хочется, а фиг.
ПС. Вы его поищите сразу в оранже (/home/orangepi/WiringOP/WiringPi), некоторые образы его уже содержат.
да про него WiringOP, мне он как таковой не нужен но на будущее может пригодится для меня и для форумчан
Конечно пригодится. Там же родные серцу многих digitalWrite и digitalRead ;). Пример Blink для старта в один тык. Для старта проще нет. Но есть аппаратная проблема - в отличии от ардуин, нет светодиода на ножке блинка.
я чутка переделал код для питона , зацените
натолкнула эта статья http://python.su/forum/topic/12472/?page=1#post-77068
А зачем скорость 9600 ставите, он же USB она ему по барабану?
Графики можно посмотреть за период до двух лет )))
Графики можно посмотреть за период до двух лет )))
Свои? Даже если оранжа еще не было?! Феноменально ;)
коллеги подскажите как замустить терминал при подключении через 3 отдельных контакта RX0 TX0 и через usb-ttl конвектор я все подключил, открыл putti, при старте вижу чтото грузится а потом останавливается
может надо что-то доустановить чтобы можно было работать как с обычным терминалом?
коллеги подскажите как замустить терминал при подключении через 3 отдельных контакта RX0 TX0 и через usb-ttl конвектор я все подключил, открыл putti, при старте вижу чтото грузится а потом останавливается
может надо что-то доустановить чтобы можно было работать как с обычным терминалом?
Нажать клавишу энтер два раза, попадёте в консоль )))
Графики можно посмотреть за период до двух лет )))
Свои? Даже если оранжа еще не было?! Феноменально ;)
так я сбрасываю в базу по протоколу CWOP )))
а на оранже это сделано или как-то иначе какая разница
Мои графики правда недавно там )))
коллеги подскажите как замустить терминал при подключении через 3 отдельных контакта RX0 TX0 и через usb-ttl конвектор я все подключил, открыл putti, при старте вижу чтото грузится а потом останавливается
может надо что-то доустановить чтобы можно было работать как с обычным терминалом?
Нажать клавишу энтер два раза, попадёте в консоль )))
спасибо за ответ
Графики можно посмотреть за период до двух лет )))
Свои? Даже если оранжа еще не было?! Феноменально ;)
так я сбрасываю в базу по протоколу CWOP )))
а на оранже это сделано или как-то иначе какая разница
Мои графики правда недавно там )))
А причем вообще CWOP - Citizen Weather Observer Program. Я вобще графики температуры 328р и качества воздуха на кухне показывал. Они к погоде как относятся )).
Если вопрос чисто о внешнем виде - так его я могу сделать вобще произвольным, ни один сервис не сравнится. Ну и хранить разумеется буду сколько захочу, пока место на диске не жалко. Но не вижу смысла дольше недели. Кому оно потом надо.
Да и по функционалу тоже. Показания MQ135 вобще довольно странные, он типичный "показометр" про единицы измерения лучше не спрашивать )) Потому качество воздуха сейчас в миливольтах, как с АЦП идет. Но не очень удобно, если чем запахнет - зашкаливаетза 1000, а в норме от воздуха на улице зависит от 35 до 50. Как и то и то на графике отобразить? Приходится хитрый логарифмический масштаб делать. Не уверен что сервисы позволят задать свою функцию масштабирования.
а как же годовой график посмотреть как в течении года менялась
А какой смысл в годовом графике температуры 328р и качества воздуха?
При желании их собрать можна так же, и за месяц и т.д. но смысл в чем?
там тоже графики, гламурненькие, а движком по диаграмме можно посмотреть данные в любое время )))