|
|
Реклама: виды гвоздик, платья Allure Diagonal, способы похудеть
Возможно, Вам приходилось когда-то писать скрипты, где совершалось какое-то долгое и нудное действие. Ну например – грабился сайт или создавалось 10000 картинок с вотермарками. И вот ведь какое дело – совершенно непонятно, там вообще что-нибудь работает или все повисло? Особенно это тяжело, когда скрипт находится на стадии тестирования. Может быть он пошел по замкнутому кругу (ну скажем начал обрабатывать фотографии заново), а мы не в курсе?
Я сейчас дописывал паука, который просто ползает по одному и тому же сайту (наподобие того, который у гугла или яндекса, только гораздо скормнее). Понятно, мне тестировать его тяжело – а вдруг он по одним и тем же ссылкам полез? А я не знаю? Или еще что-нибудь этакое, залез, например, на внешний сайт по ошибке и по нему пошел? И я придумал два способа для управления и слежения за подобного рода скриптами.
Итак, мониторинг. У меня там все просто – паук знает ссылки, которые еще не обошел и количество страниц, которое уже обошел, две переменные.
Создаем функцию а-ля
function logit($msg){
$file = @fopen («log.txt», «w»);
@fwrite ($file, $msg);
@fclose ($file);
}
И в нашем «мега-цикле» вызываем logit ($var1.$var2); – все. Обе переменные записались в файл. А это значит, что я могу открыть его через браузер и лицезреть в реальном времени прогресс обхода (переменные var1 и var2 изменяются и записываются в файл). Жми F5, да радуйся.
Например, мой паучОк обошел мой же блог за 2 минуты и нашел 450 страниц (в Яше 400, в гугле 240) и я лицезрел меняющиеся цифры в такой вот строчке: «done: 450, fifo: 0, time: 130.87 sec» (это для примера, я не о пауках конкретно)
Дальше, управление.
Немного продолжаю свою мысль. Понятно, что когда скрипт «ушел» в работу, то мы уже можем не дергаться – никакие кнопки и прочие шаманства в браузере работать не будут (даже аякс, скрипт-то в «бесконечном» цикле).
А что, если использовать другой файл как шлюз для общения со скриптом? Ну например, скрипт во время выполнения записывает прогресс в вышеприведенный файл, а из другого периодически читает – что ему нужно делать. Если файл пустой, то скрипт спокойно выполняется. А если в файле появилась запись stop, например, то скрипт аварийно завершается (выход из цикла или вообще exit). Плюс к этому можно создать другой скрипт, скрипт-повелитель , при запуске которого основной скрипт (у меня – паук) будет останавливаться.
Я имею ввиду, вот запустил я crawler.php. Он там чего-то делает, я не знаю что. Я могу даже браузер закрыть, т.к. от этого процесс не завершится, а я уже останусь вообще без контроля. Но есть чудо скрипт stop.php, я запускаю его, он пишет в какой-то файл типа gate.txt слово «stop», а crawler.php этот файл периодически проверяет и если находит такое слово – прекращает работать.
Кстати, я раньше думал, что если нажать «стоп» в браузере – скрипт тоже остановится. Хрен, как бы не так. Он будет работать, пока не сделает все, что надо. А если он войдет в бесконечный цикл, то он не остановится. Так что достаточно запустить 50 таких скриптов и можно перезагружаться смело.
Такие вот идеи в 4.35 утра.
Комментариев (7)
Я давно хотел сделать сайт о рок-музыке и гитаре в целом. Вернее о гитаре и немного о рок-музыке. Я уже писал, что пытаясь выбрать CMS для этого сайта, столкнулся с некоторыми проблемами. В тот раз я выбрал Joomla. Но после написания того поста я все снес и поставил Drupal. Почему? Убедили читатели И уже давно хотелось в нем нормально разобраться. И, похоже, не зря.
Кстати, я его сделал. У меня теперь мега-портал: «Для Гитары» (индексируйся, радость моя, индексируйся!)
В этой статье я опишу как и что я сделал. Задача стояла такая: создать как можно быстрее гитарный портал, который будет содержать в себе материалы, отсортированные по рубрикам, блоги для пользователей и их (пользователей) регистрацию, опрос. Писать все это с нуля очень не хотелось и на это ушло бы неделя или две (т.к. я же еще и работаю). А с помощью Drupal’а получилось даже лучше.
В итоге вышла вот эта статья. Боюсь, что я не смогу объяснить тут все подробно. Но я объясню самое главное, без чего даже непонятно «как это все работает».
Для начала качаем и сам друпал. Сразу же качайте к нему русский перевод (Downloads->Translations, 7ая страница или 8ая). Архив с файлами перевода нужно разархивировать и залить в каталог с друпалом.
Установка очень простая и ее я описывать не буду. Как обычно – вводим данные для базы, имя админа и еще всякую ерунду, жмем 4 раза на «Далее» и все.
А вот дальше начинается самое интересное. То есть это для профи интересное, а для того, кто видит друпал в первый раз – ад кромешный. Я не буду описывать технические характеристики, возможности и прочую ерунду, а перейду сразу к практике.
Для начала нужно включить необходимые модули. Идем на Управление -> Конструкция -> Модули и включаем как минимум следующее: «Comment» (позволяет добавлять комментарии к материалам), «Database logging» (для всяческой безопасности), «Locale» (если вырубить, то все станет опять английским для новых юзеров), «Menu» (для настройки меню), «Path» (для красивых ссылок типа /hello.htm), «Poll» (опрос хотите?), «Profile» (чтобы спрашивать у пользователя всякие гадости при регистрации), «Search» (поиск по сайту), «Taxonomy» (для того, чтобы сделать клевую публикацию материалов). Это все стандартные модули и нужно только проставить галочки.
А вот модули, которых в стандартной установке нет. Найдите их на drupal.org и установите, очень пригодится. Привожу с описанием.
BUEditor – хороший редактор текстов, замена стандартному.
IMCE – позволяет загружать изображения на сервер прямо во время написания текста, что куда удобнее, чем загружать их руками по FTP и приводить ссылки самостоятельно.
Taxonomy Menu – выводит таксономию в боковое меню. Жизненно необходимо, если нет желания ковыряться в ссылках ручками (о таксономии вообще попозже).
Все, на орбиту вышли. Теперь нужно переходить на первую космическую. Без теории о том, как друпал работает все-таки не обойдусь (черт, а так лень было писать).
Попробую в силу скудных способностей объяснить, как организованы данные в друпале. Дело в том, что он очень сильно (в большую сторону) отличается от других CMS по гибкости, а благодаря этому охуенно путает того, кто пытается в нем разобраться. Знаний программирования он не требует, но мозгами шевелить придется.
Друпал как бы построен на абстракциях. Например есть абстрактный «материал», который может иметь много вполне определенных типов. Например, если бы этот блог был на друпале, то материалом являлся бы пост и имел бы какое-нибудь такое же название, типа «пост в блоге». В друпале материалом является вообще все – посты в блогах юзеров, заметки, страницы, опросы, что угодно. И все это идет в общую ленту. Например, не удивляйтесь, что создав опрос и припрепив его к боковой колонке он попадет и на главную страницу (по аналогии с блогом). Нужно просто отредактировать его и убрать галочку «Публиковать на главной».
Посмотреть типы материалов можно в Управление -> Содержание -> Типы материалов.
Имейте ввиду, когда Вы ставите какой-нибудь модуль, он запросто может самостоятельно создать новый тип материала (каков наглец!). Например, модуль «Polls» (опросы) создает тип материала «Опрос». Таким образом друпал понимает что чем является и может сортировать разные материалы, например для того, чтобы на главную выводить только последние записи в блогах пользователей и статьи.
(Я вообще сейчас объясняю то, во что сам въезжал долго. Если бы мне кто такое рассказал, я бы сэкономил кучу времени.)
Теперь о публикации материалов. Или другими словами – да как тут вообще статью-то в меню засунуть?! Когда я первый раз поставил друпал я не понял именно это, из-за чего сразу занес его в список «никогда-не-ставить-больше CMS».
Для классификации материалов, а заодно и организации меню, существует модуль таксономия (к производству таксичных отходов имеет прямое отношение, да-да!). Я долго пытался понять, что же мне пытаются сказать умные парни в умных статьях по описаниям этого модуля и самую близку аналогию, которую я смог привести это – теги в древовидном виде.
Сейчас попробую объяснить на примере. Создадим в Управление -> Содержание -> Таксономия словарь «Блюда», словарь нужно привязать к типу материала Заметка (это вообще основной тип материала в друпале), делается это там же, при создании. Перейдем в этот словаь и создадим там термины «Супы», «Вторые блюда», «Десерты».
А теперь создаем материал (Создать материал -> Заметка), предположим, о борще, и привяжем его к Супам (в поле «Блюда» впишите «Супы»). Привязка материала немного дебильная, но что делать. То есть получилось, что у нас эта статья имеет «тег» Супы, а он в свою очередь вложен в Блюда. Вот и создали мы чудо-меню. [для знающих друпал тут поясню: я могу и ошибаться, но у меня построено именно так и все работает]
Если то, что мы насоздавали в Таксономии не вывелось в меню, значит не активирован модуль Taxonomy Menu.
Кстати, другие наглые модули тоже могут использовать Таксономию «без разрешения», имейте ввиду.
Что получилось? Поставили друпал, написали статью, а это самое важное. Теперь дальше.
Чтобы вывести в разные стороны сайта разные влевые модули (типа опроса или последних зарегистрировавшихся), перейдите в Управление -> Конструация -> Блоки. Там все понятно, я думаю, без объяснений.
Иногда гости не могут видеть тот или иной раздел или статью или модуль. Чтобы это поправить, идите в Управление -> Управление пользователями -> Разрешения, и ставьте галки. Здесь друпал меня очень порадовал, обширные возможности для настройки.
Установить тему легко – качаете друпал-тему (только учтите, что обычно темы для 5ой версии не подходят для 6ой и т.п.), заливаете в themes и устаналиваете в настройках Управление ->Конструкция -> Темы оформления. Модули так же (см. выше).
В общем-то это вроде бы все, что нужно для начала. Дальше разберетесь сами. Пойду тоже поковыряюсь
Комментариев (31)
Тяжела и неказиста жизнь простого веб-программиста. Не в рифму, зато правда. Особенно сложно в плане проверки на защищенность сайта и другие «экстримальные» условия.
В подобных случаях очень помогает плагин FireBug, написанный для FireFox. Здесь я коротко опишу его функционал.
Читать полностью »
Комментариев (12)
Часто автору блога (мне, например) хочется задать какой-нибудь вопрос посетителям, ответ на который определил бы мои действия (например, нужно ли столько рубрик у меня на сайте). Но создавать для этого пост вроде как жирновато, а по-другому в блоге и спросить не выходит.
Появилась идея плагина: что-то вроде мини-форума. Например, над постами висят ссылки-вопросы, нажав на одну из них появляется окошко, где можно вписать свое мнение и отправить его автору.
UPD: Меня не так поняли 
Я имел ввиду не о блоге высказать мнение, а, например: “Народ, вот не знаю, может покрасить свою собаку в синий цвет? Давно хотел, но знакомые говорят, что красный сейчас популярнее. Подскажите!!11?
Комментариев (10)
Всю свою интернет-девелоперскую жизнь я писал собственные решения для всех случаев. Нужно голосование на сайт? Пишу. Нужен блок новостей? Пишу. Сайты тоже писал с нуля. Готовые движки я использовал только для сателлитов, при этом не заботясь качеством получающегося сайта вообще никак или для заказчиков, если они упорно не хотели делать сайт на моей разработке. Но недавно я решил сделать портал, а чтобы сэкономить время я решил поставить его на один какой-нибудь готовый двиг.
Считается, что готовые движки экономят время на разработку сайта. Так ли это на самом деле?
Читать полностью »
Комментариев (55)
|
|
Что здесь почитать?
1. Разработки.
1.1 Плагин "Я не робот"
1.2 Плагин "Код Adsense прямо в пост"
2. Заработай.
2.1 Блогун: 20$ в день
2.2 Уходим от налогов в Sape
2.3 Хватит думать, пора зарабатывать
3. Акции и конкурсы.
3.1 Ссылка за "Рабочий стол"
Показать весь список.
полный список в процессе наполнения ;) посмотрите чуть позже
-->
|