Не знаю, говорили об этом здесь, или нет, но я тут обнаружил, что поточность форматом не так-то легко и просто поддерживается, как заявлено.
Представьте поток (для наглядности возьмем WebSocket, или просто TCP socket). В этом потоке мы получаем строку, заканчивающуюся как положено, символом \n:
v1 =blabla
Что означает эта строка? Что мы имеем некую переменную v1 со значением «blabla», и уже можем дальше этим пользоваться? Представим теперь, что при следующем чтении из потока нам прилетает такая строка (тоже заканчивающаяся на \n):
=blibli
Очевидно, что это продолжение нашего значения v1. Не менее очевидно, что теперь мы должны склеить blabla и blibli, вставив между ними перевод строки, и здесь выясняется, что наше v1 теперь на самом деле должно иметь значение «blabla\nblibli». То есть, читая построчно поток, для каждой прочтенной строки мы должны забегать немного вперед, чтобы знать, есть ли там еще одна строка (или там конец файла), и является ли следующая строка продолжением предыдущего значения, или она объявляет новое значение.
Если представить какой-то web-socket, по которому в формате tree раз в минуту будет приходить некое текущее значение некоей переменной, то это значение мы (без костылей) не сможем использовать аж до следующей посылки через минуту, так как мы не имеем возможности знать наверняка, дошло значение целиком, или оно было многострочным и где-то в сети застрял еще один кусок, который нужно подождать.
При импорте в дерево вам нужно не просто «пробежаться… в поисках переводов строк», а точно так же, как и с экранированием, при каждом встреченном символе перевода строки добавить дополнительные символы экранизации: в вашем случае это табы и символ "=", и добавляются они не перед экранируемым символом, а после него. Причем, заметьте, вы не можете экранировать данные и затем вставить их в любое произвольное место в ваше дерево, как это возможно с тем же JSON, так как количество вставляемых в Tree табов после символа перевода строки зависит от контекста, т.е. конкретного места, для которого вы экранируете, а именно — от уровня вложенности объектов в этом месте. А это, в свою очередь, означает, что вы не можете взять некий объект, сериализировать его в Tree-представление и потом использовать сериализованный кусок текста в произвольном месте Tree-файла (или любого другого потока вывода), как это возможно с тем же json и XML. То есть, для сериализации объектов нужно заранее знать всю структуру сериализуемого дерева этих объектов целиком, и при сериализации обходить эту структуру в строгом порядке: от корня к листьям.
Вопрос, скорее, в другом: зачем нужно общество, которое законсервировано в рамках одного мнения, а всем инакомыслящим просто затыкается рот? Даже не так: зачем нужно общение, если точка зрения, отличная от общепринятой, сразу же выпиливается? В истории полно примеров (инквизиция и цензура в СССР приходят мне на ум первыми): ограничение свободы слова ведет к застою, нездоровому консерватизму, затруднению или полному отсутствию развития и появления каких-либо инновационных точек зрения, взглядов и идей.
Заголовок: «Плёнка из перовскита может увеличить эффективность солнечных панелей на 50%»
Текст: «В планах учёных – добиться получения тандемной панели с эффективностью 25%, равной текущим топовым панелям, но с гораздо меньшей стоимостью производства. А в перспективе, лет через 10, добиться эффективности панелей в 30%.»
Это все слова, лишенные всякой конкретики. Психологи, к примеру, считают, что «все» = «никто». Там, где говорится «мы все в ответе» — в результате никто ни за что не отвечает. «Мы все должны что-то сделать» — в результате никто ничего не делает. Каждое конкретное «я» начинает прятаться за абстрактными «мы», «все», «общество» и т.д. «Моя хата с краю» — это как раз тот самый случай, когда конкретный человек ждет, что абстрактные «все» как-то сами разберутся, а «конкретно мне» влезать во что-то абсолютно ни к чему.
Когда человек ответственен в первую очередь перед собой, и принимает решения, исходя из своих совершенно конкретных потребностей и целей — никакие абстрактные словоблудия не нужны, он четко знает свою цель, и старается ее достичь доступными ему методами. И вот тогда уже можно договариваться с окружающими на взаимовыгодных началах и формировать «общество», «мы» и т.п.: «я тебе помогу в достижении твоей цели, а ты мне помоги в достижении моей». «Я готов поступиться вот этим и вот этим, так как оно мешает тебе или создает для тебя препятствия, а ты взамен поступись вот этим и вот этим». Ну и так далее.
Просто не могу сдержаться и пройти мимо этой дискуссии.
«Вы неправильно поняли. Нет никакой жизненно важной приватности. Просто нет. Поэтому и определения не может быть.»
Скажите, а вы в юности дневник вели? Ну или, к примеру, СМСки с мобилки писали? И как вам нравилось, когда ваш дневник или ваши СМСки читали родители? А ведь родители, в отличие от правительства, гораздо более вероятней желают своим детям добра и не будут использовать эту информацию во вред. Они просто читают, чтобы быть в курсе.
Я это к чему. Вообще, кроме «духовной» и «физической» стороны вопроса есть еще такая банальная вещь, как психология. О которой вы, видимо, напрочь забыли. Так вот, множество работ психологов и социологов различных мастей и течений посвящено исследованию вопроса приватности (кстати, в русском языке даже нет прямого аналога английскому слову «privacy»). Некий Алан Уэстин (Alan Westin) определяет приватность как право индивида решать, какую информацию и при каких условиях он готов передать другим людям. Например, вы ведь не будете с охотой делиться со своими сотрудниками информацией, которую поведали своему гинекологу при последнем посещении (хотя, встречаются и такие экземпляры, но скорее в порядке исключения из правил)? Очень много исследований в области приватности провели бихевиористы. Выводы из всех таких исследований неутешительны: к примеру, ограничение приватности индивида в детском, подростковом и юношеском возрасте ведет к проявлению негативизма, замкнутости, агрессии, проблемам самоидентификации и определения личностных границ, а после взросления может привести к различного рода психическим расстройствам и заболеваниям (разнообразные паранойи, мании, депрессии и прочие прелестные вещицы).
Может быть, для вас психическое здоровье вас и ваших детей «жизненно не важно», а может и нет. Просто подумайте об этом еще раз. А лучше погуглите, или проконсультируйтесь у толкового психолога/психотерапевта, если не верите тому, что пишут в интернетах.
P.S. Кстати, чиновники, которые хотят следить за всеми, — при этом почему-то не хотят, чтобы следили за ними: geektimes.ru/post/244696/
Да, собственно, на ГХ та же история: стоит высказать свое (аргументированное, никого не оскорбляющее и не противоречащее правилам ресурса) мнение в комментах, отличное от мнения большинства комментирующих, как в карму начинают лететь минусы. Независимо от того, есть у меня там посты или нет. Хотя, казалось бы, при чем тут карма? Если есть опровергающие аргументы — можно в тех же комментариях высказаться. Нет аргументов, а мнение все равно не нравится — есть минус к комменту. А так получаются непонятные вещи: коммент набирает кучу плюсов, а в карму летит куча минусов. Я бы не сильно-то и парился, но просто если в карме минус — то комментировать становится затруднительно, а голосовать за комменты вообще нельзя. А иногда хочется (хотя, со временем все меньше и меньше).
Скоро таким вот макаром все проекты ТМ скатятся к тому, что право голоса в них будет иметь крайне конформистски настроенная толпа, неспособная выдвигать аргументы и вести конструктивную дискуссию, сполобная только давить минусики-плюсики. Право голоса-то у них будет, вот только оно им будет не нужно, поскольку все, что им нужно и что они могут — прочитать коммент, залезть в профиль и тыкнуть минус. А кого можно будет минусовать, если никто больше не дискутирует, а те, кто дискутирует — друг с другом согласны априори, так как высказывают какие-то стереотипные/банальные/очевидные/общепринятые мнения или прописные истины?
Короче, хабр, ГТ и новорожденный ММ на прямом пути к построению «общества согласных», полностью отгороженного от оппозиционных мнений. Что, собственно, очень сильно кое-что напоминает.
А какими же категориями судить отдельно взятому человеку? Все, что есть у человека — это он и его ближайшее окружение (семья, близкие, друзья). Остальное — «духовные скрепы», к его повседневной реальности имеющие мало отношения. В странах, где понимают, что благосостояние каждого отдельно взятого гражданина есть благосостояние всей нации, — уровень жизни гораздо выше, чем в тех, где правительство считает, что народ может и «духовными скрепами» прокормиться, а о реальных вещах, по типу никому не нужного, вредного и эгоистичного счастья, благосостояния и благополучия отдельно взятого гражданина, можно не заботиться.
Во-первых, не всегда, мне известны и обратные случаи, и не один. А во-вторых, при чем здесь жалобы? Я констатировал факт, что моя карма уж точно никак не является причиной крымских невзгод, и от ее динамики там совершенно ничего не изменится. Энергию лучше бы направить в более конструктивное русло, чем минусовать на хабре/ГТ людей, не ответстсвенных за сложившуюся ситуацию. Ну а боты, реагирующие на слово «карма» в комментариях — путь продолжают свою нужную и полезную обществу и себе работу и минусуют дальше.
Не люблю DLC :) В новой версии ведь кроме контента еще и технологии по идее должны обновиться (графика, физика, и т.п.). Запустил, кстати, после пятерки четверку — небо и земля, хотя оборудование то же самое: PS3.
Да я уже давно не парюсь, просто не перестаю удивляться их логике. Того же успеха можно добиться, купив щенка и пиная его каждый раз, как что-то не нравится. Это точно решит все проблемы и изменит мир к лучшему.
Не знаю, как heredoc поможет увидеть, есть пробелы в значении, или там пустая строка. Но зато он может помочь при минимизации: глубоко вложенные данные, имеющие много символов перевода строки, будут минимизироваться за счет избавления от стартовых символов табуляции.
Я же имел в виду, что можно было бы сделать что-то вроде «присваивания с кавычками», как-то так:
Это повысило бы читаемость, особенно для тех, кто привык к тому же json и вообще «классическому» подходу объявления строковых литералов. Вместо "= можно использовать что-то вроде q= или |= или что угодно еще, чтобы избежать визуальной путаницы с кавычками. Ну и поддержку вложенных кавычек можно не реализовывать для таких значений: для этого есть обычное «безкавычечное» присваивание.
Однако, такое нововведение добавит в формат «еще один способ делать то же самое», что не всегда есть хорошо и не всем нравится. Ну и плюс парсинг и валидация документа усложнится.
Нет.
"\0\r\n\t\\\"" — кто здесь кого предотвращает?
На самом деле:
(с) Wikipedia
Представьте поток (для наглядности возьмем WebSocket, или просто TCP socket). В этом потоке мы получаем строку, заканчивающуюся как положено, символом \n:
Что означает эта строка? Что мы имеем некую переменную v1 со значением «blabla», и уже можем дальше этим пользоваться? Представим теперь, что при следующем чтении из потока нам прилетает такая строка (тоже заканчивающаяся на \n):
Очевидно, что это продолжение нашего значения v1. Не менее очевидно, что теперь мы должны склеить blabla и blibli, вставив между ними перевод строки, и здесь выясняется, что наше v1 теперь на самом деле должно иметь значение «blabla\nblibli». То есть, читая построчно поток, для каждой прочтенной строки мы должны забегать немного вперед, чтобы знать, есть ли там еще одна строка (или там конец файла), и является ли следующая строка продолжением предыдущего значения, или она объявляет новое значение.
Если представить какой-то web-socket, по которому в формате tree раз в минуту будет приходить некое текущее значение некоей переменной, то это значение мы (без костылей) не сможем использовать аж до следующей посылки через минуту, так как мы не имеем возможности знать наверняка, дошло значение целиком, или оно было многострочным и где-то в сети застрял еще один кусок, который нужно подождать.
Текст: «В планах учёных – добиться получения тандемной панели с эффективностью 25%, равной текущим топовым панелям, но с гораздо меньшей стоимостью производства. А в перспективе, лет через 10, добиться эффективности панелей в 30%.»
Шок? Сенсация?
Когда человек ответственен в первую очередь перед собой, и принимает решения, исходя из своих совершенно конкретных потребностей и целей — никакие абстрактные словоблудия не нужны, он четко знает свою цель, и старается ее достичь доступными ему методами. И вот тогда уже можно договариваться с окружающими на взаимовыгодных началах и формировать «общество», «мы» и т.п.: «я тебе помогу в достижении твоей цели, а ты мне помоги в достижении моей». «Я готов поступиться вот этим и вот этим, так как оно мешает тебе или создает для тебя препятствия, а ты взамен поступись вот этим и вот этим». Ну и так далее.
«Вы неправильно поняли. Нет никакой жизненно важной приватности. Просто нет. Поэтому и определения не может быть.»
Скажите, а вы в юности дневник вели? Ну или, к примеру, СМСки с мобилки писали? И как вам нравилось, когда ваш дневник или ваши СМСки читали родители? А ведь родители, в отличие от правительства, гораздо более вероятней желают своим детям добра и не будут использовать эту информацию во вред. Они просто читают, чтобы быть в курсе.
Я это к чему. Вообще, кроме «духовной» и «физической» стороны вопроса есть еще такая банальная вещь, как психология. О которой вы, видимо, напрочь забыли. Так вот, множество работ психологов и социологов различных мастей и течений посвящено исследованию вопроса приватности (кстати, в русском языке даже нет прямого аналога английскому слову «privacy»). Некий Алан Уэстин (Alan Westin) определяет приватность как право индивида решать, какую информацию и при каких условиях он готов передать другим людям. Например, вы ведь не будете с охотой делиться со своими сотрудниками информацией, которую поведали своему гинекологу при последнем посещении (хотя, встречаются и такие экземпляры, но скорее в порядке исключения из правил)? Очень много исследований в области приватности провели бихевиористы. Выводы из всех таких исследований неутешительны: к примеру, ограничение приватности индивида в детском, подростковом и юношеском возрасте ведет к проявлению негативизма, замкнутости, агрессии, проблемам самоидентификации и определения личностных границ, а после взросления может привести к различного рода психическим расстройствам и заболеваниям (разнообразные паранойи, мании, депрессии и прочие прелестные вещицы).
Может быть, для вас психическое здоровье вас и ваших детей «жизненно не важно», а может и нет. Просто подумайте об этом еще раз. А лучше погуглите, или проконсультируйтесь у толкового психолога/психотерапевта, если не верите тому, что пишут в интернетах.
P.S. Кстати, чиновники, которые хотят следить за всеми, — при этом почему-то не хотят, чтобы следили за ними: geektimes.ru/post/244696/
Скоро таким вот макаром все проекты ТМ скатятся к тому, что право голоса в них будет иметь крайне конформистски настроенная толпа, неспособная выдвигать аргументы и вести конструктивную дискуссию, сполобная только давить минусики-плюсики. Право голоса-то у них будет, вот только оно им будет не нужно, поскольку все, что им нужно и что они могут — прочитать коммент, залезть в профиль и тыкнуть минус. А кого можно будет минусовать, если никто больше не дискутирует, а те, кто дискутирует — друг с другом согласны априори, так как высказывают какие-то стереотипные/банальные/очевидные/общепринятые мнения или прописные истины?
Короче, хабр, ГТ и новорожденный ММ на прямом пути к построению «общества согласных», полностью отгороженного от оппозиционных мнений. Что, собственно, очень сильно кое-что напоминает.
Я же имел в виду, что можно было бы сделать что-то вроде «присваивания с кавычками», как-то так:
Это повысило бы читаемость, особенно для тех, кто привык к тому же json и вообще «классическому» подходу объявления строковых литералов. Вместо "= можно использовать что-то вроде q= или |= или что угодно еще, чтобы избежать визуальной путаницы с кавычками. Ну и поддержку вложенных кавычек можно не реализовывать для таких значений: для этого есть обычное «безкавычечное» присваивание.
Однако, такое нововведение добавит в формат «еще один способ делать то же самое», что не всегда есть хорошо и не всем нравится. Ну и плюс парсинг и валидация документа усложнится.