Блог:Виталий Филиппов

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

Технические вопросы и вменяемые заметки от меня, Виталика.

У меня, конечно, уже есть блог Ljuser.gifsimply_a_man.

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

2011-12-19 РЛД vs Профшинсервис

В очередной раз долбанул диск на машине, только в этот раз не об яму, а об бордюр. Колесо было где-то под 30-45° к бордюру, скорость где-то 10-20 км/ч. Понял, что за год без спринтов и тренировок каких-либо вообще рулить разучился окончательно, раз такие тупости совершаю.

Хотя наезд на бордюр — на субару вещь частая)) подозреваю, что в подвеске тоже что-то пострадало (кулак или рычаг). Учитывая, что колесо переднее — скорее кулак, так как рычаг там крепкий. Я так понимаю, что рычаги обычно сзади гнутся, когда задним колесом в бордюр въезжаешь — сзади они относительно тонкие и чисто поперечные. А может, просто рулевая тяга/наконечник. А может вообще просто сход/развал ушёл)) ну ничего, посмотрим завтра в Плеяде.

AG30 8x17.jpg
Диски всегда обычно чинил в ПРОФШИНСЕРВИСе (http://remontdiskov.ru/). А тут — они сказали, что лучше не пробовать, так как скорее всего лопнет по спице, а то и по ступице, и нужно будет выкидывать. Ибо он вообще восьмёркой пошёл. :-) а такой же диск найти — тот ещё геморрой. Почти такой же — по-моему 8x17 AG30, но 10 спиц, а не 8, стоит 9000 и делают на заказ 45 дней (http://agforged.ru/).

Так вот, я всегда думал, что профшинсервис — очень крутое место :)

ДО ТЕХ ПОР, ПОКА НЕ СЪЕЗДИЛ В РЛД!

RLD.jpg RLD Client.jpg

RLD 2011-12-19 17.29.45.jpg RLD 2011-12-19 15.12.20.jpg RLD 2011-12-19 15.12.27.jpg

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

А сейчас вернулся в профшинсервис за шиной — контраст что пипец! В РЛД даже по телевизору показывают какую-то очень интересную, похоже, собственную, подборку роликов. А профшинсервисе какие-то сраные теледебаты по НТВ. Ужос :-)

А вот комната ожидания в профшинсервисе — называется, почувствуй разницу:

Profshinservis.jpg

Ещё фотографии шиномонтажа РЛД (как раз на этом я и был) можно посмотреть здесь: http://victorprofessor.livejournal.com/96362.html

2011-12-18 Новые графики по Бездне

Новые графики отношения количества ржаки, отмеченной мною, в записях с разным количеством голосов в Бездне. Теперь — полное количество и в процентах от общего числа записей с этим числом голосов.

2011-12-15 Чип И Дип жжёт дизайном

2011-12-14 18 - «12.10» - 14 декабря 2011 18:12:09

2011-12-15 MOSFET, HK-190

Хы. Первый раз попаял SMD-компоненты)) не особо жестокие, всего лишь полевики в SOT-23, у них всё-таки ещё есть ножки, хоть и мелкие. Узнал что транзисторы оказывается бывают полевые и биполярные :-D да, не учили нас схемотехнике :-(

Понял что правда, что как где-то написали, MOSFET это Fire Emitting Transistor :-) и что действительно если они куда-то подключены параллельно, менять их нужно только парами, иначе мёртвый убивает живого, так как часто сток коротит на затвор. Надо было вообще все разом поменять да и не париться.

А горят действительно с огоньком, с натуральным таким.

Не, ну чо, опыт получен, хотя регулятор-то в итоге не починен :-) но можно же ещё раз перепаять :-D

Хотя с чип-и-диповскими ценами он так золотой станет :-D 1х IRLML6244TRPBF = 30 руб… А оптовые цены 1-3 рубля :-D мде. Даже розничная в Платане = 5 руб. Но правда сумма заказа не меньше 500р должна быть.


На хоббикинге продают офигически клёвые мелкие вертолётики с фиксированным шагом Hobbyking HK-190, он же — Efly-Hobby EX-HELI mSP190, он же — Great Wall Xieda 9958 (по словам «GW 9958» удобно запчасти для него искать). Очень похож на клон E-Flite Blade MSr, но флайбар не под 90° и с лопатками, а под 45° и с грузиками.

Клон очень качественный, мне гораздо больше нравится, чем другой конкурент блейда, который у меня тоже есть — Nine Eagles Solo Pro! Небольшие два минуса HK-190 — это:

  • Хвост немного заносит по мере иссякания заряда аккумулятора.
  • В комплекте идёт ужасный USB-зарядник, который нужно выкинуть в мусор сразу и не включать вообще (!!!), иначе аккумулятор убивается, а вообще-то и загореться может. Ибо он литиевый, а зарядник на него прямо 5 вольт с USB пихает. Хорошо, у меня рядом лежал и я успел заметить, что он уже надулся, а так бы ещё загорелось что-нибудь! В качестве зарядника приспособил фонарик с DealExtreme’а, который тоже как раз умеет от USB заряжаться.

Но зато в остальном — одни плюсы!

  • Весит легче грамм на 5 (24 вместо 29).
  • Летает дольше, быстрее и лучше поднимается вверх.
  • Управляется точнее и более похоже на бОльших собратьев, чем на коаксиальных — засчёт нормального микшера и нижнего флайбара не «перестабилизирован» и при бросании ручек не стремится повиснуть ровно, а продолжает лететь куда ему сказали до этого.
  • Качество сборки лучше, чем у NE, даже звучит в полёте тише, то есть шестерёнки лучше и потери на трение меньше.
  • Шасси сломать сложнее, ибо в нём нет изломов, а просто дуги, которые гнутся, но не ломаются.
  • Капот опять-таки крепче сделан и лучше закреплён.
  • Голова тоже крепче, крепление лопастей на лопастях, а не на голове, и пины короче и крепче. Главный вал сразу металлический…
  • Флайбар короче и никогда не задевает ни капот, ни хвост, в отличие от Solo Pro.

И главное, стоит он всего 30$!!! Как всегда, цена — бомба…

Кстати, на Hobbyking’е есть и клон Solo Pro: Hobbyking FP100 (он же — WLtoys V911). Выглядит абсолютно идентично, только пульт и раскраска другие. А может, это и вообще OEM, кто его знает. Явно OEM, но явно не Nine Eagles’овский — вряд ли он может быть таким дешёвым (36$).

E-Flite Blade MSr Hobbyking HK-190 Nine Eagles Solo Pro Hobbyking FP100
Blade MSr.jpg HK190.jpg NE Solo Pro.jpg HobbyKing FP100.jpg

Ещё там же есть Turnigy FBL100 (он же — WLToys V922 или HiSky FBL100) — клон Blade mCPX — бесфлайбарный микровертолёт с управлением коллективным шагом. То бишь, 3D-вертолёт, то бишь, может летать вверх ногами. Тоже классная штучка.

2011-12-13 Google со своими редиректами

Как же меня за**ал гугл своими редиректами!

Для тех кто в танке — все ссылки в поиске заворачиваются в http://google.com/url?..., а следовательно, не работает «скопировать адрес ссылки», время открытия страницы немного увеличивается (обычно чуть-чуть, но бывает и на пару секунд), и кроме того эта тварь ЗА ВАМИ СЛЕДИТ! :D

Отключить пипец как тяжело. Уже сколько пытаюсь, надёжно пока не получалось, всё равно через какое-то время возвращалось всегда.

  • Во-первых нужно кликнуть на значок настройки в правом верхнем углу, там «История веб-поиска» и отключить её на*уй, пока залогинен.
  • Потом нужно разлогиниться, снова зайти туда же и нажать отключить на*уй персонализацию на основе данных cookies.
  • Ещё можно прописать «&pws=0» в URL гуглового поиска в браузере.
  • Ещё можно отключить с*аный «живой поиск».

Но и всё это не всегда помогает.

Ещё есть метод с юзерскриптом — вроде сейчас вот этот поставил и нормально (только поменял в нём «google.co» на «google.»):

http://userscripts.org/scripts/show/47300

Но какое-то время назад уже пробовал похожий скрипт и оно потом возвращалось. Хз почему. Посмотрим, вернётся ли теперь.

UPD: А вот ни фига подобного! Возвращается, особенно если использовать "Живой Поиск". Прав, однако, Столлман насчёт проприетарного JavaScript'а! Гугловые скрипты весят и делают очень много, а что они там делают - фиг его знает.

Но в данный момент я эту тварь всё-таки победил... http://userscripts.org/scripts/review/120330 - поправленная версия скрипта.

Вообще тварь очень конкретная, она и ссылки сразу на url? выводит, и onmousedown дополнительно ставит который их снова делает такими, и ещё раз потом по ним проходится... Пипец какой-то.


2011-12-09 Военкоматы займутся розыском уклонистов на митинге в Москве

Комменты к новости «Военкоматы займутся розыском уклонистов на митинге в Москве» жгут! (вообще мне Лента чем-то ЛОР напоминает, только не про компьютеры):

  • Бойтесь, нашисты! За вами идут!
  • Ждем еще службу судебных приставов, да)
    • И налоговую
      • а гаишные штрафы там будут пробивать? у меня один неоплаченный… в украине :)
  • Тупин совсем тупин. теперь армию несогласных хочет создать trollface.jpg
  • Уже не знают, что и придумать. Барабанщикам бы своим вручали повестки, им ровняк через год всем в армию.
    • Не всем, некоторых придется оставить долечиваться…
  • Гражданин! Прояви сознательность — сдай в военкомат нашиста — уклониста!
  • Уклонисты пусть под девушек загримируются. В крайнем случае за геев сойдут, тоже способ откосить.
    • Нельзя, за нашисток принять могут
  • Да здравствует энурез и плоскостопие! Все на митинг!

2011-12-07 Супер-сортир

Сфотографировал наш супер-сортир рядом с кухней.

Пользователь должен иметь выбор

SuperSortir.jpg

А ПО они так же пишут?

2011-12-06 А из нашего окна...

Переехали из отличного уютного офиса в центре, на пересечении путей от Чистых прудов, Лубянки, Китай-города в какое-то, б**ть, совершенно безумное здание на Белорусской, бывший доходный дом по адресу Лесная 43.

Во-первых, здание в форме восьмёрки с двумя внутренним дворами: O_O

Lesnaya43Plan.jpg

  • Узкие коридоры
  • Этаж не на одном уровне (тут и там лестницы по 10 ступенек вверх-вниз)
  • На каждом шагу СКУД (карточку прикладывать нужно, чтобы пройти)
  • C сортирами беда, один мужской вообще гениален — унитаз и писсуар прямо напротив, без каких-либо перегородок
  • Окна только во внутренние дворы:

Lesnaya43 ZK.jpg

Не дай бог для компании клиента в такое здание привести))) да он один раз в этот сортир сходит и больше не закажет никаких нахрен информационных систем)))

2011-11-14 Opera - заготовка говна для метания на хабре

О! У Оперы есть блог на хабре! Это же прекрасно — хабр со своим минусующим-чуть-что сообществом отлично подходит для метания говна, раз уж реакции в других местах добиться невозможно! Итак:

Привет! Я нашёл ваш блог и хочу воспользоваться ситуацией, потому что публичный баг-трекер отсутствует, а в комментах Desktop Team Blog реакции не дождёшься — максимум придёт модератор и сотрёт твои комментарии за то, что ты их отправил в две темы, надеясь получить ответ с удвоенной вероятностью.

Хочу сообщить, что, наверное, как и многие другие русиш партизанен, являюсь пользователем оперы версий этак с седьмых-восьмых. За что я всегда любил оперу:

  • За то, что она всегда сохраняет мой набор вкладок и не теряет его при некорректном завершении;
  • За настройку сочетаний клавиш «из коробки» — например, дико удобно переключать вкладки кнопками 1 и 2 (не f1 и f2, а 1 и 2). Это в сравнении с Firefox, в котором даже при использовании расширения нельзя настроить кнопки переключения между вкладками и нельзя настроить два сочетания клавиш на одно действие, и с Chrome, в котором сочетания клавиш не настраиваются вообще никак;
  • За встроенный мэйл-клиент (даже несмотря на то, что он бажный, как и вся опера);
  • За инкрементальный рендеринг табличной вёрстки, что до сих пор актуально, когда сидишь в интернете через EDGE/3G модем или на тормозных сайтах;
  • За то, что Tab фокусирует только поля ввода, а не ссылки, как в других браузерах;
  • За LRU-порядок переключения вкладок в Ctrl-Tab из коробки.

Однако, несмотря на все эти плюсы, в последнее время я вынужден отказаться от Оперы в пользу Google Chrome из-за того, что он быстрый и стабильный… В отличие от оперы, в которой постоянно появляются различные баги, а разработчики никак на них не реагируют и исправлять не собираются.

О чём я конкретно говорю:

  1. Сломанные настройки шрифтов во ВСЕХ линукс-сборках после 10.63. «Сломанные» означает, что если я сначала задаю sans-serif = Segoe UI, а потом перезапускаю оперу, показывается что-то похожее на Verdana (но не совсем она). При этом если снова открыть диалог настроек — там будет Segoe UI, а если его поменять на другой шрифт, обратно и применить — он вернётся… Но снова только до перезапуска. Скринкаст.
  2. А вот этот баг я бы пометил CRITICAL, а то и BLOCKER: сломанные настройки исключений прокси во всех сборках 11.5 и 12 бета, причём как под виндой, так и под линуксом! Исключения прописываются только по одному, шаблоны не работают. Введённые шаблоны вида *.domain.com не сохраняются. Скринкаст Linux, Скринкаст Windows.
  3. Под Windows я был вынужден отказаться от оперы по причине частого выедания оной 100 % CPU (одного ядра) при использовании Flash-плагина, далее приводящее к жутким тормозам при обычном просмотре интернетов. Да, я понимаю, что это всё Адобе виновато со своим кривым флешом, но тем не менее — Хром CPU при идентичном использовании не кушает. Правда, в нём флеш время от времени падает, но это не так страшно — пусть себе падает, ни на что больше это не влияет.

Ещё один пример того, насколько разработчики не реагируют на просьбы народа — это идиотская полу-серая «модная» адресная строка в духе «вам не нужны параметры URL». В доказательство того, что люди очень хотят видеть настройку для отключения этого, я могу привести жирное обсуждение и даже ПАТЧИ для бинарных сборок Opera под windows (!), созданные кем-то русскоязычным: [1], [2], [3]. Причём придумали наши, а ссылаются на это америкосы — читают через гугл транслейт.

Ещё примеры убойных, но, к счастью, уже исправленных багов:

  • В районе 10.6 при использовании прокси-сервера некоторые сайты, активно использующие JavaScript, сильно подвисали и были малоюзабельны (например, pro.mail.ru). Этот баг жил где-то полгода или год. Чтобы с ним жить, я настроил на своей машине прозрачное проксирование с помощью iptables и локального squid’а. Для доказательства — ссылка на скринкаст.
  • Ещё раньше, в районе 9-10 версий, Опера намертво зависала, если при переоткрытии всех вкладок при запуске попадалась вкладка с http-авторизацией, а ты на ней, не дай бог, раньше времени (до того, как загрузятся все вкладки), нажимал Enter на всплывающем окошке ввода пароля. Завершить Оперу после этого можно было только убиением процесса.

Есть и другие баги, менее воспроизводимые, но свидетельствующие об общей нестабильности:

  • На работе некорректно отображается Hobbyking.com (скриншот). Это в версии 10.63, а как мы помним, использовать более новые я не могу, из-за багов 1) и 2). Происходит как на чистом профиле, так и на реальном. Больше нигде воспроизвести не удавалось.
  • Любопытно, что рендеринг шрифтов в 10.63 и в 11-ых тире 12-ых версиях, несмотря на прописанные в .Xresources настройки, хоть и похож, всё равно отличается, и отличается от рендеринга в остальных программах. Но это не так страшно, с этим можно жить.
  • При работе с Microsoft Exchange по IMAP’у иногда «теряет», а потом «находит» новые письма — они самопроизвольно пропадают из входящих, а потом опять появляются как новые непрочитанные. Не претендую на полноту и воспроизводимость баг-репорта, также не утверждаю, что виновата именно опера, но это происходит.
  • Иногда перестаёт работать поиск текста на странице по Ctrl-F — показывает, что ничего не найдено, хотя на самом деле оно там есть. При случае запишу скринкаст.
  • Остальное не так важно, либо сходу не вспомню.

Ну и до кучи небольшая юзабилити-проблемка :) при использовании клиентских сертификатов запросы пароля для хранилища ключей производятся чуть ли не каждый запрос или создание нового соединения. Безопасность — это конечно хорошо, но не настолько же.

А за иконку в трее под линуксом, которая где-то через 3 года после отправки баг-репорта таки стала менять состояние так же, как под виндой — в зависимости от наличия новых, а не непрочитанных писем — спасибо. :)

Но в целом, ящитаю, что с такими серьёзными багами (типа исключений прокси) релизы выпускать нельзя! А они выпускаются, и выпускаются в большом количестве. Я вот до сих пор вхожу в те 2,4 % людей, которые всё ещё пользуется Оперой, но уже не на всех компьютерах, а только, хе-хе, на одном. Подозреваю, что многие так же от неё отказываются. Разрабоооотчикиииии! Ауууу! Очнитесь! Поправьте баги, а то 2,4 % уменьшатся до нуля!

2011-09-30 Opera, Gnome 3, MeeGo

LOR, Nokia N9 поступил в продажу (MeeGo)

Начались поставки новой модели мерседеса с трупом водителя в салоне.


Рингтоном траурный марш?

LOR, Gnome 3.2

Ах да, поздравляю пользователей этого замечательного DE, if any.


Социальные сети
Облачность
Интеграция с тем
Интеграция с этим
Интеграция с интеграцией
Теперь другу можно отправить фотку одним кликом сидя в туалете, но нельзя выключить компьютер!


>yовый диалог действия
всё правильно, диалоги в гноме порядком уовые.


>Но надо лишь немного побыть в нем, понять его и мне понравился! С ним реально юыстрее и красивее
Это про новый обтягивающий костюм от Зверева?</pre>


>GNOME становится немного «облачным»
, немного унылым, немного г-вном. Но так в целом ничего, развивается.


  • Теперь гуглозонды можно пользовать не только из браузера весом 30мб но и с лайвцд размером около гига.
  • Теперь мы наконец-то можем монтировать флешки
  • наконец-то актив-десктоп из вин98 дошёл до линуксоедов (или настиг?)
  • Наконец-то емпати перестала быть чат-руткитом, который хер-пойми где искать когда надо комуто написать, но вот тебе пишут все кому не лень.

P.S: Ещё один дебильный баг Opera — иногда перестаёт работать поиск текста на странице — думает, что ничего не находит. Ну сколько же можно, а?

2011-09-09 WD приучились делать USB-only харды

Western Digital, сцуки такие, приучились делать USB-only внешние жёсткие диски. То бишь, жёсткие диски, в которых микросхема-мост USB-to-SATA впаяна на плату с контроллером — причём USB 2.0, как оно там с USB 3.0 — не знаю. Вообще-то бредовый шаг — встраивать USB 2.0, он же, блин, медленный! Названия таких дисков оканчиваются на «VV» (например, WD6400KMVV, WD5000BMVV), а на наклейке можно видеть «Not for resale». По USB название не посмотришь — они партизанят и его скрывают под названием модели внешнего диска, например, «WD Elements SE».

Понятно, что по сути они всё равно SATA, но если раньше можно было купить WD My Passport, разобрать и получить нормальный 2.5" жёсткий диск плюс переходник на USB, то сейчас можно максимум выпаять нахрен микросхему-мост и получить SATA-диск… и всё. Обидно.

Микросхема для USB 2.0 — обычно Initio INIC-16xx. Вывести контакты на SATA-разъём просто, благо они там на виду — четыре дорожки на плате, ведущие от крупненькой микросхемы, подключаются каждая через конденсатор, конденсаторы подписаны С13, С18, С31, С33. Пинам разъёма SATA они соответствуют так:

 █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
 █  7   6   5   4   3   2   1  
   GND RX+ RX- GND TX- TX+ GND 
       C33 C31     C18 C13     
       E75 E74     E72 E71

То есть если будете подпаивать — нужно отпаять второй вывод конденсатора от ноги USB-to-SATA и припаять к разъёму. Другое дело, что и разъём-то там девать особенно некуда, потому что коварные WD-шники рядом с MicroUSB-разъёмом сделали ещё один, адовый диагностический, которого нет на обычных SATA хардах. Так что если, допустим, пытаться его засунуть в ноут — может не хватить места — потребуется место для подпаянной лапши…

Вот тут предлагается просто выпаять эти конденсаторы и подпаять лапшу к контактам E71, E72, E74, E75 на нижней стороне платы. Но на обычных хардах разъём всё-таки подключён через конденсаторы, типа фильтры, наверное.

Кстати, наконец дошло, зачем на разъёме SATA-питания столько контактов — они задуманы такими мегауниверсальными, что на них может быть аж 3 напряжения — 12V, 5V и 3.3V. Ну ладно, спросите вы, а зачем по 3 контакта на каждое напряжение? Так там тоже был гениальный замысел — их разрабатывали так, чтобы ограничить всплески нагрузки при горячей замене дисков. Контакты на разъёме разной длины и сделаны так, что при подключении разъёма питания сначала замыкается земля, потом «pre-charge pin» — хард при этом ещё не включается, но уже начинают заряжаться конденсаторы и т. п. — а потом уже основной контакт.

2011-09-09 Apache 2, openssl и клиентские сертификаты

Интернет полон HOWTO по настройке клиентских SSL-сертификатов в Апаче, которые все сводятся к тому, что нужно сгенерировать сертификаты для сервера и клиентов, подписать клиентские каким-нибудь CA-сертификатом, слить их в PKCS-12 и поставить в браузер, а на сервере прописать SSLVerifyClient require и SSLCACertificateFile </path/to/ca.pem>.

Однако нигде не упоминается важный момент, о котором легко забыть, если использовать «искаробочный» openssl: клиентские сертификаты должны быть именно что клиентскими — поле nsCertType у них должно иметь значение client, email (возможно ещё , objsign), но никак не server, который генерится по умолчанию (что приводит к ошибкам OpenSSL: Exit: error in SSLv3 read client certificate)! Прописывается это в /etc/ssl/openssl.conf (или там, где лежит ваш openssl.conf).

Аналогично CA-сертификат должен быть CA, то есть, иметь basicConstraints=CA:TRUE. Но об этом забыть сложно, потому что команды генерации CA-сертификата всё равно никто никогда не помнит, а все используют /usr/lib/ssl/misc/CA.pl или CA.sh, который выставляет basicConstraints правильно.

Ещё полезное замечание: как упаковать серт+ключ в PKCS-12, из man 1 pkcs12 понятно — openssl pkcs12 -export -keyin key.pem -in cert.pem -out cert.p12. А вот как извлечь ключ — понятно не совсем, ведь если просто сказать openssl pkcs12 cert.p12 -nocerts -out key.pem, и не задавать пароль, в key.pem ключа ни хрена не будет. Чтобы сразу вытащить нешифрованный ключ, нужно сказать openssl pkcs12 cert.p12 -nocerts -out key.pem -nodes.

И последнее, хотя это и упоминается где-то в HOWTO-шках — не забывайте про openssl s_client, это действительно полезная штука! Например, если он при попытке соединения пишет «No client certificate CA names sent», значит, браузеру не отправляется список имён подходящих CA, которыми должен быть подписан клиентский сертификат, и значит, браузер не пришлёт ничего в ответ. Кстати, для проверки SNI (Server Name Indication) нужно указать опции -tls1 -servername server.address.com, просто -servername без -tls1 почему-то не канает.

2011-09-09 Opera

Сломанные настройки шрифтов ТАК И НЕ ПОЧИНИЛИ. Как клала опера на них, так и кладёт — прописываешь в шрифтах везде Segoe UI, перезапускаешь оперу, а у тебя Verdana. Если передёрнуть снова — просирается, но передёргивать нужно после каждого рестарта. А уже вышла 11.11 почти 12. Релизеры, блин.

Правда, я выяснил, как заставить Оперу 11 и выше использовать нужный рендеринг шрифтов:

cat > ~/.Xresources <<EOF
Xft.hinting: 0
Xft.hintstyle: hintnone
Xft.autohint: 0
EOF
xrdb -merge ~/.Xresources

Любопытно, что рендерятся они всё равно по-другому, не так, как в остальных приложениях. Но уже хотя бы приемлемо.

Ещё бесит дебильная полу-серая адресная строка. Что за мудаки работают в опере, вообще понять не могу. Им твердят-твердят — сделайте млять опцию. Они — нет, полу-серая строка это супер-фича, видеть параметры запроса вам не нужно. Вот отличный тред: тынц.

Народ аж патчи к бинарнику оперы уже придумывает: [1], [2], [3]. Причём придумали наши, а ссылаются на это в итоге америкосы, читают через гугл транслейт.

То, что выше этой строки, было написано в ЖЖ ещё 6 июня, а теперь обновление от сегодняшнего дня (2011-09-09):

Пепелсбей.нет — русское чувачелло, которое работает в опере, на матерные замечания об опере отозвался неадекватно, мол я такой нежный и мат не выношу. Ох про*бёт опера остатки пользователей, ох про*бёт…

Настройки шрифтов в 12-next поломаны до сих пор с ноября 2010 года (!!!). Реально в альфа-сборках даже раньше, в ноябре 2010 вышла 11 бета. Почти год багу.

Кстати, если кто-то не помнит, был баг ещё позорнее — рандомные зависания загрузки страницы на сайтах с большим количеством JS через прокси — баг жил где-то полгода в 10.5, разработчики на него не реагировали. Это был тот момент, когда я себе прозрачную проксю локально поднял.

Если кто-то не помнит, ещё раньше, где-то в 9-10 версии, оно намертво зависало, если при переоткрытии всех вкладок на старте не дай бог раньше времени нажмёшь Enter на всплывающем окошке ввода пароля. Тоже позор был.

В то же время и другие браузеры имеют позорные моменты: в Firefox слабо настраиваются комбинации клавиш — только по 1 комбинации на действие, и настраиваются не все — например, нельзя настроить переходы между вкладками. В Chrome и того хуже — комбинации клавиш не настраиваются вообще! И вкладки он любит про*бывать между рестартами, если не дай бог его неаккуратно рестартуешь. И по клику «назад» он не берёт страницу из кэша, а перезагружает — кстати, этим и мобильный Андроидовский браузер страдает, и там раздражает сильнее, потому что жрёт платный трафик. А Firefox по нажатию Tab-Tab-Tab прыгает по умолчанию не по полям ввода, а ещё и по ссылкам. Нахера? Правда, если сайт пропишет у себя tabindex’ы полям ввода, то нормально.

2011-06-09 tdpkg

Нашёл клёвую штуку для дебиановского dpkg — ускорятор его работы с базой данных пакетов tdpkg !

Просто каким-то дурацким образом dpkg хранит базу в тыщщах мелких файлов в /var/lib/dpkg/info/, без какого-либо индекса ВООБЩЕ. В итоге, когда установлено 4500 пакетов, как у меня, первый запуск сильно тупит, потому что читает все эти тыщщи файлов в кэш (секунд 30-40 занимает легко).

Так вот, некто придумал хак — засунуть в LD_PRELOAD библиотеку, которая лично обращения к /var/lib/dpkg/info/ будет подменять на чтения нормальной базы данных — SQLite или TokyoCabinet (последняя — это «правильный BDB»).

Ускоряет ситуацию это, надо сказать, просто в разы — база читается за 1-2 секунды. Вообще-то, конечно, dpkg это должен уметь сам, но раз пока никто не написал…

В общем ставим, прописываем в ~/.bashrc следующие строчки, и радуемся жизни:

alias dpkg="sudo LD_PRELOAD=<path_to_libtdpkg>/libtdpkg.so dpkg"
alias apt-get="sudo LD_PRELOAD=<path_to_libtdpkg>/libtdpkg.so apt-get"

UPD: ещё нужно применить мой патчик, убирает мусор с STDERR и добавляет плюс один хак, чтобы tdpkg работал с последними dpkg, которые любят делать ioctl(FIGETBSZ).