Как нам книги читать

image

Вначале было слово

Копирасты хотят денег, а продают ограничение доступа. То есть вся их бизнес-модель описывается в этих трех словах — деньги за доступ.

Тут к слову наблюдается типичная подмена понятий — хотят денег а воюют за доступ. Потому что кто девушку ужинает, тот ее и танцует. Теряешь в монополии на доступ — теряешь (в силу нулевого копирования) и деньги.

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

image

И что делать?

Начну с места в карьер. Неэффективны донаты и к. Зачем платить больше?

По этой же причине страшилки «авторы перестанут писать книги» не действуют. Почему? Да потому что профессиональная литература и учебная никуда не денется, как предмет первой необходимости (учиться и работать ведь не перестанут). Тут вполне себе издатели на местах, и издательства а-ля сафари букс, орейли и прочие тут нужны и выполняют массу полезных функций. Хотя бы — обеспечивают минимальное качество учебной литературы.

А вот детективы и прочие фэнтези — это entertainment, то есть развлекалово. Не будет Перумова — начнем читать Экслера, графоманов ведь меньше не станет, не так ли? Вот этот (по мнению многих — излишне раздутый тиражами «ниже плинтуса») сегмент в опасности. Именно тут и идет эпическая битва бабла со злом копирастов и потребителей.

Платить за развлекуху добровольно? Да вы что, с ума посходили? Если таких сознательных будет хотя бы 1% — это будет полная победа нового мира над замшелыми бюрократами, которые не видят разницу между грампластинкой и файлом в интернете. Позволю себе сослаться на эксперименты Лукьяненко — очень показательно.
image

И что же предлагается?

Да что-то жуткое.

Авторам нечего есть? Пусть выкладывают книги онлайн и ставят себе адворды! Ага, ага — и с этих копеек оплачивают корректора, редактора и художника.

А давайте за то что я читаю книги — платит провайдер! Или налог такой введем. Чего уж там, давайте сразу с пенсий высчитывать. Старушки ведь читают книги? Воот! А когда всем известный Мигалков идет этим путем — получаем море возмущения и прочие бурления.

Или так. Давайте с каждого — по рублю! Поэтому один будет качать и смотреть клевые картинки 24 часа в сутки (бездельник которого кормят родители), а работяги будут стоять у станка, и им газетку перед сном почитать за счастье. Зато все при деле.

Ну или классика — я потом заплачу. Когда-нибудь. Вот прочитаю еще три книги серии — и вот тогда 100р перечислю. И неважно, что уже оказанная услуга по развлечению мало что стоит.

image

Надежды нет?

Тут есть очень важный момент, на который мало кто обращает внимание. А именно, потребитель завтра согласится на то, на что он не согласится «никогда-никогда» сегодня. Вопрос в цене — что потребитель с этого получит. Сегодня мы в штыки воспринимаем «книги только в онлайн» или «читалку с ДРМ».

Почему?

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

То есть — чтобы копирастам было проще, мы как потребители получаем геморрой на свои же деньги. Вот в двд-шке от пиратов уже заботливо отрезаны дурацкие надписи красным на черном, которые еще и не промотаешь (классика).

image

Та же ситуация с книжками. Поиск никакой, куча ограничений, даже картинку скопировать — это победа. А уж когда под видом книжки продают фактически линеаризованные ПДФки (то есть набор картинок)… И это — за деньги? Вы издеваетесь?

Хотя современные подходы именно к книгам могут просто поражать воображение.

Вот приведу пару примеров из области социальной, которая требует чтения онлайн.

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

Но — книжку оффлайн уже полноценно (по новому) не почитаешь.

А вот примеры технологические, которые электронный болван может обеспечить сам (при наличии интернета)

  • обеспечит подборку книг похожей тематики
  • аннотирует книгу сам, сделав ссылки на википедию м дбпедией
  • сам составит список ключевых понятий и навигацию по ним
  • интерактивная навигация по аннотациям и комментариям
  • интерактивная навигация по книгам серии, автосноски и автоссылки
  • автоматически построенная расширенная навигация между главами, разделами, выносками и прочим
  • — построит превью книжек — ознакомиться можно будет даже не заходя в читалку, прямо в браузере
  • для учебной литературы — куча дополнительных бонусов, начиная от авто-опросников по прочитанному а-ля ЕГЭ, и заканчивая персональным «ментатом», который построит целый учебный курс индивидуально под читателя.

Но — книжку оффлайн уже полноценно (по новому) не почитаешь.

В связи с этим интересно мнение хабрасообщества, а то вдруг я курил что-то нехорошее.

Будете ли лично вы пользоваться книгами с ограничениями, если они дадут вышеперечисленные возможности?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Никто ещё не голосовал. Воздержавшихся нет.

ссылка на оригинал статьи http://habrahabr.ru/post/181700/

Электронная подпись на УЭК, что даёт и нужна ли вообще? Часть 4

Это 4-ый пост, который посвящён описанию возможностей УЭК. Предыдущие части:
Опыт получения универсальной электронной карты. Розовая теория против суровой реальности. Часть 1
Как я получил универсальную электронную карту после 3-х месяцев ожидания. Часть 2
Практическое применение универсальной электронной карты (УЭК) в городе и интернете. Часть 3

Поначалу, я хотел лишь оформить отдельным комментарием к своему топику то, как я наконец-то записал электронную подпись (ЭП) на Универсальную электронную карту (УЭК). Однако информации для одного комментария слишком много, а до отдельного топика она ещё была скудноватой. И вот теперь, спустя чуть ли не месяц после того, как я достал Сбербанк, и записал ЭП на УЭК, я могу с полной уверенностью говорить, что УЭК с ЭП действительно чего-то, да стоит. Без ЭП — кусок красивого и пока редкого пластика, хоть и более крутого, чем тот, который используется для изготовления обычных карт. Но обо всём по порядку.

Запись квалифицированной электронной подписи на УЭК

Список пунктов, где можно как подать заявление на УЭК, так и записать ЭП в Москве, находится тут. Учитывая предыдущие приключения (в отделении Сбербанка на Большой Грузинской (Белорусская) не было сертификата от КриптоПро, на Кропоткинской — свои заморочки с организационными вопросами), я решил не рисковать и подождать, пока кончатся майские праздники и поехал на ст. м. Кропоткинская, по адресу Москва, Соймоновский пр-д, 5, предварительно позвонив им по номеру +7 (495) 669-07-68 и уточнив, решились ли организационные вопросы и могут ли они мне записать ЭП. В итоге получив утвердительный ответ, я поехал туда. Благо, таких как я было немного, точнее с таким вопросом я был один, поэтому лучами внимания я обделён не был. В уголке стоит отдельный ПК с ридером и проводным устройством для ввода кода безопасности. Сначала вставил УЭК в ридер, и краем глаза увидел, что у них всё в точности, как в этой инструкции (начинать читать со страница 41). Попросили ввести PIN1. После этого попросили паспорт и с него всю информацию перенесли в окно (в мануале стр. 43). По моему желанию, туда также вписали ИНН и e-mail. После этого ввёл PIN2. Потом они распечатали одно заявление на создание квалифицированного сертификата ключа проверки электронной подписи (пример того, как выглядит), я на нём расписался и отдал его, а после этого они распечатали 2 копии сертификата ключа проверки электронной подписи и я расписался уже на двух листах, на оба листа начальник отделения поставил печать Сбербанка и свою роспись. Один лист отдали мне, второй остался в банке.

Проверка работы

В двадцатый раз ехать в Сбербанк из-за возможных косяков мне не хотелось, поэтому сразу после того, как меня отпустило, я сел за столик, достал ридер, нетбук и попробовал УЭК в действии. Инструкцию по установке софта от КриптоПро, установку сертификата УЦ УЭК и установку личного сертификата я уже писал тут, так что мне нужно на тот момент лишь было установить личный сертификат с карты на компьютер. Всё прошло без проблем, и софт нормально воспринял и ридер и карту:

В итоге сертификат успешно поставился::

Кстати, вот его свойства:

Авторизация на госуслугах

Мне сразу после записи ЭП сказали, что пока она работает только на госуслугах (кстати это не совсем так, как потом оказалось, ЭП можно использовать и в офлайне, опишу это ниже), поэтому я немедля пошёл на портал госуслуг и выбрал заветный способ входа:

После нажатия заветной кнопки, тут же выскочило Window’ое окно, с предложением выбрать сертификат:

И вот всё до этого момента шло без сучка и задоринки, как и тут оказалась ложка дёгтя: после нажатия кнопки «Ок» при выборе сертификата и до момента появления окна с предложением ввести PIN-код, которое выводит КриптоПро, проходит 37,8 секунд. Причём это не разовый случай, я временами ставлю софт от КриптоПро на компьютеры, и почти на всех компьютерах, на которые я ставил сей софт, наблюдается точно такая же ситуация, с разницей в 2-4 секунды. И только на одном или двух компьютерах, получалось так, что окно выводилось сразу, хотя я уже забыл что это было, поэтому может и выдумываю. Кроме того, за это окно так же ответственен браузер-плагин, так что может только в нём и проблема, но кроме сорока секунд ожидания, Google Chrome выводит окно о том, что плагин не отвечает, и надо его убивать. Естественно плагин отрабатывает своё, и окно с поле для воода PIN-кода появляется, но факт остаётся фактом — лишние окна появляются. В общем вот он, виновник сорокасекундного торжества:

И после ввода пароля (PIN2) через пару секунд оказываемся в личном кабинете на госуслугах. Никаких опций внутри госуслуг связанных с ЭП нет, за исключением неработающего счётчика оставшегося количества дней действия сертификата ЭП:

Подача заявки на услугу в ПГУ с использованием ЭП

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

Однако никаких реально интересных действий с ЭП нет, кроме одной услуги от Минкомсвязи: она называется «Подтверждение подлинности ЭП сертификата». Нужно вытянуть из IE сертификат и залить в ПГУ. Из IE 10 его можно вытянуть так: Свойства обозревателя-> вкладка «Содержание»-> блок «Сертификаты» кнопка «Сертификаты»-> вкладка «Личные»-> выбираем сертификат и жмём кнопку «Экспорт»-> Далее-> Нет, экспортировать закрытый ключ-> «Файлы X.509 (.CER) в кодировке DER»-> выбираем имя файла и место, куда его следует экспортировать. Например на рабочий стол-> Далее-> Готово.

Теперь заходим на главную страницу ПГУ, находим «Министерство связи и массовых коммуникаций Российской Федерации и выбираем „“Подтверждение подлинности ЭП сертификата». И жмём кнопку «Получить» в правом верхнем углу. Правда и тут без плясок не обошлось, хотя может виной тому IE — я загрузил файл, он отобразился в списке загруженных файлов, выбрал все 3 галки для уведомлений и нажал «Подать заявление». Страница долго грузилась, а потом просто загрузка остановилась и я остался у разбитого корыта на той же странице. Но при это открыв в соседней вкладке ПГУ, я зашёл в «Мои заявки» и там появилось это заявление со статусом «Отправлено в ведомство». И примерно через минуту пришёл ответ, что всё готово.

Теперь, что касается лицензии на КриптоПро. Он ведь в обычном случае — платный. Я ещё заранее написал запрос в техподдержку, и общий смысл такой:

Моё письмо
В инструкции на вашем сайте: www.cryptopro.ru/sites/default/files/private/uec/uec-crypto-pro.pdf сказано, что для получения лицензии на КриптоПро УЭК CSP (Версия ядра СКЗИ 3.6.5364КС1; Версия продукта 3.6.6511) необходимо обратиться по данному адресу, т.е support@cryptopro.ru
Скажите пожалуйста, как можно получить лицензию для КриптоПро УЭК CSP?

Ответ 1
Инструкция, которую Вы изучаете, предназначена для Операторов ППВ.
Физические лица, как правило, получают лицензию, встроенную в сертификат. Но это уже зависит от УЦ, в котором данный сертификат выпущен.
Вы можете прислать свой сертификат и я подскажу-встроена в него лицензия или нет.

Ответ 2
В большинстве УЦ выдаются сертификаты на УЭК, в которых встроена лицензия на КриптоПро УЭК CSP. Срок ее действия ограничивается сроком действия сертификата.
Данная лицензия предназначена только для работы данного сертификата с соответствующим ему закрытым ключом.

Ответ 3
Если в сертификате есть лицензия, то по наступлении даты на скриншоте:

Возможность работы с этим сертификатом и соответствующим ему закрытым ключом по-прежнему будет возможна.

Работа с ЭП вне рамок госуслуг

Госуслуги это конечно, хорошо, но куда более практически применимым вариант использования УЭК является возможность подписывать своей ЭП документы MS Office а так же pdf-файлы.

MS Office

Для того, что бы подписывать файлы MS Office, нужно скачать КриптоПро Office Signature (триал на 90 дней), и теперь можно подписывать и файлы MS Office’а. Как им пользоваться написано в инструкции

Выглядит это в Office’е таким образом:

При нажатии на кнопку «Добавить электронную подпись» появляется окно, где нужно ввести текст, который будет отображаться.

Потом после нажатия «Ок» появляется КриптоПрошное окно ввода PIN-код от карты, и после ввода PIN-кода появляется такое окно:

Ну и просмотр ЭП в самом Word’е:

Плюс, как сказано в инструкции, можно вставлять свою «ручную» подпись, для удобства восприятия и подписывать документ ЭП. Эдакий штамп. Выглядит это так:

Подпись pdf файлов.

К сожалению КриптоПро PDF не ставится, т.к. требует КриптоПро CSP 3.6. Это при том, что у меня стоит версия 3.6, но она специально предназначена для УЭК, хотя сомневаюсь, что есть большая разница между УЭК версией КриптоПро CSP 3.6 и простой КриптоПРо CSP 3.6.

Итог

ЭП весьма интересная штука, но при отсутствии реальной необходимости подписывать документы с её помощью, она становится лишь приятным бонусом, за который раньше, да и сейчас, люди платят Ростелекому (вроде бы) деньги.

Тут появился интересный комментарий по поводу полиса ОМС. Стоит задуматься.

P.S. Тут пишут, что с 23-го мая можно входить на госуслуги по УЭК. На деле, видимо это официальный ответ, который даётся после того, как всё доделано и ничего не ломается. По факту, уже 13-го мая (именно тогда мне записали ЭП) я смог авторизироваться на госуслугах по УЭК. Единственное изменение, которое произошло в конце мая — обновили страницу авторизации, дописали через слеш «УЭК» и поменяли картинку, где к токену добавили изображение УЭК.

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

ссылка на оригинал статьи http://habrahabr.ru/post/180739/

Qbs 1.0.0 released

Qbs (Qt Build System) вышел на тот уровень, когда он уже стал способен собирать довольно сложные проекты в Qt Creator. Поэтому, мы считаем, он заслуживает номер версии, который отражал бы его полезность для пользователей. Чтобы стимулировать вас использовать Qbs в ваших проектах, мы представляем Qbs 1.0.0.

Зачем мне это надо?

  • Разрабатывать свой проект для различных платформ в одной и той же оболочке;
  • Создавать параллельно разные конфигурации своего проекта;
  • Быстрые сборки. Сравнение скорости здесь;
  • Язык QMLish. Пишите свои сложные задачи на JavaScript вместо какого-то непонятного языка (я смотрю на тебя, qmake);
  • Qbs поддерживается в Qt Creator 2.8;
  • Qbs не привязан к версии Qt;

Где можно «отхватить» кусок пирога?

Qbs будет интегрирован в Qt Creator 2.8.
Инструкция, как собирать Qbs из исходников здесь.

Пожалуйста, сообщайте о любых найденных ошибках: https://bugreports.qt-project.org/browse/QBS
Задать интересующие вас вопросы можно по этому адресу: http://lists.qt-project.org/mailman/listinfo/qbs

Можно ли с помощью Qbs собрать Qt?

Это самый часто возникающий вопрос. В принципе, можно заменить qmake на qbs, но мы все равно будем нуждаться в configure и нашем позорном syncqt. Я не вижу в этом особого смысла. Однако мы пытаемся заменить configure и syncqt. Это как раз тот момент, где qbs еще испытывает недостаток в возможностях. Кроме того, стоит отметить, что в qbs пока еще не реализована автонастройка.

ссылка на оригинал статьи http://habrahabr.ru/post/181698/

Google Faces: ищем скрытые лица на картах Google

Помнится, еще в «Пионерской правде», уж не помню, сколько мне было тогда лет, как-то напечатали снимок лица на поверхности Марса. Уже потом, через несколько лет, появилась информация о том, что это просто игра теней, и никакого лица на самом деле на Марсе нет. Тем не менее, мифы и легенды на эту тему появляются до сих пор. На нашей Земле подобных «лиц» гораздо больше, в силу ряда причин. И немецкая компания Onformative решила запустить проект Google Faces, для поиска таких лиц по всему земному шару (само собой, основой послужил проект Google Maps).

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

Тем не менее, практическая цель у проекта все же есть. Команда решила проверить, может ли программа «увидеть» в игре света, комбинации разных форм ландшафта, то, что может увидеть человек. Ведь в Сети регулярно появляются фотографии с лицами известных людей и персонажей на пригорелых сковородках, тостах, стенах домов и прочем.

Для работы над проектом был создан бот, и задействована система из двух ПК. Один прокручивал карты Google, а второй, на котором работала программа, пытался обнаружить нечто, схожее с лицом человека. Чаще всего «лица» обнаруживались в местах с большим количеством теней на светлом фоне (например, лес, деревья которого отбрасывали причудливые тени).

коллекция «лиц» уже порядочная, и можно потратить минутку-две, разглядывая то, что уже есть. Сейчас алгоритм проверил всего лишь 5% от всего, что есть на Google Maps, так что мы еще увидим много интересного (скорость работы алгоритма — один кадр в секунду, примерно так).

Via wired

ссылка на оригинал статьи http://habrahabr.ru/post/181696/

Атомарные операции

Буквально на днях ко мне обратились с вопросом.

А зачем нужен префикс LOCK, или его аналог InterlockedDecrement при вызове процедуры _LStrClr из модуля System. Данная процедура декрементирует счетчик ссылок строки и при его обнулении освобождает память, ранее занятую строкой.

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

В принципе предпосылка интересная, но…

Но ведь мы передаем строку в класс нити.
Это как минимум приводит к увеличению refCnt, а стало быть мы можем «попасть» на MemLeak в том случае, если бы не использовались атомарные операции при декременте счетчика ссылок.

Это демонстрирует нам код _LStrClr

procedure _LStrClr(var S); {$IFDEF PUREPASCAL} var   P: PStrRec; begin   if Pointer(S) <> nil then   begin     P := Pointer(Integer(S) - Sizeof(StrRec));     Pointer(S) := nil;     if P.refCnt > 0 then       if InterlockedDecrement(P.refCnt) = 0 then         FreeMem(P);   end; end; {$ELSE} asm         { ->    EAX pointer to str      }           MOV     EDX,[EAX]                       { fetch str                     }         TEST    EDX,EDX                         { if nil, nothing to do         }         JE      @@done         MOV     dword ptr [EAX],0               { clear str                     }         MOV     ECX,[EDX-skew].StrRec.refCnt    { fetch refCnt                  }         DEC     ECX                             { if < 0: literal str           }         JL      @@done    LOCK DEC     [EDX-skew].StrRec.refCnt        { threadsafe dec refCount       }         JNE     @@done         PUSH    EAX         LEA     EAX,[EDX-skew].StrRec.refCnt    { if refCnt now zero, deallocate}         CALL    _FreeMem         POP     EAX @@done: end; {$ENDIF} 

В случае использования неатомарного декремента инструкция JNE имеет огромный шанс выполниться не верно. (И она действительно выполнится не верно, если убрать LOCK префикс).

Я конечно пробовал объяснить данную ситуацию примерами из интеловского мануала, где объясняется работа, но в итоге решил реализовать следующий пример (которым и смог убедить автора вопроса):

program interlocked;   {$APPTYPE CONSOLE}   uses   Windows;   const   Limit = 1000000;   DoubleLimit = Limit shl 1;   var   SameGlobalVariable: Integer;   function Test1(lpParam: Pointer): DWORD; stdcall; var   I: Integer; begin   for I := 0 to Limit - 1 do   asm     lea eax, SameGlobalVariable     inc [eax] // обычный инкремент   end; end;   function Test2(lpParam: Pointer): DWORD; stdcall; var   I: Integer; begin   for I := 0 to Limit - 1 do   asm     lea eax, SameGlobalVariable     lock inc [eax] // атомарный инкремент   end; end;   var   I: Integer;   hThread: THandle;   ThreadID: DWORD; begin   // Неатомарное увеличение значения переменной SameGlobalVariable   SameGlobalVariable := 0;   hThread := CreateThread(nil, 0, @Test1, nil, 0, ThreadID);   for I := 0 to Limit - 1 do   asm     lea eax, SameGlobalVariable     inc [eax] // обычный инкремент   end;   WaitForSingleObject(hThread, INFINITE);   CloseHandle(hThread);   if SameGlobalVariable <> DoubleLimit then     Writeln('Step one failed. Expected: ', DoubleLimit, ' but current: ', SameGlobalVariable);     // Атомарное увеличение значения переменной SameGlobalVariable   SameGlobalVariable := 0;   hThread := CreateThread(nil, 0, @Test2, nil, 0, ThreadID);   for I := 0 to Limit - 1 do   asm     lea eax, SameGlobalVariable     lock inc [eax] // атомарный инкремент   end;   WaitForSingleObject(hThread, INFINITE);   CloseHandle(hThread);   if SameGlobalVariable <> DoubleLimit then     Writeln('Step two failed. Expected: ', DoubleLimit, ' but current: ', SameGlobalVariable);     Readln; end. 

Суть примера — есть некая глобальная переменная SameGlobalVariable (она выступает в роли счетчика ссылок строки из изначальной постановки задачи) и выполняются изменения ее значения в обычном и атомарном режимах с использованием нити.

Здесь наглядно видно различия между двумя режимами работы.
В консоли вы увидите примерно следующее:
Step one failed. Expected: 2000000 but current: 1018924
Ошибки по второму варианту реализации вы не увидите никогда 🙂

Кстати первый вариант может использоваться в качестве достаточно хорошего рандомизатора (о котором я говорил в предыдущих статьях).

Резюмируя:

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

Нет, это не факт, это больше чем факт — так оно и было на самом деле ©

— © Александр (Rouse_) Багель
Апрель, 2013

ссылка на оригинал статьи http://habrahabr.ru/post/181694/