Сайт Романа ПарпалакаБлог

Офлайновая версия сайта

23 мая 2009 года, 16:27

Когда-то давно я прочитал у Димы Смирнова о том, как можно использовать офлайновую версию сайта. Вообще основной аргумент против того, чтобы дать пользователям скачивать архив с кучей html-файлов, состоит в некрасивости подобного подхода. Дима Смирнов предлагал компилировать эту кучу в один chm-файл.

Если бы существовали компиляторы CHM под linux, всё было бы вообще здорово. Однако таких компиляторов не существовало. Я хотел было сам написать такой компилятор, но из этого так ничего и не получилось.

Потом я подумал о других форматах и вспомнил о PDF. Как оказалось, с PDF в вебе не всё так безнадежно, как с CHM. У меня даже получилось сделать более-менее приемлемое решение, о чем я писал больше года назад.

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

Я думал над этими недостатками и пришел к гениальному выводу: всё-таки, идеальный формат для офлайновой версии сайта — это HTML! Все html-файлы нужно слить в один большой файл, все картинки сложить в одну папку (и, возможно, переименовать в md5(<path>)), заархивировать это дело и дать скачивать пользователям.

Преимущества такого подхода очевидны — пользователь сам может управлять отображением на экране и на бумаге. К печатной версии можно применить отдельные стили и показать, например, URL'ы ссылок. А еще пользователь сможет открыть такой документ в Ворде и распечатать своим любимым шрифтом.

Впрочем, вариант с PDF тоже можно спасти. По-хорошему нужно HTML-файл перегнать в TeX. На первый взгляд кажется, что str_replace должно хватить, проблемы могут быть только с картинками. pdflatex сделает всё остальное :)

    2 комментария

Майский фуршет

16 мая 2009 года, 20:18

Решил тут почитать майский фуршет. Узнал много интересного. Но тем не менее…

Я вытерпел чьи-то заявления в очередном религиозном споре о том, что теория большого взрыва противоречит первому и второму началу термодинамики. Я вытерпел заявление «типа популяризатора» о том, что между протонами и нейтронами ньютоновская гравитация не действует. Но от учителя русского языка я такого не ожидал (курсив мой):

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

Всё, на этом читать фуршет заканчиваю.

    Оставить комментарий

Интервью

13 мая 2009 года, 13:22

У меня взяли интервью. Спасибо тем, кто ответственно отнесся к его подготовке.

    Оставить комментарий

Один день из жизни…

12 мая 2009 года, 23:11

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

Сегодня у меня был один из таких дней.

Всё началось с того, что сегодня испортилась погода. Впервые за почти два года я опоздал на электричку в Дубну. Следующая электричка пришла через два часа. Тоже, наверно, впервые за два года про ней прошли контролеры не один раз, а два.

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

Пришел с работы, зашел в общежитие и увидел не самое лучшее объявление. Сегодня отключили горячую воду, и ее не будет до 16 мая. Я, конечно, понимаю, что в Дубне хорошо, но без горячей воды и интернета — это как-то слишком. Решил вернуться в Долгопрудный. По электричке, как всегда, прошли контролеры. В вагоне было всего несколько человек. Все отдали по тридцать рублей, без квитанций. У меня же десяток не было, пришлось дать пятидесятку. Сказал, что квитанции тоже не надо. Контролер мои слова проигнорировал, достал квитанцию на 66 рублей и ушел.

Точно со звездами на небе что-то не то…

    Оставить комментарий

777

26 апреля 2009 года, 19:47

Лебедев написал:

Сегодня я весь день провел в Дубне, познакомившись с огромным количеством народных брендов и топонимов. Гостиница «Дубна» в народе называется «Хилтон», старое русло Волги — «Аппендицит», двойной резкий поворот на шоссе — «интеграл Миллера» (профессор оба раза не вписывался) и пр.

Забавно, я ни об одном не знал. Расскажу об одном названии, о нем Лебедев не упомянул. В Дубне есть три дома, стоящих рядом, которые называются семерками. Если на них посмотреть сверху, они действительно напоминают семерки.

Вопрос вот в чем. Как изменились бы цены на квартиры в этих домах, если бы они напоминали шестерки?

    Оставить комментарий

PunBB

18 апреля 2009 года, 16:53

Вчера выпустил PunBB 1.3.3.

Кстати, полтора года назад я начал писать статьи для hostinfo.ru. Правда, написал всего две (первая и вторая). Потом счел это занятие экономически невыгодным. Да и писать было особо нечего.

Не так давно я осознал, что могу написать на hostinfo.ru хороший обзор PunBB. С одной стороны это будет небольшая реклама PunBB, с другой — мне за это перепадет копейка. Наверно, объективно сравнить PunBB с другими форумными движками у меня не получилось бы, но с описанием достоинств и недостатков я бы справился. Не успел я обсудить эту идею с коллегами, как узнал, что hostinfo.ru закрывается.

Эх, больше мне негде писать о том, какой PunBB хороший, вот и пишу об этом здесь :)

    Оставить комментарий

Перекресток 2

18 апреля 2009 года, 16:31

Продолжим историю о Перекрестке. Сегодня сходил туда в очередной раз.

— Дайте пожалуйста столичный салат, триста грамм.
— Какой салат?
— Столичный, вот, — показываю я.
— Двести грамм?
— Триста.

Нужно ли учитывать посещение лекций на экзамене?

10 апреля 2009 года, 18:59

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

Казалось бы, это несправедливо. На экзамене должны оцениваться знания студентов, а не то, как он посещал лекции. Однако определенная логика в этом есть. Недавно один из преподавателей пояснил, почему на самом деле на экзаменах должна учитываться посещаемость. Он сказал примерно следующее: «Если студент ходил на лекции и на экзамене нихрена не знает, то это — вина лектора. А если студент не ходил на лецкии и нихрена не знает, то это — вина студента».

    Оставить комментарий

Новости дня

7 апреля 2009 года, 19:15

Что-то непонятное происходит в Кишиневе:

Сторонники оппозиции, которые 7 апреля приняли участие в массовых беспорядках в Кишиневе, ворвались в здание президентской резиденции, сообщает РИА Новости. Они водрузили над входом флаг Румынии, а на шпиле над зданием — флаг Евросоюза.

Вот еще:

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

То, что в Кишиневе можно найти тысячи мудаков, большого открытия не составляет. Интересно другое — они захватили здание президента и вывесили флаги. Вероятно, требуют, чтобы Молдавию в ЕС включали. Я бы со стороны ЕС отложил бы этот вопрос лет этак на 20, если не больше. Ну, чтобы концентрация мудаков в разных социальных прослойках и группах снизилась до приемлемого уровня.

    5 комментариев

Delphi 2009 и не только

28 марта 2009 года, 22:37

Я давно уже собираюсь выпустить новую версию The Game of Life, 3.6. Внес ряд полезных изменений. Проблема, которую осталось решить, как ни странно, связана с Вистой :)

Кажется, микрософты сделали так, что GDI в Висте эмулируется через DirectX (я не специалист в этом вопросе, точно утверждать не берусь). Из-за этого прорисовка через Canvas.Pixels стала в Висте жутко тормозить (по сравнению с XP). Я прекрасно понимаю, что Canvas.Pixels — сам по себе не очень быстрый способ вывода на экран. Но когда на каждом шаге меняется несколько точек, проще вызвать именно Canvas.Pixels, а не создавать отдельный буфер.

Версию 3.6 я задумал как переходную — в ней я хотел разобраться с графикой, а переписывание алгоритма расчета оставить для следующих версий. Мой приятель, просивший не упоминать его имя, помог с OpenGL. Теперь некритичная к быстродействию часть кода выводит графику через Canvas, а критичная — через OpenGL.

В ходе тестирования выяснилось, что в Висте есть еще одна проблема, которая связана, вероятно, с тем, что Виста запоминает содержимое PaintBox'а. Виста считает себя умнее всех остальных систем, в которых посылается сообщение wmpaint, и без спроса восстанавливает то, что было PaintBox'е, хотя оно уже перезаписано более свежей картинкой.

Логично предположить, что всё дело в Делфи 7. Она вообще не подозревает о существовании Висты :) Вполне возможно, что подобные ошибки уже исправлены в последней версии Делфи. Не долго думая, установил Делфи 2009. После небольших изменений кода программа скомпилировалась, но заработать отказалась из-за непонятной ошибки «Stream read error» при запуске. Более того, похожая ошибка стала возникать и в Делфи 7, правда, сообщение там было другое: «List capacity out of bounds (%d)». Эта же ошибка стала возникать и при запуске ранее скомпилированных экзешников. Я не знаю, что Делфи 2009 сделала с Вистой, что отказались работать экзешники, скомпилированные до ее установки!

Делфи 2009 — какое-то жуткое говно. Она, наконец, научилась понимать картинки PNG. Но вот с альфа-прозрачностью у нее до сих пор проблемы. Алё, Embarcadero, 2009 год на дворе. Как можно не поддерживать альфа-прозрачность? Отладчик по сравнению с седьмой версией сильно не улучшился. В программе возникла ошибка, так покажите, где она! Почему Visual Studio это умеет, а Делфи — нет?

К счастью, после удаления Делфи 2009 проблема с ошибкой «List capacity out of bounds (%d)» исчезла. Баг, связанный с обновлением PaintBox'а, исправлю каким-нибудь другим способом.

Да, и еще. Вот объясните мне, как можно пользоваться последними версиями программных продуктов и технологий, если они настолько кривые?

Добавлено: Обычно я не склонен к поспешным выводам, однако Делфи 2009 произвела на меня совсем уж удручающее впечатление :) По всей видимости, проблема с ошибкой при старте программы не связана с Делфи 2009. И, может быть, в ней можно заставить PNG работать нормально. В общем, нужно еще раз ее поставить, чтобы разобраться до конца.

    6 комментариев

← сюда туда →

Поделиться
Записи