Блог:Виталий Филиппов
Технические вопросы и вменяемые заметки от меня, Виталика.
У меня, конечно, уже есть блог simply_a_man.
2012-11-18 Тоже мне камера-брелок
Та самая камера-брелок («808»), за которую дело чуваку на украине шили — она ещё оказывается и дикое говно, и существует её версии 22 где-то в одном корпусе… Дикое говно — потому что почти у всех версий framedrop в районе 30 % при FPS=30. FPS можно поменять на поменьше (при 20 framedrop почти нулевой), но для этого её надо перепрошить, а после перепрошивки версиями 3.01 или 2.04 вариант #7 в итоге вообще не стартует — мигает светодиодом 1 раз и переключается обратно в режим прошивки — про это можно на rcgroups почитать. Про версии же можно почитать на http://www.chucklohr.com/808/ - это сайт чувака, который собирает по ним информацию. И там же написано, что ожидать от этого чуда китайской промышленности ничего хорошего не стоит изначально — «expect reliability of a toy». Ну и стоят нижние версии, правда, баксов по 7-10.
2012-11-07 Дааа! Наконец-то пруфлинк!
Наш бизнес-центр действительно раньше был тюрьмой!
http://www.russedina.ru/articul.php?aid=24422
Примеры перестройки казенных домов в Москве уже есть, отмечает газета. В здании бывшей пересыльной женской тюрьмы по адресу Лесная ул., 43, уже больше 10 лет размещается бизнес-центр. Застройщиков не отпугнуло даже то, что все окна бывшего исправительного учреждения выходят во внутренний двор, а коридоры — длинные и темные. Сейчас в здании работают турагентства, страховые и консалтинговые компании.
2012-10-25 Северокорейский генерал казнен с помощью миномета
http://www.lenta.ru/news/2012/10/25/mortar/
Бывший заместитель министра обороны КНДР Ким Чхоль, казненный в начале 2012 года, был умерщвлен необычным даже для Северной Кореи способом: его привязали к столбу и расстреляли из миномета, пишет The Daily Telegraph.
По данным издания, такой способ казни был выбран по приказу руководителя страны Ким Чен Ына, потребовавшего, чтобы от генерала «не осталось никаких следов, даже волоска».
Комменты:
- Это не Ким Чен Ын это Джокер какой-то из бетмена.
- православно! у нас тоже наверное скоро перенимут
- У вас это у кого??Если вы намекаетен на РФ то в РФ мараторий на смертную казнь…
- Что может этот мораторий против единогласного голосования в Думе?
- У вас это у кого??Если вы намекаетен на РФ то в РФ мараторий на смертную казнь…
- Так веселее! С первого раза врядли попадёшь. Больше фана для зрителей и моральных страданий для жертвы.
- Ставки опять же можно делать
- для генерала ничего не жалко!
- «его привязали к столбу и расстреляли из миномета, пишет The Daily Telegraph»
- к телеграфному столбу?
- Нифига-из рсзо расстрелливать будут ну или притопят и закидают глубинными бомбами
- субмариной прижмут ко дну
- Англичане, помнится, привязывали индусов к дулам пушек, а эти привязали почему то к столбу, а не к гранатомету.
- Если к дулу привязать генерала, то стрелять очень сложно, если вовсе возможно. Конструктивные недостатки.
- У военной техники нет недостатков! Есть особенности применения…
- Если к дулу привязать генерала, то стрелять очень сложно, если вовсе возможно. Конструктивные недостатки.
- Представляю как бы взлетел рейтинг Путина у потцреотов, если бы он сделал так же.
- Путенг задолбается Булавой в Удальцова попадать. Булава большая и неоднозначная в своем поведении, а Удальцов маленький и тоже неоднозначный какой-то.
- Лживая пропаганда.
- На самом деле генералу за пьянство во время траура дали медаль.
- Не медаль, а именной миномёт.
- Скорее именную мину.
- Не медаль, а именной миномёт.
- На самом деле генералу за пьянство во время траура дали медаль.
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.
2012-09-16 Корректива по поводу Red Brick
Корректива по поводу китайских запчастей для квадрокоптера:
Red Brick'и в качестве регуляторов скорости движков лучше не брать, ибо у китайцев произошёл даунгрейд и вместо нормального регулятора с двумя радиаторами присылают хрень — аналог банального Hobbyking SS 25-30A, и после перепрошивки 16-кГц ШИМ прошивками оно при работе перегревается так дико, что на малых оборотах 15 секунд не проходит, а притронуться к нему уже нельзя.
Причина в херовых P-канальных MOSFET’ах, «P-FET gate noise» — на rcgroups есть полное англоязычное описание проблемы от собственно самого Саймона. Вот фотки платы, расположение элементов на ней полностью идентично Hobbyking SuperSimple, FETы тоже похожие, плюс разметил ISP-контакты для перепрошивки:
Кстати, никто не разбирается в полевых транзисторах?
А то, может быть, разъясните мне смысл сообщения по ссылке выше? Просто вполне очевидно, что перегрев происходит от кратковременных «замыканий» плюса на минус через транзисторы, но я не очень понимаю, как это происходит? Просто не успевают переключиться? Но у тамошних 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 мм не доходит до дна, но не больше:
И сама плата в ручке паяльника выглядит по-другому, не так, как на хабре выкладывали:
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-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 экраном. Но всё-таки производители нашли, где поднасрать!
Какой ПИДОР придумал сделать клавиши ↑ ↓ половинного размера?!
И при этом ТАКОГО размера правый шифт?!
Нет, спасибо конечно огромное, что Pgup/Pgdown/Home/End отдельные — а то остальные вообще любят как на сраных макбуках делать, вешать их на Fn+стрелки. Но это у меня вообще обязательный параметр был при выборе ноутбука.
Текст набирать пипец, не могу по стрелкам попасть вообще.
Хоть ремапь правый шифт на стрелку вверх, а обе вверх и вниз на вниз.
2012-03-24 Настройки Firefox
О! Я наконец-то получил то, что давно хотел от Firefox’а — настройку горячих клавиш, в том числе на переключение вкладок!
Для этого нужно поставить 2 расширения — Keyconfig и Functions for keyconfig:
- http://kb.mozillazine.org/Keyconfig_extension
- https://addons.mozilla.org/en-US/firefox/addon/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!
Только компилить его надо из исходников — в репозиториях дебиана и убунты всех нужных плагинов нет (и вряд ли есть в других). Соответственно, качаем 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, по-видимому, на резких кочках успеваешь дёрнуться в процессе съёмки кадра и в итоге на стабилизированном видео заметно, как пространство «гнётся» — выглядит глючно…