<rmcreative>

RSS
  1. Выступлю на UWDC'12

    6 февраля 2012

    26 Февраля буду выступать на UWDC'12 на тему «Фреймворки, Yii и работа в команде». Расскажу про Yii, его историю, про то, насколько он вырос и где используется. Также попробую затронуть фундаментальные ошибки Yii 1.1, которые мы попробуем исправить в 2.0.

    Все желающие послушать приглашаются. Конференция обещает быть интересной… Да, видео обещать не буду так как оно куда-то постоянно теряется.

    12 комментариев
  2. The Little Redis Book

    5 февраля 2012

    Перевод на русский небольшой вводной тридцатидвухстраничной книжечки о нереляционном хранилище Redis. Книга написана автором «The Little MongoDB Book».

    Читаем PDF

    Да, примечательна она ещё тем, что как оригинал, так и перевод, анонсированный на хабре, бесплатны и их исходник выложен на github.

    Комментировать
  3. Twitter Bootstrap 2.0

    3 февраля 2012

    Обновился один из лучших UI-фреймворков на сегодняшний день. Позволяет до поры до времени забыть про UI приложения и сфокусироваться на его функционале. При этом стандартный UI выглядит лучше, чем многие завершённые проекты.

    В комплекте сетка, базовый CSS для текста, таблиц, форм и кнопок, набор значков, отдельные элементы интерфейса и даже JavaScript-плагины. Всё это кроссбраузерно и кроссдевайсово. Можно использовать LESS, так что работать с набором довольно удобно.

    Пробуем

    11 комментариев
  4. Визуализация данных на JavaScript, d3.js

    28 января 2012

    Какое-то время назад коллеги обратили моё внимание на библиотеку d3.js, предназначенную для визуализации данных. По началу я подумал, что это очередная штуковина для построения графиков, ну или, как максимум, библиотека для работы с векторной графикой. На деле всё оказалось несколько интересней.

    Последовательность работы сводится примерно к следующему:

    1. Получаем данные, которые будем визуализировать. Формат, в общем-то не важен, но удобней всего работать с JSON.
    2. Привязываем данные к DOM-контейнеру при помощи data.
    3. Используем селектор enter, которые выбираем ещё несуществующие представления для каждого элемента данных. Например, это могут быть столбики в графике.
    4. Для каждого выбранного создаём столбик.

    На словах это выходит немного запутанно. Код более красноречив:

    d3.select("body").selectAll("p") // выбрали все p внутри body
      .data([4, 8, 15, 16, 23, 42]) // привязали к выборке данные
      .enter() // будем создавать элементы, если их ещё нет
      .append("p") // это будет элемент p
        .text(function(d){ // используем наши данные для задания текста
           return "I'm number " + d + "!";
        });

    Результатом будет шесть элементов p с номерами, соответствующими переданным данным. Подобно тексту можно задавать и другие свойства, CSS, атрибуты… да всё что угодно. В результате можно получить очень интересные визуализации прилагая к этому минимум усилий. Это главная идея и возможность библиотеки. Остальное предназначено для удобной манипуляции данными, работы с SVG, созданию анимации, AJAX, работы с цветом, проекции значений на разные координатные системы и даже работы с гео-API. Всё вместе позволяет создавать очень интересные интерактивные визуализации.

    Пробуем и пользуемся

    Да, изучение рекомендую начинать с главной страницы. Пониманию основной идеи помогает вот эта интерактивная страница.

    Ну и небольшая визуализация от меня. Количество постов в месяц за всё время существования этого блога.

    5 комментариев
  5. YiiTalk, эпизод 2

    24 января 2012

    Сегодня вместе с Юрием Беляковым записался в подкасте YiiTalk, первом русскоязычном подкасте про Yii. Говорили про меня, про Yii и его развитие, немного про вторую версию и программирование в целом.

    Слушаем на podfm

    11 комментариев
  6. Схема обработки ошибок в Yii

    22 января 2012

    На хабре в блоге Yii за время моего отпуска появился подробный разбор того, как работает обработка ошибок в Yii. Если по каким-то причинам пропустили — рекомендую.

    Читаем

    2 комментария
  7. Yii 1.1.9

    1 января 2012

    Вышла стабильная версия Yii 1.1.9. В данном релизе около 60 улучшений и исправленных ошибок.

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

    Русскоязычная документация, как обычно, находится в полностью актуальном состоянии. Кроме того, поправлены все найденные на момент релиза опечатки. Спасибо всем, кто использует Orphus на yiiframework.ru.

    Рассмотрим наиболее интересные изменения.

    Более удобный способ определения through в отношениях ActiveRecord

    Опция though была добавлена в версии 1.1.7, но синтаксис был не слишком удобен, так что было решено сделать его более явным. В текущей версии используется следующий синтаксис:

    'comments'=>array(self::HAS_MANY,'Comment',array('key1'=>'key2'),'through'=>'posts'),

    В приведённом выше array('key1'=>'key2'):

    • key1 является ключом, определённым в отношении, котрое указано в through (в нашем случае это posts).
    • key2 является ключом, определённым в модели, на которую указывает отношение (в нашем случае это Comment).

    through можно использовать как для HAS_ONE, так и для HAS_MANY.

    Подробнее данная возможность описана в разделе Реляционная Active Record полного руководства.

    Поддержка групп условий в Model::relations()

    Теперь можно использовать группы условий при определении отношений модели:

    'recentApprovedComments'=>array(self::BELONGS_TO, 'Post', 'post_id', 
        'scopes' => array('approved', 'recent')),

    При использовании лишь одной группы условий её можно указать как строку.

    Возможность сделать JOIN между моделями по заданным ключам

    В данной версии стало возможым создание отношений по заданной паре PK->FK не опираясь на схему данных. Это означает, что можно, например, задать следующее отношение для модели Day:

    'jobs'=>array(self::HAS_MANY, 'Job', array('date' => 'target_date')),

    В данном случае Day может содержать несколько Jobов. При этом они не связаны привычным образом. Мы задали ключ в виде array('fk'=>'pk'), то есть на выходе мы получим SQL вроде

    SELECT * FROM day t
    JOIN job ON t.date = job.target_date
    

    Возможность перекрыть классы ядра при помощи Yii::$classMap

    Начиная с 1.1.5 в Yii была возможность заранее импортировать классы и использовать их без явного импорта или include. Теперь используя тот же самый подход можно перекрыть классы ядра.

    8 комментариев
  8. 2011

    28 декабря 2011

    Подходит к концу 2011-ый. Год получился определённо интересный:

    • Написано более 150 постов. Многие, подозреваю, были полезны.
    • Добавил RSS для комментариев, подписку без комментирования и кнопочки социальных сервисов.
    • Попробовал размещать баннеры в сайдбаре. Желающих особо не нашлось, поэтому там разместились мои проекты и другие качественные ресурсы. Впрочем, затею я не оставил, так что пишите, если есть что разместить.
    • Не стал вести блог на английском. Может, в следующем году, а может и не надо…
    • Yii стал ещё более популярным. Произошло это немного раньше, чем планировалось.
    • Yii пережил релиз Symfony 2.0. Причём, как-то неожиданно легко.
    • Выпустили три релиза Yii и ещё один будет до конца года.
    • Начата работа над Yii2.
    • Русскоязычное сообщество Yii окончательно окрепло. Особо активные участники провели несколько отличных beer party.
    • Перешёл из Murano Software в CleverTech на позицию Tech Lead. Соответственно, сменил Java на PHP и хорошенько пощупал Yii в боевых условиях.
    • Научился понимать около 18 диалектов английского.
    • Прочитал доклады на CodeFest, DevConf и ещё один секретный в Воронеже.
    • Познакомился со многими интересными людьми.
    • Издал книгу по Yii.
    • Дочке исполнился год. Очень очень радует.

    Всех с наступающим! Пусть следующий год будет не менее интересным.

    13 комментариев
  9. jQuery contextMenu

    19 декабря 2011

    Контекстное меню в виде плагина для jQuery с довольно гибким API.

    • Триггерится как угодно.
    • Можно управлять пунктами на ходу.
    • Можно встраивать элементы форм в меню… да и вообще что угодно из HTML.
    • Куча callback-ов практически на все действия.
    • Поддержка вложенных меню.
    • Поддержка клавиатуры.
    • Все стили задаются через CSS.

    Пользуемся

    9 комментариев
  10. Прощай, IE6

    16 декабря 2011

    Microsoft уже давно отзывается о древнем IE6 не очень хорошо. Даже сайт специальный запустили. Но это, в общем, не новость. Новость в том, что слухи о автоапдейтах IE подтвердились, да ещё как подтвердились!

    Обновляться самостоятельно будут не только новые версии браузера, как ранее предполагалось. Windows позаботится об автоматическом обновлении старых версий на последние доступные для обновляемой ОС (для XP верхняя планка — IE8, для остальных её пока нет).

    Первые апдейты полетят уже в следующем месяце. В общем, спасибо Microsoft за новогодний подарок.

    13 комментариев