Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/187: Рейтинг темы: голосов - 187, средняя оценка - 4.77
Модератор
 Аватар для Curry
5170 / 3534 / 536
Регистрация: 01.06.2013
Сообщений: 7,685
Записей в блоге: 9
23.06.2015, 19:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
ВОт действительно насчет серьезности софта. Если там что то и дебагили, то работу каких то вторичных систем.
Лисперы любят эту байку приводить. Сейчас то почти для всех языков есть remote debugger-ы. Но, 1998-ой. Я не помню, для каких компиляторов тогда были rd . NASA - военизированная организация. Логично ожидать там, тоже Ada only, нравится она кому или нет. Сейчас для ады, конечно, есть rd. Тогда - не знаю. Но дело не в этом. Удалённая отладка кода в такой ситуации - время запроса-ответа почти 18 минут, не лучшая идея. Тем более, состояние гонок в пошаговом режиме выявлять. Логично было бы логирование в нужных местах вставить, залить исполняемый файл удалённо, просмотреть логи, залить исправленный. Плюс, у наса должны быть несколько копий улетевшего оборудования с имитаторами для отработки таких нештатных ситуаций. Проще на них ошибку найти. Скорее всего байка (или деза), даже если источник из наса.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.06.2015, 19:51
Ответы с готовыми решениями:

ООП или функции
Привет форумчанам! Такой вопрос нарисовался, Везде ли стоит применять ООП ? Например сейчас пишу маленький блог с простеньким...

ООП или Структурный подход?
Доброго времени суток! Могу ли я использовать процедурный подход программирования в PHP для разработки портала бронирование отелей с...

литература и/или статьи по ООП
Предложите литературу или скорее статьи по ООП, но с уклоном в элементарное понимание что это и для чего нужно а не обьяснение 3-х китов...

926
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
23.06.2015, 20:03
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Скорее всего байка (или деза)
Толсто же. Ты меня разочаровываешь. Скатился до уровня школьника.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
23.06.2015, 20:19
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Сейчас то почти для всех языков есть remote debugger-ы.
В Хаскелле даже REPL ущербный, а о горячей замене кода можно даже не мечтать, тут только CL/Erlang/SmallTalk могут.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Логично ожидать там, тоже Ada only, нравится она кому или нет. Сейчас для ады, конечно, есть rd. Тогда - не знаю. Но дело не в этом. Удалённая отладка кода в такой ситуации - время запроса-ответа почти 18 минут, не лучшая идея. Тем более, состояние гонок в пошаговом режиме выявлять. Логично было бы логирование в нужных местах вставить, залить исполняемый файл удалённо, просмотреть логи, залить исправленный. Плюс, у наса должны быть несколько копий улетевшего оборудования с имитаторами для отработки таких нештатных ситуаций. Проще на них ошибку найти. Скорее всего байка (или деза), даже если источник из наса.
Статический анализ может далеко не всё, юнит-тесты не имеют 100% покрытия, иначе критические системы не было бы нужды дублировать. Всегда есть какие-то непредусмотренные факторы, и возможность адаптировать программу удалённо прозрачно и без костылей, которые вносят свою долю косяков, весьма полезна.

Добавлено через 3 минуты
Цитата Сообщение от castorsky Посмотреть сообщение
Скатился до уровня школьника.
Разве он из него поднимался?

Не по теме:

P.S. Это не оскорбление, KolodeznyDiver на редкость адекватный, не ограниченный товарищ, имеющий весьма большой потенциал. Просто иногда ограничивающий себя Хаскеллом, что (не именно Хаскелл, а зацикленность на нём) выдаёт школьника.

0
Модератор
 Аватар для Curry
5170 / 3534 / 536
Регистрация: 01.06.2013
Сообщений: 7,685
Записей в блоге: 9
23.06.2015, 20:53
Цитата Сообщение от korvin_ Посмотреть сообщение
В Хаскелле даже REPL ущербный, а о горячей замене кода можно даже не мечтать, тут только CL/Erlang/SmallTalk могут.
Ну, во первых, когда я рассуждал про 1998-ой год, то, очевидно, не имел ввиду Haskell. Горячая замена кода на космических аппаратах присутствует, для этого не обязательно писать на Erlang. В Erlang это "из каробки". В других случаях нужно весь софт разбивать на исполняемые модули и учитывать такую возможность при проектировании, делать ручками.
Чем REPL ущербный в Haskell ?
Цитата Сообщение от korvin_ Посмотреть сообщение
Статический анализ может далеко не всё, юнит-тесты не имеют 100% покрытия
Да, кэп. Вы полагаете что в наса не тестировали софт на реальном железе? То что на 100% ошибок не избежать - это так. Так же очевидно, что для избежания ошибок следует использовать языки, на которых вероятность получить ошибку меньше. На 1998-ой год, эта была, пожалуй Ada. Разумеется, такого рода рассуждения не гарантируют что в наса не сидят ...ээээ альтернативно одарённые и что они не использовали лисп, а то и баш. Хоть и слабо верится.

Не по теме:

Цитата Сообщение от korvin_ Посмотреть сообщение
что (не именно Хаскелл, а зацикленность на нём) выдаёт школьника
экстрасенсы, догадался Штирлиц. :D

0
23.06.2015, 20:56

Не по теме:

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
языки, на которых вероятность получить ошибку меньше
Он не шутит. Он действительно верит в это =)

0
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
23.06.2015, 21:14
Не знаю, что уж там с Deep Space Mission...
Но вообще это странно.

Если баг в коде с самого начала, то его проще найти дома, потом отправить наверх. Если баг из-за битой частицами памяти, то всегда можно переключиться на запасной.
Первый вариант, например, осуществлялся, в памяти аппарата "Чибис".

Аварийный код невозможно перезаписать, только переключиться на запасной. Это уже связано с тем, что такую память очень сложно сломать энергичным частицам, а уж и основную и копию -- ну просто фантастика.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.06.2015, 21:20
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
NASA - военизированная организация
C каких делов Национальное Агенство по Коммерческой Авиации (до полетов в космос NASA называлось NACA) должно быть военизированным? Естественно что одним из крупнейших заказчиков является Пентагон, но с таким же успехом можно называть военизированной организацией ЦАГИ или KLARK.
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
То что на 100% ошибок не избежать - это так.
Ага... что особо паказывает маневр "перевертон" объекта "Полюс-М".
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Так же очевидно, что для избежания ошибок следует использовать языки, на которых вероятность получить ошибку меньше.
То что концепция типизации заложенная в аде снижает ошибки оказалось заблуждением, что давно признано тем же Пентагоном, и изменениями внесенными в саму Ада, а именно добавлением перегрузки операторов. Именно концепция определения алгебры над сущностями снижает вероятность ошибок, но не запрет на смешение разных типов в одном выражении. К примеру подход с типизацией ни коим образом не помешает сложить координаты там где допустимо сложение координаты только со смещением (или произведением времени на скорость). А такие возможности на 88 а не то что на 98 существовали далеко не только в Аде.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4576 / 2775 / 491
Регистрация: 28.04.2012
Сообщений: 8,782
23.06.2015, 21:35
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Чем REPL ущербный в Haskell ?
Потому что это ущербное, ограниченное говно, а не REPL.

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
В других случаях нужно весь софт разбивать на исполняемые модули и учитывать такую возможность при проектировании, делать ручками.
Ага, куча ручкотворства, больше ошибок из-за человеческого фактора, скрытых за "крутой HM-типизацией".

Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Вы полагаете что в наса не тестировали софт на реальном железе?
Я полагаю, что даже в НАСА не могут предусмотреть всего, поэтому доступ к коду и возможность его исправить в аппарате весьма полезна. Но хаскеллофэны могут продолжать верить в статику. Пока их метеоритом не накрыло.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.06.2015, 21:36
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Разумеется, такого рода рассуждения не гарантируют что в наса не сидят ...ээээ альтернативно одарённые и что они не использовали лисп, а то и баш
Читал статью (старую, конец 80-ых) одного из тим-лидов, то ли Пентагона то ли околопентагоновской организации (вполне возможно и NASA), в которой он рассказывал о проблемах вызванных Ада - т.е. именно о том что идея о отлове большинства ошибок компилятором при устрожении типизации - ошибочна, но дело даже не в этом а в том что в результате в индустрию пришло огромное количество monkey coders выпускниуов всяческих курсов)которые не могут даже понять суть ошибок которые могут возникнуть. При этом выводы сводились к тому что дальнейшее развитие индустрии он видел исключительно в вообще молодом на тот время, но гораздо более подготовленном поколении программистов C/C++ , а в самом С/С++ - достойную замену FORTRAN (сам автор стати фортранщик) в сфере автоматизации процессов.
0
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
23.06.2015, 21:46
Дело прояснилось.
Идея отладки кода на борту аппарата была частью DSM эксперимента.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.06.2015, 21:52
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
В Erlang это "из каробки"
С учетом того что это "из коробки" реализуется библиотекой ядра писанной на C, то это "из коробки" запросто можно прикрутить к чему угодно в случае необходимости.

Добавлено через 3 минуты
Цитата Сообщение от mporro Посмотреть сообщение
Идея отладки кода на борту аппарата была частью DSM эксперимента.
Главный вопрос что отлаживалось. Если это не касалось систем ориентации и навигации аппарата, то по большому счету не более серьезная задача чем отладка очередного хеллоу верда распростаняемого через гугл маркет. В отличии от хеллоу верда, оно хоть понятно на каком именно аппарате крутится отлаживаемый софт.
0
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
23.06.2015, 21:59
Fulcrum_013,
для основной части кода была формально доказана корректность.
Ошибка возникала в одном из второстепенных приложений, контролировавших эксперимент.
В определённом смысле, такой баг можно считать даже удачей. Протестировали систему отладки по-настоящему.

Сложность не в самой отладке, а в том, чтобы всё это сделать возможным именно на борту аппарата.
Летает такая железяка в космосе, а Вы к ней с терминалом подплываете, как в фантастическом фильме, и программируете средствами самой же железяки.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.06.2015, 22:13
Цитата Сообщение от mporro Посмотреть сообщение
а Вы к ней с терминалом подплываете, как в фантастическом фильме, и программируете средствами самой же железяки
А терминал к железке подключается посредством JTAG и под программированием имеется в виду перешивка? Эта фантастика давно на коленке паяется (AVR JTAG LITE и подобные устройства). Да кстати, это сейчас переферия непосредственно часть компа, а в далеких 70-ых телетайп или терминал был отдельным компьютером (из того что видел и программил реально - такой себе "Спектрум" c 4КБ видео ОЗУ, который по большому счету может расширенно имитировать телетайп а с железякой на которой вертится сам компилятор и отладчик общается по RS-422) т.е. до появления PC дебаг существовал только ремоте по определению, и никакой фантастики в этом не было. Другое дело время прохождения команды и отклика на дистанции 100 млн км.
0
Модератор
 Аватар для Curry
5170 / 3534 / 536
Регистрация: 01.06.2013
Сообщений: 7,685
Записей в блоге: 9
23.06.2015, 22:59
Цитата Сообщение от korvin_ Посмотреть сообщение
Потому что это ущербное, ограниченное говно, а не REPL.
5 лет назад нельзя было. Сейчас всё в порядке.
Цитата Сообщение от korvin_ Посмотреть сообщение
га, куча ручкотворства, больше ошибок из-за человеческого фактора, скрытых за "крутой HM-типизацией".
А ваши скрипты подменяются во время обработки пакета данных с гарантией корректной обработки этого пакета?
Без скриптов, вообще то, ничего сложного. Обмен модулей, допустим через сокеты (или любой другой ipc). Перекидываем номера портов на резервный процесс, с синхронизацией, конечно, не посередине обработки пакета. Почитайте про горячую замену версий в nginx. Главное - такая замена может быть отлажена достаточно хорошо на земле. Там нет зависимости от срабатывания исполнительных устройств или значений датчиков.
0
 Аватар для castorsky
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
23.06.2015, 23:47
А ваши скрипты подменяются во время обработки пакета данных с гарантией корректной обработки этого пакета?
Какие скрипты, товарищ?
0
Модератор
 Аватар для Curry
5170 / 3534 / 536
Регистрация: 01.06.2013
Сообщений: 7,685
Записей в блоге: 9
24.06.2015, 00:32
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
С учетом того что это "из коробки" реализуется библиотекой ядра писанной на C, то это "из коробки" запросто можно прикрутить к чему угодно в случае необходимости.
Я бы вопрос поставил по другому, что лучше: использовать скрипт, позволяющий его править мелкими кусками удалённо. Или разнести бинарный код по модулям, отладить систему горячей замены модуля. Ошибки могут быть как в интерпретаторе скрипта (байткода), так и в системе замены двоичных модулей. И то, и то можно отладить не привязываясь к железу. Не привязываясь к конкретным языкам, у всех скриптов недостаточная верификация кода до исполнения. Компилируемые языки, в этом плане лучше. Из них строгие статически типизированные ещё лучше (из соображений, что бы важный объект не отстрелил себе ногу).
По мне, так вначале выбираем вариант с меньшей вероятностью получения ошибок. Потом, на основе него, делаем систему горячей замены.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
24.06.2015, 00:36
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Или разнести бинарный код по модулям, отладить систему горячей замены модуля
Ну если хорошо подумать именно с системой замены (даже горячей) бинарник можно и на лету патчить прямо в памяти а не только на диске с перезапуском(т.е вообще без деления на модули)
0
Модератор
 Аватар для Curry
5170 / 3534 / 536
Регистрация: 01.06.2013
Сообщений: 7,685
Записей в блоге: 9
24.06.2015, 00:51
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну если хорошо подумать именно с системой замены (даже горячей) бинарник можно и на лету патчить прямо в памяти а не только на диске с перезапуском(т.е вообще без деления на модули)
Тут мы упрёмся в неоходимость пропатчить в нужный момент. А то исполняющаяся программа, которая и патчится одновременно, ... хм. Так то, отладчик VisualStudio для плюсов нативных (про дотовские языки не знаю) может, в процессе отладки патчить код, что бы отладку заново не начинать. Но приложению, работающему с сеткой, железом, тем более, если осрв, понадобится точно подбирать момент замены. Подозреваю, что это касается и скриптов.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
24.06.2015, 04:47
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
Но приложению, работающему с сеткой, железом, тем более, если осрв, понадобится точно подбирать момент замены. Подозреваю, что это касается и скриптов.
Собстаенно в этом и вся сложность.

Добавлено через 3 минуты
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
А то исполняющаяся программа, которая и патчится одновременно, ... хм.
Ну и что тут сложного если один поток? Как будто на втором курсе вирусов не писал, ей богу. Если выполнение в один поток то патчит сама себя вообще элементарно. Кстати екзешники с компрессией именно так и работали. А вот если несколько потоков... надо им места которые патчатся на время патчинга блокировать.

Добавлено через 9 минут
Гораздо сложнее другая связанная с этим проблема - пропатчить уже созданные работающей прогой структуры данных, а особенно в сторону расширения. Она натыкается на проблему переписать значения всех указателей. У скриптов это проще, там это можно через исполняющую ВМ сделать.

Добавлено через 3 часа 4 минуты
Цитата Сообщение от KolodeznyDiver Посмотреть сообщение
из них строгие статически типизированные ещё лучше (из соображений, что бы важный объект не отстрелил себе ногу).
А еще лучше там где строгая статическая типизация пооператорно. т.е когда к примеру с=a+b компилируется а с=a-b дает ошибку компиляции.
0
Модератор
 Аватар для Curry
5170 / 3534 / 536
Регистрация: 01.06.2013
Сообщений: 7,685
Записей в блоге: 9
24.06.2015, 09:52
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А вот если несколько потоков...
В описываемом эксперименте несколько потоков. Упоминалось состояние гонок.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
надо им места которые патчатся на время патчинга блокировать.
интересный патч получается. В смысле сложный. В программе заранее расставить много мест где можно, заменой байта, установить переход к другим потокам (бесконечное ожидание в потоке), потом восстанавливать?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Гораздо сложнее другая связанная с этим проблема - пропатчить уже созданные работающей прогой структуры данных, а особенно в сторону расширения. Она натыкается на проблему переписать значения всех указателей.
Это да. Даже если указатели и не используются, а используется GC. Всё равно, нетривиальная задача. По этому я и писал про замену целых модулей. Знаю места где делается именно так (не в космосе или оборонке, но, всё же).

p.s. Отдельно интересны последствия того эксперимента. С тех пор в бортовых компах насавских аппаратов всё в лиспе, или как?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.06.2015, 09:52

Гавнокоддинг или учить ООП?
Здравствуйте, дело такое, я пишу все свои скрипты в гавнокоддинге. Дело в том, что у меня все работает, что не работает спрашиваю на...

прога или игра ооп
Здравствуйте)Помогите пожалуйста)Нужно в ближайшее время сдать курсовую работу.Требуется сдать программу какую-нибудь либо игру(желательно...

Mysqli ООП или процедурный подход
Вот интересно, услышать мнение специалистов, что лучшие использовать при работе с mysqli ООП или процедурный подход, что больше используют...

Определить, программа с ооп или нет
Здравствуйте)Помогите пожалуйста разобраться с программой)Мне нужно сдать курсовую по объектно-ориентированному языку на С#.Мне здесь...

Изучаю ООП можно или нет так?
Это index: <?php include('classes/database.class.php'); $object = new DB; $nick = "Alex"; $password = "1"; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
620
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru