Динамическая инициализация новых виджетов твиттера

В сентябре 2012 года Twitter анонсировал новые захватывающие «инструменты реального времени для разработчиков веб-сайтов» ©, то есть новые виджеты. Причем старые виджеты кажется должны были перестать поддерживаться как раз в мае 2013, но видимо отключат их таки в июне. Так что самое время подумать о переезде на новую версию APi и новые виджеты.

Настройки виджета Embedded Timeline можно найти на сайте для разработчиков. Интересно то, что о динамической подгрузке виджета практически нигде не сказано. А порой это бывает нужно, например, когда часть контента страницы или даже вся страница подгружается аяксом. Как же это сделать? Есть ответ!

Редирект с www средствами роутинга в Ruby on Rails

В большинстве случаев редирект с поддомена www на домен второго уровня (или обратно) реализуется на уровне web-сервера (например, apache или nginx). Вот пример редиректа, настраиваемого в конфиге nginx:

        if ($host = 'www.dhampik.ru') {
                rewrite  ^/(.*)$  http://dhampik.ru/$1  permanent;
        }

Однако такая возможность имеется не всегда - иногда просто нет доступа к настройкам web-сервера, например, если вы используете хостинг heroku. В этом случае может помочь настройка редиректа средствами роутинга в Ruby on Rails.

Проблемы использования twitter bootstrap в Ruby on Rails на Windows

Пишем сайт. На Ruby on Rails. Хотим простого и красивого интерфейса из коробки и решаем использовать Twitter Bootstrap. И случилось такое дело, что разрабатываем мы в Windows. Конечно разрабатывать ruby-приложения на Windows - не лучшая идея, однако порой — вынужденная мера (например, под рукой у вас есть только виндовый компьютер или вы попали в команду "специфических" разработчиков).

Для подключения twitter bootstrap eсть 2 наиболее популярных гема - twitter-bootstrap-rails и bootsrap-sass. Разберем сложности, которые мы можем встретить при их использовании.

Реализация фильтрации по тегам в Yii и не только

Теггирование различных элементов очень часто встречается в разработке сайтов. Сами теги реализуются просто — это отдельная таблица с названиями тегов и таблица связки многие-ко-многим между тегами и какими-то сущностями. Однако реализация фильтрации по тегам — не такая уж простая задача. Фильтровать сущности по тегам как правило приходится одним из следующих вариантов:

  • выбрать все элементы без тегов
  • выбрать элементы, имеющие все указанные теги (и возможно, другие теги)
  • выбрать элементы, имеющие один или несколько из указанных тегов (и возможно, другие теги)

Рассмотрим каждый из этих случаев и приведем пример конкретной реализации фильтрации на Yii.

Передача параметров из контроллера в javascript-файлы

Javascript во вьюхах — часто ли вы встречаете такое?
Зачастую во вьюху из 3-5 строчек html-кода вставляются портянки яваскрипта на сотни строк.
На просьбу вынести этот код в отдельный js файл — можно услышать ответ, что в коде используются php-переменные из контроллера и, поэтому, вынести этот код из в отдельный js-файл не представляется возможным.

А в общем-то это довольно просто сделать. Просто и удобно.
Далее речь пойдет о реализации для фреймворка Yii, однако аналогичный подход легко реализуем и в других фреймворках.

Качественный импорт дампа базы mysql

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

SET NAMES utf8;
DROP DATABASE `mydb`;
CREATE DATABASE `mydb` DEFAULT CHARACTER SET utf8;
USE `mydb`;
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; 
SET autocommit=0;
SET foreign_key_checks=0;
SET unique_checks=0;
SOURCE /path/to/db_dump.sql;
COMMIT;
SET autocommit=1;
SET foreign_key_checks=1;
SET unique_checks=1;

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

Magento: проблемы с var_dump и print_r

Сталкивались ли вы когда-нибудь с тем, что при выводе объекта на экран при помощи var_dump или print_r вы получали пустую страницу?

При выводе некоторых объектов PHP просто не хватает памяти (потому что объекты рекурсивны).

В таком случае в Magento у всех объектов, наследуемых от Varien_Object (а это практически все объекты), существует специальный метод debug(). Он позволяет избавиться от рекурсии.

Чтобы вывести дамп объекта в magento используйте следующую конструкцию: var_dump($product->debug());

Вывод результата запроса консоли mysql в вертикальном формате

Случалось ли такое, что при выборке из таблицы с множеством столбцов вы получали совершенно нечитаемый вывод на экран (из-за того, что столбцы расползались по нескольким строкам)?

Оказывается, можно вывести каждую строчку по-отдельности в виде пар «ключ: значение». Для этого всего лишь нужно в конце запроса вместо ; поставить \G

Старт!

Добрый день!

Меня зовут Кирилл Калачёв.

Сим постом даю старт своему сайту и блогу!

Если вы его посетили и читаете, то вы вероятно очень любознательны!