Рубрика «reader»

Я всегда любил читать. Начиная с детского сада. Потом в школе я перечитал почти всю библиотеку. Когда пошел на работу, в лихие девяностые, покупал на рынках кучу всяких книг. Время было тяжелое. Многие уезжали в Германию на ПМЖ. Уехал и мой друг. Потом через несколько лет в конце девяностых прислал посылку в которой кроме невиданных заморских сладостей лежало 3 компьютера Sharp PC3000.

Именно таких:

Моя первая читалка на основе Sharp PC3000 - 1
Читать полностью »

Что получится, если убрать из современной электронной книги все дополнительные примочки, оставив большой аккумулятор и контрастный экран E-Ink Carta? Дополняя свою продуктовую линейку все более доступными моделями, в какой-то момент у нас появился Amundsen. Тут все по минимуму, зато аккумулятор на месяц работы, контрастный экран E-Ink Carta с быстрым откликом и Android для экспериментов.

Обзор ONYX BOOX Amundsen — E-Ink книга на Android без излишеств - 1
Читать полностью »

Это седьмая статья из цикла «Теория категорий для программистов». Предыдущие статьи уже публиковались на Хабре:

Функторы

За понятием функтора стоит очень простая, но мощная идея (как бы заезжено это ни прозвучало). Просто теория категорий полна простых и мощных идей. Функтор есть отображение между категориями. Пусть даны две категории C и D, а функтор F отображает объекты из C в объекты из D — это функция над объектами. Если a — это объект из C, то будем обозначать его образ из D как F a (без скобок). Но ведь категория — это не только объекты, но еще и соединяющие их морфизмы. Функтор также отображает и морфизмы — это функция над морфизмами. Но морфизмы отображаются не как попало, а так, чтобы сохранять связи. А именно, если морфизм f из C связывает объект a с объектом b,

f :: a -> b

то образ f в D, F f, связывает образ a с образом b:

F f :: F a -> F b

(Надеемся, что такая смесь математических обозначений и синтаксиса Haskell понятна читателю. Мы не будем писать скобки, применяя функторы к объектам или морфизмам.)

Функторы (глава книги «Теория категорий для программистов») - 1Читать полностью »

eReader Prestigio: единство и борьба противоположностей одной читалки - 1

Огромный привет читателям и пользователям GeekTimes, которые заглянули к нам в блог!

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

Сегодня, как и обещали в первой статье, мы начинаем цикл публикаций о продуктах Prestigio с истории создания и развития одного из программных продуктов Prestigio – eReader Prestigio. Это приложение изначально разрабатывалось в качестве домашней библиотеки, но за пару лет разрослось до популярной Android-читалки электронных книг с поддержкой множества удобных функции и всех популярных форматов как электронных, так и аудио-книг. Под катом мы обсудим некоторые проблемы, с которыми нам пришлось столкнуться при разработке приложения, а также пути их решения, затронем аспекты взаимодействия с официальными властями и лицами для получения легального доступа к литературным произведениям и размещения в библиотеке.

Но обо всём по порядку.
Читать полностью »

Внимание: перед тем как читать текст ниже, вы уже должны иметь представление о том, что такое монады. Если это не так, то прежде прочитайте вот этот пост!

Перед нами функция half:
Тройка полезных монад

И мы можем применить её несколько раз:

half . half $ 8
=> 2

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

half x = (x `div` 2, "Я только что располовинил  " ++ (show x) ++ "!")

Что ж, отлично. Но что будет если вы теперь захотите применить half несколько раз?

half . half $ 8

Вот то, что мы хотели бы, чтобы происходило:
Тройка полезных монад

Спойлер: автоматически так не сделается. Придётся всё расписывать ручками:

finalValue = (val2, log1 ++ log2)
    where (val1, log1) = half 8
          (val2, log2) = half val1

Фу! Это ни капли не похоже на лаконичное

half . half $ 8

А что, если у вас есть ещё функции, имеющие лог? Напрашивается такая схема: для каждой функции, возвращающей вместе со значением лог, мы бы хотели объединять эти логи. Это побочный эффект, а никто не силён в побочных эффектах так, как монады!
Читать полностью »

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

Подавляющее большинство представленных в России зонтичных брендов занимается исключительно поставками аппаратных решений (смартфонов, планшетных компьютеров, ридеров, плееров и т. д.), тогда как область программного обеспечения их особо не интересует. Но есть из этого правила и исключения: так, в портфолио Prestigio есть приложение eReader, которое предустанавливается на все Android-устройства этого международного бренда и доступно для бесплатной загрузки в каталоге приложений Google Play Market. С аппаратными решениями Prestigio дела идут отлично (бренд занимает первое место в сегменте спутниковых навигаторов с долей в 27,2%, четвертое место в сегменте планшетных компьютеров после Apple, Samsung и Acer, девятое место в сегменте электронных ридеров), а вот как обстоит ситуация с программными? Давайте рассмотрим поближе приложение eReader Prestigio 2.0 для платформы Android, поддерживающее форматы EPUB, PDF, FB2 (в т. ч. ZIP), RTF, HTML и plain text.

Обзор приложения для чтения книг Prestigio eReader 2.0 для Android

Читать полностью »

The Old Reader

Осенью 2011 года Google обновил интерфейс Google Reader, но убрал его социальную часть. Реакция пользователей была негативной, петицию о возвращении старого ридера подписало более 13 000 человек, а в защиту уютного сообщества sharebros высказались публично все, кто мог, включая экс-проджект-менеджера Google Reader. Отчаявшись ждать, пока выйдут обещанные аналоги, мы втроём случайно объединились и сделали The Old Reader — примерно за шесть недель, в свободное от основных работ время.

Текущая бета-версия The Old Reader — это RSS-ридер с возможностью добавлять друзей, делиться записями друг с другом и обсуждать это в комментариях. Авторизироваться и искать друзей можно через Facebook и Google, а импортировать подписки — из Google Reader напрямую или из OPML-файла. The Old Reader не спамит ваши контакты и не мусорит в Фейсбук-таймлайн сообщениями вида «N прочитал очередную статью о новых десяти дизайнерских кедах этой недели» (но эту опцию можно, по желанию, включить отдельно).

Читать полностью »

Ну вот, наконец-то я решил сделать один из своих проектов открытым и доступным для общественности, т.е. превратить его в open source, ну а рассказать об этом событии захотелось на Хабре.
Далее речь пойдет о платформе Monotouch и отображению PDF документов в iOS. В теме я не буду приводить кучу исходников библиотеки, кому надо, тот найдет их на GitHub, а постараюсь сконцентрировать внимание на сложных вопросах, возникщих при построении библиотеки.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js