Если отлаживая Javascript на своем сайте вы уже столкнулись мистической ошибкой "doIt is not defined", безуспешно не можете отыскать ее в в недрах чужого (или хуже своего) кода и уже оглядываете рабочий стол на предмет магического бубна, то этот совет наверняка окажется полезным. ;-)
Оказывается, эту ошибку вызывает один из экстеншенов Chrome, а именно, Chrome SEO. Если отключить его, то ошибка пропадает бесследно.
вторник, 11 мая 2010 г.
пятница, 7 мая 2010 г.
Пара замечаний по настройке Apache после перехода на Ubuntu 10.04
После конфигурации виртуальных хостов рабочих проектов и перезапуска Apache вижу в консоли следующие предупреждения:
Вижу, что Apache перегрузился и работает нормально, но меня абсолютно не устраивают вывод предупреждений всякий раз, когда я буду перезапускать сервер.
Could not reliably determine the server’s fully qualified domain name
Насколько я понял, эта проблема связана с многократным переопределением VirtualHost при конфигурации виртуальных хостов. Переписываем инструкцию следующим образом. Перезапускаем Apache. Любуемся полученным результатом.
За подсказки спасибо авторам Jeremy Kendall, Mohamed Aslam и Ивану
noe@studio:~/etc/apache2$ sudo apache2ctl restart
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[Fri May 07 22:09:13 2010] [warn] VirtualHost 127.0.0.1:80 overlaps with VirtualHost 127.0.0.1:80, the first has precedence, perhaps you need a NameVirtualHost directive
[Fri May 07 22:09:13 2010] [warn] NameVirtualHost *:80 has no VirtualHosts
Вижу, что Apache перегрузился и работает нормально, но меня абсолютно не устраивают вывод предупреждений всякий раз, когда я буду перезапускать сервер.
Could not reliably determine the server’s fully qualified domain name
Проблема решается просто, добавлением строки "ServerName localhost" в файл /etc/apache2/httpd.conf
NameVirtualHost *:80 has no VirtualHosts
NameVirtualHost *:80 has no VirtualHosts
Насколько я понял, эта проблема связана с многократным переопределением VirtualHost при конфигурации виртуальных хостов. Переписываем инструкцию
За подсказки спасибо авторам Jeremy Kendall, Mohamed Aslam и Ивану
четверг, 6 мая 2010 г.
UPDATE + JOIN + COUNT() в MySQL
Сегодня столкнулся с проблемой. Данные одной таблицы надо обновить данными тз другой таблицы с учетом статуса в третьей ;-)
Недолго думая написал следующий скрипт:
Недолго думая написал следующий скрипт:
UPDATE `tags` AS tНе прошло. :-( Оказывается такая конструкция инструкции UPDATE не допускает использование функции COUNT(). После получасового общения с всемирным разумом посредством Google был найден неожиданный вариант выполняющий ту же самую работу:
LEFT JOIN `auction_tags` AS at ON t.id = at.tag_id
INNER JOIN `auctions` AS a ON a.id = at.auction_id AND a.status = 'active'
SET t.auctions_count = COUNT(at.auction_id)
UPDATE `tags` AS tХм, век живи -век учись...
SET t.auctions_count = (
SELECT COUNT(at.auction_id)
LEFT JOIN `auction_tags` AS at ON t.id = at.tag_id
INNER JOIN `auctions` AS a ON a.id = at.auction_id AND a.status = 'active'
)
суббота, 6 марта 2010 г.
Инсталяция и использование FFmpeg с применением x264
Несмотря на то что FFmpeg и x264 доступны в репозиториях Ubuntu, на все равно придется скомпилить их самостоятельно. В дальнейшем, чтобы предотвратить замещение скомпилированных нами программ новыми из стандартных репозиториев Ubuntu, не забудьте зафиксировать полученную версию с помощью программы обновлений synaptic.
Шаг 1. Зависимости
Удалим x264, libx264-dev и ffmpeg если они были установлены ранее:
Скачиваем исходные тексты программ с официального x264 git репозитория, компилируем и устанавливаем видео кодек:
Для поддержки OGG файлов скомпилируем Theora видео кодек, поскольку тот что находится в репозиториях Ubuntu слишком старый для использования. Иначе при компиляции ffmpeg надо исключить опцию --enable-libtheora:
Для установки FFmpeg берем текущую версию с официального FFmpeg svn репозитория. Запустив в консоли "./configure --help" вы можете включить или выключить те или иные опции при компиляции программы:
One-pass CRF (Constant Rate Factor) Однопроходное slow (медленное) перекодирование файла с постоянным коэфициентом сжатия, задаваемое параметром -crf. Меньшее значение повышает качество выходного видео файла, но увеличивает его физический размер. Нормальный диапазон от 18 до 28.
Two-Pass encode. Кодирование с опцией fast (быстрое) происходит в два этапа и используется для получения фиксированных размеров битрейта или выходного файла:
Шаг 1. Зависимости
Удалим x264, libx264-dev и ffmpeg если они были установлены ранее:
sudo apt-get remove ffmpeg x264 libx264-devУстановим пакеты необходимые для компиляции x264 и ffmpeg:
sudo apt-get updateШаг 2. Инсталяция x264
sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libx11-dev libxfixes-dev libxvidcore4-dev zlib1g-dev
Скачиваем исходные тексты программ с официального x264 git репозитория, компилируем и устанавливаем видео кодек:
cdШаг 3. Инсталяция libtheora
git clone git://git.videolan.org/x264.git
cd x264
./configure
make
sudo checkinstall --pkgname=x264 --pkgversion "1:0.svn`date +%Y%m%d`+`git rev-list HEAD -n 1 | head -c 7`" --backup=no --default
Для поддержки OGG файлов скомпилируем Theora видео кодек, поскольку тот что находится в репозиториях Ubuntu слишком старый для использования. Иначе при компиляции ffmpeg надо исключить опцию --enable-libtheora:
sudo apt-get install libogg-devШаг 4. Инсталяция ffmpeg
cd
wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.tar.gz
tar xzvf libtheora-1.1.1.tar.gz
cd libtheora-1.1.1
./configure --disable-shared
make
sudo checkinstall --pkgname=libtheora --pkgversion "1.1.1" --backup=no --default
Для установки FFmpeg берем текущую версию с официального FFmpeg svn репозитория. Запустив в консоли "./configure --help" вы можете включить или выключить те или иные опции при компиляции программы:
cdИспользование FFmpeg и x264
svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab
make
sudo checkinstall --pkgname=ffmpeg --pkgversion "4:0.5+svn`date +%Y%m%d`" --backup=no --default
hash ffmpeg
One-pass CRF (Constant Rate Factor) Однопроходное slow (медленное) перекодирование файла с постоянным коэфициентом сжатия, задаваемое параметром -crf. Меньшее значение повышает качество выходного видео файла, но увеличивает его физический размер. Нормальный диапазон от 18 до 28.
ffmpeg -i input.avi -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre slow -crf 22 -threads 0 output.mp4
Two-Pass encode. Кодирование с опцией fast (быстрое) происходит в два этапа и используется для получения фиксированных размеров битрейта или выходного файла:
ffmpeg -i input.avi -pass 1 -vcodec libx264 -vpre fast_firstpass -b 512k -bt 512k -threads 0 -f rawvideo -an -y /dev/null && ffmpeg -i input.avi -pass 2 -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre fast -b 512k -bt 512k -threads 0 output.mp4iPod 640x480 использует slow и ipod640 параметры:
ffmpeg -i input.avi -acodec libfaac -ab 128k -ac 2 -vcodec libx264 -vpre slow -vpre ipod640 -crf 26 -threads 0 -f ipod output.mp4


