Набор векторных элементов интерфейса iPad для Adobe Illustrator. Пригодится при разработке макетов приложений для яблочных девайсов.
- 
	Векторные элементы интерфейса iPad24 мая 2010 Комментировать
- 
	PHP, type hinting для скалярных типов21 мая 2010 16 комментариевВ транк PHP скоммичен type hinting для скалярных типов. Т.е. скоро можно будет писать вот такой код: function foo(int $bar) {} 
- 
	PhpStorm RC build 95.15021 мая 2010 9 комментариевВышел RC PhpStorm, что означает непосредственную близость релиза. Основные изменения: - Улучшили определение типа переменных в foreach. 
- Поиск обращений к глобальным преременным. 
- Распознавание и валидация include. 
- Rename методов класса теперь учитывает наследование. 
- Полная поддержка дополнения по @method. 
- Introduce variable теперь можно использовать для вытаскивания части строки. 
 Да, я не писал о билдах PhpStorm начиная с версии 95.74, так что на всякий случай приведу весь список анонсов: 
- 
	Шрифты, веб и Google19 мая 2010 4 комментарияСегодня 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-ов. Использовать все эти чудесные возможности можно прямо сейчас. Ссылки по теме: 
- 
	Цены на PhpStorm14 мая 2010 14 комментариевНа официальной страничке появились цены на IDE PhpStorm. Итоговые цены будут такими: Коммерческая лицензия — $199. Персональная лицензия — $99. До первого сентября IDE можно будет купить по специальным ценам: Коммерческая лицензия — $149. Персональная лицензия — $49. Персональная лицензия привязывается к конкретному человеку, коммерческая действует в пределах компании. Лицензии для OpenSource проектов и учебных заведений, как и для остальных продуктов, бесплатны. Отличные цены, особенно если сравнивать с конкурентами. 
- 
	MySQL, InnoDB и внешние ключи14 мая 2010 2 комментарияДовольно часто при попытке создать внешний ключ MySQL вываливает невнятные errno: xxx. Их описания в большинстве случаев ничего не дают, даже запутывают ещё больше. Реальных причин может быть несколько: - Тип таблицы, на которую указывает ключ не InnoDB, SolidDB или PBXT. 
- С одной из сторон ключа нет индекса (да, создавать его надо руками). 
- С одной из сторон ключа нет столбца с указанными именем. 
- Неверное описание отношения, например ON DELETE SET NULL для столбца NOT NULL. 
- Ограничение с таким именем уже есть. 
- Несовпадение типов полей, связываемых отношением. Например, нельзя использовать с одной стороны int(10) unsigned, а с другой int(11) или bigint. 
- Нарушение целостности данных (integrity violation), т.е. когда ссылающийся id прописан, а в связываемой таблице его нет. 
 Пожалуй, пятый случай самый сложный в отладке, поэтому лучше взять за правило именовать ключи, индексы и ограничения уникально. 
- 
	Фикс diff Google code для Opera через usercss14 мая 2010 2 комментарияВ Opera не удаётся нормально пользоваться diff в Google code. Расстояния между строками получаются громадными. Какое-то время я с этим мирился и для Google code специально открывал FF или IE, но в конце концов не выдержал, нашёл причину и сделал фикс в виде usercss. Как пользоваться: - Открываем opera:about. Ищем путь к usercss (в русском переводе это будет «Папка пользовательских файлов CSS»). 
- Забираем файлик google_code_diff.css и складываем в найденную в п.1 папку. 
- Перезапускаем Opera. 
- Страница → Стиль → google_code_diff.css. 
 
- 
	rolling-curl13 мая 2010 49 комментариев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(); 
- 
	Минимальный тестовый набор11 мая 2010 2 комментарияПоиск ошибок и их устранение — совершенно типичная задача. А на каждую типичную задачу существует своё решение. Сегодня об этом решении, применительно к вёрстке, написал Chris Coyier. Заключается оно в составлении минимального тестового набора, то есть самого минимального набора условий, на котором можно воспроизвести проблему. После его составления, либо проблема полностью локализуется, либо находится ошибка в продукте, лежащем в основе вашего. 
- 
	EhterPad умер — да здравствует EhterPad!11 мая 2010 КомментироватьЗамечательный сервис http://etherpad.com/, о котором я уже писал, перестал принимать новые документы. К счастью, после открытия исходного кода, энтузиасты подхватили инициативу и теперь у нас есть не один, а целый десяток EtherPad-форков, некоторые из которых подверглись всевозможным улучшениям. Что ж, долгой жизни новым EtherPad-ам! 


