<rmcreative>

RSS
  1. Векторные элементы интерфейса iPad

    24 мая 2010

    Набор векторных элементов интерфейса iPad для Adobe Illustrator. Пригодится при разработке макетов приложений для яблочных девайсов.

    Пользуемся

    Комментировать
  2. PHP, type hinting для скалярных типов

    21 мая 2010

    В транк PHP скоммичен type hinting для скалярных типов. Т.е. скоро можно будет писать вот такой код:

    function foo(int $bar) {}
    16 комментариев
  3. PhpStorm RC build 95.150

    21 мая 2010

    Вышел RC PhpStorm, что означает непосредственную близость релиза.

    Основные изменения:

    • Улучшили определение типа переменных в foreach.

    • Поиск обращений к глобальным преременным.

    • Распознавание и валидация include.

    • Rename методов класса теперь учитывает наследование.

    • Полная поддержка дополнения по @method.

    • Introduce variable теперь можно использовать для вытаскивания части строки.

    • Официальный анонс

    • Полный список изменений

    Да, я не писал о билдах PhpStorm начиная с версии 95.74, так что на всякий случай приведу весь список анонсов:

    9 комментариев
  4. Шрифты, веб и Google

    19 мая 2010

    Сегодня Google обрадовал сразу несколькими проектами:

    Google Font API — API для удобного кроссбраузерного подключения нестандартных шрифтов. Использовать очень просто:

    <html>
      <head>
        <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Tangerine">
        <style>
          body {
            font-family: 'Tangerine', serif;
            font-size: 48px;
          }
        </style>
      </head>
      <body>
        <h1>Making the Web Beautiful!</h1>
      </body>
    </html>

    За кулисами происходит определение браузера и подсовывание ему нужного формата CSS и шрифта.

    Google Font Directory — набор довольно качественных свободных шрифтов, которые можно использовать при помощи Font API как в открытых, так и в коммерческих проектах.

    WebFont Loader — JavaScript библиотека, которая позволяет выйти за рамки стандартного Font API: использовать шрифты typekit и свои шрифты. Также есть некоторое количество полезных callback-ов.

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

    Ссылки по теме:

    4 комментария
  5. Цены на PhpStorm

    14 мая 2010

    На официальной страничке появились цены на IDE PhpStorm.

    Итоговые цены будут такими:

    Коммерческая лицензия — $199.

    Персональная лицензия — $99.

    До первого сентября IDE можно будет купить по специальным ценам:

    Коммерческая лицензия — $149.

    Персональная лицензия — $49.

    Персональная лицензия привязывается к конкретному человеку, коммерческая действует в пределах компании. Лицензии для OpenSource проектов и учебных заведений, как и для остальных продуктов, бесплатны.

    Отличные цены, особенно если сравнивать с конкурентами.

    14 комментариев
  6. MySQL, InnoDB и внешние ключи

    14 мая 2010

    Довольно часто при попытке создать внешний ключ MySQL вываливает невнятные errno: xxx. Их описания в большинстве случаев ничего не дают, даже запутывают ещё больше.

    Реальных причин может быть несколько:

    1. Тип таблицы, на которую указывает ключ не InnoDB, SolidDB или PBXT.

    2. С одной из сторон ключа нет индекса (да, создавать его надо руками).

    3. С одной из сторон ключа нет столбца с указанными именем.

    4. Неверное описание отношения, например ON DELETE SET NULL для столбца NOT NULL.

    5. Ограничение с таким именем уже есть.

    6. Несовпадение типов полей, связываемых отношением. Например, нельзя использовать с одной стороны int(10) unsigned, а с другой int(11) или bigint.

    7. Нарушение целостности данных (integrity violation), т.е. когда ссылающийся id прописан, а в связываемой таблице его нет.

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

    2 комментария
  7. Фикс diff Google code для Opera через usercss

    14 мая 2010

    В Opera не удаётся нормально пользоваться diff в Google code. Расстояния между строками получаются громадными. Какое-то время я с этим мирился и для Google code специально открывал FF или IE, но в конце концов не выдержал, нашёл причину и сделал фикс в виде usercss.

    Как пользоваться:

    1. Открываем opera:about. Ищем путь к usercss (в русском переводе это будет «Папка пользовательских файлов CSS»).

    2. Забираем файлик google_code_diff.css и складываем в найденную в п.1 папку.

    3. Перезапускаем Opera.

    4. Страница → Стиль → google_code_diff.css.

    5. Проверяем.

    2 комментария
  8. rolling-curl

    13 мая 2010

    rolling-curl — PHP-класс для параллельного выполнения большого количества асинхронных HTTP-запросов при помощи curl, написанная Josh Fraser и поддерживаемая на данный момент мной.

    Правильно чистит память, не простаивает зря, выполняя одновременно заданное число запросов. Обрабатывает каждый ответ сразу после выполнения запроса.

    Пример:

    // URL, которые будем обрабатывать
    $urls = array(
      "http://www.google.com",
      "http://www.facebook.com",
      "http://www.yahoo.com",
    );
     
    // функция для обработки ответа
    function request_callback($response, $info) {
      // получаем title страницы
      if (preg_match("~<title>(.*?)</title>~i", $response, $out)) {
        $title = $out[1];
      }
      echo "<b>$title</b><br />";
      print_r($info);
      echo "<hr>";
    }
     
    $rc = new RollingCurl("request_callback");
    // одновременно позволим не более 20 запросов
    $rc->window_size = 20;
    foreach ($urls as $url) {
        // добавляем запросы в очередь
        $request = new RollingCurlRequest($url);
        $rc->add($request);
    }
    // запускаем
    $rc->execute();

    Пользуемся

    49 комментариев
  9. Минимальный тестовый набор

    11 мая 2010

    Поиск ошибок и их устранение — совершенно типичная задача. А на каждую типичную задачу существует своё решение. Сегодня об этом решении, применительно к вёрстке, написал Chris Coyier.

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

    Читаем

    2 комментария
  10. EhterPad умер — да здравствует EhterPad!

    11 мая 2010

    Замечательный сервис http://etherpad.com/, о котором я уже писал, перестал принимать новые документы. К счастью, после открытия исходного кода, энтузиасты подхватили инициативу и теперь у нас есть не один, а целый десяток EtherPad-форков, некоторые из которых подверглись всевозможным улучшениям.

    Что ж, долгой жизни новым EtherPad-ам!

    Комментировать