Twitter GitHub

Архив за Февраль, 2013

Оптимизируем WordPress (и не только) с помощью Grunt’а

С самого момента установки WordPress’а и темы для него, меня как разработчика, очень сильно напрягло, что ни сам WordPress, ни тема никак не оптимизируют количество подгружаемых файлов стилей и скриптов — никакой минификации, никакой конкатенации, только пачка запросов к серверу на 5 файлов стилей и 12 скриптов. Все это меня удручало, но как-то все было не того.

Но вот вчера я наткнулся на отличную статью на Хабре про Grunt, в конце которой оказалась ссылка на еще более полезную статью Артёма Сапегина про Grunt как систему сборки для фронтенд-разработчиков. После ознакомления с указанными статьями я подумал, что это просто-таки отличное решение моей проблемы с Wordpress’ом и погрузился в изучение Grunt’а.

Вот что из этого получилось… Читать дальше →

Комментарии отключены

Чему не учат в большинстве школ

Git merge vs. rebase

Коротко:

  • git pull --rebase вместо git pull
  • git rebase -i @{u} до того как git push
  • (в «feature») git merge master чтобы сделать ветку feature совместимой с последними изменениями в master’е
  • (в «master») git merge -no-ff feature для релиза фичи

Однако избегайте merge-коммита, если ветка «feature» содержит только 1 коммит: (в «master») git cherry-pick feature.

Развернуто:

Читать дальше →

Комментарии отключены

«Мимишная» альтернатива другим сервисам динамической генерации изображений для placeholder’ов. Разнообразьте свои трудовые будни няшными котиками ;)

Placekitten

Почему я убрал комментарии Cackle и никогда больше не поставлю их снова

Перед тем как создать собственный блог я сначала потренировался на любимой :) После первоначальной настройки, вместо стандартных комментариев WordPress я решил установить комментарии от Disqus. Но для ее аудитории это оказался не самый удачный выбор — совершенно не та подборка провайдеров аутентификации. Тогда мы решили опробовать отечественную разработку — Cackle. От названия меня коробило с того самого дня, как я увидел их первый пост на Хабре. Для англоязычной аудитории тут наверное проблем нет, но для русского уха название — хуже не придумаешь. Хотя в дальнейшем меня осенило: это же гениальнеший маркетинговый ход — разработать более/менее хороший сервис с ужасным названием и дать возможность убирать это название за небольшую абонентскую плату :) Чем я, кстати, и воспользовался. 300 рублей в год за то, чтобы не созерцать этот чудесный брэнд под каждым постом в своем блоге того стоят. Так вот, сперва мне все нравилось, я уже и свой блог открыл к тому времени и решил поставить туда Cackle тоже.

Протерпел я этот чудесный сервис чуть больше недели. Самый огромный их косяк в отсутствии нормальной и гибкой системы email-извещений. Оба виджета комментариев (для блога жены и для моего блога) были на моем аккаунте. Проблема в том, что как администратор аккаунта я не могу отключить оповещения одного из виджетов, я могу включить или выключить только все оповещения сразу. Поэтому мне сыпались email-извещения о комментах в блог жены. Это минус номер раз. Минус номер два: в самих извещениях нет ни единого намека (кроме ссылки на просмотр комментария на сайте) ни на то из какого виджета, ни на то на какой пост, ни на то на какой комментарий этот комментарий (если это ответ). Все извещения как близнецы-братья из-за чего пользоваться этими извещениями при наличии более 1 виджета просто невозможно. А ведь добавить в письмо эту информацию — несколько строчек кода, она ведь под рукой вся. Но… Как сознательный человек я обратился в поддержку с волнующими меня вопросами: Читать дальше →

Социальная сеть внутри интернет-банка

Почему в интернет-банках нет социальных функций? Подумалось мне только что…

Посудите сами насколько это было бы выгодно для банка и удобно для клиентов. Взять, например, скромную «семью»: муж и жена, плюс родители мужа и жены, плюс сестра и братья мужа и жены — как минимум 6 человек. А если брать друзей и друзей друзей? Если у всех счета и карты от одного банка, то логично было бы иметь внутри интернет-банкинга этого банка возможность «дружить» с другими клиентами банка. С таким функционалом можно быстро одолжить денег или оплатить какую-нибудь услуга за «друга». Я не специалист в банковских услугах, но наверняка тут можно придумать еще уйму интересных вариантов взаимодействия «друзей» друг с другом и с банком. Да даже банально перекинуть деньги «другу» на карту/счет было бы уже достижением.

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

Такая вот идея. Я о таких банках пока не слышал, а вы?

Комментарии отключены

Зарегистрировался на днях в одной партнерской программе. Смотрю код для вставки на сайт — сплошной синхронный Javascript с классическим document.write(). Стало в очередной раз грустно за отечественные партнерские программы. Пишу в поддержку:

Добрый ­день. ­Такой ­вопрос: ­есть ­ли ­у ­вас ­асинхронные ­коды ­для ­статичных ­баннеров? ­И ­если ­нет, ­то ­могу ­ли ­я ­самостоятельно ­изменить ­ваш ­код, ­чтобы ­он ­стал ­асинхронным, ­не ­меняя ­логику ­его ­работы ­(вроде ­как ­особых ­проблем ­тут ­не ­увидел)?

Знаете что мне отвечает служба поддержки? Цитирую:

Здравствуйте. ­Скажите ­пожалуйста ­что ­значит ­асинхронные ­коды? ­и ­для ­чего ­вы ­хотите ­это ­сделать?

Занавес.

Отслеживаем ошибки на сайте с помощью Ratchet.io

Практически всегда после разработки сайта и его запуска необходимо отслеживать возникновение возможных ошибок. Можно для этого использовать логирование, извещения на почту, какие-то свои велосипеды, а можно воспользоваться специально созданными для этого сервисами. Одним из самых известных сервисов такого рода является Airbrake, однако у него есть ряд недостатков: официально они поддерживают только Ruby on Rails и iOS, в эксперементальном виде Javascript, остальное поддерживается сторонними разработчиками. А кроме того абсолютно бесполезный бесплатный тариф (1 пользователь, 1 проект, никакой интеграции с GitHub, никакого трэкинга деплоев). Нужно больше — плати, а не всегда это оправданно, особенно если пилишь пару-тройку своих маленьких проектов с частотой ошибок в продакшене пара-тройка раз в неделю.

Но не так давно я наткнулся в своем RSS-ридере на пост Александра Макарова (Sam Dark) про Ratchet.io.

Читать дальше →

Неожиданный подарок от Selectel

На днях получил извещение от почты о наличии на мое имя посылки. Долго ломал голову от кого же это может быть, потому что уже давным давно ниоткуда ничего не заказывал и никакой посылки не ждал. В итоге сегодня ноги наконец-то донесли меня до почты, отстояли небольшую очередь и вот результат: посылка оказалась подарком от Selectel в виде фирменного блокнота. Подарок порадовал — мелочь, а приятно :)

Кстати говоря, с момента их последний аварии и моего ухода на Heztner, Selectel работает как часы, тьфу-тьфу-тьфу. Но ничего серьезного я там уже не держу, только бэкапы. Для бэкапов облачные сервисы просто идеальны.

Первый пост

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

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

Личного тут скорее всего не будет или будет очень мало. В основном планирую писать об интересных идеях (лучше идеями делиться, потому что все идеи, которые приходят в голову просто невозможно реализовать физически :), проблемах и решениях связанных с веб-разработкой (в частности Ruby, Ruby on Rails, возможно что-то о PHP, но им я сейчас практически не занимаюсь), немножко об администрировании серверов (какая ж веб-разработка без этого), ну и еще есть желание переводить чужие интересные посты по этим же темам.

Вот как-то так. Stay tuned.