Index SiteMap Portfolio

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

- Вы кем работали?
- Я популизатор.
- А почему
Вас уволили?
- Не ту ж***опу лизнул
(с) непомнюкто.


Итак, нужно выбрать PHP и JavaScript фреймворки, а также визуальный редактор, без которых мало кто сможет отредактировать HTML страницу (не должны нормальные люди это уметь).

Читать далее »»

мар
14
Проблема такая. Точнее проблеммлять много.

1. Очень часто выдается сообщение об ошибке MySQL: MySQL server has gone away. Причем делается это на элементарных запросах и, к счастью, не часто. Не понятно как это ремонтировать. Подсказка в мануале MySQL не помогла.

2. Вообще звиздец, а не ошибка. Table './base/table' is marked as crashed and should be repaired. Обычно, такое получается через некоторое время после первого пункта. Туеву хучу форумов перелазил, а ответ везде один и тот же. Используйте REPAIR TABLE. Спасибо, так гораздо лучше :) Известно, как чинить, но не известно, как сделать, чтобы не ломалось. Если кто-то подскажет, то будет супер!

3. Еще ошибка Incorrect key file for './base/table' try to repair it. Спасибо. Спасибо...

В это время сайт, в общем-то, считается лежачим. И здесь задача победить все эти невзгоды. Запускал в кроне на интервал 5-10 минут проверку таблиц и их ремонт (рекорд: 4 дня без сбоев). Вроде как все нормально, но сайт все равно по несколько минут лежит. И мне это не нравится :)

Тогда возникла идея, модернизировать класс для работы с БД. Благо он очень примитивный. В нем имеется некий метод query(). Просто переписываем его.

Алгоритм такой:
1. Добавляем еще 1 параметр в метод для счета запросов, по умолчанию он равен 1.
2. Проверяем наличие ошибки в запросе при помощи mysql_error().
3. Если ошибка синтаксиса (бывает при разработке), то просто записываем ее.
4. Если сервер has gone away, то "спим" 5 секунд, опять коннектимся к базе и снова вызываем сами себя (рекуррентно). При этом увеличиваем счетчик запросов на 1. Чтобы смотреть сколько мы уже боремся с проблемой.
5. Если нужно ремонтировать таблицы, то делаем это, "спим" 1 секунду и снова вызываем сами себя.
6. Учитываем, что не нужно вечно стараться победить проблему, несколько раз не вышло - идем пинать себя или хостера и разбираться сами.


Итак, заготовка класса лежит здесь. Она лишь служит пояснением для алгоритма, в любом случае ее немного придется переделывать. Также вам понадобится функция для определения IP адреса. Я ее вкрутил в лог ошибок, на всякий случай. Функция определяет реальный IP адрес, если не используется анонимный прокси (тогда не определить). Ее явтор не я и, к сожалению не знаю кто.

Что в итоге получили? Ремонтируем сразу после поломки. Ремонтом занимается 1 посетитель, которому больше всех не повезло :). В качестве Д/З нужно(!) сделать самостоятельно проверку, чтобы запуск ремонта не осуществлялся несколько раз подряд, если это не необходимо. Например, сломалась таблица и 2 юзера зашли на сайт практически одновременно. Я сознательно убрал защиту с примера.

мар
6
Валидная RSS лентаТе, кто хочет создать свой rss поток новостей, статей или прочей нечисти, обязательно должен проверить свою ленту на валидность. Это можно сделать здесь. Я сделал специальный шаблон для rss потока, который полностью рабочий и валидный :)
Его можно взять себе и использовать на благо интернета, если сами не справились с заданием.
Вот рабочий пример, а вот и сам шаблон RSS ленты.

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

Все они перенаправляются на некоторый файл, который уже и перенаправляет на нужный адрес. Так я сделал, у меня все работает :) Вот пример скрипта для редиректов.

мар
1
Несколько примеров по работе с фреймворком mootools помогут разобраться с некоторыми особенностями и возможностями этой библиотеки. Однажды я вписывал все эти методы сразу в библиотеку, что было очень вредно, когда ее нужно было обновлять.

Однако, метод extend(), который был изучен совсем недавно, решил все проблемы. Для первого теста были выбраны интересные методы из фреймворка Prototype.

Я сделал тестовый пример. Сам фреймворк mootols в виде самой свежей версии (на 01.03.2008) с моими аддонами можно скачать здесь.

Рекомендую также использовать JavaScript компрессор, для сжатия больших JS файлов.

1 , 2 , 3 , 4 , 5, 6 , 7 , 8 , 9

Добавить в закладки на google.com Добавить в закладки на bobrdobr.ru Добавить в закладки на del.icio.us Добавить в закладки на technorati.com Добавить в закладки на linkstore.ru Добавить в закладки на rumarkz.ru Добавить в закладки на memori.ru Добавить в закладки на moemesto.ru


 Бесплатно

Читать мою ленту