Ремесло программиста

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Ремесло программиста » Предлагаемые стандарты и рецензии на них » Наименьший достаточный набор соглашений.


Наименьший достаточный набор соглашений.

Сообщений 31 страница 51 из 51

31

МихалНик

МихалНик написал(а):

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

Правильно не должна. Она должна быстро вставлять цепочку символов в середину путём перемаркировки блоков.

МихалНик написал(а):

Те же "расширения" в именах файлов - просто жуткие костыли.

Наличие паспорта это не костыль. Это удобство.

МихалНик написал(а):

TXT и для чтения неэффективен.

Ещё как эффективен seek и нет проблем.

МихалНик написал(а):

Это длительное действие.

Индекс по любому строить иначе никак.
Сложение это тоже длительная операция и чем длиннее машинное слово тем дольше выполняется сложение. Однако вся система команд это набор компромиссов. Даже обращение к памяти 4 такта занимает минимум. А если у вас 3 оперенда да они указатели да ещё и косвенная адресация то все 3*2*4+0,33=24,33 такта

МихалНик написал(а):

С "Блокнотом" печаль наступает гораздо быстрее.

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

32

У мну за те же 300р на порядок больше (+более чем достаточно минут и смс-ок). В "Гадюкино" в Алт. крае еше 5 лет назад был ночной безлимит и 50 Гб на дневной в месяц, кажется, рублей за 600, а в потом Подмосковье был круглосуточный безлимит за те же деньги (но с ограничением в неск. Гб/мес внутри МКАД).

Для отправки килобайтов XML вполне годится. У меня тоже не супервыгодный тариф, потому что на работе в местах моего обитания все покрыто вайфаем и дома тоже вайфай. Поэтому у меня тариф больше для звонков (и то по Вайберу нахаляву). Но это не важно. Важно, что канал есть и он вполне держит такие объемы.

В нем меньше похожих знаков. Только для нас бесполезен.

Вы путаете. Ни Аскои ни Юникод нечего не говорят о том как конкретно должен выглядеть знак. Это проблема шрифтов. То есть представление там не описано. Там описано, что такой-то элемент такого-то алфавита находится на таком-то месте с таким-то уникальным кодом. Вот и все.
Закажите шрифт в котором абсолютно все знаки будут уникальны и отличны друг от друга. Можно так сделать? Да. Соответственно Юникод не виноватый (как и АСКОИ).

Там вредные разделители.

Нормальные там разделители, есть программы которые умеют сами определять какой там разделитель.

Поэтому для него не существует ряда эффективных основных алгоритмов использования.

Прекрасно открывается и правится в Экзеле.
Что касается оптимальности еще вопрос - а Ваш двоичный формат будет лучше? С учетом остальных требований к формату? И это большой и серьезный вопрос.

С "Блокнотом" печаль наступает гораздо быстрее.

Используйте Notepad++

Ну нельзя сделать из чугуна и хрена текстового массива байт конфетку.

Из бинарника тоже нельзя. Слишком много взаимоисключающих требований.

Это длительное действие.

Ну и что? Как будто базы данных так не делают :). Это же бинарный формат верно? Нет там эффективности - ни в бинарных форматах, ни в текстовых. Особенно когда число записей больше миллиона. Там в любом случае нужна эффективная адресация обслуживание которой стоит ресурсов и по другому никак. Это проблема обслуживания данных, а не формата.

Отредактировано utkin (2019-03-26 06:55:44)

33

Она должна быстро вставлять цепочку символов в середину путём перемаркировки блоков.

Во-первых, она не сможет эффективно это вычислить в большинстве случаев, во-вторых не каждый формат данных такое эффективно позволяет (добавили горизонтальную полоску в картинку одно, а вертикальную - другое). Большинство данных это не уровень операционной системы.
Во-вторых, перемаркировка и фрагментация замедляет доступ и/или требует особого устройства на уровне носителя данных.

Закажите шрифт в котором абсолютно все знаки будут уникальны и отличны друг от друга. Можно так сделать?

Нельзя.

Это проблема шрифтов.

Это не проблемы шрифтов. Ну не могут не быть похожи знаки разных алфавитов, которые развивались с учетом заимствования.
Просто историческая данность - они похожи и ничего с этим не поделаешь.

Ещё как эффективен seek и нет проблем.

seek эффективен, а текстовый формат - нет. Невозможно открыть с файл в текстовом редакторе начиная с любой строки или страницы - придется полностью разобрать от начала до необходимой позиции.

Используйте Notepad++

От этого эффективные алгоритмы не появятся. И безопасней любой совместимый формат не станет, потому что совместимость с обычным текстом автоматически открывает миллиард физических пользователей с Notepad/++, через которых можно проводить какие-то манипуляции.

Из бинарника тоже нельзя. Слишком много взаимоисключающих требований.

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

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

Это проблема формата. Эффективная индексация, например, вполне записывается в файл.

У блокнота индекс есть

Но в файле нет. И если дописывать в конец, в Блокнотах работать это не будет.

Для отправки килобайтов XML вполне годится.

На лицо не масштабируемость.

Прекрасно открывается и правится в Экзеле<...>
Особенно когда число записей больше миллиона.

Тот же Excel спотыкается на обычных .csv где-то после миллиона строк. 2013-й точно.
Поэтому имеем такие удобные и доступные в обучении/применении Excel/Access, которые просто не масштабируются по кол-вам данных и пользователей.
В итоге приходится брать совершенно другие средства при необходимости расширения.

двоичный формат будет лучше?

Очевидно, можно разработать ряд более эффективных форматов для многих случаев.

34

Нельзя.

Почему? Даете задание в котором буква "о" русское будет отличаться от "о" английской. Будут, например, английские буквы сплюснутей и шире, чем русские (или наоборот, неважно. Стилистически различаться, так что невооруженным глазом будет видно, что они разные. Это как скрестить какие-нибудь шрифты ТаймсНьюРоман и Курьер. В чем проблема-то опять?

Это не проблемы шрифтов. Ну не могут не быть похожи знаки разных алфавитов, которые развивались с учетом заимствования.
Просто историческая данность - они похожи и ничего с этим не поделаешь.

То есть Вы сами понимаете, что Юникод тут не виновен? А шрифты могут быть такими. Мы же видим, что шрифты различаются, хотя текст прочесть можно. Так в чем проблема-то? Я понимаю, что сделать так для Юникода это титаническая задача с его вместимостью кодов. Но это не значит, что она не реализуемая в принципе. Имейте миллиард баксов, создаете техническое задание и понеслась.

И безопасней любой совместимый формат не станет, потому что совместимость с обычным текстом автоматически открывает миллиард физических пользователей с Notepad/++, через которых можно проводить какие-то манипуляции.

А миллиард пользователей не может открыть бинарный формат что ли? Что это за глупости такие? Что никто не может открыть и отредактировать DBF? Если Вы хотите повсеместного использования формата, значит его описание будет общедоступным рано или поздно. А значит будут программы, которые будут работать с ним. Вопросы безопасности так решались в прошлом веке. Современная концепция безопасности основана на том, что потенциальному противнику известны методы и алгоритмы. Посмотрите на шифры - они все в свободном доступе. Студенты в курсовых по информационной безопасности пишут программы шифрования RSA и прочих алгоритмов криптографии. Студенты! Что у людей за представления о жизни?

Но именно его текстовые ограничения накладывают определенные проблемы.

Так огласите их полный список, чтобы все ужаснулись и переосмысли свое существование в конце концов.

Из бинарника без текстовых ограничений можно больше, чем с ними.

Да, но как известно дьявол кроется в деталях. И как только Вы сделаете такой классный универсальный формат, у Вас появятся свои ограничения, собственные :).

На лицо не масштабируемость.

А в чем она заключается?

Тот же Excel спотыкается на обычных .csv где-то после миллиона строк. 2013-й точно.
Поэтому имеем такие удобные и доступные в обучении/применении Excel/Access, которые просто не масштабируются по кол-вам данных и пользователей.

Потому что масштабируемое решение стоит дорого. Или Вы думаете что сможете открыть DBF в миллион записей и не париться? Ха-ха-ха. Если Вам нравятся БД, то я Вам сразу отвечу - Вы там миллион записей тоже не откроете это раз, эти форматы ни разу не портируются с компа на комп через флешечку или почтой просто так это два. И файловые БД типа той, что в Андроиде тоже в миллион записей не будет работать. Просто потому что там наступают внешние проблемы, например. Типа размер кластера на каждом компе разный и стандартный ограничивает размер файла в 4 ГБ. Бывают такие траблы - скачал файл образа или архива в торренте, а забрать его на флешку никак :). Потому что флешку нужно переформатировать под нужный размер кластера. То есть просто тупая проблема операционной системы и все. К чему это я? К тому что в БД с миллионом записей влет может быть больше 4ГБ размера. Я уже молчу что некоторые БД для оптимизации и ускорения доступа создают не файл, а файлы.  Индекс может запросто валяться отдельно от данных, потому что так быстрей, но не универсально. Поэтому про миллионы это вообще-то большая проблема. Она вообще проблема, а не проблема XML.

Очевидно, можно разработать ряд более эффективных форматов для многих случаев.

Я Вам открою секрет, только тсс! Чтобы никому! Сейчас именно так и есть. JPG для картинок, MP3 для музыки, AVI для видео. Представляете? А раз так, то зачем что-то менять? Есть же бритва Оккама, которая говорит, что если задача уже решена оптимально, то новое решение не нужно.

35

МихалНик написал(а):

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

Так ФС и не нужно знать о форматах. Вот горизонтальная и вертикальная встака. Она по любому вставка. На откуп ФС отдаём операцию вставка.  А она уже решает как ей быстрее и лучше сдвинуть цепочку байт.  Конечно не сама, а программист указывает куда вставить и в какой очерёдности. Программист не выпадет из системы он ею руководит.

utkin написал(а):

Я Вам открою секрет, только тсс! Чтобы никому! Сейчас именно так и есть. JPG для картинок, MP3 для музыки, AVI для видео. Представляете? А раз так, то зачем что-то менять? Есть же бритва Оккама, которая говорит, что если задача уже решена оптимально, то новое решение не нужно.

https://xkcd.ru/i/927_v4.png

utkin написал(а):

То есть Вы сами понимаете, что Юникод тут не виновен? А шрифты могут быть такими. Мы же видим, что шрифты различаются, хотя текст прочесть можно. Так в чем проблема-то?

Проблема в том что-бы нарисовать 32 различных буквы О и так что-бы они ещё и с 0 не путались. Для 4 языков это ещё возможно, а далее идут заимствования. 

МихалНик написал(а):

Невозможно открыть с файл в текстовом редакторе начиная с любой строки или страницы - придется полностью разобрать от начала до необходимой позиции.

У меня тоталкомандр открывает. Да и есть ряд блокнотов которые так умеют.

МихалНик написал(а):

Это проблема формата. Эффективная индексация, например, вполне записывается в файл.

Индекс это вспомогательный элемент - значит для форматов можно обходится без него. Вставка поиск удаление могут идти без него. Если вы хотите его держать вместе с файлом то есть потоки NFTS.  В других ФС есть аналоги. При копирование файла его потоки копируются вмести с ним. А открытию в блокноте они не мешают.

Отредактировано Павиа (2019-03-26 17:00:31)

36

Мы же видим, что шрифты различаются

Мы хорошо видим это только при существенных объемах. Опять же Вы не учитываете сколько и каких там похожих знаков.

это титаническая задача с его вместимостью кодов

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

Почему?

1. Отличия будут видны плохо при существенных объемах.
2. Существует и еще долго будет миллиард пользователей без этих шрифтов, которых можно эксплуатировать, т.е. шрифт вообще ничего не даст.
Ну не возможно просто перенести дыру безопасности из одного места в другое и наложить костыль на любое существующее решение - Боинг это гарантирует.

А значит будут программы, которые будут работать с ним.

Но они уже должны будут учитывать его спецификацию. А существующие - не смогут.

Если Вам нравятся БД, то я Вам сразу отвечу - Вы там миллион записей тоже не откроете это раз, эти форматы ни разу не портируются с компа на комп через флешечку или почтой просто так это два. И файловые БД типа той, что в Андроиде тоже в миллион записей не будет работать. Просто потому что там наступают внешние проблемы, например. Типа размер кластера на каждом компе разный и стандартный ограничивает размер файла в 4 ГБ. Бывают такие траблы - скачал файл образа или архива в торренте, а забрать его на флешку никак :). Потому что флешку нужно переформатировать под нужный размер кластера. То есть просто тупая проблема операционной системы и все. К чему это я? К тому что в БД с миллионом записей влет может быть больше 4ГБ размера. Я уже молчу что некоторые БД для оптимизации и ускорения доступа создают не файл, а файлы.  Индекс может запросто валяться отдельно от данных, потому что так быстрей, но не универсально. Поэтому про миллионы это вообще-то большая проблема. Она вообще проблема, а не проблема XML

Т-щ Джавадов давно написал, что данные по куче файлов - это безусловный ужас. Ему как программисту на Оракле это просто очевидно, а Павиа - м.б., нет. Не может файловая система эффективно решать проблему обработки произвольных прикладных данных, только общее обслуживание носителей, приведенное к единому способу взаимодействия для прикладного ПО - это прямое назначение ОС.
И файлы по 4Гб не проблема. На многие носители больше и не войдет. Люди и фильмами по десятки Гб обмениваются, и оно воспроизводится даже у многих (пусть не на каждом оборудовании, но те же 1,5-4Гб потянет практически любое), кто-то даже записывает и редактирует. И да, есть видеоформаты поддерживающие несколько файлов, в т.ч. из-за большого размера при увеличении разрешения.

Потому что масштабируемое решение стоит дорого.

Насколько дороже и почему? Увеличение кода вдвое против масштабируемости в тысячу или миллион раз?

JPG для картинок, MP3 для музыки, AVI для видео.

JPG далеко не всегда эффективен для картинок, скорее для снимков, а MP3  - хорош для музыки, но не всегда для звука.

бритва Оккама, которая говорит, что если задача уже решена оптимально

Где какие-то доказательства оптимальности?

Так огласите их полный список,

Выше указаны примеры. Протоколов очень много - не может один человек их все знать. В принципе. Поэтому создал эту тему - надо отделять мух от котлет.
Хотелось бы споров по существу, например, почему мы должны использовать JSON вместо XML или наоборот, какой набор интернет протоколов и т.п. - по определенным техническим причинам (см #1), а не потому что так у кого-то где-то, они же умные, а мы, значит дураки.

37

МихалНик написал(а):

Т-щ Джавадов давно написал, что данные по куче файлов - это безусловный ужас. Ему как программисту на Оракле это просто очевидно, а Павиа - м.б., нет.

Мне как раз таки это очевидно. А вот вам видимо нет. Если отказаться от файлов то мы очевидно получим немаштабируемое решение. А Джавадов давно согласился с такой критикой аппанентов.

МихалНик написал(а):

почему мы должны использовать JSON вместо XML или наоборот, какой набор интернет протоколов и т.п. - по определенным техническим причинам (см #1), а не потому что так у кого-то где-то, они же умные, а мы, значит дураки


Xml избыточен атрибуты и поля.

Выживут самые примитивные и приспосаблеваемые тараканы протоколы.

Bmp самый простой. Но весит много. Jpeg сжимает хорошо но у него нет прозрачности. Png по хуже сжимаем, но есть прозрачность, а она нужна для коллажий, аппликаций. Но всего 3 канала. Поэтому tiff многоканальный. А ещё он многостраничный. Но с качеством картинки проблема поэтому и создали pdf.

А теперь попробуйте реализовать парсер и интерпретатор пост процессинга для него. Никто такой сложный формат небудет учить. Хотя курсы имеются.

Json он лучше только его неправильно отрисовывают.  Его надо горизонтальнвм деревом отрисовывать.

Что касается теории, то для вставки поиска и удаления лучше всего подходят B+ деревья. У них n*Log(n)  для вставки и удаления.  Хотя для частных случаев есть более лучшии структуры. Всего 127 штук для 7 операций.  Только вот никто учить не будет. Это все понимают даже Кнут и отдаёт предпочтения деревьям.

А так как современные ФС основаны на B+ то мы имеем эффективную структуру. Проблема лишь в API в котором нет функции insert на которую нацелена ФС.

А форматы файлов они решают другие задачи. Поэтому они такие разные.

Отредактировано Павиа (2019-03-26 18:20:58)

38

Если отказаться от файлов то мы очевидно получим немаштабируемое решение.

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

39

- Хе... Природа не терпит - ни прямых, ни плоскостей, ни самого Евклида. (виват Лобачевскому)))

Павиа написал(а):

Только вот никто учить не будет.

Сие - проблема "не желающих что-либо постичь".
Неевклидову геометрию многие "светила наук" тоже долго "не желали". (но некоторые таки-"постигли")
А потому "вектор" - это мой "бох-х-х"... (- виват вектору!!!)))

40

МихалНик написал(а):

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

ФС отделена от расширения. Каталог этот индекс файлов. В этом индексе написано магическое число. Как и индекс в СУБД индекс в ФС используется для ускорения. Ровно такое же магическое число записано в большинстве файлов. BOM(*.txr), BM(*.bmp), PK(*.zip), #FFFE(*.jpg) и вы можете отказаться от расширения в индекси и получить тормоза, так как открытие файла 0,5 секунды чтение индекса 1 мкс из кэша.
Волшебное число служит что-бы отделить своих от чужих. Это всего лишь способ защиты от дурака. А то он воьзмёт и попробует открыть *.zip в блакноте и попробует его поправить и получит ошибку. А потом ещё и в суд подаст скажет что так делать нигде не запрещено.
Короче общество без цветовой дифференциации  штанов лишено цели.

А есть у тебя малиновые штаны и всё чётко и понятно. Так что есть расширения и понятно что можно делать с файлом, а что нет. А отбери паспорт(расширение) и будешь сидеть в аэропорту как Бревик с которым неизвестно что делать.

Отредактировано Павиа (2019-03-26 20:20:32)

41

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

У меня тоталкомандр открывает. Да и есть ряд блокнотов которые так умеют.

Редакторы в этих Лазарусах и Дельфи открывают исходники в том месте, где Вы в последний раз работали. Думаю и  в других ИДЕшках ничем не хуже.

Мы хорошо видим это только при существенных объемах. Опять же Вы не учитываете сколько и каких там похожих знаков.

http://sh.uploads.ru/t/iM0V7.jpg

Проблема не в этом, а в том что знаки начинают становится сильно похожими при увеличении их кол-ва.

Уверен, что надо пробовать, а не утверждать. Второе - локально решить проблему можно, если сделать отличными только русские буквы. В любом случае здесь есть варианты. Третье - задействовать тяжелую артиллерию - менять цвета, размеры и т.д. В совокупности характеристик будет видно.

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

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

1. Отличия будут видны плохо при существенных объемах.

Жульничество обычно используется в небольших объемах - именах, паролях, номерах контракта и т.д.

2. Существует и еще долго будет миллиард пользователей без этих шрифтов, которых можно эксплуатировать, т.е. шрифт вообще ничего не даст.

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

Но они уже должны будут учитывать его спецификацию. А существующие - не смогут.

Это вообще какой-то детский лепет. Ну не сможет Экзель открывать Ваш формат, что это меняет-то? Человек идет в Инет - скачать программу для работы с .ххх Какие проблемы-то? Ваше решение вопроса безопасности устраняется за несколько минут. Классный отмазон - текст можно вскрыть потому что есть Блокнот, а мой супер формат нельзя, потому что для этого нужно будет скачать отдельно программу, которая не входит в состав операционной системы :). Ни у кого же нет Интернета.

А существующие - не смогут.

А существующие понаделают плагинов и обновлений, проблема-то? Те же программы для работы с XML (не Блокнот, а специализированные, с дополнительными операциями над структурой) и будут открывать еще дополнительно и Ваш формат в довесок.

Т-щ Джавадов давно написал, что данные по куче файлов - это безусловный ужас.

Если звезды зажигаются, значит это кому-то нужно. Иными словами, так делали не просто так, а потому что были причины, например, скорость обработки. Или простота реализации, или надежность.
Я уже писал и снова напишу - Вы хотите уместить в одно взаимоисключающие параметры.

Насколько дороже и почему? Увеличение кода вдвое против масштабируемости в тысячу или миллион раз?

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

И файлы по 4Гб не проблема. На многие носители больше и не войдет.

Проблема. На носитель-то войдет. А операционка даст Вам работать с объектом в 4ГБ? Не с его частью, а с файлом? Воот, ни каждая птица долетит до середины Днепра. Поэтому пока имеется какой-то неудобный процент старого хлама (а в банках терминалы хлам, например) так будет. Я еще раз говорю Вам, да, Экзель споткнется на csv в миллион записей. Но он споткнется в миллион записей и своего родного не текстового экзелевского формата. Понимаете? Это не проблема текста - миллион записей. На данный момент это общая проблема - наше программное обеспечение как-то не готово к миллионам записям в обычной работе.

JPG далеко не всегда эффективен для картинок, скорее для снимков, а MP3  - хорош для музыки, но не всегда для звука.

Поэтому и нету идеального формата и не будет его еще долго. Теперь Вы понимаете почему такой хаос и разврат?

Где какие-то доказательства оптимальности?

Очевидно же - идеального формата нет это раз. То решение к которому Вы пришли (нарожать оптимальных форматов) есть и сейчас - существует куча форматов на вкус и цвет это два.

Протоколов очень много - не может один человек их все знать

Ему и не нужно. Я тоже не знаю стандартов цифрового телевидения, я просто использую интерфейс "пульт дистанционного управления" и нисколько не страдаю от этого.

Хотелось бы споров по существу

Так изначально целесообразность процесса поставлена под сомнение. Вы наступаете на текстовые форматы, претендующие на мелкую автоматизацию в силу универсальности, но при этом доказательств крутости бинарных форматов и нет. Те же базы данных абсолютно не мобильны. Остальные форматы не универсальны. Они не безопасны. По крайней мере в сравнении с текстовыми данными не обладают никаким преимуществом. У них есть тоже всякие траблы. Например, те же БД имеют ограниченный набор записей. Это число достаточно велико (сколько там в 4 байта умещается?), но оно конечно. В XML такого ограничения нет. Конечно никакая программа не откроет Вам XML с количеством записей величиной с гугол (10 в 100 степени). Но в спецификации XML количество узлов не ограничено. Поэтому тут наверно нужно сравнительные таблицы строить для наглядности - во-первых, за что Вы ратуете? За БД? Потому что других универсальных я не знаю, может и есть какой-нибудь. Ну, а чего? Rar тоже универсальный контейнер :). Во-вторых, нужно построить недостатки и достоинства универсальных текстовых форматов (а их больше. чем XML) или выбранного двоичного способа хранения информации.
Хорошо, вот Вам новая претензия - посмотрите на БДшный софт. XML парсер может быть где угодно, даже на стороннем сервере. Разнесчастный Интернет Эксплорер через задницу, но все же умеет парсить XML. Для того чтобы работать с БД часто нужно создать много геморроя. Типа сервис установить, службу запусть, порт подавай свободный и т.д. И далеко не все и не всегда это настраивается автоматически (потому что 10-ке не нравится открыть порт, если это не MS SQL  Server :) ). Я уже молчу о проектировании БД, а размеры программного обеспечения и СУБД и средств разработки тоже превосходят XMLные инструменты. Вот Вам объективная оптимальность бинарного формата. Далее, теория реляционных БД намного сложней спецификации XML. И хотя там тоже книжица в 700 страниц, но чтобы забабахать по-быстрому на коленке хватит и пару дней чтения (узлы и атрибуты, без валидации и схем). 

почему мы должны использовать JSON вместо XML

Только потому что Javascript умеет его передавать по сети "изкаропки".

а не потому что так у кого-то где-то, они же умные, а мы, значит дураки

Вопрос стоит не так. Вопрос тут даже не в изобретении велосипеда, а в изобретении колеса. Вы же толком сами ничего про бинарники не сказали. Где сам формат-то? БД или что это? Я вот указал на проблему - укажите мне как Вы будете обходить проблему с конечностей количества записей в бинарном формате?

Мы не можем отказаться от файлов

Мы никогда не сможем от них отказаться. Файл это поименнованная область в общем виде. Обычно поименнованная область данных на внешнем носителе информации, но это не точно. Если уходить в философию - разницы между файлом и переменной особой нету. Есть детали реализации и эксплуатации.

Отредактировано utkin (2019-03-27 10:51:32)

42

utkin написал(а):

Проблема. На носитель-то войдет. А операционка даст Вам работать с объектом в 4ГБ? Не с его частью, а с файлом? Воот, ни каждая птица долетит до середины Днепра. Поэтому пока имеется какой-то неудобный процент старого хлама (а в банках терминалы хлам, например) так будет. Я еще раз говорю Вам, да, Экзель споткнется на csv в миллион записей. Но он споткнется в миллион записей и своего родного не текстового экзелевского формата. Понимаете?

В том году парсер словарь на 8ГБ. Умучался. Пришлось попробовать компиляторов штук 5.  D7,D10, Lazarus 3. XE9 все не поддерживают(не правильно читают) файлы больше 4 ГБ. Только на XE10 в x64 заработал парсер. Но это чисто проблема дельфи, а ОС как правило поддержку заранее.   
Накаркали, вчера мой файл АмбарнаяКнига.XLS  сдох - он уже не в первый раз дохнет из-за большого числа записей.  У меня в виндах настроено создание резервных копий.  Почистил файл от старых записей. И на 2 года о проблемах можно забыть.

43

Если в тексте нет смесей (а именно для того чтобы это распознать и есть смысл нововведения), то все смотрится культурно.

Формат и нужен  для того чтобы сказать машине  и человеку, что в тексте нет странных знаков.

Файл это поименнованная область в общем виде

Там просто база данных, поддерживаемая на уровне ОС.

А существующие понаделают плагинов и обновлений, проблема

Правильно. А если лепить костыли - могут не понаделать и будут проблемы.

Иными словами, так делали не просто так, а потому что были причины

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

В XML такого ограничения нет.

Оно уже записано для файла в ФС, т.е. в ее базу данных.
И любое ПО в реальности начиная с некоторого ограничения собственной реализации начнет давится. Потому что как такового требования нет.
Практически любое слетит на ограничениях по указателям. Но даже 32 разряда - это не миллион записей, а более чем масштабируемо сегодня, например, на число граждан любой существующей страны. Сейчас делают обычно 64-разрядные архитектуры.

Поэтому тут наверно нужно сравнительные таблицы строить для наглядности
нужно построить недостатки и достоинства универсальных текстовых форматов (а их больше. чем XML) или выбранного двоичного способа хранения информации.

М.б. где-то уже есть такие сравнения?

Только потому что Javascript умеет его передавать по сети "изкаропки"

А надо еще рассматривать с точки зрения минимальности требуемого набора знаков (тех самых "терминалов формата"), полноценной поддержки кириллицы, юникода и т.п.
Т.е. по существу "минимальности" и "достаточности".

Файл это поименнованная область в общем виде

В общем виде имена могут быть и двоичными числами. ФС - это база данных и они отличаются. "Универсальность" физической разметки данных в носителях разными ОС такова, что можно потерять, установив одну вместо другой.

И хотя там тоже книжица в 700 страниц, но чтобы забабахать по-быстрому на коленке хватит и пару дней чтения (узлы и атрибуты, без валидации и схем).

"Забабахать" реляционную БД в MSAccess может школьник. Для других тоже существуют более менее наглядные средства. 700 страниц нам не нужно. Даже руководство по какой-нибудь FireBird меньше.

Где сам формат-то?

Речь шла про выборки/оценки среди существующих форматов, которые желательно иметь. Прием!

44

Формат и нужен  для того чтобы сказать машине  и человеку, что в тексте нет странных знаков.

Машина может однозначно определить какой знак перед ней. Для этого внешнее представление ей не нужно.  А для человека как раз и призвано решение использовать разное начертание букв разных алфавитов.

Там просто база данных, поддерживаемая на уровне ОС.

Вы говорите о способе реализации, а я о файлах :). Есть форма и есть содержание.

Правильно. А если лепить костыли - могут не понаделать и будут проблемы.

Я так и не понял Вашей манеры изъясняться вокруг да около. Изначально вопрос стоял так - что любая кухарка может управлять государством залезть в Блокнот и все испортить. Я Вам четко дал понять что испортить можно все что угодно, было бы желание и наличие кривых рук. Теперь разговор где-то теряет нить обсуждения.

И одним из ключевых условий был уровень знаний.

Да, бросьте Вы. А-то во всяких там IBMах (один из прародителей файловых систем) не было специалистов. И лаборатории у них были и кругозор выше и класс задач они решали всегда на порядки больше, чем мы с Вами. Не знали они, ага. Они еще с памяти на ферритовых кольцах и магнитных лентах знали как лучше из-за большого опыта. И если так сделано, значит на то были свои причины. И я о них писал - простота, скорость, надежность, безопасность и т.д.

Оно уже записано для файла в ФС, т.е. в ее базу данных.

А XML-то тут при чем? Опять все смешали в какую-то дикую кашу. Есть файловые системы специально для больших файлов (от той же IBM  в линуксе можно наформатировать) и там барьер это выше в NTFS (или сравните с FAT). Следовательно XML тут не причем. Все навертели что можно. БД как формат имеет собственное ограничение на число записей и оно не связано с файловой системой. Это внутренняя проблема БД и связано оно с индексацией и адресацией записей внутри СУБД (а не внутри модели БД).

Потому что как такового требования нет.

Верно, но оно есть в каждой реализации БД.

М.б. где-то уже есть такие сравнения?

Не знаю, но сомневаюсь, чтобы кто-то начал крестовый поход против XML :).

А надо еще рассматривать с точки зрения минимальности требуемого набора знаков (тех самых "терминалов формата"), полноценной поддержки кириллицы, юникода и т.п.

У XML есть разновидности, в которых это тоже прописано. То есть там в атрибуте жестко задан тип содержимого. И валидаторы умеют это отслеживать. Иными словами, если там должно быть число, а там строка - валидатор укажет на ошибку и без схемы (точнее она там есть, просто по умолчанию считается, что раз такой формат, то проверять нужно по такой схеме). То есть там система контроля структуры данных более строгая, чем в обычном XML.

Т.е. по существу "минимальности" и "достаточности".

Тогда мы теряем в универсальности.

В общем виде имена могут быть и двоичными числами.

Так они так там представлены двоичными числами :). Они показываются человеку не как двоичные числа :). Вас раздражает только то, что там есть определенные ограничения, которые не позволяют использовать весь диапазон представленного выделенными байтами и только. Но для бинарных форматах на самом деле такая проблема также присутствует. Например, там могут храниться флаги. Допустим несколько там чисел и два флага. И нравится Вам или нет, но как минимум байт Вы на два бита отдадите :). Это  в теории. А на практике файлы пишутся блоками, а не байтами. И если Вы хотите, чтобы у Вас были и большие файлы, то минимальный размер будет равен как минимум 8 кб. Это значит все файлы меньше этого размера будут занимать на диске минимум 8 Кб. И если у Вас крутой бинарный формат весит там 1 кб, а XML 7 кб, то на диске оба будут занимать 8 кб :). И вся Ваша универсальность и эффективность начинает крыться медным тазом (но опять же не из-за формата, а за способа реализации всего этого безобразия в операционных системах).

"Забабахать" реляционную БД в MSAccess может школьник.

Если не обращать внимание на стоимость технологий - сколько весит Access? И кроме того, вот кто-кто, а Access имеет поддержку на уровне ОСи в драйверах :). Сплошное у Вас мошеничество :).

Речь шла про выборки/оценки среди существующих форматов, которые желательно иметь. Прием!

Так я у Вас и спрашиваю! С чем сравнивать XML? С БД? С Архивами? Что брать для сравнения? А то война с ветрянными мельницами какая-то.

45

Изначально вопрос стоял так - что любая кухарка может управлять государством залезть в Блокнот и все испортить. Я Вам четко дал понять что испортить можно все что угодно, было бы желание и наличие кривых рук.

Дело не в наличии кривых рук, а в наличии кривых инструментов.
Блокнотом можно открыть любой файл, тем не менее:
- по умолчанию он предлагает открывать только txt
- открыв файл и увидев совершенно непонятные знаки кухарка вряд ли будет их менять, думая, что прекрасно понимает, что она делает.

Тогда мы теряем в универсальности.

Вы понимаете разницу м/у  избыточностью и достаточностью?

Вас раздражает только то, что там есть определенные ограничения, которые не позволяют использовать весь диапазон представленного выделенными байтами и только

Проблема вообще не в этом. Проблема в том, что файлами заменяются или дублируются сущности ЯП, нарушая целостность и быстродействие.

то значит все файлы меньше этого размера будут занимать на диске минимум 8 Кб

В т.ч. поэтому тоже нельзя подменять  структуры данных или массивы кучами файлов.

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

Безобразие целиком в формате хранения данных прикладным ПО.
Записываете вместо одно типизированного файла с десятком чисел десять файлов с названиями "1.num","2.num",...,"10.num" и получаете безобразие.

мошеничество

Ложь. Я написал не только про Access. Есть куча довольно простых инструментов, работающих как с кучей разных БД, так и заточенных под конкретные. В т.ч. бесплатные и с открытыми исходниками.

у Вас

Не у меня, а у майкрософт. Потому что за ограничения в миллион строк надо бить санкциями.
Гос-во закупало кучу офиса для образовательного ПО, а оно не позволяет масштабируемых решений на всю страну (150 млн. записей)
и тем более для экспорта (4 млрд. записей, а лучше >10 млрд.).
И для таких вещей  гос.стандарты просто необходимы. Одна американская компания просто слила рос. систему образования по самому передовому предмету за счет самих россиян.

46

А еще в самом XML есть Documents Type Definitions (только там немного мудрено), с помощью которых Вы можете определить эти самые элементарные типы данных, на вроде Integer.
Вот здесь немного:
http://genberm.narod.ru/xml/schema/school/reftype.htm

И еще там можно создавать перечисления по типу enum в с++

47

Так я у Вас и спрашиваю! С чем сравнивать XML?

Не раз уже написал - его можно сравнить с тем же JSON. И критерии не раз уже написал.

С Архивами?

С архивами нужно сравнивать текстовый формат. Точнее не с архивами, а словарями. Но это лучше отдельно.

48

- открыв файл и увидев совершенно непонятные знаки кухарка вряд ли будет их менять, думая, что прекрасно понимает, что она делает.

Так это и так работает вообще-то :). Никто же вордовские документы Блокнотом не открывает :). Все знают, что есть определенные программы для работы с форматами. И для XML они тоже есть (там работа со структурой предполагается и можно сворачивать кусты). Zip-файлы тоже никто чем попало не открывает :). Аргумент не выдерживает никакой критики.

Вы понимаете разницу м/у  избыточностью и достаточностью?

Конечно. Это когда можно исключить Integer, потому что целые прекрасно хранятся во Float. Но так никто не делает - избыточно и универсально :).

Проблема в том, что файлами заменяются или дублируются сущности ЯП, нарушая целостность и быстродействие.

Это не проблема XML.

В т.ч. поэтому тоже нельзя подменять  структуры данных или массивы кучами файлов.

В ранних ФС типа FAT размер блока был 256 и 512 байт. Эта проблема не росла. В линуксе вообще тоже и тоже можно наформатировать кучу вариантов файловых систем. И выбрать то, что нравится или оптимально. Вот Вам два подхода - универсально неоптимальный для кухарки и оптимально специализированный для промышленного использования. Выбирайте что Вам нравится больше.

Безобразие целиком в формате хранения данных прикладным ПО.

Мне кажется это лучше знать создателю прикладного ПО, а не мне или Вам.

Записываете вместо одно типизированного файла с десятком чисел десять файлов с названиями "1.num","2.num",...,"10.num" и получаете безобразие.

Почему? Если все работает, какие проблемы-то? Посмотрите на содержимое папки Windows. Там такой же форменный бардак и ничего работает. Реестр вообще неведомая зверушка.

Я написал не только про Access. Есть куча довольно простых инструментов, работающих как с кучей разных БД, так и заточенных под конкретные.

Вы понимате, что не сможете работать с любой БД без драйвера? Вопрос организации работы с XML выполнен от слова никак и поэтому все работает внезапно. Сайты вообще за проверкой XML лезут на другие сайты и сами данные могут не валидировать в принципе. Это кстати к теме шрифтов и Юникода. Половина сайтов также тягает шрифты с других сайтов для отображения (и только если они недоступны показывают по дефолту). Иными словами сайт может работать с XML вообще не имея средств для его обработки. У БД все это намного запущенней. Про инструменты все аналогично - XML-редактор имеет на борту свой парсер (потому что он маленький и простой), а для каждой БД нужен свой драйвер, а иногда вся СУБД.

Ложь.

Ваше не знание. Почитайте что такое ODBC. И хотя уже устарело, но используется. Эта хрень встроена в винды. Иными словами ОСи дружественны к ODBC, а вот XML-движок каждый таскает свой. Посмотрите хотя бы на браузеры (ибо каждый из них с движком XML).

Гос-во закупало кучу офиса для образовательного ПО, а оно не позволяет масштабируемых решений на всю страну (150 млн. записей)

Так государство не просили покупать такое решение. А само государство не хотело масштабируемого решения. Оно хотело бесплатного решения. А получилось как всегда, когда за дело берется государство, а не специалисты.

Одна американская компания просто слила рос. систему образования по самому передовому предмету за счет сами россиян.

У нас все время кто-то виноват. И лучше бы чтобы это были американцы. А то американская компания сказала - не будете брать наш мусор мы Вам атомную войну сделаем, да? Они же выбор навязали, мы же не суверенные да? Что за ересь очередная? Я еще ни разу не видел, чтобы так некомпетентность отмазывали.

49

Не раз уже написал - его можно сравнить с тем же JSON. И критерии не раз уже написал.

JSON не бинарный формат же. Он также правится в Блокноте. Я думал, что если в Блокноте открывается значит по определению ересь и должно быть сожено на костре, не?

С архивами нужно сравнивать текстовый формат. Точнее не с архивами, а словарями. Но это лучше отдельно.

Ну вот опять размазались текстом, а ответа нет. С чем сравнивать?

50

Так это и так работает вообще-то

На уровне кодирования похожих знаков это вообще никак не работает. Поднял отдельный вопрос.

Мне кажется это лучше знать создателю прикладного ПО, а не мне или Вам.

Кря!Здрасьте! Вы точно ЯП разрабатываете? Вы должны описать что и для каких случаев в Вашем языке использовать.

бардак и ничего работает

Во-первых, это не значит, что так надо делать, во-вторых бардак требует столько ресурсов сколько у нас никогда не будет.

Вопрос организации работы с XML выполнен от слова никак и поэтому все работает внезапно.

Не "никак", а через кучу других протоколов.

Так государство не просили покупать такое решение.

Просили. Те кто поставляли ПО.

Я еще ни разу не видел, чтобы так некомпетентность отмазывали.

Кто отмазывает некомпетентность наших чиновников, которые закупили немасштабируемое решение?

У нас все время кто-то виноват. И лучше бы чтобы это были американцы.

В большинстве современных схем коррупции не менее чем 3 мошенника.

Ну вот опять размазались текстом, а ответа нет. С чем сравнивать?

Поднял отдельный вопрос.

51

Кря!

:)

Вы должны описать что и для каких случаев в Вашем языке использовать.

Это все равно не поможет, программисты будут все делать в соответствии с человеческой натурой, то есть через задницу в силу объективных и необъективных причин.

Во-первых, это не значит, что так надо делать,

Хаос это не отсутствие порядка, а отсутствие знаний о этом порядке :). Со временем вопрос решится за счет победы оптимальных решений.

Не "никак", а через кучу других протоколов.

И это хорошо.

Просили. Те кто поставляли ПО.

Их много кто так просит. И то что они под кого-то прогнулись это их личная персональная ответственность, которую они не хотят нести. Вот и вся проблема. Не XML, не поставщики дырявых решений не виноваты тут ни в одном месте.

Кто отмазывает некомпетентность наших чиновников, которые закупили немасштабируемое решение?

Вы, когда показываете пальцем на поставщика :). На рынке два дурака - один покупает, второй продает. И я понимаю, если вариантов нет. А когда решений много, а выбирается сомнительное и неадекватное, то виновато лицо принявшее неверное управленческое решение, а не поставщик хлама.

В большинстве современных схем коррупции не менее чем 3 мошенника.

Достаточно устранить одного - государство. И все заверте...


Вы здесь » Ремесло программиста » Предлагаемые стандарты и рецензии на них » Наименьший достаточный набор соглашений.