Подкаст о веб-разработке 36
Сегодня важное событие у меня. Я наконец-то смог выродить подкаст о веб-разработке, который планировал оч давно записать. Даже не только планировал, но и пробывал. Итак, это моя третья попытка — более-менее удачная. Не могу сказать что я на 100% доволен результатом, но как говориться «первый блин можно и простить» :-)
Для меня намного важнее узнать ваше мнение, уважаемые читатели! На сколько вам был бы полезен вообще подкаст о веб-разработке. И о каких темах вы бы хотели услышать выпуски в будующем. Любые ваши комментарии (желательно конструктивные) будут мотивировать меня для дальнейшей записи. А так как я не диктор и не работал никогда на радио, дается мне сие записывание нелегко... Так что хотелось бы знать интересно ли будет что-то подобное для вас. Жду фидбека, а пока качайте 10 минутное mp3 весом в 14Мб :-)
Отдельный фид для подкаста скоро будет.

Update: сделал еще копию подкаста с битрейтом 128 на 10Мб
Ускорение загрузки веб-сайта на Ruby on Rails
Поигрался я на днях с интересным плагином к Firefox – YSlow от Yahoo и понял на сколько плохи дела у меня с оптимизацией загрузки веб-сайта. Очень полезная утилита, советую всем веб-мастерам, разработчикам и гикам.
Для рельсов как всегда есть готовые дрезины, ой плагины :-) Поэтому сделать все получилось довольно быстро, не считая некоторого шаманства с typo.
Есть две статьи по которым можно в элементаре поставить плагин и настроить на свой Rails-проект. Поэтому просто привожу на них ссылки – Сам плагин, с документацией и YSlow and Rails performance.
Пошагово:
./script/plugin install http://sbecker.net/shared/plugins/asset_packagerrake asset:packager:create_ymlvim config/asset_packages.yml. См. мой вариант ниже.rake asset:packager:build_all- Правим темплейт
<%= javascript_include_merged :base %>, тоже для css –<%= stylesheet_link_merged :base %> - Рестартуем (если надо) ruby- процесс.
Особенности движка typo. В app/helpers/articles_helper.rb есть специальный хелпер (page_header) для построения заголовка страницы, так вот вставку javascript надо делать именно там, а не в темплейте.
Так в чем же суть убыстрения? В том, что asset_packager пакует все css/js файлы в один (соответственно один js и один css файл). Плюс оптимизирует сам код – удаляет комментарии, лишние пробелы. Получаются в итоге два очень хорошо утрамбованные статические файла, которые еще при отдаче со сжатием (gzip) вообще будут грузиться моментально. Для примера по статистике YSlow livedev.org стал грузиться в два раза быстрее.
Мой config/asset_packages.yml
---
javascripts:
- base:
- cookies
- prototype
- effects
- typo
stylesheets:
- base:
- theme/layout
- theme/content
- theme/bodyПодкасты про webdev 1
Последнее время стал увлекаться подкастами. К сожалению русскоязычных качественных очень мало. А на тему веб-разработок вообще нет (поправьте если ошибаюсь).
Хочу привести свою подборку англоязычных подкастов, которые слушаю.
- Начну с наиболее интересного для меня—Hivelogic Radio. В этом подкасте автор концентрируется на веб-разработке, как на дизайне так и на программировании. Очень интересные интервью с интересными людьми. В разработке есть акцент на Ruby on Rails. Со стороны аудио, подкаст сделан очень качественно. Приятно слушать.
- Следующий подкаст я слушаю не так давно, но у него довольно большой авторитет—FOO Casts: Podcasts from O’Reilly & Friends В нем освящается много технических вопросов, необязательно связанных с вебом, но все равно полезных для любого гика и разработчика. Качества звука тоже на высоте.
- Inside Silicon Valley—Подкаст, состоящий в основном из интервью с монстрами и просто успешными людьми из Силиконовой Долины. Качество хорошее, слушать интересно.
- Python411 Podcast—для фанов Python. Качество звука не впечатляет, но темы и интервью довольно интересные. Так что подкаст пожалуй действительно для фанатов Python. Освящаются вопросы не только веб-разработки, но и других специализаций в программировании.
- WebDevRadio—Действительно настоящий подкаст именно для веб-разработчика. Обсуждение новых технологий в вебе, интервью, относительно часты обновления. Советую.
- The Mac Attack—Подкаст про Mac, MacOSX и все что с ним связано. Как известно многие современные веб-разработчики и дизайнеры выбирают платформу Apple в качестве рабочей станции. Так что думаю будет просто интересно, а некоторым и полезно.
Typo 4.1 — обновляемся
Обновление моего блога.
На днях обновил свой блог на движке typo, до весрии 4.1
Впечатления пока что только приятные. Сразу бросается в глаза подчищенная админка. Большой плюс еще, что блог движок работает на rails 1.2 и заметный прогресс в том, что есть встроенная возможность локализации.
Процесс переезда прошел прозрачно, почти без бубна и плясок :-) Итак пошагово, для тех, кто будет повторять:
- Бекапим базу в двух вариантах—SQL-дамп и сериализованный YAML вариант. Первое делается через mysqldump или phpmyadmin, а второй вариант командой rails-backup в директории с rails-проектом блога.
- Обновляем rails и typo. Т.к. у меня все работает через rubygem, я просто запустил
sudo gem update. После чего получил последние стабильные gems. - Останавливаем текущий процесс typo. Переименовываем директорию проекта и создаем заново проект с typo—
typo install my_typo_dir - Переносим конфиги из старой в новую директорию (обычно это database.yml и mongrel_cluster.yml). И обновляем базу
rake db:migrate. - После чего запускаем проект (у меня он работает через mongrel cluster), логинимся в админку и первым делом нам предлагается поменять контент в базе на новый лад. Нужно просто согласиться и блог готов к работе.
Если появились трудности при апдейте—пишите, чем смогу помогу.
PS: В рассылке видел, что у одного человека возникли проблемы при переезде с базой. У него полечилось через rails-backup и rails-restore
Борьба с утечкой памяти в ruby (mephisto и sqlite) 3
Пока мой блог развивается и читателей у меня не сильно много, позволяю себе немного заняться его наворачиванием и переделкой.
В очередной раз решился побороть проблему утечки памяти движка моего блога typo. Суть в том, что по непонятным для меня причинам, rails движок этот тек самым наглым образом (до 200 Мб за сутки). Обидно было больше потому, что на хостинге крутятся еще несколько проектов на rails и у них с памятью все стабильно. В общем долго я плевался на этот typo и решил в итоге попробывать перейти на новый и активно развивающийся движок Mephisto.
Мой Typo работал на sqlite базе и поэтому Mephisto я решил ставить тоже на sqlite. Но какое было разочарование после вечера ковыряний и переделываний… Mephisto также противно тек.
Отдельно хочу написать о впечатлениях о Mephisto. Движок уже довольно обкатанный, работает нормально. Из typo сконвертировался на раз. Все делал по доке Converting Typo to Mephisto из официальной wiki. Есть уже неплохой набор тем, из которых можно намостырить что-то свое. Единственной проблемой после перехода на Mephisto были поломанные slug у каждого поста. Их видать скрипт переноса тупо ставит в значение title. А русский, как известно, в урлах отображается не совсем читабельно :-)
Возвращаясь к теме утечки памяти оказалось, что виноват в этом не typo, а ruby sqlite бекенд к базе. Обидно, но нашел я эту информацию как раз в рассылке Mephisto. После этого я решил сменить базу с sqlite на postgresql и остаться на typo. Но тут оказалось не все так просто. Почему-то база у меня никак не смогла встать красиво. Нехватало sequences в postgresql schema. У меня в запасе были еще два способа добиться результата. Я решил пойти самым простым. Сконвертировал базу в MySQL. Её schema была в порядке.
Перенос данных очень удобно делать с помощью скрипта из комплекта Rail Application Installer, называется rails-backup и rails-restore. Данные конвертируются в YAML и потом восстанавливаются в любую базу. Конвертация прошла успешно и я жду что текучка закончится. Если нет, то в запасе есть еще одна идея :-) В дебаггер совсем не хочется лезть :-) надеюсь обойдется.
Update: Вторым и последним способом был установка Mephisto на Postgresql, но все обошлось. Так что блог остается под управлением Typo и на базе MySQL.






