РСС

Ношу шлем, тяжело дышу…

Меня зовут Антон Шувалов. Я работаю в Lazada. Кроме программирования я пишу музыку и иногда занимаюсь дизайном интерфейсов. Я есть в Twitter, Facebook, и на GitHub. Вы можете написать мне email.

Если вы задумали порадовать меня небольшим подарком (не может быть!) — вот список моих мещанских мечт.

Переезд с WordPress на Jekyll



Когда я завел блог я был уверен, что wordpress — это простая и легкая в освоении CMS. В целом так и есть. Да и большинство хостингов позволяют установить эту CMS в один клик. Первоначально я использовал как раз такой хостинг на domain.com. Позднее я перенес свой блог на облачный сервер selectel.ru, где я без особого труда самостоятельно установил WordPress. Так же в плюс этой CMS Я знаю 3 способа создать сайт на WordPress бесплатно.

  1. Можно сделать это официально на wordpress.com, но там есть ряд ограничений (например, нельзя устанавливать свои темы и плагины)
  2. Можно использовать OpenShift от RedHat, где в один клик можно создать сайт на WordPress без ограничений. По характеристикам сервера — этот вариант самый производительный
  3. Воспользоваться популярным хостингом для веб-приложений heroku, для которого есть свой форк wordpress с postgreSQL.

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

Достаточно быстро мной овладела мысль об избыточности WordPress для блога — большая БД, куча запросов, плагинов, кода. Мой блог работал не особенно быстро. По крайней мере не так быстро, как я бы хотел. Я периодически натыкался на различные интересные решения, например на markdown-cms. В принципе, это такой же генератор статичных сайтов, как и Jekyll только менее удобный и на Perl. В то время подход основанный на генерации статичных страниц я не оценил. О Jekyll я слышал достаточно давно в контексте GitHub Pages. Как-то раз и я решил попробовать сделать свой сайт на github с помощью jekyll. Внезапно jekyll оказался очень простым и понятным. До работы с ним у меня не было опыта в ruby. Теперь же у меня есть большое желание углубиться в этот язык. Особенно мне понравился rakefile. Я много времени провел пытаясь понять как пользоваться makefile, но rakefile я освоил за 5 минут, и практически сразу начал использовать его в своих проектах. Для Jekyll в будущих проектах даже найдется место.

Вернемся к переезду. Сеттинг:

Свои статьи я храню в markdown, по этому их перенос на Jekyll занял минут 20. Написал rakefile с двумя тасками:

task :default => :run

# Push 
desc 'Push site to server'
task :push do
  print "Push _site to server..\n"
  sh "rsync -az --delete _site/ eva:/home/web/www/anton-shuvalov.info"
  print "Done...\n"
end

# Run
desc 'Run server'
task :run do
  print "Starting jekyll...\n"
  sh "jekyll --server"
end

В задаче push eva — это имя сервера, оно забито в конфиге ssh ~/.ssh/config:

Host eva
HostName 88.88.88.88 # ip сервера
User shuvalov
Port 22

Для деплоя на сервер я набрал в консоли rake push и через секунд 10 сайт открылся по адресу anton-shuvalov.info. Осталось настроить 301 редирект с it-prm.com на anton-shuvalov.info. В конфиге сайта в /etc/nginx/sites-available/it-prm.com это выглядит так:

server {
  ...

  # Redirects to anton-shuvalov.info
  if ( $request_uri ~* "/?p=803" ) { 
    rewrite ^ http://anton-shuvalov.info/2012/12/05/backbone-screencasts/? permanent; 
  }
  if ( $request_uri ~* "/?p=772" ) { 
    rewrite ^ http://anton-shuvalov.info/2012/11/18/Textmate2-line-hate/? permanent; 
  }
  if ( $request_uri ~* "/?p=753" ) { 
    rewrite ^ http://anton-shuvalov.info/2012/11/09/.google-analitycs-avtime? permanent; 
  }

  ...

  rewrite ^ http://anton-shuvalov.info? permanent;
  
  ...
		
}

Ну вот и все. Перезагрузил nginx sudo nginx -s reload, все заработало. Проверил редиректы руками — все правильно. Переезд закончен.

«Как рушатся комплексные системы», Ричард И. Кук
О фундаментальных проблемах больших запутанных систем
7 паттернов для рефакторинга JavaScript-приложений
Перевод отличной серии статей о проектировании и рефакторинге проектов
Музыка для работы
Мои плейлисты: теплый glitch, нежные девичьи голоса, интересная электроника и chillwave
Ссылколог
Коллекционирую полезные ссылки