Яндекс запустил бета-версию новой выдачи с островами

Итак, вот мы и дождались рабочей http://beta.yandex.ru, о чём Яндекс сообщил в почтовой рассылке, хотя мне письмо на gmail дошло почему-то битым, видимо, Google так давит конкурента 🙂

На YaC/m Яндекс обещал Острова в июле, и в июле — сделал. Такая обязательность, конечно, радует.

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

Яндекс Острова — как их использовать на благо собственного сайта и почему надо радоваться новой технологии?

На состоявшейся в прошлый четверг конференции YaC Marketing от Яндекса был представлен новый продукт — Яндекс.Острова. Это была первая маркетинговая конференция Яндекса, но говорили там про маркетинг исключительно в контексте технологий (что отлично как для Яндекса, так и для аудитории). Мероприятие вышло классное (и, к счастью, повторится уже осенью), было представлено и анонсировано много интересного. Организация — тоже на высоте!

Больше всего холиваров в рунете сейчас посвящено именно Островам. О них я вам подробно и с примерами расскажу. (далее…)

Видео некоторых моих докладов про SEO и Drupal

У меня в очередной раз спросили, где можно посмотреть видео-записи моих «сеошных» докладов про Drupal. Не все мои выступления мне кажутся удачными и не мероприятия в России и СНГ записываются на видео (и в этом есть свой плюс: на тематические мероприятия надо ходить ногами, общаться там «в живую» с коллегами и конкурентами, узнавать новости из первоисточников), но, тем не менее, несколько не самых свежих ссылок на видео у меня всё-таки есть. (далее…)

Решение проблемы: Доступ запрещен после авторизации в Drupal

Если вы пытаетесь авторизоваться в Drupal, вводя правильный прежде пароль, но вдруг неожиданно получаете «Доступ запрещен» (Access Denied, 403-ую ошибку). А ведь раньше всё работало (и вы ничего не меняли).

Отправляйтесь проверять базу данных!

Скорее всего, у вас просто покрешилась таблица, хранящая сессии в БД. Когда вы загляните в таблицу, то увидите что-то вроде:

#144 - Table './db/sessions' is marked as crashed and last (automatic?) repair failed

Чините таблицу. А если не починится, то очищайте таблицу sessions полностью (сессии потерять не страшно, всем пользователям, включая администратора, придётся всего навсего перелогиниться заново).

Чем закончится битва мобильных платформ?

Друзья, этот пост будет в некотором смысле офф-топиком, потому что я рискну сыграть на чужом поле — сделаю долгосрочный прогноз (sic!) о перспективах всё ещё растущего рынка мобильных приложений. К написанию поста меня подтолкнула новость совсем из другой, напротив, родной мне области (из мира веб-разработки). Итак, на уходящей неделе крупнейшие интернет-компании, такие как W3C, Adobe, Facebook, Google, HP, Microsoft, Mozilla и Opera, решили объединить свои усилия для создания альянса и одноименного авторитетного ресурса http://www.webplatform.org, где из «первых рук» будут рассказывать об основных веб-технологиях и поддерживаемых браузерами стандартах.

О чём это говорит и причём тут мобильные приложения? (далее…)

Drupal 7 на SQLite. Некоторые тесты и миграция с SQLite на MySQL и обратно

Drupal 7 «из коробки» поддерживает сразу несколько хранилищ, а именно: СУБД MySQL, PostgreSQL, SQLite. Это значит, что уровень абстракции существующий в API Drupal`а, гарантирует, что одни и те же модули (и сайты в целом) будут с одинаковым успехом работать на любой из этих баз данных. Есть, впрочем, модули пользующиеся специфическими возможностями конкретных СУБД, например, модуль Similar Entries, предназначенный для выборки похожих материалов, устанавливает эту самую похожесть с помощью MySQL FULLTEXT (и, значит, на другой СУБД такой модуль не заведётся). Но такие монстры как Views написаны в соответствии с API, поэтому прекрасно себя чувствуют на любых хранилищах.

Кроме PostgreSQL, MySQL, SQLite поддержка других хранилищ возможна на уровне дополнительных модулей (драйверов). Например, модуль sqlsrv дружит Drupal с Microsoft SQL Server 2008+ и с облачным SQL Azure. Кстати, разработку этого драйвера спонсировала известная в Drupal-тусовке контора Commerce Guys (главный контрибьютор модуля Commerce). Есть разные решения для поддержки NoSQL-хранилищ (например, модуль для выноса в MongoDB кеша, сессий, блоков и пр.), но совсем без реляционного SQL`а наш Drupal не запустится (а надо ли?). А теперь вернёмся к SQLite…

Каким должен быть идеальный виртуальный хостинг (в том числе и для Drupal 7)

Как сказал кто-то из великих:

Идеала достичь невозможно, но стремиться к этому нужно.

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

Фантазировать буду, безусловно, со своей колокольни: у нас в агентстве для своих нужд виртуальный хостинг уже давно не используется, мы сначала перешли на VDS, а потом и на выделенные железные серверы. Соответственно, для собственных и регулярно поддерживаемых клиентских проектов — вопрос с хостингом решён так, как нам нравится и кажется правильным (dedicated). Но к нам довольно часто обращаются за разовой поддержкой клиенты со стороны. И тогда мы отправляемся покорять чужие виртуальные хостинги от самых разных провайдеров. Подобные визиты часто оканчиваются печалью.

На этот пост меня спровоцировал мой любимый трижды лучший сотрудник месяца компании Мастерхост — Иван (знакомьтесь, фоловьте):

Речь перед этим твитом зашла о лютых ограничениях на «Мастерхосте», с которыми мы недавно столкнулись, пытаясь завести на упомянутом хостинге сайт, построенный на базе Drupal 7. Вообще, «Мастерхост» — это лишь яркий пример и достойный повод, странных хостеров — хватает и без них. Далее перечислю наиболее типовые странности хостеров, мешающие жить и работать. Читайте далее…

Самый изящный PHP-shell из попадавшихся мне в последнее время

Что-то мне в последнее время везёт на инфицированные сайты (наверное, помните про вирус в .htaccess). Вот и ещё один клиент пришёл в наше агентство взломанным. Его похоже бахнули через подбор FTP-пароля (он у него лишь из цифр состоял), но, кстати, и этот взломанный сайт тоже крутился (и пока крутится) под управлением Joomla 🙂 В общем, в подарок клиенту закинули один из самых лаконичных PHP-шеллов, который только можно себе представить. Не удержусь от того, чтобы процитировать «зловредный» код… Немного знающие PHP далее оценят лаконичность злого гения…

Резервное копирование сайта с удалённого сервера по FTP, включая автоматическое создание дампа базы данных

Дано: есть у вас сайт на удалённом сервере, доступ к которому предоставлен только по FTP (это к файлам, а к базе данных вам дали логин/пароль и ссылку на phpMyAdmin). Планировщик cron на удалённом сервере вам использовать тоже нельзя (и к нему нет доступа). Задача: организовать регулярное резервное копирования файлов и базы данных на ваш компьютер или сервер.

Проблемы бы не существовало, если б копировать надо было только файлы. Но нам как-то надо регулярно получать и дампы базы. Это притом, что удалённых команд через SSH мы на сервере с сайтом выполнять не можем.

Я сначала опешил, но решение родилось вполне тривиальное — дампить базу PHP-скриптом, который будет запускаться нашим скриптом резервного копирования с нашего сервера перед сливом файлов. Далее представлено работающее решение задачи, состоящее из двух скриптов…