Ne v kontakte Antisocial programmer's blog

Hosted by GitHub

Hosted by GitHub

    blog     github     eomy     goodby

Finally, I’ve completed transition of this blog to GitHub pages, planned over two years ago. I did the first step — migration to a static site engine (specifically, Acrylamid) — back in March 2014. And since than I’ve been saying to myself “one day I must move it to a GitHub as it’s a best free hosting for a static site”.

I couldn’t tell for how long I’d continue slacking like this, but now I had to do this. This site was hosted at free hosting service provided by EOMY.net since it’s very beginning and recently I’ve received a notification, that EOMY shuts down it’s shared hosting, completely focusing on VDS. It’s a bit sad news, as EOMY managed to provide fantastically stable and reliable hosting for all this years, so great thank you for them and good luck with VDS business!

By the way, I have plans on implementing an automated process of site generation and deployment using TravisCI the way it’s done for GCB-JS. If i do this, I’d be able to blog right from GitHub interface, which would be pretty cool :-)

Переход блога на английский

Переход блога на английский

    blog     thoughts

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

Еще раз перечислю причины перехода:

  1. Я пишу в основном на технические темы, часто — довольно узкие. На английском мои посты будут найдены и прочтены большим количеством людей.
  2. Писать на технические темы по-английски часто даже проще, чем на русском.
  3. Подтянуть свой письменный и разговорный английский. Такая практика не бывает лишней.

Тем не менее, я решил, что наиболее важные и интересные посты я буду писать и на русском. Они будут публиковаться на Хабре, желающие читать их могут подписываться на мой аккаунт. Хабр, кстати, отдает RSS, так что все желающие читать меня, но не желающие заводить аккаунт на Хабре, могут воспользоваться любимой читалкой.

Read more →

Перенос комментариев из Drupal в Disqus

Перенос комментариев из Drupal в Disqus

    blog     migration     comments     disqus

Пришло время завершить цикл постов о переезде этого блога на статический движок. Я уже успел рассказать о переносе самих постов и о манипуляциях со структурой адресов. Последняя оставшаяся не освещенной тема — перенос комментариев. За 6 лет существования блога их накопилось немало, и было бы обидно от них отказаться.

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

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

Впрочем, есть и негативные моменты, которые скорее всего вынудят меня однажды пойти искать другую платформу. Первый среди них — тяжеловесность клиентского JS даже в сжатом виде — около 700 КБ. Это гораздо больше, чем мне хотелось бы.

Read more →

Переход блога на английский?

Переход блога на английский?

    blog     thoughts

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

У меня, пожалуй, три причины для смены языка:

  1. Большая часть постов у меня так или иначе связана с решением тех или иных технических задач. Будучи изложенным на английском, решение смогут найти и прочесть куда большее количество людей.
  2. Писать о технических вещах, как правило тоже легче на английском языке. Все-таки изобретение русскоязычных аналогов для технической терминологии — дело довольно неблагодарное.
  3. Языковая практика. Чтение на английском уже давно не представляет для меня проблемы, но вот с речью есть определенные трудности, в основном грамматического толка, вызванные недостатком практики. Ну а блоггинг на английском — неплохой способ практику восполнить.

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

Read more →

Изменение структуры URL при переезде на Acrylamid

Изменение структуры URL при переезде на Acrylamid

    blog     migration     acrylamid     url     seo

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

Напомню еще раз о задачах, которые я перед собой поставил:

  • Сделать более-менее вменяемые URL постов. Например, транслитерированный кошмар вроде /blog/aleks/ispolzuem-svn-v-upravlenii-saitom-chast-pervaya-teoreticheskie-soobrazheniya превратить в более вменяемое /2008/Use-SVN-website-governance-Part-one-theoretical-considerations.html.
  • Скорректировать все внутренние ссылки на посты, чтобы они указывали на правильные адреса постов. Попутно — все внутренние ссылки, картинки и тому подобное с полными адресами виде http://nevkontakte.(com|org.ru)/whatever позаменять на просто /whatever, чтобы обезопасить себя от проблем в случае смены домена или, например, перехода на https.
  • Организовать редиректы со старых адресов постов на новые для поисковиков и внешних ссылок.

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

Read more →

Перенос постов из Drupal в Acrylamid

Перенос постов из Drupal в Acrylamid

    blog     acrylamid     migration

В этой заметке я постараюсь рассказать о процессе переноса постов из старого блога на Drupal в новый на Acrylamid.

Прежде всего надо отдать ему должное — он из коробки неплохо умеет импортировать контент из произвольных движков через RSS или дамп в формате Wordpress. В простых случаях этого более, чем достаточно, но мне нужно было нечто большее.

Задачу перед собой я поставил так:

  • Перенести все посты и комментарии к ним.
  • Содержимое постов:
    • По возможности сохранить форматирование, в том числе и в самых старых постах, где я использовал bbcode.
    • Преобразовать html в markdown для тех случаев, где это возможно.
    • Заменить метки друпаловского модуля Inline на обычные ссылки.
    • Извлечь из тела поста «feature images» (не могу подобрать адекватный перевод :-( «Картинка для привлечения внимания»?..) и перенести в мета-информацию о посте, чтобы можно было правильно ее стилизовать и размещать без лишней мороки.
    • Аналогично поступить с музыкальными видео, которые я добавляю в конец поста в виде постскриптума, при этом необходимо сохранить и их правильные заголовки.

Read more →

Несколько слов про Acrylamid

Несколько слов про Acrylamid

    drupal     acrylamid     migration     blog

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

И так, технических причин, побудивших меня отказаться от Drupal, которым я пользовался последние 5 лет, было три:

  1. Хлопотность обслуживания. Помимо регулярных патчей для самого движка едва ли не каждую неделю выходили обновления для парочки из трех десятков используемых модулей. А автообновления в Drupal 6 предусмотрено не было.
  2. Избыточная сложность. Все-таки Drupal предназначен для создания куда более сложных и развесистых сайтов, чем личный блог. Поэтому многие его возможности в лучшем случае играли роль мертвого груза, а в худшем — требовали совершать лишние клики, действия и шанс как-нибудь накосячить.
  3. Тяжеловесность. За функционал надо платить, и плата выражается в потребляемой памяти, скорости работы и занимаемом дисковом пространстве. В последний год Drupal завел дурную привычку отжирать до 150 Мб в БД под какие-то свои кэши. И это при том, что объем всего контента этого блога на данный меньше 30 Мб, включая картинки, приаттаченные файлы и так далее. На мой взгляд, это как-то совсем неприлично для скромного блога.

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

Read more →

Иногда они возвращаются

Иногда они возвращаются

    blog     upgrade     life

С последнего поста в этом блоге минуло чуть больше года, да и тот я был скорее вынужден написать под влиянием обстоятельств. Причин для столь затяжного молчания было несколько.

  • Во-первых, реальный мир требовал невероятное количество моего внимания, в моей жизни поменялось очень многое: я сменил работу, переехал, многое переосмыслил, слетал в Лондон на научную конференцию, и еще многое другое.
  • Во-вторых, серьезно-статейный формат, который сложился в начале 2012 года требовал слишком много времени и усилий на написание новых постов, их у меня просто не оставалось. В то же время, Twitter успешно взял на себя роль носителя мелких сиюминутных мыслей.
  • В-третьих, количество технических долгов перед блогом у меня накопилось немыслимое — движок давно не обновлялся, часть модулей глючила и, что самое критичное — отломался модуль редактора, добавив дискомфорта процессу написания постов.

В результате, примерно с год назад была затеяна история по освежению блога, включая смену движка и дизайна блога. И, как водится, затянулась на гораздо больший срок, чем я рассчитывал. Более того, в какой-то момент она двинулась в совершенно ином направлении, чем я планировал. Вместо того, чтобы писать свой собственный движок, я (слава богу!) решил обратиться к готовому решению но, в противовес тяжеловесному Drupal, максимально легкому и простому. Выбор пал на acrylamid — статический блоговый движок, написанный на Питоне. Перед ним я рассматривал более популярный Jekyll и его дочку Octopress, но натянутые отношения с Ruby и из рук вон плохое поведение rvm в Ubuntu тех времен заставили искать альтернативы.

С дизайном все тоже было все не очень просто. Мне изрядно поднадоела холодно-синяя гамма, царившая у меня на сайте уже лет пять, но долгие искания так ни к чему хорошему и не привели. Поэтому я решил пойти другим путем: сохранив основной стиль и гамму, освежить и усовершенствовать дизайн, попутно переверстав его на Twitter Bootstrap. Выход третьей версии застал меня врасплох в самом конце работы, но, взвесив все «за» и «против», я решил переверстать шаблон на новой версии во имя Mobile First и светлого будущего. Сейчас мне кажется, что это был верный шаг — результат мне понравился.

Read more →

Полгода радиомолчания

Полгода радиомолчания

    blog     life

Три раза пытался начать этот пост, и три раза получалась полная ерунда — предыдущий пост был написан пол года назад, и, похоже, навык написания постов на человеческом языке я слегка растерял. Почему я упомянул про “человеческий” язык? Да потому, что за эти пол года мне пришлось написать вагон и маленькую тележку текста на академическом жаргоне, но обо всём по порядку.

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

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

Отдельную пару слов посвящу своему дипломному исследованию, посвящённому гомоморфной криптографии. Особенность данного вида шифрования в том, что над зашифрованными данными можно выполнять математические операции таким образом, что после расшифрования результат совпадёт с результатом тех же вычислений над незашифрованными данными. Это, в свою очередь, ключ к безопасным облачным вычислениям и базам данных — данные можно хранить и всячески обрабатывать, но без ключа враг не сможет эти данные прочитать, даже если у него есть доступ к серверам. Если будет время, я, пожалуй, напишу парочку постов об этом с изложение всей этой науки “на пальцах”.

Read more →

Аспекты реализации нового движка блога

Аспекты реализации нового движка блога

    blog     upgrade     todo     plans     dev

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

Технические требования

  • Язык программирования: PHP 5.1+
    В принципе, я мог бы себе позволить и использовать PHP 5.3, мигрировав блог на мою VPS, но я не вижу в этом большой необходимости, тем более, что хостинг от EOMY за много лет показал себя с лучшей стороны.
  • СУБД: MySQL.
    Здесь выбор тоже практически очевиден: MySQL есть на любом хостинге и мне привычно с ним работать.
  • Фреймворк: Yii Framework
    Выбор фреймворка — тема не простая, так что ее я прокомментирую отдельно.
  • Миграция и обратная совместимость: весь контент должен быть перенесен и адаптирован к новому движку, все ссылки в постах должны остаться действующими, со старых URL постов должен быть редирект на соответствующие новые.

Yii Framework

Read more →