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

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

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

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

PHP:
  1. class Tag extends BaseTag
  2. {
  3.   /**
  4.    *
  5.    * @param array $options массив с максимальным (max), минимальным (min) значением
  6.    *                       и колчиеством градаций (levels)
  7.    * @return int [1,levels]
  8.    */
  9.   public function getWeight(array $options)
  10.   {
  11.     if (!isset($this->nb_posts) || !isset($options['max']) || !isset($options['min']) || !isset($options['levels']))
  12.     {
  13.       return 1;
  14.     }
  15.     else {
  16.       $options['min'] = log($options['min'] + 1);
  17.       $options['max'] = log($options['max'] + 1);
  18.       return round(
  19.           1
  20.           + (log($this->nb_posts + 1) - $options['min'])
  21.           * ($options['levels'] - 1)
  22.           / ($options['max'] - $options['min'] )
  23.         );
  24.     }
  25.   }
  26. }

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:
  1. # find /var/backup/ -mtime +7 | xargs rm -f

I <3 sh

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

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

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

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

PHP:
  1. echo BankDay::getEndDate('2008-10-14', 10, 'd.m.Y');
  2. //28.10.2008
  3. echo BankDay::getEndDate('now', 10);
  4. //1229008080
  5. echo BankDay::getNumDays('2008-02-25', '2008-03-15');
  6. //13
  7. echo BankDay::getNumDays('now', '10 days');
  8. //7
  9. echo BankDay::isWorkDay('2009-01-06');
  10. //false

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
Вот так.