Показаны сообщения с ярлыком IT-Безопасность: Другое. Показать все сообщения
Показаны сообщения с ярлыком IT-Безопасность: Другое. Показать все сообщения

воскресенье, февраля 01, 2009

Invite mirc script by elimS

Попросили продолжить тему, в которой я говорил что выложу позже спам и инвайт скрипты.

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

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

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

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

Приступим к установке скрипта:

копируем код который ниже и заходим в mirc-редактор скриптов (сочетание клавиш alt+r).

;start----- Invite mirc script by elimS ----------------
menu nicklist {
открыть инвайт скрипт: dialog -m invite_options invite_options
указать файл ник-листа исключений: %invite_nick_list_iskluchenija = $file="Выберите файл со списком ников:" .txt
добавить в ник-лист исключений: $iif( %invite_nick_list_iskluchenija == $null, echo $me 4укажите ник-лист исключений! , write %invite_nick_list_iskluchenija $1 )
обнулить исключения: write -c %invite_nick_list_iskluchenija
проверить ник на исключение: %temp = $read(%invite_nick_list_iskluchenija, w, $1 ) | $iif( $readn == 0, echo $me 3 $1 ник не в исключениях! , echo $me 4 $1 ник в исключениях!)
}
alias invite_al {
if ( $me ison %invite_kanal) {
inc %invite_nick_list_i 1
%invite_nick = $read(%invite_nick_list,%invite_nick_list_i)
%invite_prefix = $mid(%invite_nick,1,1)
if ( ( ( %invite_prefix != @ ) || (%invite_op == on) ) && ( ( %invite_prefix != % ) || (%invite_hop == on) ) && ( ( %invite_prefix != + ) || (%invite_vop == on) ) ) {
if ( ( %invite_prefix = @ ) || ( %invite_prefix = % ) || ( %invite_prefix = + ) ) %invite_nick = $mid(%invite_nick,2,$len(%invite_nick))
if ( %invite_nick !ison %invite_kanal ) {
%invite_list_i2 = 0
%invate_dublikate = false
while ( invite_list_i2 < $lines($mircdir $+ invite_list.txt) ) { inc invite_list_i2 1 if ( %invite_nick == $read($mircdir $+ invite_list.txt,invite_list_i2) ) %invate_dublikate = true } %temp = $read(%invite_nick_list_iskluchenija, w, %invite_nick ) if ( %invate_dublikate != true ) && ($readn == 0) { write $mircdir $+ invite_list.txt %invite_nick invite %invite_nick %invite_kanal } } } if ( %invite_nick_list_i >= $lines( %invite_nick_list ) ) {
%invite_status = off
notice $me инвайт закончен, итого было позвано $lines($mircdir $+ invite_list.txt) ) людей.
timer_invite off
}
}
else cs invite %invite_kanal
}
menu menubar {
invite by elimS: dialog -m invite_options invite_options
}
dialog invite_options {
title "Скрипт для мас-инвайта. Ver. 2.0"
size -1 -1 140 195
option dbu
tab "Основные",1, 1 1 135 190
tab "Допольнительные",100
button "указать канал",2, 10 20 50 10 , tab 1
button "частота инвайта",3, 10 35 50 10 , tab 1
edit "",4, 60 20 70 10, read autohs , tab 1
edit "",5, 60 35 70 10, read autohs , tab 1
button "Старт!",6, 10 65 120 20 , tab 1
button "Стоп!",7, 10 90 120 20 , tab 1
box "на кого будет действовать скрипт",8, 10 110 120 30 , tab 1
check "+o: опы", 9, 18 118 40 10 , tab 1
check "+h: халфопы", 10, 60 118 50 10 , tab 1
check "+v: войсопы", 11, 18 128 40 10 , tab 1
check "обычные юзеры", 12, 60 128 50 10 , tab 1
check "реконект при Message target too fast", 13, 18 140 110 10 , tab 1
button "величина канала",14, 10 50 50 10 , tab 1
edit "",15, 60 50 70 10, read autohs , tab 1
check "удерживать на канале", 16, 10 20 90 10 , tab 100
button "начать инвайт из указаного ник-листа",17, 10 40 110 10 , tab 100
edit "", 18, 10 55 110 10 ,read autohs, tab 100
box "ник-лист",19, 5 30 120 45 , tab 100
box "исключения",24, 5 80 120 45 , tab 100
edit "", 25, 10 105 110 10 ,read autohs, tab 100
button "выбрать ник-лист исключений",26, 10 90 110 10 , tab 100
text "скрипт написал elimS",35 20, 5 153 90 10
link "http://elims2.blogspot.com", 36, 5 168 90 10
}

on 1:dialog:invite_options:init:0: {
did -a invite_options 4 %invite_kanal
did -a invite_options 5 %invite_time
did -a invite_options 15 %invite_users
did -a invite_options 18 %invite_nick_list
did -a invite_options 25 %invite_nick_list_iskluchenija
if (%invite_op == on) did -c invite_options 9
if (%invite_hop == on) did -c invite_options 10
if (%invite_vop == on) did -c invite_options 11
if (%invite_user == on) did -c invite_options 12
if (%invite_reconnect == on) did -c invite_options 13
if (%invite_yderzhivat == on) did -c invite_options 16


}
on 1:dialog:invite_options:sclick,edit:*: {
if ($did == 2) {
set %invite_kanal $$input(введите канал (вместе с префиксом #) на который хотите инвайтить: , e )
did -r invite_options 4
did -a invite_options 4 %invite_kanal
}
if ($did == 3) {
set %invite_time $$input(введите частоту посылки invite сообщения в милисекундах (1 секунда = 1000 милисекунд), e)
did -r invite_options 5
did -a invite_options 5 %invite_time
}
if ($did == 14) {
set %invite_users $$input(введите на каналах с каким количеством людей производить сбор ников (введите количество людей):, e)
did -r invite_options 15
did -a invite_options 15 %invite_users
}
if ($did == 6) {
%invite_status = on
%invite_nick_list = $mircdir $+ chanel_nick_list.txt
%invite_flag = sbor_kanalov
remove $mircdir $+ chanel_list.txt
notice $me сбор каналов...
list
}
if ($did == 7) {
timer_invite off
%invite_status = off
}
if ($did == 17) {
%invite_nick_list = $file="Выберите файл со списком ников:" .txt
did -r invite_options 18
did -a invite_options 18 %invite_nick_list
timer_invite_chan_list off
%invite_flag = off
%invite_lines_nick_list = $lines( %invite_nick_list )
%invite_nick_list_i = 0
%invite_status = on
write -c $mircdir $+ invite_list.txt начало
notice $me инвайт людей...
timer_invite -m 0 %invite_time invite_al
}
if ($did == 26) {
%invite_nick_list_iskluchenija = $file="Выберите файл со списком ников:" .txt
did -r invite_options 25
did -a invite_options 25 %invite_nick_list_iskluchenija
}
if ($did == 9) $iif(%invite_op == on,%invite_op = off,%invite_op = on)
if ($did == 10) $iif(%invite_hop == on,%invite_hop = off,%invite_hop = on)
if ($did == 11) $iif(%invite_vop == on,%invite_vop = off,%invite_vop = on)
if ($did == 12) $iif(%invite_user == on,%invite_user = off,%invite_user = on)
if ($did == 13) $iif(%invite_reconnect == on,%invite_reconnect = off,%invite_reconnect = on)
if ($did == 16) $iif(%invite_yderzhivat == on,%invite_yderzhivat = off,%invite_yderzhivat = on)
if ($did == 36) run http://elims2.blogspot.com
}
;start--- сбор сбор каналов -----------
raw 322:*: {
if ( %invite_status == on ) && ( %invite_flag == sbor_kanalov ) {
if ( $len($2) > 1 ) && ( $3 >= %invite_users ) {
write chanel_list.txt $2 $3
}
}
}
;end--- сбор каналов -----------
;start--- реконект при ошыбке -----------
raw 439:*: {
if ( %invite_status == on ) {
if ( %invite_reconnect == on ) && ( Message target change too fast. isin $1- ) server
}
}
;end---- реконект при ошибке -----------
;start--- join каналов -----------
alias al_chan_list {
if ( %invite_status == on ) && ( %invite_flag == join_kanalov ) {
if ( %invite_list_i_chan > $lines($mircdir $+ chanel_list.txt) ) {
timer_invite_chan_list off
%invite_flag = off
%invite_lines_nick_list = $lines( %invite_nick_list )
%invite_nick_list_i = 0
write -c $mircdir $+ invite_list.txt начало
notice $me инвайт людей...
timer_invite -m 0 %invite_time invite_al
}
inc %invite_list_i_chan 1
%invite_chan_list = $read($mircdir $+ chanel_list.txt,%invite_list_i_chan)
join $gettok(%invite_chan_list,1,32)
if ( $gettok(%invite_chan_list,1,32) != %invite_kanal ) part $gettok(%invite_chan_list,1,32)
}
}
;end--- join каналов -----------
start--- конец листа -----------
raw 323:*: {
if ( %invite_status == on ) && ( %invite_flag == sbor_kanalov ) {
remove $mircdir $+ chanel_nick_list.txt
%invite_list_i_chan = 0
%invite_flag = join_kanalov
notice $me сбор ников по каналам...
timer_chan_list 0 2 al_chan_list
}
}
;end--- конец листа -----------
start--- сбор ников -----------
raw 353:*: {
if ( %invite_status == on ) && ( %invite_flag == join_kanalov ) {
%invite_count_nicks_i = 3
while ( %invite_count_nicks_i < $0 ) { inc %invite_count_nicks_i 1 if ( $ [ $+ [ %invite_count_nicks_i ] ] != $me ) { write chanel_nick_list.txt $ [ $+ [ %invite_count_nicks_i ] ] } } } } ;end---сбор ников ----------- on *:join:%invite_kanal: { if ( $nick == $me ) && ( %invite_reconnect == on ) && ( %invite_status == on ) timer_invite -m 0 %invite_time invite_al } on *:part:%invite_kanal: if ( %invite_yderzhivat == on ) && invite $nick $chan
;end----- Invite mirc script by elimS ----------------

Если окошко у Вас не пустое и в нем уже есть какой-то скрипт, тогда создавайте новый скрипт как показано ниже на рисунке.

Вставляйте код и жмите "ок".




Теперь жмем на меню со скриптами.

У меня оно называется "Смайл Скрипт", у Вас оно будет называться по другому, в зависимости от клиента, но находится это меню всегда в одном и том же месте - между "tools" и "windows".

Выбираем "invite script by elimS"


Видим следуйщее:


И если перейти на вкладку "дополнительные":


Что какая кнопочка значит:

Указать канал - указываем канал на который надо приглашать

Частота инвайта - указывайте с какой частой приглашать людей на канал.
Цыфра в милисекундах, где 1 секунда = 1000 милисекунд. Если вы укажите например 500 - это значит два человека в секунду. если 3000 это значит один человек за три секунды. На каждом сервере/сети есть свое ограничение на количество приглашений за отрезок времени. Если вы слишком часто приглашаете, то вам сервер будет отвечать "mesage target toofast". Есть два выхода: сделать быстро реконект и дальше продолжать приглашения с той же скоростью или же если реконект делаеться слишком долго, то просто указать цыфру больше, чтоб не так часто приглашать. Советую начинать с 1 человека за 2-3 секунды и там уже ориентируйтесь.

Величина канала - канал с минимальным количеством людей с которого собирать ники.
Так как в больших сетях очень много каналов где сидят по 1-10 человек, нету смысла с них собирать ники, лучше собрать с самых крупных.

Стоп - остановка скрипта.

На кого будет действовать скрипт - ставим галочки напротив тех, кого стоит приглашать. Советую опов и халфопов не приглашать - тогда на вас не так быстро обратят внимание.

Реконект при mesage target toofast - отключаеться и подключаеться к серверу, если сервер говорит вам что вы слишком часто приглашаете.

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

Начать инвайт из указаного ник-листа - может у вас есть выборка людей которых надо быстро проинвайтить.

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

Так же добавлять ники в исключения вы можете нажав правой кнопкой мышки на нике:


Пользуйтесь на здоровье, и пишите сюда все баги и пожелания.



пятница, апреля 04, 2008

40 советов по оптимизации PHP-кода

Перевод заметки "40 Tips for optimizing your php code". Автор - Reinhold Weber.

  1. Если метод может быть статическим, объявляйте его статическим.

  2. echo быстрее, чем print.

  3. Передавайте в echo несколько параметров, вместо того, чтобы использовать конкатенацию строк.

  4. Устанавливайте максимальное количество проходов ваших циклов for до цикла, а не во время его выполнения.

  5. Удаляйте свои переменные для освобождения памяти, тем более, если это большие массивы.

  6. Остерегайтесь магических методов, таких как __set, __get, __autoload.

  7. require_once дорого обходится.

  8. Указывайте полные пути в конструкциях include/require, меньше времени будет тратится на поиск файла.

  9. Если вам необходимо определить время, когда скрипт был запущен, используйте $_SERVER[’REQUEST_TIME’] вместо time().

  10. Старайтесь использовать strncasecmp, strpbrk и stripos вместо регулярных выражений.

  11. str_replace быстрее, чем preg_replace, но strtr быстрее, чем str_replace.

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

  13. Лучше выбирать утверждения при помощи конструкции else if, чем использовать несколько конструкций if.

  14. Подавление ошибок при использовании @ работает очень медленно.

  15. Используйте модуль Apache mod_deflate.

  16. Закрывайте свои соединения с БД, когда закончите работать с ними.

  17. $row['id'] в семь раз быстрее, чем $row[id].

  18. Сообщения об ошибках дорого стоят

  19. Не используйте функции внутри условия цикла for, например как здесь: for ($x=0; $x < count($array); $x). В данном случае функция count() будет вызываться с каждым проходом цикла.

  20. Инкремент локальной переменной в методе - самый быстрый. Почти также работает инкремент локальной переменной в функции.


  21. Инкремент глобальной переменной в два раза медленее, чем локальной.


  22. Инкремент свойства объекта (т.е. $this->prop++) в три раза медленнее, чем локальной переменной.

  23. Инкремент неопределённой переменной в 9-10 раз медленнее, чем заранее инициализированной.

  24. Объявление глобальной переменной, без использования её в функции, также замедляет работу (примерно на ту же величину, что и инкремент локальной переменной). Вероятно, PHP осуществляет проверку на существование переменной.

  25. Скорость вызов метода, судя по всему, не зависит от количества методов, определённых в классе. Я добавил 10 методов в тестовый класс (до и после тестового метода), без изменения производительности.

  26. Методы в производных классах работают быстрее, чем они же, определённые в базовом классе.

  27. Вызов функции с одним параметром и пустым телом функции в среднем равняется 7-8 инкрементам локальной переменной ($localvar++). Вызов похожего метода, разумеется, около 15 инкрементов.

  28. Ваши строки, определённые при помощи ', а не ", будут интерпретироваться чуть быстрее, т.к. PHP ищет переменные внутри "..", но не '...'. Конечно, вы можете использовать это только тогда, когда в вашей строке нет переменных.


  29. Строки, разделённые запятыми, выводятся быстрее, чем строки, разделённые точкой. Примечание: это работает только с функцией echo, которая может принимать несколько строк в качестве аргументов.

  30. PHP-скрипты будут обрабатываться, как минимум, в 2-10 раз медленнее, чем статические HTML-страницы. Попробуйте использовать больше статических HTML-страниц и меньше скриптов.

  31. Ваши PHP-скрипты перекомпилируются каждый раз, если скрипты не кэшируются. Кэширование скриптов обычно увеличивает производительность на 25-100% за счёт удаления времени на компиляцию.

  32. Кэшируйте, насколько это возможно. Используйте memcached — это высокопроизводительная система кэширования объектов в памяти, которая повышает скорость динамических веб-приложений за счёт облегчения загрузки БД. Кэшированный микрокод полезен тем, что позволяет вашему скрипту не компилироваться снова для каждого запроса.

  33. При работе со строками, когда вам понадобится убедиться в том, что строка определённой длины, вы, разумеется, захотите использовать функцию strlen(). Эта функция работает очень быстро, ведь она не выполняет каких-либо вычислений, а лишь возвращает уже известную длину строки, доступную в zval-структуре (внутренняя структура C, используемая при работе с переменными в PHP). Однако потому, что strlen() — функция, она будет работать медленно за счёт вызова некоторых операций, таких как приведение строки в нижний регистр и поиска в хэш-таблице, только после которых будут выполнены основные действия функции. В некоторых случаях вы сможете ускорить свой код за счёт использования хитрости с isset().

    Было: if (strlen($foo) < 5) { echo "Foo is too short"; }

    Стало: if (!isset($foo{5})) { echo "Foo is too short"; }

    Вызов isset() быстрее, чем strlen() потому, что, в отличие от strlen(), isset() - не функция, а языковая конструкция. За счёт этого isset() не имеет практически никаких накладных расходов на определение длины строки.

  34. Инкремент или декремент переменной при помощи $i++ происходит немного медленнее, чем ++$i. Это особая специфика PHP, и не нужно таким образом модифицировать свой C и Java-код думая, что он будет работать быстрее, этого не произойдёт. ++$i будет быстрее в PHP потому, что вместо четырёх команд, как в случае с $i++, вам понадобится только три. Пост-инкремент обычно используется при создании временных переменных, которые затем увеличиваются. В то время, как пре-инкремент увеличивает значение оригинальной переменной. Это один из способов оптимизации PHP-кода в байт-код утилитой Zend Optimizer. Тем не менее, это хорошая идея, поскольку не все байткод-оптимизаторы оптимизируют это, также остаётся немало скриптов, работающих без оптимизации в байткод.

  35. Не всё должно быть ООП, часто это излишне, поскольку каждый метод и объект занимает много памяти.

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

  37. Не слишком разбивайте методы. Думайте, что вы действительно будете повторно использовать.

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

  39. Используйте бесчисленное количество предопределённых функций.

  40. Если в вашем коде есть функции, выполняющиеся очень долго, обдумайте их написание на C в виде расширения

  41. Профилируйте свой код. Профилирование покажет вам, как много времени выполняются части вашего кода.

  42. mod_gzip — модуль Apache, который позволяет сжимать ваши данные на лету и может уменьшить объем передаваемых данных до 80%.

IT-Безопасность: Памятка для SEO оптимизаторов

Полезная схема для SEO оптимизаторов, легко с ореинтироватся что еще не сделано и за что взятся

суббота, марта 29, 2008

Заработок с Google AdSense

Кто ещё не участвует в программе заработка на контекстной рекламе Google AdSense, присоединяйтесь!

Если у твоего сайта уже есть в день по 30-50 посетителей и много интересной тематической информации, то надо начинать работать с Google AdSense.

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

Получи коды баннеров и поставь их на свой сайт. Также поставь форму поиска. Внимательно отнесись к оптимизации сайта для получения максимальной прибыли (для этого есть специальный раздел в Справочном Центре Гугл).

Также, нужно подтвердить свою налоговую информацию: указать, что ты не являешься гражданином США, не имеешь там бизнес и доход по программе не извлекается на территории США.

Правильно укажи свой почтовый адрес (на английском языке). Когда ты наберёшь $50 на счёте, на твой адрес придёт письмо (по обычной почте) с кодом протекции. Этот код нужно будет ввести в своём аккаунте. Тогда после набора $100 ты сможешь выводить деньги.

В Россию, Украину, Беларусь и ряд подобных стран, деньги высылают только именными банковскими чеками.

Допустим, в мае ты набрал 100 баксов. Тогда 23-25 июня тебе вышлют чек на сумму заработка. Я заказываю чек доставкой обычной почтой (это дешевле). Мне в Россию чеки приходят их Швеции (Европейское отделение американского CityBank). Письмо идёт не более 20 дней.

На инкассо (обналичивание) чеки принимают разные банки. Я пользуюсь услугами Внешторгбанка (ВТБ24). Сдача чека обходится примерно в 390 рублей (2% от суммы чека, но не менее $15). Чеки менее $750 сдавать на инкассо не выгодно - теряешь на оплате комиссионных банку. Ведь, что ты сдашь чек на $100, что на $750, с тебя всё равно возьмут комиссию $15. Наличку выплачивают в обменном пункте того же отделения банка, где ты сдал чек на инкассо. Весь процесс занимает 1,5 месяца (чек для подтверждения отправляют в CityBank обычной почтой, а тот посылает подтверждение тоже обычной почтой).

В первый же день начала работы с контекстной рекламой Гугла, ставь задержку платежа. Это нужно, чтобы тебе не выслали чек сразу как только ты заработаешь свои первые $100 в системе. Дело в том, что когда ты захочешь обналичить (окешить) чек, то банк в твоей стране возьмёт с тебя большую комиссию за принятие чека на инкассо и отправку его на подтверждение в CityBank. Ещё возьмут комиссию при выдаче наличных. Зачем часто терпеть такие убытки и тратить время (обналичка занимает 1-2 месяца), если можно один раз в год получить чек на большую сумму, обналичить его, а на вырученные деньги съездить в отпуск за границу? Выгоднее сдать чек на $1000 - $2000, чем на $100. Меньше денег теряется на комиссионных банку.

Я прочитал в справочном центре, что чек выдаётся на срок 1 год. Потом он автоматически аннулируется, но деньги не теряются, а возвращаются на твой аккаунт в ЭдСенс. Учитывая, что чек идёт до тебя до 1 месяца, сам понимаешь, что медлить с обналичиванием не нужно. Получил чек - сразу в банк! В банк нужно бежать сразу ещё и потому, что сумма чека указана в долларах США, а доллар ежедневно дешевеет.

Как правило, в банке сразу к тебе относятся уважительно. Показывают, что и как нужно заполнить. Разъясняют порядок приёма чека и выплаты по нему денег. Ты сразу становишься VIP-клиентом! А когда ты приносишь в этот же банк второй и последующие чеки, тебя носят на руках, целуют, угощают кофе и шоколадом.

Почему я рекомендую работать именно с контекстной рекламой Гугла? Ведь есть ещё Яндекс.Директ и Бегун? У них нет необходимости так заморачиваться с банковскими чеками, а заработок можно спокойно получить в Яндекс.Деньги или в WebMoney.

Мы с партнёрами рассчитали, что доход от прочих систем контекстной рекламы минимум в 8 раз меньше, чем от Гугла. Поэтому, я считаю, что лучше работать с Гуглом. Про Яндекс.Директ и Бегун я ещё напишу в других разделах.

Ещё большой плюс Гугла, что он принимает (или не принимает) твой сайт с любыми параметрами, в то время, как Яндекс требует хорошей посещаемости (от 300 человек в сутки). Бегун также предъявляет требования к посещаемости (от двух человек для сайтов на платном хостинге, и от 300 - на бесплатном). Бегун с Яндексом предъявляют и другие требования к сайтам. Гугл может и отклонить твой сайт, но учитывая, что ты заранее стараешься сделать хороший авторский сайт - не отклонит. Просто приложи все силы, чтобы сделать интересный и нужный людям сайт. Гугл это оценит!

Кстати, есть способ бесплатно открыть свой сайт не зная ничего про HTML, PHP, домены и хостинг. И с этим сайтом тебя гарантированно примут в Google AdSense! О чём речь? Гугл купил популярный сервис блогов Blogger.com Блог - это онлайн дневник. То есть сайт, где ты можешь писать свои мысли, а посетители сайта могут их читать и давать им свой комментарий. Отличие блогов от форумов именно в том, что на форуме все могут заводить темы и писать в них, а в блоге "темы" заводит его автор, а остальные могут лишь комментировать статьи автора. Так вот, зайдя на Blogger.com, ты можешь завести свой блог. Это делается очень просто: бесплатно, а описание регистрации разбито на шаги и описано на русском языке (поддерживается множество языков).

Заведи блог и сделай на нём несколько постов. Потом выжди неделю-две и смело регистрируйся в ЭдСенс. Гугл примет тебя с распростёртыми объятиями, ведь ему нужно раскручивать собственный сервис. Таким образом, ты бесплатно получаешь свой сайт и возможность участвовать и получать деньги от Google AdSense. Блоги любят все поисковики в мире. Поэтому тебе обеспечены хорошие позиции в поисковой выдаче и хороший трафик. Не забывай еженедельно писать новые статьи в блоге и отвечать на критические замечания посетителей твоего блога.

Если тебе потом захочется поставить рекламу Гугла на другой свой сайт, это сделать очень легко. Просто поставь код баннеров на новый сайт и всё! Не нужно нигде указывать, что это другой сайт. Гугл сам это поймёт и в течение нескольких дней найдёт тебе рекламодателей по тематике сайта. Однажды проверив твой уровень веб-мастера и приняв в число партнёров, Гугл будет автоматом принимать все остальные твои сайты.

Говоря о доходах от размещения на сайте рекламы через Google AdSense, следует иметь ввиду, что Гугл запрещает раскрывать размер доходов от участия в программе. За разглашение этой информации сразу блокируют аккаунт и прекращают партнёрство. Поэтому, осторожно делись такой информацией: никаких конкретных цифр, сумм и сроков!

Внимательно отнесись к оптимизации своего сайта для достижения лучших результатов в программе. В твоём аккаунте есть вся информация про это. Я пока не оптимизировал сайт, получал по разному: от "ничего" до пары-тройки баксов в день. Через сутки после оптимизации я стал получать ежедневно в 10 раз больше. Теперь нет дней, когда никто не кликает по рекламным ссылкам. А реклама стала намного более подходящей под тематику сайта. Гугл очень старается для нас!

В Интернете много прочитал про Гугл и нашёл статистику, что начинающий веб-мастер получает в программе в среднем $1-2 в день. Тот, кто понял как и что надо делать (то есть всё правильно оптимизировал) начинает получать около $10 в сутки. Есть в России и те, кто получает более $300 и даже $500 в сутки. Но написать ведь можно всё, что угодно? Надо самому всё попробовать и прочувствовать.

А вот за границей (в основном, в США), точно есть вебмастера, которые получают намного больше. Читал и про тех, кто получает десятки и сотни тысяч долларов США в месяц. Очень интересно...

Если ты живёшь в Беларуси или в отдалённых районах России, Украины, Казахстана и т.п., то можешь подумать: "Обналичка в Беларуси - это проблема...". Скажу сразу, нет - не проблема. Ты можешь приехать в крупный город России, Украины, Польши или другой страны поближе и обналичить. Только сначала придётся сдать чек на проверку, а через 1-2 месяца вернуться в этот же банк за наличными.

Короче, не обращаем внимание на трудности. Мы не ищем лёгких путей! Трудности и проблемы есть всегда и во всём. Надо просто работать, делать дело и искать выход из трудных ситуаций.

Теперь про оптимизацию сайта для получения максимального дохода от контекстной рекламы Гугла. Сразу скажу, что лучше иметь статичные страницы, а не динамические. У кого сайт на РНР - делайте соответствующие настройки сервера.

Итак, нужны страницы с тематическим содержимым. Реклама ведь будет показываться тематическая. Например, на странице со статьёй о том, как правильно выбрать и купить цифровой фотоаппарат, будут объявления по темам "Фото", "Цифровые фотокамеры", "Компьютеры и ноутбуки". То есть, эти объявления будут максимально отвечать теме страницы сайта, а значит заинтересуют большой процент читателей статьи. Дочитав статью, посетитель сайта обычно что делает? Или переходит на другую страницу сайта, или покинет твой сайт. В случае с контекстной рекламой, он имеет возможность не просто уйти с сайта, закрыв окно браузера, а перейти по ссылке в рекламном объявлении. То есть, участие в программе Гугла - это лучший выход для владельца сайта. Ты теряешь посетителя, но получаешь деньги.

Итак, у тебя уже есть сайт с посещаемостью 30-50 человек в сутки. Есть тематические разделы и интересные статьи в каждом разделе. Статьи, кстати, лучше писать самому. Регистрируешься в Гугл ЭдСенс и ставишь на сайт банеры. Баннеры надо поставить так, чтобы не портить внешний вид сайта. В аккаунте есть даже специальная таблица, показывающая, куда чаще смотрят люди на мониторе. В эти места и предлагают поставить баннеры. Я не во всём последовал их советам.

Баннеров можно ставить 3 штуки с рекламой, 1 с блоками ссылок и 2 с "рефералами" (то есть, с баннерами тех коммерческих продуктов Гугл, которые ты хочешь продавать). Из рефералов я поставил баннер "Сайт приносит прибыль с помощью Гугла".

Кликать в основном будут на баннеры с рекламой и на на блок ссылок. Поэтому на странице сайта поставь максимально возможное число баннеров. Я так и сделал - поставил везде по 3 рекламных баннера и 1 блок ссылок. Только на форуме пока стоят 2 баннера...

Максимальное число баннеров поставить - дело не сложное. Но важно ещё и так баннеры разместить, чтобы за один раз показывать максимально возможное число объявлений. Ведь чем их больше, тем больше выбора у посетителя сайта. И, как следствие, больше вероятность, что его что-то заинтересует и он кликнет. Например, баннер 468х60 содержит всего 2 ссылки, баннер 120х600 - 5, баннеры 160х600 и 728х90 - по 5 ссылок. Количество ссылок в блоке ссылки ты выбираешь сам (4 или 5). Я выбрал 5, чего и остальным советую. Имея возможный максимум объявлений - имеем больший доход.

Выбирая, какая информация будет показываться на баннерах, нужно отключить показ графики. В аккаунте идём по закладкам: Мой аккаунт/Настройки аккаунта, кликаем "Настройка типа объявлений" и указываем: "Только текстовые объявления во всех рекламных блоках". Что это даёт? Да просто, если будет показываться графический баннер, то это всего 1 объявление, а если баннер с ссылками, то вместо одной картинки будет несколько ссылок. У посетителя появляется выбор, а у тебя увеличиваются шансы, что посетитель кликнет по объявлению. Даже если это баннер 468х60 с двумя объявлениями, твои шансы возрастают в два раза!

Перейдя на закладку Настройка AdSense и выбирая код для баннеров, следует иметь ввиду, что для увеличения кликабельности нужно, чтобы фон баннера совпадал с фоном страницы, на которой будет размещён. И не нужно обводить баннер границей. Тогда баннер сольётся с контентом страницы и посетитель не будет воспринимать его как рекламу. Рекламу люди часто просто не замечают.

Настроив, создав и разместив на своём сайте баннер, будь готов, что некоторое время на нём будет реклама на английском языке или социальная реклама. Дня за 4 Гугл найдёт рекламодателя для твоей странички и на баннерах появятся интересные ссылки.

Робот Гугла "увидит", что код баннера размещён на неизвестной ему странице и зайдёт на неё, чтобы определить содержание. Поняв тему страницы, он её проиндексирует (только для целей рекламы, а не поиска!). С этого момента рекламодатели будут автоматом "поставляться" на твою страницу.

Но на странице есть не только тематическая информация. В нашем случае, статья. Есть ещё навигация, верхние и нижние границы (буду описывать на примере моего сайта). А в будущем добавятся и объявления Гугла, которые он тоже будет индексировать и считать содержимым твоей страницы...

Так статья про цифровые фотоаппараты будет "размыта" темами Недвижимость, Работа, Погоды и прочими, которые есть в навигации. Это ухудшит качество рекламы. Вместо нормально контекста будет "кривой". На странице про цифровые фотоаппараты появится реклама строительных фирм, кадровых агентств, метеоцентров и т.п. Что делать?

Есть выход. Гугл предлагает делать нацеливание его робота на основную тематику твоей страницы. Для этого тебе нужно в код страницы вставить описания:

<google_ad_section_start>
и
<google_ad_section_end>

Например, у меня есть верх страницы, низ и три колонки: навигация, основное содержание и реклама. Ясно, что основную смысловую нагрузку несёт только основное содержание страницы, то есть - её центральная часть, там где размещена сама статья про покупку фотоаппаратов.

Тогда, в коде страницы, перед саммым заголовком ставим начало описания: <google_ad_section_start>, а где заканчивается информативная часть статьи (у меня - перед информацией о возможной перепечатке), ставим конец описания: <google_ad_section_end>

Примерно так, если образно:

<google_ad_section_start>

Заголовок

Текст

<google_ad_section_end>

Подпись

Вот и всё! Теперь у тебя на странице только та реклама, которая интересна посетителю.

На сайте реклама даёт очень хороший отклик, а вот на форуме и новостях - не очень. На РНР-движках с динамичным содержанием, Гугл не может точно подобрать рекламу по теме. Но и на форуме и в новостях люди кликают по ссылкам.

Обязательно нужно ставить поиск от Гугла. Он хоть и приносит не такой большой доход, как баннеры, зато позволяет видеть, что искали на твоём сайте. В аккаунте заходим на закладки: Отчёты/Расширенные отчёты. В выпадающем списке выбираем, что нужна информация по поиску, а справа ставим точку перед указанием, что нужна информация о частых запросах. Жмём кнопку в центре страницы, появляется список самых частых запросов. По нему ты можешь видеть: что искали на сайте. Потом делай вывод: чего на сайте нет. И добавляй новую информацию. Этим привлечёшь постоянных посетителей и заработаешь ещё больше денег.

Ещё на странице с результатами поиска можно размещать свой логотип и, кажется, блок ссылок. Подробнее, всю информацию о программе - ищи на их сайте!

Пользуйся "фильтром конкурирующих объявлений". Смотри, какие сайты у тебя рекламируются и отсекай ненужные, занося их URL в список фильтра.

Например, мне не нужны сайты "Хостинг в Казахстане", "Недвижимость Азербайджана", "Такси Киева", "Продажа компьютеров в Латвии". Я их URL'ы занёс в фильтр. Таким образом освободилось место для более привлекательных для посетителей сайта объявлений.

Может цены на клики по тем объявлениям, которые я забанил и были выше, но по ним всё равно никто бы не кликнул...

Это не занчит, что вы должны банить все иностранные объявления. Просто думайте об интересах своих посетителей. "Такси Киева" моим посетителям точно не нужны, как и такси в Москве или СПб. А вот "Недвижимость Киева" или "Отдых в Крыму" очень даже интересны. Вот их оставляем. То есть, поставь себя на место своего посетителя и фильтруй всё лишнее.

Обязательно создай клиентские каналы. Это немного сложно и долго, но позволяет видеть рекламодателям, где на сайте будет их реклама. Тогда они могут поднять для тебя цену клика или начать платить не за клики, а за 1000 показов (как правило, это выгоднее).

Одно дело, если рекламодатель не знает, где будет его объявление, и совсем другое, когда он точно знает - оно будет вверху всех страниц раздела "Недвижимость" на баннере размером 728х90 пикселей. В первом случае он, например, назначит цену 3 цента за клик, а во втором - 30 центов. Поэтому, не ленись, создавай клиентские каналы!

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

Если пока не разобрался с клиентсткими каналами, то создай URL-каналы. Это очень легко. Просто вводишь адреса своих сайтов, страниц и разделов и Гугл будет отслеживать клики по этим адресам. Рекламодателям от этого радости никакой, но тебе начальную статистику даст: какие страницы приносят больший доход.

На сегодня всё. В заключение немного о баннерах "рефералов". Я поставил только реферал AdSense ("Сайт приносит прибыль с помощью Гугла"), так как не представляю, как можно заинтересовать остальными продуктами моих посетителей. Ведь баннер не несёт никакой смысловой нагрузки. Если бы была целая страница с описание что да как, то кто-то и кликал бы, а так...

Вернёмся к тому, что я уже установил. Если кто-то зарегистрируется в Гугл ЭдСенс кликнув по твоему баннеру, то ты может что-то с него получишь, а может и нет. У Гугл здесь очень интересная программа. Если в течение 180 дней твой реферрал заработает $5, Гугл тут же заплатит тебе тоже $5. Если в течение этого срока он заработает $100 и получит право на вывод (то есть, Гугл не уличит его в накрутке кликов или ещё в чём противоправном), то ты получишь $250. Если ты наберёшь за 180 дней 25 реферралов и каждый из них сможет в течение 180 дней (после их регистрации) заработать по $100 и получить право на вывод, то тебе заплатят премию $2000.

В течение года можно получить только одну премию!

После этого ты с реферрала уже ничего получать не будешь...

В справочном центре Гугла набери в поиске: "Сколько я заработаю на рефералах?" и на открывшейся странице сможешь прочитать о премиях за реализацию других продуктов Гугла. Там премии скромнее: от менее чем $1 до $5.

Ещё немного о получении денег от Гугла. Сейчас нам платят только чеками. Но у них есть ещё электронный перевод платежей (EFT). Он заключается в том, что деньги переводят прямо на твой счёт в банке. Причём, платёж приходит сразу, а не в течение нескольких недель. И деньги переводят не в долларах США, а в национальной валюте. Это позволяет не терять деньги на комиссионных банка.

Всё хорошо, но только платят пока в ограниченное число стран:

Австралия - Австралийский доллар
Австрия - Евро
Бельгия - Евро
Канада - Канадский доллар
Чехия - Крона
Дания - Крона
Финляндия - Евро
Франция - Евро
Германия - Евро
Ирландия - Евро
Израиль - Шекель
Италия - Евро
Япония - Иена
Нидерланды - Евро
Новая Зеландия - Новозеландский доллар
Норвегия - Крона
Польша - Злотый
Португалия - Евро
Словакия - Крона
Испания - Евро
Швеция - Крона
Швейцария - Франк
Турция - Лира
США - Доллар США
Великобритания - Английский фунт стерлингов
На мой интерес, когда радость перевода EFT будет доступна для других стран, в том числе для России, мне ответили:

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

Ну что ж... Ожидаем...

копипаст, источник: http://www.godspirit.ru/

суббота, марта 22, 2008

IT-Безопасность: Милицейские советы

Предисловие: не все что белое – белое и не все что черное – черное... В силу некоторых обстоятельств я знаком с деятельностью правоохранительных органов Украины и поэтому решил поделиться частью свои знаний с вами. Хотя эти советы относятся к законодательству Украины, и я не знаком с законодательством других стран, но думаю, они будут полезны как для представителей России и других стран СССР.

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

Закон. Кратко
Закон надо знать! Советую всем прочитать хотя бы раздел о компьютерных преступлениях, ведь там маленькие статьи и их всего лишь 6 (361,361-1,361-2,362,363,363-1). Кроме того можно вычеркнуть из списка ст.362 и 363.
И так осталось 4 статьи:
1. ст. 361 – не санкционирование вмешательство в деятельность компьютеров, что привело к вытеку, повреждению, изменению информации.
2. ст. 361-1 – распространение вирусов и создания вирусов с целью распространения.
3. ст. 361-2 – распространение «секретной» информации
4. ст. 363-1 – массовая рассылка сообщений, которые нарушают роботу компьютеров.

Это было сказано очень кратко. А теперь не систематизированные тезисы.
1. Если пишете вирус, то никогда и никому не говорите что пишете для продажи. Просто вы пишете для своего развитие, для постижения всех глубин программирования.
2. За непосредсвенно спам не наказывают, ибо нету такой статьи.
3. Если вы продаете информацию никогда не говорите что она является закрытой. Если вам докажут что она является закрытой, то извинитесь и скажите что не знали (это связано с тем, что для криминального наказание нужна обязательна «вина»).
4. Никогда не говорите, что делали в группе. Будьте для органов одиночкой, так как группа – это отягощающее обстоятельство из-за которого наказание могут увеличить в два раза.
5. И вообще никогда не говорите без адвоката ничего, вообще ничего. Лучше быть немым, чем лишится воли.
6. Поиском «хакеров» в Украине почти-почти-почти не занимается служба безопасности. И еще больше почти не занимается милиция. В основном все происходит через службы банков, провайдеров и других приватных структур. Они собирают всю информацию про вас, а потом передают уже в правоохранительные органы.
7. Знайте что в суде почти нереально доказать компьютерное преступление при хорошем адвокате и при вашем молчании. Главное чтобы вы ни в чем не признались. Всегда и все отрицайте и повторяйте что вы белый и пушистый.
8. Яркий пример того как действует служба безопасности самого большого банка Украины. Они приходят к тебе и говорят, что ты крутой хакер, ты их взломал и хотят взять тебя на роботу, только чтобы ты сначала рассказал, как проник в их систему, а потом когда ты все расскажешь, то фактически можешь прощаться с волей.
9. Всю незаконную информацию всегда храни на зашифрованном разделе, пускай никогда она не будет в открытом виде. Лично я пользуюсь BestCrypt. Кстати она не всегда оперативно отключает зашифрованный раздел, поэтому я когда еще когда учился, то вывел кнопку Ресет поближе к клавиатуре и теперь буквально за секунду могу перезагрузить компьютер и тем самым оставить всю зашифрованную информацию зашифрованной даже если был примонтирован зашифрованный раздел. Очень полезно если вас будет захватывать спецгруппа.
10. Знай что даже если твой айпишинк где-то засветился, то это не ты, а БОТ который злой хакер установил на твой комп, чтобы подставить тебя.

Послесловие
Наверно хватит. Компьютерные преступления еще очень мало проработаны на практике, поэтому сложно советовать много и конкретно. Вся статья не претендует на 100% правдивость, так как она построена на личном опыта роботы в милиции по не компьютерным преступлениям и на учебном материале, что проходили в академии. Так что все советы, критика и дополнения приветствуются.

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

Копипаст отсюда

пятница, марта 21, 2008

IT-Безопасность: 25 способов улучшить свой сайт

Эта небольшая статья поможет новичкам (и не только) оценить удобство собственного сайта и укажет основные недочёты, присущие многим сайтам. Ваши пользователи скажут вам спасибо =)

Юзабилити/Доступность

  1. Используйте логотип: поставьте ссылку на главную страницу. Звучит просто, но это здорово экономит время ваших посетителей.
  2. Сделайте ссылки явными: проще простого изменить ссылки и сделать их заметными на фоне сайта.
  3. Делайте текст читаемым: не забивайте себе голову тем, как бы впихнуть весь текст в видимую часть странички, тем самым избавив посетителей от необходимости пользоваться прокруткой – позвольте тексту свободно дышать, увеличьте межстрочный интервал и добавьте пустое пространство. И не стесняйтесь увеличивать размер шрифта.
  4. Создайте понятную страницу ошибки 404: объясните, что означает эта ошибка, и дайте ссылку на карту сайта, главную страницу или поиск.
  5. Добавьте возможность связаться с вами: казалось бы, простая вещь, но если у посетителей нет возможности связаться с вами, они, вероятно, не смогут сообщить вам о проблемах на сайте.


СЕО

  1. Добавьте атрибут title: добавьте этот атрибут в ссылки основного меню. Эта небольшая операция увеличит CEO-привлекательность страницы.
  2. Создайте карту сайта для поисковых систем: существует множество генераторов карты сайта, которые создадут её за считанные минуты. Этим вы можете очень быстро увеличить видимость своего сайта для поисковых машин.
  3. Оптимизируйте мета-теги: проверьте, совпадают ли они с тематикой ваших страниц и исправьте их там, где требуется.
  4. Проверьте заголовки: удостоверьтесь, что заголовки внутри тегов H1, H2 и H3 правильно используются. Они должны содержать основные ключевые слова. К тому же наличие ключевых слов в заголовках помогает и посетителям ориентироваться на сайте.
  5. Ссылайтесь на внутренние страницы: об этом часто забывают, но стоит ставить ссылки с основных страниц на внутренние, которые расположены на нижних уровнях.


Дизайн/Веб-разработка

  1. Обратная связь: замечательно, если у каждого посетителя будет возможность предложить вам свои идеи по поводу улучшения ресурса. Проще простого закрывать глаза на ошибки на собственном сайте.
  2. Браузеры: проверьте функциональность вашего сайта во всех популярных браузерах. Обязательно исправьте все ошибки.
  3. Укажите направление: не стоит выкладывать на главной странице сайта сразу всю информацию. Дайте возможность посетителям самим побродить по сайту. Просто укажите им дорогу, разместив заметные «указатели»-меню.
  4. Не решайте за пользователя: избегайте всплывающих и изменяющих размер окон и других подобных вещей. Запомните – браузер принадлежит пользователю, а не вам.
  5. Анимация: я не противник использования анимации, но не позволяйте картинкам постоянно меняться, пока посетитель пытается прочитать содержание или разглядывает продукт. Это то же самое, что пытаться продать машину, назойливо танцуя вокруг покупателя в костюме огромного банана. Ну почти то же самое.


Содержание

  1. Рерайт: перечитайте основные тексты сайта. Если они вас самого не заинтересовали – перепишите их.
  2. Упрощайте: старайтесь не использовать слишком много специальных слов и выражений, заменяйте их по возможности на более простые и понятные.
  3. RSS: сделайте подписку на RSS максимально удобной и доступной.
  4. Не переусердствуйте: люди не будут круглый день торчать на вашем сайте. Старайтесь лаконично предоставлять посетителям основную информацию. Пустая болтовня – не для веб-сайтов.
  5. Доступность: представьте себя человеком, который впервые забрёл на ваш сайт, и проверьте, сможете ли вы с первого раза найти путь ко всем ключевым страницам. Возможно, в этом вам понадобятся помощники.


Вне сайта

  1. Видимость: проверьте, как высоко вы находитесь в поисковых машинах по названию вашей компании. Если невысоко, просто опубликуйте несколько ссылок с названием вашей компании в качестве ключевого слова.
  2. Будьте отзывчивы: отвечайте на вопросы и помогайте людям на форумах, тематика которых пересекается с вашей сферой деятельности. У вас появятся новые друзья и вы заработаете определённый вес в этих сообществах. Запомните, авторитет = трафик.
  3. Не стойте в стороне: если вы ещё не зарегистрировались в популярных социальных сетях, не тяните! Люди могут искать услуги, которые предоставляет ваш ресурс, через подобные сайты.
  4. Будьте в курсе: читайте новостные ленты, обращайте внимание на всё, что касается вашего круга деятельности – можете узнать много полезного.
  5. Всегда на шаг впереди: старайтесь постоянно следить за всем новым в веб-технологиях. Вероятно, вы сможете использовать их себе во благо и стать первым, заняв собственную нишу.


копипаст отсюда

вторник, марта 18, 2008

IT-Безопасность: Javascript: Анимация. (Урок)

Если ты идешь по пути веб-мастера, знаком с HTML и CSS, то этот небольшой урок как-раз для тебя.



Мы сегодня научимся делать красивую анимированную шапку для твоих веб-сайтов.
Примерно такую, как на сайте веб-студии Perevaga.com (Читается пэрэвага, в переводе с украинского -- преимущество, превосходство) [профиль компании]


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


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


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


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


Итак, хватит болтать! К делу!


Создаем пустой html документ, в моем примере он выглядит так:



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Урок</title>
<style type="text/css">
</style>
</head>
<body>
</body>
</html>

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



<style type="text/css">
body{background-color:#FFFFFF; padding:0; margin:0;}
</style>

Создадим элемент

<div id="head"></div>. Это будет шапка документа, туда же мы кинем и анимированный фон. id нужно задать, чтобы потом получить к этому элементу доступ из javascript.

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


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


Допустим, небо у нас уже есть и оно лежит в img/sky.jpg. Определим теперь стиль для нашей шапки, чтобы там было небо: вставляем в секцию <style> следующий код:


#head {
background: url(img/sky.jpg) repeat-x;
width:100%;
height:429px;
}

Только не забудь вписать туда высоту своей картинки, у тебя вряд-ли будет 429px.

Теперь логотип/заголовок. Как ты можешь видеть, в моем примере он достаточно красивенький. Немалую роль в этом сыграл 8-битный канал прозрачности. Для этого нужно сохранять картинку в формат PNG-24. Конечно, ты можешь использовать и GIF или PNG-8 с присущей им 1-битной прозрачностью, но только в том случае, если фоновая картинка достаточно однородна, тогда тебе следует задать цвет matte (например в photoshop ты можешь найти этот пункт при сохранении изображения для веба) таким, в который окрашена наибольшая часть твоей фоновой картинки. Но вот если ты хочешь к примеру отражение под логотипом, как в моем примере (это же так модно в эпоху web2.0!), тогда твой выбор -- png-24. Правда он немного больше весит и для корректного его отображения в IE6 нам придется потом вставить один костыль, о котором пойдет речь ниже.


Итак, добавляем логотип внутрь шапки: <img id="logo" src="img/logo.png"/>, а в секцию <head> вставляем где нибуть такой код:



<!--[if lt IE 7]>
<![if gte IE 5.5]>
<script type="text/javascript">
function fixPNG(element)
{ var src;
if (element.tagName=='IMG')
{
src = element.src;
element.src = "blank.gif";
}
element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
}
</script>
<style type="text/css">
#logo{ filter:expression(fixPNG(this));}
</style>
<![endif]>
<![endif]-->


Еще нужно строго указать размер картинки, чтобы этот хак работал. Сделаем это к примеру через стили: #logo{width:596px; height:89px}
Да, не забудь бросить в папку с твоим документом прозрачную картинку blank.gif размером 1x1 пиксель. Можешь взять мою.

Это и есть костыль, о котором говорилось выше. Если кто-то юзает такой старый хлам, как IE младше версии 5.5, можем ему посочувствовать. Он не увидит нашу красоту. Если интересна данная тема, погугль по запросу "IE6 PNG прозрачность".


Теперь неплохо бы нормально расположить нашу картинку. Для этого отцентрируем содержание шапки (добавим правило text-align:center для элемента #head); и зададим верхний отступ для логотипа (margin-top:150 для #logo)


И наконец-то мы дошли собственно к анимации. Добавляем код в самый конец документа, перед закрывающим тегом </body> (можете использовать как альтернативу window.onload):



<script language="Javascript">//Да-да-да, сейчас мы будем что-то двигать
var sky_pos = 0;
var sky = document.getElementById('head'); //Незачем в каждой итерации цикла искать элемент документа с шапкой, запихнем в переменную.
setInterval(function(){sky.style.backgroundPosition = sky_pos+++'px 0px'},45);//Поехали!

</script>


Еще немного пояснений: setInterval(f,t) -- вызывает функцию, переданную первым параметром через каждые t миллисекунд. Со значением t можете поэкспериментировать, для более систем со слабеньким процессором лучше ставить немного меньшие значения, но слишком разгонять ваше небо тоже не стоит, это может показаться посетителям вашего сайта не таким клевым, каким это кажется вам. Можешь так же добавить сдвиг фона обратно, когда он достигнет значения, кратного его ширине, т. к. теоретически когда-то backgroundPosition станет ооочень большим :).

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


<script language="Javascript">//Да-да-да, сейчас мы будем что-то двигать
var sky_pos = 0;
var b=true;
var sky = document.getElementById('head');
setInterval(function(){b?sky.style.backgroundPosition = sky_pos+++'px 0px':void(0);},35);
</script>



А в теге body добавим обработчики событий: onBlur="b=false" onFocus="b=true"



И последний момент: Все как бы клево, но тебе может не понравится, как ведет себя курсор в IE6. Дело в том, что он, бедненький не может нормально кэшировать картинки, из-за этого курсор все время мерцает и рядом то появляются, то исчезают песочные часики. Но не расстраивайся! Нафига нам пользователи, которые юзают устаревший браузер? Шучу :) Мы остановим бешенство курсора. Для этого проапгрейдим наш жабаскрипт, находящийся в условных комментариях для определения старых версий ИЕ. Пишем это: document.execCommand("BackgroundImageCache",false,true); (Для непонятливых --нужно вставить эту строку перед function fixPNG).


Вуаля, готово!


Иатак, получившийся у нас код:



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Урок</title>
<style type="text/css">
body{background-color:#FFFFFF; padding:0; margin:0;}
#head {
background: url(img/sky.jpg) repeat-x;
width:100%;
height:429px;
text-align:center;
}
#logo{width:596px; height:89px; margin-top:150px;}
</style>
<!--[if lt IE 7]>
<![if gte IE 5.5]>
<script type="text/javascript">
document.execCommand("BackgroundImageCache",false,true);
function fixPNG(element)
{ var src;
if (element.tagName=='IMG')
{
src = element.src;
element.src = "blank.gif";
}
element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
}
</script>
<style type="text/css">
#logo{ filter:expression(fixPNG(this));}
</style>
<![endif]>
<![endif]-->
</head>
<body onBlur="b=false" onFocus="b=true">
<div id="head">
<img id="logo" width="596" height="89" src="img/logo.png"/><br>
</div>
<div>А здесь будет содержание страницы</div>
<script language="Javascript">//Да-да-да, сейчас мы будем что-то двигать
var sky_pos = 0;
var b=true;
var sky = document.getElementById('head');
setInterval(function(){b?sky.style.backgroundPosition = sky_pos+++'px 0px':void(0);},35);
</script>
</body>
</html>

То что получилось у меня можно лицезреть здесь

Скопипастено отсюда

© Степаненко Виталий, 2008