?

Log in

No account? Create an account

Мы должны знать, мы будем знать

Место, которого нет
horror
iodiot
Я всегда говорил, что вижу мало разницы между утопиями и антиутопиями. И те и другие предлагают различные модели общества, доведенные до абсурда. Только в одном случае, как правило, все рады, а в другом — не очень. Но здесь уже сложно разобраться, такова человеческая природа и от счастья до несчастья, как и от любви до ненависти, — один шаг. Среди моих любимых утопий: «451 градус по Фаренгейту», «Град обреченный», «О дивный новый мир», «1984»…

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

Может ли так статься, что мы однажды проснемся утром и четко осознаем, что оказались в утопии или антиутопии? Я думаю, нет. Примерно по той же причине, по которой мы не оказались в технологическом обществе будущего, о котором так мечтали писатели фантасты золотой эпохи. Т.е. на самом деле мы в нем оказались, и мирно себе поживаем, обладаем достаточно развитой технологией неотличимой от магии, но мы пришли к этому последовательно, без какой-то одной глобальной научно-технической революции. Другое дело, если бы взять и вырвать мечтателя из XX или XIX века и перенести его во времени к нам, и поселить его не в Зимбабве, а в Калифорнии. Дать ему возможность погулять по Лос-Анджелесу, заглянуть в Силиконовую Долину, подарить ему айФон. И знайте, по прибытию обратно он напишет очередной шедевр уровня «Человека невидимки» или «Машины времени», если имя его — Герберт Уэллс, или покажет айФон Путину, если имя его — Дмитрий Медведев.

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

deeper

Любая мало-мальски развитая социальная сеть — идеальный пример утопии. В ней каждый представитель обладает универсальным единообразным паспортом. Паспорт инвариантен, он не меняется вместе с выездом или въездом в другую страну. Да и стран вообще нет, все автоматически зачисляются в граждан мира. В паспорте содержится исчерпывающее био: возраст, пол, вероисповедание, интересы, политические взгляды, любимые фильмы, книги, музыкальные пристрастия. Конечно, существуют фрики и маргиналы, которые отказываются правильно заполнять анкеты, но при определенном градусе закручивания гайки это можно устранить.

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

Дьявол кроется в деталях. Первая важная деталь — возможность «Мне нравится» или “Like” по-ихнему. Это самый простой способ высказать свое мнение, только мнение может быть исключительно положительным. Мне нравится твое фото из Турции, мне нравится картинка с твоим котом, мне нравится новая песня Нирваны, мне нравится документальная хроника расстрела евреев фашистами. Стоп. Это мне как-то не очень нравится. Понимаете о чем речь? У информации с негативной окраской мало шансов получить общественный резонанс, так как только бессердечная скотина поставит лайк под хроникой развлечений фашистов в концентрационных лагерях.

big-brother

Другая деталь не такая заметная, но она мне чуть ли не прямым текстом напоминает «1984». Речь идет о возможности «Мои встречи». Любой может вас пригласить на внеочередное заседание общества плоской Земли или на лекцию по улучшению благосостояния, читаемую нищебродом в третьем поколении. Их дело пригласить, ваше дело отказаться. Но вы не можете это сделать в простой ударной форме, т.е. просто сказать «нет». По мнению создателей как минимум одной социальной сети, «нет» несет негативные коннотации. Слава Зевсу, они не додумались до новояза, в котором такие слова как «плохой» были заменены на «нехороший», но сам набор ответов тревожит:

buttons

Какого черта? Почему я не могу в ясной форме дать понять недоумку, что меня ВООБЩЕ не интересуют откровения экстрасенсов, божьих помазанников, свидетелей НЛО и снежного человека, космических учителей и торговцев эликсиром молодости? Не могу пойти, вашу мать.

На этом фоне вечно светящееся окно ввода «Что у вас нового?» выглядит малозначительным. Что у меня нового? Да ничего особенного: я сходил в клозет и вернул природе то, что украл у нее и съел ранее.

Dixi

ОБФУСЦИРОВАНО
horror
iodiot
Давным-давно я наткнулся в интернете на очень занимательный сайт под названием “The International Obfuscated C Code Contest” или “IOCCC” или «Интернациональный контест по обфускации С-кода».

Цели контекста:
  1. Написать наиболее мутный и обфусцированный С-код в рамках правил
  2. Показать важность стилей программирования, в ироническом виде
  3. Испытать С-компилятор необычным кодом
  4. Продемонстрировать некоторые тонкости языка С
  5. Обеспечить безопасное место для безобразного С-кода
Для тех, кто до сих пор в танке, обфускация — сознательный или бессознательный процесс запутывания исходного кода с целью свести с ума будущих читателей. Также как и рефакторинг, обфускация не меняет функциональности программы, а лишь нарушает организацию и внешний вид исходного кода. Я до сих пор помню, как одноклассник на уроке информатики копировал с экрана моего монитора лесенку. Так вот, если этот процесс пустить вспять, то это и будет примитивный пример обфускации.

Вернемся к контесту. Кратко говоря, участники должны написать максимально непонятный код, который бы при этом делал что-то интересное. Особым шиком считается оформить исходный код в виде ASCII-графики, желательно при этом, чтобы изображение имело отношение к задумке самой программы. Я тоже решил попробовать свои силы и быстро сваял программу, которая выводит в консоли множество Мандельброта. Это был первый этап и вот результаты работы:
                                              ****
                                              ****
                                        *  **********
                                        *****************
                                      *******************
                                     *********************
                           *******  **********************
                          ********* **********************
               *****************************************
                          ********* **********************
                           *******  **********************
                                     *********************
                                      *******************
                                        *****************
                                        *  **********
                                              ****
                                              ****
Дальше я решил сосредоточиться не на самой обфускации, а на оформлении кода. Форматировать код руками — муторно и долго, поэтому я… правильно, написал еще одну программу. На вход она принимает два файла: схему и код. В качестве схемы выступает вывод предыдущей программы, т.е. множество Мандельброта. Идея состоит в том, что новая программа должна пытаться рассредоточить код таким образом, чтобы он максимально точно повторял изображение на схеме. Программа незамысловатая, но есть интересные моменты:
  1. Файлы считываются в строки с помощью read_into_string()
  2. Во время считывания происходит препроцессинг кода: символы “{}();,” окружаются пробелами
  3. Препроцессинг нужен для того, чтобы sscanf() правильно распознавал все токены, т.е. понимал, что for( — два разных токена
  4. Грубо говоря, процедура format() последовательно читает токены из кода и ждет пока в схеме наберется нужное количество звездочек, после этого токен выводится
  5. Процедура format() распознает ситуацию, когда рядом идут два символьных токена, чтобы при выводе между ними вставить, как минимум, один пробел, т.е. чтобы в выводе не было: floatx
Я запустил программу и получил следующее:
                                              void
                                              zxc()
                                        {  for(float y
                                        =-1.0f;y<1.0f;y+=0.1f
                                      ){for(float x=-2.5f;
                                     x<1.0f;x+=0.05f){const
                           float   escapeR=100.0f;float zx=
                          0.0f; float zy=0.0f;float tx=0.0f
               ;float ty=0.0f;int n=100;float mod=0.0f;while
                          (n>=0&& mod<escapeR){zx=tx*tx-ty*
                           ty+x;zy  =2.0f*tx*ty+y;tx=zx;ty=
                                     zy;--n;mod=sqrt(zx*zx+
                                      zy*zy);}printf("%c",
                                        n>=0?'_':'*');}printf
                                        (  "\n");}}void
                                              main(){
                                              zxc();}
И она даже комплириуется. Впрочем мне больше по душе живой фрактал Мандельброта под авторством Д. :)

l_211a6d1a