VR-Online (May 2010)

Page 1


2

Интро

Intro

Приветствую Вас, дорогие друзья! В мае я решил плотненько войти (ничего пошлого J) в мир Linux. Взял, да и снес на своем нетбуке Windows XP Home и установил Ubuntu Linux Netbook Edition. Домашний десктоп у меня работает под Windows 7, и от нее избавляться я вообще не планирую, а вот не нетбуке решил поэкспериментировать. Один фиг, на нем я только серфю инет, да тексты пишу. Слил я образ, заинсталил, и начал радоваться красивому интерфейсу. В netbook edition он выглядит не совсем привычно. Рабочего стола как такого нет, зато на весь экран растянуто меню. Работать в таком стиле хоть и не привычно, но достаточно удобно. Дополнительный софт инсталиться на раз-два-три. Синаптик реально юзабельный и я со слезами на глазах вспоминаю то время, когда большинство программ распространялось либо в исходниках, либо в rpm пакетах. Инсталляция в те время реально напрягала. Особенно – поиск завистей. Иногда размер зависимостей существенно превышал размер самой программы. Это сейчас размер не имеет значение, а во времена правления грозного диалапа я считал каждый килобайт J. Поднастроил я Ubuntu под себя и начал ее всячески юзать. В один из дней юзания, пингвин вежливо мне предложил: «Насяльника, есть маза заапдейтится! Добро?». На такой любезный вопрос я не в силах был сказать «нет» и клацнул на пимпу «Ok». Тукс что-то проверил и начал лить обновки. Смотреть, как сливается очередной пакет было жутко не интересно, и я запустил браузер. Начал серфить. Вдруг передо мной всплыло примерно такое сообщение: «Апдейты скачаны. Приступаю к установке». Ну, приступаешь и приступай! Кликаю Ok и отправляюсь дальше смотреть странички. Прошло минуты три и FireFox встал колом. «What’s this shit?» - ругнулся я. Подумал, что косяк в FF, стал пытаться завершить его работу и бац – полный зависон. Делать нечего – ухожу в жесткий ребут. К счастью загрузка прошла нормально. Убунта меня вежливо встретила приглашением ввести пароль и опять предложила заинсталить апдейт. Я опять согласился и пошел серфить. Несколько минут спустя ситуация повторилась. Пришлось ребутить. Я откровенно говоря стал злиться. Загрузка вновь проходит хорошо и перед моими глазами очередной MessageBox с предложением обновиться. На этот раз я решил согласиться, но не открывать никаких программ. И о чудо!!! Обновки успешно были установлены! Что за фигня? И это хваленый и стабильный дистрибутив?! У меня Windows 7 нормально апдейтится и не виснет когда во время обновления активно юзаются другие программы. Ладно, я могу допустить, что может обновляться какая-нибудь системная вещица, которая влияет на работу программ. Но, неужели в сообщении с предложением обновиться, нельзя об этом упомянуть? Мол, могут возникнуть траблы, завершите все программы и немножко подождите. Так было бы лучше и корректней, нежели заставлять бедного юзера ломать голову вопросом: «А из-за чего это хрень происходит?». Я часто вижу в инете высказывания вроде: «Windows 7 – отстой, я уже перебрался на Ubuntu!». Не знаю, чем занимаются (на компе) авторы таких высказываний, но за себя могу сказать одно – пока этот дистрибутив сырой и юзать его проблематично даже дома. Нет, работать можно, но время от времени придется прыгать с бубном. Очередной апдейт может запросто увести ОС в даун. Я на такие жертвы не готов. На моем десктопе с начала ноября (или конца октября) крутится Windows 7 и за это время она ни разу не выпала в BSOD и даже не зависла. Все апдейты сливаются и нормально сетапятся. Убунта у меня месяц и я уже испытал с ней траблы. Причем траблы возникли на буке, который служит мне для двух задач – тексты и серфинг! Почему же так все плохо?

Игорь Антонов


3

Содержание

Содержание IT-News Hard-News VrIP персона

Идея проекта

Кодинг

Редакторы номера

Подкастинг по-русски. Интервью с Ольгой Шагаловой Drupal 6. Совмещаем приватный и публичный методы доступа C++. MD5 на практике PHP фреймворки. Часть 1 Delphi. Открытые и вариантные массивы C++. Передаем файлы по сети через TCP/IP

Я прусь Обзоры от VR

Обзор Nokia N900 Невозможное возможно. Книга "Физика невозможного" Софт - отстой! Хабаровский компьютерный музей

Без рамки

QIP 201 0 или как нас нагибают 1 0 вещей, которые нужно знать об Интернет Слон и Моська. Смотрим на Oracle и MySQL Google Font API. Первое знакомство Scribus. Бесплатная программа для верстки

Михаил Фленов aka Horrific (http://flenov.info)

Игорь Антонов aka Spider_NET Роман Костенко aka

Lord_of_Fear

Верстка и оформление Антон Козлов aka

Jimmy Jonezz

Вопросы и предложения mail@vr-online.ru antonov.igor.khv@gmail.com

Меня тошнит Креатиff

Inkscape. Обои для рабочего стола. Часть 2 Рассказы в стиле киберпанк Песнь Легиона. Часть 2

Психо

Невербальные знаки

Админинг

5 самых нужных модулей для Apache и PHP Поднимаем VPS. Настройка MTA

Школа

Gimp. Радиоактивная рука. Gimp. Обои в стиле Mac. Проверяем дату

Мнение VR VR-Crew

vr-online | май 201 0


Подготовлено Игорем Антоновым по материалам с сайта http://uinc.ru/news

4

IT-News

IT-News

Все то, что нас удивляло и приводило в восторг в этом месяце

Ты спрашиваешь, а Google напомнит

В начале июня «корпорация зла» запустила русскую версию сервиса Google Alerts (Google оповещения, www.google.ru/alerts/). Сервис работает следующим образом. Ты вводишь ключевые слова, по которым хочешь получать оповещения на свой e-mail. Выбираешь источники – новости, блоги, обсуждения или все сразу. Определяешься с количеством результатов и создаешь оповещения. Как только ключевые слова выстрельнут, на твой e-mail придет уведомление. Пока хорошенько протестировать сервис мне не удалось, но я уже создал одно оповещение: «Майский номер журнала VR-Online». После публикации журнала сразу узнаем – работает новинка или нет ☺ .

Троянский лис. Расширение для FireFox спрятано в апдейте Windows

Во второй июньский вторник компания Microsoft выпустила очередную порцию заплаток для своих продуктов. Вроде все как обычно, но один из апдейтов содержал расширение для FireFox. Все, кто дал добро на установку апдейта Microsoft Search Enchacement Pack (KB98221 7) получил бесплатный бонус – расширения для Internet Explorer и FireFox. Для чего нужны эти расширения – не знает никто. В описании апдейта на сайте Microsoft какая-либо информация о функциях этих дополняшек – отсутствует. Дропнуть этот пакет нормальным путем тоже нельзя (после установки). Кнопочка Uninstall – недоступна. Остается только гадать, что несет в себе этот апдейт. Организация Mozilla поспешила направить в MS письмо с просьбой прокомментировать ситуацию, однако ответа от софтверного гиганта еще нет. Если ты уже успел обновиться и хочешь провести исследование (или просто удалить таинственный плагин), то советую заглянуть в папку C:\Program Files\Microsoft\Search Enhancement Pack\Search Helper\. В ней лежит файлик SEPsearchhelperie.dll (расширение для IE) и папочка firefoxextension.

Готовится релиз PostgreSQL 9.0

Примерно через месяц разработчики OpenSource СУДБ PostgreSQL представят финальную версию PostgreSQL 9.0. В новой версии слоненка будет множество интересных нововведений: - Поддержка еще больших баз данных - Взаимодействие с многоядерными процессорами - Приближенный функционал к SQL Server, Oracle, IBM DB2 - Поддержка новых математических операций с данными - Новые возможности по связыванию таблиц при помощи индексов. - Новые агрегатные функции - Поддержка Python 3 Помимо всего перечисленного ожидается новый механизм позволяющий удалять связанные данные и индексы. По заявлению разработчиков, эта фича будет особо востребована на больших базах данных. Еще одной из интересных особенностей станет новая система vr-online | май 201 0


5

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

Блоггеров пытаются покупать

Роман Доброхотов (http://dobrokhotov.livejournal.com/)- достаточно активный и популярный ЖЖ пользователь. В начале июня этот активный перец признался в публикации якобы заказной заметки. Заказчиком был менеджер рекламного агентства. За публикацию поста блоггеру было обещано 2000 рублей (первая заметка) и по 1 000 рублей за следующие. Заказчик также поведал некоторые нюансы компании. Например, он выделил особо ценных «тысячников» с которыми якобы МВД ведет переговоры напрямую. Среди них журналистка Наталья Радулова и блогер Максим Алексендров. Судя по словам Романа он был удивлен, что и сам попал в этот список. Несмотря на все, пост все же был написан и опубликован и автор получил свой гонорар. Спустя некоторое время Роман Доброхотов сообщил: «Милиция не так уж плоха. Попытки МВД создать положительный имидж в блогосфере заслуживают понимания. Роман Доброхотов все же за честность и именно поэтому он разоблачил всю историю.

Скоро не будет нетбуков с Windows XP

Представители Microsoft напомнили, что с 22 октября 201 0 года все OEM производители не смогут устанавливать на нетбуке Windows XP. Для установки будут доступны лишь Windows Vista и Windows 7. Хотя в реале все будет сводится к сетапу Windows 7, т.к. эта ОС уже давным-давно побила популярность Vista.

А дальше будет Next3

Компания CTERA Networks, специализирующаяся на разработке гибридных облачных систем хранения данных, представила новую файловую систему для Linux - Next3, основанную на коде Ext3 и расширяющую ее возможности поддержкой снапшотов (мгновенных снимков состояния файловой системы). По сравнению с решениями, использующими снапшоты на базе LVM, Next3 обладает следующими преимуществами: -Экономия дискового пространства. Снапшоты Next3 не требуют предварительного резервирования места, что позволяет гибко управлять доступным свободным пространством. Кроме того, снапшоты Next3 являются инкрементальными и довольно компактны сами по себе. -Масштабируемость. Даже при огромном количестве снапшотов скорость Next3 остается на уровне, близком к ext3. -Легковесность. Снапшоты Next3 создаются и удаляются практически мгновенно. Сразу же после удаления снапшота занятое им пространство автоматически освобождается. -Полная прямая и обратная совместимость с ext3. Миграция с ext3 на Next3 и обратно выполняется буквально в три команды (отмонтирование, tune2fs, монтирование). Next3 не накладывает никаких ограничений на количество и размер снапшотов, однако существует минимальный предел размера файловой системы — 4 Гб. Исходные коды проекта доступны под лицензией GNU GPL. В комплект входят два патча на ядро (для версии 2.6.32.1 2), патч для e2fsprogs и скрипт управления снапшотами. vr-online | май 201 0


6

IT-News Социальный винегрет. Mail.RU, Одноклассники.RU и ICQ могут слиться

Крупнейший в Рунете инвестиционный интернет-холдинг Digital Sky Technologies готовится к реорганизации интернет-активов общей стоимостью в два миллиарда долларов, пишет газета "РБК-daily" со ссылкой на двух топменеджеров крупных интернет-компаний. Речь идет о возможном объединении в одну компанию портала Mail.Ru, социальной сети "Одноклассники" и мессенджера ICQ. В DST данную информацию опровергли, заявив, что, возможно, выкупят миноритарные доли в одном из активов. По данным издания, создание новой компании, основой которой станет Mail.Ru, запланировано на 201 0 год, но окончательное решение о реорганизации активов не принято. Ранее к Mail.Ru уже была присоединена компания "Аструм". После покупки мессенджера ICQ совладелец DST Юрий Мильнер заявил, что "видит синергию" проекта с другими компаниями фонда. Digital Sky Technologies принадлежит Юрию Мильнеру, Григорию Фингеру и Алишеру Усманову. Фонд владеет долями в сетях "Одноклассники", "ВКонтакте", портале Mail.Ru, сервисе коллективных скидок GroupOn и ряде других активов, включая крупнейшую в мире социальную сеть Facebook. Буквально перед самым выходом номера стало известно, что объединение все таки не планируется. Об этом сообщила компания DST.

"Хакеры" поимели AT&T

Хакерам удалось взломать сайт американского оператора связи AT&T и похитить 11 4 тысяч электронных адресов покупателей планшетного компьютера iPad, пишет Gawker. Взлом затронул в первую очередь ранних покупателей iPad, в том числе руководителей компаний, финансистов и сотрудников Белого дома. Так, хакеры получили адреса гендиректора компании The New York Times Джанет Робинсон, журналистки ABCNews и бывшей со-ведущей передачи "Good Morning, America" Дианы Сойер, кинопродюсера Харви Вайнштейна, мэра НьюЙорка Майкла Блумберга и даже главы администрации США Рама Эмануэля. Данные о покупателях были похищены членами группировки под названием Goatse Security. Они обнаружили, что скрипт на сайте AT&T выдает электронный адрес покупателя, если в адресной строке указать идентификатор SIM-карты ICC-ID и смогли угадать многие идентификаторы. В AT&T подтвердили существование уязвимости на сайте, которую можно было использовать для получения данных о некоторых владельцах iPad 3G. Тем не менее, в AT&T не комментируют заявления Goatse Security.

IBM впервые за двенадцать лет открыла новую лабораторию

Корпорация IBM впервые за двенадцать лет открыла новую лабораторию. Кроме того, новый исследовательский центр «Голубого гиганта» является первой лабораторией компании, которая размещена в Южной Америке. Инженеры и разработчики IBM из Сан-Паулу и Рио-деЖанейро стали первыми сотрудниками новой лаборатории в Бразилии. Подразделение будет исследовать новейшие способы поиска полезных ископаемых, разрабатывать электронные устройства и компьютерные системы взаимодействия с человеком, которые в будущем будут применяться в транспорте, здравоохранении и сельском хозяйстве, а также примет участие в создании суперкомпьютеров.

Softkey и Microsoft дарят подарки за покупку MS Office 201 0

Интернет-супермаркет ПО Softkey и корпорация Microsoft запустили совместную акцию. Согласно ее условиям, все покупатели лицензий Microsoft Office 201 0 получают в подарок vr-online | май 201 0


7

IT-News карты на приобретение товаров в сетях магазинов «М.Видео», «Л’Этуаль» и «Спортмастер». Акция продлится до 30 июня 201 0 года. Номинал подарочной карты, по которой можно приобрести товары в перечисленных сетях магазинов, напрямую зависит от количества лицензий в заказе: • 1 0 лицензий – 1 000 рублей, • 20 лицензий – 2500 рублей, • 30 лицензий – 4000 рублей, • 40 лицензий – 6000 рублей, • 50 лицензий – 1 0 000 рублей. Правда, сумма бонусов на подарочных картах для одной компании не может превышать 20 000 рублей.

Twitter за месяц посетили 1 90 миллионов человек

В мае 201 0 года на крупнейший в мире микроблогерский сервис Twitter зашли 1 90 миллионов уникальных посетителей, а зарегистрированные пользователи в среднем отсылали по 65 миллионов записей в день. Об этом пишет TechCrunch со ссылкой на топ-менеджера Twitter Дика Костоло (Dick Costolo). Для сравнения, в апреле, по оценкам администрации сервиса, посещаемость составляла 1 80 миллионов пользователей в день. В феврале ежедневно отсылалось 50 миллионов записей. Посещаемость не равняется числу зарегистрированных пользователей. Последний показатель не уточняется.

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

Выставлено на продажу доменное имя, состоящее из одной буквы - e.co, пишет The Register. Выручка от продажи домена пойдет на благотворительные цели. За первые полтора часа с начала торгов цена домена поднялась до 1 6 с половиной тысяч долларов. На момент написания данной заметки за него давали более двадцати тысяч. Торги завершатся 1 0 июня. Доменная зона верхнего уровня .CO была первоначально зарегистрирована за колумбийским университетом Анд (Universidad de los Andes). Однако университет начал использовать ее в коммерческих целях, против чего выступило правительство страны. В результате долгого спора в 2009 году права на доменную зону были отданы Министерству связи Колумбии, которое назначило управляющим зоны компанию .CO Internet SAS. Эта организация была создана совместно колумбийскими предпринимателями и американской компанией Neustar, которая занимается активной маркетинговой поддержкой домена. Владельцы зоны .CO начали заново регистрировать в ней доменные имена. 20 июля откроется свободная регистрация для всех желающих.

Google Suggest исправляет опечатки "на лету"

Функция Google Suggest, которая помогает уточнить поисковый запрос, исправляет опечатки, транслитерирует слова и в случае необходимости меняет раскладку клавиатуры, стала еще лучше. Недавно было запущено изменение в системе подбора подсказок, благодаря чему пользователи могут исправить опечатки "на лету", еще до окончания ввода поискового запроса. vr-online | май 201 0


8

IT-News Если система определяет, что пользователь ошибся, то она пометит предлагаемый вариант исправления, предварив его фразой "Did you mean". Выбрав предложенное исправление, можно сразу же исправить поисковый запрос. Пока что исправление опечаток "на лету" доступно только для запросов на сайте google.com, сделанных на английском языке, но в ближайшее время поисковый гигант планирует внедрить его и на своих международных сайтах.

Google откажется от использования Windows

Корпорация Google откажется от внутреннего использования операционной системы Windows, пишет The Financial Times со ссылкой на нескольких сотрудников компании. В Google считают недостаточной обеспечиваемую Windows безопасность. Один из источников издания сообщил, что многие сотрудники перешли с Windows на Mac OS X. Новым сотрудникам предлагается выбор между компьютером Apple с операционной системой Mac OS X или обычным PC с системой на базе ядра Linux. Работники, не желающие переходить с Windows на другие системы, должны получить особое разрешение от руководства. Первоначальное решение о переходе на другие системы было принято еще в январе, вскоре после того, как компьютерные системы компании взломали китайские хакеры. В ходе взлома была использована существующая в браузере Internet Explorer уязвимость. Другим следствием взлома стал перенос серверов Google из Китая в Гонконг и отказ от фильтрации поисковой выдачи. Последнее является необходимым условием для работы на территории материкового Китая.

Qualcomm выпустила двухъядерный чип для смартфонов

Компания Qualcomm выпустила новую линейку двухъядерных чипсетов для мобильных устройств. Системы на кристалле Snapdragon третьего поколения будут работать на тактовой частоте до 1 ,2 гигагерца, сообщается в официальном пресс-релизе. Системы Mobile Station Modem (MSM) 8660 и 8260 будут оснащаться графическим чипом с поддержкой 3D, возможностью записи и воспроизведения видео стандарта высокой четкости 1 080p. Устройства на базе процессора можно будет оснащать экранами с разрешением 1 280 на 800 пикселей. Предполагается, что новые чипы найдут применение в высокопроизводительных смартфонах. Snapdragon третьего поколения будут оснащаться аудиосистемой со сниженным потреблением энергии, а также встроенным модулем GPS. Объявление о выпуске нового чипсета было сделано на выставки Computex, которая проходит в крупнейшем городе Тайваня - Тайбэе с 1 по 5 июня.

vr-online | май 201 0


Автор: Роман Костенко aka Lord_of_fear E-mail: kostenko.r.khv@gmail.com

9

Hard-News

Hard-News Seagate выпустила быстрые гибридные накопители Momentus XT

Компания Seagate возродила идею создания гибридных накопителей и представила жесткие диски для ноутбуков Momentus XT, которые являются, по заверениям производителя, наиболее скоростными моделями в мире. Гибридные жесткие диски Seagate Momentus XT изготавливаются в форм-факторе 2,5 дюйма (высота 9,5 мм) и имеют емкость 250, 320 или 500 ГБ. Они содержат кэш-память объёмом 32 МБ, а скорость вращения шпинделя с магнитными пластинами составляет 7200 об/мин. Кроме того, в таких устройствах реализована энергонезависимая память (миниатюрный твердотельный накопитель) на основе флэш-чипов SLC NAND емкостью 4 ГБ.

Nokia анонсировала бюджетные мобильные телефоны с двумя SIM-картами C-series

Компания Nokia анонсировала новые бюджетные модели мобильных телефонов линейки C-series, а также новый альтернативный источник зарядки Nokia Bicycle Charger Kit. Мобильный телефон Nokia C2 становится первым решением компании для работы с двумя SIM-картами, а модель Nokia C1 02 – самой доступной по цене моделью с поддержкой карт Micro-SD. Новый мобильный телефон Nokia C2 является полноценным телефоном для одновременной работы двух SIMкарт, позволяя принимать и отправлять звонки и текстовые сообщения, используя любой из номеров на обеих SIM-картах при включенном аппарате. Первая SIM-карта Nokia C2 располагается под батареей. Вторая SIM-карта поддерживает «горячую замену», то есть ее можно вынимать и вставлять при работающем телефоне. Эта удобная функция, особенно с учетом низкой стоимости устройства, будет доступна только владельцам Nokia C2.

NVIDIA официально представила видеокарту GeForce GTX 465

На открывшейся выставке Comrutex 201 0 компания NVIDIA официально представила новую видеокарту GeForce GTX 465. Видеокарта NVIDIA GeForce GTX 465 является несколько урезанной версией модели GeForce GTX 470. Она содержит 40нанометровый графический чмп GF1 00, основанный на архитектуре Fermi, но количество потоковых процессоров составляет 352 (вместо 448 у GeForce GTX 470), количество текстурных блоков уменьшено с 56 до 40, а количество блоков растеризации составляет 32 штуки вместо 40. В то же время в видеокарте NVIDIA GeForce GTX 465 объём используемой памяти стандарта GDDR5 составляет 1 ГБ, а шина доступа к памяти – 256 бит. Рекомендованная розничная цена видеокарты NVIDIA GeForce GTX 465 составляет $279. Ожидается, что уже в ближайшее время партнеры NVIDIA приступят к продажам таких устройств.

AMD продемонстрировала свой первый процессор APU Fusion

Компания AMD провела первую публичную демонстрацию процессора Fusion. Семейство устройств ускоренной обработки (Accelerated Processing Units – APU) AMD Fusion объединяет на одном кристалле вычислительные ядра высокопроизводительных vr-online | май 201 0


10

Hard-News последовательных вычислений, а также графическое ядро параллельной обработки графики. Процессоры AMD Fusion являются энергоэффективными чипами, объединяющими на одном кристалле CPU, GPU, обработку видео и другие средства ускорения обработки данных для эффективного решения самых распространенных и сложных потребительских задач от воспроизведения видео высокой четкости до интерактивной работы в интернете и игр DirectX 11 . В рамках платформы AMD Fusion первоначально запланирован выпуск двух серий процессоров: Llano и Ontario. Такие чипы уже доступны в виде отдельных образцов, а их официальный релиз намечен на первый квартал 2011 года. При этом отмечается, что процессоры Llano изготавливаются по нормам 32-нанометрового технологического процесса, содержат четыре вычислительных ядра и одно графическое ядро, обладающее поддержкой DirectX 11 . Такие модели предназначены для применения в составе настольных компьютеров.

ASUS расширила линейку игровых систем Republic of Gamers

Компания ASUS расширила линейку продуктов Republic of Gamers и продемонстрировала на выставке Computex 201 0 настольный компьютер Battlefield-CG849 и несколько игровых ноутбуков. Компьютер Battlefield-CG849 позиционируется в качестве устройства с максимальной игровой производительностью. Кроме того, пользователь имеет возможность самостоятельно разогнать компоненты системы и получить прирост производительности до 20%. В таком устройстве используется6-ядерный процессор Intel Core i7-980X, 1 2 ГБ оперативной памяти стандарта DDR3 в трехканальной конфигурации, жесткий диск емкостью 2 ТБ, оптический привод DVD и две видеокарты Radeon HD 5870, объединенных в конфигурацию CrossFireX. Также отмечается, что охлаждения компонентов системы используются большие высокопроизводительные кулеры. О сроках начала продаж и цене такого устройства пока не сообщается.

Технология Microsoft Tag доступна всем желающим

Корпорация Microsoft сообщила о том, что технология Microsoft Tag, впервые представленная еще в прошлом году, вышла из статуса бета-версии и стала доступна всем желающим. Технология Microsoft Tag доступна на бесплатной основе и позволяет кодировать различные вещи специальными штрихкодами. Эти коды можно считывать с помощью цифровой камеры, установленной в мобильном телефоне или любой другой портативной технике. Специальное программное обеспечение позволит распознать такие данные, преобразовать их и связать с нужным элементом. Теги могут быть привязаны к ссылкам на вебсайты, текстовым фрагментам, данным в формате vCard. Кроме того, пользователи могут сами создавать теги и присваивать их разным элементам. Практическое применение данной разработки в повседневной жизни может выглядеть следующим образом: • отсканировав тег продукта в газете, человек может тут же получить список магазинов с предложениями о покупке товара; • отсканировав плакат для игры или рекламу кино, можно тут же заказать билеты или купить электронную копию игры.

vr-online | май 201 0


Интервью брал Игорь Антонов aka Spider_NET http://vr-online.ru

11

VrIP персона

Подкастинг по-русски Интервью с Ольгой Шагаловой (Olypka)

Как давно Вы начали заниматься подкастингом? Начинали со своих (персональных) подкастов или сразу работали с кемто в команде? В подкастинг я попала в конце 2008 года. Этому поспособствовал мой молодой человек - он не любил читать и искал, как бы получать свежую IT-информацию в аудио-виде. Наткнулся на подкаст Radio-T. Поначалу я мало что в нем понимала, но мне нравилась манера общения ведущих, да и в темах стала постепенно разбираться (мне и самой близка тема технологий). Потом начала присылать свои темы для обсуждения в подкасте, а потом так вышло, что слово за слово в комментариях меня пригасили в гости в эфир. Так я стала постоянной соведущей популярнейшего подкаста Radio-T. В шоу участвовала около полугода, это был мой первый подкаст опыт. Уже после появления в RT я начала записывать собственные подкасты - сначала развлекательный "Кадры" с другом freetonik'ом из Канады, затем сольный, позже - MFcast о мобильных телефонах. Подкастинг для вас хобби или уже работа? Это хобби и всегда будет хобби. Работа - это сайт MForum.ru, где я тружусь редактором. Работа мне нравится. Ну а подкастинг - любимое занятие в свободное время. Если мне ктото предложит вести какое-то шоу за деньги, я, конечно, не откажусь сразу. Но буду оценивать, насколько много времени оно будет у меня отнимать и не помешает ли выполнению обязанностей на основной работе. Вы частенько записываете свои подкасты. Откуда черпаете темы и вдохновение? Ну на самом деле не так уж и часто. MFcast выходит еженедельно, потому что в мобильном мире очень много новостей каждую неделю, мы их обсуждаем. Мой личный подкаст выходит от силы раз в 2-3 месяца. "Кадры" тоже выходили с таким перерывом последнее время, но буквально на днях мы несколько сменили формат и перешли в пул представительских подкастов сайта PodFM.ru (своего рода аудио-журнал). Теперь мы выходим еженедельно, рассказываем об интересных событиях в нашей жизни, собираем интересные истории от слушателей, но основной массив - интересные случаи, найденные в сети. А их, как вы понимаете, всегда много со всего мира - поговорить есть о чем. Как Вы оцениваете русский подкастинг? Мы только начинаем развиваться в этом направлении? Русский подкастинг существует уже лет 5, пожалуй. С тех пор, как шоумен Василий Стрельников "загорелся" идеей и открыл сайт rpod.ru. Правда, большого резонанса портал в рунете не вызвал. Подкастеров была небольшая группка, слушателей - тоже относительно немного. Мало кто знал о подкастинге, развития практически не было, не появлялось интересных новых подкастов. Да и сам сайт как-то застыл в развитии. Появлялось все больше мыслей о том, что русский подкастинг умирает и никогда не "выстрелит". Свято место пусто не бывает - в конце прошлого года начал активно развиваться конкурирующий сайт PodFM.ru. Они стали привлекать и поддерживать известных подкастеров, звать публичных людей в подкастинг, всячески популяризировать подкаксты. Уже сейчас на портале очень много новых подкастов, в которых уделяется внимание разносторонней тематике и качеству. После появления PodFM.ru даже rpod сдвинулся с места и представил новую версию сайта - очень красивую и удобную. Конечно, даже с усилиями этих двух терминалов подкастинг все еще не стал "событием" в рунете, это скорее удел небольшой части аудитории. Но хорошо, что специализированные порталы сами активно развиваются и стараются популяризировать подкастинг. Надеюсь, нас ждет хоть сколько-нибудь заметное будущее :). Не считаете ли вы, что в России многие подкасты - это просто дань моде? Нет, не думаю. Если люди пишут подкасты, то, по большей части, это им интересно. Тратить время и силы, разбираться с монтажом звука, приобретать оборудование - делать это все vr-online | май 201 0


12

VrIP персона только ради какой-то моды было бы странно, не считаете? Как Вы считаете, можно ли в России заработать на подкастинге? Заработать можно вполне. Есть уже даже специальные веб-сервисы, с помощью которых можно упоминать в блогах или подкастах какие-то товары или услуги и получать за это небольшие деньги. Кроме того, никто не мешает искать и привлекать спонсоров, даже в наших подкастах они периодически появлялись. У самых популярных подкастов, как можно видеть, есть постоянные спонсоры. Кроме того, я знаю людей, что записывают подкасты для каких-то фирм или для СМИ и, конечно, получают за это гонорары. Тот же сайт PodFM финансово поддерживает самые популярные подкасты, публикующиеся на их площадке. В общем, возможности есть, но, конечно, для привлечения спонсорских средств подкаст должен иметь немаленькое количество слушателей и быть качественным, интересным, активно развивающимся. Какова роль подкастов в интернете (российском, англоязычном)? Ну по сути это еще один вид получения информации, в аудиоформате. Также средство для развлечения. Думаю, роль подкастов одна во всех сегментах интернета. Это по сути радио, только в более новом формате, весь сейчас практически вся наша жизнь активно перемещается в интернет. Так что подкасты - радио, но не то, где крутят одобренные программным директором музыку и передачи, а радио, которое вы выбираете для себя сами, которое интересно лично вам. Слушаете ли Вы зарубежные подкасты? Помимо языка они чем-то отличаются о тех, что делают наши соотечественники? К сожалению, мой уровень знания иностранных языков, в частности, английского, недостаточен для того, чтобы понимать беглую устную речь. Так что судить не буду. Но очевидно и без знания языка, что зарубежные подкасты в большинстве своем более качественные, чем наши - у ведущих лучше подготовка, дикция, выше качество звука и монтажа. Это настоящие шоу, словно созданные для какой-то "топовой" радиостанции. Конечно, этого нельзя говорить о подавляющем большинстве, допустим, американских подкастов, но там гораздо больше хороших, сильно известных подкастов, чем у нас (наши можно по пальцам пересчитать). И тем лучше, что у нас началось какое-то движение, развитие. Многие американские компании ведут свои подкаст ленты. У нас такого пока не наблюдается. Как на Ваш взгляд, что может компании наличие подкаст ленты? Примеры есть и у нас (например, моя подруга пишет подкасты, работая в одной украинской компании), но их немного. Думаю, иметь свой подкаст для какой-либо фирмы не будет лишним. Таким образом можно в легкой, интересной форме познакомить слушателей со своими товарами, услугами, новыми предложениями, проводить интервью с партнерами или сотрудниками, можно проводить какие-то конкурсы, привлекать больше клиентов. В общем, можно стать ближе активной интернет-аудитории и также тем людям, что любит воспринимать информацию в аудиоформате. Подкасты и кризис. Сыграл ли кризис негативную роль на развитии российского подкастинга? Не замечала. Повторюсь, подкастинг - это хобби. Люди пишут подкасты по большей части в свободное время для собственного отвлечения, кризис тут как-то повлиять вряд ли мог. Знаю разве что один крупный подкаст, что потерял в кризис спонсора и даже не выходил довольно долго, пока не нашел нового. Но таких чисто коммерческих лент в рунете единицы. На Ваш взгляд, чем полезен подкастинг? Что он дает человеку? Ну, во-первых, это способ самовыражения. Можно рассказать о чем-то интересном, поделиться мыслями, переживаниями. Во-вторых, способ найти единомышленников, друзей, поклонников. В общем, подкастинг полезен как и любе другое хобби. Всегда полезно в свободное время заниматься чем-то интересным, а, например, не тупо пялиться в телевизор. Наверняка, кто-то из наших читателей заинтересуется и захочет записать свой первый подкаст. С чего им лучше начать? Главное: придумать, о чем вы будете рассказать. Тема должна быть интересна и вам, и vr-online | май 201 0


13

VrIP персона потенциальным слушателям. Говорить о чем попало "лишь бы сказать" - вряд ли хорошая идея. Ну а затем нужно обзавестись приличным микрофоном или диктофоном, записываться и выкладываться на основные подкаст-сайты. Конечно, это я очень кратко все описала, вот есть неплохой мануал - www.citycast.rpod.ru/93582.html. И очень дельный список советов от известнейшего подкастера Umputun - www.p.umputun.com/11 863349. Назовите несколько подкастов, которые Вы бы рекомендовали послушать? Очень нравятся подкасты от RadioGrinch, "Рунетология" с Максимом Спиридоновым, "Молодежная заграница", шоу Кремова и Хрусталева, ежедневный подкаст "Что Празднуем?". Все эти подкасты регулярно публикуются на сайте PodFM.ru, так уж случилось, что там публикуются почти все шоу, что мне в даный моменты интересны. Есть брать подкасты из других источников, то могу рекомендовать Radio-T с radio-t.com, тот самый IT-подкаст, что привел меня в подкастинг вообще. Как стать успешным подкастером? Поделитесь рецептом ;-) Нужно где-то хорошенько распиариться, например, прийти в гости в очень популярный подкаст или чтобы о вас написали в популярном блоге, как-то так :). Ну или надо писать очень интересные и качественные программы, чтобы вам заметили, начали рекомендовать друг другу. Конечно, сами не забывайте публиковать ссылки на свои подкасты в социальных себях, где вы зарегистрированы, в блоге, может, каких-то тематических сообществах, чтобы о них узнало больше людей. Одна из составляющих (прошу поправить, если ошибаюсь) хорошего подкаста качественный микрофон. В Ваших подкастах всегда хорошее качество звука. Какой микрофон Вы используете? Rode Podcaster - пожалуй, один из лучших и простых в использовании микрофонов для подкастера. Другую рекомендуемую аппаратуру можно найти в статье Umputun'a для начинающих подкастеров. Я (как и многие наши читатели) впервые услышал Вас в шоу Radio-T. Почему вы решили покинуть этот проект? Об этом я уже писала тысячи раз, честно говоря, писать надоело :) Вот тут расскано об этом голосом www.podolyapka.rpod.ru/841 78.html. А следом копия ответа на популярный вопрос из другого интервью. Специально ее храню :) Из Radio-T я ушла через полгода, потому что устала от прямых эфиров. Все же достаточно сложно каждую неделю посвящать им вечер (и даже начало ночи) субботы. Кроме того, в подкасте действительно часто обсуждаются сложные для меня темы, и я частенько много молчала, не знала, что сказать. Ну и наконец - в тот период я переехала из Перми в Москву, было много нового и отвлекающего, было не до эфиров. В субботу вечером хочется гулять, встречаться с друзьями, в конце концов валяться в обнимку с любимым и смотреть кино. Порой напрягает тратить 4 часа на эфир до поздней ночи, а потом отсыпаться полдня в воскресенье. В любом случае о Radio-T я вспоминаю с теплотой, периодически хожу к ним в гости, искренее люблю Bobuk'a и Umputun'a. Это шоу дало мне множество замечательных знакомств и отличный подкаст-опыт. Это был целый этап моей жизни, очень интересный и значимый. Какими проектами, помимо подкастов, Вы занимаетесь? Не совсем понятный вопрос про "проекты". Я работаю, периодически пишу статьи о мире телекома для дружественных нам веб-порталов или журналов. В свободное время пишу подкасты, гуляю, катаюсь на велосипеде, хожу в фитнес-клуб, читаю книги, веду блог www.olyapka.ru, общаюсь с любимым человеком и т.п. В общем, делаю все, что и другие нормальные люди :)). Ну и напоследок, чтобы вы хотели пожелать нашим читателям? Уф, какое длинное интервью :). Хотела бы пожелать им счастья и побольше улыбок. Чтобы все складывалось именно так, как они хотят и планируют. Чтобы в жизни не было неприятных сюрпризов. Чтобы не болели. И чтобы их хобби всегда доставляло радость, как подкастинг радует меня :).

vr-online | май 201 0


Автор: Роман Костенко aka Lord_of_fear E-mail: kostenko.r.khv@gmail.com

14

Кодинг

Drupal 6

Совмещаем приватный и публичный методы доступа

Всем известно, что 6-я версия Друпала построена с поддержкой приватного метода доступа к файлам. Для тех кто не знает: включить приватный метод можно через Administer > Settings > Site configuration. Он даёт возможность отслеживать процесс скачивания файлов. На его основе можно сделать, например, счетчик скачиваний. При публичном доступе к файлам Drupal не ведает об обращениях к файлу, т.к. этим делом в таком случае рулит только веб сервер. На данный момент проблема Друпала заключается в том, что можно выбрать только один из двух методов доступа . Либо приватный, либо публичный. По дефолту активен публичный доступ. Оказывается, что есть возможность совместить оба этих метода. И сейчас я расскажу каким образом это сделать. Пусть у нас имеется директория privatedownloads и для неё необходим приватный метод доступа. Для этого создадим файл .htaccess в этой директории со следующим содержанием: <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /system/files/privatedownloads RewriteRule ^(.*)$ $1 [L,R=301] </IfModule>

Таким образом мы сделаем редирект на новый путь: system/files/privatedownloads

Обратись, например, к файлу files/privatedownloads/test.jpg и получишь редирект на system/files/privatedownloads/test.jpg. Так как данного пути физически на сервере не существует, то запрос будет переадресован Drupal’у. Ну а мы осуществим ответ на этот запрос через hook_menu. /** * Implementation of hook_menu(). */ function your_module_name_menu() { $items['system/files/privatedownloads'] = array( 'access arguments' => array('access private downloads folder'), 'type' => MENU_CALLBACK, 'page callback' => 'file_download', 'page arguments' => array('privatedownloads'), ); return $items; }

Как можно видеть, здесь запрос передаётся функции file_download, которая всегда вызывается в Drupal при скачивании файла в случае использования приватного метода доступа. Данный способ работает на “Ура”, но имеет один минус: изображения не отображаются так, как они должы отображаться, а так же pdf файлы нельзя открыть в pdf reader’е. Это происходит из-за неправильного определения mime типа. Фиксится это использованием hook_file_download: /** * Implementation of hook_file_download(). */ function your_module_name_file_download($file) { $info = image_get_info(file_create_path($file)); return array('Content­type: '. file_get_mimetype($file)); }

vr-online | май 201 0


Автор: Сергей Дубовик aka sd e-mail: sdbox@tut.by

15

Кодинг

C++. MD5 на практике Реализацию хеш-функции MD5

До этого момента, кроме кода и комментариев к нему, я ничего творческого не писал. Даже школьные сочинения по русской литературе я списывал из Интернета. Но все когда-то надо начинать впервые … но не в этот раз =). Ниже я представлю реализацию хеш-функции MD5 на языке C++. Программу я писал в среде C++Builder, но код можно легко перегнать в любой C++-компилятор. Краткое описание: Хеш-функция MD5 (Message Digest 5) получает на вход обычную строку произвольной длины, а возвращает строку фиксированной длины (в нашем случае 32 байта). В принципе так работает большинство (а может даже и все) хеш-функций, отличие может быть в длине выходного (результирующего) сообщения. Фиксированная длина выходного сообщения (или хеш-кода) получается за счет преобразований, по ходу работы алгоритма, входного сообщения. В нашем случае такой результат достигается благодаря первым 2ум шагам (о них будет напсано ниже), рассматриваемого, алгоритма.

Код:

Сначала в .h – файл нашего проекта добавим следующий код: typedef unsigned int uint; // «определяем» тип unsigned int как uint. Теперь везде в коде, где //будет встречаться слово uint, компилятор будет вставлять unsigned int . //-----------------Прототипы функций (описания будут ниже)------------------String ToHex(uint value); uint F(uint X, uint Y, uint Z); uint G(uint X, uint Y, uint Z); uint H(uint X, uint Y, uint Z); uint I(uint X, uint Y, uint Z); uint RotateLeft(uint value, int shift); String GetMD5Hash(String sIn);

Теперь опишем функции, которые потребуются для работы алгоритма: Функция ToHex перегоняет в hex, полученное на входе, значение. Принцип работы аналогичен элементарному переводу из dec в bin: число делим на 256. Почему на 256, а не на 1 6, ведь при перегонке в bin делим на 2, а не на 4? - Потому что нам надо получить decзначение сразу 2ух символов. Получаем остаток от деления на 256 и приводим его (остаток) в hex. И так до тех пор, пока входное значение нельзя будет нацело поделить на 256. String ToHex(uint value) { String out; //строка

в которой будет храниться результат. //в переменной inHex будут храниться каждые 2 символа(в hex) входного значения. unsigned char inHex; while(value) //пока входное значение не станет равным нулю... { inHex=value%256; //...получаем dec-представление 2ух символов(поэтому *256, а не out+=IntToHex(inHex,2); //прибавляем к результирующей строке hex-представление

на 1 6).

// значения, полученного в строке выше. value=value/256; //переходим к следующим 2ум символам(в dec-представлении). }

vr-online | май 201 0


16

Кодинг return out; //возвращаем }

результирующую строку.

Далее определим 4 базовые функции, которые преобразуют блоки данных. По своей сути эти функции и являются функциями "шифрования". Почему функции выглядят именно следующим образом - я не могу сказать. Могу сказать лишь то, что это часть алгоритма, придуманного умным человеком. Эти функции используют битовые операции, о которых Вы, вполне подробно, можете прочесть на wikipedia: http://ru.wikipedia.org/wiki/Битовые_операции uint F(uint X, uint Y, uint Z) { return (X & Y) | ((~X) & Z); } uint G(uint X, uint Y, uint Z) { return (X & Z) | (Y & (~Z)); } uint H(uint X, uint Y, uint Z) { return X ^ Y ^ Z; } uint I(uint X, uint Y, uint Z) { return Y ^ (X | (~Z)); }

Таким образом, получая на вход три 32-разрядных регистра(слова), функция возвращает нам, скажем там, "закодиравонное" 32-разрядное слово. Кстати, под словом я понимаю 32разрядную величину. Функция RotateLeft производит циклический сдвиг влево(о котором так же можно прочесть в вышеприведенной ссылке). Результат циклического сдвига отличается от результата логического сдвига. Представим ситуацию: утро, настроение у Вас не из лучших, т.к. пришлось встать рано, что бы успеть на учебу(работу или еще куда), но Вы все равно опаздываете. Еле-еле успев на автобус, Вы понимаете, что забыли дома проездной, и деньги на билетик. И тут, как назло, кондуктор-контроллер. Через все толпу контролер почти добрался до Вас...и что делаете Вы? Вы выходите из последней двери и заходите в первую(пока контроллер снова пробереться через всю толпу, Вы уже выйдите на своей остановке). Аналогично этому бытовому примеру работает и циклический сдвиг: бит который сдвинули с начала идет в конец, бит с конца - в начало. В функцию передаем два параметра: 1 ый - 32-разярдное слово, над которым будем производить операцию, 2ой -количество бит для сдвига. Результат выполнения функции - 32-разярдное слово. uint RotateLeft(uint value, int shift) { return A << B | A >> (32-B); } Вот мы и подобрались к основной функции (хотя без предыдущих алгоритм бы тоже не работал, так что они так же важны, как и следующая), а именно функции, которая из входной строки нам даст хеш-код этой строки. Функция реализуется в 5 шагов: 1 )Расширение сообщения: сообщение расширяется таким образом, чтобы остаток деления его длины на 64(в байтах или 51 2 в битах) был равен 56(байтам или 448 битам). Почему 56 - поймете в шаге 2. Расширение происходит следующим образом: единичный бит добавляется в конец сообщения, а потом оно дополняется нулями. 2)Добавление длины сообщения: 64-разрядное представление входного сообщения (длины до того, как был выполнен шаг 1 ) добавляется в конец сообщения, полученного при выполнении шага 1 (для этого и нужен был остаток равный 56 байтам, что бы при добавлении 64-рязрядного сообщения, или, попросту, 8 байт, сообщение, которое далее будет зашифровываться, было кратно 64 байтам). 3)Инициализация MD буфера: для вычисления хеш-кода будем использовать 4 слова(32vr-online | май 201 0


17

Кодинг разрядных) регистра A, B, C, D, таблицу констант T(она нужна для лучше кодировки, по сравнению с MD4) и массив Х, в который записывается 32-разрядное представление выровненного сообщения. 4)Обработка сообщения в цикле: собственно это и есть сама кодировка. Шаг выполняется в 4 раунда, каждый раунд состоит из 1 6 операций(подробней о шаге 4 Вы узнаете из кода программы). 5)Вывод хеш-кода: по окончании 4ого шага хеш-код будет храниться в 4 регистрах (A, B, C, D). Все что нам надо - перегнать их в hex (с помощью вышеобъявленной функции ToHex). Теперь описание MD5: int length=sIn.Length(); //получаем длину входного сообщения. int rests=length%64; //остаток от деления на 64байта. int size=0; //тут будет храниться размер сообщения после первых 2ух шагов. //Шаг 1 .

if(rests < 56) //если остаток от деления на 64 меньше 56 size=length­rests+56+8; //подгоняем размер так, что бы

он был кратен 64(+8 байт для 2ого шага). else //иначе (если остаток больше 56) size=length+64­rests+56+8; //подгоняем размер так, что бы он был кратен 64(+8 байт для 2ого шага). unsigned char *cIn=new unsigned char[size]; //создаем динамический массив для хранения сообщения, которое далее будет кодироваться for(int i=0;i<length;i++) //первые length элементов сIn cIn[i]=sIn[i+1]; //заполняем символами входного сообщения cIn[length]=0x80; //савим в конец сообщения единичный бит. for(int i=length+1;i<size;i++) //а все остальное cIn[i]=0; //заполняем нулями

//Шаг 2.

__int64 bitLength=(uint)(length)*8; //длина for(int i=0;i<8;i++) //последние 8 байт cIn[size­8+i]=(bitLength >> i*8);

выравнивания

сообщения в битах.

//заполняем 64-битным представлением длины данных до

//Шаг 3. uint A=0x67452301 , //Инициализируем начальные значения регистров. B=0xefcdab89, C=0x98badcfe, D=0x10325476; uint T[64]; //64-элементная

таблица данных (констатнт).

for(int i=1;i<=64;i++) //всю таблицу констант T[i]= pow(2,32)*fabs(sin(i)); //заполняем в соответствии с алгоритмом. uint *X=new uint[size/4]; //создаем массив Х, в котором будет 32-разрядное

сообщения.

представление vr-online | май 201 0


18

Кодинг //загоняем в массив Х сообщение cIn(в данном случае оно само разбиваеться на 32-разрядные слова). //или это можно сделать "вручную" следующим образом: //for(int i = 0; i <size/4; i++ ) //X[ i] =(uint)(cIn[ i*4 + 3]<<24) +(uint)(cIn [i*4 + 2]<<1 6) + (uint)(cIn[i*4 + 1 ]<<8) + (uint)(cIn [i*4 + 0]); X=(uint*)(cIn);

//Шаг 4. uint AA, BB, CC, DD; for(int i=0;i<size/4;i+=16) { AA = A;BB = B; CC = C; DD = D;

//раунд 1 A = B + RotateLeft((A + F(B,C,D) + X[i+ 0] + T[ 1]), 7); D = A + RotateLeft((D + F(A,B,C) + X[i+ 1] + T[ 2]), 12); C = D + RotateLeft((C + F(D,A,B) + X[i+ 2] + T[ 3]), 17); B = C + RotateLeft((B + F(C,D,A) + X[i+ 3] + T[ 4]), 22); A = B + RotateLeft((A + F(B,C,D) + X[i+ 4] + T[ 5]), 7); D = A + RotateLeft((D + F(A,B,C) + X[i+ 5] + T[ 6]), 12); C = D + RotateLeft((C + F(D,A,B) + X[i+ 6] + T[ 7]), 17); B = C + RotateLeft((B + F(C,D,A) + X[i+ 7] + T[ 8]), 22); A = B + RotateLeft((A + F(B,C,D) + X[i+ 8] + T[ 9]), 7); D = A + RotateLeft((D + F(A,B,C) + X[i+ 9] + T[10]), 12); C = D + RotateLeft((C + F(D,A,B) + X[i+10] + T[11]), 17); B = C + RotateLeft((B + F(C,D,A) + X[i+11] + T[12]), 22); A = B + RotateLeft((A + F(B,C,D) + X[i+12] + T[13]), 7); D = A + RotateLeft((D + F(A,B,C) + X[i+13] + T[14]), 12); C = D + RotateLeft((C + F(D,A,B) + X[i+14] + T[15]), 17); B = C + RotateLeft((B + F(C,D,A) + X[i+15] + T[16]), 22);

//раунд 2 A = B + RotateLeft((A + G(B,C,D) + X[i+ 1] + T[17]), 5); D = A + RotateLeft((D + G(A,B,C) + X[i+ 6] + T[18]), 9); C = D + RotateLeft((C + G(D,A,B) + X[i+11] + T[19]), 14); B = C + RotateLeft((B + G(C,D,A) + X[i+ 0] + T[20]), 20); A = B + RotateLeft((A + G(B,C,D) + X[i+ 5] + T[21]), 5); D = A + RotateLeft((D + G(A,B,C) + X[i+10] + T[22]), 9); C = D + RotateLeft((C + G(D,A,B) + X[i+15] + T[23]), 14); B = C + RotateLeft((B + G(C,D,A) + X[i+ 4] + T[24]), 20); A = B + RotateLeft((A + G(B,C,D) + X[i+ 9] + T[25]), 5); D = A + RotateLeft((D + G(A,B,C) + X[i+14] + T[26]), 9); C = D + RotateLeft((C + G(D,A,B) + X[i+ 3] + T[27]), 14); B = C + RotateLeft((B + G(C,D,A) + X[i+ 8] + T[28]), 20); A = B + RotateLeft((A + G(B,C,D) + X[i+13] + T[29]), 5); D = A + RotateLeft((D + G(A,B,C) + X[i+ 2] + T[30]), 9);

vr-online | май 201 0


19

Кодинг C = D + RotateLeft((C + G(D,A,B) + X[i+ 7] + T[31]), 14); B = C + RotateLeft((B + G(C,D,A) + X[i+12] + T[32]), 20);

//раунд 3 A = B + RotateLeft((A + H(B,C,D) + X[i+ 5] + T[33]), 4); D = A + RotateLeft((D + H(A,B,C) + X[i+ 8] + T[34]), 11); C = D + RotateLeft((C + H(D,A,B) + X[i+11] + T[35]), 16); B = C + RotateLeft((B + H(C,D,A) + X[i+14] + T[36]), 23); A = B + RotateLeft((A + H(B,C,D) + X[i+ 1] + T[37]), 4); D = A + RotateLeft((D + H(A,B,C) + X[i+ 4] + T[38]), 11); C = D + RotateLeft((C + H(D,A,B) + X[i+ 7] + T[39]), 16); B = C + RotateLeft((B + H(C,D,A) + X[i+10] + T[40]), 23); A = B + RotateLeft((A + H(B,C,D) + X[i+13] + T[41]), 4); D = A + RotateLeft((D + H(A,B,C) + X[i+ 0] + T[42]), 11); C = D + RotateLeft((C + H(D,A,B) + X[i+ 3] + T[43]), 16); B = C + RotateLeft((B + H(C,D,A) + X[i+ 6] + T[44]), 23); A = B + RotateLeft((A + H(B,C,D) + X[i+ 9] + T[45]), 4); D = A + RotateLeft((D + H(A,B,C) + X[i+12] + T[46]), 11); C = D + RotateLeft((C + H(D,A,B) + X[i+15] + T[47]), 16); B = C + RotateLeft((B + H(C,D,A) + X[i+ 2] + T[48]), 23);

//раунд 4 A = B + RotateLeft((A + I(B,C,D) + X[i+ 0] + T[49]), 6); D = A + RotateLeft((D + I(A,B,C) + X[i+ 7] + T[50]), 10); C = D + RotateLeft((C + I(D,A,B) + X[i+14] + T[51]), 15); B = C + RotateLeft((B + I(C,D,A) + X[i+ 5] + T[52]), 21); A = B + RotateLeft((A + I(B,C,D) + X[i+12] + T[53]), 6); D = A + RotateLeft((D + I(A,B,C) + X[i+ 3] + T[54]), 10); C = D + RotateLeft((C + I(D,A,B) + X[i+10] + T[55]), 15); B = C + RotateLeft((B + I(C,D,A) + X[i+ 1] + T[56]), 21); A = B + RotateLeft((A + I(B,C,D) + X[i+ 8] + T[57]), 6); D = A + RotateLeft((D + I(A,B,C) + X[i+15] + T[58]), 10); C = D + RotateLeft((C + I(D,A,B) + X[i+ 6] + T[59]), 15); B = C + RotateLeft((B + I(C,D,A) + X[i+13] + T[60]), 21); A = B + RotateLeft((A + I(B,C,D) + X[i+ 4] + T[61]), 6); D = A + RotateLeft((D + I(A,B,C) + X[i+11] + T[62]), 10); C = D + RotateLeft((C + I(D,A,B) + X[i+ 2] + T[63]), 15); B = C + RotateLeft((B + I(C,D,A) + X[i+ 9] + T[64]), 21); A = AA + A; B = BB + B; C = CC + C; D = DD + D;} delete []X; //освобождаем память, выделенную под массив Х. delete []cIn; //освобождаем память, выделенную для выровненного

входного сообщения. vr-online | май 201 0


20

Кодинг //Шаг 5. String out=ToHex(A)+ToHex(B)+ToHex(C)+ToHex(D);

//представлением, полученных в шаге 4, регистров. return out; //возвращаем строку с хеш-кодом.

//заполняем выходную строку hex-

}

Я думаю, что с прокомментированный код не вызвал никаких вопросов. Но про шаг 4 я все же скажу. Шаг 4 придуман не мной и почему он реализован именно так как реализован, знает только автор алгоритма (ну не только он, может еще кто, но точно не я). Кодирование выполняется в цикле, т.к. длина входного сообщения может быть больше 55 байт, и в этом случаи, при отсутствии цикла, хеш-код получится неправильный. Вот и все. Думаю эта статья будет полезна. В Интернете не трудно найти реализацию MD5, но пошаговую реализацию найти очень тяжело. Так же хочу поблагодарить Романа Костенко(Lord_of_fear) и Игоря Антонова(Spider_NET) за их помощь в написании этого алгоритма.

vr-online | май 201 0


Перевод: Максим Богданов aka Limonell Роман Костенко aka Lord_of_fear

21

Кодинг

PHP фреймворки. Часть 1 Автор: Дуэйн О'Брайен (Duane O'Brien) , PHP разработчик

Всего несколько лет назад одним из наиболее распространенных критических замечаний в адрес PHP было то, что PHP не поддерживал MVC- архитектуры. Время идёт. И теперь мы имеем выбор между PHP фреймворками. В этой статье мы остановимся на трех широко используемых фреймворках - Zend, Symfony, CakePHP. Рассмотим их, изучим сходства и различия, а также создадим по одному приложению в каждом из них. Об этой серии статей Эта серия предназначена для разработчиков PHP, которые хотят начать использовать фреймворки, но еще не приступали к их изучению в деталях. Так же я расскажу, почему именно три этих фреймворка были выбраны для анализа и как установить каждый из них. Возможно, информация покажется слишком сложной, но не волнуйтесь, мы разобьём весь материал на несколько основных частей. В первой части серии мы опишем фреймворки, расскажем как их установить, а также узнаем об областях применения. Во второй части мы пройдёмся по примерам создания приложения для каждого из фреймворков. Часть 3 расскажет о том, как расширить наше первое приложение, написанное в предыдущей части. Все фреймворки отлично работают, когда выполняют задачи, для которых они предназначены. Не для каждого проекта подойдёт тот или иной фреймворк. В данной статье рассмотрим и такие случаи. В части 4 основное внимание уделяется поддержке Ajax, использованию Ajax, собственного кода и сторонних библиотек. В части 5 поговорим о том, что лежит за пределами возможностей фреймворков.

Об этой статье

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

Системные требования

Прежде чем начать, ты должен проверить есть у тебя всё, что необходимо для работы. Требования довольно минимальны: - Сервер HTTP с поддержкой сессий (и желательно mod_rewrite) - эта серия статей была написана с использованием Apache V1 .3 с mod_rewrite. - PHP V5.1 .4 или более поздней версии - Не все фреймворки требуют этого релиза PHP, но на всякий случай, необходимо иметь его. Я использовал PHP V5.2.3. - Разумно установить MySQL - Операционная система, поддерживающая PHP V5.2.4 или более поздней версии. Я остановился на Linux. Если ты - пользователь Windows, то тебе нужно сделать очевидные коррективы, особенно при создании каталогов, указанных ниже.

Начало

Предполагается, что ты уже знаешь хотя бы на начальном уровне PHP, о том как vr-online | май 201 0


22

Кодинг разрабатывать приложения, и как работать с базами данных.

Фреймворки для "чайников"

Прежде чем говорить о фреймворках выбранных нами, стоит поговорить о том, что же это такое. Идея фреймворка - это предложить движок, который можно использовать для нескольких приложений. Все приложения имеют ряд основных общих черт - в частности, какой-то интерфейс с базой данных, некоторое количество логики приложения, то, что необходимо для пользователя. Если ты написал много приложений на PHP, ты в курсе, о чем я говорю. Возможно, ты написал множество функций или классов, которые считывают и записывают данные из базы данных. Возможно, ты использовал шаблоны движков, чтобы управлять своим пользовательским интерфейсом. Ты, безусловно, написал кучу PHP кода, который умеет принимать решения на основе представленных данных. И если ты много кодил, ты, вероятно, делал одни и те же элементарные вещи снова и снова, просто копируя одинаковый код из одного места в другое. Фреймворк разработан таким образом, чтобы обеспечить структуру всех общих элементов (взаимодействия с базой данных, уровень представления, логика приложения), чтобы тратить меньше времени на написание кода базы данных интерфейса или представления интерфейса, и это даёт больше времени на написание самого приложения. Архитектура которая сломала привычное представление называется Model-View-Controller (MVC). Model ссылается на твои данные, View - на уровень представления, а Controller ссылается на приложение или бизнес-логику. Обсуждение MVC выходит за рамки этой статьи, так что не будем тратить на это время.

Выбор фреймворка

Есть несколько фреймворков почти для любого языка. Выбор - довольно трудное занятие, особенно если ты не использовал фреймворки раньше. Хотя рекомендации, мнения коллег и надежных авторов книг могут быть полезными в этой области. Рассмотрим несколько НЕ, которые тебе придётся учитывать при выборе фреймворка. 1 . Фреймворк не годится, когда он вроде бы нормально работает, но в то же время растёт число звонков в службу поддержки. 2. Фреймворк не нужен, если он только слегка поддерживает, но мешает, а не помогает вашему развитию. При выборе фреймворка для своего проекта нужно хорошенько подойти к вопросу обоснования его необходимости. Если ты хочешь внедрить фреймворк, то взгляни на своё приложение и спроси себя: есть ли в этом необходимость? Он не является необходимостью. Корпоративные приложения могут продолжать хорошо работать и без использования механизмов фреймворков. Может ли фреймворк помочь тебе с проектом? Будет ли он позволять экономить время и силы? Должно ли приложение работать лучше? Будет ли обеспечиваться стабильность, которой тебе не хватает? Если ответ на все эти вопросы "да", то стоит воспользовать фреймворком. Если ответ на все эти вопросы “нет”, то очевидно, что тебе это не нужно. К сожалению, мы не можем рассмотреть все имеющиеся в мире фреймворки. Эта серия статей будет описывать три основных из них: - Zend Framework - Symfony - CakePHP Выбор фреймворка - это очень личное занятие, как и выбор языка программирования. В этой серии мы не будем рассказывать тебе что одни фреймворки лучше других. Если фреймворк что-то делает хорошо, то я расскажу об этом. Если фреймворк что-то делает плохо, естественно, не скрою от тебя. Мой подход не даёт всеобъемлющего обзора различных фреймворках, но зато он даст тебе возможность понять их сильные и слабые стороны. Но ты должен понимать, что со временем ты сформируешь своё собственное vr-online | май 201 0


23

Кодинг мнение относительно того, какие фреймворки для тебя хороши, а какие не очень.

Zend Framework

Всем известно, Zend - "Компания PHP.". При загрузке и установке PHP, ты загружаешь его именно с Zend. Помимо распространения PHP, Zend Technologies на протяжении многих лет предлагает широкий спектр вспомогательных технологий PHP. И нет ничего удивительного в том, что количество обращений на сайт Zend исчисляется цифрами в 1 - 2 млн. посещений в день.

Symfony

При поддержке Sensio, Symfony стремится ускорить создание и поддержание вебприложений. Symfony позиционируются сообществом как решение уровня предприятия для использования программистами уровня выше среднего.

CakePHP

Очень много заимствовал от Ruby On Rails. CakePHP ставит главной целью принести простоту и масштабируемость для PHP. Обладает сильным сообществом и быстро растущей базой пользователей, популярность CakePHP неуклонно растет. Если ты услышал разговор о фреймворках, то вероятнее всего что разговор шёл о CakePHP.

Установка

Каждый фреймворк имеет свои собственные инструкции по установке и мы не обойдём их стороной. Начни с создания отдельной директории для кода и фреймворка. Пусть это будет /column. В этой директории создай директории htdocs, protected, include и src. Подправь конфиг Apache, присвоив document root значение /column/htdocs, а так же не забудь включить mod_rewrite. В php.ini параметру include_path присвой /column/include/.

Установка Zend Framework

Эта статья писалась по Zend Framework V1 .0.1 . Скачай и разархивируй фреймворк в директорию /column/src. Дистрибутив содержит в корне текстовые файлы и три директории demos, tests и library. Копируй содержимое папки library в директорию /column/include/. Собственно, вот и вся установка.

Установка Symfony

Установить Symfony можно воспользовавшись инсталлятором, находящимся на странице загрузки на официальном сайте, либо скачать архив и распаковать вручную. В любом случае устанавливать надо в директорию /column/src/symfony/. После окончания процесса установки ты увидишь 4 директории (data, doc, lib, licenses), а так же документацию.

Установка CakePHP

При написании статьи я использовал CakePHP версии 1 .2.0.5427alpha. Тут установка происходит по аналогии. Ставим в директорию /column/src/cakephp.

Пишем первое приложение

Итак, все фреймворки установлены, и можно приступать к созданию нашего первого приложения “ Hello World ” :) Его функция будет заключаться в выводе текста, введенного в текстовую форму. Правда, этот текст сначала необходимо сохранить в базу данных, а только потом уже запросом выбрать из БД и вывести на экран. Назовём нашу первую программу Blahg (прим. переводчика: затрудняюсь с переводом этого названия. Возможно, это – производное от слов blah ( с англ. “бессмысленная беседа”) и blog ). vr-online | май 201 0


24

Кодинг Приложение Blahg должно состоять из 4 элементов: 1 . Страница, содержащая форму для ввода текста; 2. Страница для отображения введённого текстового сообщения; 3. Страница с историей введённых сообщений. Стартовая страница. 4. Таблица БД для хранения всей информации.

Создаём БД.

Разберемся сначала с базой данных. Создай 3 базульки в MySQL, назвав их Zend, symfony и Cake. Не забудь дать пользователю, от имени которого будешь работать, полные права доступа ко всем базам.

Листинг 1 . Создание таблиц в Zend и Symfony.

CREATE TABLE 'posts' ( 'id' INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , 'title' VARCHAR( 255 ) NOT NULL , 'text' TEXT NOT NULL , 'modified' TIMESTAMP ON UPDATE CURRENT_TIMESTAMP CURRENT_TIMESTAMP ) ENGINE = MYISAM ;

NOT

NULL

DEFAULT

Листинг 2. Создание таблиц в Cake PHP.

CREATE TABLE 'posts' ( 'id' INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , 'title' VARCHAR( 255 ) NOT NULL , 'text' TEXT NOT NULL , 'modified' DATETIME DEFAULT NULL ) ENGINE = MYISAM ;

Итог

Итак, первый шаг сделан. Мы подготовили почву для второй части статьи, перевод которой будет опубликован в июльском нашего журнала. Спасибо за внимание. Удачи! :) Оригинал статьи: www.ibm.com/developerworks/opensource/library/os-php-fwk1

vr-online | май 201 0


Перевод: Игорь Антонов aka Spider_NET E-mail: antonov.igor.khv@gmail.com

25

Кодинг

Delphi

Открытые и вариантные массивы на практике. Автор: Rudy Velthuis

Многие начинающие Delphi-программисты избегают применения открытых и вариантных массивов. Причина этому скорей всего - отсутствиее соответствующей информации в литературе. За свою практику я видел до фига книг по ObjectPascal/Delphi и во многих из них такая важная тема не упоминается. А ведь зря!

Хоть без открытых и вариантных массивов и реально обойтись, но знать, что это такое и как это применяется – обязан каждый паскалист. Итак, располагайся как можно удобней и приступай к поглощению новой информации. Я расскажу тебе, что такое открытые и вариантные массивы, а также обсужу тонкости их применения. Повторюсь, сама по себе тема достаточно простая, но применяя все ниже изложенное на практике, есть большая вероятность столкнуться с проблемами. Наиболее типичные (а также способы их решения) из них я рассмотрю в этой статье. Кроме того, в статье будут расставлены точки на i в неразберихе между открытыми, динамическими и вариантными массивами. От винта!

Открытые массивы (Open array parameters)

В англо-язычной литературе для обозначения открытых массивов применяется выражение «Open array parameters». Если его перевести дословно, то получится что-то вроде: «Параметры открытого массива». На нашем родном языке – это звучит как-то не очень, поэтому здесь и дальше по тексту статьи я буду употреблять термин «открытый массив». Для себя ты можешь использовать какой угодно термин. Суть от этого не изменится. Главное запомни, что открытый массив – это параметр для процедуры/функции. От типичного массива он, прежде всего, отличается тем, что он лишь описывает базовый тип элементов без указания информации о размерности. Не буду попросту разглагольствовать, а лучше сразу приведу пример использования: procedure ListAllIntegers(const AnArray: array of Integer); var I: Integer; begin for I := Low(AnArray) to High(AnArray) do WriteLn('Integer at ', I, ' is ', AnArray[I]); end;

Обрати внимание на то, как я описал параметр типа «массив». Не хватает привычной информации о размере массива. С виду даже может показаться, что мы имеем дело с динамическим массивом, однако это не так. Это просто открытый массив. Ты можешь без проблем объявить массив (любой размерности) типа Integer (например, array [0..1 ] или array [42..937]) и передать его в процедуру ListAllIntegers. Никто также не запрещает тебе передать в процедуру динамический массив. Во всех случаях, ошибок не возникнет. Помимо примера описания открытого массива в виде параметра, в этом коде демонстрируется использование псевдо функций Low и High. Первая возвращает нижнюю границу массива, а вторая соответственно верхнюю. Наверняка тебя интересует, а почему я обозвал эти функции «псевдо», т.е. нереальными? Дело все в том, что они являются лишь синтаксическим элементом, которые всего лишь принимают форму функции. Фактически, они полагаются на работу компилятора, который просто заменяет их определенным машинным кодом. Вот таки вот биты байты. Ok, едем дальше. Ой! Стоп, совсем замотался и забыл упомянуть еще одну полезную функцию, которая пригодится при работе с массивами. Имя этой функции – length(). Юзай ее, когда требуется узнать число элементов массива. Теперь начнем проводить первые эксперименты. Попробуй написать и выполнить нижеприведенный код: var NonZero: array[7..9] of Integer; begin

vr-online | май 201 0


26

Кодинг NonZero[7] := 17; NonZero[8] := 325; NonZero[9] := 11; ListAllIntegers(NonZero); end.

Результатом выполнения должен быть следующий текст: Integer at 0 is 17 Integer at 1 is 325 Integer at 2 is 11

Почему так получилось? И опять все просто, главное знать теорию. Внутри процедуры или функции, открытый массив всегда считается zero-based (начинающийся с нуля). В связи с этим, если скормить функции Low() такой массив, то она недолго думая вернет 0. Как же тогда поступит функция High()? Не пытайся гадать, а просто запомни, что она все сделает правильно и подстроится под возникшие обстоятельства (обрати внимание, что все это относится в применении High() и Low() к открытым массивам). Не забудем в этот раз и про Length(). Для открытых массивов, эта функция всегда будет возвращать High + 1 .

Slice

Очень часто может возникнуть задача, что для работы тебе потребуется лишь одна часть массива. Что делать в такой ситуации? Создавать новый массив? Конечно же нет! Просто воспользуйся функцией Slice, которая позволяет отломить «кусочек» массива. Например: const Months: array[1..12] of Integer = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); begin ListAllIntegers(Slice(Months, 6)); end;

Потрудись набрать и выполнить код. Результатом его выполнения будет всего лишь 6 значений массива, а не 1 2.

Internals

Как это работает? Как функция может узнать размер массива? На практике это достаточно просто реализуемо. Открытый массив фактически является комбинацией из двух параметров: 1 . Указателя на адрес начала массива 2. Число, которое соответствует верхней границе массива (для массивов, которые начинаются с нуля). Руководствуясь вышесказанным, описываем процедуру примерно так: procedure ListAllIntegers(const AnArray: Pointer; High: Integer);

Когда ты передаешь открытый массив, компилятор который знает размер массива, передаст свой адрес и подгонит значение, возвращаемое функцией High (т.е. значение верхней границы) внутри процедуры или функции. Для статических массивов (например, array [7..9] of Integer) будет использоваться размер, полученный при помощи значения, полученное функцией Hight. Для динамических же массивов будет происходить компилирование кода с целью получения размера массива в режиме Runtime. Обычно, открытый массив передается с модификатором const. Если передавать открытый массив без этой примочки (я про const), то массив будет полностью скопирован в локальное «хранилище» процедуры или функции. Сам массив передается по ссылке, но в случае отсутствия const, в процедуре/функции (само собой локально) будет происходить выделение памяти в стэке, а затем производится копирование массива в «локальное хранилище». Ссылка будет использоваться как адрес источника. Если ты хоть когда-то занимался оптимизацией, то уже сейчас должен был догадаться, что применять такой подход для решения реальных задач – нерационально. На основании vr-online | май 201 0


27

Кодинг вышесказанного делаем вывод – если в процедуре не требуется выполнять изменение массива, то лучше сразу указывать модификатор const.

Конструкторы открытых массивов

Порой реально обламывает объявлять массив с одной лишь целью – заполнить несколькими значениями и передать в качестве параметра. Куда ни шло такое делать в C# или PHP (как пример). Там не требуется описывать переменные в определенной секции (как var в Pascal/Delphi). Захотел и объявил переменную – никаких трабл. В дельфячем мире все немного не так, но это не повод ругать Delphi и отчаиваться. Например, для того чтобы передать массив в качестве параметра, что называется «на ходу» не нужно объявлять переменную. Достаточно воспользоваться конструктором открытого массива. Синтаксис весьма прост. От тебя лишь требуется заключить значения создаваемого массива в квадратные скобки. Вот пример: ListAllIntegers([17, 325, 11]);

Как видишь, в выше приведенном примере массив [1 7, 325, 11 ] создается прямо, не отходя от кассы. Компилятор гарантирует, что такой массив будет существовать во время работы процедуры и значение верхней границе массива (полученное при помощи High) будет корректным. Подход полностью прозрачен для кода внутри процедуры. После окончания работы процедуры, массив будет дропнут.

«Бабе мороженое, детям цветы»

Где-то по тексту статьи я уже упоминал, что открытые массивы в плане синтаксиса очень похожи на своих динамических собратьев (динамические массивы). Они реально похожи, но ты, ни в коем случае не должен их путать. Знай, что есть открытые массивы, а есть динамические – тип массивов, поддерживаемых языком Delphi. Отличительной особенностью динамических массивов выделяется возможность изменение размера массива при помощи функции SetLength(). По традиции рассмотрим пример. type TIntegerArray = array of Integer;

С точки зрения синтаксиса, этот пример похож на те, в которых мы рассматривали объявление открытых массивов, но это только внешне. В реале они отличаются. Функции/процедуры, которые принимают открытые массивы могут без проблем работать и с динамическими. Т.е. функции без разницы, передашь ли ты ей array[0..11 ] of Month или array of Month. В обоих случаях она отработает верно, но при работе с динамическим массивом, переданным в качестве параметра, ты лишаешься, возможности пользоваться функцией SetLength(), которая позволяет изменять размер массива. Если тебе действительно требуется передать динамический массив, то придется объявить отдельную функцию/процедуру для работы с этим типом массивов. Примеры ниже: type TMonthArray = array of Month; procedure AllKinds(const Arr: array of Month); procedure OnlyDyn(Arr: TMonthArray);

Процедура AllKinds принимает и успешно работает как со статическим массивом, так и с динамическим. Правда, для динамических массивов нельзя изменять размер. Вторая процедура (OnlyDyn) наоборот, работает лишь с одним типом массивов – динамическим. Следовательно, внутри нее можно без проблем юзать SetLength. Однако стоит учитывать, что будет использоваться копия массива и все изменения не будут отражены в оригинале. Если тебе вдруг потребуется изменить размер, то объявляй параметр в процедуре как var. Например: var Arr: TMontArray. На заметку: Ты не должен забывать, что в Delphi, любые параметры могут быть объявлены в соответствии со спецификацией типа и без его описания. Таким образом, внешние параметры не допустимы для описания типа: procedure Sum(const Items: array[1..7] of Integer); function MoveTo(Spot: record X, Y: Integer; end);

vr-online | май 201 0


28

Кодинг Первым делом ты должен объявить тип и только потом использовать спецификацию как параметр типа: type TWeek = array[1..7] of Integer; TSpot = record X, Y: Integer; end; procedure Sum(const Items: TWeek); function MoveTo(Spot: TSpot);

Именно поэтому массив данных в списке параметров так же не может быть описанием типа для динамического массива. Это всегда описание открытого массива.

Вариантные массивы

Вариантный массив – особый вид открытых массивов. Вместо передачи лишь одного типа, ты можешь передавать несколько. Применение вариантных массивов хорошо показано в функции Format. Обязательно взгляни на ее описание в справке по Delphi: function Format(const Format: string; const Args: array of const): string;

Первый параметр – строка, определяющая вид форматирования. Второй – вариантный массив (array of const). Таким образом, ты можешь передавать целый диапазон значений. В плане использования это будет выглядеть примерно так: var Res: string; Int: Integer; Dub: Double; Str: string; begin Int := Random(1000); Dub := Random * 1000; Str := 'Teletubbies'; Res := Format('%4d %8.3f %s', [Int, Dub, Str]); end;

Запомни: «Array of const», официально принято называть – вариантный открытый массив. Пусть тебя не смущает слово «вариантный». Оно не имеет ничего общего с типом Variant. Но вариантный массив может содержать значения типа Variant. TVarRec (см. ниже) немного похож на Variant, который хранится внутри. Скажу больше, даже имя внутренней записи Variant похоже: TVarData.

Внутренности вариантного массива

Внутри вариантного массива находится открытый массив из TVarRec. Посмотреть описание TVarRec ты можешь в online-справке по Delphi. Этот вариант записи, содержащей поле с именем VType и наложение других типов, некоторые из которых являются указателями. Компилятор создает TVarRec для кажого элемента открытого массива, а затем заполняет поле VType соответствующим типом элемента и помещает значение или указатель на него в одном из других полей. После этого массив из TVarRec передается в функцию. Каждая запись TVarRec содержит информацию о типе, в связи с этим, можно заюзать функцию Format для выполнения проверки на совпадение с типом, представленном в виде строки. При передаче неправильного типа будет генерироваться ошибка. В твоем распоряжении есть возможность сообщить компилятору о своем решении сохранить иной идентификатор типа, для нужного типа. Если тип не совпадает с одним из разрешенных типов, копилятор попытается выполнить его преобразование к соответствующему типу. Например, если ты передаешь Double, то конвертирование будет выполняться к Extended. Не стоит также целиком полагаться лишь на могущество vr-online | май 201 0


29

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

Насущные проблемы

Обрати внимание, что значения TVarRec, переданные как указатели, существуют только во время жизни процедуры/функции. Как только процедура или функция завершают выполнение, эти значения становятся недоступными. Не пытайся поддаваться соблазну вернуть эти указатели из функции/процедуры обратно или хранить TVarRecs в массиве, за их пределами, если четко не уверен, что управляешь этими значениями самостоятельно. Если перед тобой встала задача скопировать TVarRecs в массив или внешнюю переменную функции (она может быть оформлена в виде var-параметра), не забудь сделать копию (т.е. копию в стеке) значения и заменить указатель в TVarRec на копию. После окончания работы с данными, ты также должен самостоятельно позаботиться об удалении их копии. Например, так: type TConstArray = array of TVarRec; // Copies a TVarRec and its contents. If the content is referenced // the value will be copied to a new location and the reference // updated. function CopyVarRec(const Item: TVarRec): TVarRec; var W: WideString; begin // Copy entire TVarRec first. Result := Item; // Now handle special cases. case Item.VType of vtExtended: begin New(Result.VExtended); Result.VExtended^ := Item.VExtended^; end; ... vtPChar: Result.VPChar := StrNew(Item.VPChar); ... // A little trickier: casting to AnsiString will ensure // reference counting is done properly. vtAnsiString: begin // Nil out first, so no attempt to decrement // reference count. Result.VAnsiString := nil; AnsiString(Result.VAnsiString) := AnsiString(Item.VAnsiString); end; ... // VPointer and VObject don't have proper copy semantics so it

vr-online | май 201 0


30

Кодинг // is impossible to write generic code that copies the contents. ... end; end; // Creates a TConstArray out of the values given. Uses CopyVarRec // to make copies of the original elements. function CreateConstArray(const Elements: array of const): TConstArray; var I: Integer; begin SetLength(Result, Length(Elements)); for I := Low(Elements) to High(Elements) do Result[I] := CopyVarRec(Elements[I]); end; // TVarRecs created by CopyVarRec must be finalized with this function. // You should not use it on other TVarRecs. procedure FinalizeVarRec(var Item: TVarRec); begin case Item.VType of vtExtended: Dispose(Item.VExtended); vtString: Dispose(Item.VString); ... end; Item.VInteger := 0; end; // A TConstArray contains TVarRecs that must be finalized. This function // does that for all items in the array. procedure FinalizeVarRecArray(var Arr: TConstArray); var I: Integer; begin for I := Low(Arr) to High(Arr) do FinalizeVarRec(Arr[I]); Arr := nil; end;

Функции, приведенные выше, помогут тебе управлять TVarRecs за пределами процедур/функций, для которых они были созданы. Еще ты даже можешь использовать TConstArray, там, где объявлен открытый массив. Пример представлен в виде небольшой программы, текст который ты можешь видеть ниже: program VarRecTest; {$APPTYPE CONSOLE} uses SysUtils, VarRecUtils in 'VarRecUtils.pas'; var ConstArray: TConstArray; begin

vr-online | май 201 0


31

Кодинг ConstArray := CreateConstArray([1, 'Hello', 7.9, IntToStr(1234)]); try WriteLn(Format('%d ­­­ %s ­­­ %0.2f ­­­ %s', ConstArray)); Writeln(Format('%s ­­­ %0.2f', Copy(ConstArray, 1, 2))); finally FinalizeConstArray(ConstArray); end; ReadLn; end.

Результаты будут ожидаемыми, но не очень интересными. Если быть точным, то программа выведет: 1 --- Hello --- 7.90 --- 1 234 Hello --- 7.90 Эта небольшая программа также демонстрирует, то, как ты можешь использовать Copy для применения лишь для части записей TConstArray. Copy создаст копию динамического массива, но, не копию содержимого. В связи с этим, ты не должен пытаться использовать Copy, а затем применять FinalizeConstArray для этой копий. В программе, приведенной выше, копия будет удалена автоматически, временем жизни копии будет управлять компилятор.

Скворец пропел «Конец»

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

Оригинал статьи: www.rvelthuis.de/articles/articles-openarr.html

vr-online | май 201 0


Автор: Сергей Дубовик aka sd

32

Кодинг

C++

Передача файлов через TCP(Transmission Control Protocol ) - сокеты

Как-то меня попросили написать программу, которая из определенной папки передает mp3 файлы с одного ПК на другой. Программка сканировала папку каждые 5 минут и найденные там файлы трелевала на соседний компьютер. Сканирование было реализовать нетрудно, а вот с сетью я никогда до этого не работал. Пришлось разбираться с этим с нуля. Покурив кое-какие мануалы в интернете, я полностью разобрался с передачей файлов по сети. Чем и хочу поделиться с тобой в этой статье. Для начала разберемся как передается информация через TCP/IP Логично предположить, что для передачи информации нужно как минимум надо 2 компьютера: один – клиент(получатель), второй – сервер(отправитель). Клиент должен соединиться с сервером, а сервер, в свою очередь, должен разрешить соединение. Исходя из этого, делаем несложный вывод: сервер должен быть запущен до того, как клиент попробует соединиться с ним. IP-адрес серверу устанавливать не надо, т.к. он уже установлен (ведь сервер – компьютер подключенный к сети, а значит имеет свой адрес), а вот порт указать придется, портом может быть любое число от 1 до 65535. Чаще всего порты от 1 до 1 024 заняты системой, поэтому предпочтительней указывать от 1 024 и дальше. Клиенту не так повезло как серверу, т.к. клиенту надо «открыть» сокет. Т.е. указать IP-адрес сервера и порт по которому будет происходить соединение. Причем порт, указанный клиентом, должен совпадать с портом, указанным на сервере. Когда клиент «открыл» сокет, он соединяется с сервером. При соединении клиент «сообщает» серверу о своем существовании, и сервер, «услышав» клиента, открывает новый сокет для этого клиента. В конце концов, создается сокет соединение (TCP-подключение между клиентом и сервером). По этому соединению и осуществляется процесс передачи информации. Информация разбивается на пакеты и передается от сервера к клиенту(хотя TCP разрешает передачу байтов в обоих направлениях, в нашей программе передача будет происходить от сервера к клиенту). TCP обеспечивает полноценную передачу данных без нарушений и искажений в таком же порядке, в котором отправитель послал их адресату. Важно отметить, что TCP следит, чтобы информация не была повреждена во время передачи. Адресацию и маршрутизацию пакетов выполняет IP (Internet Protocol). Таким образом, TCP взаимодействует с протоколом клиентского приложения и с IP. На самом деле, все намного сложнее, чем я описал, но этих знаний должно быть достаточно, чтобы понять принцип работы приложения. Подробно с работой TCP протокола можно ознакомиться тут: www.devoid.com.ua/c-builder/cppbuilder-networkprogramming/podrobnoe-opisanie-protocola-tcp.html

Проектирование программы

Теперь, когда с теоретической частью немного ознакомились, перейдем к разработке нашей программы. Как Вы уже догадались, нам придется создавать 2 приложения: клиентское и серверное.

Сервер

Основным компонентом сервера будет TServerSocket (находится во вкладке FastNet панели компонентов). Сейчас я кратко опишу свойства и метода этого компонента, которые нам понадобятся в ходе написания программы. Active - показывает, открыт сокет или нет. Тип: bool. Соответственно, true - открыт, а false vr-online | май 201 0


33

Кодинг закрыт. Port – порт, по которому будет проходить соеденение. ServerSocket ->Open() - открытие сокета (аналогично присвоению значения True свойству Active); ServerSocket->Socket->Connections[i]->SendText(String str) – отправляет i-тому подключенному пользователю текстовую строку через сокет. ServerSocket->Socket->Connections[i]->SendBuf(void buf, int count) – отправляет i-тому подключенному пользователю буфер через сокет. Буфером может быть любой тип данных. Буфер указывается параметром buf, параметр count – размер пересылаемых данных в байтах. Server->Socket->Connections[i]->ReceiveText() – полученный через сокет текст от i-того подключения. Так же нам понадобиться компонент TOpenDialog (вкладка Dialogs), чтобы указать путь к файлу, который мы хотим передать. И, наконец, компонент TButton (вкладка Standart), который будет запускать процедуру передачи файла.

Клиент

Основным компонентом клиента будет TClientSocket (находится в вкладке FastNet панели компонентов). Так же как и в ситуации с сервером я опишу, нужные нам, свойства и методы. Active - показывает открыт сокет или нет. Тип: bool. Соответственно, true - открыт, а false закрыт. Address – адрес сервера. ClientSocket->Socket->SendText(String str) – посылка текстовой строки через сокет. ClientSocket ->Socket->ReceiveText() – полученный через сокет текст. ClientSocket ->Open() - открытие сокета (аналогично присвоению значения True свойству Active); OnRead - возникает, когда удаленный компьютер послал тебе какие-либо данные. Так же нам понадобится компонент TButton. Кроме TClientSocket и TServerSocket еще одним важным моментом является класс, обеспечивающий сохранение данных в адресном пространстве – TmemoryStream. Класс позволяет использовать адресное пространство для хранения промежуточных результатов работы приложения, а также при помощи стандартных методов осуществлять обмен данными между памятью и другими физическими носителями. Методы и свойства класса, которые понадобятся нам при написании программы: LoadFromFile(String filename) - запись данных в память из файла. Position - возвращает или задает текущее положение в потоке. Memory – определяет область памяти, выделенную для хранения потока. Clear() – очищает поток. Size – размер данных помещенных в поток. Write(char buf, int size) - записывает в текущий поток блок байтов(размером в size), используя данные, считанные из буфера buf. SaveToFile(String filename) – сохраняет данные из потока в файл.

Перейдем к коду

Для начала определим «шаблон» нашего потока, она выглядит следующим образом: file#filename#filesize#. Когда клиент принимает такую строку, он обрабатывает ее(выделяет имя файла и его размер), создает буфер размером filesize и в него пишет всю последующую информацию. Когда размер переданной информации равен размеру файла, посылает на vr-online | май 201 0


34

Кодинг сервер команду "Ready!", сервер обрабатывает эту команду и закрывает поток. Теперь мы владеем информацией, достаточной для написания программы. Поэтому начнем.

Сервер

В инспекторе объекта TServerSocket измени следующие свойства: Name: Server Порт укажите свой. Это можно сделать в инспекторе объектов. Свойство Active поставь в значение true(сервер изначально будет запущен). Теперь объявим глобальную переменную – поток, который будет передан клиенту. TMemoryStream *Stream=new TMemoryStream;

В обработчик события OnClick кнопки пишем следующий код: void *filePointer; //область памяти для хранения данных потока. int fileSize; //размер файла, который будем передавать. if(OpenDialog­>Execute()) Stream­>LoadFromFile(OpenDialog­>FileName); //загружаем в поток выбранный файл. Server­>Socket­>Connections[0]­>SendText("file#" + OpenDialog­>FileName + "#" + IntToStr(Stream­>Size) + "#"); //формируем информацию о файле, в соответствии с //«шаблоном», описанным выше. Stream­>Position=0; // устанавливаем поток в начальную позицию. filePointer=Stream­>Memory; //записываем в указатель область памяти в которой храниться //поток. fileSize =Server­>Socket­>Connections[0]­>SendBuf(filePointer, Stream­>Size); //отправляем //содержимое области памяти клиенту. В событие ClientRead пишем: if(Server­>Socket­>Connections[0]­>ReceiveText()=="Ready!") //если получили от клиента //команду, что файл принят. Stream­>Clear(); //очищаем поток.

Сервер готов. Тут приведен простенький пример, описывающий только процесс отсылки. При желании можно сюда добавить Memo для ведения истории, ProgressBar для информирования о ходе передачи и т.д. Это сделаешь сам по желанию.

Тут переменная fileSize никак не используеться, но возможно она понадобится Вам для ведения логов или еще чего-либо.

Клиент

Форму назови RecieverForm. В инспекторе объектов TClietnSocket указываем следующие свойства: Name: Client Port: порт, который ты указал на сервере. Host : адрес сервера. В .h файле объяви прототип функции, которая будет сохранять полученную информацию в файл: void SaveInfo(AnsiString info ); В .cpp файле объяви следующие глобальные переменные: vr-online | май 201 0


35

Кодинг TMemoryStream *Stream = new TMemoryStream ; int fileSize ; //размер полученного файла. bool isReceive ; //происходит ли процесс передачи или нет. AnsiString fileName ; //имя файла. Теперь в .cpp файле опишем саму функцию: void SaveInfo(AnsiString info ) { if(Stream­>Size<fileSize) //если размер потока меньше размера данных(это значит, что //файл еще не приняли) Stream­>Write(info.c_str(), info.Length()); //записываем в поток информацию о файле if(Stream­>Size==fileSize) //если размер потока равен размеру данных(файл принят) { isReceive=false; //указываем, что процесс получения закончен. Stream­>Position=0; // устанавливаем поток в начальную позицию. RecieverForm­>Client­>Socket­>SendText("Ready!"); //сообщаем серверу, что файл у нас. CreateDir("Downloads"); //создаем в папке(из которой запущена программа) папку Dwnlds. Stream­>SaveToFile("Downloads\\" + fileName); //сохраняем поток в эту папку. Stream­>Clear(); //очищаем поток. fileSize=0; //обнуляем переменную с размером файла. } В обработчик события OnRead объекта Client введи следующий код: AnsiString recieveText=Client­>Socket­>ReceiveText(); //запоминаем текст, переданный //сервером if(isReceive) //если файл еще передается SaveInfo (recieveText); //записываем его в поток. else { if(recieveText.SubString(0,recieveText.Pos("#")­1)=="file") // если это строка типа // file#filename#filesize#, то начинаем обрабатывать полученную информацию : { recieveText.Delete(1,recieveText.Pos("#")); //удаляем слово file name=recieveText.SubString(0,recieveText.Pos("#")­1); //определяем имя файла(путь+имя). fileName=name.SubString(name.LastDelimiter("\\")+1,name.Length()); //выделяем чистое //имя файла. recieveText.Delete(1,recieveText.Pos("#")); //удаляем имя файла. fileSize=StrToInt(recieveText.SubString(0,recieveText.Pos("#")­1)); //определяем размер. recieveText.Delete(1,recieveText.Pos("#")); //удаляем последний разделитель. isReceive=true; //указваем, что файл принимается. } }

При нажатии на кнопку пишем: Client­>Open();

Вот и все. Сюда, так же как и на сервер, можно добавить Memo, ProgressBar, Timer и т.д. Из-за того, что тут используется объект класса TMemoryStream, нельзя передать файлы большого размера(у меня на компьютере с 1 280МБ ОЗУ (и на клиенте и на сервере) получилось передать файл размером в 75МБ). Мне нужна была это программа для передачи .mp3 файлов, а они много не весят, и с моей «нуждой» программа справлялась отлично. Для передачи больших файлов используйте TFileStream.Надеюсь, эта статья хоть как-то поможет тебе в разработке приложений. Спасибо за внимание. vr-online | май 201 0


36

Я прусь

Я прусь Делимся впечатлениями

Jimmy Jonezz: Мир открытых универ. Осталось совсем немного - «табуретка» исходников, давно завоевал мое внимание к себе. Приятен тот факт, что львиная доля программных средств, которыми я пользуюсь, в свободном распространении, не имеют ограничений и запретов от копирования, модификации и т.д. Приятно. Давно забыто время, когда часами я рылся в просторах интернета в поисках лакомого серийного номера, патча, кряка или различных "таймовых" ловушек. Все же есть еще та часть программ, за которые приходится платить, по большей части это связано с работой: Windows, 1 С Предприятие 8.1 , Экоформ, Антивирусы, Консультант Плюс, но это самое малое разочарование, хотя есть предпосылки к изменению этой ситуации. Надеюсь, государство начнет свое массовое вмешательство в сферу программных средств, давая пользователю возможность выбирать между СПО и КПО, а не только навязывая что-то конкретно.

Va-Bank: Я прусь от того, что не

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

wwwnet: Я прусь от мысли, что скоро

за

плечами

останется

на колесиках, а ГОСы и защита диплома. Так что вполне приличный скутер. пожелайте мне удачи ;) Выкручиваю ручку газа, и мотор послушно набирает обороты. Я давно выехал из города и проехал Lord_of_fear: Странно, но за соседний поселок. Теперь передо прошедший месяц меня мало что мной хорошо асфальтированная порадовало. И, особенно, в ИТ дорога и я не знаю, куда она ведет. сфере. И сказать “Я прусь” пока Правда, не знаю. До захода могу, наверное, только про свой солнца еще часа три, у меня недавно купленный кондиционер. полный бак и огромное желание не В Хабаровск пришла дикая жара и останавливаться. И пусть дома влажность. Ещё не так давно я меня ждет несколько не был студентом и не имел выполненных лабораторных работ возможность купить кондиционер, и заданий, которые надо т.к. мои доходы в то время были подготовить и сдать. Сейчас меня малыми. Приходилось мириться с это абсолютно не волнует. Я вовсе жарой и духотой. Но пару месяцев не раздолбай и конечно выполню назад я озадачился тем, что этим все свои обязанности, но не летом опять будет жарковато и сегодня. Потому что сейчас мне приобрёл столь нужный в наше все это просто побоку. Я время девайс. В эти выходные я подъезжаю к развилке. ощутил силу охлаждения, когда на Опознавательных знаков не видно, улице днём было +35 и влажность наобум выбираю дорогу и топлю воздуха под 80%. Баня. :( В таком газ. Совсем не замечаю, как состоянии мозг напрочь стрелка подтягивается к отметке в отказывается работать. Хочется 70км/ч. Никто не указывает мне, лечь и ничего не делать. куда свернуть, или где Кондиционер – сила. С ним мои остановиться. Сегодня выходные прошли весьма единственный мой спутник это плодотворно :) красивый закат солнца, который говорит мне, что скоро пора возвращаться. А жаль. Я ведь не Kastor: У каждого должна быть накатался. И пусть у меня не возможность оставить все свои крутая Yamaha и за эти три часа я проблемы, неприятности, намотал всего-то 1 00 километров, обязанности и просто все же часть кайфа, который наслаждаться жизнью. И пусть это ощущают байкеры от своих будет длиться совсем недолго. 1 0- пробегов, я получил. Сейчас ти минутный прыжок с парашюта вспоминаются сцены из классной или 1 0-ти секундное падение с кинокомедии «Реальные кабаны». моста на тарзанке, месяц отпуска Устроить бы подобный пробег, как на берегу моря или выходные, сделали они, было бы круто. «Не проведенные на даче с друзьями. нужен GPS чтобы открыть Не так уже и важно. Главное это Америку. Нужен байк и нужна возможность почувствовать себя дорога». свободным от той повседневности, которую необходимо иногда прерывать, иначе она тебя ZeroXor: Я вообще стараюсь задавит. Всю прошедшую неделю находить позитив во всем, поэтому вечерами я только и делал, что много от чего прусь. Вот совсем выкатывал свой скутер и гнал, недавно бросил курить - прусь, на даже не планируя заранее улице наконец-то установилась маршрут. Я не катал девчонок в нормальная летняя погода - тоже тесном потоке городских машин. Я прусь :) И если кто-то еще начет просто выбирал дорогу из города и стараться во всем искать хотя бы гнал по ней. Благо, у меня не каплю позитива - это тоже будет vr-online | май 201 0


37

Я прусь замечательно.

позволяет мне воспринимать окружающий мир таким, какой он есть, и относиться к нему с Spider_NET: В мае, несмотря на юмором. большую занятость, мне удалось хорошенько отдохнуть. Каждый знает, что лучший отдых - это отдых на природе. За минувший месяц выбирался на природу целых два раза и оба они были с ночевкой. Не представляю, как можно отдыхать на природе лишь днем? Ночь вдали от города нечто! Тишина! Не слышен гул машин. Вокруг никого. Пение птиц и полное отсутствие негатива. Одним словом - красота! Я заметил, что на природе умудряюсь выспаться всего за 5 часов. На следующий день я буду бодр и готов к новой порции драйва! Вот сейчас рассказываю тебе все это, а мне уже опять захотелось съездить отдохнуть. Надеюсь, в ближайшем будущем мне удастся это сделать ;-) А еще я неистово прусь по бане. Хоть мне и нельзя шибко париться, но нарушить запреты врачей и отказать себе в этом удовольствии - я не в состоянии. После баньки ощущение, что родился заново! Голова сразу освобождается и готова генерить новые идеи. Ну вот, якорь (про якоря в НЛП читай в предыдущем номере) дал о себе знать и мне снова хочется поближе к природе вместе с любимой женой и друзьями (lord_of_fear, привет!). Кстати, lord'у отдельный респект за шашлыки ;-) Zanuda25: Я прусь от того, что мое увлечение рисовать в детстве возродилось в компьютерную графику, сейчас осваиваю Gimp, аналога Photoshop. Сейчас пока ничего сногшибательного не могу выдать, но надеюсь, что будет, так как у меня фантазий море. Это одно. Второе, начал недавно разучивать тектонику – разновидность брейкданса. И должен признать, неважно у меня выходит этот тектоник. Как мои знакомые и друзья шутят, это танец кикиморы. Но это всего лишь временные неудобства. Но все равно я прусь от тектоника оттого, что эта разновидность брейк-данса vr-online | май 201 0


Автор: Дмитрий Редькин aka zahod5277 Email: zahod5277@gmail.com

38

Обзоры от VR

Обзор Nokia N900 Компьютер в кармане

Как сильно не хотел я приобрести устройство с Android 2.1 Eclaire,так же сильно мне и не повезло. В магазинах нашего города стояли лишь коммуникаторы с Android 1 .5 и Android 1 .6. В качестве запасного варианта у меня были Nokia N900 и Sony Ericsson Xperia X2. Сонька при предварительном обзоре не понравилась из-за слишком жесткого сенсора, приходилось стилус чуть ли не вдавливать в экран чтобы что нибудь выбрать, да и зачем мне еще один компьютер с WIndows?

Поэтому я выбрал Nokia N900. Как уже наверное знают все, на этом аппарате стоит Maemo 5, операционная система, основанная на Debian Linux (само по себе интригует=)). Начинка у него тоже не хилая: процессор, работающий на частоте 600Mhz, 256 мегабайт оперативы, неплохой 3D ускоритель и 32 гига памяти, из которых 2 забирает система под приложения, еще 768 мб уходит под виртуальную память, и итого у нас около 29 гигабайт (у меня 27,5) для закачивания всего, что только в голову придет. Так же N900 оснащен 5мп камерой с автофокусом и вспышкой (правда слабоватой), передней камерой, датчиком приближения, датчиком освещенности, офигительно чувствительным акселерометром, qwertyклавиатурой, и, внимание, подставкой! Да да, если под камерой поддеть ногтем пластмассовую рамку, то мы получим подставочку!

Комплектация.

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

Внешний вид и эргономика.

N900 это горизонтальный слайдер с полноценной qwerty-клавиатурой. Часть, на которой находится дисплей, выполнена из глянцевого пластика (как еще определить этот материал я даже не знаю), очень маркая и к ней постоянно прилепает пыль и шерсть. Часть с клавиатурой выполнена из мягкого пластика, по началу даже создается впечатление, что корпус прорезинен. Эта часть не марается вообще, отпечатков и разводов не остается, очень клево. Вес аппарата, как заверяет нас интернет, 1 81 грамм. По началу очень непривычно и неудобно, да и звонить по нему вообще беда, но, погоняв с ним недельку, начал привыкать.По бокам (в альбомной ориентации) располагаются динамики, звук из них отличный, эффект стерео просто суперский, но играют они тиховато. С левого бока (альбомная ориентация) помимо динамика находится разьем под зарядчик/USB и дырочка для шнурка. С правой стороны, опять таки помимо динамика распологаются: ползунок для блокировки/разблокировки, 3.5 разьем для наушников, микрофон и гнездо птицы стилус. Сверху качелька регулировки громкости, кнопка включения/выключения,кнопа "камера" и, неизвестно зачем(его даже в настройках нет), инфракрасный порт! Внизу нет вообще никаких кнопок, оно и понятно, так как аппарат используется на 95% в альбомной ориентации, кнопки внизу это глупость. Дисплей очень маркий, отпечатки, разводы, пыль, шерсть прилипают постоянно, поэтому я наклеил пленочку (хреново правда наклеил, на фотках видно как=)). С противоположной стороны, за крышкой, прикрывающей объектив, прячется 5 мегапиксельная камера с оптикой от Carl Zeiss. Теперь vr-online | май 201 0


39

Обзоры от VR немного о клавиатуре. 38 кнопок, помимо буковок, стрелочек влево-вправо, интера, пробела и backspace, имеются клавиши shift, ctrl и некое подобие кнопки fn на ноутбуках: зажимая ее, можно печатать цифры и знаки препинания, которые отмечены на клавишах синим цветом. При покупке думал, что привыкать к ней буду очень и очень долго, ведь клавиши такие маленькие и неудобные, но за пару дней неплохо освоился. А через месяц-другой думаю буду в слепую, как на ПК, "строчить" =). В конструкции обнаружилось пара неприятных багов. Первый из них это крышка, закрывающая батарею. Она крепится на восьми защеках, безо всяких хитрых механизмов, и думаю, что при частой замене батереи (в моем случае сим-карты), эти защелки пообломаются и придется покупать новую крышку. Второй баг это расположение гнезда для наушников. Оно находится в правой нижней части аппарата(в альбомной ориентации), и, если, слушать музыку в наушниках и одновременно печатать на клавиатуре, появляется серьезный дискомфорт, так как становится неудобно держать аппарат правой рукой.

Операционная система.

Еще раз повторюсь, сказав, что на N900 установлена портированная версия Debian Linux под коротким названием Maemo 5. Однако, сложно визуально заметить отличия от Symbian, да вообще, неотличимо. Обычное меню, без изысков, браузер, контакты, настройки, камера, плеер, смс, электронная почта, приложения(подробнее - смотрим скриншот). Главные отличия, которые сразу же бросаются в глаза, это конечно же наличие 4-ех рабочих столов и альбомная ориентация меню и всего остального, за исключением функции телефон(но и она работает без проблем в альбомной ориентации). Да, вы все правильно поняли, портретная ориентация меню здесь отсутствует. Все действия приходится выполнять держа телефон горизонтально, двумя руками (держа одной есть вероятность уронить, вес-то и габариты у N900 не маленькие). На рабочие столы можно добавлять разного рода виджеты, закладки вебстраниц, ярлыки программ. Причем размещать их можно как угодно, достаточно поддеть нужный виджет и можно прилепить его в любое место десктопа. Я за ненадобнотью отключил два лишних и разделил два других по фунцкционалу: один у меня для работы с веб и мониторинга системы, а второй используется как ToDo и контакт листы. Но это все цветочки, переходим к действительно крутым отличиям Maemo 5.

Приложения.

Да, весь смак этой оси начинаешь понимать, едва зайдя в диспетчер приложений. Maemo, как и любая другая ОС, это всего лишь средство для запуска программ, которые тут очень и очень удались. Взять например браузер. Если кто-то еще не в курсе, на N900 установлен браузер MicroB, основой которого является движкок Gecko! Да да, можно считать что у тебя в аппарате полноценный Firefox!!! MicroB легко и непринужденно отображает флэшролики (один мой товарищ, увидев, что я могу запускать в браузере флэш, очень долго пытался прийти в себя, до того ему это не верилось), гибко настраивается (тут даже айфоновский Safari рядом не валялся), поддерживаются вкладки. Было бы вообще супер если бы в N900 реализовали мультитач, тогда бы серфить инет было бы еще лучше, а так приходиться масштабировать страницы vr-online | май 201 0


40

Обзоры от VR круговым вращательным движением по дисплею. Есть интересная фича "FM передатчик". То есть, включаем передатчик на девайсе, и магнитолу, например в машине, в режиме радио. Включаем плеер, настраиваем частоты на мобилке и магнитоле, и звук доносится из колонок авто. По такому же принципу работают FM-модуляторы (их еще в прикуриватель вставляют). В maemo, как и в любой другой Linux оси, есть терминал, который, по моим тестам (я хоть и не знаком особо с линуксом, но кое что могу), ничем не хуже своих старших родственников aka Debian, Ubuntu. Ах да, совсем забыл. Начинал-то я эту главу с диспетчера приложений! Так вот. Диспетчер приложений это одна из самых главных штук в этой операционке. С его помощью можно удалить, загрузить, обновить приложения, достаточно выбрать нужный пункт. Загрузка приложений происходит со специальных репозиторий, которых не так уж и много. Один репозиторий официальный, оттуда скачиваются стабильные версии программ, один содержит бета-версии программ, которые можно юзать, не боясь за последствия, и есть третий, который содержит в себе даже не беты, а просто недоделаные проги, половина из которых даже толком не работает либо вообще не устанавливается. В офф.репозитории много софта вы не найдете. Самое большое количество прог содержится в бета-репозитории, я оттуда Quake 3 например скачал. Вообще, всего софта для Maemo 5 катастрофически мало. Не знаю точно, сколько всего программ содержится в репозиториях, но примерно сказать могу. Наверное, около пяти-семиста (не забываем, что часть из них беты, еще часть вообще не работает, и еще часть не особо нужные программы). Действительно нужных программ опять таки мало. Всякие часы, плееры (все плееры сплошное убожество, даже тупой стандартный круче), простенькие игры (хотя попадаются и шедевры), и много, много другого ширпотреба. Хотя, наверняка многие из вас содержат у себя на ПК не только полезный софт, есть же и так, софтинки, как я их называю, "для того, чтоб было". Кстати, большинство (около 90%) программ бесплатны, из платных мне пока попались только офисный пакет OfficeToGo и игра Doom.

Камера.

Nokia N900 оснащен 5-мегапиксельной камерой с оптикой от Carl Zeiss. Камера имеет автофокус, двойную LED вспышку, умеет снимать видео в формате mp4 с частотой 25 fps, отлично настраивается. Фокус хороший, если не трясти девайсом. Что можно сказать еще? Днем, при хорошей погоде, фотки получаются просто оппупеного качества, а вот ночью вспышки явно не хватает, дальше чем полтора метра от места сьемки, ничего не видно, да что говорить, смотрите сами.

Быстродействие, косяки в работе.

Вообще, в принципе, нареканий нет. За все эти три недели, что я являюсь обладателем этого чуда, он завис буквально пару раз, и то, на пару минут. Работает шустро. Судя по индикатору загруженности процессора, ARM Cortex-A8 любит нагружать себя даже в режиме ожидания до 50-70% (и такое бывает, да), хотя тормозов при этом абсолютно нет. Оперативную память, как я и не старался, мне так и не удалось забить хотя бы до 70 свободных мегабайт. Я включал браузер, навигатор, плеер, pidgin'a, все это при этом работало, процессор показывал около 50-60% загруженности, а количество свободной vr-online | май 201 0


41

Обзоры от VR оперативки было около 95 мегабайт! Поразительно! И это при том, что при включении аппарата уровень свободной ОЗУ равен 1 35-1 50 мб! То есть все эти программулины не потребляют и одной третьей свободной памяти!

Основные баги, недостатки, жалобы.

БАТАРЕЯ! Да, черт возьми, БАТАРЕЯ! Какой финский умник додумался поставить батарею от Nokia 5800(1 320 mA/h)??? Ее даже на сутки в режиме "пару раз сфотать да пару раз позвонить" не хватает! Приведу пример: зарядил однажды вечером, лег спать. Проснулся утром на учебу, а индикатор мне сообщает - осталось 25%! Как? За ночь исчезло 70% зарядки! Поэтому чатиться, серфить инет, слушать музыку, можно не более двух-трех часов в день, иначе две руки на белом фоне пожмут друг друга и экран погаснет. где-то читал что появились специальные батареи большего обьема, но, как сообщается, к ней идет специальная крышка, которая выглядит просто ужасно. Вес, тоже недостаток. 1 80 грамм в кармане очень хорошо ощущаются (зато не потеряю ). Отсутствие большого количества софта. И пара косяков в конструкции, о которых я уже писал. И еще раз БАТАРЕЯ, БАТАРЕЯ, БАТАРЕЯ! p.s. Вероятно не все интересующие аспекты были освещены, поэтому комментируйте сей пост, обязательно отвечу.

vr-online | май 201 0


Автор: Игорь Антонов aka Spider_NET WWW: http://vr-online.ru

42

Обзоры от VR

Софт-Отстой! И что с этим делать. Рецензия.

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

Для кого эта книга

Вроде бы ответ очевиден – конечно, же для программистов. Изначально я тоже так считал. Оказалось, что ошибся. Считаю, что данная книга будет полезна всем, кто любит околокомпьютерные темы. Автор хорошо высмеивает и тыкает носом в косяки современного ПО. Речь идет не о багах, а способе взаимодействия программы и человека. Одни разработчики стараются сделать это общение максимально комфортным, а другие, просто забивают на это. Иначе как объяснить MessageBox с текстом: "Произошла ошибка!" (такое сообщение очень часто можно было увидеть в IE 6). Какая ошибка? Из-за чего? Как ее исправлять? Согласись, както мало информации? Автор книги не поленился и приводит кучу подобных примеров. Кстати, автор - бывший сотрудник MS. В книге он достаточно часто упоминает продукты этой компании (IE, Windows), так, что читать будет интересно.

Мое мнение

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

Что может дать книга

1 . Прекрасное настроение. Если ты любишь писать программы или комп для тебя больше, чем печатная машинка, то хорошее настроение во время чтения тебе обеспечено! В книге полно компьютерного юмора и смачного изложения от Дэвида Платта. 2. Понимание того, как не надо делать. Косяки в программном обеспечении, на которые указывает автор, до сих пор актуальны. Прочти, намотай на ус и не вздумай повторить их в своих программах! Автор хорошо рассказывает о предназначении программ. Главное, чтобы она упрощала жизнь человека, но, ни в коем случае наоборот. 3. Взгляд автора на MS. Очень приятно читать рассуждения бывшего сотрудника компании Microsoft. Где-то он ими восхищается, а где-то наоборот указывает слабые места. Не могу сказать, что со всеми выводами нужно соглашаться, но принять их к сведению и сделать свои - однозначно. 4. Гиковский настрой. Отдельная глава книги целиком и полностью посвящена гикам и их «общению» с обычными людьми. Если слово "гик" тебе хорошо знакомо, то возможно ты найдешь в этой главе для себя что-нибудь интересненькое.

Моя оценка

В этот раз я ставлю оценку 4. Мне книга понравилась, но пятерку ей поставить не могу. Она хороша, но чего-то в ней все же не хватает. Пусть будет четверка, но зато твердая! vr-online | май 201 0


43

Обзоры от VR ИТОГИ: Полезность: 3/5

(не все любят читать книги такого плана) Стиль изложения: 5/5 Перевод: ? (оригинал я не смотрел) Оправданность цены: 1 00% Качество печати: 5/5 E-магазин: www.books.ru

vr-online | май 201 0


Автор: Роман Костенко aka Lord_of_fear E-mail: kostenko.r.khv@gmail.com

44

Обзоры от VR

Невозможное возможно. Обзор книги “Физика невозможного” Митио Каку.

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

Об этой книге я узнал примерно 2 месяца назад из поста на Хабре и сразу же пошёл на ozon.ru. Заказал, оплатил. Через неделю книга пришла и я погрузился в чтение. Идея книги просто великолепна! Такого удовольствия от чтения научной литературы я давно не получал. Не подумай, что книга наполнена сложными формулами и схемами. Их просто нет. Ощущение ненаучности не покидает до окончания чтения. Всё просто и интересно. Многие скажут : “А почему нет ссылок на документальные подтверждения, официальные результаты экспериментов и прочее?”. Отвечу: а оно и не нужно! Это – не научный труд, а увлекательное чтиво. Скажу честно: если бы в школе мой учебник физики был хоть частично написан так же как эта книга, то я бы эту науку полюбил ещё с пятого класса. В книге автор разделил “невозможное” на 3 категории: 1 . Невозможности первого класса. Это технологии, сегодня невозможные, но не нарушающие известных законов природы. Таким образом, они могут стать возможными уже в этом столетии или, может быть, в следующем в измененной форме. К этой категории относятся телепортация, двигатели на антивеществе, некоторые формы телепатии, телекинез и невидимость. 2. Невозможности второго класса – технологии, лишь недавно всерьез обозначившиеся на переднем крае наших представлений о физическом мире. Если они вообще возможны, то реализация их может растянуться на тысячи и даже миллионы лет. Сюда относятся машины времени, возможность гиперпространственных путешествий и путешествия сквозь кротовые норы. 3. К невозможностям третьего класса относятся технологии, которые нарушают известные нам физические законы. Их оказалось совсем немного. Полезность книги – личное мнение каждого. Я считаю, что книга едва ли содержит в себе знания, которые могут пригодиться в повседневной жизни. Но мы же читаем, например, художественную литературу просто для удовольствия. Вот и тут так же. Читайте с удовольствием, читайте для удовольствия… Следует отметить труд переводчика. Кое-где в книге есть плохо понятные для чтения места, в которых переводчику пришлось для понятности делать сноски и свои примечания. Но общему процессу чтения это ни сколько не мешает.

ИТОГИ:

Полезность: 4/5 Стиль изложения: 5/5 Перевод: 5/5 Качество печати: 5/5 Оправданность цены: 1 00% Купить эту книгу ты можешь в магазине ozon.ru. Прямая ссылка на книгу в магазине: www.ozon.ru/context/detail/id/423921 5 vr-online | май 201 0


Автор: Игорь Антонов aka Spider_NET WWW: http://vr-online.ru

45

Обзоры от VR

Хабаровский компьютерный музей Двери распахнуты для всех

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

Сегодня я с Lord_of_fear выбрались на ДВИФ. Мы пришли одними из первых, быстренько зарегистрировались, получили разного рода стафф и пошли осматриваться. С утра особо смотреть было нечего, поэтому мы направились в зал, где тусило больше всего народа. Как оказалось впоследствии, в том зале удобно расположились экспонаты компьютерного музея. Когда я увидел несколько девайсов, возникло ощущение, что как будто вдохнул дух времени этих машин. Судите сами, тут вам и Mac Classic 2 и древний лэптоп от Panasonic (см. соответствующую фотку), и старый фотоаппарат (название не помню, но вроде это был советский «зенит»), и олдскульная видео камера и много чего еще. Организаторы потрудились на славу и сделали действительно интересную подборку устройств. За это им сразу же хочется сказать «Большое спасибо». Перед тем как перейти к фото отчету немного расскажу про одну интересную особенность и отличие от типичных музеев. Готовы? Все представленные экспонаты можно трогать, юзать и тестить. Мне это особенно понравилось. Смотря на такие раритеты, очень тяжело удержать себя! Руки так и тянуться симпатичным железкам. Мы с Lord_of_fear немного зависли возле стойки с «сервером», на котором был заинстален совсем не гиковский linux (я про LinuxXP). Мы в шутку сказали, что «это как-то несерьезно». Эту фразу услышал представитель музея (сорри, имени с бейджика не запомнил) и нормально, без подковырки сказал: «Не проблема. Есть дистрибутив – ставьте! Всю технику можно юзать!». Вот оно, счастье техногика. Помимо экспонатов компьютерных девайсов моим зорким глазом были замечены старенькие книги: IBM PC для пользователя, Windows (не листал, но кажется про Windows 3.11 ), MS DOS, Руководства пользователя MS Windows (беленькие такие книги, одно время их распространяли с новыми компами), книга советских времен про ЭВМ и т.д. У организаторов компьютерного музея хорошее чувство юмора. Они не поленились и напечатали кучу веселых плакатов-сообщений, которые расклеили, где только можно. Вот некоторые из них: «Коннект без файерволла опасен для здоровья!!!», «Секс по модему – опасен для здоровья! Часто прерывается», «Нет проблем – сломался компьютер» и т.д. Смотрится забавно и чувствуешь, что попал в прошлое. По большому секрету расскажу, я, когда учился в 9-м классе тоже, печатал подобные штуки и клеил в своей комнате. Если Вы гиг и компьютер для Вас не просто средство для выполнения офисных задач, то не поленитесь и посетите этот компьютерный музей! Уверен, масса эмоций Вам будет обеспечена! Вы также можете принять участие в пополнении коллекции экспонатов музея. Если у Вас дома завалялось старое железо (именно старое), то не выбрасывайте его, а пожертвуйте организаторам проекта. Кому-то будет приятно на него посмотреть.

Фотоотчет.

Вот такие прикольные «сообщения» расклеены на территории музея. Не знаю как остальным посетителям, а мне идея понравилась. Забавная мышка в виде полицейской машины. Как сказал представитель музея «1 00 грамм конька, прямые руки, немного vr-online | май 201 0


46

Обзоры от VR фантазии и все готово!». Мышка кстати не бутофорная, а рабочая.

Трехкнопочная «старушка» со световыми индикаторами. Такую мышь в темноте не потеряешь .

Не компьютерная мышь, а танк, готовый атаковать в любое время. Выглядит просто круто! Я минуты три с ней игрался. Кстати, башню танка на мышке можно вращать. Одним словом: «рулезззз». Чувством свободы пропитано все. Особенно это обращение.

Та самая стойка с сервером и Linux XP. Стойке +1 , а линуксовой пародии -1 0.

Мануалы из прошлого. Вот такая книжка по MS-DOS когда-то была и у меня. Эх, были же времена. vr-online | май 201 0


47

Обзоры от VR Такими девайсами когда-то снимали…. У моих родителей до сих такой фотик есть.

Старенький бук с не менее старым дисководом. Установленную ОС не смотрел, но кажется, там тусуется Windows 95.

Старая добрая «Электроника».

Мегадревний лэптоп от Panasonic. Аж дух захватывает.

А вот вам и один из первых макинтошей. Графический интерфейс мне сразу почемуто напомнил Gnome.

На фоточке засветился старый комп и мак. Обратите внимание на маковскую однокнопочную мышку. vr-online | май 201 0


48

Обзоры от VR Эпловская мышь во всей красе

Куча олдскульных девайсов.

Мерзкий Linux XP крупным планом =)

Мой друг заснял меня при рассмотрении девайсов

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

vr-online | май 201 0


Автор: Алексей aka Wenfri Email: wenfri@yandex.ru

49

Без рамки

QIP 201 0 или как нас нагибают

Ведь действительно, сколько раз нагибали (взламывали) сайт квипа и как потом разработчики квипа нагибали нас за неимением возможности нагнуть взломщиков. Первое что я вспомнил – поиск по умолчанию от квипа и измененная стартовая страница в браузере. Такое происходило при выборе полной установки QIP. Прошло немного времени и возмущенные возгласы поутихли и пользователи смирились с наглостью разработчиков. Смирились также и с кучей рекламы на главной странице проекта, после того как в дебрях рекламы нашли ссылку для загрузки QIP-а. В рядах смирившихся пользователей оказался также и я. Немного устав от странностей QIP 2005 внезапно всплывать поверх всех окон, я решил скачать QIP 201 0 и посмотреть «а чего же здесь такого нового». На этот раз, я решил серьезно отнестись к установке программы, дабы она своей наглостью не изменила мне настроек. Вот оно знаменитое окно, в котором нам навязывают мега-поиск qip-search и главную страницу с рекламой, чтобы «далеко не нужно было ходить»:

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

При вводе учетной записи, я не обратил внимания на то, что это окно для учетной записи QIP, но не ICQ. На этот факт я не сразу обратил внимание и попытался несколько раз авторизоваться, конечно же, неудачно, так как у меня был только ICQ-аккаунт. Для его выбора нужно нажать на едва заметную ссылку «Создать новый профиль». Создать, так создать. В этом окне тоже есть возможность ввести учетную запись на сервере QIP, но я все-таки ввел номер ICQ. Ввел UIN, нажал «Войти», но подвоха не ожидал. Меня поздравили с успешным vr-online | май 201 0


50

Без рамки созданием учетной записи на qip.ru. Спрашивается: Зачем мне эта запись? Я просил ее создавать? Во-первых, я ее не просил создавать, а вовторых, по непроверенным данным, на сервере qip все пароли хранятся в открытом виде. Это не считая того, что мой номер тоже там засветился. После этого еще и удивляемся, откуда идет спам. Погоревали и ладно, нажимаем «Войти» и видим дурацкое окно, которое опять же находится поверх всех окон: Возник еще вопрос: У программистов QIP развито чувство собственной важности? Зачем мне еще один аккаунт ICQ? Это окно для удобства - скажите вы. Зачем мне такое удобство, когда за меня решают какой мне галстук одевать? Более того, квип то сам уже загрузился, а мне тут предлагают помериться количеством аккаунтов. Но эта наглость меркнет на фоне следующей наглости:

Они меня рассмешили! Разработчики QIP были настолько ко мне любезны, что автоматически зарегистрировали мне почтовый ящик. Я всегда мечтал о ящике с таким адресом 61 911 71 98@qip.ru. Вот вы смеетесь, а у меня все контакты в адресной книге прямо так и записаны: 34567884267@mail.ru, 56789654345@mail.ru и т.п. При этом я всегда помню, что логин 34567884267 принадлежит Маше, 56789654345 – Даше, а логин 6490567645 Маруське с соседнего подъезда. Обычно в своих логинах я использую намного больше цифр, поэтому, мысленно поблагодарив разработчиков, нажал на кнопку «Это письмо мошенническое». Такими вот пирогами нас сегодня угощали разработчики QIP-а. Это было так любезно с их стороны, да только мне не понравилась начинка пирога. Что ж поделаешь, ну не нравится мне коричневый цвет. После сих угощений, я нашел весьма интересную функцию, которое выдавало следующее окно:

На этот раз я решил не отказываться от предложений и нажал на кнопку «Да». vr-online | май 201 0


Перевод: Максим Богданов aka Limonell, Роман Костенко aka Lord_of_fear

51

Без рамки

World Wide Web 1 0 вещей, которые нужно знать об Интернет

“Интернет ­ не грузовик. Это – целый метрополитен". Сенатор Тед Стивенс (Ted Stevens)

Интернет, ты используешь его каждый день для учебы, работы или развлечений. За достаточно короткий период времени сеть превратилась в необходимость, и теперь уже трудно представить себе жизнь без неё. Но как много ты знаешь об интернете? Знаешь ли ты, что мы должны поблагодарить СССР за это прекрасное изобретение? Вот 1 0 вещей, которые ты должен знать об Интернете:

1 . Спутник. Вот с чего всё начиналось. В 1 957 году СССР запустил первый искусственный спутник на орбиту Земли. Это стало огромной неожиданностью для Соединенных Штатов, которые сильно опасались своего технологического отставания от противника в период холодной войны. Первой реакцией президента Дуайта Д. Эйзенхауэра (Dwight D. Eisenhower) стало создание в 1 958 году “Агентства по разработке перспективных исследований” (Advanced Research Projects Agency или сокращенно: ARPA) . Одна из его программ научных исследований, возглавляемой доктором Ликлайдером (Dr. J.C. R. Licklider ) была связана с прообразом Интернета. Кто сказал, что война не ведёт ни к чему хорошему? Интернет, возможно, одна из самых нужных технологий, которые вышли из "холодной войны".

2. До Internet был ARPANET Логическая карта первых 4 узлов ARPANET в декабре 1969, рисовал Ларри Робертс (Larry Roberts). (Изображение хранится в “Музее компьютерной истории”)

В 1 969 году, после Ликлайдера, покинувшего ARPA, его преемники Иван Сазерленд (Ivan Sutherland), Боб Тэйлор (Bob Taylor), Ларри Робертс (Larry Roberts) и его коллеги создали сеть, которая позже и стала Интернетом. Первоначально ARPANET состоял из четырех узлов (или компьютеров, называемых “Интерфейсом Сообщений Процессоров” (Interface Message Processors), которые позднее эволюционировали в маршрутизаторы), расположенных в ЛосАнджелесе, Стэнфордском исследовательском институте, Калифорнийском университете в Санта Барбаре и Университете штата Юта. Первые записи в журнале ARPANET : обращение к Чарльзу С. Клайну (Charles S. Kline), самому первому человеку, подключившемуся к удаленному хосту через ARPANET (Изображение хранится в “Музее компьютерной истории”)

"Мы созвонились с нашими коллегами из НИИ", вспоминает Леонард Клейнрок (Leonard Kleinrock). "Мы ввели L и спросили по телефону: “Вы видите L?” “Да, мы видим, L” - пришел ответ. Мы ввели O и спросили: “Вы видите O? " "Да, мы видим О." Тогда мы ввели G и всё вышло из строя! Мы сразу перезагрузились и ARPANET заработал.” С тех пор потребовалось еще несколько лет, чтобы ARPANET стал популярным. vr-online | май 201 0


52

Без рамки 3. Коммутация пакетов. Как работает Интернет.

Мы не будем слишком углубляться в техническую составляющую, но знать, как происходит перемещение данных через Интернет, нужно. Пусть данные идут из точки А в точку Б (например, текст и изображения с веб-страницы с сервера до твоего браузера). Один из способов реализовать передачу - открыть канал из точки А в точку B: данные передаются цепочкой, бит за битом, пока не будут переданы окончательно. Это - очень быстрый способ передачи информации, но влечет за собой большие расходы: специальный канал должен оставаться открытым до того, пока последний бит данных не будет отправлен. Этот метод называется коммутацией каналов, и это - система, которая используется в телефонных компаниях. В начале 1 960-х годов Пол Баран (Paul Baran), Дональд Дэвис (Donald Davies) и Леонард Клейнрок (Leonard Kleinrock), работая самостоятельно, придумали другой способ передачи данных. Большие куски данных делятся на несколько небольших пакетов и посылаются по сети. Каждый пакет сам выбирает маршрут, чтобы достичь свою цель. Если все пакеты пришли, то они снова собираются в исходные данные. Данные таким способом передаются медленнее (возможны потери пакетов, поэтому их необходимо отсылать заново), но он имеет значительное преимущество. Путь пакета до пункта назначения не является неизменным, пакет сам выбирает путь до адресата, дабы избежать повреждения.

4. TCP / IP - язык Интернета

В 1 973 году Винт Серф (Vint Cerf) (которого часто называют "отцом Интернета") и Боб Кан (Bob Kahn) создали TCP /IP - набор коммуникационных протоколов – основной язык, используемый компьютерами для общения друг с другом в сети. TCP/IP настолько прост, что D. Waitzman предложил (не без юмора :) ) протокол “IP over Avian Carriers” (IPoAC). IPoAC был описан в RFC 11 49 (RFC, или Request for Comments, — это документ, описывающий какую-то часть внутренних механизмов Интернета) организацией Internet Engineering Task Force (IETF). Этот RFC был написан D. Waitzman и опубликован 1 -го апреля 1 990 г. Основная идея этого “протокола” в том, чтобы привязать какой-нибудь носитель данных (такой как карта памяти) к ноге голубя и послать его к месту назначения. IPoAC был впервые “реализован” (т.е. они на самом деле сделали это) Группой Пользователей Linux г. Берген (Bergen Linux user group). Они послали 9 голубей, каждый нёс 1 ping к месту назначения, удалённому примерно на 5 км, но ответов они получили только 4. Довольно плохой результат. Затем, в 2004-м группа израильских энтузиастов послала 3 почтовых голубя, способных находить путь домой на больших расстояниях от места назначения. ( ~1 00 км от старта). Каждый голубь нёс 20-22 крошечных карт памяти. Общий объём данных был 4 GB, и справились с этим голуби менее, чем за 4 часа.

5. Альберт Гор действительно создал Интернет. Ну … или что-то около того. "Помни, Америка, я дал тебе Интернет, и я могу его и забрать" пошутил Альберт Гор (Al Gore) на шоу “Late Show” c Дэвидом Леттерманом (David Letterman).

Так действительно ли Гор создал Интернет? “Во время службы в государственном Конгрессе я взял на себя инициативу в создании Интернета. Я взял на себя инициативу в продвижении целого ряда инициатив, которые оказались важными для экономического роста нашей страны и охраны окружающей среды, улучшений в нашей системе образования...” Хотя термин "инициатива по созданию Интернета" является расплывчатым, но Гор, всё таки, vr-online | май 201 0


53

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

6. Отец спама: Гари Суерк (Gary Thuerk)

Спам является старым методом маркетинга. Самый первый спам содержал стоматологическую рекламу своих услуг, отправленный телеграммами в 1 864 году. Тогда, как и сейчас, люди, которые получили телеграммы, даже писали в местные газеты с жалобами на рекламу. Первый спам в сети был отправлен менеджером по маркетингу Digital Equipment Гари Суэрком в 1 978 году 393-м пользователям ARPANET. Он рекламировал новую модель компьютеров. Кто-то из Rand Corporation послал ему письмо, написав, что он нарушил правила ARPANET. (Существовал неписаный закон о том, что люди не будут использовать ARPANET для продажи; Гари Суерк оправдывался тем, что, он лишь только способствовал продвижению продукта.) После этого с начальником Суерка связались из “Агенства по коммуникациям” и взяли с него обещание, что Гари никогда больше не будет спамить. Суерк занял место в истории как отец спама, за что и попал в Книгу Рекордов Гиннеса. Зато сейчас он занимается анти-спам защитой компаний. Реакция людей на него неоднозначна: некоторые рады встретить человека с необычной славой, некоторые хотят его побить, а другие просто избегают как чумы.

7. Сексуальный Веб: 1 2% веб-сайтов = порно! Реакция бабушки на двух полуголых девиц на дисплее

Мы не можем говорить о Сети, не говоря о порнографии. Ниже приведены некоторые статистические данные: • Число порнографических сайтов : 4,2 млн. (1 2% от общего числа веб-сайтов) • Число порнографических страниц: 420 млн. • Число порнографических поисковых запросов в сутки: 68 млн. (25% от общего числа запросов поисковиков) • Ежедневная порнографическая e-mail рассылка: 2500 млн. писем (8% от общего числа писем) • Интернет-пользователи, которые смотрят порно: 42,7% • Посетителей порнографических веб-сайтов: 72 млн. (в месяц) • Денежный оборот интернет порно индустрии в год: 4,9 млрд. долл. США • На данный момент около 28,5 тысяч интернет-пользователей смотрят порнографию. Согласно статистическим данным GOOD Magazine: • 35% всех Интернет загрузок имеют порнографических характер. • Каждый день в Интернете появляются 266 новых порно сайтов . • "Секс" является наиболее часто встречающимся словом в Интернете. • 70% порно трафика набегает в течение 9 часового рабочего дня. • США производит 89% всего онлайн порно.

8. Подъем блогосферы.

Блоги (сокращение от “веб логии”) – одни из самых обновляемых ресурсов в Интернете. По данным Technorati (http://technorati.com) существует около 11 2 800 000 блогов, и 1 75 тысяч vr-online | май 201 0


54

Без рамки новых блогов добавляются каждый день. А это около 1 22 блога в минуту! Термин "блог" был придуман Джоном Баргером (John Barger) 1 7 декабря 1 997. Так он назвал свой ресурс robotwisdom.com, являющийся сборником интересных ссылок, которые Джон находил во время сёрфинга интернета. Эго сайт и стал первым в мире блогом. Да, технически существуют блоги, которые предшествовали robotwisdom.com, но они никогда не называли себя именно "блог". Блоггинг стал очень популярным в 1 999 году с появлением ресурсов, которые позволяли создать свой блог с помощью нескольких кликов мышки (таких, как: Pitas.com, LiveJournal и Blogger.com) Сегодня же блоги повсюду. Так что же случилось с Джоном Баргером, первый блоггером в мире? Пол Боутин (Paul Boutin) из журнала Wired Magazine пишет: Бездомный и сломленный духом в возрасте 53 лет Баргер не смог даже оплатить свой домен robotwisdom.com . Ему пришлось оставить свою квартиру в Чикаго. На данный момент он находится в поиске работы. Несколько недель спустя я обнаружил, что Джон оплатил домен и вернул к жизни свой блог robotwisdom.com. Я связался с ним и оказалось, что он переехал в Мемфис, но так и не работает, живя менее, чем на 1 доллар в день. Чуть позже он мне прислал письмо, в котором написал: Придумал термин "блог", но не заработал ни копейки.

9. Сюрприз! Создателей YouTube было трое.

До появления YouTube был … сайт знакомств и назывался он “Tune In Hook Up”. В какой то мере это была первая версия YouTube, которая полностью провалилась. Тот YouTube, который мы все сейчас знаем и любим, начался с Чеда Харлея (Chad Hurley), Стива Чена (Steve Chen) и Джаведа Карима (Jawed Karim). Они захотели разместить на сайте видео с их вечеринки только лишь из за того, что клипы были слишком большие для отправки по e-mail. Разместить видео в Интернете было тоже непросто – нужно было определиться с форматом видео. Эта троица создала YouTube в 2005, и не успел пройти год, как число размещений видео пользователями в день достигло 70-ти тысяч. YouTube стал самым быстроразвивающимся проектом за всю историю Интернета. Установлено, что в 2007 году YouTube требовал ширину канала больше, чем весь интернет в 2000-м году! Харлей и Чейн продали ресурс компании Google за немыслимые 1 ,65 млрд. долларов. А что же случилось с Джаведом? Он покинул команду с целью получения высшего образования до сделки с Google. Однако, он не остался с пустыми руками. От продажи YouTube Джавед Карим получил 64 млн. долларов. Первое видео было загружено на YouTube 23-го апреля в 20.27. На нём заснят сам Джавед, гуляющий по зоопарку Сан Диего (San Diego Zoo).

1 0. Подъем социальных сетей

Веб – огромная социальная сеть. Ещё до её появления существовали сети, которые позволяли людям общаться и сотрудничать. Термин “социальная сеть” появился после того, как было подсчитано, что в 2005-м году число просмотров страниц MySpace превысило число просмотров Google. До MySpace существовали Classmates.com (прим. переводчика: знакомое название? Вот откуда создатели vr-online | май 201 0


55

Без рамки Одноклассников.ру спёрли название), запущенные ещё в 1 995-м, и SixDegrees.com (запущен в 1 997, закрыт в 2001 ). На данный момент самыми успешными являются ресурсы: Friendster, MySpace, Orkut, LinkedIn и Facebook. А на сколько же они успешны? MySpace был продан Rupert Murdoch's News Corporation за 580 млн. долларов, а Facebook оценивается миллиардами долларов. Существую соцсети любой направленности: для любителей кино, онлайн игр, аниме, книг и пр. Достаточно интересной подсетью соцсетей являются новостные русурсы такие как: Digg, reddit и Mixx. Они позволяют создавать контент самим пользователям. Посетители выкладывают интересный по их мнению материал и голосуют за чужие новости. В результате контент размещается по системе рейтинга: самые популярные и понравившиеся поcты находятся в начале новостной ленты.

vr-online | май 201 0


Автор: paveldev E-mail: paveldev2k@gmail.com

56

Без рамки

Слон и Моська Смотрим на Oracle и MySQL

Информация ставится главным оружием в нынешнем мире. Информационные войны уже захлестнули нас с головой (например – «война» с Грузией в 2008 году). Информации становится все больше и больше, а ее необходимо где-то сохранять. Для этого придумывали различные технологии, самыми успешными их них сейчас являются базы данных, а управляют ими Системы Управления Базами Данных (СУБД).

Базы данных и СУБД также развивались. Сначала были иерархические базы данных (модели), затем сетевые. В 1 970 году британский ученый Эдгар Кодд выпустил свою работу, посвященную реляционному способу хранения данных – с этого момента начинается эпоха Реляционных СУБД. С семидесятых годов до наших дней было выпущено множество различных СУБД. Все они, в свои времена, пользовались большим спросом. Но сейчас – на рынке малых, средних и промышленных систем, лидирует очень известная корпорация – Oracle. Ей принадлежит две популярных СУБД: ORACLE и MySQL. Сейчас я предлагаю попытаться (как это получится - посмотрим) – сравнить эти две системы. Надо сказать, что сравнивать две такие разные СУБД довольно тяжело, так как они принадлежат к разным областям применения. Это (условно) как сравнивать велосипед и грузовик – оба могут ездить, на обоих надо учиться ездить. Но все равно попробуем провести некоторое сравнение. 1 . Начнем с истории и возраста данных СУБД. ORACLE изначально разрабатывалась одноименной компанией. Первая версия была выпущена в 1 979 году (надо отметить один занимательный факт – «первая» версия имела номер два (2), это был маркетинговый ход руководства компании). MySQL сначала разрабатывалась компанией MySQL AB, которую в 2008 году купила Sun Microsystems. Первая версия данной СУБД появилась в 1 995 году (внутренняя). 2. Принципы разработки. MySQL изначально разрабатывал коллектив удаленных сотрудников – около семидесяти процентов из 400 работали из собственного дома. ORACLE разрабатываю в офисах. 3. Условия распространения: MySQL распространяется двумя путями. Первый – по лицензии GPL. По данной лицензии получается, что любой программный продукт, включающий в себя исходные коды MySQL – также должен распространятся под лицензией GPL. Отсюда вытекает второй путь распространений – по коммерческой лицензии. ORACLE изначально разрабатывалась как корпоративная СУБД, поэтому логично, что она платная. Распространяется четыре основные редакции и две дополнительные. Первые четыре – полностью платные, пятая – предназначена для мобильных и встраиваемых устройств, а шестая (называется Express Edition) распространяется бесплатно, но имеет урезанный функционал. 4. Особенности. Глубоко в техническую реализацию данных СУБД лезть не будем. До версии 3.23 у MySQL максимальные размеры таблиц могли равняться четырем гигабайтам. С версии 3.23 – уже до восьми миллионов терабайт. Начиная с пятой версии MySQL поддерживает хранимые процедуры и функции, обработчики ошибок, курсоры, триггеры, представления (не знаю, как без этого сделать нормальную промышленную систему). Чтобы установить себе на компьютер MySQL можно скачать либо исходные коды, либо готовый исполняемый модуль для вашей ОС. В MySQL используется немного «подрезанный» стандартный SQL. MySQL поддерживает очень большой список платформ. Надо сказать, что почти все хостеры предоставляют хостинг вместе с MySQL – поэтому она и является такой популярной. ORACLE поддерживает все вышеописанные функции, но в ней есть еще ряд особенных функций: объектно-ориентированные свойства, автономные транзакции, последовательности, пакеты, аналитические функции. Для работы можно использовать как стандартный SQL, так и язык программирования PL/SQL – в него добавлено множество vr-online | май 201 0


57

Без рамки дополнительных функций, упрощающих работу программиста. Кроме того, последняя на данный момент версия СУБД ORACLE 11 g – это первая в мире база данных, специально разработанная для работы в сетях распределенных вычислений Grid. ORACLE, также как и MySQL – поддерживает очень много различных платформ. 5. Удобство работы с СУБД. MySQL можно скачать вместе с веб-сервером и интерпретатором PHP в пакете Denwer (или, например – TopServer), затем достаточно установить – и все будет работать. Лично я пользовался для администрирования и запуска SQL-кода средством phpMyAdmin. Все очень просто и легко. Создавать, изменять и удалять объекты можно с помощью кликов мышью. Для начинающего пользователя данная система – идеальна (говорю сейчас от имени начинающего пользователя). По умолчанию пользователь имеет имя root и пустой пароль. Поэтому обязательно надо создать нового пользователя и задать ему необходимые привилегии и пароль. Все настройки осуществляются базе mysql. Чтобы установить ORACLE – придется немного повозиться, но этот процесс все же довольно прост. Для работы с СУБД я использую PL/SQL Developer – это отдельная программа, которую необходимо устанавливать. Там тоже бОльшая часть функций доступна по щелчку, но надо знать – где что лежит. Зато потом, когда все будет изучено открываются огромные возможности по созданию, редактированию и удалению всех объектов базы данных. По умолчанию, администратор СУБД имеет логин и пароль MANAGER. После входа также надо создать своего пользователя. В плане пользования – MySQL выигрывает, так как она очень проста, новичок сразу почти все сможет сделать. Для работы с ORACLE надо много учиться. 6. Тестовое сравнение. Данный тест производился не мной, но я с ним полностью согласен. Тест проводился на одной машине, действия были одни и те же. Создано в каждой СУБД по одной таблице объемом 8452525 строк. Был написан запрос, проверяющий четыре условия – и по этим условиям формировавший новую таблицу. В сформировавшейся таблице будет 978 строк. MySQL выполнила данный тест за 35 секунд. ORACLE – за 2 секунды. Что сказать … 7. Итог – мое субъективное мнение. Я еще не являюсь профессиональным пользователем СУБД ORACLE (поэтому не все знаю), но она мне все больше и больше нравится. Возможно, MySQL обрабатывает малые массивы данных (до 1 00 000 записей) даже и быстрее, чем ORACLE. Но я работаю уже почти год на предприятии, и работаю с таблицами, где хранится от 1 00 до 300 тысяч записей. А что будет, когда я полностью втянусь в процесс? Мое мнение такое – MySQL подходит для проектов, в которых будут обрабатываться малое количество информации (относительно конечно) и не будет большое число пользователей. ORACLE – для больших проектов. И еще хочется сказать что при работе с MySQL часто получается так, что один и тот же человека сочетает в себе качества системного администратора, администратора баз данных, разработчика структур данных и кодера. Лично мне этот подход очень не нравится, но MySQL сама провоцирует на это, так как там уже есть почти все, что нужно для реализации этих функций.

vr-online | май 201 0


Автор: aka_GRAD

58

Без рамки

Google Font API Первое знакомство

Сегодня у нас речь пойдет о такой новой фиче, как Font API от Google . 1 9 и 20 мая 201 0 в Сан-Франциско состоялась конференция разработчиков Google I/O. Темой конференции стала Google – Font Directory и Font API. По словам представителей Google, открытые шрифты принесут в web визуальное разнообразие и богатство.

Само собой, использование на web-странице Font API будет таким же простым, как и использование стандартных, так называемых шрифтов «web-safe», установленные на большинстве компьютеров. В настоящее время в Google Font Directory доступны 1 8 шрифтов, два из которых были разработаны для Android. Чтобы начать их юзать в своих проектах разработчикам достаточно добавить несколько строк HTML-кода. Поддержка CSS3 и стилей и HTML5 имеется (падающие тени (drop shadows), вращение (rotation)). Среди плюсов Google Font API особенно выделяются: - Шрифт скачивается с сервера Google. - CDN Google быстрее чем ваш сайт. - От повсеместного использования шрифты будут кэшироваться за счет того, что имеют одно расположение (сервер Google). Единственным видимым минусом Font API - это небольшое количество шрифтов. Хотя это даже не минус, а временная трудность. Количество доступных шрифтов будет со временем увеличиваться. Теории достаточно и перейдем сейчас к любимой практике. Давайте перейдет в каталог шрифтов и посмотрим что там такого хорошего. Здесь мы видим 1 8 различных шрифтов. Каждый шрифт имеет несколько вариантов. Когда вы выберите тот, который вам нравится, просто нажмите на него, чтобы увидеть дополнительные параметры. Допустим, выберем Lobster . Нажимаем на шрифте и переходим на страницу с описанием этого шрифта. Теперь ищем кнопку Get the code. Перед нами html код который нужно вставить в head страницы, а также пример css, как использовать новый шрифт. Существует два способа вставки шрифта на сайт. Через html и через css @import. Рассмотрим каждый в отдельности. 1 . Через HTML <link href='http://fonts.googleapis.com/css?family=IM+Fell+DW+Pica' type='text/css'>

rel='stylesheet'

2. Через @import

@import url(http://fonts.googleapis.com/css?family=IM+Fell+DW+Pica);

Все, подготовительные работы закончились, теперь сделаем небольшой пример с использованием этих шрифтов. <! DOCTYPE HTML PUBLIC "­//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'> <style> body { font­family: 'Lobster', serif; font­size: 48px; text­align: center; } </style> </head> <body> <h1>VR­Online.ru</h1>

vr-online | май 201 0


59

Без рамки </body> </html>

Результат на лицо:

Есть еще такая фича как Shadow (тень). Если вставить этот код, то можно сделать у текста тень. body { font­family: 'Tangerine', serif; font­size: 48px; text­shadow: 4px 4px 4px #aaa; }

Основную роль играет подчеркнутая строка остальное все тоже самое, что и в первом примере. Теперь изменим первый пример и посмотрим что получиться. <! DOCTYPE HTML PUBLIC "­//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'> <style> body { font­family: 'Lobster', serif; font­size: 48px; text­align: center; text­shadow: 4px 4px 4px #aaa; } </style> </head> <body> <h1>VR­Online.ru</h1> </body> </html>

The End

На сегодня хватит. Вы обратили внимание, насколько просты в использовании Google Font API. В отличие от существовавших до настоящего времени инструментов вам не нужно получать лицензию, которая прикрепляется к специально зарегистрированному доменному имени. Вы просто используете шрифты даже в обычном примере, у вас на локальном компьютере. vr-online | май 201 0


Автор: Козлов Антон aka Jimmy Jonezz Email: ant.pet.koz@gmail.com

60

Без рамки

Scribus

Визуальная верстка документов

Свободно распространяемые программы приобретают все большую популярность среди рядового пользователя. Наблюдается низменный рост интереса к свободным программным средствам и этот момент, лично меня, очень радует. На этой волне, я продолжаю свою серию публикаций и обзоров программных средств, а также технологий, которые являются неотъемлемой составляющей мира Open Source (смотри предыдущие выпуски журналов – прим. ред.).

На это раз в поле моего зрения попалась одна примечательная программа, которая способна облегчить работу, как начинающему, так и профессиональному верстальщику. Речь пойдет о программе под названием Scribus, — это приложение для визуальной вёрстки документов, которое доступно для большинства известных платформ: Linux/Unix/Mac OS X и Windows. Что самое немаловажное, Scribus распространяется на условиях GNU General Public License. Некоторые ставят ее на один уровень с такими гигантами, как Adobe InDesign и QuarkXPress, но это сравнение, лично для меня мало, что значит и представляет меньший интерес, т.к. каждая программа имеет свои плюсы и минусы, но вернемся к теме. Последней доступной версией, на сегодняшний день, является Scribus 1 .3.7 (ссылки для скачивания смотри во врезке к статье – прим. автора), которая уже успела обзавестись красивым оформлением и рядом дополнительных возможностей, о которых чуть ниже. Программа, полностью портирована на Qt4. Можно отметить, что большинство проектов создается с помощью этого средства разработки приложений, например: VLC, SMPlayer. Интерфейс программы, прост до безобразия: панель вставки объектов (текст, фигуры, линии, изображения и т.д.) именуемая Инструменты, PDF-инструменты, для создания интерактивных документов, Файл (создать, открыть, закрыть, экспорт, печать), Правка (копирование, вставка, отмена/возврат действия). Чуть ниже рабочего поля, несколько переключателей: навигатор по страницам, масштаб страницы, просмотр. Я хотел бы, сразу, развеять ваши сомнения относительно этой программы, пускай, если даже их нет – «Full Circle Magazine», электронный журнал полностью сверстанный с помощью Scribus. Многих пугает и отталкивает GUI интерфейс, большинства свободно распространяемых программ, но не это главное, ведь программа, как программа, интересна и нужна, благодаря своим возможностям, а не красивой оболочкой (хотя и наличие этого компонента тоже желательно – прим. автора). Большинству из нас, важен результат, получаемый с помощью того или иного инструмента. Вернемся к сути. Далее, я подробно остановлюсь на возможностях программы Scribus, чтобы более масштабно охватить все стороны этого инструмента (рассмотрим только самое важное, более подробная информация - на сайте разработчика – vr-online | май 201 0


61

Без рамки прим. автора): • Собственный формат документов (полностью документирован и основан на XML), полная поддержка шрифтов и текста в Unicode, шаблоны, слои, трансформация блоков, использование стилей с различными настройкам, поля, направляющие, настраиваемое прилипание к сетке. • Поддержка CMYK, встраивание ICC-профилей в PDF для аккуратного сохранения исходного цвета, создание цветоделений CMYK и RGB в PostScript. Поддержка большого количества возможностей PDF, включая интерактивные заполняемые формы, использование сценариев на JavaScript и Python. Поддержка PDF 1 .4, включая полупрозрачность, градиенты и 1 28-битное шифрование, полная совместимость с PDF/X-3 — стандартом ISO на PDF для печатной публикации. Scribus может преобразовывать все используемые шрифты в контуры PostScript, сохраняя возможность изменять текст. • Drag’n’Drop. Удобные инструменты и палитры для измерений, вращения и правки прочих свойств объектов. Поддержка TrueType, Type1 PostScript и OpenType шрифтов. Настраиваемые пользователем «горячие клавиши». Локализация интерфейса на русский. Настраиваемая расстановка переносов в текстах. Удобные инструменты рисования фигур: линия от руки, прямая, кривая Безье, эллипсы, многоугольники и.т.д. • Scribus может импортировать и экспортировать корректные документы SVG 1 .0 (Scalable Vector Graphics), включая текст по контуру, изображения и текст. Все данные документа Scribus транслируются в SVG, изображения при этом преобразовываются в формат PNG. Из перечисленного, хочу выделить, что мне нравится тот момент возможности «импорта» и «экспорта» документов SVG 1 .0. Имея это в виду, применение векторного редактора Inkscape более чем оправдано, а также Scribus легко находит «общий язык» с родным файлом векторного редактора Inkscape. Другой интересный момент – Scribus имеет достаточно мощный текстовый движок. Это помогает программе делать правильный выбор при расчёте переноса строк и более равномерно распределять текст, например абзац.

Если вы нуждаетесь в ставке формул (LaTex), графических объектов или, к примеру, нотной линейки, то все эти функции доступны. Отдельного слова заслуживает возможность использования стилей, что позволяет не только ставить символьные стили на один уровень с абзацными, но и наследовать их свойства от так называемых «родительских стилей». В Scribus управление стилями представлено в одном единственном диалоге, с помощью которого можно создавать, менять и клонировать стили, наследовать их, назначать символьным и абзацным стилям, стилям линий горячие клавиши. Scribus поддерживает следующие текстовые атрибуты на уровне символов: 1 . гарнитура; 2. кегль; 3. эффекты гарнитуры; 4. цвета заливки и обводки; 5. смещение относительно базовой линии; vr-online | май 201 0


62

Без рамки 6. горизонтальное и вертикальное масштабирование; 7. кернинг; 8. трекинг; 9. язык (для переносов); 1 0. имя родительского стиля. На уровне абзаца поддерживаются следующие атрибуты: 1 . интерлиньяж и его типы; 2. выключка; 3. интервал до и после; 4. левое и правое поля; 5. отступ первой строки; 6. параметры капители; 7. табуляция; 8. имя родительского стиля; Важной особенностью, быстрой, а главное, качественной верстки, является, возможность автоматизации самого процесса создания электронной публикации. Каждый верстальщик сталкивается с необходимостью частого использования одинаковых объектов, будь то логотипы, нумерация страниц, верхние или нижние колонтитулы, фоновые изображения, которые располагаются в одинаковых местах страниц, на протяжении всего документа. Надеюсь, вы понимаете, что каждый раз производить расстановку объектов вручную, довольно проблематично и неправильно (и это еще мягко сказано – прим. автора). Scribus, как любой другой редактор, работающий с текстом, позволит сократить эту рутинную работу, благодаря использованию/созданию мастер-страниц (шаблонов). Любой создаваемый шаблон, напоминает своего рода конструкцию, которая не может быть изменена в режиме обычной правки документа. По желанию или по необходимости, документ может содержать несколько мастер-страниц, которые будут являться неотъемлемой частью документа. Кстати о формах, хочу отметить, что управление формами выполнено в отдельном диалоге, который содержит в себе все саамы необходимые функции по управлению/изменению форм. Когда все содержится в одном «месте», со стороны выглядит очень просто и удобно. Щёлкнув правой кнопкой на форме и выбрав "Свойства" (Properties). В появившемся окне находится множество различных настроек, например: изменение внешнего вида, цветов, границ, прозрачности и т.п. Ну и конечно, самый лакомый кусок - если понадобится добавить штрих-коды в ваше издание или же ISBN-коды, то вы будете рады, узнав, что Scribus поддерживает подобные действия. Это приложение может автоматически сгенерировать 1 8 различных штрих-кодов, также имеется возможность редактировать полученный штрих-код: изменить цвет, текст и фон. Когда код будет готов, вы можете простым перетаскиванием разместить его в любой части своего документа. Пожалуй, на этом и остановимся. Как всегда, я описываю не все возможности и функции, лишь затронув часть из них, уверен, вам самим будет интересно узнать побольше. Остальное ты легко сможешь найти, если воспользуешься ссылками, что я специально приготовил к этой статье или задействовав поисковые сервисы. Ваши отзывы и предложения – «пища» для моих vr-online | май 201 0


63

Без рамки будущих изысканий и публикаций, поэтому, если у тебя появились мысли/вопросы/нарекания по поводу этой темы, не стесняйся, пиши мне или на форуме нашего сайта. В завершение, хочу отметить, что я не являюсь «рекламщиком» или каким-либо пиарагентом, который проводит скрытую рекламную акцию; тем более не ставлю своей целью навязывания вам, использовать те программные продукты, что я выношу на всеобщее обозрение. Популяризация свободно распространяемых программных средств, одна из тех целей, что я преследую. Официальный сайт: http://www.scribus.net/ Вики-страница (рус.): http://wiki.scribus.net Сообщество пользователей: http://www.linuxgraphics.ru/ Full Circle Magazine: http://fullcirclemagazine.org/

vr-online | май 201 0


64

Меня тошнит

Меня тошнит Выплескиваем негатив

Jimmy Jonezz: Хочу спросить Kastor: В этом месяце один мой данной

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

близкий родственник сильно заболел. Сейчас ему лучше и он уже у себя дома. Но тогда пришлось вызывать скорую и везти его в больницу. Ехать совсем не долго, но за это время я успел проклянуть все тех людей, которые занимают определенные должности в правительстве и откровенно кладут болт на граждан. Конечно, намного дешевле купить себе любимому джип с огромными колесами, чем залатать дыры на дорогах. Даже на маленькой скорости эту несчастную газельку трясло изрядно. Когда просто едешь в маршрутке, то уже не обращаешь на это внимание, но когда везешь больного человека, то просто хочется кричать. Но это, к сожалению, далеко не все проблемы. То, что у нас медицина «бесплатная» в кавычках знают уже все, многие стараются подготовиться к этому и располагать некой суммой или возможностями на такой случай. Но отсутствие простейшего лекарства в трех аптеках, расположенных на территории больницы, просто поражает. В два часа ночи не остается больше выбора, как искать лекарства в разных аптеках, потому что в каждой из них есть далеко не все. Va-Bank: Меня тошнит от того, как Вот вам и забота государства. начальство относится работе. Вот мы провайдеры. Сколько уже мы с напарником капаем на мозги ZeroXor: Единственное, от чего начальству, ну купите (точнее, от кого) меня тошнит, бесперебойник, купите…купите… пожалуй, - это одна категория Ну ведь же оно само должно людей, которых я называю понимать что он нужен. И ведь "нытики". Те, которые постоянно правы были. Ошибка электрика и плачутся и жалуются на "горькую 380В на вводе - нет половины судьбинушку". Я больше чем оборудования. И все равно уверен, что нужно просто хотя бы тянут…Нет до сих пор начать что-то делать - и жить уже бесперебойника. В другом здании станет легче. А уж если кто-то щелкнул пакетник. И нет определить верное направление и почтового сервера. Еле начать действовать именно в этом выклянчили для своих направлении - то жизнь вообще компьютеров UPSы. И меня просто станет прекрасной сказкой. даже не тошнит, а бесит такое отношение. И деньги же есть… wwwnet: В этом месяце героем

рубрики по праву становится Алексей Попов, так называемый создатель операционной системы Bolgenos, автор антивируса Попова и много прочего. В общем, в интернетах про него много уже написано, кто захочет, тот найдет. zahod5277: Давно уже меня тошнит от обыденности, однообразия, да вот в этом месяце отметка в моем тошнометре дошла до критической точки. Знаете, надоело. Каждый день одно и тоже, одно и тоже. Подьем, кодинг or рисование, прогулка, сон. И по этой причине, по причине надоевшего однообразия, порой не хочется ничем заниматься. Ни рисовать, ни программировать, ни гулять, хочется чего то, а вот чего? Наверняка многие, если не все, сталкивались с этим. Парашюта нет, как нет и высотки, моря как и акваланга тоже нет, про космос и корабль я вообще молчу. Как бы развеяться? Lord_of_fear: Болеть - плохо, а болеть в нашей стране - в два раза хуже. Глядя на нашу медицину, начинаешь действительно верить, что бесплатно ничего хорошего не бывает... Хотя, с чего это оно бесплатное? Мы платим налоги, поэтому слово "бесплатное" не подходит по определению. Причем достаточно неплохую часть зарплаты приходится на это дело отслюнявливать. Почему я об этом пишу? Сейчас я тебе поведаю эту офигенно душещипательную историю :) Значит, был я недавно на приеме у врача. Прием стоит 350р. Да и хрен с ними. По моему мнению, это еще даже сравнительно маленькая сумма, дающая возможность попасть на прием к врачу без геморного ожидания в очереди. Врач выслушал мою грустную историю и сказал, что vr-online | май 201 0


65

Меня тошнит мне нужно для начала сдать 2 анализа. Сдать их можно только платно. Пошёл в кассу, оказалось, что один анализ стоит 4000р., другой 1 0000р. Да они совсем офигели чтоли? Если заплачу, то останусь с голой жопой и пустым холодильником. Короче говоря, я полностью забил на анализ за 1 0k, а стоимость анализа за 4k удалось уменьшить вдвое благодаря хорошим знакомым. :) Пришёл на повторный прием. Врач посмотрела анализы и сказала, что не знает в чем причина и мне нужно попробовать попить таблетки суммарной стоимостью 5000 на весь 20-ти дневный курс. Типа может быть поможет. Если не поможет, то выпишет другое. Это что за развод такой? В рулетку играем чтоли? Я прям в шоке. Короче, забил на всё это дело. Обойдусь как нить без этих врачей :) Spider_NET: На протяжении месяца в моей голове появлялось множество идей для этой рубрике. К сожалению, написание текста я откладывал до последнего и в конце концов мысли были благополучно забыты. Генерить их как-то надо было, и я решил погулять по сети. "Авось увижу чтонибудь раздражающее". Первым делом зашел на Хабрахабр. На основании комментариев многих тамошних пользователей можно написать целую книгу с громким названием "Меня тошнит". Не подумайте, я не наезжаю на Хабролюдей. Вовсе нет! Мне просто непонятны мысли многих из них. Читаю пост. Вроде автор написал интересный материал, а в комментах его опустили по самые не хочу. При всем этом, объективными доводами не пахнет. Есть сила/карма можно прихлопнуть новичка. Подобные ситуации я встречал не раз, поэтому мнение об актуальности коментов Хабра у меня уже сложено. Но сейчас речь пойдет не об этом. Терпеть не могу тупые и бессмысленные государственные проекты в области IT! От этого не то, что тошнит, а хочется блевать!!! А если нечем это сделать, то два

пальца в рот по-дружески выручат. Вот реально, почему у нас в стране бабки тратятся на право и на лево? На фига нашим чиновникам портал за 6-7 млн. рублей? Где профессионалы, про которых нам рассказывают люди сверху? Или это специалисты решили строить информационный ресурс за такие бабки? Я даже не могу представить, что можно наворотить за такие деньги! Что ж, подождем – увидим! "Золотые" сайты - не единственная тупость. Я всегда знал, что у нас в стране многие вещи делаются для "галочки" и ничуть не сомневался, что в IT-области все будет точно также. Помнишь вроде бы реально классную идею о переводе российских школ на Linux? Я вот помню и хорошо помню суммы, которые были выделены на проект. Бабла тогда выделили нормально, а вот школ перешло мало. И это не из-за того, что на Linux сложно мигрировать. Просто проект поручили тем, кто в Linux вообще не фига не понимает. Иначе как можно было так запороть и спустить деньги? Финал этой истории меня вообще начинает поражать. Готовы? "Профессионалы" сверху решили внедрить электронные учебники. Все, как и полагается - выделены деньги, определены ответственные лица и выбрана платформа, на которой ebook'и будут работать. И что выбрали? Увы, не Linux, а Windows. Для чего тогда вообще было затевать миграцию в открытый стандарт? Хоть убейте, а не понимаю.

братец спят. Вдруг трах и вой сверла и стены и потолок начали ходить ходуном под их ударами сверла и молотка. Кретины, в какое время ремонт проводить в квартире!!!!! Не могли днем ремонт сделать? Оказывается, они были заняты тем, посидели в садике и пили пиво весь день. Это называется работа?...... Еще одно напоследок. Матрасы вывешивают с утра и выбивают пыль. Это нормально.... А вот гдето 1 2 часов ночи мы слышим, как на восьмом этаже выбивают пыль из матраса...

Zanuda25: Меня тошнит от деревенщины, понаехавшей в столицу. Вечно они выбрасывают из окон многоэтажных домов пакеты с мусором, хотя мусорные баки от домов все рукой подать. Создается такое ощущение, что у нас не город, а деревня. Вот-вот подойдут коровы и свиньи, и начнут подбирать съедобный мусор. На днях, вернее, ночью, где-то полтретьего. Сижу за компьютером, пью чай с медом (лечусь от кашля, удушаюшего меня), все мои предки и младший vr-online | май 201 0


Автор: Антон Козлов aka Jimmy Jonezz Email: ant.pet.koz@gmail.com

66

Креатиff

Inkscape

Обои для рабочего стола. Часть 2

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

Начнем с того, что попробуем создать фон, который можно провести двумя способами, либо изменить цвет холста (воспользовавшись командой «Свойства документа» или комбинацией клавиш - Shift + Ctrl + «D» - прим. автора), либо создать прямоугольник с нужной нам заливкой и поместить его назад (клавишa “End”). Воспользуемся вторым способом. Создание прямоугольника возможно с использованием соответствующего инструмента. Желательно соблюдать правильное соотношение сторон, хотя и в любой момент мы можем масштабировать объекты без потери качества, но в связи, с разной размерностью и разрешением мониторов, может выявляться некоторое искажение вашего рисунка. Например: рисунок, который имеет ширину 40 и высоту 30 (4:3) будет экспортирован правильно для любого 4:3 формата монитора; рисунок с размерами 50x30 не будет. Установим цвет фона прямоугольника, серым цветом, щелкнув на нужном образце в цветовой палитре в нижней части экрана). В Inkscape есть огромное количество операций позволяющих нам, создать линии в стиле фанк. Первое, что я предлагаю функцию Интерполяции. Для начала проведем некоторые подготовительные действия: В Inkscape есть огромное количество операций позволяющих нам, создать линии в стиле фанк. Первое, что я предлагаю функцию Интерполяции. Для начала проведем некоторые подготовительные действия: · Выбираем инструмент , с помощью него мы выберем тот контур, что создавали ранее. · Проводим операцию дублирования: «Правка» - «Дублировать» или клавиши Ctrl + D. · Нажимаем на дублированный объект (контур) до появления маркеров (двойной щелчок). · Поворачиваем его, примерно на - 20 градусов. Надеюсь, про строку состояния вы не забыли, т.к. информативность нам не помешает, при выполнении данной операции. · Установим цвет обводки для поворачиваемого контура: удерживая «Shift» и нажимаем на белый образец в цветовой палитре. · Установим цвет обводки для контура, который следует по форме сердца, на красный. Теперь, самое интересное, а именно, пришел момент воспользоваться функцией интерполяции. Для этого, нам нужно два контура – выделяем контур сердца и контур, который мы изменяли ранее – удерживаем клавишу Shift и нажимайте на необходимые контуры, чтобы добавить их в общее выделение. Открываем окошко Интерполяция («Эффекты» - «Создание из контура») и заполняем поля, по аналогии рисунка, что я привел ниже. Пункт интерполяции стиля, обеспечит плавный переход цвета, в том случае если цвет начального и конечного контура разные, этот способ сработает и для толщины контуров. Попробуйте поэкспериментировать с этой функцией, уверен, вы найдете в ней много интересного для себя, что можно применить в ваших будущих творениях. Объедините все объекты: сердце и интерполированные линии. Для этого выделите их и vr-online | май 201 0


67

Креатиff воспользуйтесь комбинацией клавиш: Ctrl + G. Сохраните вашу работу, и впредь я бы советовал «сохраняться» как можно чаще. Теперь, несколько слов по поводу выравнивания объектов на холсте. Эта функция поможет вам выравнивать объекты, а также правильно располагать их на рабочем холсте вашего проекта. Зная нехитрые премудрости этой команды, можно легко упорядочить сложные структуры объектов, тем самым, избавив себя от рутинной работы. Откройте окно «Выравнивание», нажав на кнопку , расположенную на панели инструментов (Shift + Ctrl + A). Убедитесь, что соблюдено выравнивание по центру, как по горизонтали, так и по вертикали. Это выравнивание должно происходить относительно вашего фона, в качестве которого задан серый прямоугольник. Поэтому, проводя действия выравнивания, обратите на это внимание. Следующим этапом будет создание нескольких сердец, но меньших по размеру. Выделяем главное сердце и производим его дублирование, дубликат моментально создается и находится в точности над оригиналом. Уменьшаем его в два раза, используя маркеры выделения, и, уменьшенный объект дублируем еще раз. Теперь поместите их чуть ниже основного сердца, расположив по бокам. Пример того, как это сделал я, ниже.

В начале этой статьи, я предупредил вас, что способ окраски фона, мы рассмотрим позже. Вот теперь и пришло время, когда на цвет и способ заливки, стоит обратить более пристальное внимание. Выделяем прямоугольник, и заполняем его красным цветом. Откройте диалог заливки и обводки (Shift + Ctrl + F). Используйте градиентное заполнение с помощью кнопки обозначающего градиент - линия с двумя маркерами на концах. Инструмент позволит, как установить цвет, так и определить местоположение, радиус и угол градиентной заливки. Менять градиент очень легко: выберите инструмент , нажмите на объект с градиентом, а затем используйте комбинацию клавиш Shift + R. Центр градиента будет обозначен квадратным маркером. Изменение угла и радиуса оставляю на ваше, самостоятельное изучение. Теперь украсим рисунок дополнительными элементами – добавим сердце и расположим его позади центральных объектов, при этом увеличив его и изменив прозрачность. Этап действий таков: · Используйте инструмент для выделения дополнительной формы сердца. · Установите цвет заливки на белый, а не используйте обводку. · Установите ползунок прозрачности, в заливке и обводке , около 1 5%. · Удерживая нажатыми, клавиши Shift + Ctrl, и с помощью маркеров выделения, равномерно увеличивайте объект. · Расположите его так, чтобы он был вторым, между фоном и главными центральными vr-online | май 201 0


68

Креатиff объектами. Воспользуйтесь клавишей End, для перемещения объекта на слой ниже и клавишей Up для перемещения на слой выше.

Результат наших с вами манипуляций, ниже. Добавим еще одно фоновое сердце. Сделайте дубликат объекта, над которым ранее проводились манипуляции и уменьшите его размер, примерно на 1 /3. Установите, ползунок прозрачности заливки и обводки , на 30%. Размывание около 5%. Переместите этот объект на слой выше, чтобы он был 3-им снизу. Обратите внимание на два маленьких сердечка, я бы посоветовал, их цвет, изменить на более теплый, но это опять же зависит от вашего желания и фантазии. Теперь несколько слов о возможности применения фильтров, которые помогут преобразить объекты, сделав их более привлекательными. Выбираем наше главное, центральное сердце, при этом, первоначально применив разгруппировку объектов, и используем фильтр: «Фильтры»>«Морфология»>«Параллельные Холла». Результат должен выглядеть следующим образом: Для фонового сердца используйте фильтр – Кубы. Я бы советовал использовать фильтры в конце вашей работы над проектом, т.к. их использование несколько замедляет работу программы Inkscape. Есть еще одна важная особенность данной программы – она позволяет не отображать фильтры («Правка»>»Режим отображения»>»Нет Фильтров»), но это никак не влияет на экспорт документа в «растровый» формат, т.к. используемые фильтры все равно будут применены, если конечно они были вами использованы. К данному уроку я приложил готовые обои для рабочего стола, в формате svg, вы можете свободно его открыть и ознакомиться с содержимым. Хочу добавить, что, используя данный редактор, мы легко можем создавать красочные иконки, чертежи и схемы, о чем обязательно поговорим в следующих статьях, следите за выпуском журнала. Уважаемы читатель, если ты заметил какие-либо неточности или у тебя возникли затруднения в освоении данной темы, а может ты хотел бы внести свои замечания и предложения, то не стесняйся, пиши нам – либо автору, либо на форум нашего сайта www.vr-online.ru, твои вопросы не заставят себя долго ждать. vr-online | май 201 0


Автор: Kastor Email: KastorDriver@gmail.com

69

Креатиff

Рассказы в стиле киберпанк Читая миры

Уже достаточно темно, наступает ночь как-никак. Улицу освещают несколько фонарей, расположенных возле автобусной остановки. Идет мелкий противный дождь. Несмотря на то, что сейчас лето и ночами очень тепло, дождь делает свое дело. Я не хочу промокнуть, мне неприятны капельки воды, попадающие за шиворот. Подымаю воротник своей летней курточки и в очередной раз поправляю рюкзак, висящий через плечо. В нем, как всегда, лежит мой верный ноутбук, и парочка других девайсов, без которых я даже из дома не выхожу. Я подхожу к остановке, на которой уже несколько людей ждут, вероятно, последний автобус. Вот женщина с пакетами. Наверное, задержалась допоздна на работе, после чего успела заскочить в супермаркет и купить продуктов. Теперь пытается приехать домой, к семье. Двое парней, по состоянию которых можно сказать, что они закончили гулянку и теперь так же хотят уехать отсюда по домам. Молодая девушка стоит в сторонке от всех и держит в руках маленький пакет. Она старается не обращать ни на кого внимания, а только выглядывает автобус. Но больше всего мое внимание привлек странный человек в плаще, стоящий позади всех. Его лицо мне не видно, он стоит в тени от дерева и свет фонаря не попадает на него. Он вызывает у меня волнение. Я подхожу к остановке и становлюсь в сторонке от всех, в прочем как все и делают, пока не приезжает автобус и не начинается толкучка. Жду автобус. Я понимаю, что все это время он следит за мной. Мое сердце начинает биться все быстрее. Не выдерживаю и медленно поворачиваю голову. В этот момент, боковым зрением я замечаю, что он поворачивается ко мне и его руки проскальзывают внутрь плаща. Дальше все происходит как в фильмах при замедленной съемке. Капли дождя почти висят в воздухе. Они медленно падают вниз и разбиваются об одежду людей и асфальт. Люди, стоящие на остановке, еле шевелятся. Их движения, словно в воде – заторможенные, вялые. Незнакомец распахивает свой плащ и с криком «Стоять! Полиция!», достает из-за пояса и направляет на меня… Я не разглядел, что именно. Может это был пистолет, а может всего лишь жетон. Но судя по тому, что он выбросил две руки, это и то, и другое. Волнение переросло в тревогу и мое внимание начала захватывать окружающая обстановка. Переулки, подъезды, крыши домов. За доли секунды я пытаюсь придумать свой будущий план побега. Словно напуганный кот, прижавшийся к земле от постороннего шороха, я немного согнул ноги и чуть выставил руки в стороны. Нет времени на размышления. Медлить нельзя. Схватив одной рукой лямку рюкзака и прижав ее покрепче к себе, я рванул в ближайший переулок… Дернувшись, я резко присел на диване, сбросив с себя простыню. Меня заспанного, еще во сне бросило в пот. Несколько секунд я просидел так, ничего не понимая. В комнату, сквозь шторы пробивается яркий, солнечный свет. На улице давно день. За окном слышно шум проезжающих по дороге автомобилей и пение птиц. Тут я начинаю понимать, что со мной все в порядке. За мной никто не гонится. Я не взламывал никакие сайты, не воровал базы данных и не хакал компьютеры NASA. Следовательно, мне не надо пускаться в бега и шарахаться каждого встречного. Это всего лишь глупый сон, приснившийся мне прошлым летом из-за моего одержимого увлечения хакерскими и киберпанковскими рассказами, за чтением которых я проводил ночи напролет. Что же это за рассказы такие, которые чуть не пустили мою крышу под откос? А вот я тебе сейчас и поведаю о них. Главное не злоупотребляй ими и читай дозировано, чтобы такая история не повторилась с тобой. Начну я с одной из самых классных, на мой взгляд, документальных книг о хакерском движении конца 80-х, в частности Австралии. «Компьютерное подполье. Истории о хакинге, безумии и одержимости», автор Сьюлет Дрейфус. Название книги очень точно отражает ее содержимое. Честно говоря, до ее прочтения я даже и не знал, что Австралия может похвастаться своим андерграундом. Оказалось, что все совсем не так. На вопрос, зачем вы этим занимаетесь, некоторые австралийские хакеры могут в шутку ответить: «А чем здесь еще заниматься круглый год?». Но это только шутка. Ведь не из-за скуки и вагона свободного времени, простой парень, на заработанные деньги, собирает у себя в спальне два мощных сервера, к каждому проводит по телефонной линии и размещает на них две самые популярные BBS Pacific Island и Zen. Эти две и еще некоторые BBS стали местом сбора и обмена информацией продвинутых хакеров, которые могли вступить в группу только по приглашению. Единственная телефонная компания Австралии того времени vr-online | май 201 0


70

Креатиff Telecom, выступающая в роли корпорации зла для большинства фрикеров. Немецкий чат Altos, в который все через тот же Telecom незаконным путем попадали австралийские хакеры, рейды, обыски и преследования. Знакомство с красивой девушкой из Швейцарии через компьютерные сети, личная встреча, любовь с первого взгляда и расставание. Это я сейчас вспоминаю захватывающую историю «Мастера параметров» (Par’a) – одного из хакеров. Все это жизнь загадочных людей, посвящающих себя изучению компьютерной техники и сетей. Многие соблюдали определенные правила и не вредили взломанным системам, некоторые использовали свои знания для наживи, и откровенно чихали на всех. Читая книгу, кажется, что это только хорошо написанный художественный рассказ. Но все это было на самом деле и поэтому оторваться от текста с каждой главой становится все сложнее. Скачать: http://www.book-free.net/publ/39-1 -0-291 Увлекаясь данной тематикой, просто невозможно пропустить мимо внимания такого человека, как Кевин Митник. Кто это такой и чем он прославился, я думаю, знает каждый второй. Невероятная тяга к знаниям сделали его в глазах государства и журналистов чуть ли не угрозой национальной безопасности. Начиная с мелких приколов над телефонными сетями и достигая невероятных способностей в социальной инженерии, он мог втираться в доверие к сотрудникам компаний, проникать в любую систему и ускользать от преследовавшего его ФБР. Одержимость доходила до того, что взламывая компьютерную сеть, сидя за университетской машиной, он мог даже не заметить подкравшегося сзади администратора, который мог спокойно стоять и смотреть чем он занимается. Первая часть книги «Хакеры» Хефнер Кэти и Маркофа Джона рассказывает о нем, Роско и остальных его товарищах, их взломах, отношениях между ними и неизбежными преследованиями и арестами. Приступая к чтению второй части книги, мы переносимся в Германию. Подростки, прогуливающие школу, носящие эрокезы и цепочки находят увлечение во взломе компьютерных сетей. Некоторые объединяются и образовывают известную группу Хаос. У некоторых созревает план заработка больших денег. Так Pengo и его товарищ пытаются продать агенту советской разведки некую информацию, которая бы позволила им вторгаться в компьютеры «заокеанских друзей». Шпионаж и взломы редко приводят к добру, в результате чего некоторые хакеры пускаются в бега, другие находят выход в наркотиках, третьи попадаются в лапы полиции и то и делают, что живут между допросами и судебными разбирательствами. Скачать: http://ifolder.ru/1 7840779 Тяжело, наверное, быть одному. Никому нельзя верить, ни на кого нельзя положиться, и уж точно нельзя назвать свое настоящее имя и перечислить список компьютерных систем, в которых ты побывал. Кроме того случая, когда ты общаешься с человеком прошедшим все это, понимающим тебя. Наверное, по этому многие хакеры поведали свои истории Кевину Митнику, который в итоге написал очень интересную книгу «Искусство вторжения». История группы молодых людей, которые сидя на полу в номере гостиницы ЛасВегаса придумали план, как разорить казино на круглую сумму. Математические и программерские способности, незаконно купленный и раскуроченный игровой автомат, а так же бессонные ночи способствовали достижению их цели. Одинокий хакер РобинГуд, путешествующий по стране, взламывает компьютерные сети и сообщает о недочетах безопасности администраторам системы. Никаких специальных программ, лишь браузер и логическое мышление. Возможность поставить себя на место владельца vr-online | май 201 0


71

Креатиff системы и подумать, как бы он обезопасил свою сеть, помогают ему проникать туда, где посторонним вход запрещен. А как тебе история о двух парнях, по плохому стечению обстоятельств оказавшихся в тюрьме, получающих доступ к всемирной сети прямо под строгим надзором охранников. Они не хотели потерять время, дожидаясь своего освобождения, поэтому исхитрялись, как могли, чтобы посредством Интернета получать информацию для самообразования. Автор книги рассказывает и про обратную сторону хакерского ремесла. Твоему вниманию предстанут несколько историй о людях, которые занимаются взломом на законных основаниях. Да, прикинь как круто! Тебе за это еще и деньги платят! Все это делается для того, чтобы обнаружить недостатки в системах безопасности до того, как до них доберется злоумышленник. Поверь, такие истории читать не менее интереснее, чем о реальных взломах. Скачать: http://ifolder.ru/1 7841 071 Я знаю, это далеко не все книги, которые рассказывают о гениях компьютерного мира. Тот же Кевин Митник выпустил свою книгу «Искусство обмана», до которой у меня руки так и не дошли пока. Но я хочу остановиться на документальной литературе и перейти к художественной. Хочешь знать, как живет, как думает и чем руководствуется настоящий хакер? Хочешь проникнуть в его жизнь и посмотреть на все собственными глазами? Тогда очень советую тебе книгу Житкова Андрея «Хакер». В ней описывается жизнь молодого парня. Причем жизнь не обычная, размеренная и нудная, а нестандартная с неожиданными поворотами, происшествиями и встречами. Наглый, самоуверенный, с блестящим умом и познаниями в хакерском деле он, вместе со своим знакомым, работает над взломом, который может обеспечить их на долгие годы безбедной жизни. Только вот со временем начинают погибать его знакомые, в доверие втираются незнакомые люди и жизнь идет совсем не так, как хотелось бы. Совсем не по намеченному плану. Скачать: http://ifolder.ru/1 78411 43 "История, которой не было, или "Хакнутые ВЫБОРЫ'99" от Лишутина Андрейя аКа (с) Leshy, так же смотрит на хакерские события от первого лица. Согласись, интересно ведь не только какие команды, эксплойты, программы использует хакер. Мне, например, всегда было интересно узнавать об их способе жизни, манерах, стиле. Ведь каждый из них это отдельная личность, а не просто один из немногих с биркой «хакер». Несколько десятков тысяч долларов, связи в разных организациях, организованность и сплоченная работа хакерского сообщества может свести на нет даже выборы в стране. Я понимаю, что аннотации писать мне может быть и не удается, но рассказ очень интересный и увлекательный. Скачать: http://ifolder.ru/1 7841 201 Настоящей книгой в стиле киберпанк я считаю книгу Саши Чубарьяна «Полный root». Да, это он был главным сценаристом фильма «На игре». Я этой книге посвятил два выходных, делая только небольшие перерывы на обед, туалет и сон. Можете говорить, что я нифига не шарю в компьютерной безопасности и абсолютно не компетентен в этом вопросе, но оторваться от текста я был не в силах. Это самый настоящий киберпанк. Когда кланы хакеров воюют друг с другом, когда каждый такой клан имеет свое боевое подразделение, то хакинг, из компьютерного увлечения или опасного для своей свободы вида деятельности, перетекает в опасный для жизни. Кстати, на счет свободы. Хакеров такого уровня, как Ринат, давно не считают просто взломщиками. Попадая в руки сетевой полиции, он запросто может оказаться в Райсе. Самой опасной тюрьме, куда попадают отпеты убийцы. Выжить там простому хакеру - значит родиться заново. Хотя не известно, что опаснее, Райса или свихнувшийся сетевик Джет. Напичканный имплантатами, он в силах справиться в одиночку с отрядом спецназа и отомстить за свое прошлое не одному хакеру. Скачать: http://ifolder.ru/1 7841 308 vr-online | май 201 0


72

Креатиff Если книга понравилась, обязательно читай ее продолжение «Точка не возврата». Сам я этого еще не сделал, так как только что узнал о ней, но меня уже распирает интерес. Скачать: http://ifolder.ru/1 7841 31 3 «Глубина, глубина я не твой. Отпусти меня глубина», - говорю я сам себе, когда уже за окном встает солнце, а я до сих пор не разорвал коннект с инетом. Если ты знаешь, от куда это выражение, то я уверен ты прочитал все эти три книги: «Лабиринт отражений», «Фальшивые зеркала» и «Прозрачные витражи» замечательного писателя Сергея Лукьяненко. Призрачный мир, ставший вторым домом для многих людей. Так называемая глубина, затягивающая всех, кто попал в нее. Люди могут создавать свои собственные миры, жить в виртуальных городах и даже работать в этом виртуальном пространстве. Здесь найдется место и программистам, и хакерам. Но бывают случаи, когда обычным пользователям просто не по силам совершить ту, или иную операцию. Будь то спасение заигравшегося подростка, который не может добраться до панели выхода из игры и вот-вот умрет в реальном мире, ведь просто так покинуть глубину невозможно. Или кража секретной информации о новом лекарстве от гриппа. Вот здесь и пригодятся невероятные способности людей, которых называют дайверами. В их силах покидать глубину, без каких либо панелей выхода или таймеров, в их силах совершать то, что другим не подвластно. Несмотря на то, что выложенная книга в обычном текстовике (в другом формате не нашел), все равно советую скачать. Ведь главное не обложка, а содержание. Скачать: http://ifolder.ru/1 7841 393 Вот ты просиживаешь большую часть времени за компьютером, пишешь новые программы, настраиваешь различные сервера, и жизнь тебе кажется прекрасной. Большего и не надо. А что бы ты делал, если бы, не дай Бог, конечно, случилась катастрофа. Чтобы сделал настоящий it-шник? Правильно, он бы продолжал заниматься своим делом. Хватит крутить пальцем у виска, я не сбрендил. Как бы смешно это не звучало, но рассказ «Земля сисадминов» канадского писателя Кори Доктороу, написан очень серьезно. Когда планету охватывает неизвестный вирус, то единственными безопасными местами остаются датацентры крупных компаний, где используются установки для фильтрации воздуха серверных. Запершись с сотрудниками в огромном здании, как узнать масштабы катастрофы? Как кинуть кличь о помощи? Ведь наверняка все спасательные службы уже не в силах помочь тебе. В такой ситуации, как никогда, важную роль сыграет Интернет, объединяющий такие же дата-центры по всей планете. Последняя связь с выжившими, это биты информации текущие по всемирной сети, которую жизненно важно поддерживать в рабочем состоянии. В такой момент, у руля человечества действительно могут оказаться сисадмины. Читать: http://www.computerra.ru/lib/354693/ Книг и рассказов про хакеров мы рассмотрели не мало. А почему никто еще не сделал комикс на эту тему? А почему не сделал, есть и такой. Александр Еремин выпустил в свет комикс «Hacker», который достоин внимания поклонников киберпанка. Сюжет достаточно интересен: будущее, новые технологии и имплантаты позволяют людям непосредственно подключаться к всемирной сети. Но неспроста могущественная корпорация пытается как можно сильнее внедрить свои имплантаты людям. То, что скрывается за этим, вынуждает хакера втянуться в неравную схватку с корпорацией, вступать в перестрелки с вооруженными отрядами и использовать все свои связи в подполье. Читать такой комикс очень необычно. Он, наверное, первый в своем роде. Скачать: http://ifolder.ru/1 7848454 Кто такой mindw0rk, думаю, знает каждый. Он не только брал интервью у интересных людей для журнала «Хакер», но и писал свои повести и рассказы в стиле киберпанк. И это у него получалось на пять с кучей плюсов, до того все круто. Чего только стоят рассказы «Хаос», «Загадки Нострадамуса», «Всего через несколько секунд…», «Месть Denny» и другие. Перечислять все рассказы, что выложены в архиве, долго. Намного быстрее перечислить vr-online | май 201 0


73

Креатиff те, которые мне не очень понравились, но и этого я делать не буду. Скачать: http://ifolder.ru/1 7841 535 Прочитав его рассказы, некоторые говорят, что местами он даже ничем не уступает Лукьяненко. Суперские рассказы от Niro, такие как «Гражданская казнь», «Овердрайв», «Четвертая передача» и множество других на хакерскую тематику так же полностью поглощают меня. Интересные сюжеты, красивое описание событий, все это не может оставить равнодушным любителя киберпанковских рассказов. Заходим, выбираем любой и читаем: http://www.nixp.ru/niro/ А потом возвращаемся за следующим. Ох, как я много написал. Подымая такую тематику, я просто не мог не упомянуть два рассказа, с которых и началось это мое увлечение. Это «BloodyHart» и «DarkHorror», которые я скачал в далеком 2006 году с проекта VR-ONLINE. Автором второго рассказа является Михаил Корниенко. К сожалению, я не знаю, кто написал первый рассказ, но мне кажется, что он тоже дело рук и пера Михаила. Классные рассказы, в которых группа молодых ребят борется против могущества корпораций и государственных структур. Как раз то, что надо! Скачать «BloodyHart»: http://ifolder.ru/1 7841 560 Скачать «DarkHorror»: http://ifolder.ru/1 7841 561 Если ты дошел до этого места, то либо ты просто перелистал в конец мою статью, либо дочитал досюда и так же интересуешься данной темой. В мой обзор попали далеко не все публикации в стиле киберпанк, а только те, которые я прочитал, и которые мне очень понравились. Если какая либо ссылка окажется нерабочей, смело пиши мне письмо. Я вышлю тебе на email архив с интересующей тебя книгой. Только на письмо не забудь наклеить марку =)

vr-online | май 201 0


Автор: Neon_Kaligula http://neonka.info

74

Креатиff

Песнь легиона 2. часть 1 Время номер два. "Утро" 06:00, 1 8 часов назад

"Утром, когда ты решишь, что проснулся, убедись, что это не сон." Солнце понемногу всходило, народ поднимался из постелей, начинал свои дела. Здесь на пересечении двух дорог стоял небольшой магазинчик, открытый 24 часа в сутки. Три продавщицы стояли у прилавков: одна у мясных продуктов, другая у вино-водочных изделий, а третья на выходе продавала всё по мелочи. Он зашёл внутрь и приобрёл пакетик чипсов, дав сторублёвую купюру. - Эй! Да это же фальшивка! - крикнул он, разглядывая сдачу на просвет. - Что вы мне даёте?! Две оставшиеся продавщицы заинтересовались криком на кассе, подошли посмотреть. Первым прыжком он очутился на прилавке, там же сразу нанёс смертельный удар ногой продавщице в висок. Номер восемьдесят. Вторая упала под тяжестью навалившегося на неё трупа. Оставшуюся стоять продавщицу он сшиб ударом кулака, после чего схватил кассовый аппарат и обрушил его на её грудь. Номер восемьдесят один. Живая женщина лежала между двумя трупами. Он достал кастет. "Я не люблю людей, это я уже говорил. Но ещё больше я не люблю живых и наглых людей." Первым ударом была сломана челюсть, вторым - плечо, третий удар пришёлся в висок. Череп прогнулся внутрь, ухо перекосилось. Номер восемьдесят два. "Я люблю дождь. Когда он льёт вот так, смывая следы, позволяя умереть самым выносливым, которые смогут выйти на улицы." Он взял с прилавка косметику, клей, скотч и ножницы. Также он позаимствовал некоторое количество волос у мёртвых женщин. Через пять минут у него появились усы, бородка, на глазах появились облегающие спортивные очки. Также изменились некоторые черты лица, но только визуально: удлинился подбородок, округлились щёки "Не следует позволять им знать меня в лицо, ни к чему им это. Это уже будет не волк против волка, а стадо бизонов против волка в ущелье." В полусотне метров отсюда вдоль дороги пристроилась пиццерия, они как раз открывались. Работники ещё не пришли полностью. Хоть пиццерия и работала по ночам, но то была замедленная работа с небольшим числом работников. Между столами ходила девушка лет двадцати, по виду студентка. За стойкой сидел на стуле её ровесник. Он спокойно прошёл к стойке и начал изучать расценки. Девушка от нечего делать подошла. - Что интересует, спрашивайте. - Спасибо, я сам посмотрю. - Я не прошу смотреть, я прошу спрашивать. "Думаю, никто не любит, когда ему незнакомцы указывают, как жить." Он молча повернулся к ней спиной. В таких заведениях не должно быть камер наблюдения. Любимая короткая труба до сих пор висела под плащом, надёжно скрываясь от посторонних глаз. Резким движением он развернулся справа налево, нанося ей апперкот точно в челюсть. Девушка устояла, но сильно выгнулась назад. Раздробленные зубы вылетели вместе с окровавленной слюной. Не долго думая, почти не видя её, он наугад махнул трубой. Удар пришёлся по лбу. Девушка развернулась и упала. Номер восемьдесят три. Парень быстро среагировал, перелетев через стойку как кенгуру. Ты хочешь этого да? vr-online | май 201 0


75

Креатиff Человек, который сам ищет смерть, стоял перед ним. Легион отбросил трубу и ударил его по ногам. Тот зашатался и упал. Легион бросился на него головой, спрятав руки за спиной. Тот ухватил его за голову обеими руками и закричал. "Буш - нацист!" Легион молча прогнулся, голову вверх, плечи вниз, и дотянулся до его головы. Разведка боем и последовал удар правой рукой слева направо, ломающий кадык. Юноша мгновенно обмяк и закашлял, кровь пошла горлом. Он пытался встать, перевернуться на живот, но на нём сидел сильный мужчина в плаще. Прицелившись, он нанёс ему серию ударов в височные доли. Громкий хрип вырвался из разбитого горла жертвы.

Номер восемьдесят четыре.

Сразу за стойкой была дверь в подсобку и туалет. "Дело в том, что сейчас я доминирую над всеми жертвами лишь тем, что я подготовлен и не жду смерти для себя. Я не знаю ничего про своих жертв, я их не выбираю, и вижу их впервые. А когда они будут знать меня в лицо, на их стороне будут почти все козыри: они выяснят мою тактику, мою цель, они будут доминировать численностью и в силовом отношении. У них будет всё, и они меня будут гнать... Хотя, это даже интересно. Хе-хе, бороться против всех одновременно я пока не готов, но стоит попробовать. Посмотрим кто кого." Кто-то из политиков призывал мочить в сортире. В сортире как раз кто-то сидел на толчке. Видимо, человек слышал крики, ибо попытался задрать ноги и не светиться, но на полу стоял кожаный кейс. - Эй! - окрикнули его сзади. - Повернись. В проёме дверей сортира стоял человек в пиджаке и с пистолетом в руках. Легион не двигался. Попытка выиграть? Он медленно поднял руки и начал медленно разворачиваться. Молча, не меняя выражение лица. Краем глаза он мог одновременно видеть человека с пистолетом и дверь кабинки. Прошло несколько секунд, и кабинка открылась. Быстро пригнувшись, он кинул в человека с оружием моток изоленты, который держал в руках и бросился на выходящего из кабинки. Всё произошло мгновенно, раздался выстрел. Пуля попала в дверь, никого не задев. Человек у кабинки хватал воздух ртом, словно рыба, у него из груди торчала рукоять ножа. Номер восемьдесят пять. Легион держал на прицеле второго. - Положи пистолет, - скомандовал он, - и я тоже положу. Глаза противника бегали. Одновременно они стали класть пистолеты, как вдруг Легион одним движением руки зашвырнул пистолет жертве в голову. Жертва упала. Он напрыгнул на него и, смеясь, вырезал ему улыбку от уха до уха. Номер восемьдесят шесть. На столе позади стойки, там, где готовилась пицца и прочая еда, лежал набор кухонных приборов, в том числе несколько ножей. Огромный устрашающего вида тесак для рубки мяса он повесил себе на пояс. Погода на улице ухудшалась - усилился ветер, стал более порывистым и холодным. Далее по дороге была автобусная остановка и подземный переход. Он ощутил во рту привкус блевотины, свежей блевотины. Так бывало иногда, когда он по тем или иным причинам вынужден был спать днём. Сон продолжался несколько часов, он просыпался с этим привкусом во рту, не особо высыпаясь. На остановке в это время не было людей, зато они были в переходе. Некоторые продавцы понемногу открывали свои палатки. Он подошёл к первому, расставляющему продукты на витрине, и сунул ему нож под лопатку, делая надрез справа налево. Кровь почти не шла. Молча и бездвижно они стояли так секунд десять, пока человек не свалился. Номер восемьдесят семь. Всё это время он видел ещё одного продавца, который выглядывал из почти закрытой двери. Двумя прыжками он добрался до точки, открыл левой рукой дверь, а правой с vr-online | май 201 0


76

Креатиff размаху всадил тесак ему в плечо. Тесак прошёл как меч, чуть ли не отрубая руку вместе с плечом. Номер восемьдесят восемь. "При работе с тесаками главное - вкладывать в удар всю силу, задействовать всю руку от плеча до запястья." Он не стал переходить на другую сторону, там было мало построек, они примыкали к лесу. Вместо этого он вернулся и пошёл к кирпичному дому, обходя его справа. Тут раскинулся маленький оазис, лесок, по которому любили гулять дети. В последнее время подступы к нему стали атаковать ракушки, машины стали прокладывать дороги. Небритый мужик в куртке мыл свою машину на полянке. - Зачем вы это делаете? - Спросили его. - Тут растут деревья, тут гуляют дети, а вы моете машину, ставите гаражи. И мне кажется, что эти масляные тряпки неподалёку ваших рук дело. "Я знаю два способа нанесения рубящих ударов. Первый подразумевает под собой превращение всего тела в камень, тело будет стоять в то время как рука будет бить. Второй способ полностью отличен от первого: если бить правой, то следует встать к цели левой рукой, а потом резко разворачиваться, нанося удар, можно даже оторваться от земли." Он не стал дожидаться ответа, ударив его сзади по коленям. Схватив его цепко за волосы, он поволок его к дверям машины. Двери были открыты. Удар! Дверь скрипнула и задрожала. Ещё удар! Небритый человек засипел, послышался хруст. Он сам не понял, как снова оказался в дверном проёме, как дверь снова ударила его. Номер восемьдесят девять. Легион вынул из багажника монтировку и ломик, ломик он сунул себе в рюкзак так, что его можно было легко достать. С размаху пробив ножом трахею, он затолкал туда монтировку сантиметров на десять-пятнадцать и, прижав тело ногой, отломал её. Голова безвольно болталась на нескольких неоторванных мышцах. Он завёл машину; заводилась она неохотно, будто делая одолжение кому-то. Взревев мотором, он стартанул, резко перешёл на вторую, сразу на третью, выезжая между ракушек во двор. Здесь две женщины в возрасте и с зонтами выгуливали собак. Хлюпая по грязи, врубив дальний свет, он сшиб обоих разом, они даже не успели сообразить, что произошло. Номера девяносто и девяносто один. "Моя мать всегда любила ругаться с теми, кто выгуливал своих собак у нас под окнами. Жаль, что они тогда уходили безнаказанными." Через бордюр по пешеходной дороге он выехал на проезжую часть. Народ ездил вяло, здесь шла магистраль, соединяющая два города, плотно примыкающих друг к другу. В самих городах движение, может, и оживлённее, но на соединительных каналах его почти не было. Он выехал после поворота на перекрёсток, повернув под красный направо. Здесь шла двухполосная односторонняя дорога. "Давно подметил, что, несмотря на то, что всем нам говорили в детстве, при переходе дороги нужно смотреть в обе стороны, а при переходе вертеть головой. У нас много психов, которые ездят не по своим полосам." Он развернул машину на обе полосы боком, блокировав движение. Тут же появился тот, кому это было плохо. Так всегда бывает - как начнёшь делать нечто, тут же появляются недовольные, начинают советовать. Делают они это потому, что самим не хватило ума или смелости начать это, а теперь, когда всё началось, можно подмазаться и словить все лавры. Это был низенький лысый человечек в очках и на девятке. Он даже не вышел из машины, просто его шею сдавили ремнём безопасности и стали бить в грудь локтём. Он хватал руками воздух, потом сжался, как младенец в утробе, хрюкнул и обмяк.

Номер девяносто два. 07:00, 1 7 часов назад

"Прекрасно, когда два человека понимают друг друга, тогда они создадут коалицию. Хорошо, когда два человека не понимают друг друга, тогда у них есть повод подумать. Плохо, когда в дело вступает третий и последующие за ним, это в любом случае толпа." Справа шёл относительно новый белый дом, далее магазин и аптека в одном подъезде, снова жилые дома и стоянка. Лёгкой трусцой он бежал мимо них. vr-online | май 201 0


77

Креатиff "Не останавливаться! Не думать! Не рассуждать!" Около дверного проёма у второго подъезда под навесом стояла молодая мама с коляской. - Зачем вы гуляете в такую погоду? - Не знаю, просто вышла. Правой рукой он схватил её высоко за шею, а левой цепко ухватил кожу на шее, и одним резким движением оторвал сонную артерию. Она как-то беспомощно стала хватать руками шею, пыталась зажать рану, но слабела на глазах. Номер девяносто три. В коляске лежал сонный ребёнок, закутанный в тёплое одеяло. Аккуратно, чтобы не помять, он снял одеяло и взял ребёнка на руки. Тот негромко попискивал. - Нерентабельно, - с этими словами он чуть присел, подбросил младенца высоко в воздух и побежал далее. Младенец упал за его спиной, разбиваясь об асфальтированную дорожку. Номер девяносто четыре. "Если убивать каждую секунду топором насмерть одного человека, то, приняв, что они не будут плодиться, на Земле останется всего один человек через сто девяносто лет." Я помню чудное мгновенье - передо мной явилась стоянка. То была приватная стоянка для работников магазина. Ворота постоянно были открыты, но здесь всегда был сторож, и днём и ночью. У него был приёмник, но от скуки он периодически выходил из своего убежища. На этот раз всё произошло молча и быстро: от стены отделилась тень, как раз когда он выходил из будки на свежий воздух. Тень достала из кармана ломик-гвоздодёр. Ломик вошёл точно сзади в череп, протыкая его. Охранник мгновенно осел на пол. Тень уперлась в него ногой и вырвала ломик. Номер девяносто пять. Сторожевые собаки лаяли, но ничего более сделать не смогли. Тень ушла. Здесь через дворик и своеобразную детскую площадку какой-то человек в пиджаке и с чемоданом спешил на работу. По пути он забежал на помойку, что-то бросил туда, и стал раскрывать зонтик. "Главное - это давить до конца, не убирать руку, а вдавливать дальше." Щёлк, щёлк, зонтик хлюпнул и раскрылся в грибок. Раскрывая зонт, он выпустил из рук чемодан, тот упал с неприятным стуком. Почти в тот самый момент, когда он начал нагибаться, чтобы поднять чемодан с мокрой дороги, перед ним мелькнуло что-то. Он получил удар ногой в промежность, и в первый момент ничего не почувствовал. Так, по крайней мере, ему казалось. Но в следующую секунду боль пронзила его, такая нарастающая боль, заставившая его упасть на колени и выпустить из рук зонт. Лом воткнулся ему в самую макушку. Легион потянул на себя, используя его как рычаг, дёрнул, и переломил шею. Снова уперев болтающуюся голову к мусорному баку, прижав с другой стороны ногой, он соскоблил череп с лома. Номер девяносто шесть. Кто-то вскрикнул неподалёку. Он увидел юную особу в длинной юбке, которая стояла, прижав руки к груди, и кричала. С высокого старта он побежал на неё со спринтерской скоростью. Она долго стояла, пребывая в ступоре от ужаса. Когда же сознание вернулось к ней, она побежала, но было поздно. Лом вошёл между рёбер справа в спину. Она чувствовала, как он разрывает плоть, рвёт ткани внутри, как в пронзённое лёгкое льётся кровь, как лом поворачивается и идёт влево, а потом вправо и вниз. Она ощутила запах крови во рту, какая-то масса стала наползать на глаза. Номер девяносто семь. Убить всех. Тело было заброшено в помойный ящик, привалено сверху картонкой. Он вернулся на исходное направление, побежал дальше, пока не упёрся в охраняемую стоянку. Слева через дорогу был небольшой продуктовый магазин, он решил зайти в него. На подходе он столкнулся с человеком лет сорока, который выходил с непрозрачным пакетом в руке. Прошёл один шаг. В спину человека вошёл ломик, чуть пониже рёбер. Чуть погодя рядом в бок вошёл нож по рукоять, и стал двигаться, разрезая бок и живот. Человек дёрнулся и упал. Номер девяносто восемь. vr-online | май 201 0


78

Креатиff Две продавщицы в магазине, одна на входе вжалась стенку, хотела спрятаться. Им хорошо они видят, что происходит снаружи, а оттуда нельзя увидеть, что происходит в магазине. Это произошло быстро. Он нанёс ей удар локтём в нос, левой ударил в живот. Она загнулась. С размаху он вдолбил ломик ей в затылок, наклонил вперёд, выждал, а потом резко назад и вниз, голова хрустнула и оторвалась. Получилась такая тыковка на стержне. Номер девяносто девять. "Бездарности. Какое красивое и совершенно бессмысленное слово. Выдумали какой-то дар, будто кто-то чего-то даёт. Скажите проще - ленивые. А если не ленивые, значит, вы слишком тупые, раз не можете понять гениальности." Вторая продавщица стояла с пневматическим ружьём наперевес. Ей было страшно, руки её тихо тряслись. "Это иллюзия. На самом деле каждый человек боится, когда общается с другим. Всегда боится. Не боятся только идиоты." - Хочешь это? - Спросил он, поднимая вверх голову на ломике, и тут же отвернулся назад. Меня это всё достало! Я не хочу этого!!! - С этими словами он швырнул голову в неё. Она выронила ружьё, когда твёрдое липкое круглое тело коснулось её. Он подлетел к ней как ветер, нанося стремительные удары по голове. "Женщины плохо переносят удары по голове. Статистика говорит, что у них в среднем гораздо меньше околомозговой жидкости, чем у мужчин, поэтому плохая амортизация." Мордой об стол, об угол, да посильнее. Болевой шок. С ещё живой он решил снять лицо. Для этого он воткнул нож остриём ей в макушку, провёл две линии от макушки до ушей, и медленно, помогая ножом, стал отдирать кожу. На всякий случай укол в оба глаза, забираем ружьё.

Юбилейный сотый номер.

Перебегаем ещё одну дорогу, минуем красивые виды парка. Справа ещё один детский сад и жилые дома. Впереди близ торгового центра люди непонятной национальности разгружали грузовик. Ветер становился всё более порывистым, они надвигали кепки на глаза, стараясь спрятаться от дождя. Нехитрый удар по голове открытой дверью фуры, потом поднимаем ящик и роняем ему на голову. И не забываем прыгать. Номер сто один. Возвращаясь за порцией груза второй наткнулся на труп товарища. Тот лежал с разбитой головой, заваленной вывалившимися из разбитого ящика инструментами, не подавая признаков жизни. Ему в лицо смотрело дуло пневматического ружья. Негромкий хлопок. Номер сто два. Они лежали уже как братья в обнимку, как будто спали, такие спокойные у них были лица. Ни выстрел в голову, ни падение тяжёлых инструментов не сбили с них того измученного, но такого постоянно равнодушного выражения, с которым привыкли их видеть. К третьему он вышел сам. Пустой. И спокойный. Шёл не быстро и не медленно, а с нормальной скоростью. Поравнявшись с ним, он остановился и кашлянул. Человек тоже остановился. - Там ружьё. - С этими словами он резко пригнулся, обхватил человека за торс, и резко перебросил через себя. Тот даже не успел сообразить, что произошло, как оказался на полу, а сверху прямо промеж глаз ему вошёл ломик. Номер сто три. Кто-то был внутри, это факт. Не сами же они всё делали. Он отворил стеклянную дверь торгового центра и вошёл внутрь, держа ружьё за спиной. Тут у горы коробок и ящиков стоял длинноволосый человек, делающий пометки в тетради, а сбоку от него стояли две толстые женщины в зелёных халатах. Он приставил этому длинноволосому ствол в район, где позвоночник плавно переходил в череп, и выстрелил. Голова длинноволосого неестественно перекосилась, челюсть готова была отвалиться, он упал лицом в коробки. Номер сто четыре. Не долго думая, он нанёс два удара прикладом женщинам по голове, вырубая тем самым одну из них, и вводя в ступор вторую. Она явно ничего подобного не ожидала, это был эффект неожиданности, которым надо было пользоваться. vr-online | май 201 0


79

Креатиff "Нету свободы." Он перехватил ружьё поудобнее двумя руками, нанёс ещё один удар ей в живот. Она согнулась пополам, в это время он забежал сзади, и начал душить её. Разница в росте позволяла ему поднять её в воздух, лишая возможности бежать. Это была ошибка, нельзя поднимать человека в воздух, ибо у него будет возможность дёргаться. Правильнее - усадит его на пол, тогда он не сможет ни дотянуться до душителя, ни подняться, ни перевернуться. Но сейчас он позволил себе это, видя слабость жертвы. Номер сто пять. Ещё одна лежала без сознания на полу, распластавшись как куча дерьма. Он приставил ей нож серединой лезвия к горлу, прижал сверху кулаком и надавил. Нож плавно вошёл в горло примерно на треть, когда она мгновенно очнулась. Откуда-то в ней появилась огромная сила, она сумела оттолкнуть его и подняться на ноги. Правда, на этом и закончился всплеск энергии. Она покачнулась и упала. Номер сто шесть. Он снова вышел на улицу и побежал дворами, засаженными деревьями и кустарниками. Кто-то пытался даже сделать участки, растил на них какие-то овощи. Вряд ли кто-либо видел урожай с этих грядок, ибо его растаскивали ещё до всходов, но каждый год какаянибудь добрая толстая женщина обязательно копала и засаживала грядки. Несколько подростков спешили куда-то с портфелями. Точным броском он попал в одного из них ножом. Тот недолго мучался, просто повалился на землю и замер. Номер сто семь. Тут же последовал выстрел, такой негромкий и почти неотличимый от обычных городских звуков хлопок. Пуля попала одному из трёх всё ещё живых подростков в ногу. - Стоять! Не оборачиваться! Легли на землю, руки за голову. - командовал он, перезаряжая ружьё. Они остановились и замерли. Они боялись двигаться, даже повернуться и взглянуть на командующего боялись. Они стояли так минуту, ожидая продолжения. Сквозь тихий шелест дождя они слышали шаги, которые подбирались к ним. Раздался ещё хлопок. Тот парень, что стоял в середине как-то резко нагнулся, скрючился и упал на землю. Номер сто восемь. - Повторяю: лежать! Они легли на землю как подкошенные, просто упав, и закрыли руками головы. Так показывают в американских фильмах, когда берут преступников. Те падают лицом в землю, ноги вытянуты, руки за головой. Раздался хлопок, а вслед за ним удар. Номер сто девять. Последний живой лежал без движения. Он чувствовал, что сейчас умрёт. За его спиной лил дождь и стоял неведомый убийца. Секунда шла за секундой, но ничего не происходило. Раздался хлопок, наступила тьма. Номер сто десять.

08:00, 1 6 часов назад

Впереди за метровым ограждением была школьная спортивная площадка. "А вы верите в ангелов? Нет? Напрасно. Они в вас верят, не подведите их." Площадка представляла собой футбольное поле, оно же использовалось для бега на сто метров. Сбоку были металлические лестницы, тренажеры. Слева было две площадки для баскетбола, одну из которых разворотили чем-то тяжёлым. Там же была парочка лабиринтов, знаете, такие невысокие, сделанные из труб. Там как раз сидело два человека, такие в драных одеждах, капюшонах. Видимо, они были бритоголовыми, судя по красным нашивкам на рукавах. Через пару минут он был около них. Спокойно он встал около них лицом к ним, глядя под ноги. Так он стоял и безмолвствовал секунд пять, а потом развернулся. Тут же он дёрнулся назад, не глядя схватил ближайшего за шею и уронил его на торчащий из земли метровый обрез трубы. Номер сто одиннадцать. Второй рванулся на обидчика с ножом в руке, норовя проткнуть его. Ему не повезло, он упал, нож выпал из его руки. Пришло время умирать. Легион вспрыгнул ему на лопатки, придавливая всем весом, схватил обеими руками за голову и потянул её на себя. Потом, когда уже казалось, что более некуда её загибать, он отпустил её. Жертва расслабилась, намереваясь вырваться, как вдруг хватка вновь обрела былую силу. Он изо всех сил рванул голову на себя. Позвоночник мгновенно изломился, голова безвольно откинулась назад. Как яблоко на верёвочке. Номер сто двенадцать. Между школьным двором и дорогой расположился пруд с асфальтированной дорожкой vr-online | май 201 0


80

Креатиff вокруг. Зимой здесь были горки, а летом народ нарезал здесь километры бегом и шагом. Какой-то человек очень спешил, укрывшись зонтом. Так спешил, что не заметил фигуру в капюшоне, которая преградила ему путь. Обратил он на неё внимание, когда они столкнулись, когда острый нож вгрызался ему в горло, когда он падал, роняя свои вещи, когда пытался встать и бежать, но ничего не получалось. Его клонило в сон. Он устал очень быстро, прилёг отдохнуть и уснул. Номер сто тринадцать. Здесь, слева во дворах, стояли столь обыденные ракушки. Заспанный человек стоял внутри одной из них и зачем-то протирал и так чистую машину. Делать было нечего. Легион зашёл и двинул тому прикладом в висок. Получилось, что удар немного неточен был, в висок попал край приклада. Он-то и проделал надрез, он-то и проломил кости, он-то и повредил мозг. Человек откинулся назад, вцепился изо всех сил в тряпку, которую держал в руках, посмотрел на неё и упал. Номер сто четырнадцать. У него было ещё две пули в запасе, он не хотел их тратить просто так. "Государство обязывает нас платить. Вольно или невольно, но мы платим за всё, даже за то, что бесплатно. Телевизор, пусть вы его не смотрите, но вы за него платите. Это круговая порука, ни у кого нету выбора, нас просто заставляют." Углубляемся дальше в глубь дворов, тут есть большая площадка с зелёными насаждениями и всяческими постройками для детей. Есть карусель, есть песочница, есть самодельные ворота из трёх берёз. Сзади их подпирают основательные гаражи. Сейчас здесь никого нет, только пара бабулек сидят на скамейке. - А она когда выходит, я ей так и сказала, мол, нечего тут, ведь не будет никогда. По любому, всё, что здесь есть, это всё они, и никто другой. - Вы так считаете? - Спросил он, подходя и садясь на скамейку. - А они сами разве не из ваших же? Посмотрите туда, посмотрите себе под ноги, это же всё ваших рук дело! Старушки от неожиданности взглянули вниз. Он выбросил ружьё вперёд и достал ломик. В полусогнутом состоянии одной рукой он махнул ломиком, попадая одной из них чуть пониже шеи. Второй удар он нанёс двумя руками сверху вниз по голове.

Номер сто пятнадцать.

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

Номер сто шестнадцать.

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

семнадцать.

vr-online | май 201 0


81

Креатиff На минуту он зашёл в ванную и на кухню, вырвал там краны с корнем. Вода забила фонтаном. Со шкафов на него смотрела серая кошка. Дверь рядом была такого же типа. На этот раз с разбегу он вынес её внутрь. На глаза ему попалась ещё одна женщина, причём ещё более пожилого возраста. Совсем без оружия он бросился на неё. "Если на вас нападают или если вы нападаете, не затевайте драку. Вырубайте с одного удара." Точным ударом в челюсть он повалил её на пол, и тут же начал пинать по голове. Номер

сто восемнадцать.

"Это только в самом начале больно, а потом всё нормально. Боль и страх уходят, умираешь спокойно, будто сон." Но что-то было не так в этом месте. Всё указывало на то, что она была не одна, просто всё было так неудобно раскидано, так не прибрано, хотя сама она была одета очень неплохо. В комнате слева валялись две пары детских тапок. Так и есть - в этой же комнате в шкафу посреди одежды сидело два мальчика, видимо, внуки, и дрожали. "Я не оборачиваюсь, это бессмысленно. Если я обернусь, а сзади враг, то он нападёт. Если я обернусь, а враг неподалёку, я привлеку его внимание, он поймёт, что его обнаружили." Молниеносно он схватил одного из них за горло, вырвал из шкафа, и начал душить на весу. Тот не знал, что сделать, он слабо пытался раздвинуть руки вокруг шеи. Он боялся, поэтому уже через минуту он безвольно обмяк. Номер сто девятнадцать. Второй сидел в позе эмбриона, спрятав голову и закрыв глаза. Легион потрогал его пальцем. - Встань. Тот неохотно встал. Он дрожал, глаза его были всё ещё закрыты. Легион снова потрогал его, на что тот вдруг бросился ему на шею и попытался укусить. Легион мгновенно принял решение и упал на пол с таким расчётом, чтобы основной удар пришёлся на верхнюю часть тела мальчика. От мощного удара тот разжал руки. Этого хватило, чтобы Легион смог дотянуться и выдавить ему глаза. Прошла секунда, мальчик тёр руками пустые глазницы и катался по полу. Пара ударов ногами по голове, и он умер. Номер сто двадцать. Он стоял молча пару минут. Просто стоял и ничего не делал, даже не шелохнулся. Вокруг была тишина, ничто не нарушало его пребывания здесь. Он присел над трупом, достал нож и аккуратно сделал надрез на шее. Оттуда не фонтаном, но всё равно довольно сильно потекла кровь. Он смотрел на неё равнодушно полуприкрытыми глазами. Он прильнул губами к ране на шее и начал пить кровь. Это не было противно или невкусно, он просто понял, что проголодался. Кровь была немного вязковата, липла к зубам, такая с непонятным вкусом, чуть приторная. Пить её было удобно - она сама затекала в рот и прокатывалась внутрь по горлу. Странно, но вместе с чувством жажды уходило и чувство голода. Тёплая жидкость разливалась внутри него. Очень аккуратно он положил трупик на диван и вышел. За эти минуты вода из покоцаных кранов успела образовать приличную лужу. Ждём соседей снизу. На первом этаже стоял намокший от дождя человек. Выстрел сзади в голову заставил его забыть о дожде.

Номер сто двадцать один.

Оставался всего один патрон, он решил его сэкономить, по крайней мере на следующие десять минут, что ещё были до конца часа. Через шесть минут подъехала легковая машина, оттуда вышли два человека в спортивной одежде и с барсетками. Они вошли в подъезд. - Стоять, руки за голову, лицом к стене! - Была отчётливая команда. Оба замерли на месте; голос исходил из тёмной части подъезда, они вряд ли видели чего-нибудь. Один из них вдруг сделал резкий разворот и решил бежать. Раздался тихий хлопок, он упал.

Номер сто двадцать два.

vr-online | май 201 0


82

Креатиff - Повторяю, лицом к стене, руки за голову, - уже почти шёпотом сказал голос из темноты. "Я не люблю повторять. Я вообще не люблю, когда люди что-то вроде как не слышат или пропускают мимо ушей. Это неуважение к личности вообще. Это значит, что они ставят себя выше других. А это значит, что их нужно опустить обратно." Человек в спортивном костюме и с барсеткой стоял у стены, так и не выпуская барсетку. В тишине можно было слышать его тяжёлое дыхание, такое глубокое с перерывами и подёргиваниями. Оставалось ещё время, с минуты на минуту ожидался приезд группы, которую должны были вызвать соседи под квартирой смертников, но до этого времени нельзя было расслабляться, нельзя было сбрасывать темп. - Голову выше, - скомандовал он на ходу. На этот раз удушение было по правилам. Набросив удавку на шею и скрутив её сзади, он ударил жертву по ногам, одновременно таща её на себя. Раздавалось какое-то непонятное хрюканье. Человек не мог ничего сделать, он задыхался, к тому же был спиной к своему убийце. "Когда в старину практиковалось повешение, верёвка специально подбиралась такой толщины, чтобы сразу ломать позвоночник. Если подбиралось плохо, то человек просто болтался и неспешно задыхался."

Номер сто двадцать три.

Ну, что ж, продолжаем разговор.

vr-online | май 201 0


Автор: Андрей Агаларов ака ZeroXor

83

Психо

Невербальные знаки

Чем полезно умение управлять собственной невербаликой. Практическое занятие.

В одном из прошлых номеров VR мы уже разбирались с тем, что такое конгруэнтность и что нужно для того, чтобы быть конгруэнтным в общении с другими людьми. Какая от этого нам может быть польза – также смотрите в той же статье. Как мы уже усвоили, самое основное – врать, да не завираться, в этом случае можно без особых дополнительных навыков и приемов научиться показывать собеседнику свою расположенность и заинтересованность в общении с ним, а значит, получать то же самое в ответ. Сегодня же я хочу вернуться к этой теме и разобрать несколько тех самых “дополнительных приемов”, специально для тех случаев, когда приходится все-таки немного и завраться. Сразу хочу предупредить, что эти приемы не сработают на полную мощность, если использовать их, забыв о основном правиле: нужно верить в то, что говоришь (да, я снова напоминаю об этом!). Ну а чтобы было еще интересней, то сначала предлагаю разбирать невербальные сигналы, соответствующие какой-то эмоции, а уже затем – приемы подавления этих самых сигналов. Впрочем, сначала коснемся еще одного немаловажного момента, а именно...

Почему это работает.

А почему, собственно, эти правила работают? Все очень просто. Если ты регулярно читаешь VR-Online, то уже знаешь, что невербальные сигналы и подсознание человека связано как в прямом, так и в обратном направлении. На всякий позорный поясню: если нам тревожно, то мы инстинктивно выставляем невербальные “блоки”. И наоборот: сознательно выставляя позой и жестами подобную “защиту” мы подсознательно начинаем испытывать чувство тревоги. Так уж устроен человек и не надо с этим бороться. Это не баг, а фича, которую можно более чем успешно использовать. Собственно, именно этим мы сейчас и займемся.

Недоверие.

Нога на ногу – явный признак того, что этим людям не нравится общаться друг с другом. Догадываетесь, почему?

Уверен, с этоми позами и жестами сталкивался каждый, кому хоть раз доводилось общаться с незнакомым или малознакомым человеком. Все эти сигналы идут с первобытномамонтовых времен, и эти блоки – всего лишь разновидность защиты трех наиболее уязвимых зон нашего тела: горло, солнечное сплетение, пах. Отличительные признаки недоверия: скрещенные руки, неважно, скрещены руки на груди, пальцы рук сжаты в замок или даже одна рука держит запястье другой – все это варианты блоков. У людей, которым часто приходится общаться с людьми, подобный блок вообще может выражаться в периодическом касании пальцами руки, например, наручных часов на другой руке. Также сигналом недоверия к тебе могут послужить скрещенные ноги собеседника. А ты сам вспомни лихие школьно-студенческие времена... ну, какую позу ты принимал, когда препод вел ручкой по журналу, выбирая жертву, которой сейчас предстоит отвечать за все тяжкие? vr-online | май 201 0


84

Психо А здесь Джобс уже внимание на его позу

открыт,

обратите

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

Волнение и страх.

О страхе очень подробно говорил Jimmy Jonezz в одном из недавних номеров VR-Online. Страх тоже является одной из наших защитных реакций с давних пор. Есть в страхе и еще одна польза: когда мы боимся, то в кровь выделяется адреналин, который позволяет нам быстрее соображать, улучшает нашу жестикуляцию, внимание, помогает быстрее найти в глубинах мозга нужную информацию и вывести ее на поверхность. Да-да, я снова сейчас попрошу вас вспомнить учебные заведения, в частности, такое событие как экзамен. Думаю, все волновались накануне экзамена, а волнение – это и есть слабая разновидность страха (о сильных страхах – фобиях, говорить не будем, здесь нужно лично обратиться к специалистам, лично я подобные эксперименты ставлю ТОЛЬКО на себе и никому ничего не буду советовать, пока у меня нет корочки как минимум психолога). Но вернемся к страху. Почему-то зачастую оказывается наоборот: когда мы боимся, то мы краснеем, мысли начинают путаться, речь становится несвязной, иногда даже не совсем понятно, что мы говорим, отвечая на экзамене. Так? Причина тоже на удивление банальна – адреналина в крови слишком много, значит, нужно каким-то образом его уменьшить. Можно это сделать, например, выполнив пару несложных физических упражнений (адреналин просто “выжигается”, как говорят, “ выходит вместе с потом”). Тоже не айс ситуация, если студент вдруг посередине ответа примет упор лежа и начнет выполнять небезызвестное упражнение под названием “вставай, она уже ушла”, правда ведь? Значит, давим страх тем, чем он и был вызван – собственными мыслями. Если вдруг представится такая ситуация, попробуй поймать положение своего тела, когда ты испуган. Я практически уверен, что ты будешь сутулиться, голову будешь прятать в плечи, да и сами плечи сведешь как можно сильнее. Вся эта поза по-прежнему идет от наших предков, которые очень сильно боялись прыжка какогонибудь саблезубого создания или камня, брошенного от какого-нибудь питекантропа из соседнего племени. Решение тоже просто: расправляем плечи, поднимаем голову. Все, сигналы “бояться нечего” пойдут в мозг практически сразу, в ответ на что наш мозг даст команду уменьшить выброс адреналина. Колени, конечно, будут еще дрожать пару минут – это будут выжигаться остатки лишнего адреналина, а дальше этого самого гормона останется ровно столько, сколько тебе нужно, чтобы с блеском сдать экзамен (естественно, в том случае, если материал ты хотя бы немного знаешь). vr-online | май 201 0


85

Психо Скука и незаинтересованность.

Жесты, выражающие эти эмоции – это то, что мы делаем, когда устали. Это может быть зевота (в этом случае собеседник откровенно говорит “мне скучно”), расслабленная поза, как будто человек спит с открытыми глазами. Заинтересованный человек будет всегда держать держать взгляд на твоих глазах, ждать от тебя ответного взгляда, так называемой обратной связи. Опять же, заинтересованный человек ведет себя максимально тихо, стараясь услышать каждое слово, увидеть каждый жест, в то время как человек скучающий – с точностью до наоборот: отвлекается по любому поводу, смотрит куда угодно, только не тебе в глаза. Рецепт здесь тоже несложен: следим за направлением его взгляда, тем самым определяем то, что же ему интересно в настоящий момент. Если разговор ведется в кафе/пабе, то этим чем-то зачастую оказываются вырезы на юбках и/или блузках официанток (тут уж все зависит от его личных предпочтений и от официанток), также может поглядывать на свой телефон, стирать с него пылинки. В этом случае можно резко сменить тему разговора на то, что ему интересно, постепенно переводя ее снова в нужное тебе русло. Таким образом собеседник поймет, что ты не просто читаешь заученный текст в пустоту, а действительно интересуешься тем, кому ты все это рассказываешь. Ну а если уж прелести официанток или последняя модель яблофона – это и твоя страсть тоже, то сработает “маячок” свой/чужой. Ну а то, что рассказывает “свой” человек – это уже интересно, значит, на какоето время собеседник снова готов слушать тебя, какую бы скукотищу ты ни говорил. Небольшое лирическое отступление: перечитывая этот текст на наличие ошибок, я уже откровенно засыпал, но дойдя до “вырезов у официанток” взбодрился и дальше проверял текст уже с бОльшим интересом, даже вот решил дополнить его этим небольшим абзацем. Вот тебе и реальный пример. Ну а я, собственно, продолжаю.

Уважение.

Не у каждого можно спросить прямо и откыто “Ты меня уважаешь?!”. Мы же, естественно, унывать не будем, потому как жестов, символизирующих уважение, не так уж и много. Во-первых, это рукопожатие. Если собеседник относится к тебе с уважением, то руку он подаст либо первым, либо одновременно с тобой, то есть не будет задумываться над тем, а стоит ли пожимать тебе руку. Также знаком уважения может быть кивок головы. При этом обратите внимание на глаза собеседника: если он опускает веки, но взгляд его при этом не уходит в сторону, то он уважает тебя глубоко и искренне, если же взгляд начал “косить”, то, вполне возможно, он просто-напросто пытается хитрить, потому и прячет взгляд. Не забывайте и об объятиях. Впрочем, это уже жест между достаточно близкими людьми, который, кстати, тоже расшифровывается очень просто. У каждого человека есть свое личное пространство, в которое он пускает только тех, кто ему близок, кому этот человек доверяет. О допуске в личное пространство и говорит объятие. Кстати, соверши как-нибудь (эксперимента ради) героический подвиг – посмотри какуюнибудь передачу о русском гламуре. Отплевался? :) Тогда я продолжу. Просто обрати внимание на их объятия и “цемки-цемки”. Несмотря на то, что и объятия и поцелуи, вроде как, есть, в то же время они будто бы наклоняются друг к другу, не допуская другого человека в свое личное пространство. Собственно, подобный жест явно можно трактовать как неискренность и самый что ни на есть откровенный обман. Ну, в общем, с этими ребятами и так все понятно, а мы продолжим.

Задумчивость.

Так, а теперь убери, пожалуйста руку от левой щеки. Угадал? Процент вероятности этого довольно высок, сейчас объясню, почему. Дело в том, что, подпирая щеку или потирая висок, человек выдает, что информация, которую он в настоящее время получает, для него интересна и здесь есть над чем призадуматься. Кстати, наверное, тоже не открою секрета, если скажу, что тело человека подчиняется так vr-online | май 201 0


86

Психо называемому закону перекрестного распределения влияния зон мозга. А теперь то же самое, но нормальным языком: как ты уже знаешь, левое полушарие мозга отвечает за логическое мышление, а правое – за “творческое”, образное. Соответственно, если собеседник будет потирать правый висок, значит, у него усиленно работает левое полушарие мозга. Если же, например, твой препод подпер щеку левой рукой во время того, как ты построчно рассказываешь ему работу какой-либо программы – будь уверен, логическое мышление в настоящий момент у него отключено, наверняка он думает о том, как отправится сегодня с друзьями на рыбалку, а твоя программа волнует его не больше какого-нибудь брошенного котенка. Кстати, работа правого полушария мозга вовсе не обязательно говорит о том, что человеку все пофиг – очень даже возможно, что ты и сам сейчас потираешь левый висок, усиленно представляя как уже завтра начнешь пользоваться всеми теми приемами, которые в этой статье мы и разбирали так упрямо. А ведь за образы, фантазии, моделирование ситуаций как раз и отвечает правое, “образное” полушарие мозга. На этом, думаю, мы и остановимся. Сигналы, например, заинтересованности или спокойствия ты и сам сможешь назвать, опираясь на то, что мы уже рассмотрели. А в следующем номере мы попробуем разобраться в некоторых особенностях женской (!) психики и разберемся с некоторыми особенностями поведения этих замечательных созданий. Не пропусти, лето просто обязано быть интересным и познавательным не только в плане кода!

vr-online | май 201 0


Перевод: Максим Богданов aka Limonell

87

Админинг

Оптимизируйся

5 самых нужных модулей Apache и PHP оптимизаторов

На серверах Apache и языке PHP находятся более чем 70% всех интернет серверов. Без них было бы невозможно выполнять буквально миллионы сценариев и серверных веб-страниц для посетителей сайта. Эти два инструмента, которые действительно незаменимы для работы веб-серверов во всём мире. Что естественно, для обоих есть свои альтернативы : ASP, Javascript для PHP и Lighttpd или Nginx для Apache), но большого распространения ничто из них не получило. К тому, же существует множество скриптов написанных на PHP, или же без него – на сервере, без всего этого невозможна была бы работа. Многие малые представители веб-хостинга предлагают своим клиентам PHP, CGI, Ruby(Por), Perl и много чего ещё. Как и любое другое программное обеспечение, пользователи могут изменить, улучшить и оптимизировать Apache и PHP под свои нужды. Для этого есть много модулей, расширений и оптимизаторов, и ниже мы рассмотрим наиболее важные из них, которые должны иметь каждый сервер PHP и Apache: mod_deflate: Этот модуль Apache поможет вам сохранить пропускную способность и уменьшить время загрузки страницы Вашего сайта (особенно полезно для тех посетителей, которые не имеют 1 0Mbit скорости Интернета). Он работает за счет сжатия вывода от сервера перед отправкой пользователю. Вы индивидуально можете настроить какие браузеры следует игнорировать (потому что не все из них работают с этим модулем) и степень сжатия. Недостатком является то, что сервер будет иметь более высокую нагрузку на процессор и, возможно, несколько возрастёт задержка за счёт обработки и сжатия всех файлов и данных перед их отправкой. mod_gzip: Этот модуль Apache работает так же как и mod_deflate, с той разницей, что модуль использует для сжатия GZIP, в результате чего достигается ещё большая компрессия (20-30%) в сравнении mod_deflate. Лучше всего использовать вместе mod_gzip и mod_deflate, потому что много наиболее часто используемых браузеров (IE, Firefox, Safari и другие) не поддерживают mod_gzip и часто возникают ошибки. Кроме того, mod_gzip использует ещё больше процессорной мощности, чем mod_deflate, поэтому используя его, у вас должны быть хорошие вычислительные мощности (4 и более ядер). mod_bw: Еще один модуль Apache, которые поможет вам сэкономить полосу пропускания (как в смысле объема, так и ежемесячные Мбит в секунду). Он работает как выходной фильтр в цепочке фильтров Apache. Все данные, которые были загружены пользователями проходят через него, и если вы установите ограничение полосы пропускания (например, разрешить только 20Mbit / от общей 1 00 Мбит / с), модуль начнет разбиение данных на более мелкие части. это увеличит задержку между отправкой каждой части, что приведет к замедлению скорости скачивания для пользователей, которое, в свою очередь, будет экономить пропускную способность. Это может быть очень полезно, когда, например, у вас есть файл хостинг сайта и популярный блог на том же сервере. Если блог попадает на первую страницу социальной сети, такой как Slashdot и Digg, и вы не хотите, чтобы ваш ресурс стал недоступными из-за того что многие пользователи загружают файлы на максимальной скорости, Вы можете ограничить полосу пропускания, что приведет к тому что блог будет работать с большим объемом трафика (хоть и с замедленной скоростью загрузки). Zend Optimizer: Это бесплатное приложение, которое позволяет выполнять на сервере запуск PHP сценариев, закодированных с помощью Zend Guard и, самое главное, ускорить обработку дополнительного кода для повышения производительности. Существует множество сценариев, которые вам могут понадобиться, они закодированы с помощью Zend Guard, а заранее установленный и настроенный Zend Optimizer поможет вам избежать каких-либо проблем, которые могут возникнуть при первой попытке запуска Zend Guard. eAccelerator: Это очень полезное приложение, которое является обязательным для любого сервера, работающего под постоянными средними и тяжелыми vr-online | май 201 0


88

Админинг нагрузками. Это ускоритель PHP и оптимизатор, который увеличивает производительность PHP сценариев, как правило, в 3-1 0 раз и уменьшает нагрузку сервера (на те же 3-1 0 раз) за счет кэширования всех сценариев, так что в любой момент при повторении сценария, они не должны быть составлены еще раз. Это сильно сокращает время процессора и оперативной памяти, а т.к типичный современный сайт состоит примерно на 80% из сценариев PHP, это очень хороший инструмент нужный всем. Итак, теперь вы знаете некоторые модули и приложения, которые повысят производительность и стабильность любого сервера Apache и PHP, уменьшая при этом использование полосы пропускания и издержки. Что ж, пробуйте их! Оригинальный материал: http://hostwisely.com/blog/5-must-have-apache-modules-and-php-optimizers/

vr-online | май 201 0


Автор: Роман Костенко aka Lord_of_fear E-mail: kostenko.r.khv@gmail.com

89

Админинг

Поднимаем VPS Настройка MTA

Не так давно ради интереса почитал несколько обсуждений на форумах, касающихся выбора MTA для VPS. Если ты не в курсе, то MTA (от англ. Mail Transfer Agent) – агент для передачи почты, проще говоря, почтовый сервер; VPS (от англ. Virtual Private Server) – выделенный виртуальный сервер. Если проще: ось работает у хостера под виртуальной машиной и находится полностью в твоем распоряжении. В основном, народ писал, что юзает для таких задач qmail и postfix. От таких высказываний у меня аж навернулась скупая мужская слеза и упала на клавиатуру. :) Как же наш народ любит забивать гвозди плоскогубцами! В этой статье я расскажу тебе, мой дорогой друг, как такое дело по-хацкерски настроить для работы на VPS. В принципе, основная суть работы MTA на VPS сводится лишь к отправке пользователям писем с уведомлениями о регистрации, получении приватных сообщений, оповещении админа о каких-либо происшествиях, наличии обновлений модулей и прочее. Создание почтовых ящиков другим пользователям - второстепенная задача. Вместе с таким удовольствием как свой личный почтовик, сразу же бонусом получаешь большой гемор: борьба со спамом. =) И тут уже нужно обращаться к технологии грейлистинга и начинать курить как же это делается. Сразу возникает логичный вопрос: а на фига козе баян? =) Нужен ли для этого свой почтовый сервер? Не проще ли воспользоваться каким-нить простеньким smtp клиентиком (MDA)? А роль почтовика сложить на плечи, например, того же самого Google Mail, у которого отличный антиспам контроль и 99-ти процентный аптайм! И это, действительно, проще и логичнее… Делаем так: переносим свою почту на gmail (http://www.google.com/apps/intl/ru/group/index.html), создаем почтовый ящик админу (пусть это будет admin@vr-online.ru), а затем уже через него рассылаем свою почту. Получается, что всю грязную работу по рассылке писем будет делать почтовый сервер гугла, а нам можно радоваться сэкономленным ресурсам на VPS. Ведь ресурсы на самом деле не такие уж и большие. Для примера вот что дает хостер masterhost на UNIX VPS тарифе за 11 50 рублей в месяц: Место на диске – 5 Гб. CPU гарантировано - 500 MHz RAM гарантировано – 768 Мб Операционная система - Fedora Core 7, CentOS 5 или Debian 4.0 Пусть в нашем распоряжении имеется VPS с Debian Linux на борту. Debian версии 4.0 носит гордое название Etch. Рассматриваемые мною smtp клиенты: msmtp и ssmtp. С первым из них я уже имею большой опыт работы (про его настройку под FreeBSD я уже как то писал). С него и начнём. :)

MSMTP

Msmtp – очень легкий и простой MDA. Его достаточно часто используют админы Unix систем. Для начала снесем sendmail, который хостер уже включил в установку ОС: apt­get remove ­­purge sendmail­base

Ключ purge говорит о том, что вместе с удалением пакета нужно снести всё, включая файла конфигурации. Установим msmtp из репозитория: apt­get install msmtp

Теперь создаем конфиг. В случае использования msmtp файл конфигурации может быть глобальным или персональным для каждого юзера. Для создания глобального конфига нужно файл с именем msmtprc поместить в папку /etc. Для персональной конфигурации под каждого пользователя в его домашней папке нужно создать файл .msmtprc (Обратите внимание, что имя файла начинается с точки, т.е. файл является скрытым). При использовании персональной конфигурации есть одна тонкость – пользователь обязательно должен быть владельцем файла конфига и единолично иметь права на его запись. Пусть vr-online | май 201 0


90

Админинг юзер, от имени которого запускается веб-сервер, имеет имя www-data и состоит в группе www-data, его домашняя папка /var/www В таком случае делаем его владельцем конфига и устанавливаем права: chown www­data:www­data /var/www/.msmtprc chmod 622 /var/www/.msmtprc

Следует понимать, что файл конфигурации не может лежать и в папке /etc, и в домашней папке пользователя одновременно. Работать не будет. Теперь, собственно, содержимое файла конфигурации: account mymail logfile /var/log/msmtp.log syslog off host smtp.gmail.com timeout 60 port 587 from admin@vr­online.ru auth login user admin@vr­online.ru password my_password tls on tls_certcheck off account default : mymail

Данным способом мы создали аккаунт mymail и сделали его дефолтным. Логи пишем в нужное нам место - /var/log/msmtp.log. Тут, думаю, всё понятно. Конфиг очень даже читабелен. Теперь дело за малым. Надо поправить конфиг php: nano /etc/php5/apache2/php.ini

Ищем строку sendmail_path = и меняем на: sendmail_path = "/usr/bin/msmtp ­t ­i ­a mymail"

Не забудь перезапустить апач. ;) На этом всё. Теперь почту можно отправлять функцией mail().

SSMTP

Тоже достаточно простой smtp клиент. Установим его: apt­get install ssmtp

Если ты собираешь ssmtp из исходных кодов, то собирай с отключенными флагами "ipv6 и md5sum" и включенными "mailwrapper и ssl” Ssmtp имеет 2 файла конфигурации: • /etc/ssmtp/ssmtp.conf – файл конфигурации • /etc/ssmtp/revaliases – файл обратных алиасов Редактируем файл /etc/ssmtp/ssmtp.conf # # Config file for sSMTP sendmail # # The person who gets all mail for userids < 1000 # Make this empty to disable rewriting. root= admin@vr­online.ru

ИМХО, достаточно мутный параметр. Прихожу к мысли, что если оставить без заполнения, то в письме в директиве FROM будет стоять www-data@web.server, т.к. по дефолту апач работает от имени пользователя www-data. После символа собачки будет указано имя машины, на которой это всё крутиться. Если же этот параметр менять, то вся почта будет приходить от имени admin@vr-online.ru. В принципе, всё логично. Однако зачем тогда vr-online | май 201 0


91

Админинг нужен файл revaliases? В нём можно для каждого пользователя указать почтовый адрес, сервер, порт для заполнения шапки письма. Признаюсь, что я не экспериментировал с этим делом, поэтому оставил как есть :) Ибо работа с ssmtp закончилась отправкой первого тестового письма, а затем был установлен msmtp. Посему возлагаю разбор полётов на твои плечи :) Идём далее: # The place where the mail goes. The actual machine name is required no # MX records are consulted. Commonly mailhosts are named mail.domain.com # Use mail.domain.com:PORT if you want to specify PORT (e.g. mail.server:587) mailhub=smtp.gmail.com:587

Тут понятно. Указываем почтовый сервер и порт.

# Are users allowed to set their own From: address? # YES ­ Allow the user to specify their own From: address # NO ­ Use the system generated From: address FromLineOverride=YES Если установить NO, то все письма будут приходить от www­data@web.server, т.е. не будет работать перезапись параметра FROM письма. Ставим YES. UseSTARTTLS=YES AuthUser=admin@vr­online.ru AuthPass=my_password

Объяснения нужны? Думаю, что нет =) Редактируем файл /etc/ssmtp/revaliases

# sSMTP aliases # # Format: local_account:outgoing_address:mailhub # # Example: root:your_login@your.domain:mailhub.your.domain[:port] # where [:port] is an optional port number that defaults to 25. # www­data:admin@vr­online.ru:smtp.gmail.com:587

Здесь создаем алиас для юзера www-data. Всё это автоматом попадёт в шапку письма. Теперь открываем привычный нам php.ini и правим строку: sendmail_path=/usr/bin/ssmtp –t

Теперь в php можно работать с функцией mail(). На этом всё. Надеюсь, что данная информация тебе пригодится. Если возникли вопросы, то задавай их у нас на форуме. До встречи ;)

vr-online | май 201 0


Автор: Андрей Петрикин aka Zanuda25 petr.and.vic@gmail.com

92

Школа

Уроки по Gimp Радиоактивная рука

Решил на днях нарисовать кисть руки, похожий на кисть руки в сериале “Секретные материалы”... Для этого я раздобыл изображение кисти руки и подкорретировал его под свои нужды. А вам только остается заглянуть в архив, так как я прикрепил его к статье. Пункт 1 .

Для начала поменяем цвет фона на черный: инструментом “Выделение смежных областей” (похожий на волшебную палочку) отделим светлую часть изображения. Так как светлый фон практически однороден, инструмент легко, за всего-то один щелчок, выделит светлое пространство. Выборка конвертируется в “моментальную маску” с помощью кнопки в левом нижнем углу холста (на нижнем рисунке обведена кружочком). “Моментальная маска” позволяет подчистить выборку мягкой кистью, черной или белой. Нажав на ту же кнопку, вернитесь с маски на выборку, затем растушуй выборку (Выделение > Растушевать...) на 1 5 пикселей.

Пункт 2.

Пункт 3.

Теперь убавим краски кисти руки. Сохрани выборку в канале (Выделение > Сохранить в канале), дав ей имя Запас. В окне холста отключи выборку, нажав Ctrl+Shift+A. Сохранение выборки в канале передает активность следующему каналу, поэтому щелкни на исходном слое в диалоговом окне слоев, чтобы снова его активизировать. Дублируй слой (Слой > Создать копию слоя) и назови его Бледный. Осветли новый слой (Цвет > Обесцвечивание) и установи значение его режима “Объединение зерна”. Вот и контрастность изображения усилился.

Продублируй “Бледный” слой и назови дубликат Цветной. Двойной щелчок в окне выбора цвета переднего плана на Панели инструментов откроет диалоговое окно. В текстовом поле введи значение 00f800. Чтобы изменения вступили в силу, нажми ОК. Примени инструмент, похожий на волшебную палочку, к белому фону, чтобы легче окрасить зеленым цветом. После того, как ты выделил белую область, нажми комбинацию Ctrl+I и увеличь выделение на 5 (Выделение > Увеличить...). Потом перетащи зеленый квадрат на руку и режим слоя ставь в “Умножение”. Это придаст более-менее фосфоцерирующий оттенок руке.

Пункт 4.

Все еще этот слой “Цветной” активен. Добавляем прозрачный слой(Слой > Создать слой...) поверх стопки слоев и называем его “Мрак”. Теперь вернем выборку из канала “Запас”, открыв диалоговое окно каналов(Окна > Прикрепляющиеся диалоги > Контуры), выделив vr-online | май 201 0


93

Школа нужный канал и нажав кнопку “Канал” справа внизу окна (на рисунке обведена кружочком). Выдели слой “Мрак” в диалоговом окне слоев, чтобы сделать его активным. Нажми Ctrl+I и увеличь выборку на 5 пикселя (Выделение > Увеличить...) и растушуй ее (снова) на 1 5 пикселей. Потом снова нажми Ctrl+I. В окне изображения нажми клавишу D, то есть ты назначаешь черный цвет для фона, затем перетащи передний план на выборку.

Пункт 5.

Добавляем новый прозрачный слой под названием “Туман”. Откроем фильтр Плазма (Фильтры > Визуализация > Облака > Плазма...), задаем турбулентность 2,6 и нажмем ОК, чтобы применить изменения. Обесцвечиваем этот слой (Цвет > Обесцвечивание) для уменьшения количества видимого тумана.

Пункт 6.

Снова вызови слой Запас. Убедись, что после его вызова слой “Туман” выделен и активирован. Инвертируй выделение (Выделение > Растушевать) и растушуй его на 1 0 пикселей, затем, нажав в холсте Ctrl+X, вырежь выборку из туманного слоя. Если туман слишком яркий – уменьши яркость слоя Тумана, как показано на рисунке. Потом снимаем выделение.

Пункт 7.

Создаем новый прозрачный слой с названием “Темный” и заливаем черным цветом. Добавляем белую маску слоя (Слой > Маска > Добавить маску слоя). Еще раз вызови сохраненную выборку Запас и растушуй ее на 1 0 пикселей. Активируй маску слоя Темный, выделив ее, затем залей выборку черным цветом. Задай значение режима смешения слоев для слоя Темный как Перекрытие и очисти выборку (Ctrl+Shift+A). Потом на маске слоя Темный вызови контектное меню, нажав на правую клавишу мыши, чтобы применить маску к слою.

Финиш.

Вот и все. Можешь посмотреть на мою халтуру.

vr-online | май 201 0


Автор: Андрей Петрикин aka Zanuda25 petr.and.vic@gmail.com

94

Школа

Уроки по Gimp Обои в стиле Mac.

Этот урок предназначен для опытных пользователей, но я рекомендую начинающим пойти на это, так как это самый быстрый способ узнать что-либо. На это у меня ушло 5 попыток получить окончательный результат, а не из-за методов, они довольно просты и легки. Но когда становится все смешанные друг с другом гладко, что уже трудно, так что не сдавайся при первой неудаче! Теперь давайте начинать. Примечание: я рекомендую сохранять вашу работу в. XCF очень часто.

Шаг 1 .

Прежде чем создать изображение, нужно решить, какие резолюции для обои ставить. Это всегда лучше начинать с больших, таких как 1 600x1 200, так как его всегда легко настроить размер изображения, чтобы меньше резолюций в дальнейшем. Сейчас мы создаем новое изображение размером 1 600x1 200. Ты можешь уменьшить изображение так, чтобы тебе было виднее и удобнее работать. К примеру, я уменьшил холст на 25.

Шаг 2.

Возьми инструмент “Градиент”, предварительно выставляем значения цвета фонов: передний = 00e600; задний = 0000f1 . Теперь применим Градиент сверху вниз к изображению, только следи, чтоб строго вертикально равномерно применился градиент к будущему обою.

Шаг 3.

Создаем новый слой. Снова берем инструмент “Градиент”, попутно назначив белый цвет передного фона. Меняем в настройках инструмента “Градиент”: в пункте “Градиент” ставим Основной в прозрачный; пункт “Форма” – Радиальная.

Шаг 4.

Применяем Градиент так, как показано ниже(то есть сверху вниз). Меняем режим слоя с “Нормального”на “Перекрытие”.

Шаг 5.

Добавляем новый слой. Бери инструмент “Контуры” и сделай так как показано ниже После операции “Контуры” не забудь нажать на кнопку “Выделение из контура”.

Шаг 6.

Возьми инструмент “Градиент” и в настройках инструмента поменяй значения: Форма – “Линейное” и Градиент – “Основной в прозрачный”, предварительно убедившись, что передний фон имеет белый цвет. И заливаем градиентом область. Меняем режим слоя на “Перекрытие”.

выделенную

Шаг 7.

Снова создаем новый слой. С помощью инструмента “Контуры” рисуем треугольник так, как показано ниже. Но только на этот раз мы vr-online | май 201 0


95

Школа использовали черный цвет для переднего фона. Это когда будем заливать градиентом. Только смотри, чтобы было снизу наверх. И снова переключаем режим слоя на “Перекрытие”.

Шаг 8.

Опять создаем слой. Снова с помощью Контуров мы рисуем так, как показано ниже. И применяем Градиент (Белый цвет переднего фона, Основной в прозрачность ) слева направо. Установливаем слой в режим "Перекрытие".

Шаг 9.

Мы снова применяем инструмент “Контуры” так, как показано на рисунке ниже.

Шаг 1 0.

Черный цвет ставим для переднего фона (это для Градиента). Берем инструмент “Аэрограф”(Кисть: Circle Fuzzy(1 9) и масштаб = 1 0,00) и рисуем линии, прилегающие к внутренней стороне контуров, как показано ниже. Затем щелки правой клавишей мыши, чтоб выбрать из контекстного меню Выделение > Инвертировать. И дальше мы рисуем нижний край.

Шаг 11 .

Еще раз создаем новый слой. Только не забываем инвертировать.Выделение все еще активно. Мы выбираем инструмент “Заливка” и заливаем контуры белым цветом. Меняем режим слоя на “Перекрытие” и ставим непрозрачность на 55.

Шаг 1 2.

Еще раз новый слой создаем. Затем щелки правой клавишей мыши, чтоб выбрать из контекстного меню Выделение > Увеличить.... Ставим 1 5 px. Проходим по контурам Аэрографом черного цвета непрозрачностью 33. Потом мы снимаем выделение.

Шаг 1 3.

Мы снова рисуем контур округлой формы, который охватывает почти полностью все изображение, за исключением верхней правой части. С белым цветом, выбранный в качестве переднего фона и "основной в прозрачный", Градиент проводим его от нижнего левого стороны до середины изображения. И снова ставим режим слоя в “Перекртыие”и прозрачность в 75.

Шаг 1 4.

Создаем еще раз новый слой. Берем Градиент с белым цветом (Основной в прозрачность) и заливаем им с верхнего правого vr-online | май 201 0


96

Школа угла до центра. Снова ставим режим слоя в “Перекрытие”.

Шаг 1 5.

Создаем новый слой и инвертируем его, нажав Ctrl+I. Повторяем шаг 1 5. Только так, как показано ниже. И ставим слой в режим “Перекрытие” и мы закончили этот почти нескончаемый урок.

Финал.

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

Оригинал статьи: http://gimp-tutorials.net/mac-wallpaper-tutorial

vr-online | май 201 0


Автор: Андрей Агаларов ака ZeroXor

97

Школа

Проверяем дату средствами PHP О важности курения манов

На многих сайтах, форумах, соц. сетях и иже с ними пользователь, как правило, проходит одну незамысловатую процедуру под названием регистрация. И после завершения этой самой регистрации, как правило, запоминается два значения: дата регистрации пользователя и дата рождения его же. В принципе, поля эти важные и нужные, мало ли, вдруг администрация сайта дает какие-либо бонусы "старожилам" или, наоборот, тем, кто обосновался на сайте совсем недавно, ну или просто присылает открытку на День Рождения. И если дата регистрации создается автоматически, а машина - человек хороший и ей лично я привык доверять, то к пользователю, заполнявшему анкету у меня такого доверия совершенно не имеется. По злому умыслу или в результате случайной ошибки можно увидеть, например, что некий пользователь родился, например 31 февраля (неважно какого года). Особенно забавно это будет в тех случаях, когда введенная пользователем дата стопроцентно должна находиться после 1 970-го года, значит, для компактности она, скорее всего, преобразуется во временную метку Unix - результат обратного перевода наверняка шокирует Вас и, возможно, и машину. Хотелось бы также коснуться таких моментов: 1 . Русский человек предпочитает все постигать на практике. Над (вообще-то правильным) советом юниксоидов "курите маны" Вы ведь тоже как правило смеетесь, конечно, если Вы и сами не юниксоид и важность курения манов понимаете прекрасно. 2. Программистам (наверное, не только русским) очень даже свойственен снобизм, мол, я и так знаю, что мне делать, нечего тут меня носом тыкать. 3. Обучение программированию, как правило, сводится к изучению основ (передача переменных, ветвления, циклы, функции, классы), во время которых запоминаются базовые функции, использующиеся практически везде и всюду.

И что в результате?

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

Килобайты кода.

<?php function showForm() { $day = ''; $month = ''; $year = ''; for ($i=1; $i<32; $i++) { $day .= '<option value="'.$i.'">'.$i.'</option>'; } for ($i=1; $i<12; $i++) {

vr-online | май 201 0


98

Школа $month .= '<option value="'.$i.'">'.$i.'</option>'; } for ($i=1950; $i<2011; $i++) { $year .= '<option value="'.$i.'">'.$i.'</option>'; } $date_form = '<select name="day">'.$day.'</select><select name="month">'.$month.'</select><select name="year">'.$year.'</select><input type="submit" value="Check date!" /><input type="hidden" name="action" value="check_date" />'; return '<form method="post">'.$date_form.'</form>'; } function showCheckDate() { if (checkdate($_POST['month'], $_POST['day'], $_POST['year'])) return 'true'; else return 'false'; } if ($_POST['action'] == 'check_date') { $content = showCheckDate(); } else { $content = showForm(); } print('<html><head></head><body>'.$content.'</body></html>'); ?>

Разбор полетов.

Собственно, здесь и разбирать-то особо нечего, но все же: Функция showForm() возвращает HTML-код формы, в которую мы и будем вносить дату. Что касается года, то я решил взять четкий и фиксированный промежуток времени от 1 950 до 201 0 года, ничего не мешает Вам добавить немного функционала и рассчитывать годы в зависимости от года текущего. Функция showCheckDate() возвращает слова 'true' или 'false' в зависимости от того, является ли введенная дата валидной или же нет. Здесь тоже, если уж по хорошему, не хватает проверки значений, пришедших в массиве $_POST[], я специально не стал их указывать, чтобы не усложнять код. Если решите применять код в боевых условиях, обязательно допишите эту проверку. Собственно, в showCheckDate() и находится та самая замечательная библиотечная функция checkdate(), которой в качестве параметров передаются месяц, день и год той самой даты, которую нам требуется проверить на валидность. Как видите, все до смешного просто - достаточно лишь заглянуть в мануал aka учебник; помнится, один мой студент писал аналогичную процедуру на PHP около двух недель. О разнице в скоростях работы процедуры, написанной на PHP, и процедуры, входящей в интерпретатор, я вообще промолчу. Кстати, с помощью checkdate можно проверять год на "високосность", нужно лишь запросить у нее ответ на 29 февраля нужного нам года. А, может, функция проверки високосного года тоже есть в интерпретаторе и можно еще раз обойтись без изобретения велосипеда? ;-) vr-online | май 201 0


99

Мнение VR

Мнение VR

"Социальные сети"

Va-Bank: Я против социальных се- ловалась под лестницей в школе. циальной сетью очень высока, и тей. Я уже даже и не помню почему так решил. Наверно этому способствовали три причины. Пер­ вая. Мои друзья, мои знакомые и люди с работы. Некоторые люди каждой из групп «тусуются» в социальных сетях. Одноклассники, в контакте, мой мир на mail. Вот встречаюсь с ними и в принципе поговорить даже не о чем. Тема одна, что он(она) делал сделал (или делает) у себя на сайте. Мне за примером даже далеко ходить не надо. Есть на работе один чел, который сидит в контакте. Смотрю чем то занимается за компьютером. Такое лицо, как-будто решает будущее нашей страны. Подхожу. А нет. В контакте он и убирает какашки своего питомца. Потом собирает яблоки в виртуальном саду и в качестве подарка отправляет их своим таким же Зависимым друзьям. И так весь рабочий день. И ведь этого человека можно понять. Он ведь на сайте не потому что не хочет работать, а потому что у него уже зависимость от этого сайта. Он не может жить без него. Это как алкоголизм или наркомания, а может как игромания ну и т.п. Приходит на работу и первым делом на сайт лезет. Ну ведь есть реальная жизнь. Я не против живого журнала и ему подобных. Но мне кажется это перебор. И с друзьями так же. Хочу попить пивка. Нет они заняты. Чем? Да надо разыскать одного человека на одноклассниках, ведь мне это так необходимо и так каждый раз. Может я преувеличиваю, но факт есть факт, морально я потерял добрую часть друзей. Виртуальный мир «лучше реального» (сарказм). Вторая. Наверно она банальная. Может я параноик, кто его знает. Запретил жене выходить в соцсети. Вообще заблокировал на домашнем компе все подобные адреса. Я не то чтобы не доверяю, но… Сколько случаев в жизни бывает. Девушка уходит от парня, т.к. нашла в одноклассниках бывшего своего, с которым первый раз поце-

И все. У моих знакомых именно так и произошло. Я наверно дурак и ревнивец. Мне все равно так спокойнее. Как говорится «Доверяй, но проверяй». Есть конечно у нее и аська, и зарегистрирована она на нескольких форумах. Но… Третья. Да просто неохота тратить время на виртуальную жизнь. Вот сайт VR-Online. Посмотрел новые посты и т.п. Прочитал, ответил и пошел гулять/работать. Конечно соцсети не всех затягивает, но большинство все таки «зависимы» и это огорчает. Ну как-то так наверно. Да кстати. Я ведь пробовал одноклассники и мой мир на mail. Так что из нутрии немного знаю все это дело. Теперь вот на одноклассниках не могу удалить профиль - логин и пароль забыл. Бывает…

Jimmy Jonezz: Лично меня, на данный момент, социальные сети мало привлекают. Одно время, я просто погружался в пучины одной известной социальной сети; когда все исследовал и рассмотрел под микроскопом, понял, что просто теряю время. Те сайты (социальные), на которых я имею аккаунт, использую в качестве медийных ресурсов: скачиваю музыку, просмотр интересных изображений и видеороликов. В меньшей степени использую для общения, т.к. еще раз убеждаюсь, что живому общению (тет-а-тет) нет замены. Хотя бывает интересно общаться с интересными людьми, которые очень далеко от твоего города и расстояние отмеривается в несколько часовых поясов. Социальная сеть содержит в себе различные направленности, начиная от сайта знакомств до медино-развлекательных ресурсов. Здесь и группы по интересам, увлечениям, фан-клубы. Одним словом все то, что является составной частью социальной сферы человека, но хочу отметить, что стоит опасаться такие вот ресурсы - возможность быть "поглощенным" со-

это ужасно. Это хуже чем наркотик, нельзя превращать социальные сети во "вторую" жизнь. Реальная жизнь и окружающее нас пространство куда более интересней и загадочней, нежели «электронная жизнь».

Kastor: Социальные сети? Хм. У

меня с ними довольно интересная история. «Под натиском общественности» я года два назад зарегистрировался Вконтакте. Добавил парочку друзей, пошла тупая переписка, мол, че делаешь или как дела. Потом кто-то прислал письмо счастья, которое если не отправить десяти своим знакомым, то у тебя случится чуть ли не Армагеддон. А фигли и не отправить его? Делать особо нечего. Когда я закончил «спамить», через пару часов пришло ЛС от какого то бородатого чувака: «Спасибо, что воспользовались нашим сервисом. Всего хорошего». В непонятках, я на пару дней забил на контакт, а когда попытался зайти, то понял, что мне кто-то пароль поменял, так как я его точно помню. Вообще ни капли не расстроился потому, что не увидел в этом сервисе ничего полезного. Но, что бы хоть одним глазком глянуть, что творилось в нашей группе от Liveofpc (простите, что не бывал там), пришлось зарегистрироваться еще раз. Тупое название в шесть единиц, не менее тупой пароль и аватар, на котором изображен был призрак, сфотканный моим одноклассником у себя в гараже (правду говорю). Через какое-то время Jimmy спросил, что за фигня у меня в статусе написана. Откуда я знаю, я сто лет не заходил под этим аккаунтом и оказалось, какой-то хакер Вася подобрал к ней пароль. Что ж, попрощался с контактом второй раз. Не страшно. Но так вышло, что даже такому пофигисту социальных сетей как я, пришлось регистрироваться третий раз. У меня появились несколько знакомых, с vr-online | май 201 0


1 00

Мнение VR которыми общаться удобнее именно таким способом. И не больше. Потихоньку пришлось добавить еще парочку людей, и сейчас их кажется штук 7 или 8. Но все же кое какое полезное применение я нашел этому сервису. Когда очень хочется посмотреть фильм, а скачать его негде или очень долго, то можно подзабить на качество и посмотреть его прямо с контакта. Или вот еще прикол. Я очень люблю слушать музыку, но все мои списки песен потихоньку достают, а закачивать альбомы бывает влом. Поэтому я забиваю название группы и в разнобой слушаю их песни. Сейчас вот играет Disturbed, песни которого идут в списке абсолютным беспорядком и не будут надоедать мне своей определенной последовательностью.

ZeroXor: Социальные сети - это замечательная идея человечества! В отличие от информационных сайтов, подающих нам информацию "на блюде", блогов, по сути являющимися опросниками общественного мнения, чатов, сообщения в которых безвозвратно затираются через полчаса после появления этих самых сообщений на свет, именно социальные сети позволяют снять этакий информационный "срез" с человека или некоего сообщества (а, если постараться, то и всего общества), узнать человека более подробно... так сказать, войти в его жилище... Нельзя забывать и о том, что соц. сети действительно позволяют, например, по-быстрому и без особого напряга собрать друзей и знакомых на какое-нибудь мероприятие, оповестить о какомто событии. Время идет все быстрее и IM-сервисы (я уж молчу про телефон) отнимают намного больше сил, чтобы достучаться до каждого. А круг общения, приятных, а иногда и просто "нужных" людей у человека современного солидно больше, чем у, хотя бы, предыдущего поколения. Многие кричат о том, что, мол "нас контролируют", "за нами следят", etc... А мне интересно, что, до появления социальных сетей не было, допустим, паспортов и любого че-

ловека при желании могли найти (про прятки от военкомата даже не заикайтесь - они особо и не пытаются искать, если задействуют хотя бы 1 % своей мощи - значит, Вы чем-то очень сильно насолили лично военкому :)). К тому же, никто не запрещает указать в соц.сети ложную информацию - закона, предусматривающего ответственность за это, пока, слава Богу, нет. А про, якобы, засилье "гламурных кисо", "школоты", "военов с лучеметами" и аналогичных я бы сказал так: Вы выйдите на улицу, Вы сядьте в автобус, например. Может мне не верить, но Вы обязательно и всенепременно увидите и кисо, сидящую на потертом кресле и дующую губки, увидите "реальных пацанов" в кэпках, увидите стайку "школьнегов", с гыгыканьем и матом делящих между собой купленную в ларьке пачку сигарет. Так что все траблы и отрицательные "персонажи" Сети - это всего лишь отражение нашей реальной жизни. Знаете, то, что соц. сети позволяют увидеть этот негатив - это тоже хорошо, может быть, кого-то увиденное заставит взглянуть на себя со стороны и задуматься.

wwwnet:

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

zahod5277 : Вообще, по моему, со-

клиентами и финансами. Полезным же делом в социалках могут заниматься лишь рекламщики и стартаперы, для продвижения своих продуктов и проектов. При помощи того же контакта можно неплохо раскурить сайт, достаточно иметь несколько аккаунтов, при помощи которых спамить, оставлять везде линки на свои проекты и создавать группы. Я сижу вконтакте не более 1 5 минут в день. Приглашаю людей в группу VR, проверяю стенку, дополняю контент и все. Именно "социальной" деятельностью я не занимаюсь. Не пишу сообщений, не смотрю фото, ничего.

Lord_of_fear: Социальные сети говорите? Пустая трата времени. Так же как, например, болтовня по аське. Около 7 месяцев назад я полностью отказался от ICQ. За 4 года юзания аськи у меня накопилось огромное число контактов, каждый второй из которых считал своим долгом сразу после моего выхода в онлайн написать “Привет. Как дела?”. Знакома ситуация? Вово. Ещё как знакома =) Так можно всё рабочее время до обеда потратить на бесполезный трёп и ни фига не сделать по работе. И со всякими одноклассниками, вконтактами и прочим такая же история. Часто ли у тебя возникает желание пообщаться в онлайне со своими одноклассниками? Скажу откровенно: у меня вообще никогда такого не бывает :) Одноклассники – это люди, с которыми пришлось проучиться 1 0 лет не по своему желанию, а из-за стечения обстоятельств, поэтому со многими из них даже в реале общаться не хочется. :) И это касается не только одноклассников, но и все остальных моих знакомых и приятелей. Посему ну на фиг все эти соцсети. На компьютерную тематику я лучше пообщаюсь на форуме vr-online, а всё остальное общение только в реальной жизни. )) Вообще замечаю, что очень мало стал в онлайне общаться. )))

циалки - это зло. Миллионы людей просиживают время вконтактах, однокласниках и прочих сайтах, вместо того чтобы заняться действительно полезным делом. В действительности все эти социалки, по моему мнению, не настолько помогают находить друзей, одноклассников и одногруппников, Zanuda25: Я отношусь к соц. сколько обеспечивают разработчи- сетям никак, то есть ни ков и всяких предпринимателей отрицательно и ни положительно. vr-online | май 201 0


1 01

Мнение VR Да, соц. сети все чаще и чаще стали играть главную роль в жизни почти каждого человека. Это и хорошо, и плохо. Хорошо потому, что соц. сети позволяют объединять людей вокруг своих интересов и помогают найти общий язык между слишком разных людей. И плохо то, что соц. сети больше и больше отнимают часть времени жизни почти каждого человека., то есть люди уходят в виртуальность из реальности. Сам пробовал пожить в соц.сетях: “Одноклассники”, “ВКонтакте” и “Facebook” и понял, что именно нравятся и не нравятся эти соц.сети. Эти социальные сети помогли мне понять, что такое виртуальность. А вот в “Одноклассниках” я нашел всех родственников своих родителей и своих однокашников, и сейчас мы активно переписываемся. Это жирный плюс, когда ты разыскиваешь “без вести пропавших” людей. А вот огромный минус – повторяю – уход из реальности в виртуальность.

vr-online | май 201 0


VR-Crew

VR-Crew

WWWNET

Сообщество VR в лицах

Va-Bank

Роман Костенко Игорь Антонов

Zahod5277

x-zone

1 02

ZeroXor

vr-online | май 201 0


Jimmy Jonezz

Kastor

Алексей Стуликов aka A.S

Сергей Дубовик aka SD

1 03 VR-Crew

Юрий Рожков

vr-online | май 201 0



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.