Мониторинг Игровых Серверов

Подумал, подумал и решил сделать мониторинг игровых серверов (пока на ucoz). Впринципе я думаю, что получится.
Те люди, которые не знают, что такое мониторинг я вам расскажу:
Мониторинг — это статистика серверов (в моём случае игровых). Например есть сервер Counter-Strike 1.6. Чтобы серверу раскрутиться его нужно добавлять в каталоги и в мониторинги

Кто хочет сделать со мной- присоединяемся
Комментариев: 0

Первые впечатления от разработки под Андроидом — пишем handsfree

Совсем недавно обзавелся андрофоном (LG Optimus) и решил попробовать свои силы в написании софта под него. Почитав про устройство платформы сначала очень порадовался за ее простоту, удобство и логичность. Но на практике все оказалось далеко не так радужно…

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

На первый взгляд, приложение должно быть очень простым:
  1. В манифесте вешаем receiver на сообщения об изменении статуса линии (TelephonyManager.ACTION_PHONE_STATE_CHANGED) и следим за входящими звонками.
  2. При поступлении звонка проверяем, подключена ли гарнитура. Меня интересовала, прежде всего, bluetooth, но и проводную гарнитуру было бы хорошо отслеживать.
  3. Если гарнитура подключена, говорим телефону ответить на звонок.

С первым пунктом особых проблем не возникло. А вот остальные два оказались не такими тривиальными.

Ответ на звонок


Начну с третьего пункта. В Андроиде нет API для ответа на входящий звонок. Если в версиях 1.х еще можно было достучаться до каких-то недокументированных классов и методов, которые позволяли это, то в моем 2.2 все эти дыры надежно закрыли. Изрядно погуглив нашел-таки способ: изобразить нажатие кнопки на гарнитуре (Intent.ACTION_MEDIA_BUTTONKeyEvent.KEYCODE_HEADSETHOOK). Правда, тут есть свои тонкости. Событие это надо посылать через sendOrderedBroadcast (не sendBroadcast). Иначе оно попадет всем receiver-ам, а среди них может оказаться, например, аудиоплеер, который бодренько запустится, если найдет что играть. Интересно, что в эмуляторе плеер запускается даже при использовании ordered broadcast, хотя на телефоне все работает как надо. Еще одно отличие эмулятора от железа: в первом достаточно послать сообщение об отпускании кнопки (кстати, плеер запускается только по сообщению о нажатии). В телефоне нужно обязательно сгенерировать и нажатие, и отпускание. Говорят, в 1.х можно было докопаться до функции injectKeyEvent (или какой-то подобной) и это было бы правильнее. Но в 2.2 защиту этой функции починили и она недоступна.

Состояние гарнитуры


Теперь самое сложное — пункт 2. Проверить, подключена ли гарнитура. Проблема та же — в Андроиде нет готового API, позволяющего узнать это. И что еще интереснее, действия для проводной и беспроводной гарнитур будут заметно отличаться.

В принципе, для обеих гарнитур можно отслеживать сообщения о подключении/отключении, с чего я и начал. Для проводной это Intent.ACTION_HEADSET_PLUG (состояние гарнитуры передается как extra-параметр), для беспроводной — пара сообщений BluetoothDevice.ACTION_ACL_CONNECTED иBluetoothDevice.ACTION_ACL_DISCONNECTED.

Первое, что хочется сделать — зарегистрировать receiver-ы этих сообщений прямо в манифесте, чтобы ничего не пропустить. С беспроводной гарнитурой этот номер проходит, а вот ACTION_HEADSET_PLUGпочему-то рассылается с флагом FLAG_RECEIVER_REGISTERED_ONLY, то есть receiver-ы из манифеста его не получают (в документации про это ничего не сказано, так что очень похоже на ошибку). Надо их регистрировать в коде. А это значит, что придется запустить сервис, который программно зарегистрирует нужный receiver и будет оставаться все время запущеным. Тут, однако, тоже есть свои грабли: такой сервис может быть убит системой в любой момент (что и происходило у меня в процессе тестирования), в результате чего мы можем пропустить какие-то сообщения. Судя по всему, подобный подход использован в том единсвенном приложении из маркета, которое я упоминал в начале статьи — оно как раз не всегда вовремя определяло подключение гарнитуры. Приходилось запускать его руками.

Выход был найден. На помощь приходит тот факт, что сообщение ACTION_HEADSET_PLUG является sticky. То есть, последнее состояние гарнитуры сообщается всем вновь регистрируемым слушателям. Получается, состояние беспроводной гарнитуры можно проверить в любой момент, вызвав registerReceiver(null, headsetPlugFilter) и проверив вернувшийся Intent. Это радует. Сервис не нужен, пункт 2 для проводной гарнитуры реализован.

Переходим к беспроводной гарнитуре. Тут уже точно придется отслеживать сообщения о подключении/отключении — текущее состояние гарнитуры в произвольный момент проверить никак нельзя. Зато можно использовать манифест для регистрации receiver-а. Еще одно неудобство — текущее состояние надо где-то хранить, а использовать обычную переменную для этого нельзя, поскольку между звонками никакой код не выполняется. Я выбрал для этой цели скрытый параметр в настройках приложения. Скрытый в том смысле, что он не отображается в окне с настройками (это окно я не буду рассматривать — там все просто).

Call waiting


Чуть не забыл про еще один важный момент. Если человек уже разговаривает по телефону, то, скорее всего, ему не нужно, чтобы новые входящие звонки отвечались автоматически. Я сделал для этого отдельную опцию в настройках. Соответственно, прежде чем ответить, мы должны проверить, не было ли у нас активного разговора в момент звонка. И снова API не предоставляет для этого никаких средств. Все, что имеется — уже работающий receiver для звонков. Мы можем отслеживать изменение состояния телефона в offhook или idle. Но использовать для хранения этого состояния насройки приложения (как для состояния беспроводной гарнитуры) может оказаться уже довольно накладно. Поэтому снова нужен работающий сервис, который будет хранить состояние offhook в памяти. А чтобы уменьшить вероятность убивания сервиса системой в неподходящий момент, можно на время запустить его через startForeground. Когда звонки завершены, сервис можно приостановить, вызвав stopForeground.

Впечатления


В итоге задуманное реализовано, хотя для этого пришлось написать больше кода, чем планировалось, да и выглядит результат не очень опрятно. Честно говоря, мне до сих пор непонятно, почему в API нет готовых функций вроде isHeadsetConnected и answerCall, которые очень упростили бы жизнь.

Кстати, в моем исходном плане была еще опция объявлять звонящего используя TextToSpeech. Но оказалось, что перенаправить звук от TTS в беспроводную гарнитуру в момент звонка нельзя (если кто-то знает способ, поделитесь), а говорить в телефон, лежащий в кармане, смысла особого нет. Не стал заморачиваться — просто выкинул эту функцию целиком. Хотя, конечно, жаль немного.

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

SMS-сендер для Android: Исследуем недра операционной системы с помощью дебаггера и не только

Когда OS Android только появилась, многие, и я в том числе, мечтали, чтобы на нее как можно скорее портировали Qt. К сожалению, корпорация добра не оправдала наших надежд, сообщив, что SDK Андроида будет только на Java. Новость о покупке Trolltech корпорацией Nokia тоже не добавила оптимизма.

Спустя некоторое время к нам привалила нежданная радость — для Андроида вышел NDK для нативной разработки на C++, и, конечно же, нашлись люди, которые стали портировать Qt на Android. На данный момент порт уже более-менее юзабелен — работают (и почти не глючат) практически все модули. Ну что ж, посмотрим, какие возможности открывает нам этот порт.

Как оно работает?

Поначалу кажется, что данный порт — это очень большой костыль. Без Java все равно не обошлось — с помощью NDK нельзя создавать исполняемые файлы, можно только библиотеки .so. На Java, по сути, нужно написать всего одну строчку, которая загружает нашу библиотеку на Qt. Далее виртуальная машина Android запускает Java-приложение, которое, в свою очередь, грузит нашу либу.

Сборка QT

Весь процесс очень хорошо описан в Wiki проекта (см. ссылки), но он содержит несколько граблей, поэтому кое-какие пояснения нам дать все же придется. Небольшая оговорка — процесс описывается для Ubuntu 10.04, но на других дистрибутивах, в принципе, все должно происходить так же. А вот для того, чтобы провернуть это дело под виндой, тебе придется немного попрыгать с бубном (какая тонкая ирония, а?).

Итак, поехали. Создаем директорию для SDK. Пишем в консоль:

<code data-result="[object Object]" data-second_best="[object Object]"> wget android-lighthouse.googlecode.com/files/
qadk-1.x-2.x-rtti-exceptions.tar.lzma
tar xvfa qadk-1.x-2.x-rtti-exceptions.tar.lzma

Клонируем репозиторий Lighthouse:

<code data-result="[object Object]" data-second_best="[object Object]">gitclonegit://gitorious.org/~taipan/qt/androidlighthouse.git

Редактируем файл mkspecs/android-g++/qmake.conf. В нем нужно изменить NDK_ROOT и ANDROID_PLATFORM (у меня — /data/local/qt и android-5 соответственно). Эти параметры отвечают за расположение собранной библиотеки и ее версию. Также нужно отредактировать файл androidconfig.sh. Настоятельно рекомендую заменить shared на static (для статической сборки библиотеки и приложений). Все, конфигурируем (./androidconfig.sh) и собираем (make -j X, где X — количество ядер твоего процессора).

Все? Не тут-то было! Не знаю, как обстоят дела с другими дистрибутивами, но на Ubuntu «make» вылетал с ошибкой, говорящей о недоступности заголовочных файлов OpenGL. Чего только я не предпринимал… Поставил все, что можно было, но решение оказалось куда проще — надо было просто переустановить имеющиеся в системе заголовочные файлы OpenGL. После этого можно повторять команду make -j X и идти… нет, не пить пиво, а курить мануалы по разработке под Android — информация лишней не бывает никогда, а собираться оно будет долго .

Создание приложения

Запускай Qt Creator, создавай новое GUI-приложение. В нем (вернее, в файле .pro) нам нужно будет изменить несколько строчек. Они должны выглядеть так:

TEMPLATE = lib
CONFIG += dll

В настройках Qt Creator нужно также указать путь до нашего (андроидовского) qmake — у меня это /data/local/qt/bin/qmake. Вообще, я бы посоветовал сначала дебажить приложение как десктопное и только потом изменять параметры сборки.

Кстати, я ведь еще не говорил, что за приложение мы будем писать? Это будет приложение для отправки СМС на номера самых различных операторов. Это возможно благодаря сервису smste.ru, который мы и будем использовать.

Не буду вдаваться в подробности сниффинга, скажу только, что я использую для этих целей Wireshark. Разберем алгоритм отправки сообщения:

  1. Делаем GET рута — главной страницы сайта, выдираем оттуда нужные нам значения input’ов (те, которые hidden), а заодно и кукисы.
  2. Запрашиваем капчу по номеру телефона и показываем ее пользователю.
  3. Отправляем POST-запрос с сообщением.

Для отправки HTTP-запросов в Qt существует класс QHttp. Кстати, не забудь подключить модуль QtNetwork (QT += network) в файле проекта!

Набросай форму (мою ты можешь увидеть на скриншоте) и приступай к кодингу. От объекта http класса QHtpp нам требуются только два сигнала — done() и readyRead(). Сразу при создании главного виджета отправим GET-запрос главной страницы:

<code data-result="[object Object]" data-second_best="[object Object]"> http.setHost(«smste.ru»);
http.get("/";

Сигнал done(), по сути, и не используется — по нему можно будет только опознать ошибку сетевого уровня (например, отключение Wi-Fi). Рассмотрим некоторые части слота onHttpReadyRead(const QHttpResponseHeader &resp):

<code data-result="[object Object]" data-second_best="[object Object]"> QString str(http.readAll());
qint32 index=str.indexOf(«value=\»code"+7;
if ( index != 6 )
codeMod = str.mid(index,
str.indexOf("\" />", index) — index);

Здесь мы копируем «спрятанную» (hidden) переменную codeMod из исходника страницы. Идем дальше:

<code data-result="[object Object]" data-second_best="[object Object]"> QString cookieStr;
for ( qint8 i = 0;
i < resp.values().count(); i++ )
{
if ( resp.values().at(i).first ==
«Set-Cookie» )
cookieStr.append(
resp.values().at(i).second+'\n');
}
cookies = QNetworkCookie::parseCookies(
cookieStr.toAscii());

Ну, а в этом куске кода, как ты, наверное, догадался, мы парсим печеньки. cookies — это QList из QnetworkCookie.

<code data-result="[object Object]" data-second_best="[object Object]"> qint32 index =
str.indexOf("/pix/"+ 12;
image = str.mid(
index,str.indexOf(".jpg"— index
);
QHttpRequestHeader header = createHeader(
«GET»,QString("/pix/%1.jpg".arg(image)
);
http.request(header);

Здесь копируется адрес капчи (запрос адреса я покажу чуть позже) и посылается запрос этого самого JPEG’а. А вот так он сохраняется:

<code data-result="[object Object]" data-second_best="[object Object]"> if ( resp.value(«Content-Type») == «image/jpeg») {
ui->captchaLb->setPixmap(QPixmap::
fromImage(QImage::fromData(
http.readAll())));
return;
}

Так, с этим слотом разобрались. Капчу нужно запрашивать, как только пользователь введет номер телефона, то есть, когда закончится редактирование текста ui->numberLE. Для этого есть специальный слот:

<code data-result="[object Object]" data-second_best="[object Object]"> void MainWidget::on_numberLE_editingFinished()
{
if ( ui->numberLE->text().length() != 11 )
return;
QHttpRequestHeader header = createHeader(
«GET»,
QString("/netxml.php?number=%1&rnd=94728".
arg(ui->numberLE->text()));
http.request(header);
}

Функцию createHeader() смотри на врезке — она создает хедер HTTP-запроса (вообще, можно и проще, но нам надо отправлять еще и куки). Остался последний слот — нажатие кнопки «Отправить», и он предельно прост:

<code data-result="[object Object]" data-second_best="[object Object]"> QHttpRequestHeader header = createHeader(«POST»,
"/";
header.addValue("", QString(«number=%1&
message=%2&sign=ax-soft.ru&event=%3&
codemod=%4&%5=%6»).arg(ui->numberLE->
text()).arg(ui->textPTE->toPlainText()).
arg(image).arg(codeMod).arg(codeMod).arg(
ui->captchaLE->text()));
qDebug() << header.toString();
http.request(header);

Вот и все! Делай Build All, собирай .apk-пакет .

Создание виртуальной машины

Для тестирования приложения нам нужно создать виртуальную машину. Кстати, надеюсь, у тебя установлена Java Runtime Environment?

Если нет, то поставь, вещь нужная. Кроме того, для создания .apkпакетов понадобится ant. Ставится он легко — sudo apt-get install ant. Теперь переходи в сабдиректорию tools в Android SDK и вводи ./ android. Запустится менеджер настроек и виртуальных машин.

Сначала скачай нужные API (разобраться нетрудно, для этого примера нужна версия 8), далее переходи на вкладку Virtual Devices, жми New. В Name — любое имя, Target — Android 2.2, Skin — какой хочешь (я выбрал WVGA800), и нажимай Create AVD.

Затем выбирай машину и жми Start, Launch. Все, будем ждать. На моем нетбуке оно запускалось около десяти минут, на десктопе — 1,5-2 минуты. Работает эмулятор так же медленно, как и запускается (ибо эмулирует ARM с помощью QEMU). С одной стороны это плохо, что все тормозит, а с другой стороны — мы получаем достоверные на 100% результаты. Как только появится рабочий стол Android, виртуальную машину можно будет оставить в покое.

Создание тестового проекта

Переходим в директорию tools Android SDK (в консоли). Открываем документацию, начинаем вкуривать. Вводим: ./android create project. Опс, ошибочка! Смотрим, чего от нас хотят. Ага, мы не указали параметры нашего будущего проекта, а точнее: цель. Нужна версия API, путь до проекта, его имя, имя Activity и имя пространства имен для приложения. У меня получилось вот так:

<code data-result="[object Object]" data-second_best="[object Object]"> ./android create project --target 8 --name hello --path ./TestPro --activity helloActivity --package com.example.hello

Делаем ls… ага, вот она — директория TestPro. Входим в нее, и опять вызываем ls. Далее в директории libs нужно создать сабдиректорию armeabi. В нее мы копируем нашу собранную Qt’шную либу (.so).

В каталог src/ надо скопировать все содержимое androidlighthouse/ src/android/java/com, чтобы получилось src/com/nokia/ qt. После этого идем в src/com/example/hello/ и редактируем там главный Activity — helloActivity.java. Удаляем onCreate, добавляем функцию:

<code data-result="[object Object]" data-second_best="[object Object]">public helloActivity()
{
setApplication(«Hello»);
}

Здесь Hello — имя приложения. Следовательно, наша библиотека .so должна называться libHello.so. Ну и, наконец, идем в консоли в корень проекта и командуем ant install. Ждем (долго, поскольку либа статическая и весит много. У меня, например — 12.5 Мб). После того, как в консоли появится заветное SUCCESSFUL, можно идти в главное меню Андроида и запускать оттуда свое приложение.

Заключение

Когда-то (то ли в 2007, то ли в 2008) у меня на телефоне (Motorola A1200e, один из первых телефонов с Linux, и, кстати, с гуем, написанным на Qt 2) появилась QTopia, также известная как Qt Embedded — встраиваемая ОС от Trolltech на базе Linux Kernel 2.6 с оболочкой на Qt 4, заброшенная после покупки троллей нокией.

Появилась она благодаря труженикам с форума motofan, сумевшим портировать ее на ядро 2.4 (другого у A1200 не было и не будет, поэтому не будет и Андроида). Так вот, когда я ее поставил, был удивлен простотой портирования приложений с десктопа на телефон — иногда требовалось просто пересобрать его кросскомпилятором, и все! К сожалению, новомодного Qt 4.5 платформа не получила (и зря — на мой взгляд, она была не хуже, чем Maemo). Теперь такой метод портирования возможен и на Android, а ведь за ним будущее. И, кстати, вовсю идет портирование Qt Mobility, классного фреймворка для телефонов Nokia. Жаль, пока что портированием занимается только один, пусть и очень крутой человек (кстати, помочь не же лаешь?). В общем, нам осталось дождаться портирования Qt на iOS (там, к сожалению, все далеко не так радужно), и тогда можно будет смело заявлять, что лозунг Qt Software не высосан из пальца.

THANKS TO

Огромное спасибо румыну taipanromania (автор порта) и marflon (раньше, кстати, писал в ][) за помощь с созданием .apk, ну и, традиционно, группе И-3-1 (Прикладная Математика) МГТУ «Станкин».

Создание HTTP-заголовка

<code data-result="[object Object]" data-second_best="[object Object]">QHttpRequestHeader MainWidget::createHeader(
const QString &method,
const QString &path
)
{
QHttpRequestHeader header(method, path);
header.addValue(«Host», «smste.ru»);
header.addValue(«Connection», «keep-alive»);
header.addValue(«User-Agent», «Mozilla/5.0»);
header.addValue(«Referer», «smste.ru»);
header.addValue(«Accept», "*/*";
QString cookie;
for ( qint8 i = 0; i < cookies.length(); i++ )
cookie += ( cookies.at(i).toRawForm(
QNetworkCookie::NameAndValueOnly) + "; ";
header.addValue(«Cookie», cookie);
return header;
}

Links

Комментариев: 0

Всем добрый день!

Комментариев: 0

Итоговая новость [26.02.2011]

Вот я решил писать каждый день «итоговую новость» и наверно в честь этого сделаю новый раздел (только завтра))). Сегодня я долго и упорно занимался англ.языком. Через 3 месяца у нас экзамен и кароче будет очень жестоко, если я не сдам))). Сегодня ко мне приходила средняя родная сестра. Мы с ней бегали и бесились по квартире)). Сегодня вот начал читать php-программирование (html чуть изучена). Учиться ваще неохото ибо охото посидеть за компом на mypage.
Завтра я зайду только к 13:00 т.к надо делать уроки))))))))). Ну всё, я пошёл спать. Всем спокойной ночи!
Комментариев: 2

Интервью с Beautiful

Сегодня у нас «в гостях» незаменимый и опытный дизайнер портала — Beautiful Виталий: Здравствуйте! Я с портала diz-cs. Можно взять у вас интервью?
Beautiful: Здравствуйте, можно
Виталий: По традиции расскажите о себе. Чем занимаетесь, сколько вам лет, имя и т.д
Beautiful: Занимаюсь футболом, 15 лет, зовут Артём, живу в Москве.
Виталий: Вы професиональный футболист? Кто вы по ампуле?
Beautiful: Нет до профессионала мне очень далеко а так я центральный полузащитник
Виталий: Вам легко даётся этот вид спорта? Хороший у вас тренер?
Beautiful: Тренер очень «добрый» :D. Ну в первые недели было очень трудно, болели ноги, руки короче всё, ну а потом всё стало даваться легче)
Виталий: Почему вы решили пойти на футбол?
Beautiful: Ну так получилось, пробовал другие виды спорта но понравился только футбол
Виталий: Теперь перейдём к diz-cs. Как вы добились должности «Дизайнера»?
Beautiful: Ну было трудно, сначала спросил у Патрика есть ли у меня шансы он ответил что есть, но надо подучиться, ну гдето через неделю он меня взял)))
Виталий: А как вы попали на этот сайт?
Beautiful: Ооо это долгая история, однажды мой знакомый попросил поставить ему дизайн на сайт и кинул ссылку на ДС. Ну потом я просто читал сообщения, ну а потом купил ВИП и начал сидеть на сайте))
Виталий: Понятно. Есть ли у вас на ДС друзья и враги?
Beautiful: Ну друзей очень много перечислять не буду (очень долго) ну и враги конечно тоже есть, но не так много…
Виталий: Это хорошо. Если бы вам подарили ДС, то чтобы вы на нём изменили?
Beautiful: Э-эх… Я бы сменил дизайн… Ну и всё, остальное меня устраивает
Виталий: Понятно теперь о веб-дизайне.
Сколько времени вы работаете с PhotoShop и веб-дизайном? Думали ли вы бросать?
Beautiful: В пс я около 1 года. Бросить думал пару раз))
Виталий: Хорошо, что не бросили. Как вы думаете: у каждого получится стать дизайнером, или к этому нужен прирождённый талант?
Beautiful: Мне кажется что каждый если захочет станет дизайнером, но и талант не помешает
Виталий: Понятно. Я заметил, что на портале много людей, кто играет в couner-strike и другие игры. А вы играете в компьютерные игры?
Beautiful: Играю но редко, иногда в CS, иногда в Call Of Duty, ну это по настроению
Виталий: Хорошо. Чем вам запомнился старый новый год?
Beautiful: Ну вообщем ничем, был год как год ничего особенного
Виталий: Что вы пожелаете всем посетителям ДС?
Beautiful: Во-первых, удачи в новом году, Во-вторых, поменьше банов… ну и всё ))
Виталий: Желаю вам в новом году счастья, терпенья, здоровья, удачи во всём и самое главное — выполнять красиво и качественно нелёгкую работу дизайнера.
Beautiful: Спасибо огромное и вам тогоже
Комментариев: 0

Интервью с NooDle

Здравствуйте! Сегодня мы берём интервью у VIP-а — NooDle.
Обозначения:
Виталий — я (Anime_Fun)
Sacred… — NooDle

 

  • Виталий: Здравствуйте, я журналист diz-cs. Можно взять у вас интервью?
    Sacred....: Здравствуйте! Конечно можно.
  • Виталий: Для начала расскажите о себе (чем увлекаетесь, имя, возраст, откуда вы и т.д?)
    Sacred....: Меня зовут Медет я из Казахстана.
    Sacred....: Мне 15 лет увлекаюсь футболом.
  • Виталий: В каком городе вы живёте?
    Sacred....: Я из Атырау.
  • Виталий: Расскажи о своей стране и городе. Какие достопримечательности вам понравились?
    Sacred....: Живу я прекрасном городе мне он нравится ведь кому не нравится свой город Столица нашей страны Астана это очень красивый город там есть много достопримечательностей одним из которых является Байтерек
  • Виталий: Вы сказалы, что увлекаетесь футболом. Вы профессионально в него играете?
    Sacred....: Нет не профисионально, но играю каждый день с друзьями, так как мне это очень нравится.
    Sacred....: Мы играем даже и зимой на футбольном поле вот полчаса назад пришел из футбола.
  • Виталий: Вы хотели бы попасть в «большой футбол»?
    Sacred....: Да такое желание есть.
  • Виталий: Теперь поговорим о сети, а именно о diz-cs. Как вы попали на этот портал и сколько вы на нём сидите?
    Sacred....: я люблю играть в cs и однажды друг дал мне ip и сказал давай тут поиграем я зашел на сервер и когда играл увидел ссылку сайта diz-cs.ru тогда это меня заинтересовало и я зашел на сайт потом я зарегался на нем и скачивал файлы затем создал свой сайт и начал заказывать графику на сайте на этом сайте я уже наверно не помню но кажется 7-8 месяцов
  • Виталий: Какие ваши планы на сайте diz-cs?
    Sacred....: На сайте я выполняю графику хотел бы стать дизайнером
  • Виталий: Есть ли у вас на сайте друзья\враги?
    Sacred....: Друзья есть D1Mko0, kinten, OLD, Алик и т.д ну врагов на сайте нету
  • Виталий: Это хорошо. Что вы хотели бы видеть на портале?
    Sacred....: Портал в общем мне нравится но только бы файлы нормальные заливали бы а то половина не рабочих а так все отлично
  • Виталий: Теперь о интернете. У вас есть свой проэкт? И планируете ли вы его делать?
    Sacred....: Да у меня есть свой новый проект ucoz-w.3dn.ru я его недавно создал и собираюсь продвигать его дальше
  • Виталий: У вас были проблемы с созданием?
    Sacred....: Проблем с созданием не было.
  • Виталий: Чем вам запомнился старый новый год?
    Sacred....: Старый год был отличным я достиг многих успехов в жизни и на сайте так же хорошо закончил 2 четверти в школе так же было еще много хороших моментов но все не описать
  • Виталий: И наконец. Вам понравилось интервью?
    Sacred....: Да хорошее интервью и вопросы понравились.
  • Виталий: Желаю вам в новом году продвинуть ваш сайт и стать дизайнером на ДС. До скорого!
    Sacred....: Спс я тебе тоже желаю успехов на ДС и стань хорошим журналистом.
  • Комментариев: 0

    Интервью с ◄[FenDeR]►

    Добрый день пользователи diz-cs! Сегодня я взял интервью у постоянного пользователя портала — ◄[FenDeR]►. Надеюсь вам понравится. Извините, что не оформлено, ведь у пользователей мало возмжностей.
    Обозначения
    Виталий — Anime_Fun (я)
    MedveD =# — ◄[FenDeR]►

    Виталий: Здравствуйте! Я посетитель сайта diz-cs.ru! У вас найдётся время для интервью?
    MedveD =#: Здравствуйте! Да конечно!
    Виталий: Для начала расскажите о себе (ваши увлечения и т.д)
    MedveD =#: Зовут меня Коля, мне 14 лет, учусь в школе, в свободное время сижу за компютером, и весной играю в футбол!
    Виталий: Теперь перейдём к интернету и diz-cs. Как вы попали на diz-cs?
    MedveD =#: Искал шаблоны для uCoz, и нашел diz-cs и увидел что сайт класный, люди адекваты и остался на нем!
    Виталий: Что вам понравилось на портале? Есть у вас на ДС друзья и враги?
    MedveD =#: Мне на портале понравиля шаблон и форум, что был активный, друзья у меня на ДС есть много, например diSol он очень мне помогает! А враги у меня есть 2 Coca-Cola и Sanek_Killer!
    Виталий: Чего ты бы хотел добиться на ДС?
    MedveD =#: Раньше хотел добиться постояного и я его добился! Насчет модератора я не смогу стать потому что есть более активные и лучше за меня!
    Виталий: Какие сайты ты ещё посещаешь кроме ДС?
    MedveD =#: На данный момент посещаю world-rip, я там рипер, и свой сайт продвигаю!
    А насчет других раскрученный сайтов как ехтм, мс и синнерс там не сижу! потомучто есть более достойный и класный сайт Diz-Cs!
    Виталий: А почему ты выбрал такой ник: ◄[FenDeR]►
    MedveD =#: Смотрел один сериал и одного парня фендера называли, а так на других сайтах я под ником MedveD, просто я потом сменил ник
    Виталий: Ещё один вопрос: тебе понравился этот новый год? И чем запомнился старый?
    MedveD =#: Да новый год мне очень понравился! А старый запомнился счастьем и радости!
    Виталий: Хорошо. Что бы ты пожелал посетителям diz-cs?
    MedveD =#: Я желаю всем посетителям diz-cs, чтобы сбылась их мечта! и побольше плюсов и поменьше замечаний
    Виталий: С новым годом! Желаю в этом году побед, успехов во всём и большой репутации и уважения на diz-cs. До скорого
    MedveD =#: Спасибо вам того же!!! Досвидание!!!
    Комментариев: 0

    Интервью с Ra[Z]oR

    Дорогие читатели! Сегодня я взял интервью у дизайнера — Ra[Z]oR!
    Для начала небольшой блиц-опрос:

    Vrn?Oo: Любимый цвет?
    Ra[Z]oR<: светло-зелёный
    Vrn?Oo: Любимый вид спорта…
    Ra[Z]oR<: Хоккей
    Vrn?Oo: Самый лучший сайт…
    Ra[Z]oR<: Diz-cs.com

    Интервью:

    Vrn?Oo: Здравствуйте я журналист сайта diz-cs. Можно взять у вас интервью?
    Ra[Z]oR<: Здравствуйте да можно
    Vrn?Oo: Сначало расскажите о себе (чем занимаетесь, увлекаетесь).
    Ra[Z]oR<: Занимаюсь хоккеем уже 11 лет, а так сижу в интернете, делаю графику
    Vrn?Oo: Вы спортсмен? Есть награды?
    Ra[Z]oR<: да спортсмен. ну есть пара наград с турниров в москве
    Vrn?Oo: В какой вы ампуле стоите?
    Ra[Z]oR<: по разному в основном нападающий но бывает если проигрываем тренер ставит в нападение а так сам по себе защитник.
    Vrn?Oo: Как спортсмен скажите мне: любой может добиться успехов в спорте? Что для этого нужно
    Ra[Z]oR<: да любой, но нужно захотеть этого. Ходить каждый день как я на каток, тренировки, не лениться Ну вобщем уделять всё своё время спорту ну я ещё немножко компьютеру уделяю
    Vrn?Oo: Давай перейдём к дизайну. Как вы добились иконку дизайнера и вообще сколько вы уже занимаетесь веб-дизайном?
    Ra[Z]oR<: ну я усердно выполнял заказы каждые 5 минут листал раздел заказы где-то 2-3 дня я так делал. Потом захожу на сайт и я уже Дизайнер. Ну начал заниматься фотошопом где-то 7 месяцев назад ну полгода вобщем.
    Vrn?Oo: У вас всё получалось или были какие-то трудности?
    Ra[Z]oR<: трудностей было много раньше у всех просил показать уроки всякие даже сидел ночами и смотрел уроки у меня был в друзьях один дизайнер он мне и показывал уроки всякие.
    Vrn?Oo: Удаётся вам совмещать спорт и работу на ДС?
    Ra[Z]oR<: да если что с телефона захожу. А если уезжаю на долго на турнир то отписываюсь
    Vrn?Oo: Теперь поговорим о DC. Как вы попали на портал?
    Ra[Z]oR<: ну ещё давно я сюда попал и хотел скачать карту для кс после я зарегистрировался скачал и где-то полгода незахоил потом у меня появлися опыт в фотошпое и т.д. захотел стать здесь персоналом меня отсюда раз 5-10 выгоняли и всегда давали бан, но теперь я понял что DS самый лучший и знаменитый портал на сегодня.
    Vrn?Oo: Как ты относишься к другим дизайнерам и ко всему персоналу?
    Ra[Z]oR<: Все дизайнеры здесь Отличные. И остальной персонал тоже.
    Vrn?Oo: Есть ли у тебя на портале друзья\враги?
    Ra[Z]oR<: ну мои наверно лучшие друзья это Mizer, ToyLeT^, -Somalka, Zoider, Amka, IIatpuk и остальные дизайнеры, а врагов нету
    Vrn?Oo: Если бы тебе дали админку на ДС, то чтобы ты изменил?
    Ra[Z]oR<: ну даже незнаю. Наверное ничего оставил бы всё как есть хотя можно бы было поставить другой шаблон.
    Vrn?Oo: Теперь «отвлечёмся». Какой сайт вы считаете самым успешным и лучшим?
    Ra[Z]oR<: Diz-cs.com для меня DS
    Vrn?Oo: У вас есть свой проэкт в интернете?
    Ra[Z]oR<: нету, но собирался создать с друзьями дизайн-студию, но это пока что ещё задумка
    Vrn?Oo: Что бы вы пожелали всем начинающим дизайнерам и юзерам портала?
    Ra[Z]oR<: Успехов и удачи в фотошопе. Возможно из них получатся талантливые дизайнеры.
    Vrn?Oo: Вы очень хорошо отвечали на вопросы! Желаю вам успехов и продвижения!
    Ra[Z]oR<: Спасибо.
    Ra[Z]oR<: Вам тоже
    Комментариев: 0

    Поисковая оптимизация

    Поисковая оптимизация сайта — что это такое?

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

    Возможный вариант выхода из данной ситуации – реклама сайта в сети Интернет, а именно поисковая оптимизация сайта. Да, ее можно отнести к интернет-рекламе, хотя и к пассивной.

    Что такое «Поисковая оптимизация сайта» и зачем Вам это нужно?

    Поисковая оптимизация сайта – это последовательность действий, приводящая к тому, что сайт становится «виден» в поисковых системах: ссылки на страницы сайта находятся на первой странице результатов поиска по различным поисковым запросам, в идеале – на 1-3 месте.
    Поисковая оптимизация — каковы ее цели?

    Какая выгода от первых мест в результатах поиска?

    Увеличивается число посетителей сайта, причем посетителей из Вашей целевой аудитории. Это является особо актуальным, если сайт не имеет большого количества постоянных посетителей, что характерно практически для всех корпоративных сайтов. По разным статистическим данным от 50 до 80% посетителей сайта могут составлять, пришедшие из поисковых систем.
    Поисковая оптимизация сайта — основное правило

    К чему необходимо стремиться?

    Каждая страница сайта оптимизируется («направляется») на один поисковый запрос с таким расчетом, чтобы по этому запросу в поисковой системе страница Вашего сайта появлялась в начале списка результатов поиска. Для каждой поисковой машины (Google, Yandex, Rambler, Yahoo и т.д.) существуют правила наполнения сайта контентом, соблюдение которых поможет приблизиться к цели. Надо заметить, что со временем правила поисковой оптимизации сайтов для различных поисковиков изменяются. О причинах изменения правил продвижения сайта вверх по результатам поиска здесь мы говорить пока не будем.
    Семантическое ядро запросов и поисковая оптимизация

    С чего начинается поисковая оптимизация?

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

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

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

    Считается хорошим тоном соблюдать «правило трех кликов», т.е. посетитель должен иметь возможность найти интересующую его страницу не более чем за три перехода по ссылкам внутри Вашего сайта. Желательно не допускать существования разделов сайта более чем с третьим уровнем вложенности, так как некоторые поисковые машины, индексирующие сайт, не пойдут по дереву сайта глубже третьего уровня. Правда наличие автоматически генерируемой карты сайта — страницы, на которой находятся ссылки на все страницы сайта, существенно снижает это ограничение. Особенно эффективно применение для этих целей sitemap.xml, который теперь поддерживается всеми важными поисковыми системами.

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

    Так каковы же правила оптимизации сайта?

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

    Ключевое слово (словосочетание) должно присутствовать в начале заголовка страницы;
    Ключевое слово должно быть использовано при составлении описания страницы и списка ключевых слов страницы;
    Частота употребления в тексте страницы ключевого слова не должна быть более 5-10% от общего количества слов;
    По возможности ключевое слово должно присутствовать в заголовках на странице и в тексте ссылок, должно использоваться выделение жирным или подчеркивание, ключевое слово должно употребляться в различных спряжениях.
    Роль индекса цитируемости в продвижении сайта

    Необходимо постоянно стремиться увеличивать индекс цитируемости сайта за счет увеличения количества ссылок, ведущих на сайт. Дело в том, что поисковые системы Яндекс и Google учитывают ссылки, ведущие на Ваш сайт с других сайтов, что, в свою очередь, повышает позиции сайта в результатах поиска. Также сайт может быть найден по ссылке в том случае, когда в текст ссылки содержит поисковое слово или словосочетание. Чем ссылающийся сайт ближе к Вашему сайту по тематике, тем больший вес дает поисковая система такой ссылке. Помимо размещения ссылок на сайтах партнеров и друзей рекомендуется регистрировать сайт в каталогах, особенно в тематических. Из тематических каталогов ежедневно может приходить некоторое количество посетителей, а обычные каталоги порой размещают прямую ссылку на Ваш сайт, увеличивая тем самым индекс цитируемости.
    Сроки проведения поисковой оптимизации

    Вам необходимо набраться терпения. Процесс поисковой оптимизации сайта достаточно долговременный – результаты могут начать проявляться только через 2-4 месяца после начала работ. Никакая «быстрая» и «дешевая» раскрутка сайта не даст постоянного и долговременного результата, а может только понизить позиции сайта в поисковых системах (если администрация поисковой системы обнаружит, что при продвижении сайта были использованы «черные» методы раскрутки). Хорошее правило оптимизации сайта — торопитесь медленно.
    Комментариев: 0
    Страницы: 1 2 3
    vitminakov
    vitminakov
    Было на сайте никогда
    22 года (21.11.1994)
    icq: 923695
    Читателей: 18 Опыт: 0 Карма: 1
    Я в клубах
    Любители книг Пользователь клуба
    все 16 Мои друзья