Викилоги

Перейти к: навигация, поиск
Поиск по заметкам викилога
 

2012-10-05 Отжеж монстров народ рожает

Вот же ж монстров-то народ рожает!

Код новомодного Aloha Editor'а — яваскриптового визуального html-редактора — весит аж 1230 Кб. Чистый код! Минифаенный! Это (!) примерно в 2 раза больше, чем ExtJS 3! И лишь чуть-чуть (29 кб) не дотягивает до ExtJS 4. Это при том, что с одной стороны мы видим всего лишь html-редактор, а с другой — жирнейший фреймворк для создания JS-приложений, «похожих на гуёво-декстопные».

А теперь возьмём NicEdit — тоже редактор. Так вот, имея практически все базовые фичи, его код — исходник, а НЕ минифаенный — весит почти в 2 раза меньше, чем jQuery, а именно, 48.4 кб. Причём это — уже с дописанными туда мною таблицами, коих нет в оригинале. Если же его всё-таки обфусцировать — получаются вообще безобразно минимальные 37 Кб.

Я вот, конечно, понимаю, что, наверное, алоха более модная, более фичастая, более поддерживаемая и более оттестированная, но 1.2 Мб кода на JS-редактор меня реально пугают. Дискета, пилять!

Не-не-не. Возьму-ка я, короче, nicEdit.

2010-02-04 Тётя отожгла

Мне тут тётя отожгла.

Позвонила, поздравила с днём рождения, говорит у меня для тебя сувенирчик есть, надо встретиться я отдам, говорит ты где работаешь? Ну я говорю на чистых прудах, она приехала, встретились. Вручила коробку конфет, бумажник какой-то весьма сраный, но это всё фигня, потому что ещё вручила ЦВЕТЫ.

Я говорю ыыыыы! спасибо конечно, но что я с ними делать-то буду? На работу принесу? Она говорит поставишь в стаканчик и поймёшь что у тебя день рождения)) Ты представь если бы я пришёл на работу с цветами — это же тема для похохатывания была если бы не на неделю, то до завтра точно. У нас же Стас в комнате =)))

Но эту проблему я уже решил — пошёл на работу и подарил цветы встреченным по пути девушкам. Порадовались, поздравили с днём рождения.

В общем тётя как всегда в своём репертуаре — «привет из параллельной реальности». На прошлый ДР она (точнее ОНИ, вообще Киржачские родственники) подарили мне КОЛЬЦО, которое я как бы тоже в жизни не надену, потому что а) не женат б) не бандит в) не верующий.

2010-02-19 В милицию можно позвонить везде

Вспомнилось чего-то, у меня когда года 4 назад "обнимальщики" спёрли мобилу, и когда я уже осознал что меня нае..., быстренько иду и у первого прохожего (таджик какой-то попался) спрашиваю:

- где можно в милицию позвонить?
- (огляделся) кде? вэзде!

Ну прям анекдот)))

2012-09-16 Корректива по поводу Red Brick

RB30-ESC-NO.png

Корректива по поводу китайских запчастей для квадрокоптера:

Red Brick'и в качестве регуляторов скорости движков лучше не брать, ибо у китайцев произошёл даунгрейд и вместо нормального регулятора с двумя радиаторами присылают хрень — аналог банального Hobbyking SS 25-30A, и после перепрошивки 16-кГц ШИМ прошивками оно при работе перегревается так дико, что на малых оборотах 15 секунд не проходит, а притронуться к нему уже нельзя.

Причина в херовых P-канальных MOSFET’ах, «P-FET gate noise» — на rcgroups есть полное англоязычное описание проблемы от собственно самого Саймона. Вот фотки платы, расположение элементов на ней полностью идентично Hobbyking SuperSimple, FETы тоже похожие, плюс разметил ISP-контакты для перепрошивки:

Red Brick 30A.jpg Red Brick 30A back.jpg

Кстати, никто не разбирается в полевых транзисторах?

А то, может быть, разъясните мне смысл сообщения по ссылке выше? Просто вполне очевидно, что перегрев происходит от кратковременных «замыканий» плюса на минус через транзисторы, но я не очень понимаю, как это происходит? Просто не успевают переключиться? Но у тамошних TPC8120 по даташиту Fall Time = 790 ns, Turn-off Time = 275 ns, стоят парами => пусть суммарное время выключения даже 2 us — это, конечно, медленно по сравнению с другими транзисторами (на порядок медленнее), но по отношению к 16 кГц ШИМ всё равно быстро. Ок, автор что-то говорит про шум, это видимо та хрень, колебания, которые между стоком и истоком происходят после выключения. Пусть шум длится даже ещё 2 us, но по отношению к 16 кГц всё равно получается >10 кратный запас.

Следовательно, там что-то более хитрое. Видимо, автор имеет ввиду, что этот шум каким-то образом передаётся на затвор (?), и происходят кратковременные паразитные включения транзистора? И вот это мне уже непонятно.

Однако, факт в том, что если TPC8120 заменить, например, на IRF9317PBF (что я проделал с одним регулятором), то перегрев прекращается и мы получаем вполне нормальный регулятор. Только вот после этого он становится дороже на 96 рублей по ценам Вольтмастера (и становится просто золотым по ценам ЧипИДипа — вообще не понимаю я их цены). Посему лучше сразу заказывать что-то, сделанное на всех N-FET’ах вместо P+N. Например, BlueSeries или F-20A/F-30A. Но они уже и стоят на 1-2$ подороже, то есть 8-9-10$ вместо 7-и.

А ещё я хочу пропиарить wii-esc!

В заключение хочу пропиарить очередную прошивку для регулей — wii-esc. Фишки: GPLv3, C-шный код вместо ассемблерного и Сигма-дельта модуляция (похоже на то, что в сообщении выше Саймон называл Spread Spectrum PWM). UPD: А ещё я забыл упомянуть про защиту от перегрузки! Что тоже является киллер-фичей. Правда, есть и минус — диапазон «газа» в wii-esc не калибруется. То есть, с большой вероятностью нельзя смешивать разные модели контроллеров, прошитых wii-esc, на одном квадрокоптере.

Вот ведь сила опенсорса, ага? До этого все юзали эти дурацкие регули как есть, и совершенно неизвестно было, что там внутри, какие алгоритмы, оптимальны ли они, нельзя ли их улучшить, нет ли каких багов (ибо встречаются) и т. п. А стоило одному товарищу по имени Bernhard Konze провести базовую работу и выложить её в свободный доступ, и смотрите-ка, уже есть целых 3 замечательных прошивки по мотивам его работ! SimonK, wii-esc и BlHeli. Первые две для квадрокоптеров, последняя — для вертолётиков. Причём BlHeli есть в том числе и для регулей на базе контроллеров SiLabs (C8051F330*), а не Atmega8 (а это, например, все новые Turnigy Plush и некоторые другие).

2012-09-01 А баг-то в новых Lukey 702 исправлен

Купил пару дней назад себе паяльную станцию Lukey 702. Она китайская, дешёвая, и с феном! :)

Прочитал про неё на хабре, что в паяльнике элемент на 7 мм не доходит до конца жала, но это можно исправить, перепаяв провода на более верхние контактные площадки. Соответственно, разобрал, думал ща перепаивать буду.

Ан нет — всё уже пофикшено китайцами, элемент входит в жало почти до конца! Ну может на 1 мм не доходит до дна, но не больше:

Lukey702-Tip-OK.jpg

И сама плата в ручке паяльника выглядит по-другому, не так, как на хабре выкладывали:

Lukey702-Iron-PCB.jpg

2012-08-24 Из чего собрать квадрокоптер с хоббикинга

2012-08-22 xcache и xdebug

Ух ты O_o xcache и xdebug, оказывается, не совсем совместимы:

Если первым в конфиге загружать xdebug.so, а вторым xcache.so, то либо xcache не запустится, либо вообще php будет сегфолтиться.

Думал было баг автору на эту тему поставить (который mOo), но обнаружил Ticket 145, зарезолвленный в invalid: «the strace output shows that XCache is loaded after Xdebug which is an unsupported case. load XCache first».

В документации или в FAQ написал что ли хотя бы…

Этот же парень, кстати, регулярно резолвит как wontfix регулярно переоткрываемый разными людьми Ticket 228, в котором говорится, что xcache, не работающий в CLI, должен об этом говорить, а не ругаться странными ошибками на тему того, что var_size маленький…

2012-08-12 Code Review в проекте МРТ

У нас на работе многие вывешивает всякие юморные картинки на двери.

Очень мне нравится вот эта:

Code Review Cats.jpg

Code Review в проекте МРТ

2012-07-31 Пофиксил две задолбавшие проблемы

(1) Нерабочий Backspace в голой UTF8-ой консоли в дебиане, решение — поменять (можно патчиком) в /usr/share/console-cyrillic/ru_ms-unicode.kmap строчку с keycode 14 на:

keycode 14 = U+0008 U+0008 U+0008 U+0008 U+0008 U+0008 U+0008 U+0008 U+0008 U+0008 U+0008 U+0008 U+0008 U+0008 U+0008 U+0008

(2) Совершенно дикое торможение и шуршание диском из-за большого количества записи при старте X.org на рабочем компе — настолько, что при старте системы X’ы не успевали запуститься — отведённое на запуск время кончалось. Оказывается, я их там когда-то дебажил и добавил в конфиг строчку:

Section "ServerFlags"
    Option "Log" "sync"
EndSection

То есть, после каждой строчки, записанной в лог, полностью сбросить его на диск. Опция теперь выключена, счастье есть.

2012-07-18 MySQL и болт

Опа! =( Оказывается, MySQL/MariaDB кладёт болт на синтаксис

CREATE TABLE t (
  other_id int REFERENCES other_table (id)
) ENGINE=INNODB;

Т.е. REFERENCES, указанный рядом с конкретным полем, теряется, хотя никакой ошибки при этом не возникает! O_O

И чтобы он работал, нужно его указывать обязательно на уровне таблицы, типа

FOREIGN KEY (other_id) REFERENCES other_table (id)

Баг по теме: http://bugs.mysql.com/bug.php?id=51174

2012-07-07 Darktable

Нашёл, с одной стороны, супер-программу — типа, opensource’ный Лайтрум — Darktable.

С точки зрения функционала хорошо — куча плагинов, есть почти всё, что нужно. Почти — потому, что:

  • Дебайеринг даёт очень много цветового шума (в ufraw и то лучше). Возможно, просто отсутствует нормальный шумодав — либо всё в мыле, либо всё в шуме.
  • Нет авто-ББ.
  • Нет масштаба.

Но это замечания мелкие-средние… А вот по ИНТЕРФЕЙСУ замечания огромные!!! Вроде бы модный, но идиотский… (и GTK3, лучше бы QT заюзали)

  • Сделан по ходу для просмотра под ЛУПОЙ — кнопочки аж по 10х10 пикселей, шрифт 8-ой (хотя шрифт можно поменять руками в gtkrc). Особенно круто смотрится на моём ноуте с 1920х1080 и круто попадать по этим кнопкам с тачпэда.
  • Нет ни нормального меню, ни контекстных (вообще нигде) — хрен поймёшь, где чего можно сделать! Пилять, меню же для того и придумали, чтобы все фичи в одном месте собрать. А тут сиди, ищи куда ещё тыкнуть можно.
  • Везде есть прокрутка, но почти нигде нет скроллбаров! Например, нет оного в списках фотографий.
  • Нет сплиттеров между панельками и основной рабочей областью, ширина задаётся для обеих панелей одна и та же в настройках.
  • Вроде оно умеет сохранять и загружать XMP, но я НЕ НАШЁЛ, где это вообще заюзать! Как экспортировать настройки, непонятно — при клике на кнопку ничего не происходит.
  • Также нельзя и выбрать параметры из предыдущих/последних файлов.
  • Идиотская регулировка баланса белого — зачем-то две шкалы — «начальный ББ» и «конечный ББ». Работают, соответственно, наоборот.
  • Идиотские масштабы шкал многих параметров — ну вот НАХРЕНА мне например зелёный оттенок в +7.0 (по их шкале это пипец насколько зелено)?
  • Сами регуляторы идиотские — шкалы типа прогрессбара, совмещенные с цифрой параметра, и чтобы её поправить, нужно кликнуть правой кнопкой. А хочется левой. Учитывая, что цифра где-то справа регулятора, в безумной части диапазона, это никому бы и не помешало.
  • По-идиотски сделана основная панель с фильтрами — они сворачиваются/разворачиваются (типа фича), и панель нужно постоянно скроллить и переключать вкладки, чтобы найти нужный фильтр. Сами фильтры раскиданы по вкладкам тоже по-идиотски. Например, почему-то яркость, контраст, «живость» и насыщенность все в разных фильтрах и РАЗНЫХ ВКЛАДКАХ!
  • Сами вкладочки озаглавлены не текстом, а картинками, у меня лично очевидной ассоциации не вызывающими.

И это всего лишь навскидку… Проблем на самом деле больше :-(

Короче, фотографии в этом пытаться обрабатывать можно, но как-то очень геморно пока что :-(

2012-05-27 SSD не понял

Чё-то я в натуре не понял O_o поставил себе интереса ради SSDшку Plextor PX-128M3, на контроллере Marvell 88SS9174 и ToggleNAND флеше, и только успел скопировать туда (файлами) линуксовые разделы, как SMART атрибут 0xB1 — Wear_Leveling_Count по мнению smartmontools, то есть число перезаписей самого изношенного блока диска — уже стал равен 1638…

И самое весёлое, что растёт значение прямо на глазах — через полчаса уже было 1639, а к концу дня — уже 1694! Запись на диск при этом почти не шла… Я понимаю, что write amplification и все дела, но не настолько же! При Power_On_Hours = 7 — это что, 31 ТБ в час, или 8.6 ГБ в секунду?)) Даёшь рекорд))

Если же это по какому-то одному «горячему» блоку, то извините, но их Wear Leveling никакой не левелинг…

А стоило потом сделать 3 тестовых прогона dd if=/dev/zero of=tempfile bs=1M каждый, и пару раз дёрнуть mkfs — число резко выросло до 1769… За первый dd, переливший ~350 мб, увеличение составило 10. Отсюда делаем вывод, что параметр всё-таки как-то связан с количеством записи на диск.

И, кстати, некто Витя из Новосибирска в комментах к PX-64M3 на сайте dns-shop привёл своё, тоже очень жирное значение этого параметра:

B1 100 100 __0 00000000118B Неизвестно

То есть, значение аж 4491, и если считать, что это Wear Leveling Count, то ещё чуть-чуть и хана Витиному диску :-D ведь заявленный ресурс ячеек = 5000…

Но наверное, всё-таки это не он, It cannot be!

UPD: У них этот параметр равен числу стираний блоков по 64 мб.

2012-03-25 HP поднасрать

Пришёл-таки ноут со штатов — HP Envy 15 с FullHD IPS экраном. Но всё-таки производители нашли, где поднасрать!

PoluPidorKeys.jpg

Какой ПИДОР придумал сделать клавиши ↑ ↓ половинного размера?!

И при этом ТАКОГО размера правый шифт?!

Нет, спасибо конечно огромное, что Pgup/Pgdown/Home/End отдельные — а то остальные вообще любят как на сраных макбуках делать, вешать их на Fn+стрелки. Но это у меня вообще обязательный параметр был при выборе ноутбука.

Текст набирать пипец, не могу по стрелкам попасть вообще.

Хоть ремапь правый шифт на стрелку вверх, а обе вверх и вниз на вниз.

2012-03-24 Настройки Firefox

О! Я наконец-то получил то, что давно хотел от Firefox’а — настройку горячих клавиш, в том числе на переключение вкладок!

Для этого нужно поставить 2 расширения — Keyconfig и Functions for keyconfig:

…по необходимости отключив при этом проверку совместимости расширений, для чего нужно создать boolean ключ «extensions.checkCompatibility.11.0», равный false, в about: config, где 11.0 — ваша версия Firefox. При этом если у вас например 10.0.1, то ключ будет всё равно extensions.checkCompatibility.10.0, то есть самая мелкая часть версии не учитывается.

Настроил себе переключение вкладок по клавишам 1 и 2 (назад и вперёд соответственно), как было в опере где-то 9, а Backspace сделал «назад».

Кроме того, поставил accessibility.tabfocus = 3, что означает нажатиями клавиши Tab фокусироваться только на всех элементах форм, но не на ссылках, как это по умолчанию (тоже бесило).

Насколько ж удобнее-то!

Плюс из расширений, естественно, FireBug, AdBlockPlus и Greasemonkey. Плюс FireCookie (редактор cookie для FireBug’а), плюс KDE’шный стиль «Oxygen» (есть в расширениях), плюс мой userscript для отключения Гугловских редиректов (слежки за кликами на найденные ссылки). А ещё Downloads In Tab.

Ну да — настоящий Firefox’овский подход: куча расширений, в отличие от Оперы, в которой всё «искаропки». Но во-первых, все расширения качественнее, никаких оперовских багов, которые по два года никто не фиксит, а минуса, который был у 3-его Firefox’а — «субъективной» тормознутости — уже и нет!

А хром — ну побыстрее немного, но хоткеи вон вообще не настраиваются :D а памяти жрёт ничуть не меньше, чем фокс, скорее даже прилично больше.

2012-03-12 Баги KDevelop

KDevelop всё-таки имеет баги, например я наступил на полтора: баг 295866 и баг 295766.

Второй как бы не совсем баг, но если пытаться скормить в KDevelop что-то безумное типа битрикса, где пипец как много каталогов, он повисает в попытках сделать очередной inotify, на который ему говорит «хрен там» ядро, ибо по дефолту sysctl fs.inotify.max_user_watches = 8192… Я лично считаю, что он в этой ситуации не должен повисать намертво, а должен просить поднять лимит… Но в любом случае этот «полубаг» успешно обходится, собственно, поднятием лимита.

А вот первый — действительно баг — KDevelop время от времени валится на некоторых исходниках. Я поотлаживал и нашёл минимальный тест, простой PHP-код, который валит KDevelop :)

<?php
$a = new A();
$a->x = 1;
class A {
    var $x = 1;
}

Смысл в том, что оно пытается делать довольно приличный статический анализ PHP-кода, и запоминает поля, определённые присваиванием. А кроме того, оно пытается предупреждать о некорректных переопределениях (ну например дважды var $x в одном классе). Но из-за этого оно раньше ругалось на переопределение, если сначала видело присваивание, а только потом определение. Это типа зафиксили в баге баг 241750, но только криво зафиксили — код почему-то подразумевает, что видит определение именно внутри метода класса, и тупо использует currentContext()->parentContext() (то есть «тело функции» → «тело класса»). Но:

  • Присваивание бывает вообще снаружи класса, и тогда parentContext = NULL ⇒ SEGFAULT.
  • Определение поля — в классе, но не внутри метода, соответственно, и сам «фикс» ошибки переопределения ни фига не работает. Вернее работает, но не всегда, а как повезёт, в зависимости от порядка добавления присваивания и определения. Если сначала написать присваивание внутри метода класса, а потом, после него, определение — не работает. (на самом деле это не так — не работало для всех классов, кроме первого в файле)

Хз, может и попробую зафиксить, но не факт, что это окажется легко. То есть, в качестве быстрого хака, если хочется работать, можно просто выпилить весь блок кода, отвечающий за этот фикс, из DeclarationBuilder::declareClassMember (в kdev-php/duchain/builders/declarationbuilder.cpp), но хочется-то зафиксить как надо.

UPDATE: Зафиксил! :) Отлаживался контрольными принтами, gdb и ++овый шаблонный бред не осилил. патч-то всего на +1/-2 строчки (первая не в счёт, ибо идентична), но пока поймёшь, что куда… :) Скачать патч из багзиллы KDE. Исходники битрикса погружены успешно, KDevelop можно пробовать дальше.

2012-03-08 А кстати если говорить об IDE...

Kdevelop-mediawiki.png
То в пень нужны все эти пых стормы, комоды и так далее?

Ведь оказывается, есть очень уютненький и шустрый KDevelop!

Только компилить его надо из исходников — в репозиториях дебиана и убунты всех нужных плагинов нет (и вряд ли есть в других). Соответственно, качаем kdevplatform, kdevelop, quanta, kdevelop-pg-qt, kdev-php:

git clone git://anongit.kde.org/kdevplatform
git clone git://anongit.kde.org/kdevelop
git clone git://anongit.kde.org/quanta
git clone git://anongit.kde.org/kdevelop-pg-qt
git clone git://anongit.kde.org/kdev-php

Доставляем зависимости, собираем cmake’ом (mkdir build; cd build; cmake ..; make; make install) и ставим всё кроме quanta, а из quanta тем же методом собираем и ставим только плагины (как минимум plugins/executebrowser) и debuggers/xdebug (отлаживаемся, соответственно, xdebug'ом). Можно и языки (languages/css, languages/sql, languages/xml). Кстати, для KDevelop есть и другие плагины — под питон, руби и так далее.

После чего останется один нюанс — всё собранное включить! Тут фишка в том, что плагины, собранные из quanta, будут иметь X-KDevelop-Version=12 в .desktop-файлах, а собранный KDevelop будет хотеть 14. Соответственно, нужно в /usr/share/kde4/services/kdev*.desktop везде поменять 12 на 14. Ну или если к тому моменту, как вы это будете читать, оно внезапно обновится, то посмотреть в любой плагин kdevelop’а и взять нужное значение оттуда. Дальше надо дёрнуть kbuildsycoca4 (обновить кэш конфигурации системы) и всё, можно запускать KDevelop.

На крайняк, если всё-таки какой-то плагин не включится сам, можно его прописать руками в ~/.kde/share/apps/kdevelop/sessions/{…GUID…}/sessionrc, в секцию [Plugins], в виде «имяплагинаEnabled = true».

Всё это, правда, всё ещё не значит, что я свой mc на IDE променяю :) если только для какого-то безумного говнокода, в котором без неё не разберёшься, типа БИТРИКСА, с которым хоть сколько-то поработать, УВЫ, в ближайшее время придётся…

2012-01-15 Патенты

То, на что зарегистрировано 99 % патентов крупных компаний — очевидные идеи, которые витают в головах всех людей, работающих в соответствующей сфере. То, что закон позволяет их патентовать, и позволяет их патентовать в ТАКИХ количествах — очень плохо, потому что вместо того, чтобы защищать частные лица и мелкие перспективные компании, которые что-то изобретают, то есть вместо того, чтобы защищать прогресс, текущая патентная система защищает крупные компании, усиливая монополию. То, что монополия — плохо, я думаю объяснять не нужно, даже с экономической точки зрения. То, что все платят — увы, ясно, просто не хотят ссориться с крупной компанией.

Вариант решения простой: уменьшить срок действия патентов. В наше время 20 лет — смешно, особенно в компьютерной отрасли, ибо за этот срок успевает смениться много поколений технологий.

Второй вариант (ИМХО): я бы ввёл требование для держателей патентов — а) обязательно отслеживать «нелицензионное» использование патентованной технологии С САМОГО НАЧАЛА её появления б) запретить изменять размер лицензионных отчислений. То есть вместе с регистрацией патента заявлять желаемый размер платы за использование. Зная, что перерегистрировать или изменять эту плату нельзя в течение всего срока действия патента. Никаких инфляций и т. п. не учитывать. Если в какой-то момент устареют указанные денежные суммы, вероятно, уже устарел и сам патент.

Если же первые N лет все (или многие) использовали бесплатно, а потом внезапно оказывается, что нужно платить — патент аннулировать, компанию штрафовать.

Ещё лично я бы законодательно всех обязал использовать открытые+бесплатные+свободные+непатентованные форматы для хранения ЛЮБЫХ пользовательских данных и предоставлять спецификации этих форматов по первому требованию любого пользователя. Ибо данные принадлежат не программе, а пользователю, и он должен иметь возможность их извлечь без использования этой программы.

2012-01-12 Шальной электрон

Ха. Ничего там не накрылось. Шальной электрон попал :-D

Даже тот хард, который я уже заменил, жив. Это порт глючит, по ходу. Переткнул сегодня в другой - всё нормально.

Ну зато у меня теперь есть лишние 320 гб. :)

2012-01-09 Эх, сервер всё-таки положил

Попробовал перезагрузить дистанционно — сдох, не взлетель :(

Ну ладно. Придётся завтра переться туда, опять смотреть, чего случилось.

Зато я теперь понял, как фильтер чейны в ffmpeg работают, и как с их помощью, например, два видео рядом показать (с одинаковыми размерами и частотой кадров):

ffmpeg -i FILE1 -vf "[in] pad=in_w*2:0:0:0 [y]; movie=FILE2 [o]; [y][o] overlay=w:0" -f yuv4mpegpipe - | ffplay -

Любопытно, что если -vf скормить напрямую в ffplay, получается сильная рассинхронизация двух роликов. Ну плюс ffmpeg’ом заодно и закодировать можно.

Ещё через yuv4mpegpipe можно и transcode с ffmpeg’ом соединить, например, именно так я сейчас обрабатываю видеоролики vid.stab’ом:

mkfifo fifo.raw
transcode -J stabilize=shakiness=10 -i FILE -y null,null
transcode -J transform=smoothing=5:crop=1:optzoom=0:zoom=0:maxangle=0:interpol=0 -i FILE -y yuv4mpeg,null -o fifo.raw 2>/dev/null &
TRANSCODE=$!
ffmpeg -f yuv4mpegpipe -i fifo.raw -i FILE -map 0:0 -map 1:1 -r 30 -vcodec libx264 -vb 4000k -acodec libfaac -ab 128k OUTFILE
kill -9 $TRANSCODE

Вместо fifo можно использовать /dev/stdout, но тогда по Ctrl-C дохнуть оно не захочет. Поворот видео при стабилизации отключаю, потому что стабилизацию улучшает оно не сильно, но зато ухудшает чёткость. Зум стабилизировать не нужно вообще, он у камеры фиксированный. Двухпроходный режим — обязателен, качество по сравнению с однопроходным deshake получается сильно лучше. И последний момент: лучше стабилизировать 60 кадров в секунду, потому что когда 30, по-видимому, на резких кочках успеваешь дёрнуться в процессе съёмки кадра и в итоге на стабилизированном видео заметно, как пространство «гнётся» — выглядит глючно…

2012-01-05 Андоррск

Хм. Я в Андорре, а на сервере прям 1-ого числа в 8:30 решил развалиться RAID. Причём вывалился новый винт, а не один из старых. Любопытненько.

По поводу Андоррска: площадь в 468 км, это что-то типа Москвы в пределах ТТК… Но в горах (Пиренейских). Население всей Андорры — где-то 90000. Столица (Andorra la Vella) — 20000. Посёлок городского типа, ё-моё :) 80 % всего ВВП — туризм. Менты в ржачных костюмчиках, чем-то похожи на наших таджиков-дворников.

Гор много, горы хорошие, но снега маловато, льда накатывают прилично, а съезды с подъёмников в камнях… Два места катания — Grandvalira и Vallnord. В Валлнорде не были и не поедем, какой-то он, судя по карте, скучный. Так что катаем в валире, в основном с Pic Blanc’а к Pas de la Casa, это самый дельный спуск из всех, имхо. Трассы все в основном проще, чем их цвет — чёрная краснеет, красная синеет, а синяя вообще зелёная какая-то.

Работает вся эта бодяга где-то с 9:00 до где-то 16:30. Так что встаём в 7:30 :) время тут CET = GMT+1 = MSK-3, то есть 7:30 = наших 10:30. Завтракаем, парафиним доски и идём кататься, потом приходим и отваливаемся отдыхать/спать :)

Сегодня был адовый ДУЛЬНИК, 15-20 м/с, писали 55 км/ч, но порывы явно больше были. Польный бизнес, насяльника, стоишь и не едешь, потому что ветром держит, снег позёмкой везде нафиг сдуло, камни одни остались, часть подъёмников в итоге закрыли и до фуникампа (гондольный подъёмник) мы не добрались, а уезжали на автобусе прямо с Pas de la Casa.

Живём в Эскальдесе, с едой тут маразм — до 20:00 рестораны ЗАКРЫТЫ, работают только бутербродные, мак, KFC и продуктовые магазины, число которых исчезающе мало (правда есть 1 супермаркет). Русских ДОФИГИЩА, с форума набралась ржачная довольно небольшая компания, поэтому ещё ходили с ними посидеть в рестораны пару раз (лучше бы спать легли). Цены не профсоюзные ни разу, жду Болгарии с нетерпением :-D МЯСА нормально пожрать. А тут по 20-30 евро за порцию каждый день не наешься. Фишка — пицца по таксе ВЕЗДЕ одинаково, 10 евро. И везде почему-то делают на мегатонком тесте, чуть ли не на лаваше. Кроме пиццы кстати и на горе жрать нечего, есть какая-то шаурмятня, но шаурма там хуже, чем в Москве в ларьках (попробовал).

На каталку беру ContourHD на шлем, так что видео будет, оно трясучее, но я его vid.stab'ом :) пока одна фотка с мобилы:

AND 2012-01-03 11-00-24 - 3 января 2012 11:00:23

Управление e-mail подписками на блоги и комментарии