Аспирант гавайского университета обнаружил проблему в одном из Python-скриптов, используемом для вычислений химического сдвига, определяющего химическое строение изучаемого вещества при спектральном анализе сигналов методом ядерного магнитного резонанса. Аспирант заметил, что при выполнении скрипта в разных операционных системах над одним и тем же набором данных на выходе получался разный результат...Подробнее: https://www.opennet.me/opennews/art.shtml?num=51667
Ждите, скоро будет "вотъ, погроммисты какие, всё из-за вас! компутерщики проклятые!..."
надо открывать фонд борьбы с кампютащиками (ну эт хакиры и прочае баги)
Здравствуйте! Вы хотите в ступить? Хорошо. Что у Вас есть?
Знания системд, электрона и навыки дефрагментации диска Цэ! А, и диплом от Касперского!
А сертификат уверенного пользователя есть ? Курсы заправки картриджей для струйных принтеров проходили ?
И курсы по сварке паяльником ленты для пишмашек в кольцо
ФБК? Вроде открыт давно, теперь закрыть пытаются...
Питонисты не программисты. Идите накер!
> "%s не программисты."Под это можно подстроить почти всё что угодно. Может просто язык надо выбирать под задачу? А, подождите-ка! Мы же можем всё писать на language_name!
Ты ещё скажи, что код надо тестировать.
Им надо было написать теоретически, самым сухим и сложным языком, без любых расчетов и проверок! И не надо было бы возиться с Питоном!
На регрессии - надо. На соответствие спеке - надо. Тестирование ради тестирования - не надо.Дальше требуется Code Review и доказательство корректности.
Так по тестам все сходилось, но... не под всеми операционными системами:)
Ребят с младенчества пугали необходимостью юнит-тестов, но при этом совершенно забыли рассказать, что ещё бывает обычное ревью алгоритма и кода на предмет очевидных казусов. Не говоря уже о том, что надо бы хотя бы немножко знать окружение, в котором пишешь, прежде чем писать.
Вы уверены что они писали на Mac? Сильно сомневаюсь. Скорее они понадеялись на кроссплатформенность языка, а это знаете ли не только в языке дело, это еще и в ОС.
> Дальше требуется Code Review и доказательство корректности.Доказательство корректности? Ууу... Это вам в языки семейства ML. =)
какими тестами ? может тесты все были пройдены, а ситуация из реальной жизни привела к факапу.
Значит, тесты были хреновые.
Причём тут Python вообще? Это учёные. Учёные - не программисты. Да и профессиональные программисты иногда совершают подобные ошибки из-за усталости, невнимательности и т.д.
При том, что его пропихивают как лёгкий в изучении и быстрый в написании язык. То есть такой, который можно освоить и использовать, не включая голову.
Учёные и на C++ не будут "включать голову". Вы только представьте, сколько времени нужно потратить, чтобы овладеть программированием на приличном уровне. А главное, зачем, если 99% их работы с ним вообще не связана? Конечно, в идеальном мире они будут хорошими программистами, а я буду ковыряться в сорцах ядра Linux, потому что пользуюсь дистром, участвовать в веломарафонах, потому что езжу на велосипеде в магазины, учиться на художника и фотографа, потому что иногда редактирую фотки, делаю коллажи и рисую по мелочи в Gimp. Одна проблема - в реальном мире ни у кого нет столько времени, чтобы профессионально владеть всеми инструментами, которыми приходится пользоваться, и если дать учёным C++, они на нём наговнокодят так, что у вас потекут кровавые слёзы. А вообще, когда вдруг почувствуете себя хорошим программистом, попробуйте написать качественный компилятор с нуля, без LLVM и прочих приблуд - сразу почувствуете свой скилл на вкус.
Избавляйтесь от стереотипного представления об учёном как о человеке не от мира сего, наивного аки дитё малое и неспособного составить себе мало-мальски адекватное представление о чём-то вне сферы его исследований.
На моём физфаке к использованию ВТ в исследованиях студентов готовили очень серьёзно - там преподавали и численные методы, и программирование, причём объясняли и тонкости работы с памятью (а куда денешься - ОЗУ 48 кБ, когда появилась Искра-1030 с мегабайтом памятиЮ это было как чудо, их было 2 штуки на весь ВЦ и на них записывались за месяц), и разные нюансы, влияющие на производительность, и многое другое. Я даже не помню, сколько часов в неделю у нас был вычпрактикум по расписанию, в дисплейном классе мы торчали по несколько часов каждый день, причём не играли, а программировали и обсчитывали свои курсовые.
Так что не надо тут пургу гнать про "учёных".
Задумайтесь кому это выгодно. Вот избавитесь, а в следующий раз скажут ставь шиндошс. И придется ставить, никуда не денетесь. Ни в коем случае не избавляйтесь!
Проблема питона в том, что упомянутые библиотеки написаны не на питоне. Отсюда и нелепые ошибки, которые никто не хочет проверять только потому, что какой-то код написан на C. А его не проверили потому, что было лень описывать все юнит-тесты..... Короче, питон - это именно проблема технологии разработки на питоне, которая, например, легко фиксится Julia
>Питонисты не программисты.Если придерживаться этой дурацкой точки зрения, то программистами можно называть только тех, кто программирует на ассемблере. А еще лучше прямо в машинных кодах. :D
Программирование на ассемблере это путь стать мужчиной, не испульзуя женьщины.
Зато все быстро настолько, что не с чем сравнивать. А если писать на нем математику, то можно стать неврастеником. Это путь настоящего джедая программирования. :D
Скорее, путь в дурку...
> Зато все быстро настолько, что не с чем сравнивать.Особенно, если судить по хелловордам или байкам.
Впрочем, еще в начале 2000х форумно-ньюсгруп-рассылочные эксперты советовали: "Работает медленно? Перепиши на асме, летать будет!".
На практике же человеки могут (и будут) и кучу лишних регистров или обращений к памяти использовать (потому что разбито на отдельные процедуры, а инлайнинга нема) и алгоритмы далеко не самые опримальные реализовать (т.к. более оптимальный будет "овердофига строк кода, а значит и так сойдет!" и прочие мелочи, вплоть до "пере-оптимизации" для определенного семейства CPU.
Ну и то, что уже лет 15 обычный компилер "бъет", за редким исключением, обычного "Вот я щас каааак перепишу на асме, да кааак запущу!" погоремиста^W реализатора, совсем не секрет -- не зря совет изменился на "перепиши на сишке!" ;)
>совет изменился на "перепиши на сишке!" ;)Этот совет изменился вовсе не по той причине, которую вы описали. Причина другая - в 90-х активно использовался ассеблер. А сейчас его используют мало, и его мало кто знает.
Да что там говорить об ассемблере, нынешние комментаторы порой совершенно серьезно сравнивают скорость интерпретируемых языков и компилируемых, потом обвиняют тот же Python в том, что он недостаточно быстрый. Шапито. :D
> в 90-х активно использовался ассеблер.Тогда был смысл. С тех пор железо и трансляторы ушли вперёд. По скорости в общем случае С выигрывает у асма.
Да, да, да. А уж если верить разработчикам ц/ц++ компиляторов, питоножиэс интерпретаторов, то за последние цать лет кодогенерация/интерпретация должны были выдавать код, работающий со скоростью света на дохлокамнях - чихнуть/вздзнуть не успеешь, а иначе и быть не может - всё же с каждой версией и быстрее, и меньше памяти жрет, если им верить.
Да только факты и суровая жизнь показывают обратно - бинарники толще, листинги полны терьма, итоговый софт для работы требует больше тактов и памяти.
Вот и получается, что даже плохой асмокод уделывает тот же средней кривости крестософт.
Парадокс, не иначе.
> даже плохой асмокод уделывает тот же средней кривости
> крестософт.
> Парадокс, не иначе.Это называется не парадокс, а недоказанная гипотеза. Вероятно, выдвинута человеком, не писавшим на асме. Опровержения подобная гипотеза не требует.
А вы не верьте. Вы скомпилируйте Compaq Fortran конца 90=х. И современным Absoft или intel //
> Да, да, да. А уж если верить разработчикам ц/ц++ компиляторов, питоножиэс интерпретаторов,
> то за последние цать лет кодогенерация/интерпретация должны были выдавать код, работающий
> со скоростью света на дохлокамнях - чихнуть/вздзнуть не успеешь,Т.е. цитатки _разарботчиков_ вам привести труда не составит?
> а иначе и быть не может - всё же с каждой версией и быстрее, и меньше памяти жрет, если им верить.
> Да только факты и суровая жизнь показывают обратно - бинарники толще, листинги
> полны терьма, итоговый софт для работы требует больше тактов и памяти.Т.е. "бинарники толще, листинги …" из-за _ухудшающейгося_ качества генерируемого компиляторами кода, а не общей дани модным новым рантаймам-фреймворкам-криворукости o_O?
А списочек подтверждающий фактов "в студию" можно?
Или кто-то, не будем тыкать пальцем в некоторых комментаторов, не видел результаты работы компиляторов примерно до конца 90х (привет Борланд Турбо) и не может их сравнить с более современными?
> Вот и получается, что даже плохой асмокод уделывает тот же средней кривости
> крестософт. Парадокс, не иначе.Т.е. плохонький асмокод, не учитывающий тайминги-зависимости (instruction scheduling) инструкций, кэш, выравнивание, с кучей лишних вызовов-стекфремов, обращений к памяти -- уделывает?
Фантазии, не иначе.
Хорошо, что не jsеры. jsерам даже простые задачи доверять нельзя.
Вот поэтому разработку таких важных программ с виндой на ПК нельзя.
так на винде же верный резльутат судя по статье.
хотя для этого сначала нужно статью читать, конечно
Так я об этом же. Если бы у разработчика был мак или убунту, он бы заметил сразу проблему, а так 5 лет никто не замечал.
как минимум Ubuntu 16 (я так полагаю 16.04 которая LTS) уж точно естьдругое дело что на разных платформах фунаментальные вещи ведут себя по-разному - это уже красит язык не с лушчей стороны (жаль в статье не неписали ещё какой конкретно инструментарий и компилятор/транслятор)
Так и знал что кто-то вбросит про "питон уёвый". Не криворукие разработчики скрипта виноваты, а язык программирования Python лично! Офигенная логика, почти женская.
я так же удивляюсь когда мне рассказывают про плохие C/C++, потому что простреленные ноги
Эксперты ЛОРа и ОпенНета любят рассуждать о языках программирования. Но ни одной строчки кода, ни на одном языке, за свою жизнь не написали.
а вдруг они хелло ворды написать успели. ты че почти разработчик))
У вас ноги бетонные?
Нет-нет, Питон хороший, не плачь
Всех по себе не суди.
Это не фундаментальная вещь. Функция в языке возвращает неотсортированное множество файлов. И она его правильно возвращает. Это уже автор скрипта нафантазировал, что результат сортируется и привязал к этому ключевую функциональность. Даже если оно и сортируется, могут быть куча разных алгоритмов этой сортировки. Банально f100.txt и f20.txt -- какой из этих файлов должен стоять раньше, а какой позже? Можно рассматривать каждую цифру в отдельности и тогда f20.txt будет впереди, или все число и тогда f100.txt будет впереди.
> Функция в языке возвращает неотсортированное множество файлов.Если бы было так, проблемы бы не было. Но она есть, потому что при определённых обстоятельствах оно отсортировано, при других — нет.
Подход, исключающий ошибку программиста, реализован в Go: там принято либо всегда возвращать использовать сортировку (как в filepath.Glob()), либо использовать заведомо непредсказуемый порядок (как в range по отображению).
ну в данном случае всё же ошибка не петона, тк >>> "в то время как в документации на glob указано, что порядок вывода не гарантируется. "
Да, это ошибка программиста, а не языка. Но язык мог бы страховать от таких ошибок, однако он этого не делает.
Каким образом язык может защитить программиста от нечитания документации? Даже бить током не поможет — язык (его реализация) не знает чего ты хотел. Только то, что ты написал.
> Каким образом язык может защитить программиста от нечитания документации?Легко: вести себя более предсказуемо.
>> Каким образом язык может защитить программиста от нечитания документации?
> Легко: вести себя более предсказуемо.Такие как ты по определению непредсказуемы. Вам хоть питон, хоть любой другой инструмент дай, вы как косячили так и будете косячить. Хватит тупые отмазки писать. Признай что ты плуг и не читаешь документацию и разойдёмся.
Я читаю документацию. И я всё равно допускаю ошибки, в том числе и из-за невнимательного её чтения. И если ты скажешь, что с тобой такого не случается, я отвечу, что такое возможно только при условии, что ты за всю жизнь не написал ни строчки кода.
Если я и ошибаюсь то признаю это и правлю баги, а не начиинаю обгаживать используемый инструмент(язык программирования, фреймфорк и тп).
Разницы между «обгаживанием» и конструктивной критикой не видишь?
> Если бы было так, проблемы бы не было. Но она есть, потому что при определённых обстоятельствах оно отсортировано, при других — нет.https://docs.python.org/3/library/glob.html
The glob module finds all the pathnames matching a specified pattern according to the rules used by the Unix shell, **although results are returned in arbitrary order**.
Что конкретно вам не понятно?
Мне непонятно, почему тебе непонятно написанное мной.
Человек ошибся. Люди часто ошибаются. Данная ошибка вполне предсказуемая, поэтому её можно было бы предотвратить. Это не значит, что не надо читать документацию, но иногда всё же стоит смотреть на ситуацию с разных точек зрения.
> при определённых обстоятельствах оно отсортировано, при других — нет.Рандомная перестановка списка чисел тоже, знаете ли, иногда выдает отсортированный список
> Банально f100.txt и f20.txt -- какой из этих файлов должен стоять раньше, а какой позже?Leading zeroes для этого придумали. Если скрипт принимает данные от сенсоров и кладёт их в файлы data1, data2, ... data9, data10, data11, ... вместо data00000001, data00000002, ..., то автора скрипта надо сечь розгами. Потому что писать надо так, чтобы результат не зависел от того, как в каждой конкретной реализации решён вопрос "какой из этих файлов должен стоять раньше, а какой позже".
> автор скрипта нафантазировал, что результат сортируется и привязал к этому ключевую функциональность.А за это - уже не розгами, а батогами.
>Можно рассматривать каждую цифру в отдельности и тогда f20.txt будет впереди, или все число и тогда f100.txt будет впереди.такие особенности всегда вымораживали - языки же для людей делаются, для людской логики, и если человек просит делать сортировку, то программа должна сортировать по человечески.
Просто не могу себе представить ситуации, чтобы 100 было раньше 20.
Лексикографическую сортировку в школе не проходят, потерпи до института.
писали код под Windows, но вычисления шли на Linux;)
> Вот поэтому разработку таких важных программ с виндой на ПК нельзя.Вот поэтому надо писать автотесты. А тем, кто этого не понимает, в разработку нельзя.
Я вижу вы понимающий. Расскажите как подобный баг можно гарантированно поймать автотестами на любой платформе. Проверять на всех комбинациях рантайма, ОС, ФС и API? Даже это не гарантия того, что glob() обязательно хоть раз вернёт неотсортированный результат конкретно на ваших тестовых датасетах, тут уж как фишка/хеш/дерево/порядок_добавления/фаза_луны ляжет.
А зачем проверять на всех комбинациях? Вот у нас тесты пробежали без ошибок на определенной комбинации. Она и будет считаться поддерживаемой. Если есть герой, который хочет использовать другую, то это уже под его личную ответственность.
То есть, питон уже не кроссплатформенный?
> То есть, питон уже не кроссплатформенный?Если не уметь писать кроссплатформенно, то да. Причем это не только питона касается.
Если я в питоне напишу что-то видаwith open("/dev/ttyS0") as f
то это будет вполне не кроссплатформенный код
А что проверять-то, порядок файлов в каталоге может зависеть примерно от всего: помимо явных завязок на ОС и ФС сама ФС ещё более неявно может, например, переиспользовать структуры от удалённых файлов и тогда порядок станет зависеть ещё и от того, что лежало в каталоге до момента запуска теста. Вариантов ФС и даже конкретных вариантов реализации ФС великое множество, как конкретно будет работать в каждом случае - неизвестно. Иногда и рандомный порядок будет совпадать с отсортированным и ваш тест пройдёт.
Это даже если забыть о том, что чтобы написать такой тест нужно как минимум знать, что поведение glob() не гарантирует сортировку. А как мы видим из новости, проблема как раз в том, что автор просто невнимательно прочёл документацию.
> Иногда и рандомный порядок будет совпадать с отсортированным и ваш тест пройдёт.Замечательно, но когда тесты начинают валится на другой ФС, то это уже говорит о проблеме в коде. Теперь вопрос - а как обнаружить эту проблему без тестирования?
Конечно, тесты могли бы помочь, но если автор всё это писал и тестировал на windows, то тесты никогда бы и не упали. А чтобы упали, нужно было как минимум проверить на другой ФС, а для этого нужно знать, что на другой ФС может быть другое поведение, а для этого нужно знать, что glob() может работать по-разному.
Безусловно это так, но что если проблема гораздо более затейлива чем в случае с glob() и не имеет никакой подсказки в виде документации или иного посконного знания?
Если вы к тому, что надо всё равно писать тесты и что они отловят хотя бы часть таких ошибок, то я с вами полностью согласен.
В контексте обсуждаемого случая мне вспоминается разработка под андроид, где китайцы наплодили такой зоопарк смартфонов различной степени пропатченности как по софту, так и по железу, что баги и проблемы со стандартным вроде бы API могут возникать вообще в любом самом неожиданном месте. Часть таких аппаратов в информации о модели возвращают либо рандом, либо просто от балды набранную строку типа 0123456 (взято не из головы). Такой аппарат даже в интернете не найти, не то что купить/взять для тестирования.
> Я вижу вы понимающий. Расскажите как подобный баг можно гарантированно поймать автотестами на любой платформе.А ты, я смотрю, совсем без понимания. Тесты запускаются во время установки на целевой платформе, а не только разработчиками на ограниченном наборе платформ.
>> Вот поэтому разработку таких важных программ с виндой на ПК нельзя.
> Вот поэтому надо писать автотесты. А тем, кто этого не понимает, в
> разработку нельзя.и когда сей волшебный автотест должен запускаться? когда учёный на расберипи запустил расчёт с использованием этого скрипта?
Нет, когда он запустил setyp.py test (или как там нынче модно запускать тесты в языке, где there is only one way to do it? я не слежу).
Питонщики, блин. Вообще ни хрена не знают о разработке, но пытаются умничать.
тесты нужно писать только тогда, когда трудозатраты на их написание окупятся. зачастую же тесты пишут (или пишут в каментах на опеннете, что их надо писать) лишь как дань моде.
Ну посчитай, во сколько обойдётся перепроверка сотни исследований, в большей части которых наверняка было больше одного вычисления, и публикация исправлений. Не говоря об ущербе для репутации скриптозапускаторов и учреждений, в которых они работают.
Тесты у него не окупаются, видите ли, ага. Ты вообще серьёзный научный софт когда-нибудь видел? Там кажая операция кучей тестов покрыта, потому что цена ошибки куда выше, чем ты можешь себе представить. Хорошо, если просто какой-нибудь дорогостоящий прибор из-за неё сдохнет, а ну как и несколько человек на тот свет отправит?
Вот поэтому явное лучше неявного. Если вам нужны упорядоченные данные, их надо явно сортировать.
> А тем, кто этого не понимает, в разработку нельзя.Ты пойдёшь в научную лабу писать там скрипты забесплатно? Нет ведь? Поэтому учёные пишут сами как могут. И поэтому пишут на пайтоне, а не на ассемблере. Вся популярность пайтона основана на том, что программисты ленивые и жадные, не хотят писать код забесплатно на голом энтузиазме.
А кто сказал, что их пишут забесплатно?
Поверь мне, бывшему майнтейнеру нескольких десятков пакетов с научным софтом, тесты для них пишут в огромном количестве. Сабж — исключение из правила, и надеюсь, из него сделают должные выводы.
> А кто сказал, что их пишут забесплатно?Я сказал. Кто будет платить за это? Либо университет, если ему лабы смогут обосновать необходимость этого, либо лаба будет со своих грантов оплачивать разработчика.
> Поверь мне, бывшему майнтейнеру нескольких десятков пакетов с научным софтом, тесты для
> них пишут в огромном количестве. Сабж — исключение из правила, и
> надеюсь, из него сделают должные выводы.Эээ... я подозреваю, что ты мало усилий прилагал к тому, чтобы смотреть на те пакеты, которые ты не мейнтейнил. Их не десятки, их тысячи, или даже десятки тысяч. Ты посмотри, а потом подумай ещё раз о том, кто тут исключение.
> Кто будет платить за это? Либо университет, если ему лабы смогут обосновать необходимость этого, либо лаба будет со своих грантов оплачивать разработчика.Именно так. И платят. Посмотри на софт, который пишут в INRIA, например. На то, что пишут у нас, не смотри, тут давно всё тухло, и улучшений не предвидится.
> Их не десятки, их тысячи, или даже десятки тысяч.
Широко используется гораздо меньшее число — наборы реализаций тех или иных алгоритмов, ставшие стандартом де-факто. Речь, конечно же, не о том, что пишут на коленке для решения однократно вставшей задачи.
Что забавно, но автотест бы показывал, что все збс. Так как на платформе того кто это писал работало как надо. :)
Ещё один… Перечитай ответы выше, устал я от вас, неграмотных.
В данном разе для того, чтобы понимать, что это надо обложить тестом -- требуется _изначально_ уже не допустить ошибку. Потому как понимать, где и почему она возможна.В случае учонных кодошлёпов (кто не читал подобные штуковины -- лучше не выступайте) это, к сожалению, возможно исключительно при наличии хоть кого-то немножко понимающего в собственно программировании в округе и при том везении, когда он так или иначе отсмотрит (или попытается запустить на счёт) код...
Ну и да, никакой винды с нечувствительностью к регистру, сортировкой глоба и подобными ковриками для заметания мусора.
Одна из многих причин, почему используют винду практически во всех учреждениях - там все правильно вычисляется. У линукса и мака серьёзные отклонения.
Ах если бы. Даже в наших университетах ты в серверной ничего кроме центоси и убунты не найдешь.
В наших университетах появились серверные?! Ни чё се прогресс.
В некоторых и полноценные ВЦ имеются, удивительно, правда?
у меня фейри кончился, жир оттирать с монитора
Сходи в Виллабаджо: они эту штуку цистернами заказывают.
# зануда_mode
Вообще-то, в Виллабаджо как раз отстойное средство, которое не оттирает жир нормально:
https://youtu.be/4lUk7piZHjk
Блин. И про это нам тоже всю жизнь врали из телика. "Villabajo" читается по-испански "Виллабахо".
Берёшь копеечную пачку соды... (можно ещё предварительно прокалить, для кратного усиления эффекта)
И этой каленой содой устраняешь источник жыра?!
Нет, прокаливать нужно как раз источник, а содой потом просто присыпать останки.
э дивинации?
Вычисления -- это HPC-шная тема, и я очень рекомендую посмотреть статистику по ОС в списке top500.
>У линукса и мака серьёзные отклонения.Серьёзные отклонения как раз у тебя, раз новость не смог осмыслить.
Блин, ну ученые хорошие ребята конечно, но чуть-чуть культуры программирования им бы надо было подтянуть. Предполагали они... спеку же ботать надо.
Нет, каждый должен заниматься своим делом. У химиков своих проблем хватает чтобы ещё в тонкостях программирования разбираться.
А какие там тонкости? Документацию к используемому софту внимательно прочитать? Давно это тонкостью стало?
Ну вообще говоря в куче областей в наше время хороший ученый - это в первую очередь хороший программист. Так что отмазки не канают.
Я не видел ни одного хорошего учёного, который был бы хорошим программистом. Они программируют методом научного тыка. Даже те, кто вроде как подсекает в программировании. Я пока студентом ошивался по лабам, постоянно ковырялся в их коде, они даже красивый отладочный вывод не могут сделать, чтобы из него было сразу ясно. Я, например, кого-то учил пользоваться \t для того, чтобы выравнивать столбики в выводимой табличке.То есть, всё не настолько плохо -- попадаются иногда ребята с околоматематических специальностей, которые пошли в магистратуру на науку заточенную, те могут худо-бедно писать код. Но они тоже не фонтан: они закончили 4 курса бакалавриата и вовсе не по программированию, программирование у них шло в качестве может важной темы, но не первостепенной важности. Они знают про алгоритмику и теорию computer science, но практических навыков у них с гулькин нос. git? тесты? что это? Про дебуггер они как правило слышали и может несколько раз использовали.
Чтобы стать хорошим программистом, надо хотя бы года три поработать программистом. Но подавляющее большинство учёных не имеет в своём резюме трёх лет работы обезьяной, набивающей код.
> Я не видел ни одного хорошего учёного, который был бы хорошим программистом.Может ты элементарно не видел хороших ученых? Извиняюсь, пределы РФии-то хоть покидал?
>> Я не видел ни одного хорошего учёного, который был бы хорошим программистом.
> Может ты элементарно не видел хороших ученых? Извиняюсь, пределы РФии-то хоть
> покидал?Чтобы видеть хороших учёных, не обязательно покидать пределы РФии. Если даже под хорошим учёным ты понимаешь "западный учёный", то всё равно не обязательно: их можно встретить на конференциях, или даже они могут вдруг зайти к тебе в лабу, если лаба занимается чем-то стоящим. С ними можно пообщаться и через интернет, ну, точнее не с ними, а с их студентами -- сами-то они заняты им не до тебя, по-любому, но ежели ты занят чем-то близким к тому, чем занимаются они, то можно связаться и пообщаться.
Да и, в конце-концов, тебе не приходилось читать статьи о каких-нибудь новоизобретённых алгоритмах? А к статьям просматривать код -- авторскую реализацию алгоритма. Такой код пишут ребята с образованием в computer science, и от их кода, подчастую хочется волосы на голове рвать: как так можно писать код?
А знаешь в чём фишка? Нет общепринятых стандартов на написание кода. Требования предъявляемые к коду определяются задачей. Программист-инженер пишет код, с мыслью о том, что этот код кто-то будет поддерживать потом. Программист-учёный пишет код для того, чтобы этот код отработал бы несколько раз, после чего этот код отправляется на полку. Бывает библиотечный код, который пишут программисты-учёные для своих задач, и используют во многих проектах, и они там делают иногда реверансы в сторону инженерного дела и пишут код чуть лучше чем обычно (с точки зрения инженера), но _они_ не инженеры, _они_ не профессиональные программисты, _они_ не зарабатывают себе на хлеб, посредством написания кода год за годом по сорок часов в неделю. Не надо думать, что если учёный, то он каким-то магическом образом вдруг становится хорошим программистом. Есть единственный способ стать хорошим программистом: писать код за деньги годами получая обратную связь от коллег, которые тоже пишут код за деньги годами.
> Чтобы видеть хороших учёных, не обязательно покидать пределы РФии.Крайне желательно.
> их можно встретить на конференциях, или даже они могут вдруг зайти
> к тебе в лабу, если лаба занимается чем-то стоящим.Угадай с трех раз где находятся подобные лабы и где проводятся конференции.
> Да и, в конце-концов, тебе не приходилось читать статьи о каких-нибудь новоизобретённых
> алгоритмах? А к статьям просматривать код -- авторскую реализацию алгоритма. Такой
> код пишут ребята с образованием в computer science, и от их
> кода, подчастую хочется волосы на голове рвать: как так можно писать код?Приходило, постоянно читаю. Далеко не все, конечно, готово в качестве
готового компонента для к-л библиотеки, но как правило и цели такой нет.
Цель - эффективная реализация алгоритма.> Программист-инженер пишет код, с мыслью о
> том, что этот код кто-то будет поддерживать потом.Для всяко бывает... По времени поддержки код с каких-нибудь ваших
netlib уделывает большую часть написанного "погромистами" на поколение,
а то уже и два...> Не надо думать, что если учёный, то он каким-то магическом образом вдруг
> становится хорошим программистом.Не магическим, обычным. Как стать писателем? Писать...
Работать при этом б*длокодером за деньги - совершенно не обязательно, если
твоя каждодневная деятельность итак заключается по большей части в написании
кода.
> Цель - эффективная реализация алгоритма."Эффективная" -- это buzzword, который не о чём не говорит, потому как каждый понимает прилагательное "эффективный" по своему. Эффективная -- это в смысле минимум времени на написание кода? Или что? Тратить на оптимизации неделю ведь глупо, если я планирую запустить код может несколько десятков раз, из которых большая часть будет посвящена дебагу кода. Реализация алгоритма, которая будет требовать в два раза больше времени на реализацию оказывается неэффективной, не так ли?
>> Программист-инженер пишет код, с мыслью о
>> том, что этот код кто-то будет поддерживать потом.
> Для всяко бывает... По времени поддержки код с каких-нибудь ваших
> netlib уделывает большую часть написанного "погромистами" на поколение,
> а то уже и два...Дааа. А я как программист бывает пишу код, который отрабатывает один раз, и я заранее знаю, что он отработает один раз, и поэтому при написании этого кода я руководствуюсь единственным оптимизационным критерием: скорость написания кода. Забивая на все "табу" сразу -- я начинаю заводить глобальные переменные, я использую goto для запутывания кода, я даже не парюсь проверять что-то там на выход за границы массива да и вообще не думаю о специальных случаях: если какой-то из специальных случаев окажется нужным, это выяснится при первом же сегфолте. Большинство же окажется невостребованными, и нет никакого смысла на них тратить время.
Иногда учёный поддерживает код, иногда программист пишет одноразовый код. В любом правиле есть исключения.
> Работать при этом б*длокодером за деньги - совершенно не обязательно, если
> твоя каждодневная деятельность итак заключается по большей части в написании
> кода.Это ты о ком? О data scientists? Среди них мне попадались грамотные в программировани люди, которые действительно большую часть времени занимались кодингом, но фишка в том, что они, занимаясь наукой, параллельно работали программистами, кто в vk, кто в яндексе. И я не уверен, что "учёный" правильно характеризует их профессиональную ориентацию.
>> Цель - эффективная реализация алгоритма.
> "Эффективная" -- это buzzword, который не о чём не говорит, потому как
> каждый понимает прилагательное "эффективный" по своему. Эффективная -- это в смысле
> минимум времени на написание кода?Минимальный читабельный пример.
> Тратить на оптимизации неделю ведь глупо
Код должен соответствовать характеристикам алгоритма, к примеру.
> при написании этого кода я руководствуюсь единственным оптимизационным критерием: скорость
> написания кода.Ну вот видишь. А ученые руководствуются прежде всего другими критериями: корректностью
решения задачи, в первую очередь.>> Работать при этом б*длокодером за деньги - совершенно не обязательно, если
>> твоя каждодневная деятельность итак заключается по большей части в написании
>> кода.
> Это ты о ком? О data scientists?Да о ком угодно сейчас. Математики, физики, химики, биологи... Практически любая
научная деятельность сейчас требует навыков программирования. Проще так чем
объяснять свою предметную область очередному "литературному критику".
>>> Цель - эффективная реализация алгоритма.
>> "Эффективная" -- это buzzword, который не о чём не говорит, потому как
>> каждый понимает прилагательное "эффективный" по своему. Эффективная -- это в смысле
>> минимум времени на написание кода?
> Минимальный читабельный пример.С твоей точки может быть, с точки зрения писателя вовсе не обязательно: алгоритм описан в статье, там читабельно. Код -- это пример, основное предназначение которого, проверить теорию практикой. Будет работать или нет? Насколько практически измеренная зависимость времени работы алгоритма от N повторяет теоретическую? Чем объясняются отклонения практики от теории? Для того, чтобы найти ответы на эти вопросы и рассказать о них в статье, вовсе не обязательно иметь читабельный код.
>> Тратить на оптимизации неделю ведь глупо
> Код должен соответствовать характеристикам алгоритма, к примеру.К чему это ты? Ты намекаешь, что из этого твоего утверждения вытекает, будто тратить неделю на оптимизацию приемлимо? Или какую мысль ты хочешь донести до меня?
>> при написании этого кода я руководствуюсь единственным оптимизационным критерием: скорость
>> написания кода.
> Ну вот видишь. А ученые руководствуются прежде всего другими критериями: корректностью
> решения задачи, в первую очередь.Давай, выдирай фразы из контекста ради искажения смысла. Это очень убер-приём в споре, практически неотразимый.
>>> Работать при этом б*длокодером за деньги - совершенно не обязательно, если
>>> твоя каждодневная деятельность итак заключается по большей части в написании
>>> кода.
>> Это ты о ком? О data scientists?
> Да о ком угодно сейчас. Математики, физики, химики, биологи... Практически
> любая
> научная деятельность сейчас требует навыков программирования. Проще так чем
> объяснять свою предметную область очередному "литературному критику".Чтобы не объяснять свою предметную область очередному литературному критику, вовсе не обязательно набирать в программировании квалификацию, которая требует пяти лет стажа работы программистом. В большинстве ситуаций. И поэтому, наиболее эффективным способом достичь своих целей будет быдлокодить.
> С твоей точки может быть, с точки зрения писателя вовсе не обязательно:
> алгоритм описан в статье, там читабельно. Код -- это примерПо меньшей мере, читателям должно быть очевидно, что пример является
реализацией алгоритма, а не НЕХ.>>> Тратить на оптимизации неделю ведь глупо
>> Код должен соответствовать характеристикам алгоритма, к примеру.
> К чему это ты? Ты намекаешь, что из этого твоего утверждения вытекает,
> будто тратить неделю на оптимизацию приемлимо?Приемлимо тратить время ровно столько, сколько нужно.
>> С твоей точки может быть, с точки зрения писателя вовсе не обязательно:
>> алгоритм описан в статье, там читабельно. Код -- это пример
> По меньшей мере, читателям должно быть очевидно, что пример является
> реализацией алгоритма, а не НЕХ.Это очевидно, потому что в статье указана ссылка на архив или на github и там прямо сказано, что за код. Ещё там вероятно лежит README или комментарий сверху поясняет, что за код.
> Приемлимо тратить время ровно столько, сколько нужно.
Лол. Это примерно такой же информативности сообщение что и "эффективно".
> Это очевидно, потому что в статье указана ссылка на архив или на
> github и там прямо сказано, что за код.Ну раз написано, что код сделает зашибись - значит сделает. Пацаны-то не
знали, надо было просто в ридми на гитхабчике написать, что тута реализован
алгоритм Риша, а они этот ваш StratchPad забодяжили. Дурачье!
> Я, например, кого-то учил пользоваться \t для того, чтобы выравнивать столбики в выводимой табличке.А нужно было учить чему-то вроде '%16u', где 16 это ширина колонки
>> Я, например, кого-то учил пользоваться \t для того, чтобы выравнивать столбики в выводимой табличке.
> А нужно было учить чему-то вроде '%16u', где 16 это ширина колонкиНе "нужно", а "можно". Я вообще-то не нанимался кого-либо чему-либо учить. Простейшим способом исправить ситуацию и объяснить исправление было добавить табуляций. Если ты хочешь сделать лучше, я наверное могу найти контакты человека, ты можешь с ним связаться и рассказать ему про форматный вывод.
Раз не нанимался, то мог бы и \t не показывать
> Раз не нанимался, то мог бы и \t не показыватьМеня спросил аспирант "чё здесь не работает". У него чего-то выводилось в консоль, но мне проще было вставить \t в вывод, чем ломать глаза о то, что выводилось.
> Нет, каждый должен заниматься своим делом. У химиков своих проблем хватает чтобы ещё в тонкостях программирования разбираться.И чьим же делом, по-твоему, является написание вот таких вот скриптов? Этот человек должен быть одновременно и химиком, и программистом.
Нет, не должен. Базовые знания в химии, конечно, не помешают, но в первую очередь автор такой программы должен быть программистом.
Это не тонкости программирования, а проблема корректности обработки данных. Кроме этого нужно знать как численно считать на машинах: модели приближения, устойчивость схем, сходимость моделей, проблемы переполнений, базовые знания стат. анализ и многое другое.Сортировка это мелочь по сравнению со всем остальным багажом инженера. Само по себе полагание на ФС уже выглядит дико, вменяемый специалист подготовил бы заранее упорядоченный словарь с порядком в специальном файлике с метаданными, или сделал бы легко проверяемый алгоритм вычисления порядка, раз это важно для результата. В конце концов есть простое правило: не понимаешь как работает чёрный ящик и не хочешь понимать - сделай свой аналог.
В современном мире специалисты без владения инструментарием не нужны. Даже не очень нужны специалисты со знанием только одной предметной области.
Культуру программирования не помешает подтянуть и программистам.
И не только программирования, и не только программистам...
> Блин, ну студенты второго-третьего курса хорошие ребята конечно, но чуть-чуть культуры программирования им бы
> надо было подтянуть. Предполагали они... спеку же ботать надо.Поправил на более реалистичный вариант.
> Предполагали они... спеку же ботать надо.Ты тоже не можешь в культуру программирования. Потому что ботать надо не спеку, а прокачивать понимание, что вообще не надо делать результат научных вычислений зависимым от glob и прочих системных функций. Так что даже если бы не облажались glob - это все-равно было бы ошибкой. Там еще надо бы этот скрипт проверить, что они там накодили в итоге, может кроме glob и еще какие чудеса обнаружатся
Потому шо свой ЯП нада делать, а не использовать "конструктор для детишек", коим является змей.
Так Python и разработали в центре математики и информатики в Нидерландах.
Видимо слабые у них математики и информатики.
надо было смотреть лучше , а не жаловаться на функцию, которая изначально возвращает все что попало. причем тут язык. в расте , в го тоже самое сотворить можно. про плюсы молчу. язык так разнесло, что теперь и спецы сомнениями полны.
но вот, почему-то, вся математика для питона находится во всяких numpy и пр., которые надо разрабатывать на C и на нём же тестировать.... А, собственно, на питоне, математику то никто и не пишет.....
> Так Python и разработали в центре математики и информатики в Нидерландах.В качестве языка для начального обучения программированию.
зачем в химических вычислениях glob?
Для обработки файлов с данными.
Сразу видно дошколятский подход. А вот на божественной сишке так никогда не бывает.
Там ещё не то бывает.
Способов выстрелить себе в ногу, если не знаешь язык, в Си гораздо больше.
Переходи на оффтопик, пиши .BAT - файлы, и все будет работать!
> Переходи на оффтопик, пиши .BAT - файлы, и все будет работать!Интересно, многие ли в них циклы-то писали... а то видел и unroll'нутые батники для бэкапов.
переходите на божественный раст))
Зачем ты так жестоко с гентушником, их психика сильно травмирована высокими навыками в Юникс) Водка, девочки, батники (в крайнем случае, и если очень - очень хочецца), но в перспективе пациент должен перейти на торренты и крякнутые РПГ)
На Ada.
Если знаешь -- ещё больше.
например?
http://www.ioccc.orgтебе к этим джедаям
Надеюсь они лекарств не наделали на основе этой баги?
> Надеюсь они лекарств не наделали на основе этой баги?Там всё-таки более длинная дорожка, подобные косяки могут разве что сломать скрининг на ранней стадии (причём в обе стороны -- и отсеяв в принципе кандидата, и подтвердив то, что заведомо им не было).
Потому что для исследований необходимо использовать верифицируемые реализации алгоритмов.
Верифицировано лично Сетьёй Наделлой.
Заметьте, учёные до сих пор не догадались публиковать сырые данные исследований помимо обработанных результатов. Тогда было бы достаточно пронать исправленный алгоритм заново и никакой драмы не было бы.
"This is all happening because of you scientists!" © Half-Life
"Shouldn't you be guarding some donuts and coffee right about now?"
"Squad! We've got hostiles!"
По требованиям они обязаны хранить данные 5 лет с момента публикации, так что прогонят исправленный алгоритм и никакой драмы и так нет.
Сырые данные иногда могут и терабайты и даже петабайты составлять. Как-то это затруднительно публиковать. Но вообще-то, если объемы не такие большие, то бывает и публикуют.
> учёные до сих пор не догадались публиковать сырые данные исследованийПочему же не догадались? Догадались. Другое дело, что они не всегда это делают. Но в любой научной статье есть контакты, ты не стесняйся связаться с учёным: если тебе нужны его данные, то скорее всего ты занят какой-то смежной темой, и скорее всего он заинтересован в общении с тобой. То есть он будет рад тому, что ты написал ему, и уж данные тебе он вышлет. Если, конечно, это не будет слишком сложно: в гуманитарных науках, в медицине, данные подчастую содержат приватные вещи, которые надо анонимизировать, прежде чем публиковать, а это дополнительные работы над данными, которые ещё уметь надо выполнять, чтобы не пропустить ничего.
> Тогда было бы достаточно пронать исправленный алгоритм заново и никакой драмы не было бы.
Скорее всего это тоже не так просто. Этот скрипт встроен в общую программу обработки данных для данного эксперимента, и чтобы "прогнать" скрипт заново, придётся всю ту программу воспроизводить. Та программа же была создана вообще левой пяткой, перемотана скотчем, и работает только если её правильный человек запускает при нужной фазе Луны. Это не значит, что повторить вычисления нельзя -- можно, но это не так просто как может показаться. Придётся зачитать до дыр статью, описывающую эксперимент и обработку данных, придётся разобраться с сырыми данными: что лежит в столбце названном dtmin? А t1, t2, t3, ..., t17 -- это что? Тебе придётся восстанавливать весь эксперимент во всех мелочах, вплоть до той таблички которая висела на стене, и протокола заполнения этой таблички, который вероятно нигде не был записан -- экспериментатор непосредственно перед проведением экспримента устно объяснил ассистентам что, когда и как писать.
Читать документацию это сложно. И так сойдёт.
>https://docs.python.org/2.7/library/glob.html
>https://docs.python.org/3/library/glob.htmlгде-то написано, что функция возвращает разные результаты в зависимости от системы? Читать документацию? Нет, это не твой путь. Лишь бы написать комментарий!
И где там сказано, что результат вызова glob будет отсортирован? Нигде. А значит порядок может быть произвольным и зависеть от ОС, погоды на Марсе, времени запуска итд
> где-то написано, что функция возвращает разные результаты в зависимости от системы?"results are returned in arbitrary order"
> Читать документацию? Нет, это не твой путь.
Боюсь, и не твой...
боюсь, ты не понял о чем идет речь.
Там написано, что функция возвращает результат в произвольном порядке даже в пределах одной системы.
Вечера внекласного чтения со словарем на опеннете...
Я похоже читал не глазами. В версии 2.7 не видел про необязательный порядок.Извиняюсь.
Думаю, тут дело в том, что документацию-то как раз читали. Ту, которая man 3 glob.А в питоне, видимо, своя реализация для кроссплатформенности.
Самое забавное что кроме оффтопика это вычисление ни на каких других ос не применялось. А единственный факт его применения на онтопике стал причиной появления новости.
Фиии. Однажды я обнаружил в модели морских прогнозов ошибку видаK=F(....i,j,k) , вместо K(i,j,k)=F(....,i,j,k) (писалось на фортране) . De facto скомпроментированно было все с 199затертого года, но иникто и глазом не повел...
Так так. Глобальное потепление, говорите?
А ты уверен? может, до твоего исправления все работало, а после - автотесты стали сыпать варнинги портянками?
Уверен.Благодаря этой баге, Там получался константный коэффициент турбулентной диффузии по всему океану ,бгг
Однажды в одной модели по определению средней температуры Земли нашли ошибку. Они находили среднюю температуру по всем станциям наблюдение, но не учитывали что со временем станций становилось больше в южных широтах чем в северных. По итогу насчитали что на Земле глобальное потепление.И как-то всех все устраивает, вон одна девочка даже яхте теперь на халяву катается из-за этой ошибки.
> И как-то всех все устраиваетЕстественно устраивает. Потому что данные-то остались, внесли поправки, посчитали снова.
Ничего не внесли так и считают по всем. Подгонять результаты учили и иностранных ученых тоже.
Телевизора насмотрелся? Тебе по ящику Соловьев сказал про плохой сланцевый газ, который конкурирует с природным и ты сразу вытянулся по струнке как хомячек. Фу быть тобой.
> Телевизора насмотрелся? Тебе по ящику Соловьев сказал про плохой сланцевый газ, который
> конкурирует с природным и ты сразу вытянулся по струнке как хомячек.
> Фу быть тобой.https://www.nationalgeographic.com/environment/2019/08/frack.../
Даже ссылку для тебя потеплевшего нашел. Читай впитывай https://habr.com/ru/post/79605/ Данные по самым старым данным станциям наблюдения.Если бы ты был не гуманитарием мог бы и сам пересчитать, но ты не справишься. Продолжай телек смотреть.
> Даже ссылку для тебя потеплевшего нашел. Читай впитывай https://habr.com/ru/post/79605/
> Данные по самым старым данным станциям наблюдения.Ссылка протухшая, это статья 2009 года.
> Если бы ты был не гуманитарием мог бы и сам пересчитать, но
> ты не справишься. Продолжай телек смотреть.Я не знаю, что ты там в телеке высмотрел про глобальное потепление, но я рекомендую что-нибудь в стиле: https://www.ipcc.ch/sr15/
Тут и данные свежее, чем то, на что ты там ссылаешься. И телек там даже рядом не лежал.
Это ты протух от потепления в мозгу.Ты серьёзно даешь ссылку на сайт Межправительственной группы экспертов по изменению климата?
Т.е. той самой организации которая должна распространять фейки про потеплению? При том что она сама уже не про потепление, а изменение. Чувак это надо быть до конца дегенератом чтобы пользоваться такими источниками.Ты бы еще существование пришельцев доказывал ссылками на РЕН-ТВ.
> Это ты протух от потепления в мозгу.
> Ты серьёзно даешь ссылку на сайт Межправительственной группы экспертов по изменению климата?И это говорит мне аноним, обосновывающий своё мнение протухшими ссылками на хабр.
о глобальном потеплении сходится во мнении более 90% ученых, наблюдается рекордное таяние ледников, с каждым годом предлагают откорректированные модели на различных данных, наблюдаются positive feedback loops (меньше льда - хуже отражение - больше температура - меньше льда), открываются ранее заблокированные льдами морские пути, меняется поведение животных, но вы и дальше продолжайте рассказывать кулстори, придуманные, судя по всему, теми, кто при слове "исследование" представляет себе урок физики за 8ой класс.
90% ученых, получающих гранты на исследования глобального потепления, сходятся во мнениях. Еще бы им не сойтись.И главное где результаты-то потепления ?
Северо-Западный проход уже открылся ? Растаяли ледники Гренландии ? В Шотландии восстановилось виноделие ?Кстати вы отстали от жизни, сейчас в тренде не глобальное потепление (global warming), а некие климатические изменения (climate changes).
Всю историю Земли на ней были климатические изменения. Фанатики пытаются доказать роль антропогенного воздействия, но нет никаких исследований что оно действительно есть.
> Всю историю Земли на ней были климатические изменения.Были, причём куда более сильные. Но при этом далеко не такие быстрые.
> И главное где результаты-то потепления ?Научись уже пользоваться поисковиком, бедняга.
В текстах нижеупомянутых статей приведены ссылки на источники, имена учёных.
1. "В Исландии "похоронили" растаявший 700-летний ледник, оставив на его месте тревожное послание потомкам"
http://www.newsru.com/world/19aug2019/lednik.html2. "В Арктике тает подводная мерзлота: в Восточно-Сибирском море идут мощнейшие выбросы метана, которые могут запустить "климатическую бомбу"
https://www.newsru.com/russia/08oct2019/arctic_teplo.html3. "Во Французских Альпах обнаружено тело альпиниста, пролежавшее во льдах 43 года Обнаружение тела стало возможным по той причине, что в условиях глобального потепления произошло значительное таяние ледника."
https://www.newsru.com/world/09sep2019/benedetti.html4. "Аномальное тепло в Арктике: в Гренландии вновь вспыхнула растительность, за месяц остров добавил в океан 197 миллиардов тонн воды"
https://www.newsru.com/world/03aug2019/greenland_fires2.html5. "В Швейцарии на тающем леднике нашли тела супругов, пропавших во время Второй мировой"
https://www.newsru.com/world/18jul2017/glacier.html6. "От Антарктиды откололся крупнейший айсберг"
https://www.newsru.com/world/12jul2017/iceberglarsen.html7. "Аляска тает в 100 раз быстрее, чем предполагали эксперты"
https://www.newsru.com/world/29jul2019/alaska.html
> Гренландии вновь вспыхнула растительностьВот поэтому глобального потепления не будет. Углекислого газа больше, чуть потеплело, растения бурно растут и связывают углерод из углекислого газа, возвращая кислород. Углерод же остаётся в различных органических соединениях. Кстати, углекислый газ хорошо в воде растворяется. Поверхность океана огромна, водорослей и прочих хватит.
>> Гренландии вновь вспыхнула растительность
> Вот поэтому глобального потепления не будет.Что, снова не будет?!
> Углекислого газа больше, чуть потеплело, растения бурно растут и связывают углерод из углекислого газа, возвращая кислород. Углерод же остаётся в различных органических соединениях. Кстати, углекислый газ хорошо в воде растворяется. Поверхность океана огромна, водорослей и прочих хватит.Если даже допустить, что содержание CO₂ не будет расти дальше вообще (что полнейшая глупость), то уже сейчас из-за потепления оттаяло немало вечной мерзлоты, а из неё при этом выделяется копившийся миллионами лет метан. Во сколько раз более сильным парниковым газом по сравнению с CO₂ является метан надо рассказывать, или сам нагуглишь? Добавь к этому уменьшение альбедо и осознай, что запущенных положительных обратных связей хватит для продолжения роста температуры.
>> И главное где результаты-то потепления ?
> Научись уже пользоваться поисковиком, бедняга.Научился пользоваться термометром. Было летом 35, а теперь 15.
О да ссылки на желтушный newsru это аргумент на уровне Соловьева. И ведь даже в твоих ссылках ни единого доказательства антропогенного воздействия.
> ссылки на желтушный newsruГлаза на жопе? Специально для таких, как ты, в самом начале коммента: "В текстах нижеупомянутых статей приведены ссылки на источники".
Предъяви вот этому океанографу из последней статьи https://earthsciences.uoregon.edu/profile/dsuth/ что он, оказывается, "уровня Соловьёва".> И ведь даже в твоих ссылках ни единого доказательства антропогенного воздействия.
Не, реально на жопе. Специально для таких, как ты, в самом начале коммента цитируется вопрос, на который отвечает мой коммент: "И главное где результаты-то потепления ?"
----
Сдаётся мне, ты не айтишник, раз смотришь в текст и видишь фигу. Тогда странно, что ты делаешь на этом сайте.
Вы гуманитарии специально что-то с головой делаете или вы от природы такие тупыe?
Да и кое что сходится пчел почти не видно одни шмели опакечивают
Еще один телевизора насмотрелся и на Грету Тунберг перевозбудился. Если взять температуру по станциям наблюдения которые работают больше ста лет и провести по ним линию тренда то температура упала на 0.1 градус. При этом в истории можно найти периода сильных скачков и сильных проседаний что сто лет назад что больше.И просто чтобы ты был в курсе уровень мирового всю историю Земли колбасит +- 200 метров https://ru.wikipedia.org/wiki/%D0%A3%D1%...
А за последние 6000 лет средняя температура упала на 3.5 градуса https://en.wikipedia.org/wiki/Holocene#/media/File:Greenland...
При этом температуру колбасит все время в приличном диапазоне, но никакого антропогенного воздействия на это нет.
А про "хуже отражение" это ты до конца головой пробил дно. Это надо совсем ничего не соображать чтобы такое написать.
> А про "хуже отражение" это ты до конца головой пробил дно. Это надо совсем ничего не соображать чтобы такое написать.А можно контраргумент поподробнее, чем "Ты дурак и неправ!!"?
>> А про "хуже отражение" это ты до конца головой пробил дно. Это надо совсем ничего не соображать чтобы такое написать.
> А можно контраргумент поподробнее, чем "Ты дурак и неправ!!"?Эль Ниньо.
Гуманитарий да? Считать что отражение от льда спасает от глобального потепления это уже на уровне шапочки из фольги.
Ну вообще-то да, средняя температура находится в обратной зависимости от альбедо. Хотя другие факторы тоже, безусловно, надо учитывать.
На этой же wikipedia:
https://ru.m.wikipedia.org/wiki/%D0%93%D0...
> При этом температуру колбасит все время в приличном диапазоне, но никакого антропогенного воздействия на это нет.Попробуй сравнивать не абсолютные показатели, а производную по времени. К медленным, даже сильным, изменениям адаптироваться легче, чем к пусть небольшим, но очень быстрым.
> насчитали что на Земле глобальное потепление.так сходи в горы, посмотри ледники (что осталось от них - только торопись), в чем проблема-то
Чёт вроде лет 30 слышу уже что смена полюсов и ледниковые периоды нормальное циклическое явление. Я конечно согласен с тем что выбросы ндо сокращать, но в целом куда полезней будет перестать засирать океан (в том числе Фукисимой).
Оба явления плохи. Надо бороться с ними параллельно.
> Чёт вроде лет 30 слышу уже что смена полюсов и ледниковые периоды нормальное циклическое явление.Абсолютно нормальное. Только ты погугли про циклы Миланковича и сравни их период со временем нынешнего скачка температуры.
Спорят тут читал или нет программист описание glob, как оно в языке Go с сортировкой, как оно должно быть и т.д.Но никто не обратил внимание, что результат научных вычислений, зависящий от сортировки имен файлов - это дичайший govnocod в принципе, правильно там или не правильно glob применена. Потому что сортировать для научных целей надо числа, а не строки.
> результат научных вычислений, зависящий от сортировки имен файлов - это дичайший govnocod в принципеВот и я про то же самое написал. Если человек рукоjob, то его ни один язык программирования не исправит.
Ну если там надо сохранять большие объёмы промежуточных данных, то, возможно, такой подход имеет право на существование. Хотя я ни разу не уверен, что там именно такой случай.
write_in_C.ogg
writhe…
Почему они не использовали базу данных, как гетеросексуальные белые мужчины? если уж им так надо сохранять что-то на диске и сортировать (то есть, извлекать запись по индексу/хэшу)
Кстати, что они курили, если использовали оффтопик? Какой смысл в оффтопике для научных вычислений? Просветите ламера, плиз
Чтоб ты понимал новую версию скрипта на Убунту тоже никто не тестировал. Новая версия скрипта протестирована только на виндоуз 10, мак мохаве и мак эль капитан.
Это понятно, но в чем преимущество Эльф Капитана перед Бубунту? Скорость? Разрядность? по идее идентична, не?
Юзабельность? Ноутбуков с убунту не продают? Этот расчет не требует суперкомпьютера с убунтой? Среди химиков нет краснoглазиков?Лучше приведу их текст как есть:
Testing: The new scripts were tested on using Python V3 (Windows 10 using Anaconda 1.9.6 running Python 3.7.1; Python 3.6.5 on Mac Mavericks; Python3.7.1 on my Mac Mojave)
and Python V2 (Python 2.7.10 on Mac El Capitan 10.11.6; Python 2.7.16 on Mac Mojave).
> Юзабельность?python script.py , даже на МС-ДОС работает (представь себе!)
> Ноутбуков с убунту не продают?Хромбуки, не? Сьюзи, Красная Шапочка, не? Многие конторы, (как бонус клиентам), сами ставят свободный линукс бесплатно, при покупке корпоративными клиентами
> Этот расчет не требует суперкомпьютера с убунтой?Химия очень-очень жрет математику, и видеокарты даже
> Среди химиков нет краснoглазиков?Среди ученых кразноглазиков больше, чем 2%
> Среди химиков нет краснoглазиков?Ну здрассьте, а мы с Тульевым?
И на мак маверик версию скрипта для питона 3. Да там два файла этого алгоритма один на питон 2 другой на питон 3.
> Кстати, что они курили, если использовали оффтопик? Какой смысл в оффтопике для научных вычислений?Какая разница? Ну вот реально, какая разница что там за операционная система стоит? Почему учёного это должно волновать?
Они считали хим.сдвиги во внешней квантовохимической программе (Gaussian) для разных конформеров (грубо говоря, результатов скручивания, изгиба и прочих искажений молекулы, обусловленных тепловыми колебаниями), а потом читали файлы текстовых выводов этой программы и обрабатывали (усредняли) их для определения средневзвешенного значения."Published in 2014, this Nature Protocols manuscript provides detailed instructions aimed at enabling those with minimal theoretical knowledge of the subject area to calculate gauge-including atomic orbital (GIAO) NMR chemical shifts and includes Python scripts to streamline the process. . It has been cited over 130 times in the last 5 years. Detailed investigations traced the source of the discrepancies to those Python scripts that summarize the conformers, free energies, Boltzmann distributions, and isotopic tensors from the various Gaussian output files and then use this information to calculate Boltzmann averaged chemical shifts (step 15)".
А где тестирование софта?
А где гранты и научные плюшки/звания за тестирование софта? Им же рецензии нужны а не геморрой с QA
Ааа нету. Нету тестов. Ну вот как ты будешь модель океана тестировать, когда даже частных случаев с аналитическим решением её уравнений нет ??? Воот.
Отдаленно похоже на наблюдения, - значится правильно считаем. А почему отдаленно ?? А сетка маленькая,шаг большой , разрешение низкое. Начальника, начальника дай денег на новый кампуктер !
А потом выясняется , - см выше ....
Тестировать — точно так же, как и всё остальное. Есть тестовые наборы данных, на которых алгоритм должен выдавать заранее посчитанный результат. Если результат не соответствует, значит где-то ошибка.
>Есть тестовые наборы данных, на которых алгоритм должен выдавать заранее посчитанный результатЧЕМ ПОСЧИТАННЫЙ ??
Эталонной реализацией алгоритма. И пофиг, что в ней самой может быть ошибка. Главное — ты сразу заметишь расхождение и сможешь, если мозгов хватит, докопаться до причины.
Ну,в росскоссмосе была уже "эталонная реализация", которая работала только при старте с байконура , бгг
> Ааа нету. Нету тестов.Если тестов нету - в печку ее, Зина!
> Ну вот как ты будешь модель океана тестировать,
> когда даже частных случаев с аналитическим решением её уравнений нет ???Частные случаи, симметрии, отдельные элементы модели (ну не решалку
же уравнения Навье-Стокса мы пишем, верно?)...
>ну не решалку же уравнения Навье-Стокса мы пишем,Её,Её,родимую !!
И плюс блок термодинамики !
>>ну не решалку же уравнения Навье-Стокса мы пишем,
> Её,Её,родимую !!Ну и зря.
Берёшь квадратный океан постоянной глубины с однородными характеристиками, или иную симметричную для модели сцену для которой можно получить оценки проще по сравнению с полноценными расчётами. Далее характеристики постепенно стновятся неоднородными. Расчётные модели всегда проверяют подбным образом, а если нет - то это рандом и обычный распил бабла.
Ага. Ага. Ага.
Только , напомню, что ошибка была в рассчете коэффициента диффузии.
Когда все пользовались Благословенным Бейсиком (на перфокартах), такого не было! И трава была зеленее!
За благословенным бейсиком лаборантки потом пересчитывали на логарифмических линейках.
Не дошло, проясните плиз, лапочка - лаборантка
Не Бейсике с перфокартами ошибок в вычислениях было больше. Поэтому их надо было проверять в ручную.
У автора скрипта руки из задницы, ни питон, ни операционка тут ни при чём.Сначала складывать промежуточные данные в файлы, потом их читать их в массив, потом думать, что и так нормально.
> Сначала складывать промежуточные данные в файлы, потом их читать их в массив, потом думать, что и так нормально.А так и есть - нормально. Если имя файла что - то осмысленное, то оно может быть неплохим индексом массива. Питошка же умеет даже в многомерные массивы с индексом в виде нескольких строк?
Ещё один такой же муфлон.Нормально - это когда по этим именам строится индекс, сортировка происходит или ещё чего-то необходимое перед тем, как перебирать в цикле. Тогда нормально. Если просто насыпать, как и было сделано, это рукожопство.
Не-а. Есть 2 вида программирования : обычное ( производится тиражируемый програмный продукт) и исследовательское (производится результат , ну , в смысле , конечный продукт - статья, чертежи установки итп). Для исследовательского, когда программа работает на одной машине при определенных версиях ПО итп - это нормально. Мы ж научные сотрутники, мы ж понимаем, что если напишем что-нибудь кроссплатформенное и на века, - нас разгонят.
А когда ты тиражируешь исследовательский продукт - ссзб.
> А когда ты тиражируешь исследовательский продукт - ссзб.Кстати, верно подмечена вторая проблема -- перед публикацией не подумали.
> Сначала складывать промежуточные данные в файлы, потом их читать их в массив, потом думать, что и так нормально.Сомневаюсь, что было именно так. Скорее всего, данные из каждого файла обрабатывались последовательно, чтобы не жрать память. Хотя вариант с рукожопием тоже возможен.
Тут 100% вариант с рукожопием, и под сомнением - ещё более херовые варианты.
Возможно, это не руки, а даже ноги, и ими этот код и писался.
Помню, всегда бесило в научных публикациях вот это: мы получили данные и обработали их в LabVIEW, получили такие результаты и значения погрешностей.Верьте нам, LabVIEW никогда не ошибается.
Ну в математических журналах, применение CAS запрещено из-за неверифицируемости ...
К счастью таких надо полагать не много...
> К счастью таких надо полагать не много...К несчастью, таких мало. Необходимо, чтобы не только в математических журналах было такое правило.
Впрочем, не на опеннете такое писать.
Верифицироваться должны результаты а не способ их получения.
Применив леммы 1-5, к определениям 2-17, получим , что справедливы выражения 36-52. Заметим, выполнение тождества 13 , дает нам контрпример ,закрывающий возможность того , что ...
Загрузив 36-52 в систему wofram mathematica, вызывав команду упрощения выражения 13 , мы получили 0=0, поэтому ...
Впиред верифицируй, особенно если не получается узнать mathematica глюкнула или ты дурак решения не видишь ...
Обычно про такие описания говорят: - Доктор. у меня в подвале стук.. что это?
Безграмотно составленное описание процесса.Правильно писать так: Анализируя 36-52 мы упрощаем выражение 13 , получили 0=0, поэтому ...
И только в заключении внизу- пишется что для анализа использовалась wofram mathematica.
Соответственно тот человек который будет воспроизводить- будет пользоваться вероятно вообще другими средствами, и либо получит аналогичный результат, либо возникнут вопросы...
Но вопросы не из-за ахинеи про запрет CAS в научных журналах, а про обоснованность ваших выводов.
> Ну в математических журналах, применение CAS запрещено из-за неверифицируемости ...Это был химический журнал, увы.
Это в каких таких и что делать, собственно, с публикациями по тем же математическим алгоритмам этих ваших CAS?
Печататься в химических журналах :)
Приравнять CAS c открытым кодом к воспроизводимым результатам, разве что.
Ну вы там все-таки решите, наконец, крестик вам или трусы? Запрещено использование CAS в публикациях или как?
Можно подумать что если бы они посчитали данные столбиком - то ошибка была бы исключена.. Вас это не бесит?
> всегда бесило в научных публикациях вот это: мы получили данные и обработали их в LabVIEW, получили такие результаты и значения погрешностейИ что, в этих публикациях не было написано, какие конкретно методы применялись? Типа критерий Вилкоксона с повторными измерениями, например? Если не писалось, то не читай такие научные статьи. Они не научные, они лишь косят под научные.
> Верьте нам, LabVIEW никогда не ошибается.Смысл такого не в том, что LabVIEW не ошибается, а в том, чтобы можно было воспроизвести результаты и, если что, локализовать причину ошибки (которая может быть и в LabVIEW, почему нет).
Скачали библиотечку в интернете. )))Но, физики и прочие ерундовые атишники. Имею опыт и там и там. И коллеги учёные - разгильдяи как айтишники.
Топовые заведения дефолтного города.
> Топовые заведения дефолтного города.Страна не та…
>> Топовые заведения дефолтного города.
> Страна не та…Гаваец нашёл баг; гавгаваец нашёл, к чему догавкаться. Браво!
Тесты писать надо... Знали ж. )))
Вот поэтому нельзя называть программистами тех людей, которые используют готовые библиотеки, зачастую не интересуясь их работой.
Пиши stdio.h, string(s).h, mathlib, и что там еще? иначе уволю! С нуля пиши!
Бюджет есть? Готов приступать =)
>вывод неверного значения обусловлен отличиями при сортировке файлов в разных операционных системах.Я что-то совсем не догоняю, как результат численного моделирования может быть связан с порядком файлов в директории.
очень просто - так же как числа перебираются в цикле от 0 до бесконечности и дальше
у них скрипт с отсеиванием ненужных файлов и потом разбора нужной информации, а они отсеивать взялись не той функцией. вот и вся проблема. поменяют функцию и все дальше в работу. но 150 статей других ученых использующих их скрипт пошли в урну или на переписывание. беда в том что многие уже опубликовались. короче лажа наступила у химиков))
Я ничего не понял. Где репозиторий проекта?
у ученых? не ну у сцинтифик линукс вроде есть свой, но кто ж те данные так просто выложит. только скорректированный вариант.
pip install они (наши) обычно делают и норм. Остальное в файликах по папочкам на флешечках.P.S. Такие библиотеки имели бы автора, чьи гранты могут испариться от такого события и останется без денег. Имели бы описание и тестирование.
конкретные лаборанты лишать либо зарплаты либо работы
Лаборант — этот тот, кто лабораторную посуду моет, а не скрипты пишет.
> Авторы скрипта полагали, что функция "glob()" всегда возвращает файлы, отcортированные по имени, в то время как в документации на glob указано, что порядок вывода не гарантируется.Кто же нынче читает документацию и тестирует софт…
Все серьезные компании с сотрудниками набранными не из фрилансеров
Ещё одна ласточка в зады хипстерам от IT, теперь уже посерьёзнее. Все эти хипстамирки печальны тем, что верификации и тестирования кода перед использованием в них чуть менее нуля, при этом код поступает из овердохера источников, уровень доверия к которым также чуть меньше нуля. Но это не мешает хипстерам от IT городить свои маня-мирки поверх, а потом удивляться, когда они вот так эпично рушатся.
>Там одни обновления просто настоящая мина замедленного действия.А что с ними? В современных виндах всё ставится само, тебе не нужно даже париться об этом.
>И есть только два способа эту ОС восстановить - откат и бекап.Восстанавливать её и не придётся, ибо железобетонная стабильность, в том числе и файловой системы.(привет ext4)
>В отличии от Линукса, который можно восстановить почти всегдаВот и будешь ты всегда восстанавливать линукс, вместо того, чтобы пойти и погулять, например. После каждого обновления, каждого внесения изменений в аппаратную конфигурацию.
>Так надо стабильные версии ставить, а не тестовые.CentOS 7 достаточно стабильная версия? После обновления отвалилась сеть, полностью, все интерфейсы. Логи? Там очень развёрнуто и информативно сообщалось в духе "Оно не работает, сори". Пришлось сносить и ставить FreeBSD, оно вроде пока таких нелепых ситуаций не создавало.
В современных виндах всё вполне себе дружно ложится от офиц. обновлений. Даже у умеющих готовить винду.Надо читать релиз нотсы до обновления.
В каких именно? В 2016 вообще никаких проблем не замечал. За 2019 ничего говорить не буду, ибо не имел с ней дел.
В последнее время нашёл для себя оптимальное решение — FreeBSD. И бесплатно, и стабильно, и обслуживается легко, полная прозрачность, понятная логика системы. Жаль, что далеко не все хостинг компании работают с ней. Это просто система антипердоллинг — поставил, настроил и забыл.
Да, я примерно с такой же аргументацией перешёл на линукс. Нет, я могу и венду до вменяемого состояния довести (главное не обновлять на последние апдейты, откладывать некритические хотя бы на полгода), до она всегда причиняет мне боль в результате. На что только не пойдёшь ради проприетарного софта.С линуксом я кстати пересмотрел приоритеты, теперь только последнее лтс ядро и по возможности самый свежий софт. Поясню, с любым другим ядром высок шанс получить систему с дикими багами, которая внезапно не загружается, или же просто окаменела от старости и количества проблем. С софтом всё наоборот, проблемы и критические исправления будут только в последних версиях, тут либо натурально домезозойские лтс версии пользовать и молиться, что их кто-то обновил или не испортил, либо всё самое свежее.
>FreeBSD
Но кроме шуток, это фейл, бро. RAID6 конечно круто, но на этом все преимущества кончаются. В качестве файлсервера может и сойдёт.
> Вот и будешь ты всегда восстанавливать линукс, вместо того, чтобы пойти и погулять, например. После каждого обновления, каждого внесения изменений в аппаратную конфигурацию.Никогда не было проблем с релизными версиями стабильных дистров. Никогда.
Диски сколько раз переставлялись с одной машины в другую и работало. Смена железа - легко. Если только уж совсем нет специфики, которая очевидна.
А вот с тест версиями и т.п. экспериментальными дистрами бывало разное. Да. Но это приключения сознательные.
>А что с ними? В современных виндах всё ставится само, тебе не нужно даже париться об этом.Вот именно, что оно ставится само. Оно может поставится само, потом взять и перезагрузиться само. А потом будет долго скачанные обновления ставить. И это как раз в тот момент, когда перезагружаться вообще нельзя, потому что стабильного результата работы данного сервера ждут сотни людей. И опаздывать нельзя даже на минуты. Вот когда ты на эти грабли наступишь, то по возможности больше никогда это говно использовать не будешь.
>ибо железобетонная стабильность
В Windows стабильность, сравнимой со стабильностью в Linux, не было никогда.
>Вот и будешь ты всегда восстанавливать линукс, вместо того, чтобы пойти и погулять, например.
Ты не понял. Я могу его восстановить из любого места, при старании. А заниматься постоянным восстановлением мне не нужно, оно и так работает.
>После обновления отвалилась сеть, полностью, все интерфейсы.
Так ты пользоваться этим не умеешь. Пытаться пересесть с Windows на Linux, обвинять Linux, потом найти для себя FreeBSD - это путь новичков.
>Вот когда ты на эти грабли наступишьНе наступлю, ибо случайно узнал про настройку расписания.
>В Windows стабильность, сравнимой со стабильностью в Linux, не было никогда.Ну почему же? Во времена Win98 стабильность была примерно на уровне сегодняшнего linux.
>Так ты пользоваться этим не умеешь.Иначе и быть не могло, система разваливается в щепки при выполнении элементарного базового функционала, а виноват админ-дурак.
>Пытаться пересесть с Windows на LinuxЯ не пытался никуда пересаживаться, уже лет 10 использую в работе и то и другое.
>найти для себя FreeBSD - это путь новичковА может просто выбор более удобного и качественного инструмента?
>Не наступлю, ибо случайно узнал про настройку расписания.Перезагрука допустима исключительно в одном случае - если ее инициирует сам пользователь, а не она сама инициируется с подачи какого-то придурка в Microsoft. Не по расписанию, ни вообще никак по другому.
>Иначе и быть не могло, система разваливается в щепки при выполнении элементарного базового функционала, а виноват админ-дурак.
Ну это потому, что ты не админ. Ты им себя считаешь. Еще раз говорю, что поливать говном Linux из-за невозможности с ним справиться - это классический случай. Такие пользователи порой появляются пачками, как и ты, обвиняют Linux в собственной криворукости. И точно также характерно для новичка пытаться использовать FreeBSD. Последняя на первый взгляд выглядит стройнее, и легче для освоения. Но легче там только ядро собрать, все остальное на уровне Gentoo. Тебя еще ждут открытия.
>Я не пытался никуда пересаживаться, уже лет 10 использую в работе и то и другое.
Сказки не рассказывай. Ты только Windows используешь. А другое либо тебе настроили, либо ты с ним играешься.
>Вот и будешь ты всегда восстанавливать линукс, вместо того, чтобы пойти и погулять, например. После каждого обновления, каждого внесения изменений в аппаратную конфигурацию.Вообще-то этим винда славится.
Я ж говорил, что Python - это новый PHP. Привлекает к себе рукожопов
Интересно, многие ли , ставя питоновские библиотеки, проверяют правильно ли они работают? Или любые другие библиотеки. Например, запуская тесты, которые ко многим библиотекам есть.
Не знать, что порядок файлов может быть платформо-локале-зависим это совсем какое-то дно. Питон то тут при чём.
В POSIX сказано относительно glob() из стандартной библиотеки:> The pathnames shall be in sort order as defined by the current setting of the LC_COLLATE category
В питоне решили сделать не так? Ну доку, конечно, читать надо, но вообще ожидать такого же поведения по умолчанию вполне логично.
В питоне это даже не сишный глоб (которого нет в венде), и дёргает оно совершенно разные платформозависимые функции (емнип).
Вот до чего питон довел!
Разме на С языке такое не возможно?
Нет, там glob() возвращает отсортированные совпадения.
Python, такой питон. Впрочем СИ в некоторых случаях не лучше, просто разделите 1/3 шататными средствами, без подключения навороченных математических библиотек и сделайте точность 10-12 знаков после запятой.
bc в баше и то точнее будет.
Это не баш, это bc. Да и в целом не релевантно Питон в данном случае просто не делал одинаковой сортировки на всех платформах (и не должен был).
> bc в баше и то точнее будет.
$ bc
bc 1.07.1
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1/3
0
>> bc в баше и то точнее будет.
>
> $ bc
> bc 1.07.1...
> 1/3
> 0А теперь внимание: ч̶т̶е̶н̶и̶е̶ ̶м̶а̶н̶а̶ ловкость рук и никакого мошенничества:
% bc -l
1/3
.33333333333333333333% bc <<< "scale=8000; 1/3"
.3333333333333333333333333333333333333333333333333333333333333333333\
33333333333333333333333333333333333333333333333333333333333333333333\
33333333333333333333333333333333333333333333333333333333333333333333\
...
...
33333333333333333333333333333333333333333333333333333333333333333333\
33333333333333333333333333333333333333333333333333333333333333333333\
% bc <<< "scale=8000; 1/3"|wc -c
8236ЗЫ: но вообще-то calc от одного ученого-астронома
http://www.isthe.com/chongo/tech/comp/calc/
удобнее:
% calc "base(1/2); 1/3 + 2/5 + 5/17"
10
262/255
> А теперь внимание: ч̶т̶е̶н̶и̶е̶ ̶м̶а̶н̶а̶
> ловкость рук и никакого мошенничества:Скажете тоже… Кто же из опеннетовских экспертов читает маны?
> ловкость рук и никакого мошенничестваКак это — никакого? Утверждалось же:
> без подключения навороченных математических библиотек
Bc может на СИ написан, а может и нет.
Вы на чистом си напишите код и посмотрите, что будет.
А так же, если будет желание на python, perl, javascript, и даже на баше.
> Вы на чистом си напишите код и посмотрите, что будет.Ну я писал, помнится, длинную полиномиальную математику на голых сях для бакланаврской. Вы этим кого вообще пугать пришли?
>> ловкость рук и никакого мошенничества
> Как это — никакого? Утверждалось же:
>> без подключения навороченных математических библиотекТ.е. на самом деле следовало использовать bc, не используя dc? o_O
>>> Впрочем СИ ... разделите 1/3 шататными средствами, без подключения навороченных математических библиотек
>>> bc в баше и то точнее будет.
>> $ bc
>> 1/3
>> 0Или все же стоит читать целиком и в контексте, а не выдергивать отдельные, понравившиеся фразы?
> Т.е. на самом деле следовало использовать bc, не используя dc?Следовало использовать bc, не используя опцию -l. Да, в это сложно поверить, но Аноним про неё знал.
> Или все же стоит читать целиком и в контексте, а не выдергивать отдельные, понравившиеся фразы?Если целиком и в контексте, то, конечно, надо ещё упомянуть, что точность bc не зависит от того, запущен он из bash или откуда-то ещё.
>> Т.е. на самом деле следовало использовать bc, не используя dc?
> Следовало использовать bc, не используя опцию -l.Хм, потому что гладиолус или потому что аноним несет Возмездие во имя Луны?
Кстати, если уж придираться к формальностям, то во втором листинге -l нема.
% bc <<< "scale=8000; 1/3"Ну и вообще-то bc является лишь препроцессором к dc, который и является "dc is an arbitrary precision arithmetic package
% bc -c <<< "scale=8000; 1/3"
8000k 1 3/ps.
% dc <<< "8000k 1 3/ps."
.333333333333333333333333333333333333333
так что говорить о точности bc бессмысленно.> Да, в это сложно поверить, но Аноним про неё знал.
Угу-угу. Только она [опция] вот тут -- нафиг не нужна. Просто там задается дефолтный scale = 20.
Изначально вам предолжили в̵ ̵л̵а̵с̵т̵а̵и̵х̵ ̵и̵ ̵п̵р̵о̵т̵и̵в̵о̵г̵а̵з̵е̵ посчитать на си стандарными средствами языка. Чем не понравился bc"Адеквату" я не знаю, но и bc и (тем более) питон для таких подсчетов "из коробки" проще, быстрее, да еще и намного точнее. И если уж аноним "знал", то тем более непонятно что должен был продемонстрировать тот пример.
Я не знаю, что у тебя там за bc, но у меня — GNU bc, который
> was implemented from the POSIX P1003.2/D11 draft and contains several differences and extensions relative to the draft and traditional implementations. It is not implemented in the traditional way using dc(1). This version is a single process which parses and runs a byte code translation of the program.Что касается опции -l:
> -l, --mathlib
> Define the standard math library.что бы под этим ни подразумевалось.
> посчитать на си стандарными средствами языка. Чем не понравился bc"Адеквату" я
> не знаю,У меня была простая просьба.
Написать. На СИ. Код. Котрый. Покажет результат делания 1/3, и это будет не 0.#include <stdio.h>
int main(int argc, char* argv[])
{
float a=1/3.0;
printf("%.20f",a);
}Результат:
0.33333334326744079590
Вот результат для double:
0.33333333333333331483офигенная точность, правда ?
про bc - если мне в моей проге понадобиться супер-математичесая точность, мне что, каждый раз делать system bc ?
> про bc - если мне в моей проге понадобиться супер-математичесая точность,
> мне что, каждый раз делать system bc ?Слушайте, даже я уже больше двадцати лет знаю про gmp, которую мне мсье Зубинский дал в руки, когда собирался писать свою реализацию деления. Неужели быстрее ныть, чем найти или на худой конец сделать?..
PS: в смысле "когда я собирался", разумеется.
> если мне в моей проге понадобиться супер-математичесая точность, мне что, каждый раз делать system bc ?Если нужна хоть какая-то точность, забудь про float и пользуй double. Если супер-пупер — бери библиотеки и не стонай. Можно подумать, питон без них на большее способен…
>>> print("%.20f" % (1.0/3))0.33333333333333331483
> Можно подумать, питон без них на большее способен…Канешна, дарагой!
>>> import fractions
>>> fractions.Fraction(1, 3)Fraction(1, 3)
> Можно подумать, питон без них на большее способен…Угу. Питон же, на самом деле, исключительно из-за неосиляторства сишечки используют 🙄
>>> import decimal
>>> decimal.getcontext().prec = 100500
>>> res = decimal.Decimal(1) / decimal.Decimal(3)
>>> str(res)[:10]'0.33333333'
>>> str(res)[100480:]'3333333333333333333333'
% time python2.7 -c "from decimal import *; getcontext().prec=100500; print str(Decimal(1)/Decimal(3))[100400:]"
333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
python2.7 -c 0,90s user 0,02s system 99% cpu 0,932 totalОх уж эти мантры опеннета.
Так понимаю что проблема не авторе кода, а в интерпетароре. Очень странно что для заявленных ОС он работает неодинаково.
А все те кто свистят на программистов что "должны тестировать код лучше" наверное слабо представляют как это сделать - не иначе как иметь парк ПК с разными ОС ))) Мелкомягкие софтоделы живут в своем мирке C# где все работает как надо только в коммерческой среде.
Химики, пользуйтесь современными средствами программирвания, а не питоном - https://github.com/svaksha/Julia.jl/blob/master/Chemistry.md
Не в современности дело, а в том, что неверно делать ПО для научных расчетов на скриптовом языке к тому же с использованием библиотек, не обладающих свойством кроссплатформенности.
Ну так, что бы, в самом деле, не пользоваться Julia? Весь код на ней. Все тесты - на ней же.
Думаю, научное ПО нужно делать на C/C++ с использованием кроссплатформенного инструментария, такого как Qt. Ранее мое мнение было иным. Возможно, в будущем мнение также изменится. Но на сегодняшний день оно таково.
> Думаю, научное ПО нужно делать на C/C++Все математические языки программирования имеют нумерацию индексов массивов с 1. И компоновка памяти, чаще, фортрановская с упакованными колонками. И языками этими, банально, удобнее пользоваться для программирования именно математики, чем C++. А вот мешанина научный язык - C++ - лишнее место возникновение проблем.
> Все математические языки программирования имеют нумерацию индексов массивов с 1.В С можно сделать нумерацию с 1. Но не нужно. К тому же некоторые алгоритмы предполагают нумерацию с нуля.
> И компоновка памяти, чаще, фортрановская с упакованными колонками.
Не совсем понятно, что имеется в виду. Если речь о массивах векторов различной длины (а также передачи через формальные параметры части массива размерности более 1), то проблема надежно решается использованием в функциях на С только одномерных массивов. Таким образом в данном случае передается указатель на первый элемент массива, количество векторов и массив длин векторов. Кстати, идея не нова. Она как раз из Фортрана. Эффективно применялась в известной математической и статистической библиотеке SSP.
> Не совсем понятно, что имеется в виду. Если речь о массивах векторов различной длиныРечь о том, что скорость прохода по элементам матрицы различна в случае: сначала по строкам, потом по колонкам и наоборот в зависимости от языка программирования. В фортрановской ветки, соответственно матлаб и джулия, именно колонка содержит последовательные элементы. В С-ветви, строка содержит последовательные элементы. Если сделаешь наоборот, то резко снижается производительность алгоритма.
> Если сделаешь наоборот, то резко снижается производительность алгоритма.Собственно, в итоге такая матричная математика любит упираться в организацию памяти -- скорость работы с одним банком или хлопая "открыл-закрыл" даже на дорогой памяти сильно различается...
> мешанина научный язык - C++Никакой проблемы. Еще на заре ПК, когда был большой багаж научных программ на Фортране, именно "смешанное" программирование: алгоритмы на Фортране, всё остальное (меню, ввод и вывод) на С - показало свою эффективность. В последующем, если говорить о нас, все фортрановские функции были переписаны на С. И опять же для скорости и удобства была реализована модель: алгоритмы на С, всё остальное на Visual Basic. Впрочем, необходимости в этом сейчас уже нет. Всё реализуется на С++.
Никогда не задумывались, почему за 40 лет так на C и не сделали удобный инструмент для интерактивного программирования математики, а все 40 лет пользовались R? Или почему, несмотря на все изменения C++ и новейшие его стандарты со всякими модными нашлёпками, так никто не пишет в Jupyter Notebook на нём?Julia - как раз тот язык, которым удобно пользоваться как для небольших расчётов, так и собирать что-то сложное из отдельных модулей. При этом, технология монолитна. Она не требует для компенсации провалов производительности что-то писать на C
"about 50% of R is written in C, and just under 30% in Fortran" (c) https://blog.revolutionanalytics.com/2011/08/what-language-i...
> Ну так, что бы, в самом деле, не пользоваться JuliaЦитата из Википедии: "Julia написана на Си, C++..."
И что? Как это соотносится с кодом, который пишут на Julia и тем, как он выполняется далее?
>> Ну так, что бы, в самом деле, не пользоваться Julia
> Цитата из Википедии: "Julia написана на Си, C++..."Я не поклонник Юлий, но вырывать цитаты из контекста … нехорошо
> with C++ for the LLVM dependency.
> he LLVM compiler infrastructure project is used as the back end for generation of 64-bit or 32-bit optimized machine code depending on the platform Julia runs on. With some exceptions (e.g., PCRE), the standard library is implemented in Julia itself.|
> Я не поклонник Юлий, но вырывать цитаты из контекста … нехорошоТ.е. Вы полагаете, что Julia не написана на C++? Думаю, что фактом написания на C++ стоит гордиться.
>> Я не поклонник Юлий, но вырывать цитаты из контекста … нехорошо
> Т.е. Вы полагаете, что Julia не написана на C++?Я полагаю ровно то, что написал -- нехорошо вырывать цитаты из контекста.
В остальном, я предпочитаю не полагать и не предполагать -- если можно просто посмотреть:
https://github.com/JuliaLang/julia
> Julia 68.7% C 16.3% C++ 9.9% Scheme 3.2% Makefile 0.7% LLVM 0.4% Other 0.8%
питон создавался изначально как самое кроссплатформенное решение из всех имеющихся. то что он не заточен под сильно нагруженные задачи, то да. так кто с этим спорит. хотя в наш век все кричат , что следить за памятью и ресурсами не нужно. купил планку и дальше гоняй. типа если не смог то ло*х. хотя я категорически против. от этой идеи в итоге страдают все. гляньте на операционки. электроны, js, qml и прочие гадости только отнимают ресурсы, а при этом улучшения в самих операционкак как бы почти и нет.
Всем спасибо за обсуждение. Надеюсь, пользователи сделают правильный выбор.
Это проявление кроссплатформенной чертовщины. Написано же в скрипте, на какой платформе он создан и отлажен, всё остальное на свой страх и риск.
Неужели на винде?
далеко ходит не надо, утилита diff точно так же по разному сортирует файлы на линуксе и винде
не смотря на принудительные опции
diff сортирует файлы? Офигеть! А я-то думал, отличия в них ищет.
man diff
перед тем как дифать рекурсивно директорию например
он сортирует файлы в ней
и diff на линуксе и diff на винде из комплекта git утилит к примеру
выдаст разный результат
Вот и автор сабжевого скрипта тоже думал, что питонячий glob что-то там сортирует. Открой сам man diff и найди в нём хоть одно слово про сортировку и «принудительные опции», которые якобы должны на неё влиять.
Спойлер: нет их там. А значит, порядок обхода файлов может быть каким угодно. Может измениться даже в разных версиях одной и той же реализации diff на одной и той же системе, не говоря уже про разные реализации.
P. S. Ну ладно, в мане для diff из FreeBSD есть упоминание сортировки. Без уточнения, каким образом она производится, влияет ли на неё LC_COLLATE или ещё что-то, и уж тем более без «принудительных опций».
Профессиональные кодомакаки гонят на химиков, что те написали плохой скрипт. Это как если бы шофер жаловался, что химик плохо водит машину или уборщица, что химик плохо убирает лабораторию.
> [...] гонят на химиков, что те написали плохой скрипт.Более внимательный человек выше вон отметил, что проблема -- в публикации. Т.е. когда разработчик (sic!) кода выступил его поставщиком.
PS: ...спустя рукава.
Я вот подумал, а ведь решение очень простое публиковать свои доклады просто в какой-то Вики системе ее обновили и все пересчиталось, но нет придумали тратить бумагу печатать журналы будто это еще кому-то надо...
И как ссылаться на такие публикации, если через неделю в них может быть уже что-то совсем другое написано?
По-моему это наглядно демонстрирует уровень современной науки, когда вместо опытов учёные полагаются на формулы и скрипты.
Это наглядно демонстрирует и уровень современной техники, когда вместо моделирования и эксперимента полагаются на автокад.
> Авторы скрипта полагали, что функция "glob()" всегда возвращает файлы, отcортированные по имени, в то время как в документации на glob указано, что порядок вывода не гарантируется.Старая проблема питона. Конечно же, конечно же всё документировано. Но большинство функций делают что-нибудь неочевидное, а читать каждый раз документацию к каждой функции физически невозможно.
> Конечно же, конечно же всё документировано. Но большинство функций
> делают что-нибудь неочевидное,Если бы все функции делали только очевидное - в качестве документации
вполне проканали бы название и список аргументов.> а читать каждый раз документацию к каждой функции физически невозможно.
Почему не возможно? Вы чукча, извините за неполиткорректный вопрос?
> Вы чукча, извините за неполиткорректный вопрос?Ну вот, и Вы уже пятой графой интересуетесь... похоже, это заразно!
>> Конечно же, конечно же всё документировано. Но большинство функций
>> делают что-нибудь неочевидное,
> Если бы все функции делали только очевидное - в качестве документации
> вполне проканали бы название и список аргументов.Да, и в хороших библиотеках именно так оно и есть. Ты можешь, конечно, забыть порядок аргументов, но общая суть обычно неизменна.
Когда map во всех нормальных языках принимает список и функцию, а возвращает список -- очень странно например видеть, что в питоне map возвращает итератор, который приводится в список явным образом.
Когда во всех языках общего назначения есть очевидным образом работающая библиотека взаимодействия с ФС, в которой либо нет функции копирования дерева каталогов, либо есть весьма очевидно работающая -- в Python эта функция реализована ещё и с замещением stat-ов, и переопределить это поведение можно лишь частично.
Когда в самых разных языках есть библиотеки, предоставляющие простейшую абстракцию Stream, питон за свои без малого 30 лет существования до сих пор не имеет её. "Потому что можно использовать вместо стрима генераторы", лол. Да, можно, но это не удобно, это более многословно... И т.д.
Всё это вкупе делает Python крайне неудобным языком общего назначения. Смысл его использовать бывает лишь в тех случаях, когда Вы работаете с большими обвязками, специально для него написанными -- такими как numpy, ну или с некоторыми библиотеками для Machine Learning-а.
>> а читать каждый раз документацию к каждой функции физически невозможно.
> Почему не возможно?Потому что задачи надо решать вовремя.
Безусловно, каждый язык имеет свою специфику. Но когда Вы рассматриваете некий язык со всем комплектом его библиотек как инструмент, решающий Ваши задачи, всегда полезно обращать внимание, насколько очевидным образом он себя ведёт. От этого косвенным образом зависит количество неочевидных ошибок, которые Вы словите -- то есть количество времени, которое Вы затратите на написание/отладку кода, решающего Ваши задачи.
> Да, и в хороших библиотеках именно так оно и есть.В далекой-далекой галактике?
> Когда map во всех нормальных языках принимает список и функцию, а возвращает
> список -- очень странно например видеть, что в питоне map возвращает
> итератор, который приводится в список явным образом.Итератор вовсе не обязательно в список переводить. Не во всех языках
есть подобная конструкция в принципе, вот и не используется вместо списка.> есть весьма очевидно работающая
Кому очевидно?
> Всё это вкупе делает Python крайне неудобным языком общего назначения.
Мне удобно, спасибо.
>>> а читать каждый раз документацию к каждой функции физически невозможно.
>> Почему не возможно?
> Потому что задачи надо решать вовремя.Если вы не выучитесь элементарному чтению документации, то
задачи придется решать заново. Хотя, возможно уже и не вам...
> В далекой-далекой галактике?
>> Когда map во всех нормальных языках
> Не во всех языкахАх "не во всех языках" оно так... Ну давайте посмотрим: racket, sbcl, ocaml, haskell, javascript, java, clojure, erlang, elixir, php, perl, scala -- надо же, такие разные языки, а как речь заходит про базовые вещи типа map -- всё так похоже. Но конечно же нет, "не во всех языках" map есть, не "во всех языках" map работает единообразно. Потому что есть python! =)
>>>> а читать каждый раз документацию к каждой функции физически невозможно.
>>> Почему не возможно?
>> Потому что задачи надо решать вовремя.
> Если вы не выучитесь элементарному чтению документации, то задачи придется решать заново.Конечно-конечно. Ведь проблема не в том, что есть *теоретическая база*, откуда растут ноги всех этих конструкций. И даже не в том, что есть *алгоритмы*, математический аппарат которых основан на этих понятиях. И уж точно не в том, что есть *общепринятые практики*, которые распространены повсеместно, которыми пользуются миллионы программистов. Нет! Проблема в том, что люди не читают талмуды документации питона, описывающие его далеко не стандартное и далеко не очевидное поведение! =)
В общем, у тебя теперь есть все данные, чтобы понять, почему среди питонистов хороших программистов быть не может. Если не понял -- мои соболезнования.
> Ну давайте посмотрим: ... php ...Я вас умоляю. Там array_map есть. Где там map? Мне все проверять, или честно признаетесь, что так у вас везде?
> Но конечно же нет,
> "не во всех языках" map есть, не "во всех языках" map
> работает единообразно. Потому что есть python! =)Да нет же. Не во всех языках есть итераторы. Ну что тут можно было не понять?!
>>>>> а читать каждый раз документацию к каждой функции физически невозможно.
>>>> Почему не возможно?
>>> Потому что задачи надо решать вовремя.
>> Если вы не выучитесь элементарному чтению документации, то задачи придется решать заново.
> Конечно-конечно. Ведь проблема не в том, что есть *теоретическая база*, откуда растут
> ноги всех этих конструкций.Эм, а что не так с теоретической базой у питона?
> И даже не в том, что есть
> *алгоритмы*, математический аппарат которых основан на этих понятиях.Математический аппарат алгоритмов, чего только на опеннете не услышишь...
> есть *общепринятые практики*, которые распространены повсеместно, которыми
> пользуются миллионы программистов.Например, RTFM.
> Проблема в том, что люди не читают талмуды документации питона
Ну да. За вычетом того, что там далеко не талмуды. Большинство
классов/функций/методов - имеют весьма лаконичную документацию.> В общем, у тебя теперь есть все данные, чтобы понять, почему среди
> питонистов хороших программистов быть не может.Почему-ж нету? Есть скромный я.
Господи, Мыханд. Вот вроде человек. Вроде умеешь читать и писать. Даже работаешь, наверное, где-то. Но как ты всё это делаешь, вообще не включая в эти процессы пространство между ушами -- это загадка из загадок. Имеешь славу местного шута, и доволен этим. И самому не противно. Удивительно.
> Но как ты всё это делаешь, вообще не включая
> в эти процессы пространство между ушами -- это загадка из загадок.Чье пространство? У меня между ушами в соответствии с нормальной человеческой
анатомией - головной мозг, а не пространство. Если у вас тама устроено
как-то иначе, то сочуствую, но я-то тут причем?> Имеешь славу местного шута
Это кто-й то меня тут в шуты назначил? "Общественность" в ажно целом лице
1шт модератора? Извините, модераторы опеннета - это уже целый даже
диагноз, а не просто мем...
Гиблое дело.
> Математический аппарат алгоритмов, чего только на опеннете не услышишь...Ох уж эта молодёжь…
http://publ.lib.ru/ARCHIVES/M/''Matematicheskoe_obespechenie_EVM''/_''Matematicheskoe_obespechenie_EVM''.html
Заметь, каких годов эта литература.
>> Математический аппарат алгоритмов, чего только на опеннете не услышишь...
> Ох уж эта молодёжь…
> http://publ.lib.ru/ARCHIVES/M/''Matematicheskoe_obespechenie_EVM''/_''Matematicheskoe_obespechenie_EVM''.html
> Заметь, каких годов эта литература.И где там подобное словосочетание? Нет, я в принципе догадываюсь что хотел сказать
уважаемый оратор. Просто уж очень смешно это обозвал, для мало-мальски привычного
к терминологии.(А так-то можно даже назвать ж*пу - пальцем, интернет (или там
бумага) - стерпит.)
Оно там есть в каждой книжке, даже если не в буквально такой формулировке.Но ты можешь их все и не читать, а просто загуглить:
https://www.google.com/search?q=Математический+аппарат+алгоритмов
Заодно узнаешь, что ничего смешного оратор предыдущий не сказал.
Я бы на твоём месте всё же прочёл бы или хотя бы пролистал пару-тройку книг из того перечня. Это кладезь бесценных знаний, которых ты не найдёшь в пихтоновских ПЕПах. Именно знаний, а не навыка тыкать в «дальше» или копипастить г-нокод из пихтоноводских мануалов.
> Оно там есть в каждой книжке, даже если не в буквально такой формулировке.Родной, выкинь такие "книжки" на помойку, буде если они на самом деле есть.
> Но ты можешь их все и не читать, а просто загуглить:
> https://www.google.com/search?q=Математический+аппарат+алгоритмовПонимаешь, по отдельности эти слова - имеют смысл. Бессмысленно именно
словосочетание. Если ты не завершил свое знакомство с математикой классе
в 9-м, то, по идее, должен знать что термины на куски не принято резать.
Какое-нибудь "вполне непрерывное отображение".> Заодно узнаешь, что ничего смешного оратор предыдущий не сказал.
Как не сказал? Мне стало еще смешнее после того, как ты без
кавычек это стал в гугле искать...> Я бы на твоём месте всё же прочёл бы или хотя бы пролистал пару-тройку
> книг из того перечня. Это кладезь бесценных знаний, которых ты не
> найдёшь в пихтоновских ПЕПах. Именно знаний, а не навыка тыкать в
> «дальше» или копипастить г-нокод из пихтоноводских мануалов.Я смиренно жду, когда ты из этого кладезя вынешь мне определение "математического
аппарата алгоритмов". Хотя слабо надеюсь на такое счастье...
Ты демонстрируешь удручающие невежество и глупость.Математический аппарат — это математические средства, используемые для чего-либо (например, вычислений). Так же, как понятийный, логический, методический, технический и пр. аппараты — соответствующие средства, применяемые человеком для решения каких-то задач.
Дабы не создавалось впечатления, что пихтономакака победила в этом споре, я специально для тебя нашёл книгу, в которой по-русски вкратце описан математический аппарат программирования. Книга называется «Типы в языках программирования» (Types and Programming Languages), её автор Бенджамин Пирс (Benjamin C. Pierce). Вторая глава так и называется: «Математический аппарат».
http://newstar.rinet.ru/~goga/tapl/tapl004.html
Во всех науках, что-либо измеряющих и считающих, используется математический аппарат, а от самого предмета исследования абстрагируются до его математической модели (см.: https://ru.wikipedia.org/wiki/Математическая_модель ).
Надеюсь, ты слышал фамилию Вирт? Этот самый дяденька Вирт некогда написал книгу с говорящим названием (варианты несколько различаются для разных изданий): «Алгоритмы + структуры данных = программирование». Впервые она вышла, если не ошибаюсь, в семидесятых. Другие книги из прекрасной серии «Математическое обеспечение ЭВМ» в той или иной мере описывают математический аппарат программирования, которое, напоминаю слова Вирта, есть сочетание алгоритмов и структур данных.
Математическая (или символическая) логика является в программных алгоритмах связующим звеном между математикой и логикой как таковыми.
Больше заниматься ликбезом я не буду, читай книги.
> Математический аппарат — это [...]Ты с потрясающим упорством продолжаешь делить термин на отдельные слова, даже когда тебе подробно объяснили почему в науке это - глупость.
> Дабы не создавалось впечатления, что пихтономакака победила в этом споре, я специально
> для тебя нашёл книгу, в которой по-русски вкратце описан математический аппарат
> программирования. Книга называется «Типы в языках программирования»А я тебе последний раз напоминаю, что речь шла о "математическом аппарате алгоритмов".
> в той или иной мере описывают математический аппарат программирования, которое, напоминаю
> слова Вирта, есть сочетание алгоритмов и структур данных.(Твою-ж дивизию...) И Вирт противу тебя, вот невезуха. Т.е. "программирование" != "алгоритмы", верно? Даже ежели ты покромсал термин напополам...
> Больше заниматься ликбезом я не буду, читай книги.
Похоже именно я их вместо тебя всю дорогу и читаю...
> Дабы не создавалось впечатления, что пихтономакака победила в этом спореРазумные люди и так поняли бы, дорогой Anonymoustus. А какое там впечатление останется у обезьян... Так ли это тебя волнует, в самом-то деле, а?
Ну и к слову. Почему просто не приложишь ссылку на гугель? Ну например такую:
https://www.google.com/search?client=safari&rls=en&ei=B6jcXv...
> дорогой AnonymoustusВылизывание поощряется?
> А какое там впечатление останется у обезьян...
А уважаемые неб*длы себя обезьянами не считают? Я думал только Мишу Шигорина лично боженька создал, али вы тут все такие - может это такой тут критерий при кастинге модераторов?
> Так ли это тебя волнует, в самом-то деле, а?
Отучили читать документацию, которую за много лет, пользуясь монопольным положением, известная корпорация превратила в набор банальностей. Если не ошибаюсь, последний раз вменяемое руководство по стандартным библиотекам C++ было у Borland (есть в открытом доступе https://archive.org/details/bitsavers_borlandborn3.1LibraryR...). Несмотря на архаичность, это пример, как надо писать документацию. По другим языкам программирования вообще не припомню чего-то подобного.
> Если не ошибаюсь, последний раз вменяемое руководство по стандартным библиотекам C++ было у BorlandЧем https://gcc.gnu.org/onlinedocs/libstdc++/ хуже?
Собственно, подтверждение. В этом всё и дело. Проблема отсутствия структурированной и понятной документации по средствам разработки - вершина айсберга. Основная проблема в том, что, судя по реплике, программистам она и не нужна. Результат - имеем досадные ошибки.
Решение - в тщательном документировании библиотек. Возможно, даже в принятии стандарта. Руководство Borland - первая итерация, какой документация должна быть. Добавил бы в описание каждой функции тестовый набор данных и вывод результатов расчета по данному набору, а также там, где это уместно, математическое обоснование и ссылки на авторитетные источнки.
> Чем ... хуже?Тогда уж https://www.gnu.org/software/libc/manual/pdf/libc.pdf
Онлайн документация по функциям должна быть примерно такая:https://documentation.sas.com/?docsetId=statug&docsetTarget=...
К сожалению, в данной версии недоступна офлайн полностью (только главами). Для предыдущей полный файл PDF содержал более 10000 страниц (с примерами).