среда, 7 сентября 2011 г.

Про Opera

Ощущение, что граждане решили убить свой, без дураков, мега продукт.
Поставил версию 11.51. То что SpeedDial стал выглядеть как кусок говна, это фиг с ним, может это типа такое дизайнерское решение, а я просто не понимаю. Не ну т.е. я как бы могу догадаться, что кому-то пришла в голову идея вместо миниатюры страницы, сделать супер интеллектуальный автомат, который бы от морды сайта отрезал тока самое-самое главное, причем если бы этого выдумщика усыпили ещё в детстве или хотя бы не пускали к компьютеру, всё могло бы сложиться иначе, но случилось то, что случилось, Speed Dial превратился в гавно. Потерпим и не это пережили.
Но то, что в адресной строке, выпадающий список заменили простым полем ввода, за такие решения надо расстреливать на месте. На хера? Вот простой и человечный вопрос НА ХЕРА? Ну вот есть у меня десяток сайтов, которые я читаю, и все они в этом комбике присутствуют, два раза ткнул мышкой и всё. Удобно мне блин тыкать мышью. Не вводить с клавиатуры, пусть и два символа после которых уже будет правильный адрес подсвечиваться автоматом, а ткнуть два раза мышью, ну под рукой вот она у меня.
Не, как бы я всё могу понять, но за каким надо уменьшать возможности пользователя, это от моего понимания ускользает. Я вот этим новым мега продвинутым гавноброузером от гугла не пользуюсь в том числе по причине отсутствия комбика в адресной панели. Теперь и в опере теже задвиги.
Была в этой программе одна мега находка, с которой меня перло и прет по сей день, это когда тыкаешь по левой стороне окна, а там панельки со всякой дополнительной ерундой выезжают, правда где-то на середине 10-й версии (кажется) они по умолчанию это дело стали отключать, но хоть хватило ума не убрать ее вовсе. Зато в 11.51 теперь кнопку создания нового таба нельзя сделать с левой стороны. Т.е. вот в 9-й версии она была слева, я как-то привык, и в 10-й когда они эту кнопку подвинули направо, первым делом после установки перемещал её на привычное место. А теперь вот не перемещается она.
В целом ощущение такое, что к версии 12, ребята окончательно приведут свой броузер в неприемлимое состояние. Самое обидное, что сам рендер html-к они постепенно улучшают, т.е. большинство сайтов, которые на 9-ке отображались не правильно в новой версии починились, но вот всё остальное становится только хуже. Причем работа идёт по принципу "горе от ума".

понедельник, 15 августа 2011 г.

Про Skype

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

Тут отвлекусь, чтобы два раза не вставать. Сайт portableapps.com раньше был прекрасен, прекрасен он был не только наличием портабельных версий некоторых очень хороших программ, но и дизайном сплешьшотов для этих программ, который радовал мой не шибко притязательный художественный вкус. В целом и сайт и наполнение и оформление были безусловно замечательны. Однако, в какой-то момент, пацанам в голову пришла отличная идея, разделить инсталляцию портабельных аппликух на две части, сначала качаем загрузчик (для Skype он, например, около 1 метра), запускаем его, и уже этот суперинтелектуальный модуль докачивает остатки. И таки эта идея была затолкнута в жизнь. Если я ничего не путаю, произошло это чудесное событие где-то с год назад. Наверное, в принципе, если очень сильно подумать, и даже местами помыслить, схема сия была бы востребована, ну лет пять назад например, когда каналы передачи данных в столицах наших Родин уже перешли рубеж одного мегабита для обычных граждан, а в провинциях, еще только к нему подбирались, и местами даже 128 килобит было очень-очень круто. Так вот в то чудесное время, конечно, крайне полезной могла оказаться возможность не выкачивать всю инсталляцию, а забрать токмо то, что надо конкретному пользователю (хотя как по мне и тогда сия функция меня бы не обрадовала). На хрена же вся эта пляска в данный исторический момент, я решительно отказываюсь понимать. Более того, мне допустим значительно удобнее сохранить в своем подвальчике полную инсталляцию, и не париться о том, не сдохнет ли мега сайт через год. И если не сдохнет, не разовьется ли то приложении что я использую, до таких высот, что лучше бы не надо.

В качестве примера, могу привести, например, нежно любимый мною MSOffice, его версия XP до сей поры вполне удовлетворяет меня во всех отношениях, и при всем моем глубоком уважение к Ribbon интерфейсу, переходить на последнюю версию и покупать для этого новый компьютер (ну или вместо редактирования играть в пошаговую стратегию) не испытываю не малейшего желания.

Так что сайт portableapps.com и сейчас очень хорошо, потому что таки портабельные версии программ там как бы есть и дизайн не ухудшился, но вот эта новая мегафича расстраивает меня до невозможности.

Да, возвращаясь к скайпу. Наверное, отличная вещь, я даже восстановил логин с паролем, которые удачно забыл. Но вот как-то оно опять не пошло. Т.е. как видеотелефон оно мне вроде как не надо, а как IM, программа с ходу заевшая 100 метров памяти, не отвечает моему пониманию чувства прекрасного.

среда, 4 мая 2011 г.

Про Обаму, подделки и новые технологии

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

Итак. Как в принципе, кодируются цветные изображения полученные со сканера. Понятно, что самый простой способ вывалить этот самый скан в raw формате, весить оно будет вполне достойно, и в силу этого веса так никто не делает. Второй вариант ужать его, например, в jpeg или jp2k, при этом произойдет потеря качества, но размер документа ужмется на пару порядков. Здесь надо уточнится про потерю качества при сжатии в jpeg. Jpeg кодинг изначально разрабатывался для сжатия полноцветных изображений с потерей качества, но при этом, чтобы данная потеря не сильно воспринималась человеческим глазом. И со своей задачей данный вариант кодирования вполне справляется. Т.е. например, фотографии жмет вполне успешно, и не шибко их при этом портит, так же понятно, что при сжатии происходит балансировка между тем насколько дерьмовым будет результат и тем насколько мы хотим уменьшить размер получаемого файла. Однако, в случае если исходная картинка это скан какого-либо документа содержащего текст, то попытка сильно снизить качество приводит к существенной размытости текста вплоть до нечитаемости. Поэтому на некотором этапе развития технической мысли, был сделан следующий финт ушами. Исходное изображение (например, отсканированная страница книги) делится на два слоя: цветная подложка и черно-белый слой. Деление обычно делается относительно простым способом, а именно отсечением по порогу. Т.е. все пиксели которые "темнее" некоторого порога (т.е. достаточно близки к черному цвету) кладутся в черно-белый слой, а все остальное считается подложкой. Затем эти два слоя кодируются по отдельности, цветной при помощи jpeg, черно-белый либо CCIT либо JBIG2 в зависимости от дальнейших изысканий. Это позволяет достаточно хорошо уменьшить вес результирующего документа при этом не потеряв читабельность текстов. Часто также сканируют страницы с разрешением 600DPI, а потом у нижнего (цветного) слоя уменьшают разрешение в два-три раза, на глаз выглядеть будет замечательно.

Собственно весь формат DjVu это четкий пример такого способа хранения отсканированных документов. В пдф-формате также есть все средства для осуществления такого кодирования, а именно возможность отрисовать на странице несколько картинок одну над другой, при этом с поддержкой сolorkey (т.е. замены одного цвета прозрачностью) для верхних. Поэтому большинство приличных программ для создания пдф, осуществляют резку картинок на слои и их независимое кодирование.

Документ, который так взбудоражил общественность, сделан именно по такому принципу, цветная подложка, кодированная при помощи DCTDecode, и 8 черно белых картинок, закодированных FlateDecode.

Почему восемь черно-белых? Потому что черных кусков в выделенном черно-белом слое мало, т.е. большая часть слоя белая, кодировать весь слой целиком "дорого" (и не нужно) по вкладу в вес результата, поэтому его порезали и закодировали кусками.

По поводу того, что "вот тут надписи размыты, а тут четко черные пиксели", ну так вот это результат именно кодирования в два слоя, при том, поскольку черно-белый слой выделяется по некому пороговому значению, все те пикселы, что были "почти черные" при кодирования перешли в чисто черный цвет.

Как-то так.

А если без технических деталей, то учитывая последние событие в Африке и конкретно в Ливии, у меня наличие мамы и папы у некоторых американцев и европейцев вызывает очень большие сомнения, которые сканами бумажек разрешить не получается.

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

суббота, 9 апреля 2011 г.

Про книжку о нечетких множествах

Уже второй месяц весны подходит к середине, а за окном идет дождь и лежит снег, от этого настроение так себе. Решил, дабы развеяться, почитать чего-нибудь эдакое. Благо эдакового лежит на три года вперед, а руки все не доходят. Ухватился за книжку Рыжов А.П. "Элементы теории нечетких множеств и ее приложений" 2003 года выпуска. Честно добрался до 18-ой страницы и бросил. Чтобы не забыть отчего бросил, отпишусь.

Итак страница номер 8. Вводится функция:


а потом предъявляется её график:


Совершенно очевидно, что в случае если beta не лежит ровно посредине отрезка [alpha, gamma], то функция будет разрывная, о чем автор не упоминает, и не понятно на фига там вообще этот общий вид функции, если использовать ее потом будут ровно для случая склейки в середине отрезка.

Ладно думаю, не в том суть. Читаю дальше. Добрался до страницы 14, и утверждения 1. Доказывается утверждение, при доказательстве рассматриваются 15 случаев, хотя по сути надо рассмотреть 6, да и те рассматривать смысла особого нет (ну если это научная монография, а не учебник для студентов первого курса).

Ну и наконец добрался до страницы 18. Вводится понятие подмножества alpha уровня нечеткого множества. Все хорошо, но. Если исходить из определение нечеткого множества, как множества пар (график): <точка из универса> X <значение в этой точке, некоторой меры (нормированной) на универсе>, то подмножество alpha уровня которое задается как:


уже нечетким множеством не является, а будет обычным множеством (не вопрос, что из обычного нечеткое получается без применения магии, но таки вот то, что в формуле это обычное, и никаких уточнений автор не дает).

А дальше идет утверждение:

Любое нечеткое множество A можно представить в виде:


И вот опосля формулировки этого утверждения читать бросил. Потому что во-первых, считаю, что скобки в формулах обычно ставят не для красоты, а для облегчения этих формул  чтения, и когда скобки ставить забывают это не есть хорошо, потому что на кой плодить сложности на ровном месте. Во-вторых, как трактовать в данном случае максимум? Множество (обычное прошу заметить, как я выше написал) умноженное на число, по стандартному определению, которое в книжке нигде не переопределялось, есть множество состоящие из элементов исходного, умноженных на это число. Учитывая, что универс у нас множество общего вида и операция умножения на число там не определена, получается полный каюк, уже то что под максимумом не дешифруется ни во что приличное ну и понеслось.

Понятно, что если сильно задуматься, и предположить, что автор отождествляет обычные множества с нечеткими множествами задавая степень принадлежности характеристической функцией. А потом еще что умножение в данном случае, это умножения степени принадлежности, а слева нечеткое множество, а справа функция, но мы будем нечеткое множество приравнивать к функции и т.д и т.п. То можно немного поднапрягшись понять, чего жеж это вот равенство в утверждении означает. Только вот мое глубокое убеждение, что монографии по математике так не пишут. Меня учили, что тексты по математике вообще сильно отличаются от художественных текстов, да. Определение-лемма-утверждение-теорема и с выходом на начало цикла. И я считаю учили меня совершенно правильно.

Вообщем авитаминоз вызвал повышенную озлобленность, наверное, а книжка просто под руку попалась не вовремя.

четверг, 24 февраля 2011 г.

EPUB to Kindle converter

Замутил тут новую программу: EPUB to Kindle converter. Собственно, вначале просто ковырял mobi и epub на предмет добавления в лучший просмоторщик документов, потом просто ковырять стало скучно, решил применить знания на практике. Ну и являясь вполне счастливым обладателем Kindle, который собака не жрет ничего кроме MOBI и PDF, заодно написал себе инструмент для загоняния всякого для чтения на девайсе, есть там пара мыслей как все это углубить и расширить, хотя возможно и не в рамках конвертерного проекта. Мыслей правда и помимо этого до черта, вот времени на все радости к сожалению не всегда хватает.
С другой стороны интересно посмотреть на проект, сделанный фактически с нуля за месяц и на то чего из этого получится.

Про мега варианты защиты текста в XPS

В связи с STDU Viewer кинули тут замечательный XPS файл. Проблема была в том, что страницы рендерились крайне медленно, т.е. тормозило все жутчайшим образом. Первая мысль была что народ в очередной раз чего-то отсканировал c 600 dpi разрешением и закрутил в xps. Думаю, эко до чего техника дошла, раньше все в djvu и pdf гнали, а теперь значит и до xps добрались. Причем размер у файла был вполне себе достойный, больше 30 метров, что подозрения усиливало.
Но выяснилось, что все намного веселее.
Нас самом деле xps, он как бы сильно похож на pdf, т.е. то же документ с подготовленными к печати страницами, часть данных может быть представлена в векторном виде (причем вроде как тут инструментов у xps даже побогаче), часть в растровом, часть просто как текст, причем и шрифты можно внедрить. Надо сказать, xps видится мне форматом существенно прямее и четче чем pdf, хотя и не без своих заскоков. В pdf например, есть понятие потока и соответственно кодированного потока, ну и есть пяток разных кодеров, типа Deflate, jpeg, CCITT и прочем RLE, причем над данными, которые вы хотите положить в pdf файл, вы можете последовательно надругаться разными кодеками. Понятно, что по-большому счету вот это вот последовательное применение нескольких кодеков над одними и теми же данными нужно крайне редко (т.е. я вообще не припомню, чтобы с таким сталкивался, хотя и допускаю, что кто-то где-то и когда-то этим пользовался и может даже пользуется до сих пор). При этом совершенно очевидно, что ч/б картинки будут кодироваться CCITT или JBIG2, цветные jpeg или jpeg2k ну, а текстовые данные Deflate или LZ77 (вроде LZ77 там тоже есть лезть проверять в спеку лень). Но все как обычно сделано очень обще, при том, что вся эта общность вырождается во вполне конкретную частность в 95% случаев, и еще кучу работы чтобы поддержать оставшиеся 5%. В отличие от pdf в xps все проще и от того приятнее для реализации, причем сильно сомневаюсь, что можно найти pdf не переводимый в xps.
В xps правда есть свои веселые заморочки, типа virtual brush с дикой вложенностью, но в целом формат на мой вкус попрямее, и думаю если микрософт его не забросит, в конечном итоге он должен pdf придушить. Хотя судя по скорости распростронения электронных читалок, есть вполне приличная вероятность, что скоро форматы с четким разбитием на страницы сдохнут уже все скопом, а выживут всякого рода ePub, FB2 и прочие MOBI. А если учесть, что гугл всерьез решил пересканировать всю мировую литературу, перспектива, лично меня, сильно радует.
Возвращаясь к тому файлу xps с которого все началось. Итак, открываю файл начинаю разбираться чего там внутре. Честно говоря, давно я так не удивлялся.
Как известно современные шрифты (да вообщем, и не очень современные тоже, поминая METAFONT Кнута), задают каждую буквовку набором кривых, от чего собственно шрифты и называются векторными. Так вот ребята готовившие документ, не стали внедрять шрифты, а просто перевели весь текст в набор кривых, благо формат xps вполне это повзоляет.
Плюс на мой взгляд только один. Документ по сути разом стал Read Only, т.е. скопировать оттуда текст стало фактически не возможно штатными средствами. Из минусов размер документа раздулся до невозможности, т.е. если его растерезовать с разрешением 600DPI и потом загнать в pdf с JPBIG2 кодеком или в djvu, то этот самый растровый документ будет раз в 10 меньше по объему (а может и в 20). Ну и понятно что скорость рендеренга такого документа резко снизилась, потому что одно дело когда шрифт растеризуется и кешируется, и другое когда кешировать особенно нечего и каждый символ приходиться растеризовать заново.
С одной стороны столь элегантное решение по созданию Read Only документов не может не радовать, с другой плодить энтропию в таких объемах мягко говоря выглядит не экономно.

среда, 2 февраля 2011 г.

Про формат epub, русские народные сказки и прочее

Понадобилось мне тут поразбирать файлы в формате epub. Я в свое время на этот формат уже смотрел, и помнилось мне, что все там просто. Т.е. всего то запакованный в зип набор html-к, картинок и css-ок, плюс некая главная xml-ка в которой прописано, в каком порядке те html-ки собираются в книжку.
Начал смотреть. Собственно первая задача, это определить, который из файлов в зипе есть та самая главная xml-ка. Как бы сделал я будь я составителем стандарта? Я бы сделал просто. Сказал бы, вот вам граждане зип, кладите туда чего хотите, с какими хотите названиями и папками, но опосля всего этого безобразия будьте любезны положить туда же в корень архива файл main.opf, который бы описывал чего жеж с тем что вы в зип понапихали делать. Оно, конечно, может в тот момент я был бы не в духе и заставил бы бедных граждан называть тот файл general.opf, а то и TyrpYRMyrDYR.opf, всяко бывает. Но как-то вот так, да.
Как же оно реализовано мега гражданами составителями формата? Естественно, там не такие простаки, поэтому все существенно круче, а именно.
В зипе должна обязательно быть папка META-INF, в папке той должен быть обязательно файл container.xml, в том файле, который кстати "содержит XML которая использует "urn:oasis:names:tc:opendocument:xmlns:container" namespace для всех ее элементов и аттрибутов." Да так вот в этом container.xml должен содержаться элемент , который в свою очередь должен содержать по меньшей мере один элемент , имеющий media-type "application/oebps-package+xml". Но только один элемент , имеющий media-type "application/oebps-package+xml" должен быть включен. И вот наконец файл на который ссылается первый элемент, имеющий media-type "application/oebps-package+xml" будет содержать EPUB rootfile.
Я когда все это прочитал, понял, что что-то это мне напоминает.
"Смерть Кащея на конце иглы, игла в яйце, яйцо в утке, утка в зайце, заяц ларце, ларец на дубе, дуб на острове, остров хер пойми где" а теперь Ваня шкандыбай в сторону того острова и отстреливай весь этот зоопарк.
Самое интересное во всем этом мегаконструкте, полнейшее отсутствие полезности. А местами даже вредность. На 10 epub файлов скаченных из разных мест и созданных явно разными программами, не нашлось ни одного, в котором бы файл container.xml содержал что-то кроме ссылки на файл. Кто-то называл тот главный файл main.opf, кто-то general.opf, кто-то запихнул его не в корень архива, а подпапку, но по сути весь этот восторг разнообразия, программистам писавшим редакторы или конвертеры в epub вряд ли нужен. Если бы в спецификации было четко написано, как назвать главный файл они бы его так и назвали и вряд ли сильно расстроились за такое тоталитарное измывательство над креативными людьми.
Самое грустное, что это вот странное желание не упростить сложное, а усложнить простое, оно последние время наблюдается практически везде в ПО. "Давайте мы сейчас зафигачим такой формат, такой общий, такой абстрактный, что только держись". И понеслось, навертели такое, что реализовывать поддержку того формата целиком не упиралось уже даже монстрам индустрии, после чего начинаются дальнейшие радостные крики, а вот профиль 0, это когда мы из нашего мега формата отрезали вот это, вот то и еще здесь оставили только параметры от 0 до 2, а не от 0 до 2 в 32-й как было изначально, а вот профиль 1, там мы тоже все обчекрыжали и файл должен быть тока в UTF-8. Абалдеть.
Собственно, если начать сравнивать форматы сделанные лет 10-15 назад и сейчас, отличие разительно и совершенно очевидно. Берем Word-овский doc, благо теперь его открыли - все просто понятно, все пляшет от практических нужд, видно что делалось оно людьми, которые пишут программы, причем не программы вообще, а вот один из лучших текстовых редакторов (как по мне так и лучший), а не пытаются поковырявши в носу или где то там еще выдумать "чего бы там могло бы быть если бы оно бы туда бы и чтобы всем бы круто, вот". Берем DjVu тоже все четко и понятно, PDF старенький - все отлично, потом пошли формы, 3Д, мультимедиа и прочее и прочее и прочее. Смотрим, например, спецификацию 1.7. на PDF: "Sound, Movies, 3D artwork"... граждане, башку то включите, хочется интерактивных документов со всеми этими вашими мультимедиа, дык кто же спорит - здорово, но при чем тут PDF, который разбит на страницы и вообще подготовлен к печати, это ж PostScript по факту то, чего из него HTML то делать, мало что-ли HTML?
Из относительно новых, только FB2 греет мне душу, простой понятный и главное ровно то что нужно, для задачи хранения книги в библиотеки и ее отображения на компьютере. Т.е. люди представляли для чего им нужен формат, а не пытались сделать нечто чем можно и гвозди забивать, и стихи писать.
Вообщем ситуация навевает грусть, ибо вместо того чтобы сделать простое просто, а сложное постараться упростить, имеется тенденция, усложнять простое, а сложное и вовсе не делать.