Вычисление веса тега с использованием логарифма

По мотивам http://habrahabr.ru/blogs/webdev/30543/ себе на заметку.

Вычисляем вес тега в облаке с использованием логарифма. Зачем?

Здесь всего лишь кусок кода. Аргументы и рассуждения по ссылке выше.

[php]
class Tag extends BaseTag
{
/**
*
* @param array $options массив с максимальным (max), минимальным (min) значением
* и колчиеством градаций (levels)
* @return int [1,levels]
*/
public function getWeight(array $options)
{
if (!isset($this->nb_posts) || !isset($options[‘max’]) || !isset($options[‘min’]) || !isset($options[‘levels’]))
{
return 1;
}
else {
$options[‘min’] = log($options[‘min’] + 1);
$options[‘max’] = log($options[‘max’] + 1);
return round(
1
+ (log($this->nb_posts + 1) – $options[‘min’])
* ($options[‘levels’] – 1)
/ ($options[‘max’] – $options[‘min’] )
);
}
}
}
[/php]

ssh proxy and tunneling

Все элементарное просто. Себе на заметку:

Socks-прокси:

ssh -CD 8080 [login@]ssh_host
где означает сжатие, -D само действие, 8080 локальный порт на котором будет слушать прокси.

SSH-туннель:

ssh -CL 8022:remote_host:22 [login@]ssh_host
8022
– локальный порт, remote_host удаленный (если нужен туннель до самого сервера, то пишем localhost), 22 порт машины до которой создается туннель.

Конфигурируем веб- и dns-сервер для локальной разработки

Все нижесказанное справедливо для Ubuntu (Debian). Другие системы скорее всего будет отличаться только расположением конфигурации Apache.

Установим весь необходимый софт:

# sudo apt-get install bind9 apache2
# а так же базы данных, интерпретаторы и модули к ним по вкусу.

Теперь создадим зону .loc, все домены которой будут ссылаться на наш веб-сервер.  Я указал адрес 192.168.5.1, таким образом,  домены новой зоны будут доступны всей домашней сети.
Read the rest of this entry »

Debian etch double clocktime workaround

Несколько месяцев назад ставил дебиан на машину будущего сервера. Удивило то что время там шло ровно в 2 раза быстрее чем нужно – т. е. вместо 1й секунды отсчитывалось 2. Полдня гуглил и спрашивал всех в аськах – нашел решение. Все работало – достаточно было передать опцию загрузчику и отключить что-то в биосе.

Работало до тех пор пока через полтора месяца не пришлось по какой-то причине перезагрузится. После загрузки выяснилось что с параметрами я экспериментировал напрямую в grub’e и, как следствие, забыл сохранить. Через несколько часов проблему снова решил.

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

Цитирую /boot/grub/menu.lst на будущее =)

title	Debian GNU/Linux, kernel 2.6.18-6-amd64
root	(hd0,1)
kernel	/boot/vmlinuz-2.6.18-6-amd64 root=/dev/sda2 ro no_timer_check
initrd	/boot/initrd.img-2.6.18-6-amd64

Удаление старых бэкапов

Долго думал как же удалять старые бэкапы )
Оказалось проще простого
[code]
# find /var/backup/ -mtime +7 | xargs rm -f
[/code]

I <3 sh

BankDay – PHP класс для операций с банковскими (рабочими) днями

Класс для подсчета банковских (рабочих) дней за определенный промежуток времени или определение даты +N банковских дней. Учитываются государственные праздники. Если праздник попадает на выходной день, то, согласно трудовому кодексу, он переносится на следующий рабочий.

Скачать BankDay.class.php 1.59 KB Downloaded 3451 times

Примеры использования:

[php]
echo BankDay::getEndDate(‘2008-10-14′, 10, ‘d.m.Y’);
//28.10.2008
echo BankDay::getEndDate(‘now’, 10);
//1229008080
echo BankDay::getNumDays(‘2008-02-25′, ‘2008-03-15′);
//13
echo BankDay::getNumDays(‘now’, ’10 days’);
//7
echo BankDay::isWorkDay(‘2009-01-06′);
//false
[/php]

ilovecinema – фильтр фильмов в профиле сообщника

Очередной скрипт для greasemonkey. Фильтрует список фильмов в профиле сообщника ilovecinema по параметрам.

http://userscripts.org/scripts/show/36750


И еще, бонусом, скрипт для ссылки на странице
с фильмом для поиска на torrents.ru

http://userscripts.org/scripts/show/36753


sape.ru YAP checker

Скрипт greasemonkey для автоматической проверки наличия страницы в яндексе для sape.ru

http://userscripts.org/scripts/show/34028

X -> windows

Невыносимо после иксов обламываться пытаясь перетащить окна с помощью <alt> + LMB. Особенно когда 24″ монитора позволяют раскидать окна для максимального удобства.

Решение нашлось здесь – http://www.howtogeek.com/howto/windows-vista/get-the-linux-altwindow-drag-functionality-in-windows/

И то что в данном решении окошки не ресайзятся по <alt> + RMB (MMB)  совершенно меня не пугает. Да и решаемо, при желании.

current

С сегодняшнего дня вышел на работу в Garin studio
Вот так.