July 3rd, 2008 | автор: Filosoff | Linux, Software | No Comments »
В качестве продолжения описания темы конвертирования видео привожу простой способ создания DVD-рипов в Linux.
Данная комманда берет первый раздел с DVD и конвертирует его в flv:
mencoder dvd://1 -ofps 25 -o a.flv -of lavf -oac mp3lame -lameopts abr:br=256 -srate 44100 -ovc lavc -lavcopts vcodec=flv:keyint=50:vbitrate=900:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf pp=lb,scale=512:384,harddup
Если нужно выдернуть определенную главу, можно добавить параметр -chapter.
В случае, если содержимое DVD скопировано на жесткий диск, нужно указать путь к файлам: -dvd-device /path/to/the_folder/
mencoder dvd://1 -chapter 1 -dvd-device /path/to/the_folder/ -ofps 25 -o a.flv -of lavf -oac mp3lame -lameopts abr:br=256 -srate 44100 -ovc lavc -lavcopts vcodec=flv:keyint=50:vbitrate=900:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -vf pp=lb,scale=512:384,harddup
На предмет того, что какой параметр значит и какие они бывают, советую почитать man по mencoder.
Выходной формат, понятное дело, может быть не только flv :).
July 2nd, 2008 | автор: Filosoff | PHP | 2 Comments »
Представьте себе проект, в котором достаточно сложная структура базы данных. Да и собственно данных много. И для генерации страницы постоянно необходимо примерно одним и тем же образом вытягивать и обрабатывать массу информации. В моем случае это дело занимало до 25 секунд на весьма неслабой машине. Для оптимизации процесса было принято решение кэшировать данные. Само собой, это снимает только часть проблем. Но ведь кэш можно еще и генерировать автоматически, верно? :).
В общем, ниже я приведу небольшой класс, сделанный за несколько минут. Кэширует массив, в котором хранится основной dataset. По умолчанию считается, что данного REQUEST_URI dataset постоянен. Но есть параметры для изменения такого поведения.
Read the rest of this entry »
May 9th, 2008 | автор: Filosoff | PHP | 10 Comments »
Небольшая, но очень полезная функция для получения IP-адреса клиента. Основной плюс - в отличии от большинства решений учитывает не только REMOTE_ADDR.
Собственно публикую чтобы не потерять. А то регулярно ищу это дело по старому коду :).
PHP:
-
function GetIP() {
-
-
$ip =
getenv("HTTP_CLIENT_IP");
-
-
$ip =
getenv("HTTP_X_FORWARDED_FOR");
-
-
-
else if (isset($_SERVER['REMOTE_ADDR']) &&
$_SERVER['REMOTE_ADDR'] &&
strcasecmp($_SERVER['REMOTE_ADDR'],
"unknown"))
-
$ip = $_SERVER['REMOTE_ADDR'];
-
else
-
$ip = "unknown";
-
return $ip;
-
} // GetIP
May 8th, 2008 | автор: Filosoff | SQL | No Comments »
В MS SQL отсутствует LIMIT в SELECT'е. Это поразительно и глупо, но это так. И после MySQL это невероятно раздражает. Поэтому было найдено решение проблемы. Сравнительно медленное, но зато работающее не только в новых версиях MS SQL (где есть row_number(), облегчающий жизнь). Итак, для того, чтобы сделать то же, что в MySQL делает следующий запрос:
SQL:
-
SELECT *
-
FROM `some_table`
-
LIMIT 10, 20
в MS SQL надо написать:
SQL:
-
SELECT top 20 * FROM [some_table]
-
WHERE [primary_key_field] NOT IN
-
(
-
SELECT top 10 [primary_key_field]
-
FROM [some_table]
-
ORDER BY [primary_key_field]
-
)
-
ORDER BY [primary_key_field]
May 6th, 2008 | автор: Hairgel_Addict | Web | 1 Comment »
Уже давно обратил на это внимание, не любят на Depositfiles русских :) Если выбран русский язык на сайте, то при скачивании очередного файла ждать приходится 99 секунд:
Read the rest of this entry »