Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

P-WEEK: Flash, PHP, HTML, DELPHI, Pascal, C/C++, технологии


Веб-дизайн

Раскрутка

Flash

Delphi

HTML

Pascal

PHP

C/C++

Технологии

Компьютеры

Выпуск № 3
сегодня в выпуске:

От редактора
Сегодня в выпуске
Применение технологии Flash
Форум как средство раскрутки
Счетчик кликов на PHP
Слияние двух картинок
Интерполяция изображения
Вопрос - Ответ
Рекомендуемые статьи для чтения
Пишите нам
Собрание статей "We Like It"
 
  ОТ РЕДАКТОРА

На этой недели к вам пришел уже третий выпуск рассылочного журнала "P-WEEK". Для вас много хороших новостей.

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

Во-вторых, появился новый раздел, вернее теперь постоянная рубрика журнала - "Вопрос - Ответ". Как можно догадаться это что-то вроде F.A.Q. Если же вам и это слово ни о чем не говорит, то я поясню. Здесь вы сможете задать любой вопрос по поводу тем нашего журнала и сайт www.welikeit.ru  вместе со своими сайтами-друзьями попытается ответить на них. А темы по которым принимаются вопросы такие: Flash, HTML, PHP, веб-дизайн, раскрутка, Photoshop, Delphi. Пока что это все темы, по которым принимаются вопросы. Скоро этот список пополнят названия всех разделов сайт welikeit.ru. Вопросы присылайте на admin@welikeit.ru.

В-третьих, теперь все свои письма присылайте на один адрес, адрес ведущего рассылки - admin@welikeit.ru. Жду!

С уважением ведущий рассылки, Кочари Арнольд

  СЕГОДНЯ В ВЫПУСКЕ

Применение технологии Flash

В последнее время я часто встречаю термин "программная анимация". Думаю, Вы тоже сталкивались с этим названием. Когда я впервые услышал это название, я подумал, что это не очень-то и нужно. Возможно, у Вас возникает такое же предположение. Если это так, тогда этот урок для Вас. Статья >>

* * *

Форум как средство раскрутки

Форум воспринимается всеми как средство общения посетителей, обмена мнениями между ними относительно определённого вопроса, связанного с тематикой данного сайта. Сама концепция форума оставляет позади другие общеизвестные и общедоступные средства общения, такие как чат, гостевая книга, ICQ, банальный E-mail. Статья >>

* * *

Счетчик кликов на PHP

Наряду с гостевыми книгами, голосованиями и рассылкой почты, различные счетчики стоят на верхних вершины интересов новичков в PHP. Так почему бы не удалить жажду познаний?
Итак, начнем. Для начала давайте определимся, что именно нам надо делать. При клике на ссылку, для подсчета количества кликов, нам надо специальным скриптом засчитать клик, а после предоставить посетителю интересующую его информацию (сделать редирект на нужный файл). Статья >>

* * *

Слияние двух картинок

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

* * *

Интерполяция изображения в Delphi

Этот алгоритм увеличивает изображение в произвольное количество раз при помощи билинейной интерполяции. При создании нового изображения каждой его точке с целыми координатами... Статья >>

 

   ПРИМЕНЕНИЕ ТЕХНОЛОГИИ  FLASH

В последнее время я часто встречаю термин "программная анимация". Думаю, Вы тоже сталкивались с этим названием. Когда я впервые услышал это название, я подумал, что это не очень-то и нужно. Возможно, у Вас возникает такое же предположение. Если это так, тогда этот урок для Вас.

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

Как обычно делается в таких случаях, создайте новый ролик. В настройках ролика (Ctrl-M), задайте частоту кадров равную 120 т.е. максимум. Таким образом, мы достигнем наибольшей плавности анимации. Хотя это спорный вопрос…на некоторых слабых машинах анимация может дёргаться…так что оптимизацию скорости я оставляю полностью на Вашей совести.
В новом ролике создадим два слоя. Первый для кнопок, второй для рамки. Первый назовём "buttons" а второй "point" у Вас должно получиться следующее:



Конечно, кадры сейчас должны быть пустыми.
Создайте четыре кнопки (именно 4 кнопки, а не 4 экземпляра одной кнопки). Назовите их "b1", "b2", "b3" и "b4". Теперь создайте четыре символа типа Movie Clip с названиями "b1_mov", "b2_mov", b3_mov" и "b4_mov". Поместите символ "b1" в "b1_mov", "b2" в "b2_mov" и.т.д надеюсь, принцип понятен. После размещения всех кнопок в мувиклипы, у вас для каждой кнопки должна получиться примерно такая иерархия:

                                                        


Меняются только индексы.
Теперь переходите на главную сцену и поставьте все Ваши "b(n)_mov" в слой "buttons". Разместите их точно друг под другом, используя выравнивание.

                                            

В поле "Instance name" для каждой кнопки выставьте имена: "b1", b2", "b3" и "b4" имена должны соответствовать названием кнопок в библиотеке. Теперь, в каждом символе "b(n)_mov" назначим кнопкам такой action:

on (rollOver) {
if (_root.point._y<_root.b1._y) {
_root.point._y += 5;
}
if (_root.point._y>_root.b1._y) {
_root.point._y -= 5;
}
}
on (press, rollOut) {
_root.point._y = _root.b1._y;
}

Этим мы проверяем, где находится наша рамка (выше или ниже данной кнопки) и проигрываем соответствующую анимацию. В строках 2, 5 и 10 замените цифру у b1, на цифру для данной кнопки (надеюсь, я понятно изъясняюсь, а если нет, то на этот случай есть пример). Кроме того в символах "b(n)_mov" поставьте по два слоя и скопируйте туда уже существующие кадры, и ещё в меню "Instance name" задайте кнопке "Track as Menu Item" (ой-ой-ой!! Научите меня говорить понятно…)
Если Вы всё поняли, пойдите и купите себе пиво (Вы это определённо заслужили) :-) У вас в каждом символе "b(n)_mov" должно получиться примерно так:

                         


Теперь переходим к созданию рамки, что намного проще. Просто в слое "point" нарисуйте рамку, поставьте её на (точнее под) верхнюю кнопку и конвертируйте этот рисунок в символ типа Movie Clip, с именем "point" а на главной сцене, в поле Instance Name задай те этому символу имя "point". Теперь запустите клип и если всё работает, то я всё же не так уж и плохо объясняю или Вы очень хорошо понимаете… Если же ничего не работает, проверьте все имена или посмотрите пример.

Полная версия статьи здесь.

ФОРУМ  КАК СРЕДСТВО РАСКРУТКИ

Форум воспринимается всеми как средство общения посетителей, обмена мнениями между ними относительно определённого вопроса, связанного с тематикой данного сайта. Сама концепция форума оставляет позади другие общеизвестные и общедоступные средства общения, такие как чат, гостевая книга, ICQ, банальный E-mail.

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

Итак, если вы хотите раскрутить свой сайт при помощи форума, то могу дать Вам некоторые рекомендации.

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

Вот список некоторых служб бесплатных форумов:

  • Автоклик. Администрация Автомобильной Баннерной Сети "АвтоКлик.РУ" предлагает сервис бесплатных форумов. Для своего ресурса Вы абсолютно бесплатно можете получить полноценный профессиональный форум ITA с MySQL, расположенный на платном хостинге. Вам всего лишь необходимо будет установить ссылку на форум. В свое распоряжение Вы получите логин и пароль, дающий Вам все права администрирования форума.

  • 3 FA. Бесплатный сервис виртуальных дискуссионных форумов для Ваших домашних страниц или информационных ресурсов любой тематики. Чтобы установить бесплатный форум на Вашу Web страницу не нужно разбираться в программировании или обладать глубокими знаниями в HTML. Всё что Вам требуется сделать это установить ссылку которую Вы получите после РЕГИСТРАЦИИ на Вашей странице и настроить дизайн форума для лучшего сочетания с Вашим сайтом.

  • Бесплатные форумы. Forums - Сервис бесплатных форумов! Форум для Вашей web страницы или сервера. Помощь в установке и настройке. Демо версия. Каталог форумов. Рейтинг форумов.

  • UserLine. Бесплатные форумы. Гибкая настройка дизайна форумов. Возможности для модерирования (удаления сообщений). Месяц бесплатной рекламы в Новинках. Полное отсутствие баннеров. Форумы работают на высокопроизводительных серверах, устанавленных на скоростных каналах передачи данных.

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

  • Форумы от Mail.ru. Сервер телеконференций. Возможность создания интернет-конференции по любой тематике.

Если Ваш хостинг поддерживает PHP, то рекомендую Вам форум ITA. Это хороший форум. Также один из самых - самых форумов - это YaBB. Этот форум имеет очень много функций, но использует CGI - технологии.

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

  1. Пишите сообщения от своего лица, а также подписывайтесь якобы существующими именами, чтобы создать видимость, что на форуме постоянно бывает много народу. Если в голову не приходят вопросы, посмотрите любое FAQ по теме, воспользуйтесь off-line материалами (кто бы мог подумать лет 10 назад, что книги будут так обзываться ), в конце концов возьмите темы с других форумов и т.д.

  2. Попросите своих друзей, чтобы они Вам помогли в раскрутке форума и поучаствовали в дискуссиях. Я на своём опыте могу утверждать, что это неплохой способ. За пару часов я с 2-мя друзьями оставили в форуме около 30-и сообщений.

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

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

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

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

  2. Боритесь со спамом, иначе ваш сайт превратиться в "Авгиевы конюшни". В последствии этим (борьбой) займутся модераторы форума (ведущие его разделов), но сначала удаляйте нецензурные сообщения, прямую рекламу и другое некорректное поведение.

  3. Постоянно ведите обсуждения (см. выше), привлекая всё новых и новых посетителей.

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

Источник: www.60ru.ru. Полная версия статьи здесь.

  СЧЕТЧИК КЛИКОВ НА PHP

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

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

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

<?php

$f=fopen("stat.dat","a+");
flock($f,LOCK_EX);
$count=fread($f,100);
@$count++;
ftruncate($f,0);
fwrite($f,$count);
fflush($f);
flock($f,LOCK_UN);
fclose($f);

?>


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

Первой строчкой кода - $f=fopen("stat.dat","a+"); мы открываем файл stat.dat для чтения и записи, связываем его с файловой переменной $f. Именно этот файл будет хранить данные о состоянии счетчика. Для правильной работы советую устанавливать для данного файла права доступа 777 или аналогичные с полным доступом на чтение и запись.

Следующая строчка - flock($f,LOCK_EX); очень важна для работоспособности скрипта. Что она делает? Она на время работы данного скрипта (или до ее снятия) блокирует доступ к файлу для других скриптов или копии данного. Почему это так важно? Давайте представим ситуацию: в тот момент, когда пользователь1 кликает на ссылку, запускающую скрипт подсчета кликов, по той же ссылке кликает пользователь2, запуская копию того же скрипта. Как вы увидите далее, в зависимости от того, на какой стадии выполнения находится скрипт, запущенный пользователем1, скрипт запущенный пользователем2 и работающий параллельно со своей копией может попросту обнулить счетчик. Эту ошибку допускают практически все начинающие программисты на PHP, создавая подобные счетчики. Теперь, я думаю ясно, зачем нам блокировка доступа к файлу - в данном случае скрипт, запущенный пользователем2 будет ждать пока отработает скрипт, запущенный пользователем1 (не стоит пугаться, что это замедлит загрузку страниц - даже самые медленные серверы выполняют данный скрипт за сотые доли секунды).

С 3-й строчкой кода $count=fread($f,100); все ясно. В переменную $count считываем значение счетчика.

Далее, страхуясь от ошибок ввода/вывода (в частности чтения) засчитываем клик/посещение, увеличивая значение счетчика на единицу @$count++;

Теперь нам осталось произвести запись в файл обновленных данных. Для этого нужно предварительно очистить файл ftruncate($f,0); вот тут и может возникнуть та опасная ситуация с обнулением счетчика, про которую я говорил. Однако мы используем блокировку файла, так что бояться нечего.

Записываем обновленные данные о значении счетчика fwrite($f,$count);

Для надежности принудительно очищаем буфер ввода/вывода для данного файла fflush($f);

Снимаем блокировку с файла flock($f,LOCK_UN); на самом деле ее можно не снимать - она автоматически снимается после закрытия файла. Однако для полноты примера я ее все же написал.

Закрытие файла fclose($f); тоже не обязательная функция т.к. все открытые скриптом файлы, после завершения его работы, автоматически закрываются. Но опять же, для полноты примера... =) кроме того, если на этом скрипт не заканчивается, а работать с файлом более не понадобится, рекомендуется сразу же закрывать файл.

Ну вот и все. Как видите совсем не сложно. Теперь для подсчета количества посещений, просто вставляйте данный код в страницу. А если же вы захотели подсчитать количество скачек какого-то файла, то вставляйте данный код в отдельный PHP файл, ссылку с имени файла заменяем на ссылку на данный скрипт, а в конец скрипта дописываем редирект на файл для скачки. Лучше всего его выполнить на PHP: Header("location:/download_dir/file_to_download.rar");

Ах да. Надо же еще выводить значение счетчика, иначе считать то зачем =). Значения, разумеется, берем из файла. Можно сделать как в примере самого счетчика:

<?php

$f=fopen("stat.dat","a+");
flock($f,LOCK_EX);
$count=fread($f,100);
flock($f,LOCK_UN);
fclose($f);


echo "Количество скачек/кликов: $count"; ?>

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

<?php

$s=file("stat.dat"); echo "Количество скачек/кликов: $s[0]"; ?>


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

Автор: Владислав Путяк. Полная версия статьи здесь.

 

  СЛИЯНИЕ ДВУХ КАРТИНОК
  1. Откройте Вашу первую картинку. Выдилите все (CTRL+A) затем скопируйте (CTRL+C).
t26_2.jpg 2. Откройте вторую картинку.
t26_3.jpg 3. Включите режим быстрой маски (Quick Mask) и нарисуйте градиент на Вашей картинке от черного к белому. Поскольку Вы в режиме Быстрой Маски, то белый цвет выглядит прозрачным, а черный красным. Чем краснее, тем прозрачнее будет это место на картинке
4. Вернитесь обратно в нормальный режим (Normal Mode) и Вы увидите прямоугольное выделение вокруг половины Вашей картинки. Теперь просто вставьте Вашу первую картинку в это выделение (EDIT...PASTE INTO). После этого Ваша первая картинка плавно сольется со второй.

Полная версия статьи здесь.

ИНТЕРПОЛЯЦИЯ ИЗОБРАЖЕНИЯ В DELPHI

Этот алгоритм увеличивает изображение в произвольное количество раз при помощи билинейной интерполяции. При создании нового изображения каждой его точке с целыми координатами (x,y) сопоставляется точка исходного изображения с дробными координатами (xo, yo), xo=x/dx, yo=y/dy (dx и dy – коэффициенты увеличения). Далее нужно провести поверхность через точки, лежащие вокруг (xo, yo). Цвет здесь рассматривается как третье измерение. На поверхности ищется точка с координатами (xo, yo) и ее цвет понимается за цвет точки (x,y) получаемого изображения.

Этот алгоритм хорошо работает при целых или больших коэффициентах увеличения. Но резкие границы размываются. Для уменьшения изображения этот алгоритм также не подходит.

Интерполяция изображения

procedure Interpolate(var bm: TBitMap; dx, dy: single);
var
bm1: TBitMap;
z1, z2: single;
k, k1, k2: single;
x1, y1: integer;
c: array [0..1, 0..1, 0..2] of byte;
res: array [0..2] of byte;
x, y: integer;
xp, yp: integer;
xo, yo: integer;
col: integer;
pix: TColor;
begin
bm1 := TBitMap.Create;
bm1.Width := round(bm.Width * dx);
bm1.Height := round(bm.Height * dy);
for y := 0 to bm1.Height - 1 do begin
for x := 0 to bm1.Width - 1 do begin
xo := trunc(x / dx);
yo := trunc(y / dy);
x1 := round(xo * dx);
y1 := round(yo * dy);

for yp := 0 to 1 do
for xp := 0 to 1 do begin
pix := bm.Canvas.Pixels[xo + xp, yo + yp];
c[xp, yp, 0] := GetRValue(pix);
c[xp, yp, 1] := GetGValue(pix);
c[xp, yp, 2] := GetBValue(pix);
end;

for col := 0 to 2 do begin
k1 := (c[1,0,col] - c[0,0,col]) / dx;
z1 := x * k1 + c[0,0,col] - x1 * k1;
k2 := (c[1,1,col] - c[0,1,col]) / dx;
z2 := x * k2 + c[0,1,col] - x1 * k2;
k := (z2 - z1) / dy;
res[col] := round(y * k + z1 - y1 * k);
end;
bm1.Canvas.Pixels[x,y] := RGB(res[0], res[1], res[2]);
end;
Form1.Caption := IntToStr(round(100 * y / bm1.Height)) + ′%′;
Application.ProcessMessages;
if Application.Terminated then Exit;
end;
bm := bm1;
end;

const
dx = 5.5;
dy = 5.5;

procedure TForm1.Button1Click(Sender: TObject);
const
w = 50;
h = 50;
var
bm: TBitMap;
can: TCanvas;
begin
bm := TBitMap.Create;
can := TCanvas.Create;
can.Handle := GetDC(0);
bm.Width := w;
bm.Height := h;
bm.Canvas.CopyRect(Bounds(0, 0, w, h), can, Bounds(0, 0, w, h));
ReleaseDC(0, can.Handle);
Interpolate(bm, dx, dy);
Form1.Canvas.Draw(0, 0, bm);
Form1.Caption := ′?x: ′? + FloatToStr(dx) +
′ y: ′ + FloatToStr(dy) +
′ width: ′ + IntToStr(w) +
′ height: ′ + IntToStr(h);
end;

procedure TForm1.Button2Click(Sender: TObject);
var
bm: TBitMap;
begin
if OpenDialog1.Execute then
bm.LoadFromFile(OpenDialog1.FileName);
Interpolate(bm, dx, dy);
Form1.Canvas.Draw(0, 0, bm);
Form1.Caption := ′?x: ′? + FloatToStr(dx) +
′ y: ′ + FloatToStr(dy) +
′ width: ′ + IntToStr(bm.Width) +
′ height: ′ + IntToStr(bm.Height);
end;

Полная версия статьи здесь.

ВОПРОС - ОТВЕТ

В данном разделе будут отвечены все ваши вопросы по поводу наших тем. Задавайте их по адресу admin@welikeit.ru. А сайт welikeit.ru вместе со своими сайтами-друзьями попытается ответит на эти вопросы. Это что-то вроде раздела F.A.Q. Мы ответим на вопросы по поводу: Flash, HTML, PHP, веб-дизайна, раскрутки сайтов, Photoshop, Delphi. Вопросы по остальным темам пока не смогут быть отвечены.

С уважением, ведущий рассылки Кочари Арнольд.

РЕКОМЕНДУЕМЫЕ СТАТЬИ ДЛЯ ЧТЕНИЯ

На этот раз к вашему вниманию разные статьи с различных разделов собрания статей о программировании и технологиях "We Like It".

Создание RPG игры на Flash Юзабилити в интернет
Технология Flash начинающим Баннеры и баннерные сети
FAQ по HTML чайникам GGI приложения на Delphi
Новое в PHP 5 Эффект старой фотографии
  ПИШИТЕ НАМ
Статьи и другая информация, размещенная в данной рассылке принадлежат их авторам. Перепечатка только с разрешением автора. Рассылочный журнал принадлежит сайту www.welikeit.ru.

Присылайте свои вопросы, пожелания, предложения, отзывы по адресу admin@welikeit.ru. Ждем!

Удачи!

Выпуск подготовил Кочари Арнольд
www.welikeit.ru  


Сайт www.welikeit.ru | Архив журнала "P-WEEK" | Ведущий рассылки

Собрание статей о технологиях и программировании "We Like It"
P-WEEK - Flash, Delphi, HTML, Pascal, PHP, C/C++, технологии, компьютеры

В избранное