Intro Первая половина августа и первая половина сентября для меня стали настоящим праздником. В августе я успешно сходил в отпуск и отпраздновал годовщину свадьбы. Честно говоря, в отпуске особо отдохнуть не получилось, т.к. он у меня был всего лишь две недельки. Теоретически, этого времени должно хватать, но поскольку я по нормальному не ходил в отпуск уже более 3-х лет, то две недельки пролетели очень быстро. Хочется задать вопрос: «А где он этот отпуск?». Ждешь его долго, надеешься, а кончается он мимолетно. Ну, ничего, уж лучше две недельки, чем ничего. К тому же, он прошел для меня плодотворно. В отпуске, я старался выделять время и занимался переводом книги по CodeIgniter. Этот фреймворк идеально подходит для небольших и средних проектов, а вот литературы на русском (именно книг) по нему нет вообще. Вот я и решил, сделать перевод одной из англоязычных книг. По правде говоря, это мой первый опыт в переводе литературы, но я надеюсь, он будет успешный. Свой вариант перевода я планирую распространять совершенно бесплатно и первые главы, будут доступны к концу октября или середины ноября. Следи за новостями J. А вот в сентябре, на моей работе произошло событие, которого я ждал уже несколько месяцев. В мой отдел, наконец-то выделили нового человека. Постоянные читатели знают, что с января 2009 года я сменил работу и занял должность с громким названием «начальник отдела разработки ПО». Отдел делали специально под меня и по идее, я должен был нанять несколько программситов/админов. Увы, кризис ударил по компании, и мне пришлось работать 9 месяцев одному. Намучился, конечно, за это время я изрядно. Программировать, администрировать сервера и заниматься пользователями – сущий ад. И вот теперь моим страданиям должен прийти конец, т.к. начальство выделила бюджет на одного сотрудника. Так, что теперь я чуточку разгужусь и возможно смогу выделять больше свободного времени посвящать сайту. А еще, у меня для тебя есть небольшой сюрприз. Мы решились попробовать записать свой подкаст. Подробности, ты можешь прочитать в «IT-Новостях», этого номера. Все, говорить больше ничего не буду. Приятного чтения! Игорь Антонов
Над номером работали: Редактор: Игорь Антонов Графика: Soffrick (Рубрикаторы, кроме Psycho), ZeroXor (Обложка), Magistral (Рубрикатор «Психо») Верстка: Игорь Антонов Состав VR-Team: Fritooll, Egoiste, Lord_of_fear, Soffrick, Gensei (aka KeyWarez), Spider_NET
Железные НОВОСТИ
Создан прототип пневматического процессора Ученых, занимающиеся разработкой и совершенствованием процессоров условно можно разделить на две группы: особо креативных и консерваторов. Первые стараются придумать нестандартные решения и доказать, что все на самом деле проще, чем кажется, а вторые ломают голову и усложняют имеющиеся решения. Вторые пока особо ничем не отличились, а вот первая группа серьезно засветилась в начале сентября. На страницах журнала Lab on Chip, опубликовали интересную статью о достижениях ученых из Мичиганского Университета. Этим ребятам удалось создать процессор, способом передачи, информации которого является обычный воздух. Идея не нова и ее интересовались еще в далеких 60-х годах. Жаль только, что эти проекты перспективными не считались, поэтому особо их не пытались развить. Принцип работы нового оригинального процессора достаточно прост. Традиционными нулями и единицами являются создающийся в микроканале вакуум (0) и атмосфера (1). Продвижение информации регулируется специальными клапанами, управляемые в свою очередь дополнительными камерами, которые отделены от микроканала мембраной. В зависимости от подачи или откачки воздуха из камеры, мембрана выгибается и тем самым закрывает или открывает клапан. Таким образом, осуществляется передача информации для данного канала. Производительность таких процессоров достаточно низкая. В настоящее время, даже самые примитивные процессоры превосходят созданный прототип. Так, что новинка может быть востребована лишь для специфических задач. Процессоры по-самурайски Как стало известно в самом начале сентября, Японские инженеры собираются разработать энергоэффективный процессор. Для работы над таким большим проектом был создан альянс из самых лучших разработчиков. Новый процессор должен быть готов к 2012 году и самое главное, он должен стать конкурентоспособным. К проекту самураи подошли все страной. Уже известно, что главным финансистами станут различные министерства Японии (экономики, торговли). Сумма финансирования также известна, она составляет примерно $40 000 000. Ожидается, что главной особенностью новинки станет возможность работать от солнечных батарей и очень низкое энергопотребление. Такие процессоры будут идеально подходить для различной бытовой техники или смартфонов/коммуникаторов. Правда, чтобы достичь хороших продаж, японцам придется сделать действительно качественный продукт. Ведь, главный конкурент в этом сегменте рынка – компания Intel. Ей уже есть что предложить (я про Intel Atom), а к 2012 году она обязательно сможет представить более инновационные решения. GTX 260 с системой охлаждения Glaciator от ASUS
Совсем недавно, компания ASUS представила новую видеокарту GTX 260, оснащенную системой охлаждения Glaciator. Система охлаждения установлена на графическом процессоре и не соприкасается с памятью. Элементы цепи питания не имеют даже пассивных радиаторов. Лишь один установлен на чипе NVIO. В плане монтаже, новинка будет занимать место двух соседних слотов PCI Express. Причина этому – наличие двухъярусной CO. На борту видеокарты имеется два DVI порта, поддержка HDMI. Все необходимые проводки/переходники имеются в комплекте. Уже известно, что новая видеокарта скоро появится в продаже, но о какой-либо информации о цене пока нет. Остается только ждать и периодически мониторить официальный сайт компании ASUS. 3D моник от ViewSonic Любителям 3D наверняка известно, что одним из способов насладиться 3D эффектами на компьютере требуется как минимум две вещи – специальные очки и монитор с поддержкой 120 Гц. Само собой, это не единственный вариант достижения цели, но один из самых простых и дешевых. Беда только в том, что мониторов с сабжевой частотой раз и опчелся. Известный производитель мониторов компания ViewSonic, решила исправить это положение дел, путем выпуска монитора VX2265vm. Новый моник характеристики:
имеет
довольно
хорошие
Диагональ – 22” Разрешение – 1680х1050 (при развертке 120 Гц) Встроенные двухватные динамики (с поддержкой технологии SRS WOW HD) Достаточно стильный дизайн (смотри скрин) Монитор всем хорош и самое главное, на цена на него не такая уж и большая – примерно 320 евро. Вполне доступный ценник. Некоторые новостные издания, сразу ткнули пальцем на один минус – отсутствие поддержки FullHD. Мол, без этого уже никуда. В чем-то я с ними согласен, но в целом, на 22 дюймовом мониторе, такое разрешение не нужно. Так, что обращать внимание на этот малюсенький минус вряд ли стоит. Коробочные версии процессоров Celeron E3200 и E3300 уже в продаже
В июне этого года, компания Intel сделала анонс новеньких бюджетных процессоров семейства Celeron. Продажа новинок должна была начать в начале третьего квартала. Квартал уже подходит к концу, а боксовых версий все нет. На российском рынке доступны лишь OEM варианты, которые многих не устраивают. Что касается коробочных вариантов, то они лишь недавно засветились в японских магазинах. Посмотри на скрин и ты увидишь упаковку от Intel, выполненную в новом стиле. Кому, как, а лично мне новый вариант пришелся весьма по душе. Упаковка упаковкой, для нас главное узнать про возможности нового кристалла. Они вполне нормальные и соответствуют запрашиваемой цене. Так, процессор Celeron E3200 обладает тактовой частотой 2,4 ГГц, а его старший собрат E3300 гоняет на частоте 2,5 ГГц. Под капотом обоих процессоров по два 45 нн ядра степпинга R0 и по одному мегабайту кэша второго уровня. Частота системной шина равна 800 МГц. Оба процессора поддерживают виртуализацию, а значит, пользователи Windows 7, смогут работать в режиме совместимости с Windows XP. Как предполагается, основными потребителями новых камней станут пользователи, у которых материнские платы 775 сокета, и нет желания тратить большие сумму денег на полный апгрейд ПК. Toshiba и Hitachi представили вместительные мобильные винчестеры Компания Hitachi сделала упор на скорость и представила на суд общественности 2,5” жесткий диск Travelstar 7K500, с 500 гигабайтами на борту и скоростью вращения шпинделя 7200 об/мин. Диск оснащен интерфейсом SATA-300 и опционально может дополняться технологией шифрования данных BDE. К концу ноября, Hitachi планирует зарелизить EA версию этого винчестера, главным отличием которой станет повышенная долговечность использования. EA версия непременно станет востребованной в серверах (опять же, зависит от задач) и системах видеонаблюдения. Пока Hitachi хвастается своим маленьким скоростным диском, компания Toshiba не остается в тени и выпускает на рынок маленького кингконга – MK645GSX. Он не такой быстрый как диск от Hitachi, но зато, вместительней на 140 гигабайт. В итоге мы получаем диск на 640 гигабайт, со скоростью вращения 5400 об/мин и буфером объемом в добрых восемь метров.
2 быстрых гигабайта от Western Digital Моя любимая компания (из производителей жестких дисков) Western Digital выпустила долгожданные жесткие диски формата 3,5", с двумя гигабайтами на борту, 64 мегабайтным буфером и скоростью вращения 7200 об/мин. Новые диски доступны в двух версиях: Caviar Black, ориентированных для «настольных систем» и RE4, обладающие повышенным жизненным циклом. Серия RE4 больше подойдет корпоративным клиентам. Диски обоих серий оснащены быстрым интерфейсом SATA-600, двухпроцессорным контролером и сдвоенным приводом системы позиционирования магнитных головок. Винчестеры серии Caviar Black уже поступили в продажу и рекомендованная на них цена составляет $299. Начало продаж дисков серии RE4 намечено на ноябрь этого года. Ах да, чуть не забыл. Гарантия на новинки составляет целых пять лет. Весьма неплохой срок J.
Спрос на Blu-ray приводы вырастет во второй половине 2010 года Технология Blu-ray уже не нова, но до сих пор повсеместного распространения этот формат не получил. Преимущества по сравнению с DVD очевидны, существенных минусов вроде нет. В чем же причина торможения? Не желание переходить на новый формат? Увы, нет. Вопрос в первую очередь в цене, а второй причиной можно смело назвать малое количество фильмов, продающихся в этом формате. Я бы даже сказал, что контент – это дело наживное, а вот цена – куда важнее. Сейчас она высока как на сами приводы, так и на болванки. Кроме того, на рынке практически нет бытовых Blu-ray плееров (не считая PS3, которую, многие юзают как Blu-ray проигрыватель). За год ситуация конечно изменится, но не думаю, что сильно.
Written by Игорь Антонов Email: antonov.igor.khv@gmail.com www: http://vr-online.ru
НОВОСТИ IT
Настоящий хакерский квест 29 и 30 августа, в северной столице России состоялся 12-ый компьютерный фестиваль Chaos Constructions 2009 (CC2009). На этом фестивале, участникам конкурса предлагалось решить разнообразные задачи, связанные с компьютерной безопасностью. Результатом нахождения правильных ответов были кодовые слова. Цель всех конкурсов – узнать все секретные слова и сложить их в определенном порядке. Для тех, кто не смог побывать на этом замечательном мероприятии и попробовать свои силы в решении задач, организаторы конкурса и портал SecurityLab.ru, предоставляют уникальную возможность – возможность решить задания в комфортной домашней обстановке. Чтобы попробовать свои силы в нелегком хакерском деле, тебе требуется скачать два образа виртуальных машин (vmware): http://download.securitylab.ru/cc09.part01.rar http://download.securitylab.ru/cc09.part02.rar http://download.securitylab.ru/cc09.part03.rar http://download.securitylab.ru/cc09.part04.rar Далее все просто. Запускаешь их в VMWare Player. На обоих узлах настроены IP-адреса из подсети 192.168.192.0/24. В этой подсети, выполняя задания, связанные с информационной безопасностью, можно отыскать восемь ключей в формате CC09словоCC09. После того, как все ключи будут найдены, сложив их в правильном порядке, можно найти заветный «мега бонус», который так и не был представлен ни одним участником конкурса Hack Quest на CC2009. Если пройти задания тебе не удастся, то не переживай. В скором времени, на сайте securitylab.ru и party.cc.org.ru будут опубликованы материалы с описанием прохождения. FCKeditor мутировал в CKEditor + дорос до третьей версии Наверное, нет таких web-мастеров, которые ни разу не использовали в своих проектах один из лучших WYSIWYG редакторов – FCKeditor. Работать с этим продуктом очень удобно, а главное, в этом нет ничего сложного. Кроме того, в отличии от других альтернативных решений, FCKEditor хорошо подлежит кастомазации. Т.е. для своего web-проекта, ты можешь настроить FCKEditor по своему усмотрению. Начиная с третьей версии, разработчик изменил своему детищу имя. Знакомься, теперь его принято называть CEditor. Причина смена имени проста до безобразия. Дело в том, что оригинальное название (оно происходит от имени разработчика - Frederico Calderia Knabben), вызывает у англоязычной публики ассоциации с ругательством из четырех букв. Новое же название, является сокращение от Content and Knowledge Editor.
Про название кажись, все сказали, теперь немного о новинках третьей версии. Одним из главных нововведений – улучшенная производительность, полностью переработанный пользовательский интерфейс. Плюс ко всему этому, редактор соответствует рекомендациям по доступности W3C WCAG и US Section 508. Red Hat Enterprise Linux 5.4 В первых числах сентября, компания Red Hat зарелизила финальную версию операционной системы Red Hat Enterprise Linux 5.4. Основным отличием новинки от предыдущих версий – наличие гипервизора KVM (Kernelbased Virtual Machine). Теперь в качестве «гостевых» операционных систем могут быть Windows XP, Windows Server 2003/2008 и Red Hat Enterprise Linux 3/4/5. Помимо KVM, в новой версии также улучшена совместимость с процессорами Intel Xeon 5500 и шестиядерниками от AMD (Istambul). В качестве ядра, в новой версии красной шапки используется Linux 2.6.18.
Хочешь читать и комментировать новости? Гони паспорт! Китайские власти ввели в своей стране еще один «гениальный» закон. Теперь, все владельцы новостных порталов на территории китая, обязаны ввести в систему регистрации на сайте запрос паспортных данных. Вот захотел ты почитать и раскритиковать власть – не спеши. Паспортные данные в базе и найти такого «комментатора» полиции особого труда не составит. Не стоит наивно полагать, что есть возможность ввести абсолютно левые данные. Нет, их ввести реально, но если попадешься, то будет еще хуже. Китайское правительство в очередной раз сузила пространство сети Интернет для своих граждан. Как говориться, «Меньше знаешь, крепче спишь». Мегафон дарит анлим для пользователей OperaMini Инет любят серфить все без исключение. Скажу больше, многие (например, я) не могут слишком долго находиться в Offline и активно пользуются мобильным интернетом. Да, он пока дорог, но сэкономить свои кровные всегда помогала OperaMini. Это, пожалуй, единственный J2ME браузер, позволяющий, не кисло сэкономить трафик. Так вот, для всех пользователей этого замечательного продукта, сотовый оператор Мегафон приготовил интересное предложение – услуга «Безлимитный Интернет с OperaMini». Фишка услуги в том, что при ее подключении, ты можешь серфить инет с мобилки (естественно, пользуясь лишь OperaMini) всего за 7 рублей в сутки. Сам объем трафика учитываться не будет. Активным любителям мобильного Интернета, стоит обязательно обратить внимание на это предложение. Жаль, что на сегодняшний день, столь привлекательной услугой могут воспользоваться лишь
жители московского региона. Когда предложение доберется до остальных городов – неизвестно. Почитать подробности по теме можно здесь: http://moscow.megafon.ru/services/internet/megaopera.html. Cross Site Scripting в Twitter От багов не застрахован никто. Казалось бы, вылежишь весь код, прогонишь тесты, воспользуешься спец сканерами, а неееееет. Где-нибудь, все равно проглядишь. Подобная ситуация недавно случилась у разработчиков популярного CMF – Ruby On Rails. Умельцы, поковыряли код, и нашли способ внедрения вредоносного JavaScript. Багу закрыли достаточно оперативно, поюзать ее все равно успели. Не будем рассказывать, как с ее помощью надругались над мелкими проектами, а сразу взглянем на всем известный Twitter. На этом сервисе смогли воспроизвести XSS атаку. Пока заявлений о захвате аккаунтов и прочих жалоб пользователей твиттера нет, но, учитывая, что твиттером пользуются тысячи людей (зачастую, не компитентых в плане IT безопасности), то представить примерные последствия не сложно. Состоялся релиз RAD Studio 2010 Конец августа ознаменовался приятным сюрпризом для всех поклонников Delphi и C++ Builder. Компании Embarcadero выпустила RAD Studio 2010. В новой версии этой среды присутствует ряд изменений, среди которых: улучшенная IDE, поддержка распознавания жестов, обновленные драйвера для работы с базами данных, расширенные возможности DataSnap, дополнительные фишки компилятора, повышение стабильности работы самой среды, фоновая компиляция, поддержка чернового варианта C++0x, обновление библиотек Boost, STL, TR1 и многое другое. Чтобы познакомиться со всеми новинками на практике, я рекомендую тебе сбегать на официальный сайт (или сразу сюда: https://downloads.embarcadero.com/free/rad_studio) и скачать пробную 30-ти дневную версию. Лично я уже это сделал и возможно в следующем номере напишу свой обзор и мысли по поводу новинок. Компании Embarcadero можно уже отдать должное, т.к. после покупки CodeGear, они не забросили развитие продукта в долгий ящик, а занимаются этим регулярно.
QIP PDA Symbian 2011 для Nokia Буквально пару дней назад, вышла новая версия популярного IM клиента QIP для смартфонов Nokia, работающих под управлением операционной системы Symbian. Новинка поддерживает скины, различные цветовые схемы, отображает анимированные смайлы и дружит с самыми популярными протоколами передачи сообщений: ICQ, Mail.Агент, Jabber. Пользователям смартфонов от Nokia и любителям QIP обновиться в обязательном порядке.
Вышла новая книга Михаила Фленова – Библия C# В начале августа случилось событие, про которое мы не могли не написать пару строчек. На прилавках книжных магазинов появилась одна из самых ожидаемых книг от Михаила Фленова – Библия C#. Буквально в первую неделю продаж, книга стала бестселлером (по данным магазина books.ru). Если ты хочешь познакомиться с одним из самых востребованных сегодня языков программирования, то эта книга однозначно для тебя. В ней, Михаил, простым языком и на хороших примерах описал основные возможности C#. Тебе остается только впитать всю эту информацию, и начать работать. Мне уже удалось полистать эту книгу, и я смело могу сказать, что для новичков – это самое то. Проще не найти! Сразу хочу развеять сомнения. Книга не сделает из тебя супер гуру C#. Она даст хорошую точку отправления, а дальше нужно будет углублять свои знания и почитать других авторов. Но повторюсь, для начала – это книга один из лучших вариантов. Подкаст от VR-Online Мы долго хотели это сделать и наконецтаки решились… попробовать себя в записи подкастов. Открою небольшой секрет. Замутить свою подкаст ленту мы планировали еще в конце прошлого года, но из-за отсутствия времени и внутренних переворотов постоянно откладывали на потом. Что ж, теперь мы готовы. Если ты посещаешь наш форум, то уже, наверное, видел тему с обсуждением и шоунотами. По идее, на следующей неделе мы уже сможем опубликовать пилотный выпуск нашего шоу. Надеемся, он тебе понравится, и ты станешь регулярным слушателем. Не стесняйся нас критиковать и предлагать свои идеи. Мы всегда рады конструктивной критики. Весь свой негатив/похвалу/предложения шли на antonov.igor.khv@gmail.com и будь уверен, что твое письмо не останется не замеченным. Кстати, а может, ты хочешь к нам присоединиться и стать одним из ведущих? Нет проблем! Обязательно напиши об этом на antonov.igor.khv@gmail.com.
Written by Игорь Антонов aka Spider_NET Email: antonov.igor.khv@gmail.com www: http://vr-online.ru
Namespace в PHP. Основы Одной из интересных новинок PHP 5.3.0 являются пространства имен (namespace). Те, кто работает с Java и C# уже догадались, о чем идет речь. В этих языках такая возможность присутствовала с самого начала. И вот теперь, php-программисты могут тоже использовать нечто подобное в своих проектах. В рамках этой статьи я расскажу тебе о предназначении пространств имен и пользу, которую они могут принести. Постараюсь не грузить твой мозг сухой теорией и изложить все максимально интересно. Итак, let's go! Для чего же нужны эти пространства имен? На секунду представь, что ты являешься разработчиком мега крутой библиотеки. Ты с неистовым рвением стараешься написать классный продукт и при первой возможности дописываешь новые функции. Постепенно твой код увеличивается и рано или поздно наступает день, когда ориентироваться в нем становится крайне проблематично. Нет, я понимаю, что ты придерживаешься хорошего тона в написании кода, но когда у тебя уже объявлено десятки методов и разных классов, то запутаться в этом хозяйстве проще пареной репы. Не будем о грустном. Просто представь, что ты решил расширить какой-то класс (или создать новый), создав для него дополнительный метод. Вроде все просто. Нашел класс, описал метод. Но где гарантии, что используемое имя метода или самого класса не использовалось ранее? Да, можно банально проверить, воспользовавшись поиском или Class Explore (если ты работаешь в IDE). Это не очень долго. Ну а что если тебе поневоле требуется создать класс с именем, которое уже было использовано? Конечно, есть вариант не париться и обозвать метод/класс по-другому. Решение хорошее, когда пишешь весь код самостоятельно. К сожалению, этот способ нельзя назвать хорошим, когда требуется привить в свое приложение "чужой код". Ведь в чужих рукописях тоже могут быть определены методы/классы/функции с такими же именами, как и у тебя. Что делать? Ломать голову и придумывать им все новые имена, а потом ручками переименовывать? Выдумывать хитроумные префиксы и давать очень длинные имена (например, как это сделано в Zend)? Раньше-то пришлось бы, но теперь, эту проблему элегантно решат пространства имен. С их помощью, по-настоящему удобно структурировать код. Через несколько минут ты в этом убедишься. Подведем небольшой итог и запомним раз и навсегда, что пространства имен (namespace) – это некое хранилище, предназначенное для логической группировки уникальных имен. Ты можешь объявить несколько пространств имен и описать в них классы с одинаковыми именами/методами, но разным функционалом. При инициализации таких объектов, ты должен будешь указать пространство имен, содержащее описание нужного тебе объекта. Пространство имен можно сравнивать с папками в файловой системе. Всем известно, что в одной папки не может файлов с одинаковыми именами. Но мы опять же, знаем, что установочный файл большинства программ – это setup.exe. Если попытаться поместить установочные файлы разных программ в одну и ту же папку, то мы увидим коварную птицу обломинго. Система нам
сразу выдаст предупреждение о том, что такой файл в этой директории существует и для выполнения задания, она (система) может заменить имеющийся файл, на копируемый. Согласившись на это сомнительное предложение, ты напрочь затрешь имеющуюся программу. Выход из такой ситуации – создать отдельную папку и поместить установочный файл второй программы в нее. При необходимости установки первой или второй программы, ты будешь руководствоваться именем папки, т.е. запускать установочный файл нужный тебе программы. Надеюсь, из этого примера ты уловил суть и познал силу пространств имен, а если нет, то не отчаивайся, после рассмотрения представленных ниже примеров, все встанет на свои места. Пространства имен на практике Первым делом, сразу хочу развеять сомнения, что при использовании PHP 5.3.0 тебе придется влезать в свой старый код и принудительно применять пространства имен. Все зависит только от твоего желания. Если ты не используешь нэймспейсы, то твой код просто-напросто располагается в глобальном пространстве. Обращение ко всем классами/методам/функциям будет происходить точно также, как и было раньше. Теперь поговорим о практике. Пространства имен использовать не просто, а очень просто. Для объявления нэймспейса требуется воспользоваться новым ключевым словом - namespace. Не торопись открывать IDE/текстовый редактор и пробовать новинку. Сначала запомни одно маленькое, но важное правило. Объявление namespace должно производиться в самом начале файла сценария. Т.е. до него нельзя использовать какой-либо php/html код (кроме declare). Взглянем на простейший пример: <?php namespace MyProject; //Здесь должен быть весь твой код, который относится к пространству MyProject ?>
При таком объявлении, весь код описанный после "namespace MyProject", будет соответствовать пространству имен MyProject. Чуть позже я покажу тебе, как производить вызов кода из пространства имен, а пока еще немного поговорим о синтаксических нюансов. Вполне возможно, что у тебя возникнет необходимость объявить несколько пространств имен в одном файле сценария. Это абсолютно нормальное желание и php может полностью его удовлетворить. Взгляни на следующий пример: <?php //Первое пространство имен namespace MyProject; //Твой код, относящийся к пространству имен MyProject namespace MyProject2; //Твой код, относящийся к пространству имен MyProject2 namespace MyProject3 { //Третье пространство имен } ?>
Обрати внимание на объявление третьего пространства имен (MyProject3). После указания имени я открыл скобки, а в остальных не указывал. Разницы нет никакой, поэтому используй тот вариант, который тебе больше все по душе. В своих проектах я используй как раз
последний вариант. Почему? Среды разработки в таком случае позволяют сворачивать код, а это удобно. В остальном, разницы нет. Не стоит злоупотреблять возможностью объявления нескольких пространств имен в одном файле. Да, php позволяет это делать, но не нужно так поступать без крайней необходимости. Если ты объявишь кучу нэймспэйсов в одном файле, то легко сможешь в них потеряться. В итоге получиться - "от чего ушли, к тому и пришли". Уж лучше придерживаться стратегии один файл - одно пространство имен. Дочерние пространства имен PHP 5.3.0 также поддерживает и дочерние пространства имен. Для определения дочернего нэймспэйса ты должен использовать символ обратного слэша. Например: <?php //Объявляем пространство имен namespace MyProject { //некий код } //Объявляем дочернее пространство имен namespace MyProject\subNamespace { //некий код }
?>
Вызываем код из пространства имен Основы и теорию по работе с пространствами имен я тебе рассказал и теперь самое время попробовать все это дело на реальной практике. Создай новый файл сценария и перепиши в него ниже представленный код: <?php //Пример объявления пространства имен namespace myProject { //Здесь должен быть код, относящийся к пространству имен myProject. function helloWorld() { print('Hello world!'); } } //Объявляем второе пространство имен, в котором опишем констансту и //произвольный класс namespace myProject2 { const MY_CONST = 'PHP 5.3.0'; class MyClass { static function helloWorld() { print('Hello world from Class'); } } } //Дочернее пространство имен namespace myProject2\sub {
function helloWorld() { print('Hello world from sub namespace'); } } ?>
В этом коде я объявил два основных нэймспэйса (myProject, meProject2) и одно дочерние myProject2\sub. В первом пространстве имен, объявлена всего одна функция, которая отвечает за вывод традиционного "Hello World". Во втором я объявил константу и класс. Чтобы продемонстрировать вызов класса, я описал в нем один метод - helloWorld(). Не трудно догадаться, что после его вызова, он как и одноименная функция выведет фразу, знакомую каждому программисту. Дочернее «пространство имен», по сути, не отличается от MyProject. За исключением того, что оно является дочерним по отношению к myProject2. Сохрани всю эту писанину в файл под каким-нибудь именем (я выбрал sample_of_namespace.php) и создавай еще один файл сценария. В нем-то мы и напишем код, демонстрирующий вызов функций/класса наших неймспэйсов. Итак, полное содержимое сценария, отвечающего за вызов кода из пространства имен приведен ниже: <?php //Установим в заголовках тип содержимого. header('Content-type:text/plain'); //Подключаем наш файл со всеми функциями и нэймспэйсами require_once('sample_of_namespace.php'); //Вызываем функцию helloWorld() из пространства имен myProject echo \myProject\helloWorld() . "\n\n"; //Выводим содержимое константы из пространства имен myProject2 echo \myProject2\MY_CONST . "\n\n"; //Ну а теперь взглянем на работу с классами echo \myProject2\MyClass::helloWorld() . "\n\n"; //Попробуем вызвать функцию из дочернего пространства имен echo \myProject2\sub\helloWorld() . "\n\n"; ?>
Думаю, объяснять представленный код смысла нет, т.к. все должно быть, очевидно из комментариев. Сохраняй этот файл под каким-нибудь именем и попробуй его запустить. Подбиваем итоги Подводя итоги, хочу сказать. Грамотное использование пространств имен, позволит очень хорошо структурировать код и упростить дальнейший рефакторинг. Можно считать, что разработчики PHP потрудились на славу и реализовали действительно полезную возможность. Жаль, только ждать ее пришлось долго. Но как говориться: "Лучше поздно, чем никогда". Если, тебя заинтересовала тема пространства имен, то читай в этом же номере вторую часть статьи, посвященную использованию этой полезной возможности. На этом все. Бай! P.S. Данная статья написана с опорой на статью "How to Use PHP Namespaces" (http://www.sitepoint.com/blogs/2009/07/13/php-53-namespaces-basics/).
Written by Игорь Антонов aka Spider_NET www: http://vr-online.ru Email: antonov.igor.khv@gmail.com
Файловый менеджер. Часть 1 Сегодня я покажу тебе, как использовать функции для роботы с файлами и жестким диском на примере файлового менеджера. Весь код приведен на С++, но я думаю, что эта статья будет полезна и Delphiпрограммистам (в одном из старых номеров, у нас аналогичная статья, но с использованием Delphi – прим. редактора). Начинаем кодить Итак, начнем. Обо всех функциях я буду рассказывать тебе походу статьи, но приготовься к тому, что надо будет много заглядывать на сайт msdn. Открывай Microsoft Visual C++ (я использовал Express Edition 2008). Создавай новый проект. Итак, нам понадобятся следующие компоненты Panel 2 штуки, ListView 2 штуки, ComboBox 2 штуки, Button 6 штук, StatusStrip. Вид моей формы ты можешь увидеть на картинке.
Главное окно программы Итак, вначале нам нужно получить список установленных в системе устройств (Локальных дисков, CD-ROM и других). Для этого существует функция GetLogicalDrives. Она имеет следующий прототип: DWORD WINAPI GetLogicalDrives(void)
Она ничего не принимает, а возвращает двойное слово, каждый из первых 26 битов которого принимает значение 1 или 0. 1 значит, что устройство с такой буквой имеется, 0 – нет. Если произошла ошибка, функция вернет 0. В обработчике события формы Shown запишем следующий код: DWORD Drivers;
int i, k; System::Char c; System::String^ s; Drivers=GetLogicalDrives(); if (Drivers!=0) { for (i=0; i<32; i++) if ((Drivers & 1<<i)!=0) { k=i+65; c=(char)k; s=c+":\\"; this->comboBox1->Items->Add(s); this->comboBox2->Items->Add(s); } }
Переписывай его, а я расскажу, что он делает. Сначала вызываем функцию GetLogicalDrives(). Если она вернула не 0, то в цикле берем очередной бит Drivers, путем операции сдвига. Если он не равен 0, то добавляем новый элемент к обоим спискам. Теперь перейдем к поиску файлов в директориях. За это отвечают функции FindFirstFile и FindNextFile. Разберемся с каждой. Первая, имеет прототип HANDLE WINAPI FindFirstFile(LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData).
Первый параметр - это указатель на строку, в которой записана директория или файл для поиска. Второй соответственно указатель на структуру _WIN32_FIND_DATA. Она имеет такой вид: typedef struct _WIN32_FIND_DATA { DWORD
dwFileAttributes;
FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD
nFileSizeHigh;
DWORD
nFileSizeLow;
DWORD
dwReserved0;
DWORD
dwReserved1;
TCHAR
cFileName[MAX_PATH];
TCHAR
cAlternateFileName[14];
}
Суть переменных понятна из их названия, если будут вопросы, то посмотри более подробное описание на msdn. В случае успеха функция вернет указатель нужный для функций FindNextFile и FindClose. А в структуру будет записана информация о найденом файле. Затем нужно вызвать функцию FindNextFile. Она имеет следующий прототип:
BOOL WINAPI FindNextFile(HANDLE hFindFile, LPWIN32_FIND_DATA lpFindFileData)
Ей надо передать только что полученный HANDLE и указатель на структуру. Если функция вернула False, значит, поиск закончился, и нужно вызвать функцию FindClose, для корректного окончания поиска. Для удобства я написал собственную функцию FindFile. Она ищет файлы в директории, переданной в качестве первого параметра, и заполняет listView номер которого, передается во втором параметре. Ее код довольно просто и максимально прокомментирован, поэтому ты разберешься в нем самостоятельно. Я поясню только одно обстоятельство. Информации о времени создания, последней модификации и запуска файла/папки запишется в структуру FILETIME, совершенно непригодную для использования, и время будет представлено в международном формате UTC. Для преобразования времени в локальное, нужно вызвать функцию FileTimeToLocalFileTime. Ей нужно передать адреса двух структур FILETIME. Причем во вторую будет записан результат преобразования. Далее для преобразования времени в системное, тоесть с часами минутам и секундами нужно вызвать функцию FileTimeToSystemTime, объявленную следующим образом: BOOL WINAPI FileTimeToSystemTime(const FILETIME *lpFileTime, LPSYSTEMTIME lpSystemTime)
Ее параметры уже должны быть тебе понятны, поэтому не буду повторятся. На этом обзор функции FindFile можно закончить и перейти к следующей самопиской функции GetSize. Она принимает строку с устройством информацию, о котором нужно получить. А возвращает строку с информацией об объеме и свободном пространстве. Собственно весь ее смысл заключается в вызове функции GetDiskFreeSpaceExW, объявленной следующим образом: BOOL WINAPI GetDiskFreeSpaceEx( LPCTSTR lpDirectoryName, PULARGE_INTEGER lpFreeBytesAvailable, PULARGE_INTEGER lpTotalNumberOfBytes, PULARGE_INTEGER lpTotalNumberOfFreeBytes)
Тип PULARGE_INTEGER представляет собой следующее: typedef union _ULARGE_INTEGER { struct { DWORD LowPart; DWORD HighPart; } ; struct { DWORD LowPart; DWORD HighPart; } u; ULONGLONG QuadPart; } ULARGE_INTEGER, *PULARGE_INTEGER;
Более подробную информацию сможешь прочитать на msdn. Я же скажу, что LowPart и HighPart являются двумя половинами большого 64-битного числа. А QuardPart это все число целиком. С ним мы и будем работать. Вернемся к функции. Смысл ее параметров должен быть понятен из названия. Все ни опциональны, и если что-то не надо можно передать NULL. Нам понадобятся 2 и 3 параметры. Далее по ходу моей функции эти числа преобразуются в строку и снабжаются размерностью (Б, Кб, и т. д).
На очереди выбор элемента в ComboBox. Он прост ты разберешься сам. Скажу лишь, что там вызываются функции FindFile и GetSize. В двойном щелчке по ListView тоже не должно возникнуть проблем. Совсем забыл сказать об еще одной самописной функции. Это Init. Она служит лишь для того, чтобы задать размеры для всех объектов при изменении размеров формы. Заключение Надеюсь, что моя первая статья не получилась комом J. Эта была только первая часть. Вторая, я надеюсь, выйдет в следующем номере. В ней я расскажу о еще нескольких функциях (надеюсь, ты заметил, что кнопки никак не были использованы). Если возникли вопросы, присылай их на почтовый ящик – разберемся.
Written by Крылов Егор E-mail: krilov-egor@yandex.ru
Windows 7 для разработчика Технологические нововведения, прогнозируемые для реализации в новой ОСи Windows 7 - пожалуй, первая операционная система от Microsoft, в которой было бы реализовано столько интересных для программиста новых технологий. Несмотря на то, что финальный релиз системы еще не готов, уже есть реальная возможность познакомиться со всеми ее новинками и даже опробовать многие из них на практике.
Взаимодействие с железом Windows Touch и нежные прикосновения руками Ты, наверное, уже в курсе, что в новой винде кардинальным образом изменился графический интерфейс. Как утверждает MS, он стал еще проще, пушистее и обзавелся поддержкой мультисенсорного ввода. Технология MultiTouch (правильнее сказать, Windows Touch) реализована практически в полном объеме и если ты прешься от интерфейса iPhone, то приготовься, то же самое можно будет делать и в Windows 7 (само собой, если ты раскошелишься на соответствующий моник). Для реализации всех фишек технологии Windows Touch, разработчики приготовили большой набор API функций, поэтому встроить в свою программу поддержку "MultiTouch" интерфейса будет достаточно легко. Для этого в API имеются функции, позволяющие научить приложение распознавать стандартные жесты (эталонные для других приложений). В большинстве приложений особые "выкрутасы" не нужны, поэтому этих функций хватит за глаза, а если тебе окажется их мало (само собой, ведь наши планы не имеют границ :), то к твоим услугам будет пакет низкоуровневых API-интерфейсов, с помощью которого легко можно будет решить нестандартную задачу (например, придумать свой жест и забиндить на него реакцию системы). Платформа девайсов (Windows Device Platform) Еще одна интересная технология, играющая немаловажную роль в «семерке». Трудно представить современный комп без дополнительных девайсов и всевозможных гаджетов. Принтер, сканер, mp3 плеер, труба, - устройства, которые имеются у большинства юзеров. Использовать эти девайсы по назначению, - дело нехитрое, а вот разработка приложений для взаимодействия с этими устройствами напоминает песню группы Sepultura. Проблема не нова, но в Windows 7 ее попытались решить с помощью создания целой платформы Windows Device Platform. Суть этого "ноу-хау" заключается в создании набора API для взаимодействия с различными устройствами. Не стоит обольщаться и думать, что после перехода на Windows 7 ты сразу сможешь написать мега-синхронизатор для своего мобильника. Вовсе нет. Чтобы воспользоваться всеми прелестями новинки, нужно подождать, пока производители устройств реализуют ее поддержку. Windows Biometric Framework В Windows 7 появилась служба для взаимодействия с биометрическими устройствами, "Windows Biometrics FrameWork". Теперь нет необходимости использовать специальное программное обеспечение, поставляемое производителями биометрических устройств. Все
операции по взаимодействию возьмет на себя служба Windows Biometric Service. В составе операционной системы присутствует специальное приложение, позволяющее управлять процессом считывания отпечатков пальцев и устанавливать соответствующие политики безопасности. Например, для каждого пользователя можно будет закрепить "определенный палец", успешное считывания отпечатка которого будет предоставлять пользователю вход в Windows или домен.
Архитектура Windows Biometric Service Стоит также заметить, что работа с устройством не напрямую, а через службу имеет как минимум еще один плюс, - безопасность. Клиентское приложение не имеет прямого доступа к устройству, а раз так, то и вероятность изменить конфиденциальные данные через клиентское приложение существенно снижается. На данный момент в этой бочке меда просматривается и небольшая ложечка дегтя - поддержка ограниченного круга устройств. На сегодняшний день осуществлена поддержка девайсов для считывания отпечатков пальцев. Windows Sensor and Location Platform Windows Sensor and Location Platform - платформа, созданная для обеспечения взаимодействия ОС с различными датчиками устройств (опять вспоминаем iPhone). Основное назначение этой технологии - дать возможность разработчикам создавать "умные" приложения, способные приспосабливаться к условия окружающей среды в которой в настоящее время работает пользователь, или даже к его географическому местоположению. Если на разработку игр тебе, мягко говоря, пофиг, то не отчаивайся. В тулзах новые технологии будут тоже востребованы. Например, ты можешь заюзать их при создании "умного" пользовательского интерфейса. "Снимай" показания датчика освещения и в зависимости от их значений предоставляй юзеру определенный вид интерфейса. Опять пример. Когда пользователь работает при солнечном освещении, то разумней всего сделать интерфейс приложения более контрастным и с увеличенными шрифтами (на глянцевом дисплее при солнечном свете контрастный шрифт будет смотреться лучше), или наоборот, если сейчас вокруг темень, применить к интерфейсу насыщенные цвета. Location Platform - платформа, позволяющая работать с устройствами определения географического местонахождения объекта. Типичный пример таких устройств - GPS. Используя возможности платформы, ты можешь встраивать в свои приложения поддержку всех соответствующих функций.
Все возможности этих платформ доступны в виде огромного числа API функций (С++/управляемый код). В SDK производители устройств найдут спецификацию разработки драйверов устройств, а разработчики прикладных решений интересные примеры использования технологий. Для тех, у кого нет никаких датчиков (я почему-то уверен, что ты тоже из их числа), в SDK припасены соответствующие эмуляторы.
Архитектура платформы Windows Sensor Platform
Новые интерфейсные возможности Гаджеты Многим юзерам, Windows Vista полюбились за так называемые гаджеты – мини-приложения, располагающиеся на SideBar и показывающие различную полезную и бесполезную информацию. В Windows 7 от боковой панели решили полностью отказаться, а гаджеты размещать прямо на рабочем столе. Это, несомненно, прикольней, чем наличие лишней панели, отъедающей немало системных ресурсов и драгоценного пространства. Сама технология разработки гаджетов осталась прежней, за исключением двух маленьких нововведений - теперь их можно устанавливать программно и настраивать показ ошибок, возникающих при работе.
Проапгрейженный TaskBar
Самая заметная новинка Windows 7, с точки зрения пользователя - обновленная панель задач. Причем не просто обновленная, а полностью переделанная, как в визуальном плане, так и с точки зрения функциональности. Реально, новый TaskBar - не просто симпатичная панелька с большими кнопками, а целый инструмент для организации быстрого доступа к часто запускаемым приложениям. В связи с этим, одной из первоочередных задач, стоящих перед грамотным разработчиком будет реализовать в своем приложении полную поддержку взаимодействия с TaskBar. Под взаимодействием я подразумеваю, реализацию функций, необходимых для использования новых возможностей панели задач. Например, JumpList (как самая из востребованных функций обновленного TaskBar). Суть JL аналогична меню "Пуск", но только для конкретного приложения. В этом контекстном меню должны быть ссылки на основные действия программы и перечисления последних открытых (если приложения работает именно с содержимым файловой системы) файлов и папок. Другим примером возможностей панели задач может быть - IconOverlay (перекрывания иконок), позволяющий использовать несколько иконок, для отображения текущего статуса приложения. Для организации в своем приложении всех этих функций, в Windows 7 предусмотрены соответствующие API функции и интерфейсы. Описание большинства этих функций уже доступно для чтения в MSDN, а примеры кода приведены в SDK beta и в библиотеке Window API CodePack. Windows Scenic Ribbon Интерфейс Ribbon, впервые представленный в MS Office 2007, многими был оценен по достоинству. Начиная с Windows 7, Ribbon перерос в Scenic Ribbon и стал неотъемлемой частью операционной системы. Это означает, что теперь можно создавать приложения с современным интерфейсом как на управляемом коде, так и используя привычный Win32 API. В общем, есть, где душе кодерской разгуляться.
Системные новинки Разработчикам драйверов посвящается Знакомый всем системным программистам набор "Windows Driver Kit" также подвергся заметному улучшению. В третью версию этого решения вошла обновленная документация и многочисленные примеры, признанные облегчить жизнь кодеру. Среди примеров присутствуют исходники драйверов, демонстрирующие использование новых технологий (например, Sensor Location). Разобравшись со всем этим добром, ты без проблем напишешь свой ][-драйвер. Кстати, чуть не забыл рассказать про самое главное. В WDK 3.0 реализована поддержка анализа статического кода с использованием PRefast. В состав PRefast входит компонент PREfast for Driver для обнаружения ошибок в коде драйверов режима ядра. PowerShell 2.0 Технология PowerShell постепенно завоевывает сердца админов, привыкших расходовать время с пользой. Действительно, зачем постоянно тратить время на выполнение одной и той же операции, если ее можно автоматизировать? На PS это сделать легко. К счастью,
программирование на PowerShell не сравнить с аналогичной разработкой под bash, а значит, освоить данную вещь сможет даже самый начинающий программист. В Microsoft понимают перспективу данной технологии, поэтому в Windows 7, представлена новая версия этого мощного средства, с обновленными возможностями: 1. PowerShell обзавелся графической средой разработки. Программировать сценарии стало еще проще и понятней. Среда обладает всеми необходимыми средствами для комфортной разработки (Отладчик, подсветка синтаксиса и т.д.), что делает процесс разработки схожим с созданием приложения в таких средах как Visual Studio. 2. Количество доступных командлетов существенно возросло. Добавились командлеты для получения информации и управления такими службами как: IIS, ActiveDirectory и т.д. 3. Поддержка удаленной работы. Дарит возможность одновременно выполнять команды на удаленных компьютерах с одного, на котором работает служба. 4. Транзакции. Начиная с версии 2.0, ядро и интерфейсы технологии обзавелись поддержкой транзакций. 5. Разбивка сценария. В новой версии стало возможно разбивать разрабатываемые сценарии на отдельные составляющие - модули. Таким образом, появляется возможность многократного использования кода
.
Trigger Start Service Службы Windows всегда считались одним из самых узких мест системы. Для большинства системных сервисов по умолчанию установлен режим автозапуска при загрузке ОС. Таких служб немало и из-за их совместного старта требуется дополнительное время на загрузку ОС. Для решения этой проблемы, нам всегда приходилось выставлять ненужным сервисам режим запуска «вручную». В Windows 7 такие рутинные действия не требуются, т.к. кодерам стала доступа возможность создавать так называемые Trigger-сервисы, запуск, которых зависит от определенных событий. Например, если ты кодишь сервис для взаимодействия с мобильным телефоном, то нет смысла держать твой сервис в работающем состоянии, пока устройство не будет подключено.
В помощь разработчику Windows API CodePack for Microsoft .NET Framework Vista-девелоперы хорошо знакомы с библиотекой Vista Bridge, в которой реализованы все необходимые интерфейсы для доступа ко всем новым технологиям системы. К моменту финального релиза Windows 7, выйдет аналогичная библиотека с новым именем - Windows API CodePack for Windows .NET Framework. Эту библиотеку будут составлять несколько либ, обеспечивающих простой доступ к таким функциям системы, как: - Библиотеки - Windows Sensor Platform - TaskBar - TaksDialogs - Windows Location Platform В настоящий момент (на момент написания статьи – середина мая) библиотека находится в стадии альфа-версии (ссылку на библиотеку можно найти во врезке). Финальный релиз должен появиться незадолго до релиза самой Windows 7. Windows 7 SDK На сегодняшний день SDK для Windows 7 находится в стадии beta и это означает, что к релизу его содержимое изменится и пополнится новыми интересными примерами и т.д. Тем не менее, уже сейчас в нем есть, на что посмотреть. Не буду рассматривать все примеры, а лучше заострю твое драгоценное внимание на тех, что демонстрируют новые технологии. Конечно же, в первую очередь это примеры использования возможностей новых платформ. В SDK есть прекрасный пример, демонстрирующий идею использования "умного" интерфейса, на примере всем известного MSDN Reader'а. Приложение взаимодействует с датчиками освещения и при изменении их показателей меняет оформление контента. При увеличении яркости света, содержимое приложения становится более контрастным (увеличиваются шрифты, добавляется жирность, интервал между строк становится больше), а при уменьшении - возвращается в исходное положение. Поскольку сейчас наличие сенсорных датчиков считается диковинкой, то для тестирования примеров придется воспользоваться драйвером-эмулятором устройства (поставляется вместе с SDK). Помимо демонстрации Windows Sensor Platform в SDK представлены примеры программирования Super Bar (использования Jump List и т.д.), создания интерфейса Scenic
Ribbon, новых возможностей фильтрации трафика и т.д. Если ты всерьез собираешься заняться разработкой под Windows 7, то обязательно скачай SDK и разбери его примеры в реальных условиях (например, на Windows 7 RC).
Windows 7 для WEB-разработчиков Internet Explorer 8 Ты уже наверняка знаешь, что в состав Windows 7 войдет новая версия браузера Internet Explorer 8. Изменения в нем затронули как сам движок, так и функционал. Начиная с этой версии, в браузере появились инструменты для разработчиков (Developer Tools), предназначены они для отладки представления страниц, и сценариев, написанных на языке JScript. Используя Developer Tools, ты можешь изменять значения любых тегов html документа "на лету" и просматривать результат изменений. При подгонке дизайна, или отладке JScript эти возможности будут кстати. Считай, что юзаешь FireBug, только в IE :).
Инструменты для разработчиков в IE8 Вопросы совместимости Самый страшный день для любого разработчика тот, когда хорошо отлаженное приложение приходится переносить под новую версию ОС. На этом шаге всплывают все нестандартные решения и "хаки", которые затрудняют переход. Чем больше было использовано недокументированных функций, тем болезненней будет происходить миграция. Увы, при использовании обходных маневров, никто не может дать гарантии, что используемая тобой суперфункция будет существовать в новой версии ОС. Именно поэтому нужно начинать
приучать себя к использованию API исключительно из официальной документации. Если ты закодил приложение под Windows Vista без использования "трюков", то можешь спать спокойно, в 99% оно нормально перенесется и будет безошибочно функционировать и в Windows 7, а если нет... лучше сразу попытаться переписать проблемные участки кода или оставить все как есть и надеяться на лучшее. С приложениями разработанные под Windows Vista все понятно, с большинством из них проблем не возникнет, а как бы с теми, что были оптимизированы и созданы для работы, скажем, в Windows XP? Увы, но из-за провала Windows Vista, многие остались в XP и продолжали разрабатывать приложения именно под эту ОС. При переносе таких программ в Windows 7 тебя будут встречать те же проблемы, что и при переносе в Windows Vista. Если планируешь перескочить Windows Vista и перенести свое приложение сразу на Windows 7, то крайне рекомендую сначала обкатать свое творение на Vista. Вместо реального тестирования приложения в Windows 7, ты можешь воспользоваться специальной утилитой Application Verifier (смотри http://blogs.msdn.com/), позволяющей выполнить тест на совместимость без непосредственной установки Windows 7. Также очень рекомендую ознакомиться с электронными книгами: "Обеспечение совместимости приложений. Для разработчика" и "Обеспечение совместимости приложений. Для IT Специалиста". Эти книги распространяются совершенно бесплатно, ссылки на их загрузку приведены во врезке.
Утилита для тестирования совместимости
Вопросы совместимости словами сотрудников Microsoft В Windows 7 поддерживается ряд технологий, обеспечивающих совместимость приложений, написанных для предыдущих версий ОС. ИТ-специалисты могут решить проблемы совместимости с помощью инфраструктуры обеспечения совместимости (Application Compatibility Infrastructure), позволяющей «латать» приложения с помощью «заплаток» (shims) и уровней совместимости (layers), а разработчикам предоставляются средства тестирования приложений (Application Verifier, тестовые утилиты для сертификации приложений), а также тестовые сценарии для сертификации приложений – они могут использоваться для того, чтобы гарантировать совместимость новых версий приложений в процессе их разработки. Инфраструктура Application Compatibility Infrastructure реализована в виде «перехватчиков» ключевых функций Windows API и эмуляции поведения предыдущих версий операционной системы Windows. В настоящее время существует более 360 «заплаток» - от простых, искажающих номер версии ОС (более 50% всех несовместимостей приложений!) до более комплексных, решающих задачи доступа к файловой системе, реестру и т.п. Около 60 уровней совместимости эмулируют поведение как предыдущих версий ОС, так и отдельных подсистем. Интересен и такой факт – на уровне Windows 7 RC реализованы «заплатки» для Алексей Федоров, Partners Lead DPE более чем 6000 приложений. По мере создания решений для приложений, соответствующие «заплатки» распространяются в составе пакетов обновлений ОС и включаются в специальную базу данных совместимостей, которая присутствует на каждом компьютере. Заключение В рамках статьи я рассмотрел далеко не все новые технологии, реализованные в Windows 7. За кадром остались: Libraris, Windows WEB Services и т.д. Обо всех остальных новинках ты всегда можешь прочитать на официальных ресурсах компании Microsoft, ссылки на многие из которых представлены в соответствующей врезке. Увы, многие из новых технологий еще толком не документированы и информации по ним нет. Во время подготовки этой статьи, мы с редактором рубрики изо всех сил пытались выжать из представителей MS хоть какие-нибудь эксклюзивные вкусности, но все тщетно. За месяц наших переговоров, нам предложили в основном информацию о том как, скрестить блохастого IE с mail.ru и немного материала о нюансах совместимости приложений. Про моддинг ишака рассказывать не буду (догадайся почему :)), а вот комментарии о совместимости приложений
можешь прочитать во врезке. Вся инфа максимально официальная и, что называется из первых уст. Подводя итог, хочу сказать, что Windows 7, скорее всего, станет следующей "народной" ОС, которую по достоинству оценят разные категории юзеров, а если ОС сможет завоевать сердца пользователей, то и кодеров долго ждать не придется. Они махом мигрируют в новую ОС.. Что ж, поживем-увидим, а пока нам остается ждать финального релиза системы и потихоньку знакомиться со всеми новинками. Удачи! Полезные ресурсы http://blogs.msdn.com/windev – русская версия блога «Windows 7 for Developers”. Блог достаточно живой. Практически еженедельно появляются интересные посты (причем достаточно объемные) обо всех нюансах разработки приложений для Windows 7. http://way2cloud.com – отличный блог по всему, что связано с Windows Azure. Новые и самое главное полезные посты публикуются практически ежедневно. Всем, кто интересуется «облачными» вычислениями просмотр обязателен. http://progblog.ru – тематика этого блога -.NET Framework и все, что с ним связано. Материалы ресурса будут полезны всем категориям .NET программистов. http://windowssteamblog.com/blogs/developers — Англоязычная версия блога «Windows 7 for Developers”. http://aspnetmania.com – сайт об ASP .NET. Новости платформы, эксклюзивные статьи, обзор книг и т. д. http://weblogs.asp.net/scottgu/ - Блог ScootyGu's, целиком посвященный ASP .NET. Из особенностей блога можно выделить: регулярно пополняемый раздел Tips And Tricks, новости из мира ASP .NET, обзор книг и т. д. Единственный минус ресурса — вся информация на английском языке. http://asp.net/mvc – официальный сайт об ASP .NET и использовании смежных технологий (AJAX, MVC и т. д.). Огромный плюс сайта — подборка скринкастов про использование MVC, AJAX и т. д. Одним видеоконтентом содержимое ресурса не ограничивается — текстового материала (гайдов, туторов, книг и т. д.) также предостаточно. Язык ресурса — английский. http://techdays.ru – русскоязычный ресурс по новым технологиям и продуктам компании Microsoft. Основной тип контента — скринкасты. Их количество растет в геометрической прогрессии, поэтому посещать ресурс рекомендуется почаще. Все представленные видеоматериалы на русском языке. www.microsoft.com/whdc/device/input/smartcard/WBFIntro.mspx - подробная информация о Windows Biometric Platform. Страница частенько обновляется и на ней появляются самые последние сведения о технологии. http://download.microsoft.com/documents/rus/windows/V7DEV.pdf - бесплатная электронная книга, признанная помочь разработчикам обеспечить совместимость своих приложений с Windows 7
http://download.microsoft.com/documents/rus/windows/V7IT.pdf - еще одна книга, в которой рассматриваются вопросы совместимости приложений с Windows 7, однако это издание направлено не на разработчиков, а на IT-специалистов. http://blogs.microsoft.co.il/blogs/sasha/archive/2009/02/25/windows-7-trigger-start-services.aspx пример демонстрирует разработку Trigger-сервисов.
-
http://code.msdn.microsoft.com/WindowsAPICodePack - альфа-версия библиотеки Windows API Code Pack for .NET Framework http://www.pinvoke.net/ - прототипы практически всех Windows API функций с примерами кода.
Written by Игорь Антонов aka Spider_NET E-mail: antonov.igor.khv@gmail.com WWW: http://vr-online.ru
Флэшки под контролем Дельфина. Часть 1. Уже несколько раз ко мне на почту обращались посетители нашего сайта с просьбой объяснить: «А как можно установить тот факт, когда в ПК вставили флэшку?». Обычно, в ответе я посылал обратившегося (нет, не туда куда ты мог подумать J) в MSDN. Дело в том, что передо мной еще ни разу не вставала подобная задача, т.е. реальной практики не было. А при ее отсутствии я редко берусь писать целые исходники по почте. Уж лучше выбрать время и написать небольшую статью и охватить большую аудиторию, чем бесконечно пересылать письмо с ответом. Этот раз не стал исключением. Тема «Delphi и флэшка» уже давно стоит в списке TODO, но руки до нее почему-то всего не доходят. Все изменилось в июне. Именно тогда, редактор рубрики «Кодинг» всем известного журнала «Хакер» предложил мне написать статью про создания «Злобного компа» и такой же злой флэшки. Идея (сейчас говорю про злобный комп) заключалось в следующем. На языке C# разрабатываем приложение, которое не заметно сидит в системе под видом мега антивируса для флэшек и при очередном монтировании флэш драйва приступает к фейковому сканированию всех файлов, расположенных на подключенной жертве. Во время сканирования, поиска никаких вирусов не производится. Вместо него, «антивирус» просто-напросто сливает все имеющиеся файлы с флэшки на диск. Поскольку, многие из пользователей носят на флэшках неприметные текстовые файлы с паролями к разным сервисам, то польза от такой софтины весьма очевидной. К написанию статьи я приступил. Алгоритм определения установки флэшки я реализовал с помощью специального класса DriveDetector. Пользоваться этим классом одно удовольствие. Беда в том, что класс сугубо для .NET языков, а значит, старый добрый Delphi курит в стороне. С такой несправедливостью я согласиться не мог, поэтому решил во чтобы то не стало разобраться во всех тонкостях этого сишарпного класса и сделать что-то подобное для Delphi. Windows API – всему голова Даже не успев заглянуть в исходный код класса DriveDetector я знал, что в основе его лежит не что иное как банальный вызов соответствующих WinAPI функций. Не мешкая не секунды, я запряг огненную лисицу и поскакал в волшебную долину MSDN. В этом священном месте есть удивительная книга с описанием всех тайн славного королевства Windows. Добравшись до места, я скомандовал местной поисковой ищейке пару ключевых слов и через несколько секунд она принесла мне красиво оформленный свиток с результатами поиска. Буквально первая запись в этом священном писании была как раз тем что нужно, для решения моей задачи. Читая священные письмена Немного почитав найденные странички, я уяснил, что для обнаружения момента подключения нового оборудования (будь то флэщка или еще что), мне необходимо реализовать обработку сообщения WM_DEVICECHANGE. Если ты работаешь с Delphi не первый день, то уже должен знать о порядке обработке произвольных сообщений Windows, а если нет, то не дергайся и читай дальше. Перейти в раздел private класса твоей формы и объяви новую процедуру: Procedure WindowProc(var Msg:TMessage); message WM_DEVICECHANGE; stdcall;
Вызов этой процедуры будет происходить каждый раз при получении главным окном нашего приложения сообщения WM_DEVICECHANGE.
Теперь нажми три волшебные кнопки – GTRL+SHIFT+C и дельфин для тебя любезно создаст шаблон пустой процедуры: procedure TForm1.WindowProc(var Msg: TMessage); begin end;
Попробуй произвести вызов обычного диалогового сообщения. Например: ShowMessage(‘Обнаружено новое оборудование’); Запусти программу и попробуй вставить флэшку. При удачном расположении звезд, сразу после вставки диска ты увидишь свое сообщение. Прикольно? А главное просто и быстро! Но как всегда не обошлось без нескольких «НО». Не закрывай приложение и попробуй вытащить флэшку. Не пройдет и нескольких секунд, как наша программа опять отобразит наше сообщение. Только в этот раз оно вводит в заблуждение, чем приносит пользу. Почему это происходит? Видишь ли, сообщение WM_DEVICECHANGE отправляется не только в момент обнаружения нового оборудования, а также при изменении состояния подключенных устройств. Например, при отключении USB принтера, твое приложение также получит сообщении, об изменении состояния устройств. Как же тогда быть? Не отчаивайся! В волшебной долине есть ответ и на этот вопрос. Закрывай наше сырое приложения и возвращайся к коду. Повнимательней вглядевшись в MSDN можно обнаружить описание констант, значение которых может находится в поле WParam объекта типа TMessage. Констант достаточно много, но нас интересуют лишь: DBT_DEVICEARRIVAL – обнаружено новое оборудование DBT_DEVTYP_VOLUME– тип обнаруженного устройства DBT_DEVICEREMOVECOMPLETE – устройство полностью удалено из системы Получается, что немного видоизменив тело процедуры WindowProc() мы сможем решить проблему, обнаруженную при первом тестировании. Но не будем торопиться. Первая трудность с которой мы столкнемся – маты компилятора при обращении к вышеописанным константам. Это вполне очевидно, ведь Delphi ничего не знает об этих константах. Чтобы ими воспользоваться, тебе придется самостоятельно их объявить. Не волнуйся, делается это очень просто. После описания класса формы, объяви секцию const и приведи ее к виду как у меня: Const DBT_DEVICEARRIVAL = $8000; DBT_DEVTYP_VOLUME = 2; DBT_DEVICEREMOVECOMPLEATE = $8004; Эти несколько строчек кода не должны вызвать у тебя сложностей. Но если тебя смущают значения, которые я им присвоил, то не торопись шевелить мозгами. Лучше загляни в MSDN и сразу поймешь, о чем я говорю. Итак, давай видоизменим наш небольшой пример. Перейди к описанию процедуры WindowProc и приведи ее тело к следующему виду: var
DriveLetter: string; begin if (Msg.WParam = DBT_DEVICEREMOVECOMPLEATE) then if (PDEV_BROADCAST_HDR(Msg.LParam)^.dbch_devicetype = DBT_DEVTYP_VOLUME) then AddToLog('Флэшка извлечена'); if (MSG.WParam = DBT_DEVICEARRIVAL) then if (PDEV_BROADCAST_HDR(Msg.LParam)^.dbch_devicetype = DBT_DEVTYP_VOLUME) then begin AddToLog('Обнаружена новая флэшка'); //Определим букву, которую система присвоила флешке AddToLog('Флэшке присвоена буква: ' + DriveMaskToString(PDEV_BROADCAST_VOLUME(Msg.LParam)^.dbcv_unitmask)); end; Не торопись запускать этот код! Прямо сейчас он у тебя не скомпилируется, т.к. в нем есть вызов неизвестного метода AddToLog() и обращение к функции DriveMaskToString(). Я тебе про них расскажу, но чуть позже. Сначала разберемся с константами, которые мы применили, а уже после, с чистой совестью двинемся дальше. О предназначении описанных нами констант я уже говорил, и повторяться не стану. Лучше сразу обращу твое внимание на обращение к полю LParam через указатель на структуру DEV_BROADCAST_HDR. Выполнив это нехитрое действие, мне становится доступным поле dbch_devicetype. Не трудно догадаться, что в этом этом свойстве содержится число, по которому можно однозначно определить тип подключаемого устройства. Если подключили флэшку, то значение этого поля будет равно значению константы DBT_DEVTYP_VOLUME, а раз так, то нам ничего не остается, как сообщить эту новость пользователю. Точно также будем действовать и при отключении флэшки. Учти, что об этих структурах Delphi также ничего не известно, поэтому за их описанием придется отвечать только тебе. Код всех необходимых структур смотри ниже. PDEV_BROADCAST_HDR = ^DEV_BROADCAST_HDR; DEV_BROADCAST_HDR = record dbch_size, dbch_devicetype, dbch_reserved: DWORD; end; PDEV_BROADCAST_VOLUME = ^DEV_BROADCAST_VOLUME; DEV_BROADCAST_VOLUME = record dbcv_size, dbcv_devicetype, dbcv_reserved, dbcv_unitmask: DWORD; end;
Описание структур мы рассмотрели и можно считать, что первая задача практически выполнена. Нам лишь остается описать таинственный метод AddToLog() и DriveMaskToString(). Код обоих методов представлен ниже. Переписывай их и попробуй запустить программу. function TForm2.DriveMaskToString(mask: dword): string; var DriveLetter: char; Drives:string; i:integer; pom:integer; begin Drives := 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; i := 0; pom := Trunc(mask / 2); while (pom <> 0) do begin pom := Trunc(pom / 2); i := i+1; end;
if (i < Length(Drives)) then DriveLetter := Drives[i+1] else DriveLetter := '?'; result := DriveLetter + ':\'; end; procedure TForm2.AddToLog(text: string); begin Memo1.Lines.Add(FormatDateTime('[dd/MM/yyy hh:mm:ss] ', now) + text); end;
Результат работы программы
Unmount На этом статья закончена, но к теме «Delphi и флэшка» мы обязательно вернемся в следующем номере. К этому выпуску, я не успел расписать сцену, в которой рассматривается вопрос определения списка открытых с флэшки файлов. В следующем номере, эту ситуацию я постараюсь исправить. До скорого!
Written by Антонов Игорь aka Spider_NET E-mail: antonov.igor.khv@gmail.com WWW: http://vr-online.ru
Как использовать namespace в PHP. Глубокое погружение Надеюсь, ты прочитал первую часть статьи, в которой я рассказал и показал на примерах использование пространств имен в новой версии PHP. С основами я тебя познакомил и теперь самое время апгрейдить свои знания. В этой статье, мы рассмотрим с тобой важные и щепетильные моменты, связанные с практическим использованием пространств имен в своих проектах. В общем, готовься, будет интересно! Начинать будем с кода Обычно я люблю начинать свое повествование с теории. Мне нравится сначала все продумать и обсудить, а уже потом браться за инструменты и начинать крушить все вокруг. В общем, открывай текстовый редактор/среду разработки и создай в них два сценария. Первый обзови lib1, а второй соответственно lib2. Код обоих сценариев представлен в листинге 1 и 2. Листинг 1. Исходный код сценария lib1.php <?php // Пространство имен App\Lib1 namespace App\Lib1; const MYCONST = 'App\Lib1\MYCONST'; function MyFunction() { return __FUNCTION__; } class MyClass { static function WhoAmI() { return __METHOD__; } } ?>
Листинг 2. Исходный код сценария lib2.php <?php // Пространство имен App\Lib2 namespace App\Lib2; const MYCONST = 'App\Lib2\MYCONST'; function MyFunction() { return __FUNCTION__; } class MyClass { static function WhoAmI() { return __METHOD__; } } ?>
«Что за черт? Эти же листинги полностью идентичные!» - свирепо закричишь ты и отчасти будешь прав. А частично потому, что все-таки код этих листингов не полностью одинаков. Единственное отличие – разные имена пространства имен. То есть, код, определенный в первом
листинге принадлежит пространству имен App\Lib1, а код из lib2, подчинен App\Lib2. Надеюсь, сложностей с пониманием этой части у тебя не возникло. Разбираемся с терминологией Перед тем как ринуться в бой и химичить с набранным выше кодом, нам желательно усвоить несколько терминов. Не волнуйся, я уже сказал, что особой теории в этой части статьи не будет. Быстренько пробежимся по терминам и погрузимся в код. Полные имена (Fully-qualified name) Любой php-код может ссылать на полное имя. Например, чтобы получить значение константы MYCONST, расположенной в пространстве имен \App\Lib1, тебе требуется обратиться к ней по полному имени: \App\Lib1\MYCONST. Если приглядеться, то видно, что использование полных имен в php очень сильно напоминает пути к файлам в файловой системе. Первый обратный слэш в имени пути соответствует глобальному пространству имен. Например, у тебя есть некая функция, объявленная в глобальном пространстве. Чтобы к ней обратится, необходимо перед ней поставить символ обратного слэша: \MyFunction();. Все просто и логично. Едим дальше. Квалифицированные имена (Qualified name) Под квалифицированными именами, в PHP 5.3.0 подразумевается такое имя (идентификатор), которое, по крайней мере, содержит хотя бы один разделитель. Сразу рассмотрим пример: Lib1\MyFunction(). Неквалифицированные имена (Unqualified name) Неквалифицированные имена, полностью противоположны квалифицированным, т.е. это идентификаторы, не имеющие не одного разделителя. Маленький примерчик: MyFunction(). Использование одинаковых пространств имен Теперь приготовься к суровой практике. Создай новый файл-сценария (назови его myapp1.php) и перерисуй в него следующий код: <?php namespace App\Lib1; require_once('lib1.php'); require_once('lib2.php'); header('Content-type: text/plain'); echo MYCONST . "\n"; echo MyFunction() . "\n"; echo MyClass::WhoAmI() . "\n"; ?>
Не торопись привести эту адскую писанину в действие. Для начала пофантазируй и попробуй предсказать результат выполнения этих нехитрых строчек. Обрати внимание, что мы подключили оба наших «библиотечных» сценариев. Не буду над тобой издеваться, а сразу приведу скриншот с результатами выполнения:
Первый таинственный код На основании каких правил выполнился код из App\Lib1? Где же истина? Как говорил Малдер – она рядом, но к несчастью замечал ее лишь в конце эпизода J. Это конечно все юмор, а если серьезно, то причиной выполнения кода из App\Lib1 является нахождение всего основного кода в точно таком, же пространстве - App\Lib1 (самая первая строчка в myapp1.php). Чтобы окончательно в этом убедиться, исправь в первой строчке путь к неймспейсу на App\Lib2 и попробуй заново выполнить пример. На этот раз, результатом будет код из пространства, которое описано в lib2. Заруби себе на носу эту истину и возвращайся к статье. Импорт пространств имен Ты можешь конкретно указать пространство имен, которое ты собираешься использовать в своем сценарии. Специально для этого, разработчики снабдили новую версию оператором use. Посмотрим, как использовать его на практике. Вернись к своему любимому текстовому редактору и создай в нем новый сценарий myapp2.php. Снабди его следующим кодом: <?php use App\Lib2; require_once('lib1.php'); require_once('lib2.php'); header('Content-type: text/plain'); echo Lib2\MYCONST . "\n"; echo Lib2\MyFunction() . "\n";
echo Lib2\MyClass::WhoAmI() . "\n"; ?>
В этом примере мы четко указали, что хотим работать с пространством имен App\Lib2 и в этом нам помог оператор use. После этого, для получения доступа к значениями объектов, описанных в пространстве имен App\Lib2, я обращаюсь через квалифицированное имя – Lib2\MYCONST. Обрати внимания, что несмотря на произведенный импорт App\Lib2, мы не имеем возможности обратится к MYCONST, не используя префикс "Lib2". Если мы положим на это правило железный болт, то просто напросто жестко обломаемся, т.к. php будет искать MYCONST в глобальном пространстве имен. Мой результат выполнения приведен чуточку ниже:
Знакомимся с импортом Псевдонимы пространств имен Тем, кто работал с языком запросом SQL (разве есть еще люди, которые с ним не работали?), те однозначно использовали в своих запросах псевдонимы имен. Алиасы (псевдонимы) существенно облегчают читабельность и понимание текста запроса. Если разработчик дал колонке непонятное имя вроде columns2421, а в ней хранится имя пользователя. Несомненно, ты можешь обращаться по этому имени, но лучше задать псевдоним UserName (как пример) и работать непосредственно через него. С псевдонимами для пространств имен аналогичная ситуация. Ты точно также можно воспользоваться оператором use, импортировать нужное пространство, а затем, посредством оператора as, установить псевдоним. Давай закрепим все вышесказанное на практике. Создавай новый файл-сценария. Сохраняй его под именем myapp3.php и переписывай следующий код: <?php use App\Lib1 as L; use App\Lib2\MyClass as Obj; header('Content-type: text/plain');
require_once('lib1.php'); require_once('lib2.php'); echo echo echo echo ?>
L\MYCONST . "\n"; L\MyFunction() . "\n"; L\MyClass::WhoAmI() . "\n"; Obj::WhoAmI() . "\n";
В этом небольшом примере, я импортировал App\Lib1 и App\Lib2\MyClass. Первому я установил псевдоним L, а объекту, расположенному по пути импорта – Obj. После этого, в основном коде сценария, я произвожу обращение к MYCONST, MyFunction() и т.д., не через квалифицированное (или полное) имя, а посредством объявленного псевдонима. Результат работы сценария представлен на рисунке ниже.
To be continued… На этом, небольшой урок по знакомству с namespace в PHP подошел к концу. Надеюсь, что представленная мной информация пригодиться, и ты воспользуешься этими простыми приемами в своих проектах. В следующем номере нашего журнала, я постараюсь опубликовать третью (заключительную) статью, посвященную, использованию пространств имен в PHP. Желаю тебе удачи и жду твои вопросы к себе на мыло. Бай!
Written by Игорь Антонов aka Spider_NET Email: antonov.igor.khv@gmail.com WWW: http://vr-online.ru
VrIP Person
Это интервью не совсем обычное. Мы не звали никаких особых гостей, а просто записали ваши вопросы и задали их Игорю Антонову – новому руководителю проекта VR-Online. Итак, сегодня у нас в гостях – Игорь Антонов.
Краткая информация о респонденте: Возраст: 23 года Любимые занятия: Программирование, активный отдых, кино Любимые ОС: Windows XP/2k3/2k8, Ubuntu Linux Любимые языки программирования: C#, Delphi, PHP Что нравится: Жизнь, яркие впечатления, нестандартный подход Что не нравится: Алчность, депрессняки, творческий кризис, лень Занимаемая должность: Начальник отдела разработки программного обеспечения Девиз жизни: Жизнь коротка – лови момент Семейное положение: Женат Вопрос: Как и когда ты попал в VR-Team? Ответ: Давным-давно, в 2003 году от рождества Христова, Horrific решил сделать массовый апгрейд VR-Online. Под массовостью я подразумеваю, переезд на отдельный домен (раньше VR-Online располагался по адресу www.cydsoft.com/vr-online) и наконец-таки избавиться от статичного html. В тот славный год, VR читало очень много народу, а форум просто кишил от бесчисленных топиков. Среди этого всего народа был и ваш покорный слуга. Где-то в августе 2003, Horrific опубликовал пост о создании VR-Team и написал ники людей, которых он приглашал в тиму. Среди них был и я. Вот с тех пор и понеслось. Запуск обновленного VR состоялся 1 сентября 2003 (если мне не изменяет память). Вопрос: Когда ты увлекся программированием? С какого языка начал постигать это нелегкое искусство? Ответ: Программированием я заинтересовался в июле 2001 года (у меня отличная память на особые даты J). Тогда я купил первый раз журнал ][акер и мне повезло, в том номере была опубликована вводная статья о программировании на Delphi (автор Horrific). Прочитал я ее несколько раз и понял, что кодинг – это то, с чем я хочу связать свою жизнь J. Моего запала хватило всего лишь на два месяца. Дело в том, что в то время, научиться кодить я хотел лишь для того, чтобы написать мега-злобного трояна и отомстить своему бывшему другу. Мстить я хотел за то, что он спионерил у меня логин/пароль на инет и вдоволь насидел за мой счет. Знаний у меня тогда было определенно недостаточно, и идея с разработкой трояна накрылась медным тазом. Отдохнул я пару месяцев и потом решил попробовать еще раз. Трояна писать мне больше не хотелось, и я начал медленно, но верно осваивать Delphi. Скажу честно, изучать язык мне было тяжело. Книг в моем городе нормальных никогда не было, поэтому единственное, чем я мог довольствоваться – статьями из инета. А поскольку инет у меня был очень дохлый и дорогой, то приходилось очень сильно экономить. К моему счастью, в самом начале 2002 года я для себя нашел VR-Online и завис на нем.
Вопрос: Какую первую книгу по программированию ты прочитал? Ответ: Первая книга, которая попалась мне в руки, была – «Профессиональное программирование в Delphi 3» (авторов уже не помню). Книга очень толстая и умная, но тяжела в понимании. Тяжела в том плане, что книга была рассчитана на людей, уже имеющих опыт программирования. Я таковым не являлся. Книгу я успешно отложил и принялся за статьи, а потом наткнулся на электронную версию всем известной Библии Delphi. В то время книга еще не была законченной и можно сказать, что я читал только что испеченные главы J. До сих пор считаю, что «Библия Delphi» - лучшая книга для новичков. Сколько бы негативных отзывов не было об этой книге, но то, что по ней научилось программировать до фига и больше народу – факт. Вопрос: Как проводишь свободное время? Как отдыхаешь? Ответ: Свободного времени у меня очень мало. По факту я работаю на нескольких работах, поэтому в большинстве случаев на отдых остается (в день) всего лишь часа 2-4. Эти счастливые часы стараюсь провести подальше от компьютера и поближе к жене J. Обычно мы катаемся на велосипедах, прогуливаемся по городу и посещаем кинотеатр. Я просто киноман и хожу практически на все крупные премьеры. В плохую погоду, или когда в лом куда-нибудь выбираться – люблю смотреть вместе с женой разные сериалы типа Supernatural (Сверхъествественное), Buffy – The vampire slayer (Баффи – истребительница вампиров) и т.д. Ах да, чуть не забыл, еще одним из моих увлечений является поиск и просмотр старых мультсериалов (запоями смотрим вместе с женой). До сих пор прусь от The RealGhostbusters (Настоящие охотники за приведениями), Gobbots Challenge (Война гобботов), Monster Force (Чудовищная сила) и многими другим. Все эти мульты показывали в 1992-1995 года по телеканалу «Останкино». Было это давно, но нравится до сих пор J. Вопрос: Что было самым трудным при обучении программированию (я к примеру с циклами и массивами долго мучился)? Ответ: Да много трудностей было. Самая главная из них – отсутствие информации в бумажном виде. Я уже говорил, что в моем городе нормальных книг не было, а брать инфу с инета было проблематично, т.к. DialUP не позволял качать книги в электронном виде (да и не было столько, сколько сейчас). Если брать конкретно конструкции языка, то самой первой трудностью для меня тоже были циклы J. Сейчас уже не могу представить, как их можно было не понять, но в 9 классе, мозг почему-то их тяжело воспринимал J. Вопрос: Печатаетесь ли где-нибудь кроме VR и ][. Планируете ли написать книгу? Ответ: Да, печатался. Помимо VR-Online и ][акера я написал несколько статей для журнала ITSpec (www.itspecial.ru), Спец-Хакер и сделал несколько материалов для компании 1С-Битрикс (www.1c-bitrix.ru). Книгу планировал написать в 2007 году. Причем не только запланировал, но даже заключил договор с BHV и приступил к работе. Рабочее название книги было – «PHP5 – Разработка WEB-Портала». Выход книги планировался на конец 2007, но, к сожалению, спустя 6 месяцев работы, я разорвал договор с издательством. Главной причинной стала – проблема со здоровьем. Когда она решилась – появилась нехватка времени. Основная работа + статьи для журналов + учеба в ВУЗзе отнимали слишком много времени. К тому же, гонорар за книгу был не таким, из-за которого стоило рвать в три шеи. Именно поэтому я и отказался. Планирую ли я написать книгу в будущем? Скажу честно – пока не знаю. Желание есть, но пока нет времени. Я
уже говорил, что хорошо заработать на написании книг нельзя, поэтому если писать, то только для «души», а для этого нужно иметь свободное время. Поживем – увидим. Вопрос: Как оцениваете будущее IT? Ответ: Смотря, что именно ты под этим вопросом подразумеваешь. Думаю, оно будет светлым, а раз так, то совсем скоро нас ждет много ништяков – куча полезных WEB-сервисов, ультра портативных ноутбуков, быстрый интернет в любом месте, конкуренция MS и Google, перенос offline жизни в Интернет и куча новых технологий и т.д. Вопрос: Как вы считаете, заменит ли искусственный разум, людей в большинстве сфер производства? Ответ: Трудно сказать, но надеюсь, что полноценной замены никогда не произойдет. Автоматизация труда нужна, но все должно быть в разумных рамках. Не нужно создавать врачей-роботов, которые будут самостоятельно ставить диагноз людям, и пытаться их лечить. Не стоит полностью заменять реальных пилотов и доверять управление полетом машине. Да, люди ошибаются, но и машины будут создавать люди, а значит, ошибки будут. И в будущем, это может аукнуться массовыми катастрофами и гибелью людей. Я не хочу сказать, что технологии дальше развивать вообще не нужно. Нужно! Но перед тем как что-то сделать – сто раз отмерить. Вопрос: Можно ли найти ваши Shareware и Freeware программы в инете? Ответ: Нет, нельзя. Все программы, которые я написал, были созданы либо сугубо для личного использования, либо для корпоративных нужд. Возможно в будущем, кое-какие проекты будут обнародованы. На нашем сайте, в разделе Downloads можно найти пакет исходников – MASHP. В нем есть две программы, которые написал я – троян и клавиатурный шпион. Сразу хочу сказать, обе программы были созданы очень давно, поэтому код смешной и «детский». Он может быть полезен только новичкам. Вопрос: Твои увлечения помимо кодинга? Ответ: Как и у всех нормальных людей – отдыхать людской жизнью J. Из спорта мне нравится – езда на велосипеде, пробежка и утренняя зарядка. Музыку предпочитаю следующих стилей – havy metal, rock, punk rock и немного шансон (не блатной). Любимые команды/исполнители: КИПЕЛОВ, Ария, ПилОт, Король и Шут, ЧИЖ, Наутилус Помпилиус, Gamma Ray, Accept, Scorpions, Avril Lavigne, The Offspring, Bon Jovi, Nightwish, Dark Princess, Frank Sinatra, Kiss и многие другие. Фильмов любимых очень много. Я уже говорил, что я настоящий киноман J. Один из любимых фильмов – «Храброе сердце». Из жанров больше всего нравятся: ужасы, мистика, исторические и комедии. Не обхожу стороной и некоторые сериалы. Конкретные названия уже говорил. Вопрос: Была ли мысль бросить все на ... и поселится в избушке далеко в лесу? Если да, то, что остановило? Ответ: Такая мысль меня посещает время от времени J. Это не совсем шутка, иногда у меня появляется желание все бросить (что связано с ИТ) и попробовать реализовать себя в другой области. Благо такие моменты бывают очень редко J.
Вопрос: По какой причине произошел распад прошлой сборки команды ВР? Я имею ввиду почему появились разногласия в связи с переходом на новый двиг, почему из команды ушли Romul, f.e.nix и др. ? Ответ: Скажу откровенно – это самый нелюбимый для меня вопрос. После смены состава VRTeam мне его задавали несколько раз, и я немного устал на него отвечать. Ok, надеюсь делаю это в последний раз J. Основная причина раскола – разногласия с Romul’ом. Первые трения начались во время выбора движка. Я делал ставку на 1С-Битрикс, а Romul хотел создать свой на Ruby On Rails. Поскольку права на проект VR-Online уже передали мне, мое слово стало решающим. Да, впоследствии я ошибся, но на то мы и живем – чтобы ошибиться и в будущем не допустить ошибок. После этого решения тима не раскололась. Все остались, но некоторые тимовцы стали работать на два фронта – VR и так называемый RSDEC. Едем дальше. Когда моя идея провалилась, я вернул старый двиг и перевел сайт на новый хостинг. Примерно в это же время, точно не помню как, но мы пересеклись с Romul'ом и я принял его предложения делать VR-Online на движке RSDEC. В итоге должно было получиться два проекта. Romul продолжил писать двиг и тимовцы по возможности стали ему помогать. Все было хорошо, но стали появляться проблемы внутри команды. Точнее говоря – опять конфликты с Romul'ом. У одного нашего уважаемого тимовца произошли с ним разногласия. Пытались решить мирно, но, увы, не получилось. Помимо этого, Romul откровенно говоря, стал тянуть одеяло на себя. Дальше так продолжаться не могло. Мы решили собрать сходку в ирке и обсудить наболевшие вопросы. Нетрудно догадаться, что итогом встречи стал – раскол. Работать с Romul'ом у меня не было никакого желания, поэтому вопрос стоял ребром – VR или RSDEC. Все кто предпочитал VR остались в VR-Team, а те, кто поддержал RSDEC должны были покинуть команду. Те кто ушел - отличные ребята и очень жаль, что они покинули тиму. Вопрос: Что планируется изменить на VR-Online.ru? Двиг, почта, функционал, тематика сайта и форума и тому подобное. Ответ: Очень хороший вопрос. Обо всем по порядку. Одной из первостепенных задач, запланированных на этот год – смена движка. Это уже больной вопрос и я надеюсь, что в этом году он наконец-таки решиться. Вместе со сменой движка на сайте поменяется движок форума. Нынешний форум морально устарел и пользоваться им мягко говоря не удобно. Почта на сайте останется не изменой. В начале этого года я перевел ее на gmail и теперь ей пользоваться ей одно удовольствие. Заводя мыло в нашем домене, пользователь получает все фишки гугло почты – огромный размер почтового ящика, удобный WEB-интерфейс, безопасность и т.д. Единственным минусом этого решения можно считать ограниченное количество почтовых ящиков. В рамках бесплатного пакета у нас есть возможность создать 50 почтовых ящиков. Это немного, но вполне хватит, чтобы наградить красивыми адресами особо отличившихся посетителей/авторов. В идеале, конечно, было бы если все посетители нашего сайта могли создать себе почтовый ящик, но пока это невозможно. Платить google за расширенный пакет услуг мы не можем, а если воспользоваться услугами нашего хостера, то придется очень серьезно ограничить размер почтового ящика, да и спам будем засыпать. Функционал сайта по первости будет не сильно отличаться. На новом движке планируется в первую очередь решить проблему обратной связи и дать пользователям возможность самостоятельно публиковать свои статьи, новости и другой контент. Как только все это устаканиться мы с удовольствием подумаем о расширении возможностей. Что планируется после – пока не скажу J.
Тематика не сильно изменится. «VR-Online» как был журналом для всех любителей информационных технологий, так и останется. Одно могу сказать точно – будет сделан упор на количество и качество статей по программированию. Не исключено, что появятся переводы англоязычных материалов. Как показала практика, многие наши посетители не знают английского, а значит, им будет интересно почитать русские варианты статей. Также могу однозначно сказать, что рубрика «VrIP персона» будет постоянной. Для каждого номера мы будем готовить интервью с каким-нибудь интересным человеком. Причем, не исключено что респондентами могут стать и товарищи из-за океана. Надеюсь, что все вышесказанное в скором времени сбудется. Вопрос: Почему у вас так мало статей по программированию? Ответ: Еще один из самых часто задаваемых вопросов. Понимаешь, количество статей напрямую зависит от авторов, а многие из них непостоянны. Следовательно, в одном номере может быть 5 статей по кодингу, а в другом только одна. Я и тимовцы пытаемся влиять на этот процесс (все мы иногда пишем статьи), но пока сильно не получается. Платить авторам мы не можем, а других идей для мотивации пока нет. Если у кого-то есть предложения, то пишите мне на мыло – antonov.igor.khv@gmail.com. Вопрос: Не планируете ли вы сделать VR платным (частично платным)? Возможно, благодаря этому вы сможете нанять авторов за деньги. Ответ: Нет, не планируем. Весь контент VR-Online всегда был и будет бесплатным. Возможно, когда-нибудь в рамках проекта появятся платные услуги, но они никак не будут влиять на контент. Вопрос: Какими делами занимаешься вне интернет жизни?? И какие проекты кроме ВР поддерживаешь в инете? Ответ: Вне интернета – только делами семейными. Я уже год как женат и все свое свободное время пытаюсь посвящать жене. Из проектов, кроме VR иногда уделяю внимание http://cartoons.flybb.ru. В скором будущем собираюсь запустить свой блог (домен уже купил – iantonov.info) и один небольшой проект. Какой – пока секрет. Вопрос: Собираюсь всерьез заняться программированием. Какой язык посоветуете выучить первым? Ответ: Если бы ты мне задал вопрос три года назад, то я бы не раздумывая, посоветовал бы учить Delphi. Это достаточно простой для изучения язык и информации по нему вагон и еще один маленький состав J. Но, увы, все течет, все изменяется. Сегодня Delphi уже не так востребован как раньше. Его сменило детище великой и ужасной компании Microsoft – язык C#. Это очень качественный продукт и на него, несомненно, стоит потратить свое драгоценное время. Если ты еще не знаешь ни одного языка программирования, то обрати внимание на си диез и будь уверен, что не ошибешься. Вопрос: Какой язык программирования на ваш взгляд является наиболее идеальным? Ответ: Такого языка нет, и вряд ли когда-нибудь его создадут. Пойми, каждый язык предназначен для определенных задач. Какие-то приложения удобней писать на одном языке, какие-то на другом. Взять тот же Delphi. На нем реально просто писать под Win32, а вот
создавать приложения для WEB весьма геморойно. На написание аналогичного приложения на PHP уйдет гораздо меньше времени. Не стоит устраивать холивары и меряться пиписьками обсуждая крутость того или иного языка. Нужно просто решать задачи оптимальным способом и тратить на их решение как можно меньше времени. Вопрос: Как вы относитесь к компании Microsoft? Ответ: Отлично отношусь. Ничего не имею против них. Хорошая компания (со своими заморочками конечно), которая создала самую популярную ОС и кучу полезных продуктов. Не стоит думать, что я фанат MS. Мне лишь очень нравятся некоторые их решения (например, Windows Server 2003/2008, Windows 7, Visual Studio, SQL Server и т.д.). Вопрос: Хорошо, а как ты относишься к OpenSource и в частности к Linux. Ответ: Начну со святого, с Linux J. Эта ОС мне очень нравится, я с удовольствием юзаю ее в своей работе. Пользуюсь ли я Linux дома? Нет, не использую. Для домашних задач мне больше подходит Windows, но это не значит, что Linux проигрывает Windows в функциональном плане. Мне вообще не нравится, когда пытаются сравнивать совершенно разные ОС, которые изначально создавались для разных целей. К OpenSource отношусь опять же нормально. Я не фанат и не противник этого движения. Если мне нравится какая-нибудь open source программа, то я ее буду использовать и возможно даже допишу парочку необходимых функций. Но если программа кривая и уступает платным решениям, то по возможности (все зависит от цены и степени нужды) я воспользуюсь вторым вариантом. Для меня куда важнее качество, чем бессмысленные понты типа «Платное ПО сакс! Вопрос: Если не программистом, то кем бы вы хотели стать? Какие профессии вам интересны? Ответ: Наверное, актером или журналистом. Эти профессии меня всегда интересовали и если, выбрал бы отличный от программирования путь, то скорей всего пытался бы развиваться в этих направлениях. В принципе в должности журналиста я совершенствуюсь постоянно, т.к. приходится писать для журналов, а практики побыть актером, кроме мелких студенческих и школьных сценок пока не доводилось J. Вопрос: Какие художественные книги вам нравятся? Ответ: Из-за постоянной нехватки времени мне очень редко удается почитать не техническую литературу. Если же выпадает возможность, то предпочитаю фантастику, фэнтэзи, мистику, ужасы. Последней книгу, которую я прочитал, была – «Аз Бога ведаю» автора Сергея Алексеева. Вопрос: Вы верите в Бога? Ответ: Верю, но это не тот Бог, про которого написано в Библии. Вопрос: Ваш TOP5 ежедневно посещаемых сайтов. Ответ: vr-online.ru, yandex.ru. google.com, twitter.com, securitylab.ru. Вопрос: Как вы считаете, программировать может научиться каждый?
Ответ: Программированию доступно каждому! Но только в разной «глубине». Написать несложную программу на таких языках как Delphi, C# - проще пареной репы и понять этот процесс способен каждый. А вот изучить кодинг до того уровня, чтобы суметь написать свою собственную ОС способен далеко не каждый. Вопрос: Вам никогда не хотелось написать собственную ОС? Ответ: Нет, увольте J. Такая идея пока не посещала мой мозг J. Вопрос: У вас есть девиз жизни? Ответ: Есть – «Жизнь коротка, лови момент» Вопрос: Не хотелось бы Вам, используя свой большой опыт, в сфере программирования и IT, написать книгу, как к примеру это делает многоуважаемый Михаил Фленов? Ответ: Примерно на такой вопрос я уже отвечал. Книгу написать хотелось бы, но поскольку это дело неприбыльное, то тяжело выделить на это время. Процесс написания книги очень сложный и требует больших вложений временных ресурсов. Возможно, когда-нибудь я и напишу книгу для души. Не исключено, что первой моей книгой будет электронная версия. Поживем – увидим. Вопрос: Как Вы относитесь к тому, что темпы развития техники увеличиваются в алгебраической прогресии? Не пугают мысли, о возможности полного замещения труда человека, трудом "роботов"? Ответ: Отношусь положительно. Мне нравится, что техника так быстро развивается, но я всегда придерживаюсь мысли – «Нельзя доверять машине те дела, где из-за банальной ошибки могут пострадать люди. Как ни крути, машина – это творение человека, а людям свойственно ошибаться. Я бы не хотел, чтобы роботы заменили труд людей полностью. Если такое когданибудь и случится, то зачем нужны будут вообще люди? Вопрос: У Вас уже довольно приличный портфель или даже чемодан статей. Откуда находите время для их написания? Ответ: Мне всегда хотелось поработать журналистом. Сначала это было обычным хобби – я писал статьи для VR-Online и просто для себя, а потом дорос до того момента, когда хобби начало приносить доход. Хотя, доход в этом деле не главное и если нет настроения и желания, то хоть тресни, а хороший материал не напишешь. Поэтому для меня это в первую очередь хобби, а на хобби всегда можно уделить часок другой времени. Вопрос: Возвращаясь к технике и технологическому прогрессу, хочу спросить. Влияет ли техника на вашу жизнь или может уже повлияла? Какой характер носит это влияние: положительный, отрицательный? Ответ: Конечно, влияет. Влияние оказывает скорее положительное, чем отрицательное. Мне нравится использовать новые гаджеты, позволяющие где-то сэкономить время или просто сделать жизнь немного приятней и симпотичней ;-). Хотя, отрицательный момент тоже имеется. Чем больше новых технологий используешь в повседневной жизни, тем больше становишься от них зависимым. Например, еще 6 лет назад я спокойно обходился без сотового телефона, а теперь не могу прожить без него и часа J.
Вопрос: Хотелось бы узнать о "детских" увлечениях, так или иначе связанных с компьютером? Ответ: Ты имеешь в виду развлечения? Если да, то у меня был период в жизни, когда я любил погамать. Любимыми играми были: Commandos: The man of courage, Max Payne, GTA, Age of Empires, Starcraft, Warcraft. Сейчас я играю крайне редко, а если и играю, то лишь в Warcraft 3. Устраиваем с женой баталии J. Если играть не хочется, то обычно читаю блоги, тематика которых не связана с IT. Например, мне очень нравится читать блогеры которые делятся разными кулинарными рецептами (я люблю готовить). Вопрос: Не хотелось бы работать вирусным аналитиком, в какой-нибудь известной лаборатории? Ответ: Даже не знаю. Пока такой мысли не было. Изучением вирусов мне пока не интересно и всерьез я этим делом никогда не пробовал заниматься. Правда по «молодости», написал парочку безобидных вирей, которые в инет не попали J. Вопрос: Пользуетесь ли Вы различными веб-сервисами: интернет-магазины, аукционы, вебденьги и т.п.? Что думаете о развитии и "укоренении" данных сервисов в жизни человека? Ответ: Да, пользуюсь. Скажу больше, без многих Интернет сервисов я уже не могу жить. Например, большинство статей я пишу в Google Docs, а самым любимым почтовиком для меня уже несколько лет остается GMail. Из магазинов мне нравятся Ozon и Books.ru. Все свои книги/DVD я покупаю именно у них. В качестве e-денег предпочитаю yandex деньги. Подобные сервисы очень упрощают жизнь и позволяют сэкономить кучу времени. Например, если мне нужен какой-то диск или книга, то зачем бежать по магазинам в поисках? Мне проще зайти на один из любимых магазинов и сделать несколько кликов мышкой. Кстати, по секрету скажу. Я уже почти год не езжу в супермаркеты. Большие партии продуктов мы покупаем через Интернет-магазин сети лучших гипермаркетов нашего города. Вопрос: Вы не хотели бы куда-нибудь уехать из России? Ответ: Очень сложный вопрос. Я патриот, но иногда мысли о лучшей жизни меня все же посещают. Понимаешь, я очень люблю свою Родину, ее великую историю и даже придерживаюсь исконно русской религии (я НЕ про православие), но меня бесит текущие положение дел в стране. Я не могу сказать, что у нас все плохо. Но пока того, что мне не нравится больше. Почему-то наши чиновники неправильно выставляют приоритеты для задач. В результате, получается, что мы делаем другим странам лучше, чем себе. Если я когда-нибудь и решусь переехать в другую страну, то это будет Канада. Вопрос: Кто сейчас рулит всем проектом VR-Online? Кто входит в VR-Team? Ответ: В каком-то из вопросов я уже говорил, что Миша Фленов передал мне все права на проект. Следовательно, у руля проекта стою я. Но этот руль одному не удержать! Чтобы как-то с ним совладать, мы пытаемся рулить всей командой. Каждый старается делать свое дело и всячески развивать проект. Например, некоторые из тимовцев постоянно тусуются на форуме, а других наоборт – практически не видно на сайте, но они занимаются внутренними вопросами – созданием графики, идей, написание материалов и т.д. На данный момент, в состав VR-Team входят следующие люди: Egoiste, Soffrick, FriT0all, Lord of fear, Gensei (aka KeyWarez). У некоторых наших тимовцев есть свои блоги (ссылки на главной странице VR-Online.ru). Через них ты можешь получше с ними познакомиться.
Adminig
Рецепт быстрого приготовления красных дьяволят Привет, уважаемый читатель! В этой небольшой статья я хочу поделиться своим опытом по установке FreeBSD в качестве десктопной ОС. Знаю, подобных статей хватает, но большинство из них безнадёжно устарело, а некоторые до сих пор удивляются факту, что на FreeBSD можно запустить кеды (KDE). Меньше слов, больше дела! Приступим к приготовлению блюда “FreeBSD по домашнему”! Где там чашки, поварешки! В статье будем рассматривать FreeBSD 7.2-release. Так, что потрудись слить именно эту версию. Итак, первым делом надо установить x.org (если конечно этого не было сделано во время установки). Для выполнения этого действия нам понадобятся права супер пользователя и диск (соединение с сетью Интернет). Вставляем в привод диск (болванка всегда при мне), с которого велась установка ОС и пишем в консоли: mount /cdrom (перед извлечением нужно написать umount /cdrom) sysinstall
Выбираем Configure, далее Distributions, а в нём отдаем предпочтение x.org. Жмём ок, определяемся с носителем и начинаем установку. Насколько мне известно, версия x.org с установочного диска отлично работает на стандартной конфигурации. Однако, если будут проблемы с изображением - пиши мне, и я раскрою все тайны настройки x.org. На следующем шаге, нам нужно определиться с рабочим столом: KDE, GNOME иль XFce. Если ты новичок в никсах, то не раздумывай и делай выбор в пользу KDE.
Хочешь юзать FreeBSD? Привыкай к окну терминала! Теперь остановимся на установке KDE. Не вижу смысла строить ее из портов (про порты можешь почитать в HandBook). Болванка с дистрибутивом еще на месте? Ok, запускай sysinstall –> Configure, далее в Packages. Выбирай KDE и в этом же подразделе выдели kde4-4.2.2. Опять клацаем Ok. Не будем далеко убегать и попутно установим и оперу. Для этого, перейди в раздел ipv6 и найди там Opera. Далее все стандартно - выделяем её и ok, install, ok. Ждём завершения установки. По завершению установки набираем в консоли следующие команды (от рута): echo hald_enable="YES" >> /etc/rc.conf echo dbus_enable="YES" >> /etc/rc.conf
Этим мы запустим демона, необходимого для работы мышки и клавиатуры. Следом пишем в консоль: echo "exec /usr/local/kde4/bin/startkde" > ~/.xinitrc
А вот этим мы укажем X11 запускать kde (эту команду вводим для каждого пользователя). Теперь ребутимся: reboot
Загрузившись, вновь входим с правами рута и царапаем: startx
Вуаля! Чудеса то, какие! Перед нами открывается прекрасный вид kde4. Налюбовался? Тогда продолжим. К счастью, на kde уже есть практически всё необходимое для жизнедеятельности рядового пользователя, но кое-чего по умолчанию все, же нет. Для следующего шага нам понадобиться Интернет (про Интернет можно почитать в Handbooks). Попробуем доставить необходимый софт из портов. Одна из самых часто используемых программ – плеер. Да, в кедах хватает этого добра, но мне больше по душе – xmms. Приятный глазу плеер в стиле winamp. Думаю, тебе он тоже понравится. Запускай терминал (для этого жмём на К на панели задач, голубенькая такая): Applications=>System=>Terminal. Вбивай туда: cd /usr/ports/russian/xmms && make install clean
Ждём завершения магических действий терминала. Вроде готово, но радоваться рано - звука у нас ещё нет. Сейчас мы это поправим. Переходим по ссылке http://www.freebsd.org/releases/7.2R/hardware.html, ищем свою звуковую карту в списке, и драйвер который её поддерживает (например, у меня Realtek ALC888, драйвером к ней будет snd_hda). Делаем проверку (набираем в терминале): kldload snd_hda.ko (подставишь свой драйвер)
Попробуй включить какую-нибудь песню. Есть звук? Отлично! Переходим в каталог /boot/defaults и пишем в файл loader.conf: snd_hda_load="YES" (подробней описано в HandBooks). Все еще нет звука? Пиши мне на мыло!
Будем считать, со звуком разобрались. Далее нам требуется подобрать удобный файловый менеджер. Я рекомендую krusader (очень похож на Total Commander). Для его инсталляции вобьем в терминал: pkg_add -r krusader (это пример установки из пакетов, про него так же можно почитать в
Handbooks). В вкратце поясню, pkg_add - это утилита для установки пакетов. Аргумент -r сообщает о том, что мы загружаем пакет из сети. Запустить krusader можно либо вбив в терминал krusader, либо создав линк на рабочем столе. Что-то не так? Ах да, не хватает русского! Приступим к русификации. От рута вбей в терминал: pw usermod твой_пользователь -L russian (выполняем от рута!).
Это сменит твою локаль на русскую (перед этим нужно установить пакет ru-kde-l10.n-4.2.2.tbz, pkg_add -r ru-kde-l10.n-4.2.2) и позволит использовать кириллицу в терминале.
Переходим в каталог /etc. Каждое устройство ttyv* должно использовать cons25r (по умолчанию стоит cons25). Также в файле /etc/rc.conf должны присутствовать строки (если ты выполнил соответствующую настройку в режиме установки): keymap="ru.koi8-r" scrnmap="koi8-r2cp866" font8x16="cp866b-8x16" font8x14="cp866-8x14" font8x8="cp866-8x8"
В противном случае - введи эти строки (от своего пользователя): echo "me:My Account:\" >> ~/.login_conf echo ":charset=KOI8-R:\" >> ~/.login_conf echo ":lang=ru_RU.KOI8-R:" >> ~/.login_conf
Завершаем сеанс с иксами. Делается это так: К=>Leave=>Logout=>Logout.
Затем заново запускаем иксы командой startx, и вуаля! У нас русские кеды! Что? Нет русской раскладки? Сейчас и это пофиксим! Жмём K => Параметры Системы => Язык и Стандарты => Раскладка клавиатуры. Больше не буду ничего говорить, т.к. разобраться с окном настройки раскладки сможет любой Win user.
Красивый файловый менеджер для FreeBSD
XMMSS – достойная альтернатива Winamp Примечания *для монтирования флэшки с русскими символами используйте команду mount_msdosfs -L ru_RU.KOI8-R -D KOI8-R /dev/устройство /папка (пример mount_msdosfs -L ru_RU.KOI8-R -D KOI8-R /dev/da0s1 /fl (если папки несуществует - её нужно создать!)) *для монтирования ntfs раздела с русским языком используйте команду mount_ntfs -CKOI8-R /dev/устройство /папка (примерmount_ntfs -CKOI8-R /dev/ad4s1 /mnt/win_d ) *чтобы не переходить на рута каждый раз, когда нужно сонтировать диск, а так же для выполнения других задач требующих рута можно выполнить в терминале su , ввести пароль рута, и валя! рутовский шел ваш (вы должны быть в одной группе с рутам). Shutdown Всё, наше блюдо полностью готово и ждет подачи на стол. Я тебе настоятельно рекомендую поковыряться в пакетах, которые лежат на диске дистрибутива. 100%, что ты там найдешь много полезностей для себя.
Есть вопросы? Хочешь узнать об установке других рабочих столов? Что-то непонятно? Отлично! Пиши мне, kto@uvaga.by, и я отвечу тебе, как только смогу. Возможно, твой вопрос станет темой для новой публикации (и я на это надеюсь – прим. редактора). Все, базовая настройка завершена. На досуге почитаей KDEHelp (теперь он русский) и Handbooks (можно найти в директории /usr/share/doc/ru). P.S. Если handbooks не нашел, то значит, ты не установил документацию. Запускаем sysinstall =>Configure=>Distributions=>doc, Далее все стандартно - выделяем, жмём ok, определяемся с носителем… В общем, знакомая процедура! Удачи тебе!
Written by _НЕИСТРЕБИМЫЙ_ aka Gh[]st [HackLabbs(ETeam)] Email: noemail@noemail.com
Поднимаем VPN сервер. Часть 1: Основы Это самая необычная статья этого номера. Ее особенность в том, что ее я пытался опубликовать несколько месяцев назад, но каждый раз при сдаче номера забывал это сделать. Первый раз забыл ее на рабочем компьютере. Подумал – ничего страшного, опубликую позже на сайте. «Позже» переросло в три недели. То времени не хватало, то банально забывал. Когда вспомнил, то посмотрел на календарь. Было как раз начало месяца, и я решил опубликовать ее в грядущем номере. Записал статью с работы на флешку и… забыл флешку на работе. Опять сорвалось J. Задерживать номер на еще один день не хотелось, поэтому я плюнул на это дело и поставил себе напоминалку в телефоне. Уж к следующему номеру точно не забуду J. Что вы думаете, к сдаче очередного номера я опять ее забыл. На этот раз по обыкновенной запарке. Статью принес домой, а когда собирал все статьи в кучу, чтобы отправить верстальщику – забыл переписать ее с флэшки. Рассказывать итог, думаю не надо J. Вот такая история. Главное, что сейчас статья на своем месте, и ты наконец-то можешь ее прочитать. Приятного чтения!
Что такое VPN? Наш журнал читает много новичков в компьютерных делах, поэтому своим долгом я считаю начать с самого основного – с определения VPN. Разбираться с технологией, не зная основ – ни к чему хорошему не приведет. Уж лучше двигаться постепенно. VPN – это сокращение от Virtual Private Network, или говоря русским языком – «Виртуальная частная сеть». Суть этой замечательной технологии в том, что она позволяет организовать сети/несколько сетевых подключений поверх другой сети. Под другой сетью обычно подразумевается Интернет, но обычная сеть тоже может выполнять эту роль. Если есть сеть по которой мы и так можем соединяться с удаленными компьютером/компьютерами, то для чего тогда заморачивать себе голову с VPN? На самом деле все просто. В первую очередь это безопасность.. VPN соединения являются защищенными, т.к. весь трафик между ними шифруется. Следовательно, даже если злоумышленнику удастся перехватить твой трафик, то он ничего полезного из него он не выдернет. Итак, ключевой момент использования VPN – безопасность. Рассмотрим еще одну жизненно-важную ситуацию. Представь, что тебе требуется из дома подключиться к своей корпоративной сети. Как это сделать? Если речь идет о подключении к одному компьютеру, то задачу можно решить банально с помощью средств удаленного администрирования, коих сейчас очень много. Ярким примером таких средств можно является уже знакомый многим – Remote Administrator или как принято говорить в народе: «Radmin». Устанавливаешь серверную часть на компьютер, с которым будешь соединяться, а клиента ставишь себе. Все гениально просто и в принципе безопасно, т.к. Radmin хорошо шифрует свой трафик, поэтому злоумышленник опять же остается не удел. Использовать софт для удаленного администрирования хороший способ, но сильно ограниченный в плане гибкости. А что если требуется подключиться не компьютеру, а именно к сети? Т.е. иметь возможность со своего рабочего компа обращаться к любым компьютерам корпоративной сети. Ставить на все желаемые компьютеры сервера Radmin? Вариант, ну что если у тебя в сети 100 и больше машин? А если хочется банально поделиться интернетом? Одним словом геморрой. К большому счастью, он легко лечиться таблеткой VPN. Использую такой вариант соединения, ты фактически вливаешь в корпоративную сеть и запросто можешь обращаться к любым компьютерам по их внутрисетевым адресам. Добавь к этому пункт «реальная безопасность» и плюс от использования виртуальных частных сетей становится
более, чем очевиден. К тому же, это самый удобный способ объединить сети удаленных филиалов компании (кто знает другой, напишите мне об этом). Использование VPN отнюдь не ограничивается созданием доступа к удаленным сетям. Эту технологию сегодня использует многие Интернет-провайдеры. Например, мой провайдер предоставляет бесплатный доступ к ресурсам локальной сети, а для выхода в Интернет, требуется установить VPN соединение. Вообще, VPN позволяет обеспечивать соединения трех видом – узел-узел, узел-сеть и сеть-сеть. Почитать об этом подробней ты всегда можешь в бескрайней сети интернет. Не найдешь литературу – обращайся, я поделюсь полезными линками. VPN туннели Эту фразу ты мог видеть в различной литературе и особенно в журнале ][акер. В нем уже неоднократно описывались нюансы создания и нестандартного использования этой технологии. Если ты интересуешься хакингом и безопасностью, то рекомендую зайти на официальный сайт журнала и посмотреть электронную подшивку. 100%, что найдешь много всего интересного. Вернемся к нашим кроликам. Ой! Я хотел сказать VPN туннелям. Итак, VPN туннелям принято называть канал, который образовался в результате соединения VPN клиента с VPN сервером. Ты уже знаешь, что, такое соединение является безопасным и все передаваемы по нему данные, надежно зашифрованы. Если тебе доводилось видеть различные вузовские учебники по сетям, то в них обычно используют термин «канал типа точка-точка». Понятия «VPN туннель» и «канал типа точка-точка» тождественны и ты можешь пользоваться любым. На протяжении всей статьи я буду употреблять именно «VPN туннель». Мне оно больше нравится. Peers, но те которые в Torrents Еще одним важным термином в области VPN считается – peers (узел). Те, кто пользуется торрент-трекерами наверняка в курсе о значении этого слова в той среде. В VPN, этот термин применяют к компьютерам, установившим VPN-соединение. Т.е. когда ты устанавливаешь со своего компьютера VPN соединение, тебя можно смело назвать пиром. Немного о шифровании Шифрование – это один из ключевых моментов в VPN. Тема достаточно большая и по ней можно написать не одну добротную статью. Я не буду вдаваться в подробности и скажу, лишь, что за шифрование отвечают оба пира, которые установили туннель. Например, мы имеем две сети, соединенные посредством VPN шлюзов. Схематично эту модель можно представить так: Сеть A -> VPN Шлюз A -> ИНТЕРНЕТ -> VPN Шлюз B-> Сеть B. При таком раскладе, алгоритм будет таком. Данные из сети A передаются на VPN-шлюз A в абсолютно неизменном виде. Затем (уже на шлюзе) они шифруется, и передаются по VPNтуннелю, проброшенным, через небезопасную сеть. В моем примере, небезопасной сетью выступает ИНТЕРНЕТ. Получив зашифрованный набор данных, VPN-шлюз B, произведет их расшифровку и чистый набор отправит в Сеть B. На основании вышеперечисленного, делаем вывод, что данные остаются в шифрованном виде, лишь во время передачи их по VPNтуннелю. Как только доставка завершена, данные перестают быть зашифрованными.
Обрати внимание, что шифрование действует на весь IP пакет. Сами заголовки пакета тоже (т.е. адрес отправителя и получателя) заменяются. Новыми адресами получателя и отправителя станут адреса VPN-шлюзов. Таким образом, при перехвате пакета, удастся лишь определить адреса VPN-шлюзов, а не адреса конечных клиентов внутренней сети. Немного о принципах работы VPN В общем виде, все VPN придерживаются нескольких общих правил: 1. Идентификация узлов перед созданием VPN-туннеля. 2. Определение для обоих клиентов списка разрешенных в использовании протоколов шифрования данных. Сам понимаешь, если я буду использовать алгоритм DES, а ты AES, то мы друг друга попросту не поймем, и не сможем обмениваться данными. Точнее обмениваться сможешь, а вот расшифровать нет. 3. После окончания сверки используемых алгоритмов шифрования (само собой, если она прошла успешно), будет создан ключ. В дальнейшем, он будет применяться в симметричном алгоритме для шифрования/дешифрования пакетов данных. Давай, попрактикуемся Самую необходимую теорию я до тебя донес и теперь надо бы попробовать все это дело на практике. Когда я писал первый вариант статьи, то я полностью посвятил его, настройке VPNсервера на Kerio WinRoute. Я конечно мог так и поступить – оставить все как есть и ничего не изменять, но в самый последний день перед сдачей этого номера, я решил выделить несколько часиков времени и разнообразить информацию. Начать с наиболее простого примера, который обязательно будет полезен новичкам, а уже в следующих частях статьи рассмотреть более специфичные вещи, вроде поднятие VPN сервера с помощью OpenVPN и Kerio Winroute. Итак, начнем с самого простого примера – организации VPN-туннеля между двумя компьютерами, работающих, под управлением Windows XP. Важный момент. Никакой дополнительный софт я использовать не буду. Все будет сделано стандартными средствами. VPN-туннель для Windows XP Как я уже сказал, будем начинать с самого простого. Не многие знают, что в Windows XP есть встроенный VPN сервер. Чуешь, чем это пахнет? Ты можешь запросто пробросить туннель к удаленному компьютеру и воспользоваться всеми радостями VPN. Не будем мусолить одно по одному, а возьмемся за дело. Сначала научимся принимать внешние VPN подключения, т.е. подготовим VPN-сервер. Усядься за тот компьютер, который будем выполнять роль сервера и проделай следующие шаги. 1. ПУСК -> Настройка -> Сетевые подключения. 2. Запусти «Мастер новых подключений». 3. В первом окне (смотри рисунок 1) выбери пункт: «Установить прямое подключение к другому компьютеру» и нажми «Далее». 4. В следующем окне (рисунок 2) сделай выбор в пользу «Принимать входящие подключения». Нажимай «Далее».
Рисунок 1 (Первое окно мастера)
Рисунок 2 (Обязуемся принимать входящие подключения) 5. В следующем окне (рисунок 3), мастер создания нового подключения тебя спросит «Разрешать виртуальные частные подключения аль нет?». Мы собственно и собираемся принимать подключения, поэтому выбираем «Разрешать». После этого нажимаем «Далее». Вполне вероятно, что вид твоего окна будет отличаться от того что изображено на рисунке 3. Не обращай на это внимания, а просто нажми «Далее». Следующее окно должно быть таким, каким надо. 6. В очередном окне (рисунок 4) тебе требуется определить пользователей, которые могут подключаться. Выбирай из списка имеющихся или создавай новых. Не забудь, создаваем юзерам задавать пароли. Как закончишь – кликни «Далее».
7. Наши усилия близки к завершению. На очередном шаге, от нас требуется настроить сетевые параметры. Можешь оставить все как есть. Единственное, что требуется – настроить протокол TCP/IP. Выдели этот пункт и нажми кнопку «Свойства». Перед тобой появится окно как на рисунке 5. Установи в нем флаг «Разрешать звонящим доступ к локальной сети». Отметь пункт «Указать адреса TCP/IP явным образом». После этого, пропиши диапазон «с» и «по». Я указал здесь следующий вариант: 192.168.1.40-192.168.1.50. Все клиенты, которые будут подключаться к нам, будут получать IP адреса из этого диапазона. Так, почти все, осталось лишь снять галку «Разрешить звонящему указывать свой адрес IP». Теперь точно все. Нажимай Ok, а затем «Далее».
Рисунок 3 (Даем «добро» на прием подключений)
Рисунок 4 (Выбираем список пользователей)
Рисунок 5 (Настройка свойств протокола TCP/IP) 8. Следующий шаг мастера чисто формальный и тебе остается лишь нажать на кнопку «Далее». Все, теперь наш VPN-сервер готов к приему подключений. Заметить, ничего сложного нам делать не пришлось. Теперь посмотрим, как к этому серверу можно подключиться с другого компьютера. Для этого требуется выполнить еще меньше шагов: 1. Запускай уже знакомый «Мастер новых подключений». После первого информационного шага выбирай «Подключиться к сети на рабочем месте» (рисунок 6). Нажми далее. 2. Теперь тебе требуется выбрать тип создаваемого подключения. Доступно два варианта: - Подключение удаленного доступа - Подключение к виртуальной частной сети. Не трудно догадаться, что нас интересует второй вариант (рисунок 7).
Рисунок 6 (Выбираем вариант подключения)
Рисунок 7 (Определяемся с типом подключения) 3. Здесь нам требуется ввести название соединения. Вводи сюда любое имя. Разницы от этого никакой. Клацай опять на «Далее». 4. На этом шаге мастер попросит тебя определиться – «Требуется ли перед установкой VPN соединения выполнять подключение к публичной сети. Например, если VPN-сервер находится в инете, то сначала нужно установить соединение с Интернет, а уже после пытаться соединиться с VPN-сервером. Для себя я выбрал вариант «Не набирать номер предварительного подключения». 5. Это шаг заключительный. Здесь тебе требуется ввести IP адрес VPN-сервера. Мой VPNсервер находится в локальной сети и имеет адрес 192.168.1.33. Все, кликай «Далее», а потом готово. Попробуй протестировать наше соединение. Если ты все сделал правильно, то соединение будет установлено, и ты получишь IP адрес из определенного нами диапазона. Можешь проявить сноровку и на компьютере сервере расшарить инет. Таким образом, у тебя появиться возможность серфить инет по защищенному соединению. Connecting Complete На сегодня это все. Проведи эксперименты с установленным соединением – попробуй найти ему практическое применение (например, организуй выход в инет, для VPN клиента), а в следующем номере, я расскажу тебе о настройке и практическом применении OpenVPN. Удачи в исследованиях.
Written by Игорь Антонов aka Spider_NET E-mail: antonov.igor.khv@gmail.com WWW: http://vr-online.ru
Архивация баз данных под управление SQL Server В данной статье хочу рассказать, как автоматизировать процесс архивирования баз данных в связке 1С Предприятие 8.1 + SQL Server 2005. Как вы знаете, есть два способа через конфигуратор платформы 1С и средствами SQL Server 2005. Рассмотрим первый самый простой способ через конфигуратор рисунок 1.
Рисунок 1 Из рисунка 1 мы видим, стандартный способ архивирования информационной базы 1С. (далее информационную базу будем называть сокращенно ИБ.) Этот пример архивирования использовался с платформой 7.7 и плавно перешел 8.1, когда ИБ держали в формате *.CDX и *.DBF. Многим кому не по вкусу было архивировать ИБ через конфигуратор, использовали обычный архиватор WinRaR рисунок 2. На рисунке 2, представлен еще один способ сохранения ИБ. Все это примитивно, т.к. администратору надо, к примеру, в обед пока некого нет в программе, заниматься архивированием ИБ или когда все с работы уйдут. А это не очень удобно. Рассмотрим способ №2. Мы перевели базу на SQL Server 2005, у нас отдельный сервер обслуживает базу, там нужно настроить автоматическое архивирование ИБ. А также на всякий случай сделать копию файла 1Cv8.1CD
Рисунок 2
И так преступим, к способу №2. Запускаем SQL Server «Пуск – программы – SQL Server - Среда SQL Server Management Studio Express», смотрим в дереве сервера SQL Server Agent. Открываем и переходим к Jobs. Создаем новое задание для автоматического архивирования базы данных рисунок 3. На рисунке 3, вы видите новое задание. На закладке General заполняем общие данные, название, сервер СУБД, категорию, описание задания. Переходим на закладку Steps. На этой закладке выбираем, какие задания будут выполняться. Нажимаем New, на рисунке 4, вы видите добавление первого пункта задание. Делаем следующее: Step name – пишем название первого задания, Type – выбираем созданный файл 1С_Arhive.bat. Это задание архивирует файл 1Cv8.1CD, после выполнение файл будет bux_1_6100909.rar. Код файла и настройка ниже.
Рисунок 4 Устанавливаем WinRaR – по умолчанию инсталлятор устанавливает программу, в «C:\Program Files\WinRAR», из всего каталога программы нам понадобиться файл Rar.exe. Создаем файл с расширением «bat», текст файла: <-Начало файла->
@echo off c: cd c:\Program Files\WinRaR Rar.exe a d:\BackUp_db_1C\bux_1_6\bux_.rar d:\1Cv8.0_database\base\1Cv8.1CD-agDDMM-YY <-Конец файла->
Для архивных копий ИБ я создал каталог «BackUp_db_1C\bux_1_6» на диске«D». Вот что получилось рисунок 5.
Рисунок 5 Как видно из рисунка 5, первое наше задание создано, как говорилось раньше, это задание делает архивацию файла конфигурации в архив. Следующее задание: делаем архивную копию базы данных на сервере. Создаем второе задание в Step name – ставим название Backup_Full, Type – Transact-SQL script (T-SQL), Database – выбираем нашу базу bux_1_6, Command – записываем код см.ниже. Нажимаем ок. Код для архивирования базы данных: <-Начало кода-> BACKUP DATABASE [bux_1_6] TO DISK = N'D:\bux_1_6-Full_Backup' WITH NOFORMAT, INIT, N'bux_1_6-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO
<- Окончание кода->
NAME =
Дальше переходим на закладку Shedules, нажимаем на New и создаем график архивирования базы данных. Первое задание архивирует в архив программой WinRaR, второе задание архивирует базу данных на сервере СУБД. Созданный план архивации базы данных, представлен на рисунке 6.
Рисунок 6 Из рисунка 6 видно, что мы выбрали архивацию каждую неделю с понедельника по пятницу с 22.00 часа. В этот час весь рабочий персонал дома, с базой данных не работают и сервер весь в нашем подчинении. Все готово сохраняем, наше задание готово, теперь запускаем на выполнение наше задание. Щелкаем по заданию, выбираем в выпадающем меню пункт Start Job. Запускаем задание, если все сделано правильно, то перед нами появится сообщение на рисунке 7.
Рисунок 7
В итоге получается архивная копия, которую делает архиватор, будет лежать в каталоге d:\1Cv8.0_database\base\, а backup сервера ms sql server 2005 в корне диска D. Соответственно пути можно задавать любые как говорится на вкус и цвет. Я думаю оптимальный выбор сделать так. 1) Для архиватора: d:\1Cv8.0_database\bux_1_6\arhive\ 2) Для ms sql server 2005: d:\1Cv8.0_database\bux_1_6\ms_base\ Все поставленные задачи выполнили, добились автоматизации архивирование базы данных. На этом все, удачи!
Автор: Плахов Евгений aka bjjzpp E-mail: bjjzpp@gmail.com
Первое впечатление: Свой/Чужой Первое впечатление можно произвести только один раз. Дело в том, что это самое первое впечатление очень и очень важно в общении и взаимодействии людей, но, увы, на его создание у нас есть буквально несколько секунд с момента начала контакта. Кстати, начало контакта – это вовсе не приветственное слово, это тот момент, когда Вас заметили, выделили из окружающего фона. Как только это произошло, пошли те самые секунды, в процессе которых идет оценка, кто же Вы такой для оценивающего Вас. Одно неловкое движение или слово – и все, впечатление будет испорчено навсегда. Еще один нехороший момент: отменить эту оценку не может никто, ведь и Вы точно так же оцениваете других. А захоти Вы отменить это действие – не выйдет, это действие укоренилось в людях еще со времен мамонтов и набедренных повязок. И, логично вторя Николаю Гавриловичу, зададим себе вопрос – что же теперь делать? Знать Предупрежден – значит вооружен. Согласны? Знание – сила. Тоже не против? Ну и отлично. Итак, по крайней мере теперь нам известно, что хорошее первое впечатление необходимо, но чтобы произвести именно то впечатление, которое Вам нужно, нужно выжать максимум пользы из первых секунд контакта. Но перед этим, еще до самой встречи, нужно определить ее цель, задать себе вопрос “а что же я хочу получить от этой встречи?”. Цель – это очень важная штука, и мы с Вами обязательно поговорим об этом, ну а сейчас вернемся к вопросу о первом впечатлении и разберем, какими же способами можно его произвести. Используй это! Поскольку система оценки и создания первого впечатления прописана в человеческом генотипе уже очень давно, избавиться от нее не получится. А раз так – задача состоит лишь в том, чтобы извлечь из нее не вред, а пользу. И здесь на сцену выходит такое понятие, как “свой или чужой”. Свой
Начиная общение с другим человеком, мы перво-наперво определяем степень доверия к нему, то есть попросту ищем, “сколько в нем меня”, насколько он похож на меня, какую информацию и в каком объеме можно ему доверить. Естественно, можно “подстроиться” под другого человека, располагая неким количеством информации о нем. Можно даже просто предположить что-то, основываясь на известных Вам фактах. Например: известно, что он ездит на BMW последней модели, пользуется
ноутбуком и телефоном от Apple и очень любит отдыхать в Италии. Логично, можно предположить, что одевается он в солидный (и далеко не самый дешевый) деловой костюм, как правило, предположение оправдается. О человеке может рассказать его авто (даже номер этого самого авто), телефон (и, кстати, тоже номер многое скажет), и многое другое. Как же быть, если нужно встретиться с таким вот солидным человеком, а у самого с финансами, по меньшей мере, туго? Самое главное – не нужно подделываться под “своего”: подделки под “Armani” и “Vertu” оставьте дома - это действует только на школьниц (и то все меньше и меньше, они тоже нынче прозорливее стали, так что смело выкидывайте этот хлам в мусорное ведро и никогда не думайте впредь покупать подобное), знающие люди увидят подделку за полтора километра и впечатление о Вас будет испорчено безнадежно: он маскируется под “своего”, а это еще хуже, чем предстать “чужим”. Так что – искренность и честность – и никак иначе. Также очень рекомендуется как можно меньше употреблять наши с вами жаргонизмы. Конечно, так быстрее и понятнее можно донести нужную мысль... для нас. Не забывайте, заказчик как правило не айтишник и аспектов нашей деятельности наверняка не знает и знать не обязан. Еще к возможности быть “своим” можно отнести проживание в одном городе, обучение в одном учебном заведении, армейская служба в одном роде войск либо успешный откос от этой самой службы, одинаковые марки авто, компьютера, телефона, любая общая тема для разговора. Согласен, что максимально стать “своим” при этом не получится, ведь разговор на данные темы явно не попадет в те секунды, которые отведены на установление первого впечатления о Вас, да нам это и не обязательно. Зато Вы покажетесь искренним человеком, а значит, внушаюшим доверие. Позже, когда найдутся другие “точки соприкосновения”, это доверие только укрепится. Чужой Действительно, по большей части нам нужно показать, что у нас есть много общего с человеком, на которого требуется произвести положительное первое впечатление (положительное – это хорошее, а не такое, при котором он благополучно на нас положит), показать ему – я “свой”, не нужно меня опасаться. Говоря еще проще – сократить дистанцию между ним и Вами. Как мы уже успели убедиться, “свойскость” может быть достигнута по огромному количеству пунктов, кстати, даже примерно одинаковый возраст может послужить критерием “я – свой”. Значит, чтобы стать “своим”, нужно подстроиться по максимуму возможных объединяющих пунктов, при этом стараясь оставаться честным. Обман может быть раскрыт, зачастую, очень легко, и такая мимикрия вызовет еще большее недоверие. А вот что же о недоверии, о “чуждости”? Как это показать, в общем-то понятно... только зачем это нужно и нужно ли вообще? Нужно! Иногда даже очень нужно. Вот пример: довелось мне в свое время вести курсы по программированию для школьников и первая группа, с которой я встретился – были одиннадцатиклассники. Я так и рассчитывал, что
буду “своим” для них – и тогда все будет замечательно. Как оказалось, я здорово заблуждался. Мне очень повезло, что в тот день, когда я должен был вести свое первое занятие, я и сам сдавал экзамен (форма одежды - парадная), и, возвращаясь, не успел переодеться, пошел так, как был. При всем моем волнении, занятие прошло спокойно: мой отглаженный костюм, галстук и прочий серьезный внешний вид дали понять: ребята, я чужой вам, не смотрите, что у нас почти одинаковый возраст. То есть, мне удалось увеличить дистанцию между собой и учениками, как оказалось, не зря. Очень многие молодые преподаватели пытались выдать себя за “своего”, и в итоге безвозвратно теряли авторитет. Увы и ах, но активным может быть либо доверие, либо авторитет, того и другого вместе – не бывает. А попытки изменить впечатление обычно проваливаются и человек теряет и доверие, и авторитет, представляясь в глазах окружающих банальным лжецом. Ярчайший пример: кандидат в депутаты/мэры/губернаторы во время предвыборной кампании всем показывает, что он “свой”: вот, мол, я из крестьянской семьи, я знаю, что такое нужды простого человека, уж со мной-то всем будет хорошо... зарабатывает доверие. А придя к власти мгновенно меняется – а ему не нужно больше доверие, ему нужен авторитет. И что, получает он свой авторитет? Нет! А что получает? А то, что было сказано в начале этого параграфа. Кстати, я давненько уже не видел подобных “закосов под своего” от претендентов на власть, наверное, это и правильно – им нужен авторитет, значит, нужно сразу именно его и зарабатывать. Подытожим Подводя итоги, скажу, что первое впечатление может быть только одно и это может быть: l l l l
доверие, авторитет, посредственность, презрение и прочий негатив.
Понятно, что для достижения цели, как правило, нужно либо первое, либо второе, а зачастую мы подаем себя как человека посредственного, не вызывающего ни доверия, ни авторитета. К сожалению, именно этот пункт является опцией по умолчанию и мы не знаем (ну мы-то теперь знаем) как его переключить. Только учтите: знать – мало, нужно это еще и применять на практике. Успехов Вам!
Written by: ZeroXor E-mail: zeroxor@yandex.ru WWW: http:// http://zeroxor.ru
Программируй себя сам Этой статьей я хотел бы начать новую рубрику в замечательном электронном журнале VR-Online. Сначала хочу сказать, что очень рад тому обстоятельству, что темы психологии оказались близки и интересны читателям данного журнала и посетителям одноименного сайта. Перед тем, как переходить непосредственно к теме, заявленной в заголовке, хотел бы немного поговорить о том, зачем вообще подобные знания могут понадобиться, и стоит ли тратить на них свое драгоценное время. Выгляните в окно, а лучше (благо, на улице лето) выйдите на улицу, пройдите пешком пару остановок. Наверняка Вы встретите множество людей, практически каждый из которых куда-то торопится, куда-то спешит. Вы можете что-то сказать - никто не услышит, или, по крайней мере, сделает вид, что не услышал. А если вспомнить часы пик в общественном транспорте или очереди в магазинах, становится ясно, что негативных эмоций у человека – хоть отбавляй. Думаю, в доказательствах этот тезис не нуждается. Отлично, тогда идем дальше. Психологами уже давно и бесповоротно доказана связь между психологическим и физиологическим состоянием человека. Именно поэтому в настоящее время, время стрессов и всяческих нервотрепок поменьше ученое сообщество так рьяно взялось за изучение человеческой психики. Да, собственно, эта связь просматривалась уже давно и очень давно: вспомним, например, “Минута смеха продлевает жизнь на ...” (здесь мнения расходятся, но важна суть – продлевает – и никак иначе). Согласитесь, изречение далеко не ново. А всякого рода медитации, стремление к нирване и прочим астралам? Имхо, это прямой факт свидетельства того, что научившись в большей степени использовать свои сознательные и подсознательные мыслительные процессы, человек может улучшить и свое “телесное” состояние. Кроме того, люди взаимодействуют между собой не только на уровне сознания (разума, логики – называйте как хотите), но и на уровне подсознания (естественно, не осознавая этого). А у нашего подсознания есть такая замечательная вещь как настройка, то есть, начиная общение с другим человеком, мы стараемся подстроиться под его психологическое состояние для того, чтобы лучше его понимать, а значит, сделать общение с ним более продуктивным и полезным для обоих. И обратная ситуация: если мы старательно не хотим этого общения, то и ведем себя соответственно, словно выставляем firewall на общение с ним, тем самым закрываясь от всей той информации, которую он хочет сообщить. А теперь, собственно, о самонастройке. Да-да, мы можем не только подстаиваться под других, но и настраивать самих себя, и даже настраивать под себя других людей. Но самое главное, на мое имхо, это именно самонастройка, потому с нее и начнем. Все-таки человек - на редкость парадоксальное создание. Мы мечтаем о вылазке на природу, а потом жалуемся на тяжелый рюкзак и надоедливых комаров. Переходя улицу мы обзываем водителей хамлом, но стоит нам сесть за руль, как все пешеходы начинают упрямо лезть под
колеса. Мы мечтаем о разговоре с начальством, дабы высказать множество предложений и пожеланий, но стараемся обходить кабинет начальника за полтора километра, причем на цыпочках и как можно бесшумнее. Стараемся получать от жизни как можно больше положительных эмоций, при этом постоянно подпитывая себя негативом. Можно, конечно, развести руками и со словами "хотели как лучше, получилось - как всегда" признать свою беспомощность, тем самым добавив себе еще одну порцию негатива. Извините, но это не мой (надеюсь, что и не Ваш) метод. Памятуя о том, что из любой ситуации существует как минимум два выхода, оглядываемся вокруг и, о чудо (хотя я бы назвал это вполне закономерной ситуацией), выход действительно обнаруживается. Ладно, долой всю эту философскую абстракцию, перейдем на более низкий уровень кодинга и попробуем разобраться с негативом и позитивом, а точнее с тем, как они влияют на нас. Общие фразы Как мы уже знаем, тело и мысли человека связаны практически напрямую, через простой (относительно простой, конечно) интерфейс. Кроме того, зачастую помимо нашей с вами воли и желания, подключается и подсознание, корректируя, а иногда и полностью меняя наше поведение. Как правило, этот процесс запускается без нашего ведома и контроля, но, поверьте, это поправимо. Детальное изучение Все просто: любые наши эмоции отражаются, как минимум, на нашем собственном организме, а зачастую и переносятся на тех, кому повезло (или не повезло) оказаться с нами рядом в это время. Например, услышав приятную новость, эта самая новость передается из ушей в мозг, который и анализирует поступившую информацию. Осознав ее приятность наш мозг дает команду на генерацию в больших количествах нежели обычно гормонов радости. Под воздействием этих самых гормонов учащается сердцебиение, ускоряется кровоток, а на язык подаются слова "отлично", "кайф", "супер". Естественно, этот алгоритм не претендует на полную точность, я не спец в биологии, потому обрисовал все в самых общих чертах, но суть, думаю, улавливается. Аналогично можно представить и получение негативной информации, уверен, Вы уже и сами сделали это. Ведь так? Отлично, тогда идем дальше.
Настройка на позитив в теории Теперь подумаем, каким образом полученная информация может нам помочь. Если учесть, что у этой программы есть несколько точек входа, значит, теоритически мы можем сами "заряжать"
свой мозг, а значит и всего себя на позитив. Пусть у нас нет в нужный момент времени того, кто сообщит что-то приятное, попробуем сказать сами себе "кайф!", "отлично!". Конечно, эти слова должны и просто обязаны прозвучать с позитивной эмоциональной окраской. Этот сигнал точно так же попадает в мозг и обрабатывается там. Наверняка эффект будет слабее, чем в примере с другим человеком, но тем не менее он будет. Тогда этот положительный, позитивный эффект можно "раскачать", усилить, отправляя мозгу еще и еще позитивных моментов, которые Вы находите в данной ситуации, а уж мозг позаботится о том, чтобы запустить остальные процессы организма. Такая вот программка у нас получилась. А что же на практике? Естественно, я не удержался от соблазна проверить этот алгоритм на себе. Что могу сказать работает, и даже очень неплохо работает. Впрочем, поначалу были большие сомнения насчет работоспособности этого метода, а сомнения, как Вы понимаете, еще сильнее притупляют позитив. После того же, как убедился лично - сомнений стало гораздо меньше. Так что теперь тренируюсь как можно более быстрой "зарядке на позитив", для "запуска" программы добавляю к положительно окрашенному слову щелчок пальцами. Это для тех, кто решит попробовать, во избежание наступания на некоторые грабли. Удачи Вам, уважаемый читатель, и побольше позитива! Если Вас заинтересовала эта тема, то добро пожаловать на мой блог по адресу http://www.zeroxor.ru и, конечно, читайте VROnline, я обязательно буду продолжать эту тему, если она будет интересна Вам, уважаемый читатель.
Written by ZeroXor E-mail: zeroxor@yandex.ru WWW: http://zeroxor.ru
LMMS – каков на вкус бесплатный фрукт? Линуксовый (и как следствие бесплатный) аналог любимого FL Studio - LMMS добрался и до наших цветных окошек. Давайте разберем поближе его и посмотрим, что оно может предложить бедному студенту-музыканту. Установка Дистрибутив весит всего 15 мб, и без проблем был скачан с официального сайта программы. С установкой проблем замечено не было, она ничем не отличается от установки любых других программ. При первом запуске открылось окошко с настройками программы, которое аналогично FL (что ожидаемо). Что приятно программа сама определила язык и поставила русский. Хотя, признаться, перевод не очень грамотный, видно, человеческая рука тут не прикасалась, работал исключительно электронный переводчик. В разделе «Общие настройки» главный интерес представляет размер буфера.
В разделе «Пути». Здесь стоит указать путь, куда установлены у вас VST-плагины, и FL Studio, так же (если имеются) путь, где у вас находятся SF-банки.
Далее идут «Параметры производительности». Тут немного, и признаться, отключение этих эффектов не сильно влияет на производительность в целом, хотя быть может на слабых машинах будет чувствительно.
В следующей вкладке «Параметры звука» можно выбрать звуковую систему. У меня отобразилось всего две вкладки: SDL и Dummy (по сути либо есть, либо нет). Данная настройка не очень понятна, и я подозреваю, что она перешла без изменений из Линукса.
Последний пункт «Параметры MIDI» по настройкам аскетично-аналогичен предыдущему.
Признаться уже довольно сильно настораживает этот минимализм в настройках (например, нет возможности даже выбрать нужный звуковой драйвер!). Интересно, что ждет нас дальше.
Работа с инструментами
После настроек перед нами предстает вот такое окно. Сразу видно, что писали программистылюбители, за эргономику, не выше тройки, хотя на первый взгляд он мало отличается от «фруктового». Но интерфейс меня мало волнует: бедный студент может разобраться с любыми трудностями. Посмотрим, какие возможности программа предлагает музыкантам. Открываю браузер.
Что ж весьма обширный выбор. На первый взгляд, все, что может понадобиться есть. Но, все же рассмотрю каждый в отдельности: AudioFile Processor – аналог Audio Clip в FL
И сразу же нарекание: авторы, что считают меня ясновидящим? Как разглядеть маленькую кнопку открытия прямо под логотипом такого же цвета? Мне понадобилось минуты три, чтобы найти её! В остальном все скопировано с аналога в FL. В плане работы особых нареканий не вызвало, делаю вывод что разработчики, как программисты лучше, чем как дизайнеры. Bit Invader Синтезатор для жанра 8 bit. Фанатам жанра должно понравиться, есть все необходимые настройки, арпеджиатор, но, к сожалению ни одного пресета, что резко затрудняет общение новичков с данным плагином.
Проведя небольшое время за ним, я разобрался довольно быстро, и даже смог извлечь, несколько неплохих звуков, а, учитывая в целом редкость инструментов для этого жанра, то можно сказать авторам спасибо, за данный инструмент.
Kicker – прямой аналог Fruit Kick Звук удара, признаться, мне не очень понравился – глухой, причем настолько, что даже еле улавливается изменение тональности. Хотя применение я ему нашел сразу же – хороший вариант для имитации звука сердцебиения.
LB-302 LB-302 – расшифровывается как Lead Bass. Из чего сразу становится понятно, что это синтезатор басовых линий и соло-партий для электронной музыки.
Звучание данного плагина «на троечку», хотя мое мнение, что он тоже создавался с ориентировкой на 8 bit, и подобные жанры.
Mallets Этот плагин не вызвал у меня нареканий. Звучание звонкое, четкое, конечно реалистичным его назвать сложно, но если поработать эквалайзером и наложить реверберацию, то получится очень даже неплохо.
Organic Как видно из названия – имитация звука органа. Звучание плагина довольно «пластмассовое». Но в качестве применения можно использовать для имитации игрушечных органчиков и пианино.
FreeBoy FreeBoy – эмулятор аудиопроцессора GameBoy! (если кто помнит была когда то такая карманная игровая консоль). Авторы, точно фанаты 8 bit. Отличный звук! Плагин как будто возвращает во времена, когда появились первые приставки. С помощью арпеджиатора мне удалось сделать много звуков аналогичных мелодиям из игр того времени.
Patman Patman – синтезатор на основе патчей, совместимый с GUS. Добиться мне от него так ничего и не удалось. Он предлагает выбрать патч с расширением *.pat. Найти подобные файлы в папке с программой и где-либо еще на моем компьютере не удалось.
SF2 Player SF2 Player – проигрыватель sf2-файлов. Я ими не пользуюсь, поэтому оценить работу плагина мне было сложно. Количество настроек и интерфейс нареканий не вызвали.
SID SID – еще один плагин для любителей 8bit. Эмулятор чипов MOS6581 и MOS8580, которые использовались на Commodore 64. Большое количество настроек позволяет получать самые разные звучания. Звук получается мягкий и довольно приятный.
TripleOscillator TripleOscillator – аналог 3x Osc в FL. Плагин полностью скопирован со своего платного аналога, как в плане интерфейса, так и в плане звука, хотя мне показалось, что у данного плагина всетаки более «аналоговое» звучание.
VeSTige VeSTige – интерфейс для загрузки VST плагинов. Аналогичен Fruity Wrapper. ля теста я загрузил в него плагин Milk Guitar. Плагин загрузился быстро и без проблем. Настроек никаких, кроме самых основных я не нашел, хотя все что реально может пригодиться есть.
Vibed Этот продукт позиционируется, как эмулятор колебания струн. Подозреваю, что создавался как более продвинутый аналог Plucked. Признаться, у меня так и не получилось сделать звук струны. А отсутствие пресетов, так и не позволило разобраться, как работать с этим плагином. Тем не менее, люди, которые хорошо знакомы с теорией синтеза звука, смогут добиться очень неплохих результатов.
ZynAddSubFx ZynAddSubFx – последний в нашем списке плагин. Представляет собой еще один синтезатор басовых линий, но уже с пресетами. Для того чтобы открыть окно синтезатора нужно: нажать кнопку “Show GUI”, далее в открывшемся диалоге выбрать “Beginner”, появится окно синтезатора, как на скриншоте, в этом окне надо будет щелкнуть по вкладке “Instrument”, и в открывшемся списке выбрать “Show instrument bank”. Неужели разработчики считают это удобным? Лично мне после таких операций уже перехотелось пользоваться этим инструментом, хотя он имеет довольно много установок и пресетов.
Микшерный пульт В данном случае пульт используется только для наложения эффектов и регулирования громкости. Создатели программы точно не музыканты, потому что тяжело пользоваться пультом, который не имеет даже ручки баланса! Я уже не говорю о таких кнопках как mute, solo и т.д. Но будем пользоваться, тем, что имеется. Чтобы пользоваться микшером, нужно назначить канал FX на соответствующий канал микшера.
В разделе «Цепь фильтров» можно добавить эффекты. Присутствует большое количество встроенных эффектов, так же легко загружаются VST. Эффекты работают без особых осложнений, замечаний практически нет. Работа над проектом Чтобы оценить возможности программы я загрузил несколько готовых проектов, которые поставляются вместе с программой. Мнение, о том, что авторы не музыканты усилилось еще больше. Более того, они совершенно не могут пользоваться, теми инструментами, которые сами же и придумали. Все проекты были выполнены с использованием сэмплов, и авторы
практически не пользовались инструментами! Единственное, что могу посоветовать вам для ознакомления с программой – это проекты из папки covers. В целом звучание проектов не очень приятное, напоминает больше звук midi. Боюсь, со стандартными инструментами будет сложно работать даже на любительском уровне. Заключение Кратко я рассмотрел все функции программы. Впечатления смешанные. С одной стороны – это продукт с мощным потенциалом, с другой стороны уровень его реализации так и остался на любительском. На момент написания статьи последняя версия программы была: 0.4.4, поэтому сложно сейчас делать выборы, посмотрим, чего авторы добьются хотя бы к 3ей или 4ой версии, я надеюсь, что они все-таки сделают конкурентоспособный продукт. Увы, сейчас его нельзя назвать ни заменой FL Studio, ни даже просто хорошим бесплатным хостом (не дотягивает даже до уровня Reaper). Но все же программа имеет право жить на ваших винчестерах, если вы увлекаетесь экспериментальной электронной музыкой, и просто must have для тех, кто пишет музыку в жанре 8 bit и других схожих жанрах. Новичку будет сложно в ней разобраться из-за недоработок в интерфейсе, плохого перевода и отсутствия пресетов. Людям, имеющим опыт в работе с музыкальными программами, я рекомендую скачать, и самостоятельно ознакомится, быть может, она и не станет вашей основной программой, но, тем не менее, может стать хорошим подспорьем в экспериментальных проектах. В своем я приведу диаграмму оценок основных функций.
Written by Night_Storm WWW: http://nstorm.3dn.ru
Бесплатный софт для музыканта Все больше пропагандируется покупка лицензионного программного обеспечения, и надо заметить в этом есть здравые зерна: программисты же тоже люди и хотят кушать, получать достойные деньги за свой труд, и так далее. И второй нюанс: ведь музыкальный софт это такой же инструмент, как и гитара или пианино, вы же не крадете их из магазина. Ну да ладно покапал вам на мозги и ладно, давайте посмотрим, что может себе позволить честный (а в силу этого бедный) музыкант. 1. DAW (Digital Audio Workstation)
Это наша рабочая среда, и надо сказать, что с бесплатными программами тут действительно как то не очень. Поэтому рассмотрю здесь две недорогих условно бесплатных программы. Reaper - Набирающая обороты и уже довольно популярная программа. Работает 30 дней без функционального ограничения, затем можно будет купить за 1500р - смешные деньги для программы такого уровня. Вес в 3мб поначалу не внушает доверия, но после установки все сомнения развеяны:
Как видите это полноценная "рабочая лошадка" по основным функциям не уступающая таким монстрам как Cubase и Sonar. После установки она без проблем нашла все установленные VST и сразу была готова в работе. По ресурсоемкости так же никаких претензий, работает пошустрее тех же FL Studio.
Вторая программка не обладает таким большим функционалом, но тем не менее отлично подойдет для тех кто делает первые шаги на музыкальном поприще, единственная проблема, она требует от вашей звуковой карты обязательную поддержку ASIO, так что если ваша звуковая карта не поддерживает эту технологию, придется установить эмулятор ASIO4ALL. Итак, встречаем: MU.LAB:
Программа весит порядка 8мб, бесплатная версия позволяет создавать не более 6ти дорожек. Я считаю это идеальный вариант для новичков в музыке, кому серьезный софт оказывается не "по зубам". Она имеет так же некоторые встроенные инструменты, и эффекты. Я бы её назвал игрушечным вариантом FL Studio. Тем не менее отличная вещь для тех кто не хочет долго разбираться с могучим софтом, кряками к нему, а просто сесть и заделать какой-нибудь скажем транс или хаус (да в принципе любой жанр). Линуксовый вариант FL - LMMS - практически полностью копирует горячо любимый мной продукт, кстати, появилась версия и для Windows, и самое ценное - поддерживает импорт flpфайлов! К сожалению, качество реализации продукта нельзя назвать высоким, но тем, кто пишет музыку в стиле 8bit - must have однозначно!
А для любителей Reason я тоже подыскал бесплатный аналог: Rax'n'Trax - Качественный софт с поддержкой VST и даже ReWire (небывалое для бесплатных программ), обладает качественным звуком и малым весом (1,7 Мб!).
2. VST Инструменты Вообще говоря, бесплатные инструменты, на мой взгляд - это ахиллесова пята в домашней студии, с одной стороны их много и много неплохих, с другой чтобы добиться нужного результата порой приходится составлять просто жуткие комбинации, т.к. они все уступаю по качеству и настройкам коммерческим - это факт (за редким исключением). Я рассмотрю несколько тех, которыми я пользовался:
Ударные. Если с электронными ударными проблем особых не возникает, то с реалистичными наборами куда труднее, поискав я лишь смог выделить: DSK Acoustic Drumz, которые имеют звучание близкое к FPC из FL Studio, Addictive Drums Demo - демо-версия известного плагина имеет небольшие ограничения по функциям, но работать можно. Басс - 4front bass module - не имеет никаких настроек, но можно извлечь приятный звук, Applied.Accostics String Studio - здесь так, же имеется пара неплохих звуков басса. Синтезаторы. Тут без комментариев. Можно выделить бесплатный Autogun с 4 миллионами пресетов ;). А можно пользоваться демками от NI (massive, FM8 и тд) таким образом: они имеют ограничение по времени работы и не сохраняют настройки, но никто не запрещает нам набить нужную партию и сохранить ее в виде *.wav файла. Из бесплатных пианино нашел только отвечающий моим запросам 4front piano module. 3. Эффекты Тут особых проблем не возникает. Разрабатывается очень много хороших инструментов, я расскажу о том что успел попробовать: Компрессор - Classic Compressor by Kjaerhus Audio - очень естественное аналоговое звучание, так же очень хороший компрессор из набора плагинов The fish fillets v1.1, там же есть и качественный диессер и гейт. Эквалайзер - их огромный выбор: paris EQ, Electri-Q - posihfopit edition by Aixcoustic - имеет 2 режима цифоровой и аналоговый, Filtrate LE by LiquidSonics , SynthMaker Equalizer. Задержка - Classic Delay by Kjaerhus Audio, мне этого хватает по сути больше ничем и не пользуюсь из дилеев. Реверберация - Ambience by Magnus, опять-таки Classic Reverb by Kjaerhus Audio, Nebula HS Reverb.
Заключение То что я рассмотрел, это конечно же далеко не все, но по-моему очевидно что писать музыку бесплатными средствами, все-таки можно, хоть и не так удобно как при помощи профессионального софта. На кого направлена эта заметка? Прежде всего на новичков, которые не могут определиться и забивают свои винчестеры тяжеловесным софтом десятой доли возможности, которых не используют, возможно будет интересно и тем музыкантам, которые подумывают снабдить свежее купленный нетбук небольшим, несложным набором, чтобы иметь возможность заниматься любимым делом и в "огородных" условиях. На этом я не заканчиваю свои рассуждения о софте, ждите еще много полезной информации. Желаю удачи! P.S. Весь упомянутый софт я нашел на таком вот хорошем сайте: http://plugins.gersic.com/
Written by Night_Storm WWW: http://nstorm.3dn.ru/
Попытайся меня понять Был теплый вечер. В начале лета еще не очень жарко, особенно по вечерам, когда дует прохладный ветерок. Море было абсолютно тихим и спокойным. На водной глади отражались огни аттракционов, которые находились недалеко от пляжа. Но их шум был, где-то там, далеко. Он не заглушал шелест воды, которая раз за разом накатывала на берег с очередной небольшой волной. На песке в обнимку стояла парочка молодых людей. Парень, ростом выше среднего, одетый в черные кроссовки, джинсы и черную летнюю курточку нежно обнимал за талию девушку. Самую красивую и самую очаровательную девушку, которую он когда-либо встречал и, как казалось ему, никогда больше не встретит. Алиса обняла руками Андрея за шею, улыбнулась, и он нежно поцеловал ее. - Боже, какие нежные губы, какие нежные руки, как приятно просто быть с ней. Иногда хочется, что бы в этой жизни ничего не менялось. – Эти мысли за мгновение пронеслись у Андрея в голове. - Смотри как красиво. – Сказала Алиса, поворачивая голову в сторону только что вспыхнувшего салюта. – Я их так обожаю. - Да, и правда красиво. – Ответил Андрей. Они еще немного стояли в обнимку, наблюдая за салютом. - Уже достаточно поздно. Идем? - Да, ты права. Пойдем, я провожу тебя. – Взяв ее за руку, они пошли вдоль набережной. Раньше Андрей предлагал ей вместо пешей прогулки взять такси, но Алиса всегда отказывалась. Она любила гулять пешком, особенно по пляжу. Ее манило морское спокойствие. Она могла подолгу наблюдать за морской гладью и размышлять о чем-то. О чем-то своем, секретном, о том, что даже Андрею не было известно. Может, поэтому он и влюбился в нее? За ее таинственность, и загадочность. Хотя нет. Это было после того, как он разглядел ее красоту. Ее великолепная фигура, ее длинные черные волосы, но самое главное – это ее улыбка и глаза. Немного раскосые, карие глаза. На одной из тренировок они случайно встретились взглядом. Именно тогда она и очаровала его своей приветливой улыбкой. Надо же, раньше Андрей как будто бы не замечал ее. Он был увлечен занятиями и старался не отвлекаться ни на кого. Если бы не эта улыбка. В тот же миг он решил, что вечером проведет ее домой. После тренировки он пошел вместе с небольшой компанией, с которой Алисе было по пути домой. Ему конечно надо было совсем в другую сторону, но сегодня он хотел познакомиться с этой девушкой. Когда же все ребята разошлись каждый в свою сторону, Алиса уже собиралась попрощаться с Андреем, как тот предложил провести ее до дома. Согласие не заставило его долго ждать. Они шли по дороге и разговаривали совершенно о разных вещах. Андрей шутил, веселил девушку и поражался, что общение с ней происходит так свободно. Ему не надо было придумывать, что сказать в следующий момент. Он просто был самим собой. Ведь с ней это было так легко. Но в последнее время что-то изменилось. Они стали реже встречаться, меньше разговаривать по телефону. И эти ее разговоры на тревожную тему об их расставаниях. Андрей рассказывал ей, что он выполняет какие-то заказы, которые получает через Интернет. Иногда ездит в другие города и часто просиживает ночами за компьютером у себя дома. Алиса не вдавалась в подробности его работы, просто у парня она связана с компьютерами. Деньги у Андрея всегда были. Не большие, но были. Однажды она спросила, не занимается ли он чемнибудь противозаконным в этом Интернете? И Андрей успокоил ее, сказав, что его работа абсолютно законна, хоть и достаточно специфическая. - Почему ты перестал ходить на тренировки? – прервала воспоминания Андрея Алиса. - Ты же знаешь, что у меня стало меньше свободного времени. Работа, поездки отнимают достаточно много. А что?
- Да так. Тренер спрашивал. Он тебя считает одним из самых перспективных учеников. - Ну, я же не забросил полностью. Иногда занимаюсь по утрам упражнениями. А тебе еще не надоело все это? - Да как мне может это надоесть? Ты же знаешь, как я это люблю. Эти тренировки, эти походы в тир. Здесь я нашла себя, нашла друзей, и мне нравится это занятие. Эту манию к оружию он мог понять. Он ее видел. Видел не раз, как она стреляет. Лежа у бойницы, в камуфляжных штанах и футболке, она прижала винтовку к плечу. Левый глаз прищурен. Полная сосредоточенность на мишени и тишина. Плавное нажатие на курок. Выстрел и как всегда попадание в десятку. Кажется, в этот момент ей безразличен весь мир. Выстрел. Вылетевшая гильза падает на пол. Перезарядка. Прицеливание. И снова выстрел. Не много таких девчонок, которые походам в магазины и клубы предпочитают тренировки и тир. В детстве она потеряла отца. Это было тяжелым испытанием для маленькой девочки. Ей пришлось быть сильной, и жалости она ни от кого не ждала. Но в то же время она сохранила свою женственность, свою привлекательность, свою хрупкую натуру. Поэтому она так нравилась Андрею. - Ты и впрямь помешана на оружии. - Не больше, чем ты на компьютерах. – Улыбнувшись, сказала Алиса. – Смотри, тучки собираются. Звезд почти не видно. - Да, наверное, дождь будет. Они подошли к району, где расположены маленькие частные дома, и свернули на небольшую дорогу. - Алиса, что с нами происходит? – Первым открыл он наболевшую тему. – Почему у нас затрудняются отношения? - Я, я не знаю. - Уверен, что знаешь. Расскажи мне, наконец, что вдруг так внезапно изменилось? - Андрей, твои чувства ко мне… - А что с ними не так? Алиса, ты мне безумно нравишься. Я стараюсь уделять тебе свое внимание. Я понимаю, что часто пропадаю за работой, но я стараюсь. - Да в этом все и дело. Понимаешь? Мне нравилась твоя забота, твое внимание. Я хотела бы быть частью твоей жизни, но я вижу, что становлюсь единственным ее смыслом. Твое внимание начало меня душить! – внезапно произнесла Алиса. Андрей не поверил своим ушам. Как же так? Душить? Да что она такое говорит? К его переживаниям добавилась еще и обида. Эти слова затронули его чувства. Капли воды начали падать на них. Пошел мелкий дождь. - Алиса, как ты можешь такое говорить? – с обидой в глазах спросил Андрей. - К сожалению это так. Это не может больше так продолжаться. Нам надо расстаться. Это самые страшные слова, которых он больше всего боялся. Он знал, что это когда-нибудь произойдет, но не хотел в это верить. Вот только реальность оказалась суровой. - Прости, Андрей. Попытайся меня понять – с этими словами она развернулась и пошла домой. На душе стало тяжело. Тяжело от безысходности произошедшего, оттого, что самый любимый человек вдруг просто ушел, оставив его со всеми своими переживаниями наедине с самим собой. Вода потихоньку стекала по его волосам и куртке. Он взглянул ей
вслед. Вместе с каплями дождя, по щеке прокатилась слеза. ***** На улице начинало вечереть. Впрочем, заметить это было не просто, так как окна были зашторены. В углу стояла не застеленная кровать. К другой стене комнаты был приперт стол для компьютера. Над столом расположены полки с большим количеством книг по программированию, беспроводным технологиям и компьютерной безопасности. Единственным источником света в комнате был экран ноутбука, стоявшего на столе. Из небольших динамиков доносилась электронная музыка. Андрей быстро перебирал пальцами по клавиатуре. В окошке mIRC появлялись новые сообщения. Tigress: - Дракон, привет! Давно не виделись. Dragon: - Привет, Тигренок. Tigress: - Как дела? Dragon: - Скучаю немного. Но я так понял, что это скоро закончится. Tigress: - Ты прав. У нас есть заказ. Тебе Макс уже рассказал? Dragon: - В общих чертах. Tigress: - Кстати, а где он? Dragon: - Поехал на своем пепелаце на вокзал - встречать Stranger’a. Tigress: - Понятно. Ты же знаешь, что мы сегодня собираемся на десять вечера? Dragon: - Да. Я сейчас уже буду выходить. Tigress: - ОК. Я тоже. Dragon: - До скорого.
Андрей вышел из программы и закрыл крышку ноутбука. Затем положил его в рюкзак, вместе с парочкой своих девайсов. Перекинув сумку через плечо, он оглядел комнату. Закрыв дверь на ключ, он пошел в гараж. Привет, мой красавец – открыв двери гаража, произнес Андрей. Блестящими фарами на него смотрела его любимая Honda CBR 125 R. Заработать 19 – летнему парню на такой мотоцикл самому достаточно сложно. Андрею помогли родители. Он старался содержать себя сам и не нагружать родителей своими расходами. За квартиру платил сам, компьютер купил за свои деньги, но тут слишком большая сумма. Андрей надел шлем, завел мотор и поехал в кафе, где он и его команда любили обсуждать свои дела или просто встречаться для отдыха. Виделись, они не так часто, как хотелось бы. Учеба отнимает время, да и у каждого свои личные заботы. Но по вечерам они встречались в on-line. Общались в основном через IRC или свой сайт по безопасности корпоративных учреждений. Именно этот проект позволял зарабатывать им деньги. Идея его создания была предложена Максом чуть больше года назад. С этим 21- летним парнягой, Андрей познакомился на одной из конференций по компьютерной безопасности. Он не был гениальным программистом или хакером, хотя разбирался в этих делах не слабо. Его отличало другое – умение нестандартно мыслить, придумывать хитрые планы для получения важной информации. Креативщиком команды был именно он. С остальными членами команды: Тигренком и Stranger’ом связи были налажены через различные порталы по безопасности. Вскоре Макс понял, что общими усилиями и знаниями они смогут кое-чего добиться. В общем, это понимал каждый из них, поэтому сплотились ребята довольно быстро, тем более, что они были похожи в чем то друг на друга. Каждый до безумия был увлечен своим делом. Ночи на пролет просиживание за экраном компьютера, вечное шипение модема и пролистывание различных листингов, схем, документаций. Этого не могли понять ни их родственники, ни друзья, ни одногруппники. Может поэтому они так быстро поладили друг с другом. Каждый видел в остальных частичку той одержимости своим делом, которую было не понять другим.
Андрей мчался по крайней левой полосе, обгоняя разные иномарки. Притормозив, он свернул на набережную и потихоньку покатил к кафешке. Недалеко, опершись о стену и спрятав руки в карманы, стояла девушка. Невысокого роста, в черных джинсах и курточке. Короткие, прямые, светлые волосы были собраны в хвостик. - Привет, Ирка! – поздоровался Андрей, снимая шлем. – Я не опоздал? - Приехал раньше всех. Не считая меня – улыбнулась девушка. – Пойдем внутрь, я проголодалась. Подождем остальных там. Ребята прошли в кафе, сели за столик. К ним подошла официантка, и они сделали заказ. - Ну, рассказывай. Как съездила? Что новенького? - Да все нормально. Проведала своих родственников, гуляли немного. В общем расслаблялись. На заборах знаков условных понарисовали. - А, вардрайверы. – догадался Андрей. – Везет тебе. Москва очень красивый город, впечатляет своей величественностью. - Наш тоже не маленький. Как сам то поживаешь? Две недели не виделись – сменила она тему. - Да… Андрей замялся на секунду – все нормально. В этот момент к кафе подъехала черная Lachetti. Двери кафе открылись и на пороге появились Макс и Stranger. - Привет ребята! О, я вижу, вы без нас начали? – заулыбался Максим. - Да вас пока дождешься – ответила Ира. - Привет, Макс! Привет, Игорь! – поздоровался Андрей. Парни взяли стулья, и подсели за стол, предварительно заказав себе по пицце и пак сока. - О, а где наш электроник? – спросил Игорь. - Да он вечно опаздывает. Ты же его знаешь, что-то паяет, наверное – ответил Андрей. - Сейчас я ему звякну – Ира достала мобильник из кармана. В этот момент в кафе зашел Серега и оглядел все столики в поисках своих товарищей. - Привет, Эйнштейн. Почему опаздываем? – спросил Максим. - Да ну блин. Между прочим, делом был занят. Почти все готово. - Кстати, давайте ближе к делу. Макс, рассказывай подробности – попросила Ира. - Тигренок, терпение. Дай хоть сока попить – полез в рюкзак Максим и достал от туда папку с бумагами. – Надеюсь, все вы помните сайт, который мы месяц назад проверяли на уязвимости? - Это который какого-то компьютерного центра? Помним. - А что-то не так? – спросил Андрей. - Андрюха, как раз все так. Их начальству понравилась наша работа. И теперь они предлагают нам проверить их офис на возможность проникновения из вне и добычи ценной информации. - Что-то они больно пугливые – сказал Игорь. - Да не пугливые они. Конторка то не маленькая. Оборот большой, вот и решили они подстраховаться и найти изъяны в своей новой политике безопасности. Создали специальный отдел и хотят теперь его проверить – ответил Серега. Максим раскрыл папку и разложил на стол листы с фотографиями и текстом. - Это досье некоторых из охранников нашей конторы. Может быть, предстоит с ними столкнуться, поэтому лучше запомнить их сразу.
Человек на одной из фотографий показался Андрею знакомым. - Блин, где я его видел. - Что? – переспросил Игорь. - Да не, ничего. То я так, свое. - Макс, а где ты это достал? Неужели их начальство дало тебе досье их же охраны? – удивился Серега. - Да щас. Так бы сразу и дало. А мы что, зря их сайт тогда колупали? Вот кое-что ценное и сохранил себе. Пригодилось ведь? - Маньяк! Ладно, какой у тебя план. Я ведь вижу по твоей хитрой улыбке, что он у тебя есть – потягивая сок, сказала Ира. Компания еще больше часа сидела в кафе и оживленно о чем-то беседовала, рассматривала какие-то чертежи и схемы, рисовали на них. - Вроде бы все обсудили – доедая последний кусок пиццы, произнес Максим. - Народ, не знаю как вы, а я уже не могу. Все, я спать. Завтра ответственный день – первым встал из-за стола Игорь. – Еще в поезде нифига не выспался. - Он прав. Завтра никто не должен кунять. Давайте собираться – предложил Серега. Ребята заплатили официантке и направились на улицу. - Игорь, а ты где остановился? – усевшись на мотоцикл, спросил Андрей. - Где, где? У Макса. Дешево и сердито – усаживаясь в машину к Максиму, ответил Stranger. – Серега, тебя подвезти? - Нет, спасибо. Я на автобусе доберусь. Все, всем пока – застегивая курточку, Сергей направился вдоль набережной. - Тигренок, садись. Подвезем домой. - Андрюха, до завтра – усаживаясь в машину, попрощалась девушка. Он немного подождал, пока Макс не развернется на своем танке, как он его называл, и они не уедут. Тогда он включил свет и завел двигатель. Андрей медленно катил на своем мотоцикле вдоль набережной и поглядывал на море. - Черт возьми! Опять эта тоска. Сейчас не время грустить, завтра предстоит важная работа. Надо быть внимательным и не отвлекаться - подумал про себя парень. Он свернул на дорогу и, прибавив ходу, помчался домой. ***** Этот день выдался не сильно жарким. Солнце скрывалось за облаками и лишь иногда выглядывало, одаряя людей своими лучами света. Впрочем, Андрею это было только на руку. Он оглядел местность с крыши девятиэтажного дома. Заметить вроде не должны – тихо прошептал. Расстегнув рюкзак, он сначала достал небольшую коробочку, какую-то длинную пластиковую трубу, небольшой аккумулятор, а потом и свой ноутбук. Открыв его крышку, Андрей запустил программу и начал быстро перебирать пальцами по клавиатуре. - Дракон, как идет настройка? – донеслось из телефона. - Я буду готов через час, полтора. Как там Тигренок? – спросил Андрей. - Уже собирается. Мы тебе позже перезвоним. - Понял – выключая телефон, Андрей сосредоточил свое внимание на экране. В нескольких кварталах от той самой девятиэтажки стояла Chevrolet Lachetti. За рулем сидел Игорь, рядом с ним, раскрыв ноутбук – Сергей. На заднем сиденье расположилась
Ира. - Проверял? Работает? – принимая из Серегиных рук некое устройство, спросила девушка. - Ты сомневаешься в гениальности нашего Эйнштейна? – пошутил Игорь. - Да работает! Вы думаете, чем я вчера весь день маялся? – ответил Сергей. – Последовательность подключения я тебе объяснил. Схема у тебя есть. Справишься. Понятно – надевая кепку, ответила девушка. Положив устройство в рюкзак, она вышла из машины и направилась к зданию, стоящему напротив. В этом здании, согласно схеме, которую удалось раздобыть ребятам, находился коммутационный блок, к которому и была подключена телефонная линия необходимого им компьютерного центра. Ира была одета в одежду, которая походила на простую униформу рабочих из телефонной компании. Зайдя в дом, она поднялась на третий этаж и направилась к щитку. Открыв его, она достала из рюкзака схему проводки и соединения телефонных линий и стала сверять маркировки и коды. Вдруг, неожиданно скрипнула дверь. - Девушка, а вы кто? Что вы здесь делаете? – спросила пожилая женщина, выглядывая из-за двери. - Я из телефонной компании. Дело в том, что у ваших соседей перестал работать телефон, поэтому меня вызвали сюда, что бы я устранила неисправность – спокойно ответила она. - А, понятно. А у нас тоже, когда трубку подымаешь, шипение иногда сильное. Нам уже не раз обещали мастера прислать, но что-то его до сих пор нет. Может, вы посмотрите, в чем дело? – с надеждой спросила бабушка. - Я постараюсь решить и этот вопрос – так же спокойно ответила Ира. - Ну, спасибо тебе большое. А то все ж обещают починить, а не делают. Спасибо тебе – закрывая дверь, проговорила старушка. - Все? Больше ни кому тут ничего не надо починить? – пошутила про себя девушка и достала из рюкзака устройство. – Кажется эти – зачищая кусачками несколько проводов, она подключила к ним крокодилы. Потом положила коробку под ними и, закрыв щиток, спустилась с лестницы. - Идет – оживился Игорь – кажется все нормально. - Так и есть – подтвердил Серега – слышен гудок. Надеюсь это та линия. - Все готово – усаживаясь в машину, сказала Ира – теперь выход Макса. На первом этаже, возле входных дверей того самого компьютерного центра стоял молодой парень. Он несколько раз пытался засунуть в терминал оплаты мятую купюру, но всегда получал ее обратно. Впрочем, она была специально помята, что бы он мог, как можно дольше находиться возле терминала. Со стороны всем казалось, что парень просто не может пополнить себе счет на мобилу, так как аппарат помятые купюры не принимает. Но после каждого раза, как десятка выезжала обратно, он давил определенное время на сенсорный экран, пока не появлялось обычное меню, как при нажатии правой клавишей мыши на рабочий стол компьютера. Максим знал, что на таких аппаратах стоит обычная Windows XP, и то, что все пользователи видят на терминале, это все го на всего программа, развернутая на весь экран и не имеющая кнопок «закрыть» и «свернуть». Появилось меню, и Максим выбрал пункт «свойства». Обычные свойства рабочего стола. Он начал изменять разрешение экрана до тех пор, пока вследствие ошибки, окно той самой программы не перестало быть развернутым на весь экран. В это же самое время он менял
купюру и старался снова засунуть ее в терминал. Отлично, а вот и кнопка «Пуск» - обрадовался Максим – зайдя в «специальные возможности» он запустил «Экранную клавиатуру». Прощайте окна – запустив консоль, он набрал «del C: ntldr». Через несколько секунд терминал начал выдавать ошибки. Максим подошел к одному из продавцов электроники. - Вам что-нибудь подсказать – протараторил заученную фразу тот. - Ага, подскажи мне, пожалуйста, почему после того, как я засунул в ваш терминал деньги, он потух и перестал работать? – немного повышенным тоном спросил Максим. - Я не знаю. Мы не отвечаем за обслуживание этих терминалов. - А кто отвечает? Кто ответит за мои потерянные деньги? - Я доложу об этом начальству. Думаю, они вызовут специалиста – растерянно ответил консультант – а много денег успели засунуть? – не зная, что сказать, спросил он. - Да какая разница. Чек то все равно не вышел. Ничего уже не докажу – махнув рукой и сделав обиженный вид, Максим пошел на улицу. В машине, Игорь и Ира внимательно слушали, размахивающего руками Серегу. - В общем, когда кто-то снимает трубку, напряжение на линии падает и это фиксирует мое устройство. А так как оно подключается в разрыв линии, то мы можем выбирать, или не мешать оппонентам общаться между собой, или одного из них отключить, а себя выдать за него. Все разговоры передаются на низкой частоте на мой приемник. - А нас никто не сможет прослушивать при помощи обычного приемника? – поинтересовалась Ира. - Нет. На таких частотах радиостанции не вещают, поэтому обычные приемники их и не ловят. А если и найдется, какой нибудь радиолюбитель, то все равно он ничего не узнает. Я реализовал не сложное, аппаратное шифрование сигнала – немного с гордостью ответил Сергей. - Голова! – восхитился Игорь. Открыв дверцу, в машину плюхнулся Максим. – Так ребята, кажется, все прошло нормально. Остается только ждать. В ожидании звонка, ребята просидели в машине больше часа. Сергей сидел в наушниках и потихоньку «крошил» чипсами. Вторая пара наушников с микрофоном была отдана Ире. - Тихо! Есть звонок – сказал Сергей, что-то переключая на своем приемнике. - Алло. Это техсервис по обслуживанию терминалов? – раздался в наушниках женский голос. Сергей кивнул Ире. - Да. Я слушаю вас. - У нас перестал работать ваш терминал. Не могли бы вы прислать к нам мастера? - Где находится ваш терминал? - Наш компьютерный центр расположен на проспекте Космонавтики 47. - Секундочку… Наш специалист сможет приехать примерно через пол часа. - Большое спасибо – обрадовавшаяся секретарша, которой велели вызвать ремонтника, положила трубку. - Ирка, ну ты и молодец. Речь ровная, спокойная. Я бы тоже поверил, если бы позвонил – восхитился Игорь. - Спасибо – заулыбалась она – теперь твой черед. Игорь натянул кепку и выбрался из машины. Макс сел на место водителя.
- Все, едем на другое место. Долго мы здесь стоим – Максим завел мотор и, выруливая на дорогу, плавно нажал на газ. У Андрея все было готово. Он уже настроил все программное обеспечение и перехватывал зашифрованные пакеты, которые транслировались по Wi-Fi сети в здании этой компьютерной корпорации. Но толку от этого не было никакого. По крайней мере, сейчас. Беспроводная сеть в корпорации была очень надежно защищена. Применялось шифрование WPA2, а для аутентификации использовался выделенный RADIUS-сервер. Для взлома WPA не достаточно просто перехватить пакеты с векторами инициализации. Необходим пакет, который пересылается во время аутентификации клиента на сервере. Но просто так «задосить» какого-нибудь сотрудника шквалом деаутентификационных пакетов не удалось бы. Все пакеты проверяются на самом низком уровне, поэтому подозрительные из них по сети просто не транслируются. Но заставить отключиться какого-нибудь клиента можно не только программно. Есть специальные небольшие устройства, которые на частоте 2.4Ггц вещают шум, создавая для клиентов беспроводных сетей помехи. Это приводит к отключению клиентов от сети и повторной попытке подключиться к ней. Как раз в этот момент Андрей и собирался перехватить пакет аутентификации для дальнейшей его расшифровки. Само собой, для подбора пароля, длиной более 6 символов, даже для самого навороченного компьютера понадобится не один день. Конечно кроме тех ситуаций, когда таких компьютеров много. У команды была своя «бот нет» сеть из нескольких тысяч машин. Безобидный вирус, написанный некогда Андреем, быстро распространился по всемирной паутине на машины тех, кто пренебрегал обновлениями антивирусных баз и различных заплаток. Каждая из таких машин-зомби, периодически проверяла на определенном сервере, наличие файла аутентификации. Если такой имелся, то он закачивался на машину ничего не подозревающего пользователя, и не заметно для него, начинал подбор пароля. При его нахождении, пароль отправлялся обратно на сервер. Комбинации цифр и символов каждый из зараженных компьютеров перебирал строго из своей последовательности, поэтому подбор происходил достаточно эффективно. Андрей следил за списком всех клиентов сети. Он видел их мак адреса и ждал, когда кто-нибудь из них не отключится от нее. Ждать оставалось не долго. Игорь зашел в помещение и огляделся. К нему подошел человек в светло-синей рубашке. На бейджике была надпись «Продавец консультант Илья Глушков». - Здравствуйте. Я так понимаю, вы пришли по поводу терминала? - Угадали. Показывайте, где этот пациент. - Да, собственно говоря, вот он. Который, у двери стоит. - А после чего он перестал работать? - Да я не знаю. Сегодня один клиент пытался пополнить счет, а потом подошел ко мне и сказал, что автомат «потух» забрав его деньги. - Надо же. Скорее всего, какой-то сбой в системе. Такое иногда бывает. Он же у вас уже давно стоит? - Да, где-то год или полтора. - Ну, все правильно. Этим аппаратам иногда полагается проходить диагностику программного обеспечения. Вы ведь знаете, что тут стоят обычные окна, а они, как известно, имеют свойство «падать» - Игорь уже начал вешать лапшу продавцу. - Да, да. Я понимаю – продавцу не хотелось выдавать, что он мало разбирается в таких терминалах, поэтому просто кивнул. - Я думаю, что тут ничего серьезного. Перезапишу системные файлы, если что сделаю откат системы и… О нет!
- Что такое? – спросил продавец. - Я свой ключ забыл. Представляете, сегодня проверял такой же аппарат в одном магазине и забыл у их технического специалиста свой ключ, для открытия терминала – хлопая себя по карманам, сказал Игорь. Продавец явно не хотел, что бы эта волокита с терминалом продолжалась еще один день. У него и так дел полно, а тут еще заставили присматривать за этим специалистом с дырявыми мозгами. - Ладно. Пойдемте. Возьмем ключ у нашего администратора. Они поднялись на второй этаж, и пошли по коридору. В этот момент Игорь засунул руки в карманы и включил то самое устройство, которое пускало помехи в эфир. Конечно, можно было постараться оглушить весь дом, но отключение такого количества компьютеров вызвало бы подозрение. А так, он, идя по коридору, периодически включал свое маломощное устройство, тем самым, отключая от сети некоторые компьютеры, расположенные в офисах на этом этаже. Андрей взбодрился, когда увидел, как в списке подключенных к сети клиентов, трое из них начали по очереди помечаться красным цветом. Все зашибись – прошептал он. Через полминуты один из компьютеров попытался снова подключиться к сети. Вот он. Надпись на экране ноутбука сигнализировала о том, что программа перехватила нужный пакет и можно приступать к его расшифровке. Через подключенный к ноуту мобильник, по GPRS Андрей закачал на сервер файл и стал ждать результата от своей «бот нет» сети. - Куда без пропуска? – спросил охранник, одетый в строгий черный костюм. - Он со мной. Это специалист по терминалам. Мы за ключом идем – ответил консультант. - Он останется здесь. - Ладно. Парень, подожди меня внизу, я сейчас приду – сказал он Игорю. - Да без проблем. Игорь развернулся и пошел на первый этаж. Ему очень не понравился настороженный взгляд охранника. Хоть бы еще эта громила ко мне не прицепилась. Через несколько минут, продавец спустился с ключом. Игорь довольно улыбнулся, открыл терминал, достал из рюкзака ноутбук и при помощи шлейфа подключил его к терминалу. Все это время он знал, что этот подозрительный охранник следит за ним. Игорь делал вид, что диагностирует систему, запускал какие-то программы, но он то знал, что достаточно просто записать на диск С файл ntldr и перезагрузить терминал. - Все. Я нашел неисправность. Тут просто сбились настройки в системных файлах. Я заменил их на новые. Теперь он должен работать – перезапуская терминал, сказал Игорь. Аппарат приема платежей заработал, как следует. Обрадовавшийся продавец поблагодарил специалиста и пошел относить ключ обратно. Наконец-то он вернется к своей работе. Игорь пошел к выходу. Следом за ним двинулся охранник. - Постой, парень. А где предыдущий специалист? Наши терминалы всегда обслуживал один и тот же человек, а тебя я раньше не видел – вкрадчивым голосом спросил охранник. - Не знаю. Может, он заболел? Мне сказали сюда приехать, я и приехал – немного раздраженным голосом ответил Игорь. - Вот только не надо мне здесь лапшу на уши вешать! То он ключ забыл, то своих коллег
не знает! – разгорячился тот. Игорь уже понял что попался, но бежать было поздно. Охранник схватил его за предплечье, прищуренным взглядом оглядел улицу, в поисках кого-нибудь подозрительного и потащил в какую-то комнату. После этого он зашел в кабинет главного администратора и сказал – Иван, я какого-то подозрительного пацана задержал. Он терминал чинил, но я думаю, он пытался здесь что-то найти. - Найти он ничего не пытался, но свою часть работы уже сделал – тихо ответил администратор, следящий за работой системы – Вова, он здесь не один. Пусть наши выезжают! В это время, на противоположной стороне за ним из машины наблюдали его товарищи. - Блин, спалился Игорь. Дергаем отсюда – Максим завел машину и тихонько, что бы не вызывать подозрения, поехал по дороге. В зеркале заднего вида он увидел, как из-за угла выехали два темных Мерседеса. - Мы не можем его здесь оставить! – возмутилась Ира. - Не переживай за него. В крайнем случае, покажет нашу спасительную «бумажку». С ним ничего плохого не случится, сейчас главное другое – ответил Сергей. - Алло! Андрей – приложив телефон к уху, а второй рукой держа руль, сказал Максим – сколько тебе еще надо времени? - Пароль я только что подобрал. Сейчас подключаюсь к сети, ищу оговоренный файл и сваливаю – ответил Андрей, быстро просматривая различные директории. - Давай быстрее. Игоря уже поймали. Я только что видел, как выехали две темные машины. Возможно, есть и третья, тогда они попытаются тебя триангулировать. Так что постарайся побыстрее – предупредил Макс. - Понял – ложа трубку ответил Андрей. Он продолжал искать заветный файл, который необходимо было предоставить заказчику, что бы доказать, что проникновение было выполнено. А в это время, служба охраны засекла его сигнал и, измеряя его мощность, пыталась определить, где он находится. - Он должно быть на крыше этого дома – воскликнул человек в очках, сидящий рядом водителем, и смотрящий в экран ноутбука стоящего на подставке. - Попался, гаденыш – прошептал охранник. Он выбрался из машины и забежал в подъезд. Подымаясь по лестнице, он уже представлял, как застанет этого наглеца врасплох. Ему уже не терпелось увидеть его удивленное и испуганное лицо. Андрей все никак не мог найти нужный файл и продолжал искать его в различных директориях компьютерной сети. Охранник с грохотом открыл люк, ведущий на крышу, и выбежал на нее. Но, там никого не было. - Что за черт? – перед ним стояла какая-то коробка с мигающими лампочками, подсоединенная к аккумулятору и рядом стоящая антенна. Он доложил по рации. - Это ретранслятор! Нас провели! – ответил ему по рации человек, оставшийся в машине за ноутбуком – он где-то рядом. Андрей уже закрыл свой ноутбук и положил его в рюкзак. Повесив его через плечо, он побежал спускаться с девятиэтажки. Она стояла через дорогу от той, на которой сейчас был охранник.
- Вот ты где – в начинающихся сумерках, заприметив силуэт Андрея, он побежал за ним. Андрей скрылся за углом. Охраннику оставалось всего двадцать метров, и он свернет за угол и настигнет беглеца. Но, добежав до поворота, он от неожиданности отпрянул назад и упал, опираясь на руки. Ослепляя фарой, ему на встречу с большой скоростью вылетел мотоцикл. Мотоциклист, со шлемом на голове, притормозил, жестом руки «отдал честь» лежащему на земле охраннику и газанул с пробуксовкой по дороге. - Надо же. Меня так еще никто не мог облапошить. – вставая, с небольшой обидой подумал охранник. - Садись! Мы сейчас его догоним! – открылась дверца подъехавшего к нему Мерседеса. Погоня длилась не долго. Андрей перестроился в правый крайний ряд и свернул на тротуар. Привстав на подножки мотоцикла, словно это был кроссовый Kawasaki, он спустился в подземный переход. Аккуратно объезжая людей с недовольными выкриками, он выехал обратно на тротуар, потом на дорогу, и, перестроившись в левый ряд, дал газу. В зеркале заднего вида никого не было. ***** Начинало вечереть. Вся компания шла вдоль набережной. У каждого из них было хорошее настроение, ведь они смогли выполнить еще один заказ. Еще одна проверка по безопасности прошла успешно. Еще раз они прочувствовали всю опасность, всю привлекательность своей работы, которая когда-то была противозаконной. Но теперь они стали на законных основаниях проверять безопасность разных контор и крупных фирм. На это давал разрешение сам начальник этой фирмы. В случае провала они могли не беспокоиться за себя, ведь у каждого из них была индульгенция. Это документ, выданный руководством, удостоверяющий, что у тебя есть право на проникновение в чужую собственность с целью нахождения изъянов в политике ее безопасности. Так и получилось с Игорем. - А я ему и говорю – это документ, который поможет тебе не вылететь с работы – и достал индульгенцию – продолжал рассказывать Игорь. - Так и сказал? – с улыбкой на лице, передразнил его Сергей – Ну ты храбрец. - Посидел бы ты на моем месте, в той комнате «для допросов». Я бы на тебя посмотрел – потягивая Пепси, ответил Игорь. Максиму тоже не терпелось поприкалываться. - Скажи, Игорь, а тебя сильно били? - Нет. - Значит не сильно – сдерживая смех, продолжил Максим. - Да вообще не били. Вот же идиоты – улыбнулся Игорь, и вся компания рассмеялась. Но, неожиданно для всех, улыбка на лице Андрея куда-то пропала. Он просто стоял, и смотрел в одну точку. Это была она, та самая девушка, с которой он мог бы прожить всю свою жизнь. И которую, в тоже время он не хотел больше встретить никогда, потому что ничего в этом мире, не могло принести ему еще большую боль. Она заметила его. Алиса, стояла на парапете и смотрела на Андрея грустными глазами. - Народ, вы идите без меня. Я вас потом догоню – сказал Андрей своей компании. - Хорошо, как скажешь. Если что, звони – осторожно сказал Сергей, понимая, в чем дело. Андрей, засунув руки в карманы, медленно подошел к Алисе. - Привет – выдавил он из себя. - Привет – так же тихо ответила она.
Он долго не знал, что сказать. Просто стоял рядом с ней и смотрел на море. Наконец он спросил – У тебя все в порядке? - Да. Я просто пришла посмотреть на море. Ты же знаешь, что это меня успокаивает. - Я поэтому и спросил – все так же тихо разговаривал Андрей. Алиса улыбнулась. – Чем занимался на этой неделе? – не зная, в какую сторону поворачивать разговор, спросила она. - Да так. Работал немного, гулял с друзьями – смотря вдаль, ответил он – А ты? - Я наконец-то на море попала. Приехал Димка и «вытащил» меня с мамой на пляж. - Что еще за Димка? – Андрей посмотрел на нее. - Ну, давний друг нашей семьи. Я тебе рассказывала о нем. Он нам бывало, помогал, когда тяжело было. Андрей вспомнил, где видел того самого молодого человека, лет двадцати трех, который был в одном из досье, разложенном Максом на столе в кафешке. Это, тот самый охранник, который преследовал его вчера и чуть не попал под колеса мотоцикла. Его же лицо он видел на одной из фотографий, стоящей дома у Алисы на полке. Точно он. - И давно ты с ним гуляешь? – Андрей понимал, что к его сердцу подступает тревога. - Андрей, не надо – тихо произнесла она. - Ты еще скажи, что он твой парень – он немного повысил тон. Алиса опустила свой взгляд на землю. Андрей замер в оцепенении. Он и не подозревал, что попадет прямо в точку. - Как же так? Прошла всего неделя, а ты себе уже нового завела? - Андрей… - Что Андрей?! - Ты не понимаешь, как мне было тяжело. Я каждую ночь не могла заснуть до пяти утра. - Что тебе было тяжело? - Сделать выбор. Он замер на секунду. - Какой выбор? - Ты же знаешь, что у меня почти нет друзей. С самого детства. Это Андрей знал. Этим он был похож на нее, но не потому, что круг его общения и товарищей был почти так же мал, как и ее, а потому, что другом можно назвать далеко не каждого. - Он поставил меня перед выбором – продолжила Алиса – Или я буду с ним встречаться, или он навсегда исчезнет из моей жизни. Я не хотела терять старого друга. - И ты выбрала его. Да? – спросил Андрей – А почему не меня? Алиса долго мялась. - Я с ним знакома уже три года, а … - А со мной всего шесть месяцев – перебил ее Андрей – Я все понял, Алиса. Ты бы еще монетку бросила. - Андрей, постой! - Что еще? – он обернулся. - Ты злишься на меня, за все, что я сделала? – на ее глаза стали заметно накатывать слезы.
- Я тебя ненавижу, Алиса! И видеть больше не хочу! – Андрей развернулся, и, склонив голову, пошел прочь. Это все, что он мог сказать ей в ответ. Он не мог остаться ее другом, как она хотела бы. Ведь это означало, что ему пришлось бы делать вид, как будто его не тревожит, с кем она встречается. Он не смог бы так жить, но вполне мог понять ее выбор. Бедная девчонка, которая не пожелала расстаться со своим другом, к которому так привязалась она и ее мама. Разве можно ее судить за это? Конечно, нет! Вот только гордость не позволила Андрею признаться в этом. Лучше уж расстаться навсегда и идти каждый своим путем. А может, и постараться забыть все это. Боже, как больно, как мне плохо. Ярость одолела Андрея, и он со всей силы ударил кулаком в бетонный столб. Он был готов бить еще и еще, но боль сделала свое дело. Потерши кулак, он пошел по дороге и уже не слышал, как Алиса, вытирая слезы, прошептала – Прости меня, Андрей.
Written by Kastor WWW: http://liveofpc.ru
Домашняя студия: Дешевые решения Сегодня речь пойдет о недорогих устройствах (до 200 $), которыми можно организовать более или менее приличную студию дома. Предположим, что у вас уже имеется компьютер (конфигурация не имеет сильного значения), остальное будем подбирать. Почему я говорю о дешевых вещах? Да потому что среднестатистический «домашний музыкант» все равно не сможет себе больше ничего позволить. Первое – это, конечно же, сердце – звуковая карта (она же и интерфейс для записи). Дешевый и сердитый вариант Behringer F-CONTROL. Посудите сами – firewire, маленькая задержка, 24 бит/96 кГц, 2 входа, 2 выхода + софт для редактирования и записи в комплекте.
Далее – мониторы (пожалуй самый больной вопрос), понятно, что мониторы нормальные за маленькую цену не купишь, а вот качественные мультимедийные колонки можно. Я довольно много нафлудил на различных музыкальных форумах на этот счет и выяснил, что для наших целей лучше всего подойдут колонки Microlab серии Solo (на рисунке Solo2):
Как выяснилось данные колонки просто таки стандарт российских домашних студий. За цену в районе 100 $ все равно не удастся приобрести даже самые дешевые мониторы. Дополнительный мониторинг можно проводить с помощью наушников.
Теперь – запись. Начнем с микрофона. Если есть деньги, берем, конечно же, Shure sm58 если нет, то Behringer ULTRAVOICE XM8500, или лучше даже сразу целый комплект Peavey MSP1 (там вам сразу и подставка, которая понадобится, так же не забываем про ветрозащиту, её я тут рассматривать не буду).
Для записи нужен либо преамп, либо микшер с преампом. Мне больше нравится второй вариант, поэтому можно взять миниатюрый и недорогой Behringer EURORACK UB502, либо же интересный вариант может составлять Alesis Audiolink Cable.
Несколько слов о записи электрогитары. Об этом написано множество статей, но тем не менее. Самый лучший способ для дома – это писать через специализированные устройства для записи – и что бы там не говорили «знатоки», более и быстро качественного звука они не получат. Предлагаю Line 6 – TonePort, Alesis Audiolink Cable, Behriner Guitar Link (про последнего нашел даже видео).
В принципе самый недорогой вариант сочетающий в себе звуковую карту (не профессиональную конечно но, тем не менее), интерфейс для записи с микрофона (с качественным преампом) и гитары это Line 6 TonePort UX1.
C живыми инструментами более или менее разобрались – теперь завершающий штрих – мидиконтроллеры. Это совершенно опциональный пункт, но он очень и очень важный в плане удобства и удовольствия работы в домашней студии. Для записи ударных нам подойдет Korg nanoPad – дешевый и функциональный (с ним так же идут специальные версии Ez Drummer и Abletion Live).
Затем для удобного сведения и микширования незаменимая вещь – Korg nanoKontrol. Просто взгляните на нее и сразу поймете зачем . Конечно больше понт, но согласитесь, что крутить реальные фейдеры, намного приятнее и веселее чем тысячи раз тыкать мышкой по картинкам.
И наконец, небольшая, компактная миди-клавиатура CME - U-key.
На этом, пожалуй, закончим. Мы рассмотрели все ключевые моменты домашней студии (хотя в такой студии можно делать профессиональные вещи). Не обязательно покупать все сразу, просто выберите, что вам нужно в первую очередь. Я надеюсь, вам чем-то помог. Цены я специально не указывал - они сильно варьируются, но то, что эти приборы стоят не больше 200 $ это точно. Почему именно 200? По моим опросам это зарплата среднестатистического студента в нашей стране. Пишите в комментарии, какие вам удалось приобрести выгодные решения для своей домашней студии.
Written by Night_Storm WWW: http://nstorm.3dn.ru
Письмо Я схожу по ней с ума и не вижу никого кроме нее, возможно, она испытывает ко мне те же чувства, что и я к ней, но все говорит мне об обратном, словно передо мной искусно запечатанная книга, в которой полно тайн и секретов. Но как бы я не пытался ее распечатать, у меня все время был провал. Возможно, я не особо старался, не прикладывал должных сил, но оторваться от мысли, чтобы ее не распечатать, не мог. Я каждый раз спрашиваю себя, почему именно она явилась тем недостающим элементом в моей мозаике, без которой я не могу собрать картину полностью; мне не хватает всего лишь нескольких фрагментов. Без нее мне невыносимо печально, радостно до состояния эйфории, безумно скучно и тоскливо, весело и грустно — все чувства смешались в один безумный коктейль; она привнесла в мою жизнь небольшой хаос, который растормошил меня, искоренив в моем существовании слово «спокойствие». Эта история начинается с момента, когда я устроился на новую работу. Новые люди, новые впечатления и новое общество, которое практически состояло из лиц женского пола. Было забавно наблюдать за ними, как они реагировали на нового сотрудника, т.е. на меня; со своей стороны я практически никаких затруднений не испытывал, но это происходило до поры до времени. Время шло быстро и приносило с собой необыкновенные изменения, которые произошли со мной во время очередной поездки на конференцию, в обществе необыкновенных дам; я понял, что был ловко пойман на крючок одной особой, которая стала для меня центральной фигурой в моей жизни. Все началось с того, что мы ехали автобусе, вместе, собственно разговор как-то не клеился, да я и не пытался его поддерживать - как обычно мысли одолевали меня, и чтобы хоть как-то упорядочить их, мне необходимо было спокойствие. Перекидываясь фразами, я случайно посмотрел ей в глаза, и после этого во мне начало что-то происходить. Оружие, которым я был «сбит», подействовало безотказно, а может у меня тогда было намерение был «пойманным» или «сбитым», но это уже не столь важно. Вначале мне показалось забавным состояние, в котором я пребывал, потому что раньше, такого я никогда не ощущал; было нечто похожее, но его не сравнить с этим чувством, совершенно новым, совершенно уникальным и необычным. Это было сильно обжигающее чувство, но оно не приносило боли, наоборот оно начало укореняться во мне, словно вживаясь в меня и становясь моей, неразделимой, частью. Но в тоже время мое прошлое, которое отложило нехороший отпечаток на моей жизни, развернуло меня в совсем другую сторону — от нее. Произошло это лишь с единственной целью — не навредить ей. Меня, эта ситуация испугала и сделала похожим на простого школьникапервоклассника, который не понимает, что ему нужно и что делать с этим чувством. Необходимо было время, которое все прекрасно расставляет на свои места. После этого случая со мной происходило много «интересных» моментов, как-никак, я постоянно был окружен женским обществом, самые активные из которых «претендовали» на меня, но я уже был окутан чувствами одного единственного человека, которая подарила мне это необыкновенное чувство любви. Противясь себе, я начал отстраняться от нее, т.к. понимал, что могу лишь навредить ей, а этого делать мне больше всего не хотелось, и в итоге она поняв мой замысел и возможно, раскусив мои намерения, усилила скорость отдаления от меня, вместе с тем разрывая меня, и чем дольше это происходило, тем больней было мне и ей тоже. Но по какой-то неизвестной мне причине, вмешался интернет, обычная глобальная сеть, а если быть точнее, довольно известная социальная сеть. Можно сказать, просто случай или случайность, но в это я не верю.
В один из таких посиделок в этой сети, я рассылал приглашения в свое сообщество, оправлял их друзьям, друзьям друзей, в общем тем, кому имелась возможность отослать сообщение такого характера. Заодно просматривая профили людей, я увидел лицо той, что меня околдовала. Далее все произошло так, словно должно было так и быть — завертелось, закружилось и началась переписка. Удивительным было то, что встречаясь в «реале» перед нами вырастала невидимая стена, а в социальной сети все происходило в точности да наоборот. Казалось, мы друг друга боялись или возможно боялся только лишь я и поэтому ощущал ту неприступную стену. Из переписки: ... a. Вы очень удивительный экспонат, разве Вы не видите этого сами?
a. Что Вы. Я самый что ни наесть, обычный человек, вряд ли что-то может меня отличать от других.
Ну как же, посмотрите сами. Вы везде преуспели. Есть область, с которой Вы не знакомы?
Сложно ответить, но если брать мою жизнь в целом, то можно уверенно сказать, что я являюсь искателем, постоянно ищу что-то новое, не забывая прошлых интересов и взглядов, иногда лишь «касаясь» их. Вся, наша недолгая переписка, в принципе, сводилась к «разговору» ни о чем. Но для меня она имела очень важное значение, смысл которого, как бы это ни странно звучало, для меня понятен лишь наполовину. Хотя он лежит на поверхности, всего лишь нужно к нему протянуть руку. С каждым написанным ей сообщением, я понимал, что этот человек также как и я запутался в невидимых дебрях своего разума, но в отличии от меня, она умело расправлялась со своими затруднениями. Я уверен на 82%, что это не дается ей легко, но простых путей не бывает, как не бывает и сложных. Мы сами себе создаем сложности, строим невидимые преграды, ставим перед собой препятствия; именно это я делал на всем протяжении времени, после того как окончательно понял, что люблю ее — желание заговорить с ней превышало все остальное и затмевало мой ум, но когда предоставлялся удобный момент, я становился другим человеком, что-то во мне противилось началу сближения: мысли путались как только могли, виртуозно закручиваясь в невообразимые спирали, а потом вдруг исчезали и пустота заполняла собой все. Потом возникали новые и также начинали судорожно истязать мой мозг. В итоге все сводилось к тому, что между нами была «непробиваемая стена», которая с каждым днем становилась все толще и толще, но и некая привязанность к этой удивительной девушке, росла, с такой же силой. И это даже не проблема, а скорее так, пустяк, который легко решаем, но все намного ужасней, чем можно представить на первый момент. Из переписки:
... Я грозу люблю, на молнии смотреть. А-а-а-а-а-а!!!! Мне без разницы, когда эти явления природы "являются". Осень, я люблю отдельно...
Осень и дожди... дожди и осень... самый любимый «микс».... осень люблю за грусть, дождь за печаль... а вот вместе это... чудо...
Да, убийственно прекрасно и печально. А когда лицо дождю подставляешь... ни с чем не сравнить!!!!!
Непредсказуемость погоды добавляет к этому еще больший эффект, приятно наблюдать как меняется ее «настроение». Именно поэтому осенний дождь наиболее восхитителен и наиболее ярок по красоте своего проявления. Наверное, стоит немного рассказать о себе, чтобы полностью раскрыть ситуацию, которая происходит со мной. Отбросив описание своей внешности, а также прочие ненужные детали, которые не будут иметь особой роли и значения, начну с того, что я — эгоист, и притом с большой буквы. Никогда я не был обделен женским вниманием и женским обществом, ко мне тянулись, и я тянулся в ответ, но когда дело доходило до серьезных отношений, то с моей стороны всегда наблюдалась некая посредственность, которая скорее напоминала дружбу, нежели любовь и отношения двух любящих друг друга людей. Это походило на некую незамысловатую игру, нежели действительно на что-то важное, и дело в том, что я это понимал, но не мог ничего изменить. Я также понимал, что своим «бездействием» приношу только боль, можно сказать, что я без злого умысла ломал чужие мечты, надежды и самое главное любовь. Но я не хотел играть на чужих чувствах, а сказать, что я не люблю, увы, не мог, т.к. это опять же это вызвало бы боль, которую я теперь хорошо понимаю. В итоге получалась «тягомотина» в отношениях — вроде она тебя любит и ты ей симпатичен, но в ответ можешь дать только пустоту и печаль. В конечном счете выходило, что любые отношения противоположного пола со мной, находились только на расстоянии дружбы и не более. Это перерастало в привычку. Из переписки: ... На улице восхитительно наверное - темно, прохладно... Я люблю ночью одна погулять по парку.
Я раньше по этому парку утром бегал... ощущение, что душа отдыхает.
Для меня это просто очень спокойное место, мне там уютно и хорошо - все притягивает.
Этот парк действительно самый удивительный, можно сказать, что необычный. Некая таинственность присутствует в нем, тем он и интересней.
Я ищу причины, почему я зацепился за нее, почему именно она является тем «центром», что все мои мысли, действия, фантазии, размышления сводятся к ней. Неотвратимо зацепился за ее образ, который начинает заменять мне все предметы, объекты и вещи, окружающие меня. Никакого расстройства восприятия, но все, что бы я не делал, о чем бы не думал, все разрушал ее образ и заменял собой, а потом также неожиданно растворялся, как и появлялся.. Какая магическая сила сотворила со мной все это!? Возможно, придет время и я получу все ответы на интересующие меня вопросы. *** В эту ночь я не находил себе места, во мне что-то металось и рвалось наружу, оно стремилось не просто незаметно ускользнуть из меня, а намеревалось разорвать на куски, бесцеремонно разрушив мою целостность. Возможно, это не то состояние любви, которое бывает у большинства людей, совсем необычное состояние или можно, с уверенностью, сказать жуткое, но в тоже время притягательное и неотвратимое. На меня, с большим давлением, накатила волна необыкновенного чувства, краски, которого я не в силах описать, но то спокойствие и безмятежность, которое она принесла с собой, поглотило меня. Не сумев сдержать в себе переполнившие меня чувства, я написал небольшое письмо-сообщение, которое было отправлено мной лишь на следующий день вечером. Текст сообщения: Письмо. Видимо, я дошел до такой кондиции, что не могу больше сдерживать в себе тот «вихрь», что рвется наружу. Я переполнен до краев, и мне кажется, что я разорвусь по швам, поэтому я вижу лишь единственный выход из сложившейся ситуации - рассказать все, или попытаться сделать попытку расставить точки на "i". Конечно, я выбрал неудачное время и неудачный способ, для признания Вам в любви, но иного выхода я не нахожу. Мне очень бы хотелось, глядя в ваши глаза рассказать о моих чувствах к Вам, но мне кажется, что этим я лишь усугублю и испорчу и без того запутанную (на мой взгляд) ситуацию. Вы перевернули мою жизнь, медленно, но планомерно и я благодарен Вам, за то, что Вы есть, за то, что судьба свела меня с Вами. Но я лишь способен нести боль и печаль, поэтому я старался отдалиться от Вас, но в итоге я окончательно заболел Вами. Это похоже на то, словно созерцаешь самую яркую звездочку на ночном небе, но, увы, до которой невозможно дотронуться. Итак, попробую все прояснить по порядку; тогда в автобусе, когда я случайно посмел взглянуть в Ваши глаза, я резко ощутил, как часть Вас проникла в меня и потихоньку, но настойчиво начала захватывать мое внутреннее пространство, вытесняя все лишнее. Я тогда не особо осознал случившееся, но ясно понял одно – я глупая рыба, попавшаяся на крючок. В этот период жизни я находился в таком состоянии, что мир не имел для меня никакого интереса. Существовало только несколько ступенек, которые удерживали меня в этом мире, но и они похоже начали крошиться.
Есть ситуации, которые меняют жизнь – и эта ситуация именно та – встреча с Вами. Находясь рядом, я готов был наплевать на свое чувство собственной важности, на гордость и прочие ненужные опасения, и сказать Вам, что думаю о Вас, но мысли путались, спотыкались, исчезали или метались в голове слишком быстро, что я не мог уцепиться хотя бы за одну из них. В итоге мне приходилось любоваться Вами и не более того. Но то состояние, породившее Вами во мне, начало сводить меня с ума - совсем новые мне чувства начали охватывать и сжимать меня в свои стальные тиски. Сладостная романтичность овладела мной, и это все благодаря Вам. Думая о Вас, хотелось плакать, но не от боли, а от переполнившей меня любви. Должно быть, у Вас куча поклонников, и я завидую каждому из них, но единственное, что я могу это удерживать Ваш образ, лишь в своих фантазиях. Вы писали, что я уникален, но уникален я лишь в том, что вечно все порчу… Я даже нормально признаться не мог. Я четко запомнил то состояние, когда писал это письмо, но ничего с собой поделать не мог. Мысли и чувства вырывались, собираясь в некую картинку, которую я намеревался отправить ей. Немного поколебавшись в правильности своих действий, я помню, как с трудом и большой долей сомнения нажал на кнопку «Отправить». Индикатор начал судорожно мигать, обозначая отправку моего письма-сообщения. В этот момент мир словно немного замер, показалось, что мои внутренние часы перестали работать, но эта остановка не была резкой, скорее наоборот — плавно и размерено мир вокруг меня останавливался и на мгновение замер. Через некоторый промежуток времени, окружающее меня пространство снова возобновило свой привычный ход, и я четко ощутил как часть меня, которая как уголек сидела у мена внутри и прожигала все мое нутро, тем самым вызывая во мне удивительные и странные чувства, ушла вместе с этим письмом. Но в тот же миг я начал заполняться новым теплом, который моментально завладел мной, но это уже, не было похоже на мое первоначальное чувство. *** И так изо дня в день, жду ответа, содержание которого я представляю во множествах вариаций - от самых печальных и невыносимых, до безумно восхитительных и сводящих с ума. Видимо это письмо, того вида на которое не стоит ждать ответа вообще, или же оно потерялось в паутине транспортного потока — «легло» на одном из самых отдаленных серверов и ждет своего запроса, чтобы продолжить свой путь до конечного адресата, а может этому письму похоже не суждено дойти до места назначения, оно так и будет метаться, неся с собой «горящий уголек» моих чувств...
Written by Jimmy Jonezz Email: jimmyjonezz@bk.ru WWW: www.liveofpc.ru
FAQ
Вопрос: У меня есть исходник (написанный на C#) – source.cs. Как его можно скомпилировать? Пробовал тупо открыть в Visual Studio, но жестоко обломался – пимпа для компиляции недоступна. Ответ: Все верно, если открыть просто файл с исходником, то выполнить компилирование не удастся. Решить эту проблему можно разными способами. Самый простой – создать пустой проект в Visual Studio, добавить в него файл с имеющимся исходником и уже тогда выполнять компилирование. Рассматривать этот способ не станем, а лучше поглядим на альтернативный вариант – компилирование при помощи командной строки. Запусти командный интерпретатор Visual Studio 2008 Command Promt и выполни команду: csc /t:exe /out:C:\TestApplication\MyTestApplication.exe C:\TestApplication\MyTestSource.cs
Если сейчас команда тебе кажется непонятной, то не переживай. Сейчас мы подробно ее разберем. Итак, давай для начала взглянем на синтаксис команды: csc <параметры> Из параметров тебе доступны: /doc – комментарии из исходника будут записаны в файл в формате XML /out – имя создаваемого двоичного файла. Если параметр не указан, то в качестве имени файла будет использовать имя файла с исходным текстом. /target – тип создаваемого файла. Доступны следующие варианты: - target:exe – консольное приложение. - target:library – библиотека dll плюс манифест. - target:module – двоичный модуль в виде dll без манифеста. - target:winexe – приложение с GUI интерфейс. Теперь, когда все параметры озвучены, содержание выше приведенной команды должно быть понятно. Ах да, если тебя смутил ключ /t, то знай, это лишь сокращение ключа target. Ты можешь использовать как длинный вариант записи (т.е. target), так и сокращенный - /t. Вопрос: В Delphi, для получения различной информации о системе (например, текущая папка, имя пользователя, системная папка и т.д.) я использовал различные WinAPI функции. Теперь я перешел на C#. Как здесь получить те же самые данные? Не вызывать же WinAPI! Ответ: Ты прав, если есть возможность воспользоваться средствами .NET Framework, то нужно ими и пользоваться. Твоя задача не исключение. Очень много полезной информации о системе, в которой работает твое приложение можно получить с помощью класса System.Environment. Например: Environment.OSVersion – возвратит версию операционной системы. Environment.ProcessorCount – количество процессоров (ядер) Environment.MachineName – имя компьютера Environment.UserName – имя текущего пользователя Environment.SystemDirectory – системная директория Environment.Version – версия .NET Framework Environment.GetLogicalDrives() – список дисков
….. и т.д. Не буду расписывать все возможности этого класса. Ты без проблем сможешь познакомиться с ними самостоятельно. Чтобы у тебя не возникло трудностей, взгляни на простейший пример, демонстрирующий работу с классом: using System; class MySimpleClass { public static void Main(string[] ars) { Console.WriteLine("***OS Version: {0}", Environment.OSVersion); Console.WriteLine("***Processor count: {0}", Environment.ProcessorCount); Console.WriteLine("***Machine name: {0}", Environment.MachineName); Console.WriteLine("***User name: {0}", Environment.UserName); Console.WriteLine("***System directory: {0}", Environment.SystemDirectory); Console.WriteLine("***.NET version: {0}", Environment.Version); string[] logicalDrives = Environment.GetLogicalDrives(); for (int i = 0; i < logicalDrives.Length; i++) Console.WriteLine(">>>> {0}", logicalDrives[i]); Console.ReadKey(); } }
Вопрос: Пишу программу для управления кэшем различных браузеров. Подскажите если не трудно, как проще всего почистить кэш IE? Ответ: Эта задача решается достаточно просто. Алгоритм действия будет примерно такой: 1. Определяем папку, в которой браузер хранит кэш. 2. Перебираем все файлы, которые в ней есть 3. Удаляем очередной файл. Для пущей наглядности приведу демонстрационный код для C#. Если ты кодишь на Delphi, то я думаю, сможешь его перенести. Итак, для определения пути к папке с кэшем можно с помощью класса System.Environment. У данного класса есть метод GetFolderPath(Environment.SpecialFolder folder). Он позволяет получить путь к специальной папке, переданной в первом параметре. В нашем случае это будет: Environment.GetFolderPath(Environment.SpecialFolder.InternetCache);
Получив путь, можно приступать к перебору всех имеющихся по нему файлов и папок. Для наглядности показываю на примере: public static void clearCacheFolder(DirectoryInfo dirInfo) { foreach (FileInfo currentFile in dirInfo.GetFiles()) { currentFile.Delete(); } foreach (DirectoryInfo currentDir in dirInfo.GetDirectories())
{ currentDir.Delete(true); } }
В теле функции clearCacheFolder используются два цикла. Первый перебирает все файлы, а второй директории. Если попадает файл, то я особо не задумываюсь и просто его удаляю с помощью метода Delete(). При обнаружении папки, алгоритм немного меняется. Выполняется перебор папок и для каждой найденной вызывается метод Delete() с параметром true. Переча в качестве значения этому методу Истина, означает, что следует удалить папку, со всеми вложенными подпапками и файлами. Вот собственно и все решение. Соединяй код в единое целое и используй в своих нуждах. Вопрос: Только недавно занялся изучением C#. Начал писать небольшую программку и столкнулся с проблемой. Как выключить компьютер средствами C#? В Delphi я использовал ExitWindowsEx(), а вот что юзать в C# - не знаю. Ответ: Как ты понимаешь, для решения одной задачи существует как минимум два решение. Решить эту задачу можно: 1. С помощью WMI. 2. При помощи старой доброй функции ExitWindowsEx() 3. Вызовом консольной программы «shutdown.exe», входящий во все версии Windows. Давай рассмотрим демонстрационный код для каждого из этих способов. Начнем, с использованием технологии WMI. using System.Management; namespace ConsoleApplication1 { class Program { public static void Main(string[] args) { ManagementBaseObject mboShutdown = null; ManagementClass mcMyClass = new ManagementClass("Win32_OperatingSystem"); mcMyClass.Get(); //Получаем привелегии на выключение mcMyClass.Scope.Options.EnablePrivileges = true; ManagementBaseObject mboShutdownParam = mcMyClass.GetMethodParameters("Win32Shutdown"); //Флаг 0 говорит о необходимости именно выключения //Чтобы перезагрузить систему используй значение 1 mboShutdownParam["Flags"] = "1"; mboShutdownParam["Reserved"] = "0"; foreach (ManagementObject moObject in mcMyClass.GetInstances()) { mboShutdown = moObject.InvokeMethod("Win32Shutdown", mboShutdownParam, null); }
} } }
Для успешной компиляции этого кода, не забудь добавить к своему проекту ссылку на System.Managment. Если ты не понял этот код, то почитай доки по работе с WMI и все встанет на свои места. Теперь поглядим на использование любимой всеми делфистами функци ExitWindowsEx(). using System.Management; using System.Diagnostics; using System.Runtime.InteropServices; using System;
namespace ConsoleApplication1 { class Program { public static void Main(string[] args) { DoExitWin(EWX_SHUTDOWN); }
[StructLayout(LayoutKind.Sequential, Pack=1)] internal struct TokPriv1Luid { public int Count; public long Luid; public int Attr; } [DllImport("kernel32.dll", ExactSpelling=true) ] internal static extern IntPtr GetCurrentProcess(); [DllImport("advapi32.dll", ExactSpelling=true, SetLastError=true) ] internal static extern bool OpenProcessToken( IntPtr h, int acc, ref IntPtr phtok ); [DllImport("advapi32.dll", SetLastError=true) ] internal static extern bool LookupPrivilegeValue( string host, string name, ref long pluid ); [DllImport("advapi32.dll", ExactSpelling=true, SetLastError=true) ] internal static extern bool AdjustTokenPrivileges( IntPtr htok, bool disall, ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen ); [DllImport("user32.dll", ExactSpelling=true, SetLastError=true) ]
internal static extern bool ExitWindowsEx( int flg, int rea ); internal const int SE_PRIVILEGE_ENABLED = 0x00000002; internal const int TOKEN_QUERY = 0x00000008; internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020; internal const string SE_SHUTDOWN_NAME = "SeShutdownPrivilege"; internal const int EWX_LOGOFF = 0x00000000; internal const int EWX_SHUTDOWN = 0x00000001; internal const int EWX_REBOOT = 0x00000002; internal const int EWX_FORCE = 0x00000004; internal const int EWX_POWEROFF = 0x00000008; internal const int EWX_FORCEIFHUNG = 0x00000010; private static void DoExitWin( int flg ) { bool ok; TokPriv1Luid tp; IntPtr hproc = GetCurrentProcess(); IntPtr htok = IntPtr.Zero; ok = OpenProcessToken( hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok ); tp.Count = 1; tp.Luid = 0; tp.Attr = SE_PRIVILEGE_ENABLED; ok = LookupPrivilegeValue( null, SE_SHUTDOWN_NAME, ref tp.Luid ); ok = AdjustTokenPrivileges( htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero ); ok = ExitWindowsEx( flg, 0 ); }
} } Этот код получился достаточно большим, но если ты уже хоть раз пользовался функцией ExitWindowsEx(), то проблем с пониманием возникнуть не должно. На крайний случай, задай интересующий тебя вопрос (в плане понимания кода) мне на мыло или на наш форум. Ну и наконец третий способ. Он самый простой и короткий. В нем просто запускается консольная программа shutdown.exe с соответствующими параметрами (о них ты можешь прочитать запустив программу с параметром –h): using System.Diagnostics; Process.Start("shutdown.exe", "-s -t 00");
Вопрос: Есть задача такого плана, что в приложении Windows Forms есть два поля, в первое вводится имя пользователя, во второе пароль. Как проверить существование такого пользователя с этим паролем в домене? Ответ: Есть несколько способов. Код одного из самых простых в реализации ниже:
using System; using System.DirectoryServices; class Demo { public static void Main() { string sADPath = "LDAP://server"; string username = "user_name"; string password = "pass"; DirectoryEntry de = new DirectoryEntry(sADPath, username, password); try { if (de.Name != "") { Console.WriteLine("User Exists"); Console.ReadKey(); } } catch { Console.WriteLine("Invalid User or Pass"); Console.ReadKey(); } } } Присваивай переменным sADPath, username, password корректные значения и проверяй работоспособность. Вопрос: В Delphi есть объект Clipboard, позволяющий работать с буфером обмена. А в C# есть что-нибудь подобное? Ответ: Конечно же есть. Разве разработчики языка будущего могли обойти стороной такую полезную вещь? Также как и в Delphi, в C# существует объект Clipboard. Работать с этим объектом также просто, как и в Delphi. Например, для того чтобы поместить текст в буфер обмена, нужно написать следующий код: Clipboard.SetText("Text for clipboard");
Вытащить текст из буфера, ничуть не сложнее: string textFromClipBoard = Clipboard.GetText(); Если ты хочешь поместить в буфер обмена картинку из файла, то можешь сделать так: image imageForClipboard = Image.FromFile(“image path”) Clipboard.SetImage(imageForClipboard); Для вставки картинки, используй метод GetImage():
image MyImage = Clipboard.GetImage();
Written by: Игорь Антонов aka Spider_NET E-mail: antonov.igor.khv@gmail.com WWW: http://vr-online.ru