|
|
  |
Сложные программы |
|
|
|
Jan 16 2017, 10:24
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(Эдди @ Jan 16 2017, 12:06)  Вот, говорите, "сложные программы". А я вчера на баг opencm3 в делении на STM32F0 наткнулся. Полдня пытался понять, почему виснет МК, пока не выловил, где именно он виснет. Надеюсь, баг-репорт отправили? Ссылочку можно? Цитата(Эдди @ Jan 16 2017, 12:06)  Буду теперь свой "фреймворк" собирать, раз уж ничего нормального под STM'овские микроконтроллеры в природе не существует ☹ Да, конечно. Уж свой-то "фреймворк" точно будет без единого бага
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jan 16 2017, 10:53
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
Цитата(AHTOXA @ Jan 16 2017, 13:24)  Надеюсь, баг-репорт отправили? Нет, конечно. Какой смысл отправлять баг-репорт версии, которая 1.5-2 года назад устарела? По-моему, они там уже все баги с F0 позакрывали, т.к. видел там недавно довольно длинный список баг-репортов и пулл-риквестов, который почти полностью был закрыт. Но тут уже выбор: либо использовать чужую библиотеку и матюкаться каждый раз, как авторы поломают API (а раз прецедент был, уже доверия нет), переписывая абсолютно все свои поделки под новое API, либо городить свое, где все будет надежно. Я выбираю второй вариант. Цитата Да, конечно. Уж свой-то "фреймворк" точно будет без единого бага  В своем проще: никому пулл-риквесты слать не надо. Просто закрыл баг, и сделал коммит.
|
|
|
|
|
Jan 16 2017, 11:09
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(haker_fox @ Jan 15 2017, 12:18)  Расскажите, пожалуйста, по-подробнее про фреймворки. Ваш код для гирлянды (geektimes) можно считать фреймворком? Потому, что я его на днях скачал, по-маленьку изучаю ваш подход. Ибо стало интересно  Да, это часть фреймворка. Не самая большая. Главное в нём RTOS с промежуточным софтом. Главное в RTOS - это отладочные возможности и диагностика. Главное в отладке - это разнообразие и быстрота отладочных каналов и инструментов анализа на PC. Поэтому у меня в обязаловку всегда есть либо UART со скоростью не менее 1,5 Мбита в сек, либо USB FS/HS с не менее чем с 2-я виртуальными COM портами, либо Ethernet, либо канал RTT через SWD. В директории VT100 у меня расположен монитор VT100 с псевдографическим меню. Этот монитор работает через драйвера и он многозадачный. Т.е. в одном терминале через com порт можно открыть один монитор , в другом окне терминала через другой com порт открыть другой монитор, и еще через интернет telnet открыть третиий и т.д. Таким образом можно построить на PC многооконную отладку где сразу видеть в реальном времени листин лога, регистры периферии, выпонять настройки, работать с Shell RTOS и проч. И это только один из путей или одна из технологий отладки имеющаяся в моем фреймворке. В проекте гирлянды все это присутствует, но частично не задействовано. В следующем проекте унивесального модуля управления мотором с гирляндой будет более расширенный вариант использования отладки и кстати с выводом в Matlab. Багтреккеры, контроли версий и прочая бюрократия не имеют почти никакого отношения к качеству, скорости и сложности моих разработок. Имея развитую отладку баги не накапливаются, соответственно не надо хранить о них никакой информации. А контроль версий у меня играет роль исключительно бэкапа да и то не для всего, а только для проектов ПО.
|
|
|
|
|
Jan 16 2017, 11:27
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
AlexandrY, почем матлаб брали? Академическая версия или полноценная? Интересно просто, во сколько обойдется удовольствие сменить octave на матлаб (пока, правда, не возникало никаких задач, требующих именно матлаба, но есть кое-какие прелести в wavelet-тулбоксе, аналог которому я полгода писать буду, и симулинке). У нас лет 15 назад пара человек даже нарисовали в матлабе свой фреймворк для обработки спектров, да забили на это дело и перешли в более удобный IDL. Сам матлаб я видел лет 7 назад последний раз, да и то версия какая-то урезанная была (хотя вроде бы линуксовая ничем от вендузячьей не должна отличаться).
|
|
|
|
|
Jan 16 2017, 13:01
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (Эдди @ Jan 16 2017, 15:06)  раз уж ничего нормального под STM'овские микроконтроллеры в природе не существует ☹ Ну да. есть там ошибки. Я их правил тоже. Правда не то, чтобы ошибки. Скорее функционал наращивал. А затем оборачивал в классы на Си++) Это же бесплатно, чего требовать? QUOTE (AlexandrY @ Jan 16 2017, 19:09)  И это только один из путей или одна из технологий отладки имеющаяся в моем фреймворке. Вас понял! Спасибо! Очень интересно!
--------------------
Выбор.
|
|
|
|
|
Jan 16 2017, 20:13
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Grizzzly @ Jan 15 2017, 12:34)  В этом-то как раз Эдди прав. Только поменьше бы экспрессии  Цитата(Grizzzly @ Jan 15 2017, 12:34)  Цитата(Укушенный воблой @ Jan 15 2017, 12:31) Понятно. "Мышка для лохов, а правильные пацаны юзают командную строку". Вопросов больше не имею. В этом-то как раз Эдди прав. Только поменьше бы экспрессии  Ну, и какому клиенту вы продадите железку с "чиста-канкретной" командной строкой?? Лет надцать назад может кто-нибудь и купился бы, но сейчас...  Цитата(Эдди @ Jan 15 2017, 14:31)  l Производительность труда в CLI намного выше, чем в GUI. Если кто-то думает иначе, он просто никогда не работал в командной строке. Элементарный конвейер из sed, grep, awk и т.п. заменяет уйму GUIшных тормозных утилит. Вам не кажется, что еслиб было так, то 90% техники сегодня было б не с гуем, а командной строкой?? Подумайте еще раз, создается впечатление, что вы живете в своем мире конца 80х на XT или AT286.  ЗЫ. Кстати, в так вам ненавистной винде командная строка тоже есть и сам иногда пользуюсь ей и bat-файлами...
|
|
|
|
|
Jan 16 2017, 21:12
|

Местный
  
Группа: Участник
Сообщений: 201
Регистрация: 28-07-16
Пользователь №: 92 747

|
Цитата(Эдди @ Jan 15 2017, 11:31)  В том числе. Такими телефонами и пользуюсь, не понимаю, как народ вместо телефона планшет карманный таскает. Перепробовал разные варианты. Скольки-то там ядерный смартфон лежит без дела, а компактный джавафон прижился. Цитата(Эдди @ Jan 15 2017, 11:31)  Производительность труда в CLI намного выше, чем в GUI. Если кто-то думает иначе, он просто никогда не работал в командной строке. Элементарный конвейер из sed, grep, awk и т.п. заменяет уйму GUIшных тормозных утилит. Соглашусь. Единожды попробовав и ощутив неограниченные возможности CLI, сложно заставить себя перестроиться на GUI. У GUI низкий порог вхождения, но быстро утыкаешься в ограничения. CLI предполагает некоторые затраты на изучения идеологии, но зато потом сплошное удовольствие. Цитата(mantech @ Jan 16 2017, 20:13)  Ну, и какому клиенту вы продадите железку с "чиста-канкретной" командной строкой?? Лет надцать назад может кто-нибудь и купился бы, но сейчас...  Ну я продавал. Человеку было нужно, через конфиг-файлы у меня все было готово, GUI front-end городить долго и дороже. Заказчика устроил мой вариант. Цитата(mantech @ Jan 16 2017, 20:13)  Вам не кажется, что еслиб было так, то 90% техники сегодня было б не с гуем, а командной строкой?? Думаю, 90% пользователей GUI в силу разных обстоятельств даже не пытались серьезно работать в командной строке и сравнивать производительности CLI и GUI. Цитата(mantech @ Jan 16 2017, 20:13)  ЗЫ. Кстати, в так вам ненавистной винде командная строка тоже есть и сам иногда пользуюсь ей и bat-файлами... BAT-файлы, конечно, вещь, но с командной строкой NIX-систем это сравнить невозможно.
--------------------
"Классики марксизма говорили, что общественно-экономическая формация меняется с изменением средств производства, которые всегда принадлежали имущему классу. И сейчас мы находимся в системе координат капитализма, когда самые передовые средства производства принадлежат уже не капиталистам. Люди, у которых нет обуви, имеют гаджеты. Сейчас создана такая информационная паутина, что вместо коллективного бессознательного можно говорить о коллективном сознании. Если иметь мозги и гаджеты, можно перевернуть весь мир. Коллективное сознание будет управлять миром! Это исторический путь, который нельзя миновать." Вячеслав Мальцев
|
|
|
|
|
Jan 16 2017, 21:23
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Укушенный воблой @ Jan 17 2017, 00:02)  Тема свелась в холивару ртос\не ртом гуй/не гуй. А про, собственно, ГЛАВНУЮ причину сложности (так сказать, "источник сложности") все забыли Сложность создается тогда, когда программа плохо структурирована. Тут есть несколько вариантов - изначально закладывать в программу, протоколы, с которыми она работает некоторую универсальность, и унифицированность. Это приходит с опытом и каждая следующая программа получается лучше. Как вариант - унифицированные библиотеки сложного функционала, как например, сложные протоколы (усб, кан и пр.) сложные модули (гуй, сетевые стеки...) и собствено программа, которая вызывает этот функционал в своей задаче. Ну и 3й вариант, который тоже не лишен смысла - это модульные экосистемы, или микрофреймворки, как сейчас любят их называть, писать программу под ними легче, но есть и ограничения. Сам мользуюсь всеми тремя способами, в зависимости от ситуации... Цитата(BackEnd @ Jan 17 2017, 00:12)  Думаю, 90% пользователей GUI в силу разных обстоятельств даже не пытались серьезно работать в командной строке И самое главное - даже и не будут пытаться.. ЗЫ. какая командная строка, если сейчас тенденция программы "писать" путем тыканья в кнопки и "галочки", вот уж где я не согласен с гуем, так это в программировании, ибо создать граф. форму и растыкать виджеты мышкой - это удобно, но программу писать - это уж клавиатура и текстовый редактор, конечно, с подсветкой синтаксиса, разумеется..
|
|
|
|
|
Jan 16 2017, 22:25
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
Цитата(Укушенный воблой @ Jan 17 2017, 00:02)  А про, собственно, ГЛАВНУЮ причину сложности (так сказать, "источник сложности") все забыли Главная причина сложности любой программы — сам программист, который пытается из нее невесть что универсальное сделать. Вторичной причиной являются пользователи, которых, как мы уже пришли к выводу, априори считают идиотами (и оно недалеко от этого), из-за чего приходится все четырежды перепроверять и делать мегазащиту от дурака. И все равно на каждую хитрую ж... Вот поэтому если делать только для своего потребления, получается довольно просто: ни с GUI не надо заморачиваться, ни документацию бешеную писать. Да даже можно баги не исправлять, зная о них. P.S. Насчет GUI я уже последние лет 5-6 использую веб-морды для всего и вся (в рамках разумного, конечно; если через веб-морду нельзя, делаю какой-нибудь элементарный просмотрщик картинок на openGL или устраиваю конвейер). Повсеместная поддержка браузерами вебсокетов добавила удобства: теперь запросы воистину стали асинхронными и нет нужды чрезмерно нагружать линию поллингами по 10-30 раз в секунду! Остается только проблема с трансляцией видео: НЯЗ, до сих пор ничего, кроме mjpeg'ов (а то и вообще обновления картинки по таймеру), не придумали. Я пробовал через вебсокеты работать — очень медленно получается, т.к. нужно в base64 изображение передавать и жабоскриптом декодировать. Возможно, следующая реализация вебсокетов будет поддерживать передачу бинарных файлов, а браузеры позволят эти файлы непосредственно отображать. Ну или хотя бы браузеры перестанут течь при приеме mjpeg'ов. И будет счастье.
|
|
|
|
Guest_TSerg_*
|
Jan 16 2017, 22:55
|
Guests

|
>Главная причина сложности любой программы — сам программист, который пытается из нее невесть что >универсальное сделать.
Вы давно из песочницы вылезли? Полагаю, что и не вылезали.
Программа - это данные + алгоритмы, как сказал классик. Данные - это физические параметры, систематизированные (структурированные) наилучшим способом для конкретной задачи. Алгоритмы - это приближение к физической реальности нашего способа установления взаимосвязей.
Все это, в совокупности, определяет сложность моделирования физического мира через призму нашего примерного описания/понимания его.
Физические параметры какой-либо сущности "живут" без участия какого-либо программиста, математика, физика. Алгоритмы, как приближение описательного процесса физики явлений - суть нашего недопонимания физики/информатики.
Оч. простая реализация алгоритма X на java - из нумерологии. Сообразите, что да как:
Arrays.fill(isP, true); isP[1] = false; for (int i=2; i*i < N; i++) if (isP[i]) for (int j=i*i; j < N; j+=i) isP[j] = false;
|
|
|
|
|
Jan 17 2017, 00:29
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (BackEnd @ Jan 17 2017, 05:12)  Ну я продавал. Человеку было нужно, через конфиг-файлы у меня все было готово, GUI front-end городить долго и дороже. Заказчика устроил мой вариант. Ну это же зависит только от того, какую продукцию вы производите  Сложно представить себе мультиметр, логический анализатор или осциллограф без GUI, а только лишь с командной строкой. С другой стороны конфигурировать линукс через граф интерфейс действительно не очень производительно. QUOTE (mantech @ Jan 17 2017, 05:23)  ибо создать граф. форму и растыкать виджеты мышкой - это удобно Нет!  Здесь как раз тоже удобно форму описать, используя API графической библиотеки. Это оперативнее по той же причине, которую вы назвали выше, говоря о командной строке.
--------------------
Выбор.
|
|
|
|
|
Jan 17 2017, 05:15
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
Цитата(haker_fox @ Jan 17 2017, 03:29)  Сложно представить себе мультиметр, логический анализатор или осциллограф без GUI А пайпы на что? Зачем мучиться с gui, если можно через пайп в gnuplot данные передавать? И будет наглядное отображение. Аналогично с логанализатором: сохраняем данные в файл, потом требующийся кусок рисуем гнуплотом, а на выход выдаем анализ по соответствующему протоколу. GUI на все случаи жизни — неправильный подход. Неюниксвейный. UNIX-way — это одна утилита под одну задачу. Объединяем толпу утилит в конвейер, и получаем счастье. Мелкомягкие же придумали плодить сущности. В итоге в каждой программе свой GUI, своя проверка правописания, своя подсветка синтаксиса, свои виджетобиблиотеки и т.д., и т.п.
|
|
|
|
|
Jan 17 2017, 05:55
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Цитата(TSerg @ Jan 17 2017, 00:55)  Алгоритмы - это приближение к физической реальности нашего способа установления взаимосвязей. Все это, в совокупности, определяет сложность моделирования физического мира через призму нашего примерного описания/понимания его. Физические параметры какой-либо сущности "живут" без участия какого-либо программиста, математика, физика. Алгоритмы, как приближение описательного процесса физики явлений - суть нашего недопонимания физики/информатики. А сложные программы стали появляться из-за того, что сегодняшний программист не всегда способен правильно эти взаимосвязи и явления распознать и перевести в язык, понятный компьютеру, наиболее эффективным способом. Сегодня математик, физик, инженер САУ или даже обычный психолог способен справиться с этой задачей лучше, а появление нужных инструментов позволяет им обходиться без программистов вообще. Цитата Оч. простая реализация алгоритма X на java - из нумерологии. Сообразите, что да как:
Arrays.fill(isP, true); isP[1] = false; for (int i=2; i*i < N; i++) if (isP[i]) for (int j=i*i; j < N; j+=i) isP[j] = false; Вот именно - кому сегодня нужен такой код? Возможно - эффективный, возможно красиво выглядит - для самого программиста. Но в свете возросшей вычислительной мощи компьютеров следовало бы описать его более наглядно с математической или графической точки зрения - или где он там используется.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|