Wikileaks как начало революции общественного сознания

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

Нахожусь под впечатлением статей. Первая — интервью для деловой газеты «ВЗГЛЯД». Вторая — комментарий политолога.

Как раз «зацепило» мнение политолога:

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

Да черт с ними – государствами… А вот когда ЛИЧНЫХ тайн не останется – хуже станет. Тогда придется или переходить к морали абсолютной толерантности: супружеские измены, обман партнеров и друзей и т.д. станут нормой жизни, да, собственно, сами слова «измена» и «обман» как нечто ТАЙНОЕ потеряют всякий смысл. Или, «окончательно узнав» ВСЕ друг про друга, люди займутся взаимоистреблением – впрочем, последнее кажется много менее вероятным, чем абсолютно-равнодушная взаимотерпимость.

Да, но что в этом плохого? Точнее не так! Это перемены, которые имеют как хорошее, так и плохое в каждом сознании каждого человека, но это если считать, что хорошее или плохое существует! Все это лицемерие, ложь, мышиная возня — то самое, от чего давно пора избавиться. Ведь и власть не виновата во всех бедах, ибо всякая власть училась или учится с нами за одной партой, в одной школе или ВУЗе. Живет в соседнем районе и смотрит тот же телевизор. Те люди, которые сидят сейчас на креслах в красивых кабинетах не прилетели из другой галактики — они люди из народа и, в сущности, такие же как и этот народ. Ложь — не «поразила» только определенные слои населения. Просто, те, кто находится ближе к «кормушке», победили в некоем первенстве за это положение у «кормушки», оставив остальных с жалкими подачками, за которые этим остальным опять же надо яростно бороться. Естественно, у последних это вызывает ненависть, т.к. не может побежденный свято любить победителя, если речь идет о народе. Это если уже забыть о тех, кто все еще верит в барина и справедливого царя, хотя много и таких. Вся текущая жизнь на своей изнанке выглядит как борьба за место под солнцем (причем, несколько нечестная). Интернет раньше был некоторой зоной без политики, бизнеса, рекламы в таком количестве. Местом, где люди просто общались, обменивались полезной информацией. Зоной свободы от всей этой грязи. Лично я  очень испугался, когда появились социальные сети, и обыватели ринулись в интерне. Трафик растет и людей все больше. Я боялся. что интернет превратиться в некоторое подобие текущих СМИ: много цензуры, развлечений, и навязывания взглядов, суждений, целей, ложных ценностей и т.д. Отчасти, это и происходит, но знаменитая анонимность и одновременная прозрачность интернета врывается в нашу жизнь в ответ. Политика так же ворвалась в интернет, и теперь переживает внутренние перемены. Трудно управлять такой хаотической системой обмена информацией из вне.

Нельзя изменить Мир в одно мгновение, как нельзя измениться в одно мгновение самому. Ведь вся эта ложь и лицемерие, отчасти, психологическая проблема почти каждого человека, а, значит, и всего общества. Прозрачные государств и прозрачная жизнь — это как нахождение этого самого государства в кабинете психоаналитика 24/7. Ведь эта ложь не всегда осознанная, как и неосознанная у каждого человека. Свет сознания поднимает все вытесненное из руин бессознательного. Да, если все будет видно всем, не факт, что все это прекратится сразу же. Тем более, что осознанность людей начнется с терпимости и толерантности. Люди придумали для себя мораль, которой просто не могут соответствовать. Это вызывает внутренний конфликт у большинства людей, которые это вытесняют из сознания, считая, что такое забвение лучше, что они могут с этим поделать. Однако, все вытесненное продолжает не только «жить», но и оказывать влияние на дальнейшую жизнь и поступки этих людей. Отсюда вытекают и проблемы от самых маленьких, до глобальных. И так из поколения в поколение, ведь родители с нерешенными психологическими проблемами воспитывают так же и своих детей, навязывая им ту же мораль и те же законы.

Такие «потрясения», как всеохватывающая прозрачность, на фоне технического прогресса сродни вкручиванию лампочек в огромном темном ангаре. Первая лампочка осветила лишь крошечную часть пространства, но наделала много шуму — тут не привыкли к свету. А сразу и не привыкнешь: пройдет, вероятно, не одно поколение, пока человеческое сознание не переживет эти перемены.

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

Mojo and Mojolicious Handbook

Оказывается, что работа над документацией все-таки ведется. В данный момент любой желающий может ознакомиться с книжкой на английском. Насколько я понял, она еще не дописана, но любой желающий специалист, который разбирается в Mojo, может внести вклад в развитие проекта и привлечение новичков. Мне лишь остается в очередной раз позавидовать тем, кто свободно понимает тексты на английском, запустить словарик и читать. Удачи!

Документация и статьи о Mojo

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

XChat Perl scriptingl

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

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

#!/usr/bin/perl;
# Буковки!
# use warnings;
# Закомментировал прагму, когда начал использовать скрипт.
use utf8;
# Это чтобы не мучиться с кракозябрами.
use LWP::Simple;
# А этот волшебный и простой класс поможет нам без проблем выдирать из интернета данные.
Xchat::register (»RadioRecord script», «0.1.0″);
# Самое интересное начинается! В любом скрипте для XChat должна присутствовать эта штука.
#Она регистрирует в самом клиенте наш скрипт. Все будет по правилам и красиво.

Xchat::hook_command( ‘rr’, ‘get_rr’ );
# Ставим хук на выполнение команды. В нашем случае, при написании команды «/rr», управление передается функции «get rr»

sub get_rr {
#ой, что это?!
my $content = get(»http://radiorecord.ru/script/record.txt»);
# Открываем тот-самый текстовый файл, в котором название музяки!
if ($content =~ m%В эфире: <strong>(.+)</strong> — (.+)%) {
# Здесь с помощью регулярки выдергиваем нужные буквы из строки в файле.
$chan = Xchat::get_info(’channel’);
# Еще одна интересная функция: получить название канала, на котором находимся.

Xchat::command(»msg $chan Сейчас на рекорде: $1 — $2″);
# Тут все довольно очевидно: выполнить команду. В нашем случае, послать сообщение на канал с названием музыки. В переменных имя исполнителя и, собственно, название.

}
else {
print qq/$content/;
# Если там не называние песни, а что-то другое, то просто выбросить на экран, а не на канал.
}
}

Так, на случай, если отвалится. Искренне надеюсь, что комментарии понятны. На всякий случай, отдельно пропишу:

Xchat::register (»Название скрипта», «Версия); -регистрация сценария в клиенте.

Xchat::hook_command( ‘IRC-команда’, ‘Функция’ ); — ставим хук на команду и обрабатываем.

Xchat::get_info(’channel’); — получение информации. В нашем случае, текущий канал.

Xchat::command(»IRC команда″); — Выполнение команды.

Xchat::hook_print(‘Channel Message’, «check»); — Нужная и полезная штука. Хук на сообщения на канале.

Xchat::hook_print(‘Channel Message’, «check»);

sub check {
my $pubstring = $_[0][1]; # Собственно, сама строка!
my $nick = Xchat::strip_code($_[0][0]); # А вот еще одна нужная функция. Выдергиваем ник написавшего.

}

Конечно, текст можно сравнивать, определять команды и прочее. Фактически, можно клиент превратить в полноценного бота, только к нему добавится еще и вся мощность языка Perl. Сделать всякие крутые штуки с БД, блекджеком и шлюхами, однако, стоит помнить, что чем сложнее система, тем она уязвимее. С другими командами я вас не познакомлю, т.к. не было необходимости и я в них не разбирался. ((:

Удачного онанизма программирования!

Net::IRC

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

Быть новичком в Perl довольно нелегко. Особенно сейчас, когда сообщество программистов на этом эпично-прекрасном языке только-только возвращается из небытия: пишутся статьи, выкладывается код, функционирует т.н. Планета. Ломать рамки, формирующие границы мышления тяжело, а еще тяжелее было, когда не с кем посоветоваться. После прочтения книг и ознакомления с простыми методами программирования, новичку требуется опыт. Сколько книг и статей не читай, а чтобы знать язык и уметь программировать, надо писать код: заниматься и жить этим. Это одна из моих первых маленьких работ. Совместно с товарищем, мы захотели повесить на канал бота для викторины. Модуль викторины нашелся довольно быстро, хотя сам по себе он «кривоват» и заразил своей кривизной все остальное. Он был поправлен для того, чтобы работать с русским текстом. Модуль Net::IRC считается довольно старым. Ему на смену уже давно пришли многие другие пакеты. Одним из них является событийный AnyEvent::IRC, однако, для обучения и и работы простейшего бота на достаточно на данный момент Net::IRC.

#!/usr/bin/perl  # какие-то непонятные буквы (irony)
use warnings; # тоже объяснено в учебниках про предупреждения
use Net::IRC # используем класс
$irc = new Net::IRC; # собственно объект

Первый метод, который нам будет нужен, это метод newconn.

$conn = $irc->newconn(
Nick    => ‘HackBot’, # Ник в сети
Server  => ‘irc.r3al.ru’, # Сервер, к которому подключаемся
Port    =>  6667, # Порт сервера
Ircname => ‘I am bot, baby! (:’, # Имя
Timeout =>  5 # Важная вещь — таймаут. Время ожидания ответа.
);

Нетрудно догадаться, что с помощью него задаются важные для соединения бота с сервером данные. В принципе, уже можно подключаться с помощью метода start(), однако, нам же нужно, чтобы бот хотя бы зашел на канал и, желательно, выполнял какие-либо функции. Когда бот соединяется с сервером, то получает от него сообщение «376», которое означает, что соединение установлено. После этого можно заходить на каналы и т.д. Чтобы бот отреагировал на это сообщение, мы воспользуемся методом add_handler().

$conn->add_handler(‘376’, \&on_connect); # вызов функции on_connect(), при успешном подключении.

Сама функция уже может выполнять нужные нам функции. Например, заход на канал:

sub on_connect {
my $self = shift;

$self->join(‘#perl’); # заходим на канал #perl

$self->privmsg(‘#r3al’, «Всем привет! (:»); # Пишем сообщение на канал!

}

Обычно, боты реагируют на сообщения на канале, выполняя какие-то функции. Чтобы бот «читал» новые сообщения пользователей, используем тот же метод  add_handler(), только уже с параметром public.

$conn->add_handler(‘public’, \&on_public); # Вызываем функцию on_public(), если в чате появилось новое сообщение.

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

sub on_public {
my ($conn, $event) = @_;
my $text = $event->{args}[0]; # То, что сказано на канале кем-то.
if ($text =~ /^\!(.+)/) { # Простая регулярка, которая отличает команды, а не текст. (Командами обычно являются слова после знака «!», стоящего в самом начале текста.)
on_public_command($conn, $1, $event->{nick}); # Ну а дальше можно обрабатывать.
}

На самом деле, можно делать еще проще. Да и бот необязательно должен выполнять какие-то команды. Как говорится, то можно сделать несколькими способами. (;

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

Сервер: irc.perl.org

Порт: 6667

Канал: #ru.pm

Опытные программисты часто отвечали на мои вопосы. Помогали разобраться в некоторых проблемах. Сама сеть англоязычная, а на канале общение на русском (Кодировка UTF-8). УДАЧИ!