# less /var/log/messages | grep "real memory"
Читать далее
Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10делается это очень просто:
$isiPad = (bool) strpos($_SERVER['HTTP_USER_AGENT'],'iPad');
RewriteCond %{HTTP_USER_AGENT} ^.*iPad.*$
RewriteRule ^(.*)$ http://ipad.yourdomain.com [R=301]
Сейчас занимаюсь разработкой одного интересного проекта. Там была поставлена задача сделать горизонтальное масштабирование БД. Структура проекта такова, что в нем будет много-много сайтов. Тоесть, шардить придется по-проекту. В результате, будет создано очень много таблиц. Напрашивается вопрос "какой максимальное количество таблиц и записей в MySQL?". Пришел к выводу, что кол-во таблиц и количество записей не лимитируются. Кол-во таблиц myisam зависит от ограничения ОС в размещении нужного количества файлов (кол-во таблиц * 3) и от объема несущих дисков.
Для InnoDB - это ограничение на размер одного файла, но можно создавать сколько угодно файдов для хранения. Объем ограничивается размером дисков.
Количество записей в одной таблице ограничивается объемом несущих дисков для любого типа таблиц. Для InnoDB можно разбивать базу и таблица будет занимать место в нескольких базах. В MyIsam можно разбивать таблицу на несколько и пользоваться таблицей merge для просмотра всей таблицы. Размер одной таблицы ограничивается максимаьным размером файла в ОС.
Несколько ссылок о масштабировании БД:
http://www.jurriaanpersyn.com/archives/2009/02/12/database-sharding-at-netlog-with-mysql-and-php/
http://www.ibm.com/developerworks/ru/library/os-mysql-postgresql/04/
http://habrahabr.ru/blogs/mysql/87147/
$start1=gettimeofday();
for($i = 0; $i < 10000; $i++)
{
// do nothing
}
$end1 = gettimeofday();
$totaltime1 = (float)($end1['sec'] - $start1['sec']) + ((float)($end1['usec'] - $start1['usec'])/1000000);
echo "$totaltime1\n";
Несколько недель назад у меня появилась задача сделать архив новостей для Drupal 6.x. Базой я выбрал модуль Archive. Продукт неплохой, но не совсем, то что мне нужно было. В результате, я сделал свой модуль, более простой и с AJAX (по требованию заказчика). Но сейчас не об этом.
При работе с Archive, у меня появилась такая проблема: на интернет-хосте пропала функция cal_days_in_month(), хотя на localhost'e было все ок.
Что бы функция заработала, нужно ее написать, правильно? :)
1. Открываем archive/archive.module
2. Вставляем функцию:
// the entire month into the block.
$prev_month = $month==1?12:$month-1;
$prev_year = $month==1?$year-1:$year;
+ //some old php versions don't have cal_days_in_month(), this code accounts for that
+ if(!function_exists('cal_days_in_month')){
+ function cal_days_in_month($calendar,$month, $year)
+ {
+ // $calendar just gets ignored, assume gregorian
+ // calculate number of days in a month
+ return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
+ }
+ }
$num_days_prev = cal_days_in_month(CAL_GREGORIAN, $month-1, $year);
$next_month = $month==12?1:$month+1;
$next_year = $month==12?$year+1:$year;
Плюсиками я обозначил код, который мы вставляем. enjoy ;)
Я все никак не начну изучение этого "динозавра", но собрал уже много материала :) Решил поделилиться ресурсами:
1. http://anton.shevchuk.name/
2. http://web-blog.org.ua/
3. http://zendframework.ru/
4. http://zend-framework.ru/
5. http://blog.fedecarg.com/
6. http://www.zftutorials.com/