[image]

Фортран

Есть тут с кем побазарить про это?
 
1 4 5 6 7 8 9 10
RU Zenitchik #11.01.2022 15:12  @Gudleifr#10.01.2022 22:33
+
-
edit
 

Zenitchik

старожил


Gudleifr> См. цитату из Раскина в начале темы.

Почему мы должны верить ему, а не своим глазам?
   96.0.4664.11396.0.4664.113
+
+1
-
edit
 

Zenitchik

старожил


yacc> Там пример с VB - вообще не показатель ( он, кстати, еще не умер ? :p )

Любители VB считают, что он умер, когда появился .NET
   96.0.4664.11396.0.4664.113

andry_p

втянувшийся

a.p.>> Это у вас получилась иллюстрация на тему "за что не любят хранимки". Случай специфический, и из-за тестирования тоже.
16-й> Хранимки не любят, в основном, апологеты всяких хибернейтов. Которые не в курсе, с какой стороны БД доят. Отчего у них получается лютый оверкил по запросам в цикле, имитирующим незабинденные джойны. И как только дело доходит до серьезных объемов - как тут выражались, промышленных - так сразу приложение всплывает дохляком.
Причем тут апологеты всяких хибернейтов? Вы же сами привели хранимку как пример, когда тесты с синтетическими данными могут не выявить проблем. Я согласен, могут не выявить. Этим (не только этим) хранимки не удобны. Их используют (когда оправдано, а когда и нет) несмотря на это, потому что они решают другие проблемы.
a.p.>> Конечно, есть гуру хранимок, которые говорят что знают как, но...
16-й> "Но" что? Унитарный запрос с клиентской стороны, конечно, магически облегчит жизнь, да? Он же не табличной статистикой питается, не в рамках транзакций за данными ныряет, и планы сам строит, по наитию.
16-й> Что гуру-то?
Чё вы выдумываете подходы которых я не предлагал. Есть наверное гуру хранимок, которые знают как их правильно тестировать, чтоб никогда не вылезло проблем как вы описывали в исходном посте, но я точно не знаю. Я просто написал что это имхо не про юнит тесты как их понимают обычно.
   88

tarasv

аксакал

16-й> Хранимки не любят, в основном, апологеты всяких хибернейтов. Которые не в курсе, с какой стороны БД доят. Отчего у них получается лютый оверкил по запросам в цикле, имитирующим незабинденные джойны. И как только дело доходит до серьезных объемов - как тут выражались, промышленных - так сразу приложение всплывает дохляком.

А мне куда податься - терпеть не могу Хайбернейт (потому что квадратное плохо влезает в круглое) и не уважаю хранимки одновременно ;)

16-й> "Но" что? Унитарный запрос с клиентской стороны, конечно, магически облегчит жизнь, да? Он же не табличной статистикой питается, не в рамках транзакций за данными ныряет, и планы сам строит, по наитию.
16-й> Что гуру-то?

вопросов только два - плохое горизонтальное масштабирование и версионность кода в СУБД против репозитория. Но только если вы всю, еще раз полностью всю, бизнеслогику можете написать на хранимках. Если же не можете то вопросов к хранимкам с точки зрения жизненного цикла продукта гораздо больше.
   97.0.4692.7197.0.4692.71
LT Bredonosec #11.01.2022 19:40  @Татарин#10.01.2022 20:17
+
-
edit
 
Татарин> Сложная именно в аспекте программирования задача - написание современного бравзера. Или, допустим, движка базы данных. Или текстового редактора с функциональностью того же "Ворда". Или фирмвары современного магистрального рутера.
Насчет браузера или комбайна типа ворда - понятно. Там столько понаворочено, что авгиевы конюшни по сравнению с этим просто детский утренник. И проще не сделать, ибо стандартов и синтаксисов дохрена, они расслаблены, всяких оле-обьектов дофига, всяких надстроек, плюс на каждую потенциальную дырку навесить жопу с лабиринтом...

Но прошивка магистрального роутера почему?
там же, по идее, функционал примитивен - принять пакет, прочесть заголовок вплоть до слоя, который для него имеет значение, в соответствии с этим заголовком перенаправить дальше.
Если программируемый - в соответствие с программой пакеты такого-то типа с такими-то данными в заголовке обрабатывать иначе (там,дропать или логгить). Возможно, с более сложными настройками функционала стенки.
Или понятие "современный магистральный" подразумевает некую иную функциональность?
   88.088.0
+
-
edit
 

tarasv

аксакал

Zenitchik> В том числе. Если язык недостаточно строгий, чтобы такое отсечь - надо отсекать юнит-тестами.
Zenitchik> Ещё был хороший пример с "Пэтриот", где в разных модулях деление на 10 выполнялось разными алгоритмами и накапливалась разница. Такое тоже можно отсечь юнит-тестированием.

Юниты не могут поймать ошибку типа "разные алгоритмы в разных модулях", только интеграционные. Но ошибка была другой

Х-22 против Иджис [tarasv#18.03.17 20:49]

… Все проще. Стомиллисекундный таймер хранили как 24х разрядное целое число, а вычисление прогнозируемых координат цели вели с плавающей точкой. По мере увеличения значения таймера росла ошибка округления его значения при переводе в плавающий формат и стробы дальности сдвигались относительно их правильного положения. При достижении определенного времени с момента включения ЗРК реальная траектория выходила за стробы и сопровождение срывалось. За сто часов работы накапливалась ошибка в 0.3сек и…// ПВО
 

теоретически юнит может ее поймать, но на практике это ТМХО мало реально.
   97.0.4692.7197.0.4692.71
LT Bredonosec #11.01.2022 20:02  @Garry_s#10.01.2022 22:35
+
+1
-
edit
 
G.s.> Однако остается фундаментальный вопрос: чем "код" отличается от "программы"?
процесс.
Кодирование - это взять готовый алгоритм "если то, тогда то, если это, тогда это, передать туда, назначить, умножить,... " и перевести его в код программы.
Программирование - это взять произвольную задачу "мне надо написать автопилот", и самому, исходя из знаний физики полета и процессов работы СУ, найти правильный подход, найти, что именно тебе будет давать входные данные, как эту задачу лучше решать, нарисовать алгоритм, и только потом по нему закодить.

достаточно наглядно?
   88.088.0

zaitcev

старожил

yacc> А потом посмотреть в том же GNU Plot

Никакого "GNU Plot" не существует, есть gnuplot.

gnuplot FAQ

This material describes gnuplot version 5 (up to 5.4) FAQ version: December 2021 PDF version of current document: The newest version of this document is on the web at Send comments, suggestions etc to the developer mailing list mailto://gnuplot-beta@lists.sourceforge.net. gnuplot is a command-driven plotting program. It can be used interactively to plot functions and data points in both two- and three-dimensional plots in many different styles and many different output formats. Gnuplot can also be used as a scripting language to automate generation of plots. //  Дальше — www.gnuplot.info
 
   95.095.0
RU Sandro #11.01.2022 21:21  @Bredonosec#11.01.2022 19:40
+
-
edit
 

Sandro
AXT

инженер вольнодумец
★☆

Bredonosec> Но прошивка магистрального роутера почему?
Bredonosec> там же, по идее, функционал примитивен - принять пакет, прочесть заголовок вплоть до слоя, который для него имеет значение, в соответствии с этим заголовком перенаправить дальше.

Это не роутер. Это свитч. Роутер должен, как минимум, понимать про TCP соединение, уметь понимать его текущую фазу, в идеале — уметь самостоятельно обеспечивать перепосылку данных при потере пакета, чтобы в случае чего не гонять синхронизирующие сообщения через пол-глобуса ...
И это я ещё не рассказал про фрагментированные пакеты, например. Там дохрена логики и зачастую — эвристической. Увы.

А там ещё и маршрутизация, но это вообще мрак глубинный, Ктулху и шогготы.
   52.952.9
US zaitcev #11.01.2022 21:57  @Татарин#11.01.2022 03:38
+
-
edit
 

zaitcev

старожил

Татарин> Хотя С++, будем честны, для расчётов, да ещё в больших объёмах (привет менеджмент памяти ручками), это та ещё хрень.

Все уже давно перенесли освобождение памяти на рефкаунтинг в деструкторах.
   95.095.0
RU Тыдым Быдым #11.01.2022 22:05  @Gudleifr#09.01.2022 21:18
+
+3
-
edit
 

Тыдым Быдым

опытный

Gudleifr> Из книги Раскина:
Gudleifr> И это BASIC, который намного проще FORTRAN...
Батенька, да вы просто сферический троль в вакууме, вас бы в Палату мер и весов, да под колпак. Более суровой демагогии я уже много лет не встречал.
Респект! :D
   96.0.4664.4596.0.4664.45
RU Тыдым Быдым #11.01.2022 22:07  @cholev#10.01.2022 09:37
+
+1
-
edit
 

Тыдым Быдым

опытный

cholev> Apple II (болгарская версия Правец 8)
Джобс был известным плагиатором. Оконный GUI у Xerox позаимствовал. А Apple II, значит, в Болгарии... ;)
   96.0.4664.4596.0.4664.45
+
+1
-
edit
 

zaitcev

старожил

Sandro> Это не роутер. Это свитч. Роутер должен, как минимум, понимать про TCP соединение, уметь понимать его текущую фазу, в идеале — уметь самостоятельно обеспечивать перепосылку данных при потере пакета, чтобы в случае чего не гонять синхронизирующие сообщения через пол-глобуса ...

Ну и чушня. Салли Флойд плачет горячими девичьими слёзами, а Ван Якобсен - скупыми мужскими.

Хотя, конечно, современные роутеры крайне падки на глубокое инспектирование и вообще лезут куда их не просят, но это не то, что делает их роутерами.

Может быть тут и не лучшая тема для этого, но открою тебе один секрет: трафик в Интернет имеет фрактальную, то есть самоповторяющюся природу. По гауссиане он не распределяется. В результате, затор - это нормальное явление, не зависимое от пропускной способности. Единственный способ его устранить - это замедлить скорость передачи данных. А единственный способ сообщить об этом отправителю - это потерять пакет (Source Quench давно уже не работает). Если роутеры начнут сохранять пакеты и перепосылать их - это полностью разрушит всю сеть.

Промежуточная перепосылка делается на физическом уровне между двумя станциями, но к природе роутера это не имеет абсолютно никакого отношения. В основном это применяется на типах физических уровней, где значительная потеря пакетов есть нормальное дело. WiFi так работает, например.
   95.095.0
LT Bredonosec #12.01.2022 00:02  @Sandro#11.01.2022 21:21
+
-
edit
 
Bredonosec>> Но прошивка магистрального роутера почему?
Bredonosec>> там же, по идее, функционал примитивен - принять пакет, прочесть заголовок вплоть до слоя, который для него имеет значение, в соответствии с этим заголовком перенаправить дальше.
Sandro> Это не роутер. Это свитч. Роутер должен, как минимум, понимать про TCP соединение, уметь понимать его текущую фазу, в идеале — уметь самостоятельно обеспечивать перепосылку данных при потере пакета, чтобы в случае чего не гонять синхронизирующие сообщения через пол-глобуса ...
ээээ.. но я же это и описал - ТСР - транспортный уровень.
Заголовок - 0-15- порт источника, 16-31 - порт получателя
32-63 - порядковый номер
64-95 - номер подтверждения
96-99 - длина заголовка
104-111 - флаги,
112-127 - размер окна
128-143 - контрольная сумма
144-159 - важность
160-191 - еще опции
потом данные.

- в соответствии с заголовком (не посылать дублирующих по номеру, если не соответствует чексуму - запросить еще раз это номер, т.д. - это если нет запрещающих правил) направлять дальше..

Sandro> И это я ещё не рассказал про фрагментированные пакеты, например. Там дохрена логики и зачастую — эвристической. Увы.
Почему? По идее же фрагменты имеют свои заголовки, обозначающие, что это фрагмент, с номером и всё такое..

Sandro> А там ещё и маршрутизация, но это вообще мрак глубинный, Ктулху и шогготы.
тоже не понял мрака.. Или ты про маршрутизацию на основе того, кто сейчас доступен и где меньше задержка, а если роутинговые войны, то кто стоит дешевле или через кого не направлять? А это разве функция рутера, а не какого-нибудь серва?
   88.088.0

yacc

старожил
★★★
Ну вы блин и пошляки - в ветке про ЯП Фортран обсуждать верстку CSS
   92.0.4515.10792.0.4515.107

yacc

старожил
★★★
Пусть будет

Программирование на фортране на вычислительных кластерах

... оказывается компиляторов даже есть выбор
   92.0.4515.10792.0.4515.107
+
+1
-
edit
 

tarasv

аксакал

yacc> Ну вы блин и пошляки - в ветке про ЯП Фортран обсуждать верстку CSS

А чем другой, полный по Тьюрингу, ЯП хуже Фортрана? Ну декларативный и что. ;) Для научных расчетов правда не подходит, там натуральный брейнфак синтаксис в исходниках получается.
   97.0.4692.7197.0.4692.71
+
+1
-
edit
 

yacc

старожил
★★★
tarasv> А чем другой, полный по Тьюрингу, ЯП хуже Фортрана?
Ветка как бы про Фортран
CSS - это вообще не ЯП

tarasv>Для научных расчетов правда не подходит, там натуральный брейнфак синтаксис в исходниках получается.
Вполне работает на кластерах
   92.0.4515.10792.0.4515.107
+
+1
-
edit
 

tarasv

аксакал

yacc> Ветка как бы про Фортран
yacc> CSS - это вообще не ЯП

К ЯП единственное требование - полнота по Тьюрингу. CSS этому требованию удовлетворяет.

tarasv>>Для научных расчетов правда не подходит, там натуральный брейнфак синтаксис в исходниках получается.
yacc> Вполне работает на кластерах

Научные расчеты на CSS? :eek:
   97.0.4692.7197.0.4692.71

Gudleifr

опытный

yacc> Ветка как бы про Фортран
Ну, я как бы на первой странице намекнул, что IT-шники тут не помогут. И, они с тех пор, того... помогают..
   97.0.4692.7197.0.4692.71

yacc

старожил
★★★
tarasv> К ЯП единственное требование - полнота по Тьюрингу. CSS этому требованию удовлетворяет.
Не только.
Полнота по Тюрингу это к вычислимости, нечто абстрактного
А ЯП должен решать задачи пользователей
Пользователю та же классификация грамматики по Хомскому - не так интересна
Ну вычисли тот же факториал по заданному значению на CSS - типичная задача для ЯП :D

tarasv> Научные расчеты на CSS? :eek:
на Фортране
   92.0.4515.10792.0.4515.107
RU Gudleifr #12.01.2022 01:35  @Gudleifr#12.01.2022 00:50
+
-
edit
 

Gudleifr

опытный

yacc> Фортран... CSS...

Блин, только сейчас заметил, что подобная смесь - под мой запрос из соседней темы: Выбор языка для простого интерпретатора

Но там народ слился еще быстрее.
   97.0.4692.7197.0.4692.71
US zaitcev #12.01.2022 01:44  @Bredonosec#11.01.2022 19:40
+
-
edit
 

zaitcev

старожил

Bredonosec> Но прошивка магистрального роутера почему?
Bredonosec> там же, по идее, функционал примитивен - принять пакет, прочесть заголовок вплоть до слоя, который для него имеет значение, в соответствии с этим заголовком перенаправить дальше.

Ты забыл про поддержку BGP с его политикой, логическое разделение, отказоустойчивость и избыточность, систему наблюдения и управления всем этим хозяйством.

У меня знакомый, Вадим Антонов, как-то раз организовал стартап по изготовлению этих магистральных роутеров. Начал хорошо, но проиграл на рынке Джуниперу, с которым они начинали вместе. Я краем глаза видел, там всё далеко не так просто.

А собственно переключение пакетов вообще делается аппаратно. У Антонова была система "бабочка", закольцованная.
   95.095.0
EE Татарин #12.01.2022 13:17  @Bredonosec#11.01.2022 19:40
+
+1
-
edit
 

Татарин

координатор
★★★★★

Bredonosec> Но прошивка магистрального роутера почему?
Bredonosec> там же, по идее, функционал примитивен - принять пакет, прочесть заголовок вплоть до слоя, который для него имеет значение, в соответствии с этим заголовком перенаправить дальше.
Bredonosec> Если программируемый - в соответствие с программой пакеты такого-то типа с такими-то данными в заголовке обрабатывать иначе (там,дропать или логгить). Возможно, с более сложными настройками функционала стенки.
Bredonosec> Или понятие "современный магистральный" подразумевает некую иную функциональность?
Там масса дополнительных условий и настроек, логинг, защита, что, как, куда и почему, и от всего этого требуется максимальная скорость работы.
Плюс совместимость с сисадминами, которые за время существования интернета наработали массу ожиданий того, как именно должен работать рутер.

Это как с тем же "вордом": понятно, что сам по себе текстовый редактор а-ля нотепад, с функционалом "написать и распечатать текст" пишется не так и сложно... Но вот уровень "ворда" - это несколько иное.
   96.0.4664.11096.0.4664.110

  • yacc [13.01.2022 01:19]: Перенос в новую тему HTML / CSS / JS
RU yacc #13.01.2022 12:18  @спокойный тип#11.01.2022 12:02
+
+1
-
edit
 

yacc

старожил
★★★
с.т.> ну как бы исходим из того что диспетчер старается все ядра на всех процах нагружать )))
с.т.> опять же есть htop которым можно помочь
Кстати, вот что есть Python но как пить дать нет у Фортрана, особенно у GNU - работа с GPU

Ведь если у тебя есть современная игровая видеокарта - у тебя по факту мини-Cray дома - с процессорами-шейдерами.
Их тоже можно загрузить полезной работой в параллель.

Читал что питоновская программа с numpy, которая по матрицам работает, при этом эдак на два порядка ускоряется чем на одном процессоре.
   92.0.4515.10792.0.4515.107
1 4 5 6 7 8 9 10

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru