Блог веб-разработчика: в помощь программистам

Полезняшки: sshfs

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

Поясню для начала, что ftp недолюбливаю и считаю его лишним на сервере. SSH более безопасен в этом плане и есть по умолчанию в сборках систем для серверов (хостинг на win платформе немного в “пролете”). Второй момент: я в качестве рабочей системы использую Ubuntu. Данная операционная система набирает обороты, а для web-программистов/администраторов это хорошая возможность иметь полнофункциональную систему и не отдалятся от “корней” командной строки.

Читать полностью »

WordPress – работа с базой

Вордпресс предоставляет достаточно обширные возможности для работы с его базой.

Описание всех классов есть в файле wp-includes/wp-db.php. Данные классы позволяют писать плагины, которые будут работать максимально безопасно без нарушения функционала всей системы.

Рассмотрим наиболее часто используемые. Читать полностью »

Ускоряем сайт на PHP (часть №1)


Я думаю, что все сталкивались с тем, что при росте посетителей хостинга перестает хватать, странички грузятся по нескольку секунд (десятков секунд). Посетители начинаю жаловаться, что “сайт тормозит”.  Хостер требует перейти на более дорогой тарифный план.

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

Читать полностью »

Skype упал

skype down Все помнят как падала и глючила аська, когда начала набирать по настоящему серьезные обороты и стала основным instant messenger-ом в мире.

Сегодня рухнул скайп. Отказали сервера авторизации и несколько миллионов людей остались без связи с коллегами (мой вариант). Ведь многие уже плотничком на него подсели, отказавшись от icq/jabber. От того что многомиллионной публика ломанулась на страницу скайпа они начали перенаправлять траффик на свой твиттер. Где обещали все починить в ближайшее время, конкретный репорт обещают показать позднее, откуда выросли ноги. Лично у меня скайп до сих пор не работает. Некоторые отмечают что им удалось залогиниться. Помимо IM скайп это еще и VOIP решение, вот тут то я думаю люди и бизнес решения от скайп пострадали больше всего.

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

Rutube – получаем изображение ролика (thumbnail)

Стала необходимость получить картинку для роликов вставленных с youtube / rutube, с youtub-ом всё быстро и понятно, а вот с rutub-ом мне пришлось повозится, поэтому и решил написать, может кому то поможет и сэкономит время.
Есть 2 варианта – клиентский и серверный, так как я работаю с PHP, мне нужен 2й, оказалось всё довольно просто, необходимая информация лежит по урлу

http://rutube.ru/cgi-bin/xmlapi.cgi?rt_mode=movie&rt_movie_id=ID_Ролика&utf=1

ну тут всё понятно подставляем свой урл и парсим XML, где помимо ссылок на картинки к роликам рутюба, лежит и вся остальная инфа о ролике, всё просто :)

Далее инфа с http://rodionblog.ru

Иногда требуется получить превью-, thumbnail-картинку (или, по-другому, уменьшенную версию кадра) видеофайла. Данные функции позволяют вытащить превьюшки видеофайлов с таких популярных сервисов как youtube, rutube, vimeo.
getVideoUrl($data)

, где $data – html-код для встраивания видео (обычно, начинается с <object> или <iframe>)
getVideoThumbUrl($url)

, где $url – src видеофайла

Выкладываю как есть:

function getVideoUrl ($data) {
if (preg_match("/&lt;iframe.*?src=\"([^\"]+)\".*?&gt;&lt;\/iframe&gt;/i", $data, $matches)) {
$url = $matches[1];
}
if (preg_match("/&lt;object.*?&gt;.*?&lt;param name=\"movie\" value=\"([^\"]+)\"( \/&gt;|&gt;&lt;\/param&gt;).*?&lt;\/object&gt;/i", $data, $matches)) {
$url = $matches[1];
}
return $url;
}
 
function getVideoThumbUrl ($url) {
if (!is_string($url) || empty($url)) return false;
$url = str_replace("&amp;amp;", "&amp;", $url);
$arr = parse_url($url);
$arr[host] = str_replace('www.', '', $arr[host]);
$url = "";
switch ($arr[host]) {
case 'rutube.ru':
if (preg_match("/\/tracks\/(.+)\.html/i", $arr[path], $matches)) {
$xml = simplexml_load_file("http://rutube.ru/cgi-bin/xmlapi.cgi?rt_mode=movie&amp;rt_movie_id=".$matches[1]."&amp;utf=1");
if ($xml) {
$url = (string) $xml-&gt;response-&gt;movie-&gt;thumbnailLink;
}
}
break;
case 'video.rutube.ru':
if (preg_match("/\/(.+)/i", $arr[path], $matches)) {
$s[0] = substr($arr[path], 1, 2);
$s[1] = substr($arr[path], 3, 2);
$url = "http://tub.rutube.ru/thumbs/".$s[0]."/".$s[1]."/".$matches[1]."-1-1.jpg";
}
//$url = "http://img-1.rutube.ru/thumbs/".$link[0].$link[1]."/".$link[2].$link[3]."/".$link."-2.jpg";
break;
case 'youtube.com':
if (preg_match("/\/(embed|v)\/(.+)\/?/i", $arr[path], $matches)) {
$url = "http://img.youtube.com/vi/".$matches[2]."/0.jpg";
}
break;
case 'player.vimeo.com':
if (preg_match("/\/video\/(.+)\/?/i", $arr[path], $matches)) {
$clip_id = $matches[1];
}
$xml = simplexml_load_file('http://vimeo.com/api/v2/video/'.$clip_id.'.xml');
if ($xml) {
$url = (string) $xml-&gt;video-&gt;thumbnail_medium;
}
break;
case 'vimeo.com':
parse_str($arr[query], $query);
$clip_id = $query['clip_id'];
$xml = simplexml_load_file('http://vimeo.com/api/v2/video/'.$clip_id.'.xml');
if ($xml) {
$url = (string) $xml-&gt;video-&gt;thumbnail_medium;
}
break;
default:
$url = "";
break;
}
return $url;
}

Как использовать:
// вытаскиваем src видеофайла
$url = getVideoUrl ($html);
// генерируем ссылку на превьюшку
$th_url = getVideoThumbUrl ($url);
// $th_url теперь содержит ссылку на уменьшенную копию кадра из видео $url
echo ‘<img src=”‘, $th_url, ‘” border=”0″ />

Хочу в Канаду!


У меня по планам через год иммигрировать в Канаду. Очень нравиться страна, хотелось бы жить и работать в Канаде, еще бы лучше работать веб-разработчиком в хорошей компании.

Хотелось бы узнать от бывалых, что нужно – как проще всего открыть визу(какую),как найти работу, сколько денег нужно с собой и т.д

Буду очень благодарен за любые советы / информацию

PHP вывод русского алфавита

Можно придумать много способов вывести русский алфавит в нужном месте, но мне кажется оптимальным способом является следующий:

$cyr = range("192","223");
foreach($cyr as $lit) echo chr($lit);

Немного поясню функция CHR в PHP преобразовывает ASCII код в символ, русский алфавит от 192 до 223, по аналогии можно поступить и с английским и с любым другим алфавитом.

Русский перевод Interspire Shopping Cart

Очень хороший скрипт магазина, главное отличие от других интернет магазинов это возможность использования магазина разными продавцами(мульти пользовательский интернет магазин). В скрипте из коробки просто нереальное количество возможностей, единственное что нет русской локализации, это дело я решил исправить и сейчас заканчиваю перевод, очень устал поэтому поддержите меня и помогите закончить перевод(админки и клиентской части), на данный момент готово на 90% продаю за символические 25$ http://www.plati.ru/asp/pay.asp?idd=1014115 – После завершения перевода все покупатели получат финальную версию бесплатно.

Проекты с использованием ExtJS

Недавно начал изучать эту замечательную библиотеку, и решил поискать в сети проекты которые используют ее.

1. CRM, ERP система Tine

http://www.tine20.org/open-source-groupware-and-crm/

2. Интернет-магазин E-cart, админ интерфейс

http://www.ecartcommerce.com/blog/

[ad]

3. Календарь

http://www.feyasoft.com/myCalendar

Очень хороший онлайн клиент для ICQ (WEB IM)

Я очень давно искал хороший web клиент для аьски, никак не мог найти – то интерфейс не устраивал, то баги с кодировками и  т.д, но вчера абсолютно случайно нашел отличный сервис: http://www.trillian.im/ их десктопный клиент меня почему то кумарит очень сильно, а вот от веб-версии я в восторге, к тому же она работает не только с ICQ протоколом а и с многими другими, смотрите на скриншотах в полной версии новости

Читать полностью »