• user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:e3a69109767755f4a84a17f7815edf95' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:a75818603189d1fa72226293b22ee0d7' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtejustify\">BGP всегда выбирает один из маршрутов - как наилучший. Когда маршрут выбран, BGP помещает его в свою таблицу маршрутизации, и передает его своим neighbor\'ам. Для выбора наилучшего маршрута BGP использует следующие критерии:</p>\n<p class=\"rtejustify\">1. Если путь, указанный в поле next-hop, недоступен, этот update убивается.</p>\n<p class=\"rtejustify\">2. Лучшим считается путь с наибольшим значением weight;</p>\n<p class=\"rtejustify\">3. Если weight путей одинаковы, то выбирается путь с наибольшим lpref;</p>\n<p class=\"rtejustify\">4. Если weight и lpref одинаковы, то выбирается путь, который появился в таблице маршрутов BGP на данном роутере. (подразумевается, что это будет самый наикратчайший путь);</p>\n<p class=\"rtejustify\">5. Если нет путей, которые &quot;родились&quot; на данном роутере, то выбирается путь с AS_path минимальной длины;</p>\n', created = 1767826901, expire = 1767913301, headers = '', serialized = 0 WHERE cid = '2:a75818603189d1fa72226293b22ee0d7' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:a4b25f9b523193c2edc81b0110322cd1' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtejustify\">&nbsp;</p>\n<p class=\"rtejustify\"><a class=\"thickbox\" title=\"FreeBSD\" href=\"/files/imagepicker/1/logo_freebsd_7_2.png\"><img alt=\"FreeBSD\" style=\"float: left\" src=\"/files/imagepicker/1/thumbs/logo_freebsd_7_2.png\" /></a>Добавлено значительное количество переводов на русский man-страниц. Рекомендую &quot;пробежаться&quot; по названиям, возможно что-то заинтересует. Сам обнаружил несколько полезных утилит, о которых не подозревал. Если есть чем поделиться - регистрируйтесь и добавляйте материал самостоятельно.</p>\n<p class=\"rtejustify\">Просмотреть доступные переводы можно в разделе <a title=\"Переводы мануалов\" href=\"http://muff.kiev.ua/menutree/menu-man\"><font color=\"#027ac6\">Русские man-ы</font></a></p>\n', created = 1767826901, expire = 1767913301, headers = '', serialized = 0 WHERE cid = '2:a4b25f9b523193c2edc81b0110322cd1' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:f3552caf82b14ecf099278ef0af7e209' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtejustify\">Вообще-то по&nbsp;настройке Quagga уже есть <a href=\"http://muff.kiev.ua/content/quagga-prevrashchenie-servera-v-polnofunktsionalnyi-marshrutizator\">статья</a>, но решил,&nbsp;что настройке BGP необходимо посвятить отдельную статью. Итак,&nbsp;на днях получила дружественная сеть свою автономную систему и блок адресов. Соответственно необходимо все это дело настроить под собственные нужды, и с этой просьбой и обратилась ко мне.</p>\n<p class=\"rtejustify\">Для глобальной маршрутизации будем использовать протокол BGP, информацию можно получить <a href=\"http://muff.kiev.ua/content/protokol-marshrutizatsii-bgp-perevod-na-russkii\">здесь</a>. Ознакомившись с литературой,&nbsp;приступим к настройке.</p>\n<p class=\"rtejustify\"><strong>Поставленная задача: </strong>получить от провайдера по одному BGP-соединению список сетей UA-IX, по второму - Full-view. Ну а дальше уже можно будет по представленной схеме настраивать соединения с несколькими аплинками.</p>\n', created = 1767826901, expire = 1767913301, headers = '', serialized = 0 WHERE cid = '2:f3552caf82b14ecf099278ef0af7e209' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:53393f4f84c086767764c955ea327b51' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtejustify\">Возникла необходимость в поиске сбойных блоков на жеском диске. Порыскав по интернету,&nbsp;нашел описание утилиты <strong>ddrescue</strong>. Решил попробовать. Итак,&nbsp;устанавливаем утилиту из портов:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>cd /usr/ports/sysutils/ddrescue &amp;&amp; make install clean &amp;&amp; rehash</strong></p>\n</td>\n</tr>\n</tbody>\n</table>\n<p class=\"rtejustify\">Проверка не составляет труда. Проверим,&nbsp;для примера,&nbsp;раздел /dev/ad5s1d:</p>\n<table border=\"1\" cellspacing=\"1\" cellpadding=\"1\" width=\"100%\">\n<tbody>\n<tr>\n<td>\n<p># <strong>ddrescue&nbsp;--force&nbsp;/dev/ad5s1d /dev/null</strong></p>\n</td></tr></tbody></table>', created = 1767826901, expire = 1767913301, headers = '', serialized = 0 WHERE cid = '2:53393f4f84c086767764c955ea327b51' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:98862cc2b27bc84c4a6cc1f13dbf4066' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p><a class=\"thickbox\" title=\"Э. Таненбаум - Архитектура компьютера\" href=\"/files/imagepicker/1/Tanenbaum-Arhitektura.jpg\"><img alt=\"Э. Таненбаум - Архитектура компьютера\" style=\"float: left\" src=\"/files/imagepicker/1/thumbs/Tanenbaum-Arhitektura.jpg\" /></a></p>\n<p><strong>Название:</strong> Архитектура компьютера</p>\n<p><strong>Автор:</strong> Э. Таненбаум</p>\n<p><strong>Год:</strong> 2007</p>\n<p><strong>ISBN: </strong>5-469-01274-3, 0-13-148521-0</p>\n<p><strong>Страниц: </strong>848</p>\n<p><strong>Формат книги: </strong>DJVU</p>\n<p><strong>Размер: </strong>14.7 МБ</p>\n', created = 1767826901, expire = 1767913301, headers = '', serialized = 0 WHERE cid = '2:98862cc2b27bc84c4a6cc1f13dbf4066' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:0f955899b213f12bc46d21985a33516d' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p><a class=\"thickbox\" title=\"Протокол маршрутизации BGP (перевод на русский)\" href=\"/files/imagepicker/1/BGP.jpg\"><img alt=\"Протокол маршрутизации BGP (перевод на русский)\" style=\"float: left\" src=\"/files/imagepicker/1/thumbs/BGP.jpg\" /></a></p>\n<p class=\"rtejustify\">BGP (англ. Border Gateway Protocol, протокол граничного шлюза) &mdash; основной протокол динамической маршрутизации в Интернете.</p>\n<p class=\"rtejustify\">BGP, в отличие от других протоколов динамической маршрутизации, предназначен для обмена информацией о маршрутах не между отдельными маршрутизаторами, а между целыми автономными системами, и поэтому, помимо информации о маршрутах в сети, переносит также информацию о маршрутах на автономные системы. BGP не использует технические метрики, а осуществляет выбор наилучшего маршрута исходя из правил, принятых в сети.</p>\n', created = 1767826901, expire = 1767913301, headers = '', serialized = 0 WHERE cid = '2:0f955899b213f12bc46d21985a33516d' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:c4028ef89e4b382287eb425dee94d6f8' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:cd43ace53fd087d1e407a5bcc3002138' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p><a class=\"thickbox\" title=\"UNIX. Программное окружение\" href=\"/files/imagepicker/1/theunixprogrammingenvironment.jpg\"><img alt=\"UNIX. Программное окружение\" style=\"float: left\" src=\"/files/imagepicker/1/thumbs/theunixprogrammingenvironment.jpg\" /></a></p>\n<p><strong>Название: </strong>UNIX. Программное окружение</p>\n<p><strong>Автор:</strong> Брайан Керниган, Роб Пайк</p>\n<p><strong>Год издания:</strong> 2003</p>\n<p><strong>Страниц: </strong>414</p>\n<p><strong>Формат: </strong>PDF</p>\n<p><strong>Размер:</strong> 2.79 МБ</p>\n', created = 1767826901, expire = 1767913301, headers = '', serialized = 0 WHERE cid = '2:cd43ace53fd087d1e407a5bcc3002138' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:ed616550372b608eed2ff4165510a7f2' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p><a class=\"thickbox\" title=\"Unix/Linux. Теория и практика программирования\" href=\"/files/imagepicker/1/unixlinuxprogrammingmoli.jpg\"><img alt=\"Unix/Linux. Теория и практика программирования\" style=\"float: left\" src=\"/files/imagepicker/1/thumbs/unixlinuxprogrammingmoli.jpg\" /></a></p>\n<p><strong>Название:</strong>&nbsp;Unix/Linux. Теория и практика программирования</p>\n<p><strong>Автор:</strong>&nbsp;Брюс Моли</p>\n<p><strong>Год издания: </strong>2004</p>\n<p><strong>Страниц:</strong> 576</p>\n<p><strong>Формат: </strong>DJVU</p>\n<p><strong>Размер: </strong>20.3 МБ</p>\n', created = 1767826901, expire = 1767913301, headers = '', serialized = 0 WHERE cid = '2:ed616550372b608eed2ff4165510a7f2' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a class=\"thickbox\" href=\"/files/imagepicker/1/wake_up_ua.png\"><img alt=\"Вставай, Україно!\" class=\"imgp_img\" src=\"/files/imagepicker/1/thumbs/wake_up_ua.png\" style=\"height:200px; width:150px\" /></a></p>\n', created = 1767826901, expire = 1767913301, headers = '', serialized = 0 WHERE cid = '2:07243fc0252056071eaa62af8c18d662' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:cc913d232116f0426090404133377d88' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: UPDATE cache_filter SET data = '<p class=\"rtecenter\"><a href=\"http://muff.kiev.ua/rss.xml\"><img alt=\"RSS\" width=\"160\" height=\"60\" src=\"http://muff.kiev.ua/files/muf-rss.png\" /></a></p>\n', created = 1767826901, expire = 1767913301, headers = '', serialized = 0 WHERE cid = '2:d9a86123bfcbc57878743027b584400b' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 112.
  • user warning: Table './muffsql1/cache_filter' is marked as crashed and should be repaired query: SELECT data, created, headers, expire, serialized FROM cache_filter WHERE cid = '3:39649256b636e3d5ded656bc52bd8c01' in /usr/local/www/muff.kiev.ua/includes/cache.inc on line 27.

PHP - вывод случайного содержимого

PHP логотип
 
Иногда требуется выводить данные в случайном порядке. Кроме этого, вещь полезна еще и тем, что контент страниц никогда не повторяется и при индексации роботами мы всегда можем сказать, что страницы у нас разные, чем несколько вводим в заблуждение поисковики. Но это заблуждение в нашу пользу.

Реализовать это можно несколькими способами. Один из самых простых:

  1. Создать на сервере текстовый файл data.txt
  2. Наполнить этот файл содержимым (каждый новый вариант - с новой строки)
  3. Добавить на страницу следующий php-код:
<?php
$phrases = "data.txt"; //файл содержимого
$z = file ($phrases);
$cz = count ($z) -1;
$r = rand (0, $cz);
print $z[$r];
?>

Для примера, на этой странице будет генерироваться три афоризма:


Афоризм 1: Все опаснее отражать действительность в кривом зеркале - стекло может и лопнуть от зависти!

Афоризм 2: Успехи медицины налицо: от многих болезней люди не умирают, а только мучаются.

Афоризм 3: По доходам и отходы.


Ничего сложного. Единственный ньюанс - необходимо, чтобы кодировка текстового файла совпадала с кодировкой веб-страницы.

 

BGP - как происходит выбор наилучшего маршрута

BGP всегда выбирает один из маршрутов - как наилучший. Когда маршрут выбран, BGP помещает его в свою таблицу маршрутизации, и передает его своим neighbor'ам. Для выбора наилучшего маршрута BGP использует следующие критерии:

1. Если путь, указанный в поле next-hop, недоступен, этот update убивается.

2. Лучшим считается путь с наибольшим значением weight;

3. Если weight путей одинаковы, то выбирается путь с наибольшим lpref;

4. Если weight и lpref одинаковы, то выбирается путь, который появился в таблице маршрутов BGP на данном роутере. (подразумевается, что это будет самый наикратчайший путь);

5. Если нет путей, которые "родились" на данном роутере, то выбирается путь с AS_path минимальной длины;

Добавлены переводы man-страниц

 

FreeBSDДобавлено значительное количество переводов на русский man-страниц. Рекомендую "пробежаться" по названиям, возможно что-то заинтересует. Сам обнаружил несколько полезных утилит, о которых не подозревал. Если есть чем поделиться - регистрируйтесь и добавляйте материал самостоятельно.

Просмотреть доступные переводы можно в разделе Русские man-ы

BGP - настраиваем Border Gateway Protocol c помощью Quagga

Вообще-то по настройке Quagga уже есть статья, но решил, что настройке BGP необходимо посвятить отдельную статью. Итак, на днях получила дружественная сеть свою автономную систему и блок адресов. Соответственно необходимо все это дело настроить под собственные нужды, и с этой просьбой и обратилась ко мне.

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

Поставленная задача: получить от провайдера по одному BGP-соединению список сетей UA-IX, по второму - Full-view. Ну а дальше уже можно будет по представленной схеме настраивать соединения с несколькими аплинками.

Ddrescue - поиск сбойных блоков на жестком диске

Возникла необходимость в поиске сбойных блоков на жеском диске. Порыскав по интернету, нашел описание утилиты ddrescue. Решил попробовать. Итак, устанавливаем утилиту из портов:

# cd /usr/ports/sysutils/ddrescue && make install clean && rehash

Проверка не составляет труда. Проверим, для примера, раздел /dev/ad5s1d:

# ddrescue --force /dev/ad5s1d /dev/null

Э. Таненбаум - Архитектура компьютера

Э. Таненбаум - Архитектура компьютера

Название: Архитектура компьютера

Автор: Э. Таненбаум

Год: 2007

ISBN: 5-469-01274-3, 0-13-148521-0

Страниц: 848

Формат книги: DJVU

Размер: 14.7 МБ

Протокол маршрутизации BGP (перевод на русский)

Протокол маршрутизации BGP (перевод на русский)

BGP (англ. Border Gateway Protocol, протокол граничного шлюза) — основной протокол динамической маршрутизации в Интернете.

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

Собственный счетчик посещений

В сети очень много сервисов предлагают установить свои счетчики посещений. Мы же в этот раз попробуем создать собственный счетчик посещений, который можно будет поместить на веб-страницу, своими силами.

Счетчик создаем с помощью PHP. Код счетчика очень простой:

<?php
$filename = "counter.dat";      // задаем переменную, указывая имя файла
if(file_exists($filename)){     // если файл присутструет, то
$fp = fopen($filename,"r");     // открываем соединение с этим файлом, причем только на чтение
if ($fp) {                      // проверяем, успешно ли открылось соединение.
$counter = fgets($fp,10);       // если успешно, считываем из открытого файла первые
                                // 10 символов в переменную счетчика
fclose($fp);                    // закрываем соединение
} else {                        // иначе
$counter = 0;                   // присваиваем переменной счетчика ноль
}
}
$counter++;                     // увеличиваем переменную счетчика на единицу
echo $counter;                  // выводим на экран переменную счетчика
$fp = @fopen($filename,"w");    // открываем соединение на запись с очисткой всего содержимого файла
if ($fp) {                      // если успешно, то...
$counter = fputs($fp,$counter); // записываем новое значение переменной счетчика в файл
fclose($fp);                    // закрываем файл
}
?>

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

ПРИМЕР: Вы пользователь, который посетил эту страницу.

UNIX. Программное окружение

UNIX. Программное окружение

Название: UNIX. Программное окружение

Автор: Брайан Керниган, Роб Пайк

Год издания: 2003

Страниц: 414

Формат: PDF

Размер: 2.79 МБ

Unix/Linux. Теория и практика программирования

Unix/Linux. Теория и практика программирования

Название: Unix/Linux. Теория и практика программирования

Автор: Брюс Моли

Год издания: 2004

Страниц: 576

Формат: DJVU

Размер: 20.3 МБ

RSS-материал

Вставай, Україно!

Литература

Гарри Каспаров наконец-то выиграл у компьютера, и с двумя очками и тремя жизнями перешёл на следующий уровень.