Из книжки в книжку и из статьи в статью эту хрень бездумно переписывают :(
Виртуальная память позволяет системе исполнять код приложений, используя больший объем памяти, чем физически доступно. Это достигается путем сброса неиспользуемых блоков памяти приложений на диск
А если диска нет (тонкий клиент, например), или свопинг вообще отключен, то что тогда с виртуальной памятью происходит? Она ведь как-то всё равно продолжает работать?
А философия Линукс в случае заключается в том, что всегда следует стремиться сделать данные человеко-читаемыми. И отступать от этого только если обстоятельства не позволяют (например производительность).
Вот эти линукс-философы на ранней стадии развития Интернета понапридумывали человеко-читаемых протоколов, все эти HTTP/SMTP/POP3/IMAP/IRC/Telnet/SIP/XMPP и, прости г-ди, FTP, кое-где даже нарушая разделение сетевой модели на уровни. Плюс извращения вроде того, что кошерный SMTP обязательно должен влезать в 7-битный ASCII, так что извольте сексоваться с MIME туда-сюда.
А сейчас не могу не заметить явную тенденцию, что всё, что приходит им на смену -- сплошная бинарщина. Не отдельные изолированные случаи нехватки производительности, а просто везде. http/3,grpc,mtproto,ssh и всё в этом же духе.
Как, глядя на данные, мне нужно понять, что их надо представлять в машино (компиляторо) нечитаемом виде?
Очень просто. Вы же знаете, кто эти данные будет читать, исходя из ТЗ и архитектуры проекта? Ну вот в таком виде и представляйте.
Тем более, я конкретные примеры привёл.
статья про код.
Статья -- да. А конкретно эта ветка -- про особенности текстового представления десятичных дробей и смежные проблемы. Ваш экскурс в компиляторы вообще не уместен.
Ну, в вашем случае, возможно. Но, честно говоря, для меня и сам по себе CSV это какое-то извращение. Есть же protobuf, есть bson, да куча всего есть. Да даже json, если вам человеко-читаемость так сильно упёрлась -- там точка закреплена стандартом.
Не спешите расписываться за всю науку. Я довольно много работал с сырыми данными миссий SRTM да и вообще с DEM моделями, как для пет-проектов, так и для муниципальных. И не было там никаких точек и десятичных разделителей вообще. Чистая бинарщина, двухкоординатный меш из 16-bit signed big-endian. Что есть архитектурно правильно.
Вы предлагаете всю эту систему сломать
Нет. Я предлагаю хотя бы называть вещи своими именами. Кривое легаси -- кривым легаси.
В противном случае можно закончить насильственным внедрением системы СИ, например, в США - ради общего блага, естественно.
А вы в курсе, что в этих самых США однажды всю космическую индустрию вместе с NASA взяли да и принудительно перевели как раз таки на систему СИ?
Потому что до того кто-то там посчитал параметры Mars Climate Orbiter в одной неметрической системе, а кто-то другой -- в другой, но тоже неметрической и в результате корабль был потерян с концами. Это к вопросу о том, нужно ли стандарты соблюдать или делать «как привычно».
А excel уже научился в русской локали автоматически детектировать и правильно считывать csv-шки с десятичной точкой?
А должен? В русской локали, ЕМНИП, десятичный разделитель это запятая.
или в одной системе нужно вручную выставлять правильный разделитель, или в другой.
А лучше вообще не использовать человеко-читаемые форматы данных на интерфейсе машина-машина.
Что интересно, я вроде бы не слышал, чтобы какой-нибудь язык программирования использовал локализованные разделители при вводе чисел, или, например, списков.
Совершенно верно. Именно по той причине, которую я указал выше -- синтаксис языка не является ни частью локали, ни даже национальным стандартом.
Но вот данные, которые считывают программы, написанные на этом языке, национально-специфичному форматированию вполне могут быть подвержены. Нет здесь противоречий.
Конкретно тот софт, который я привел в качестве примера (Этерна), был написан еще до того, как понятие "локаль" приблизилось к современному пониманию.
Позвольте усомниться.
Локали в более-менее современном виде появились в POSIX, а это начало 1980-х. Но я понимаю, о чём вы. Ни Фортран, ни Бейсик не умеют нативно в локали и до сих пор.
Поэтому позиция "Мы наш, мы новый мир построим" (вместо старого неправильного) выглядит в этом случае, хм, несколько спорной.
Новый мир уже давно построен и работает. Это как раз вы пытаетесь отстоять и оправдать исключительность очень узко-нишевого легаси, написанного на косячных инструментах без намёка на удобство сопровождения продукта.
Но если (чем черт не шутит?) Вы и правда сумеете это сделать,
...
множество народу будет Вам благодарно
За ваши деньги -- любой каприз.
Научный софт не
Вот это вы сейчас лихо рассказываете, какие программы пишут люди из научной среды как-раз таки человеку из научной среды, который в этой среде пишет программы. Не надо частные особенности возводить в правило и, тем более, в культ.
если бы автор Атлантиды не заморачивался с попыткой учета "стандартов", а тупо использовал в качестве десятичного разделителя точку всегда и везде,
Аргументировать несоблюдение стандартов криворукостью автора это мощно, да.
И я понимаю, что таких может быть даже большинство. Но это не делает данный подход верным, а всего лишь распространённым.
Должно правильно работать с локалями. Т.е. перекладывать заботу о том, точка там нужна или запятая на подсистему ОС или рантайм, а не на юзера и тем более не на хардкод. Экономия на standard compliance всегда вылазит боком, в том числе и по деньгам, просто немного позже в жизненном цикле продукта.
А если вы правильным подходом считаете править системные настройки в угоду криво написанному софту, то рано или поздно у вас возникнет ситуация, когда две разные софтины потребуют взаимоисключающих правок. И вам придётся в размышлениях о высокой стоимости разработки лепить какое-то middleware.
Из книжки в книжку и из статьи в статью эту хрень бездумно переписывают :(
А если диска нет (тонкий клиент, например), или свопинг вообще отключен, то что тогда с виртуальной памятью происходит? Она ведь как-то всё равно продолжает работать?
Хорошим тоном в статьях считается расшифровывать аббревиатуры там, где они встречаются впервые в тексте.
Баадера-Майнхоф?
Вы не доверяете подсчётам, а предпочитаете верить. Но требуете всё же почему-то не амулет на удачу, а близкую к 100% вероятность.
Так не смотрите новости, делов-то. Если в этом проблема.
А то ведь шанс быть сбитым машиной на улице на порядки выше, но вас это от выхода из дому не останавливает же.
Не только в Боингах. Вообще вся авиация использует футовые эшелоны (кроме некоторых стран Средней Азии)
https://en.wikipedia.org/wiki/Flight_level
Ага, чемоданы денег заносят разработчикам, чтобы они, не дай бох, не изобретали новые текстовые форматы обмена данными.
Вот эти линукс-философы на ранней стадии развития Интернета понапридумывали человеко-читаемых протоколов, все эти HTTP/SMTP/POP3/IMAP/IRC/Telnet/SIP/XMPP и, прости г-ди, FTP, кое-где даже нарушая разделение сетевой модели на уровни. Плюс извращения вроде того, что кошерный SMTP обязательно должен влезать в 7-битный ASCII, так что извольте сексоваться с MIME туда-сюда.
А сейчас не могу не заметить явную тенденцию, что всё, что приходит им на смену -- сплошная бинарщина. Не отдельные изолированные случаи нехватки производительности, а просто везде. http/3,grpc,mtproto,ssh и всё в этом же духе.
Не спроста это жжж.
Вам от этого легче станет?
Ну окей, я был неправ по поводу того, что "нет там такого".
Остальное всё в силе.
Очень просто. Вы же знаете, кто эти данные будет читать, исходя из ТЗ и архитектуры проекта? Ну вот в таком виде и представляйте.
Тем более, я конкретные примеры привёл.
Статья -- да. А конкретно эта ветка -- про особенности текстового представления десятичных дробей и смежные проблемы. Ваш экскурс в компиляторы вообще не уместен.
Попытался представить себе условный нетфликс, который стримит фильмы в текстовом потоке...
Эти принципы, как и любые другие, имеют свою область применимости. И не следует возводить их в абсолют.
Признак: данные, которые подвержены национально-специфичному форматированию.
Например, локализованные названия дней недели, месяцев, метки am/pm, да даже банальный DD-MM-YYYY или MM-DD-YYYY.
Нет, не такие. А к чему вопрос?
Нет там такого.
А покажите, пожалуйста, где именно в Линуксе это считается лучшей практикой.
Ну, в вашем случае, возможно. Но, честно говоря, для меня и сам по себе CSV это какое-то извращение. Есть же protobuf, есть bson, да куча всего есть. Да даже json, если вам человеко-читаемость так сильно упёрлась -- там точка закреплена стандартом.
Не спешите расписываться за всю науку. Я довольно много работал с сырыми данными миссий SRTM да и вообще с DEM моделями, как для пет-проектов, так и для муниципальных. И не было там никаких точек и десятичных разделителей вообще. Чистая бинарщина, двухкоординатный меш из 16-bit signed big-endian. Что есть архитектурно правильно.
Нет. Я предлагаю хотя бы называть вещи своими именами. Кривое легаси -- кривым легаси.
А вы в курсе, что в этих самых США однажды всю космическую индустрию вместе с NASA взяли да и принудительно перевели как раз таки на систему СИ?
Потому что до того кто-то там посчитал параметры Mars Climate Orbiter в одной неметрической системе, а кто-то другой -- в другой, но тоже неметрической и в результате корабль был потерян с концами. Это к вопросу о том, нужно ли стандарты соблюдать или делать «как привычно».
Если компиляторы занимаются чтением и обработкой данных, которые подвержены национально-специфичному форматированию -- то да, иначе -- нет.
Мы его пишем.
Выберу место работы, где руководство не вынуждает стоять перед подобными дилеммами.
А должен? В русской локали, ЕМНИП, десятичный разделитель это запятая.
А лучше вообще не использовать человеко-читаемые форматы данных на интерфейсе машина-машина.
Совершенно верно. Именно по той причине, которую я указал выше -- синтаксис языка не является ни частью локали, ни даже национальным стандартом.
Но вот данные, которые считывают программы, написанные на этом языке, национально-специфичному форматированию вполне могут быть подвержены. Нет здесь противоречий.
Позвольте усомниться.
Локали в более-менее современном виде появились в POSIX, а это начало 1980-х. Но я понимаю, о чём вы. Ни Фортран, ни Бейсик не умеют нативно в локали и до сих пор.
Новый мир уже давно построен и работает. Это как раз вы пытаетесь отстоять и оправдать исключительность очень узко-нишевого легаси, написанного на косячных инструментах без намёка на удобство сопровождения продукта.
За ваши деньги -- любой каприз.
Вот это вы сейчас лихо рассказываете, какие программы пишут люди из научной среды как-раз таки человеку из научной среды, который в этой среде пишет программы. Не надо частные особенности возводить в правило и, тем более, в культ.
Аргументировать несоблюдение стандартов криворукостью автора это мощно, да.
И я понимаю, что таких может быть даже большинство. Но это не делает данный подход верным, а всего лишь распространённым.
Это не я путаю.
Должно правильно работать с локалями. Т.е. перекладывать заботу о том, точка там нужна или запятая на подсистему ОС или рантайм, а не на юзера и тем более не на хардкод. Экономия на standard compliance всегда вылазит боком, в том числе и по деньгам, просто немного позже в жизненном цикле продукта.
А если вы правильным подходом считаете править системные настройки в угоду криво написанному софту, то рано или поздно у вас возникнет ситуация, когда две разные софтины потребуют взаимоисключающих правок. И вам придётся в размышлениях о высокой стоимости разработки лепить какое-то middleware.