papilio

Архив категории «Интернет»

Статистика подкастов

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

Самый простой вариант это сделать — зарегистрироваться в каком-нибудь подкаст-каталоге (директории подкастов), выложить аудио-файл на их сервер и смотреть красивую статистику. Но я практически сразу отмёл этот способ, так как мне не совсем нравится то, что, например, Russian Podcasting добавляет небольшую короткую аудиорекламу в начале каждого подкаста, если он записан на их сервере. Всё правильно: за хранение подкаста на их сервере всё-таки надо как-то платить.

Другой способ — это платные директории подкастов (например, LibSyn). Они не добавляют рекламы к вашим подкастам и предоставляют отличную статистику.

Но зачем же платить, если есть место на собственном сервере, или, что ещё лучше, можно разместить всё на Amazon S3? Но тогда возникает вопрос: как подсчитать статистику таких подкастов, особенно, если хочется их выложить сразу же на нескольких директориях подкастов? Всё просто: надо воспользоваться бесплатным сервисом Blubrry!

Для этого достаточно добавить к адресу своего подкаста специальный адрес сервиса Blubrry. Например, для нашего подкаста он выглядит как

http://media.blubrry.com/piclab/

— следовательно, если сам подкаст лежит по адресу http://blog.piclab.ru/wp-content/podcasts/piclab_podcast_01_04032009.mp3, то новый адрес будет иметь вид http://media.blubrry.com/piclab/blog.piclab.ru/wp-content/podcasts/piclab_podcast_01_04032009.mp3.

Именно этим и обеспечивается возможность подсчёта статистики сервисом Blubrry.

Сводка по статистики всех подкастов в Blubrry

Сводка по статистики всех подкастов в Blubrry

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

Статистика конкретного подкаста в сервисе Blubrry

Статистика конкретного подкаста в сервисе Blubrry

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

По-моему, удобно. Хотя я попробую ещё поискать системы, которые можно было бы просто поставить на свой сервер. Да, можно анализировать логи, но, может быть, если что-то специально для подкастов?

Метки: , , , , , , ,

Как скачать полностью блог

Я уже как-то писал, как скачать полностью сайт с помощью программы Wget. Но когда я попытался скачать блог на WordPress с включённой функцией т.н. чистых ссылок (permalink), то у меня не скачивались статьи.

Почему же так получалось? Всё просто. Для начала рассмотрим стандартный вид адреса статьи в блоге:

/2009/02/10/merge-google-contacts.html

— Wget будет скачивать и /2009/02, что является страницей архива всех записей за данный период, и саму статью. Первую страницу он сохранит в файл 02 в директории 2009, но куда же сохранить статью, если уже не получится создать директории с тем же именем 02? Именно в этом и была у меня проблема.

Всё решается просто: достаточно указать флаг -E в параметрах запуска Wget, чтобы он все страницы сохранял с расширением .html. Теперь страница с архивом будет сохранена как 02.html в директории 2009, так что Wget сможет создать директории 02, чтобы сохранить запись.

Итак, итоговая строка запуска Wget с параметрами будет выглядеть так:

wget -r -l20 -k -E -c http://www.site.ru

где r — рекурсивно,
l — глубина рекурсии,
c — с возможностью докачки,
k — конвертация ссылок в абсолютные по окончанию закачки,
E — сохранять страницы с расширением .html.

Я пробовал другие программы, но Wget всё равно лучше и проще.

Метки: , , , ,

CloudBerry Explorer — работать с Amazon S3 стало проще

Я уже давно и постоянно пользуюсь сервисом S3 от компании Amazon. Если по-простому, то это система хранения файлов с относительно низкими ценами (если просто хранить, а не давать другим много скачивать). Я уже давно использую Amazon S3 и как средство для личного резервного копирования, так и для размещения фотографий и других медиафайлов для моего tumblr.

Не так-то и очевидно, как разместить файл на Amazon S3. Во-первых, это не FTP и обычными программами не подключиться. Во-вторых, у Amazon S3 собственная особенная архитектура, состоящая из bucket, объектов (это файлы) и т.п. Поэтому очень важно пользоваться удобной программой, в который бы всё выглядело привычно, как будто бы мы подключились к обычному (s) FTP-серверу. Например, это дополнение к Firefox под названием S3Fox — отличное решение, но, к сожалению, иногда очень медленно работает и не умеет переименовывать файлы.

Недавно мне сказали о новой разработке по работе с сервисом Amazon S3 — CloudBerry Explorer. Хотя он ещё только развивается, но уже умеет очень много:

  • Возможность переименовывать объекты (файлы)
  • Улучшенная производительность при работе с большим количеством файлом и большими файлами
  • Поддержка сервиса streamincloud.com для кодирования видео в FLV на лету для Amazon S3
  • Поддержка команд PowerShell
  • Регистрация и соединение с любым количеством аккаунтов Amazon S3
  • Одновременная работа с любым количеством аккаунтов Amazon S3
  • Быстрое копирование между аккаунтами и buckets Amazon S3
  • Расшаривание buckets и файлов, расположенных на Amazon S3 с другими пользователями
  • Создание, просмотр и удаление S3 buckets
  • Копирование и перемещение файлов между Amazon S3 и локальным компьютером
  • Установка прав доступа
  • Автоматизация рутиных задач с Microsoft PowerShell
  • Создание внешних адресов URL
  • Перемещение и копирование в фоне
  • Поддержка MD5 для проверки файлов во время передачи на S3
  • Копирование файлов из проводника Windows
  • Поддержка сервиса Amazon CloudFront
  • Поддержка CNAME
  • Поддержка подписанных адресов URL, а также лимитированных по времени
  • Установка списков ACL к дочерним объектам

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

Программа работает пока только на Windows. Итак, начнём с первого запуска. Меня попросили зарегистрироваться (зачем это необходимо, мне пока неизвестно):

Регистрация программы CloudBerry Explorer

Регистрация программы CloudBerry Explorer

Сама программа выглядит как любой FTP-клиент: два окна для работы с файлами. С любой стороны можно открыть как локальный диск, так и любой buckets любого зарегистрированного аккаунта Amazon S3.

Вид CloudBerry

Вид CloudBerry

Также, как и в S3Fox, можно сохранить параметры сразу же для нескольких аккаунтов Amazon S3, но, в отличие от дополнения Firefox, можно соединиться одновременно с несколькими аккаунтами.

Ввод данных для Amazon S3

Ввод данных для Amazon S3

Возможность одновременного подключения реализована с помощью вкладок (табов) — точно также, как и в любом браузере:

Вкладки в CloudBerry Explorer

Вкладки в CloudBerry Explorer

Работа с программой очень проста. При подключении к своему аккаунта сразу можно перейти к buckets:

Список buckets

Список buckets

Самой важной особенностью программы, которую отличают её от других, я считаю возможность переименования объектов, то есть файлов. Мне очень не хватало такой функции ранее:

Переименование объекта в Amazon S3 с помощью CloudBerry Explorer

Переименование объекта в Amazon S3 с помощью CloudBerry Explorer

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

Адресная строка в CloudBerry Explorer

Адресная строка в CloudBerry Explorer

Кроме того, можно редактировать права доступа. Например, открыть доступ на запись другому пользователю Amazon. Но я заметил, что CloudBerry Explorer по-умолчанию добавляет пользователя streamincloud для возможности перекодирование видео-файлов в FLV на лету (сервис streamincloud.com). Да, это удобно, но всё-таки странно, что CloudBerry Explorer добавляет всё это самостоятельно:

Редактирование ACL

Редактирование ACL

Очень удобно реализована работа с получением адреса на собственный файл (объект):

Web URL

Web URL

Затем можно как получить публичный адрес (если права проставлены правильно), так и приватный. Хорошо, что сделали указание домена CNAME, хотя раньше я просто стирал часть адреса:

Создание адреса с CNAME

Создание адреса с CNAME

Также можно создать и адреса со «сроком годности»:

Создание приватной ссылки

Создание приватной ссылки

В конце отмечу работу с копированием между buckets и различными аккаунтами Amazon S3. Во-первых, это будет бесплатно (при соотвествующей настройке и размещении в одной зоне), во-вторых, это точно так же, как и работа с обычными файлами:

Настройка копирования между Amazon

Настройка копирования между Amazon

Теперь я пользуюсь в Windows этой программы для работы со своим аккаунтом Amazon S3. Надеюсь, что CloudBerry Explorer останется бесплатным. Кстати, ещё можно посмотреть из промо-ролик:

Метки: , , , , ,

Включение синхронизации с мобильными устройствами для Google Apps

Сегодня уже две записи, относящихся Google — думаю, что много. Тем не менее, в предыдущем посте я писал о том, что можно объединять контакты в адресной книге Google, а также синхронизировать их со своим мобильным телефоном.

Но, после того как я попробовал синхронизировать моё устройство Windows Mobile, у меня ничего не получилось. Оказывается, для тех, кто пользуется Службами Google в своём домене (Google Apps), надо самостоятельно включать такую возможность в панели управления.

Итак, чтобы включить возможность синхронизации мобильных устройств, надо зайти в панель управления, выбрать пункт Mobile (у меня английская версия):

Пункт Mobile в настройке

Пункт Mobile в настройке

И включить возможность синхронизации:

Включение синхронизации с мобильными устройствами

Включение синхронизации с мобильными устройствами

Теперь всё должно работать, если, конечно, настроить свой телефон. Спасибо блогу Google Apps.

Метки: , , , , , , ,

Объединение контактов Google

Мне нравится, когда всё в одном месте, и сделано так, что удобно пользоваться. Например, так реализована система контактов у Google — ей можно пользоваться во всех продуктах Google, а сама она достаточно удобна.

Но до сих пор была ужасная проблема. Если в адресной книге Google есть много записей одного человека, но с разными контактами, то их сложно объединить. Такое возникает, например, если у человека есть адрес электронной почты, а ещё потом добавляешь его в каком-нибудь icq-транспорте или импортируешь данные из другой адресной книги.

Я уже хотел сделать собственное объединение (это несложно, так как есть хорошее Contacts API). Однако, с последним обновлением в Google сделали возможность объединять контакты в адресной книге. Для этого надо выбрать необходимое число контактов:

Объединение контактов Google

Объединение контактов Google

Затем система сама всё распределит и предложит лучший вариант, который можно подредактировать. Но, как отмечают на официальном блоге Gmail, система автодополнения адреса при составлении письма пока работает не так, как хотелось бы.

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

Метки: , , , , , , ,

Google Short Links

Этой осенью Google включил Labs в Apps не только для своей почты, но и вообще во всём сервисе. Теперь там появляются новые интересные сервисы от различных разработчиков. В качестве примера я расскажу о Google Shortlinks.

Чтобы включить что-нибудь из Labs в Google Apps надо сначала, конечно, включить английский (US) интерфейс, а затем перейти по ссылке добавление новых сервисов (на этой же странице можно подключить Google App Engine или, например, недавно там появились контакты):

Добавление нового сервиса в Google Apps

Добавление нового сервиса в Google Apps

Затем нажать на ссылку See more services from Google Labs:

See more services from Google Labs

See more services from Google Labs

А уже там можно выбрать нужный сервис. Их пока всего три: Moderator, Short Links и Code Review:

Google Labs

Google Labs

Итак, мы включаем Short Links, указываем нужный нам адрес, прописываем всё в DNS и… а для чего нужен этот сервис? Это похоже на сервисы, подобные TinyURL: указываем длинную ссылку, а нам дают короткую. В принципе, это и есть полное описание. Кстати, Short Links написан на python и расположен на Google App Engine.

Google Short Links

Google Short Links

Однако, есть ряд преимуществ и существенных отличий:

  • Собственный домен для коротких ссылок.
  • Учёт количества переходов по ссылке (можно использовать для анализа чего-либо).
  • Личные ссылки (для удобства, что-то вроде быстрого набора).

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

Я пользуюсь. Удобная замена TinyURL :)

Метки: , , , , , , , , , ,

Презентации в интернете

Я недавно писал про то, что Google Docs помогает в учёбе: можно совместно делать презентации прямо в интернете, не устанавливая для этого дополнительного программного обеспечения. Сейчас же я хочу написать не только о таких сервисах, но и о тех, которые можно использовать, если вы просто хотите показать свою презентацию.

Например, вы сделали презентацию в Microsoft PowerPoint и хотите показать её знакомым или выложить в блоге. Как это сделать? Разместить сам .ppt-файл для скачивания? Да, так можно сделать, но стоит всё-таки учесть, что не у всех стоит MS Office или что-то подобное, зато у всех есть (почти у всех) поддержка Flash в браузере. Именно на этом и основаны сервисы, на которые можно закачать уже существующую презентацию, чтобы показать другим, всего лишь дав специальную ссылку или вставив презентацию прямо на блог, как это делается с YouTube-видеороликами.

Итак, ниже речь пойдёт о следующих сервисах:

А также стоит упомянуть сервисы по созданию презентаций:

SlideShare— один из самых популярных подобных сервисов в интернете.

Первая страница SlideShare

Первая страница SlideShare

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

Загрузка презентации на SlideShare

Загрузка презентации на SlideShare

Из плюсов также можно отметить загрузку презентаций размером аж до 100 Мб. Кроме того есть множество социальных функций: рейтинг, сообщества, комментарии и т.п. Минусы SlideShare: достаточно медленная работа и невозможность загрузки файлов .pptx (MS Office 2007).

authorSTREAM поддерживает .pptx, быстро работает и тоже позволяет закачивать презентации без регистрации.

authorSTREAM

authorSTREAM


Менее популярен, поэтому, наверное, старается внедрить как можно больше различных полезных фишек: API, загрузка презентации на YouTube и т.п. Конечно же, презентацию также можно вставить на свой блог или сайт.

Scribd — другой довольно популярный сервис по обмену презентациями. К сожадению, без регистрации закачать ничего нельзя, зато эта регистрация проходит в один клик сразу же после выбора файла. Система поддерживает очень много форматов (.pptx, ,doc, .pdf, .xls и т.п.) и работает быстро.

Загрузка презентации в Scribd

Загрузка презентации в Scribd


Как и в SlideShare очень много в Scribd построено на социальности: друзья, похожие презентации и т.п.

Стоит отметить, что все вышеописанные сервисы отлично справились с моими тестовыми презентациями (в них находились эффекты, встроенные шрифты (нестандартные), картинки и фотографии). Но SlideShare эффекты вообще удалил, authorSTREAM же оставил всё точь-в-точь, как это выглядело бы в PowerPoint. Теперь же стоит рассказать о сервисах, позволяющих создавать презентации прямо в интернете.

Google Docs — просто, быстро и интегрирован с другими сервисами Google. Большой плюс: одновременная работа и возможность экспорта в .ppt и PDF, а также встроить прямо на страницу в интернете. Но каких-то особенных фишек нет — вообще можно сказать, что всё скудно. Однако, недавно появилось много шаблонов.

Zoho Show — компонент известного Zoho. Предоставляет множество «фишек», в том числе и по работе с текстом. Также есть возможность одновременной работы.

Zoho Show

Zoho Show

SlideRocket — один из самых продвинутых сервисов по созданию презентаций (среди тех, конечно, что я видел). Можно посмотреть презентацию его презентации его возможностей:

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

Выбор за вами, но я всё-таки пока выбрал Google Docs и SlideShare с authorSTREAM.

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

Метки: , , , , , , , , ,

Тестирование производительности сервера

Часто требуется протестировать производительность сервера после внесения очередных изменений в конфигурацию. Ведь всего лишь изменением некоторых параметров nginx, apache или lighttpd можно добиться существенного прироста скорости. Но как измерить эту производительность?

Можно воспользоваться чем-то вроде Host Tracker, а можно на самом сервере запустить программу-бенчмарк. Например, ApacheBench.

Пользоваться ей очень легко:

#ab -c5 -n3000 /

где ab — программа, -c5 — количество потоков, а -n3000 — сколько делать запросов. У программы есть много дополнительных параметров (смотрите документацию по ab): можно использовать cookies, POST-запросы, изменённые заголовки и т.п. Всё это позволяет производить полноценное тестирование сервера.

Выдача команды очень информативна:

Document Path:          /
Document Length:        21757 bytes
Concurrency Level:      5
Time taken for tests:   288.255212 seconds
Complete requests:      3000
Failed requests:        0
Write errors:           0
Total transferred:      66777000 bytes
HTML transferred:       65271000 bytes
Requests per second:    10.41 [#/sec] (mean)
Time per request:       480.425 [ms] (mean)
Time per request:       96.085 [ms] (mean, across all concurrent requests)
Transfer rate:          226.23 [Kbytes/sec] received
Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    0   0.5      0      19
Processing:   181  479 186.0    444    1822
Waiting:      166  461 184.7    427    1708
Total:        181  479 186.0    444    1822
Percentage of the requests served within a certain time (ms)
50%    444
66%    525
75%    577
80%    619
90%    732
95%    819
98%    946
99%   1012
100%   1822 (longest request)

Странно, что я раньше не пользовался этой программой: очень удобно.

Метки: , , , , , , , , ,

SSH через браузер

У нас в университете открыты только 80 и 443 порты, да и вообще «выход в сеть» осуществляется через прокси. Естественно, что почти не идёт речи о подключении к консоли нашего сервера через обычный SSH или закачать файл по протоколу sFTP. Да, я пробовал различные способы: например, туннелирование (хорошо описано в статье Using SSH Tunneling). Однако, у нас и это не помогает.

Возникла идея сделать консоль прямо в браузере. И оказывается, что подобное уже есть: данные программы называются Web-based SSH.

Со вторым надо было слишком много возиться, и он не поставился у меня с первого раза, поэтому я стал пробовать Ajaxterm.

Ajaxterm написан на python, поэтому только его по сути и требует для работы. Уже есть в репозитариях многих распространённых систем. Чтобы запустить его, достаточно выполнить следующую команду:

#ajaxterm -d

Что переведёт его в режим демона, прослушивающего порт 8022 (можно изменить при запуске). Но — в целях безопасности — он принимает только локальные запросы, что нам, конечно, не подходит.

Стоит отдельно отметить вопрос безопасности данных решений: это не SSH, следовательно по-умолчанию ничего не шифруется. Конечно, с такими программами надо работать, используя только HTTPS.

В качестве сервера HTTPS я выбрал lighttpd и пропустил ajaxterm как прокси:

 $HTTP["host"] == "term.yourhost.ru" {
        proxy.server = ( "" =>
                (
                 ( "host" => "127.0.0.1",
                   "port" => 8022
                 )
                )
        )
 }

— это я разместил в секции настройки HTTPS. После этого я смог заходить на специальную достаточно хорошо защищённую страницу с любого места.

Ajaxterm

Ajaxterm

Что же предлагает Ajaxterm и удобно ли с ним работать? Да, удобно, а предлагает практически полноценную консоль (работает автодополнение по Tab, есть подсветка), так как всё реализовано с использованием AJAX. В некоторых браузерах может не работать вставка и копирование (например, в Firefox), но если же нужно ввести какие-то специфичные пароли, то я использую KeePass с автонабором.

Рекомендую, если иного выхода нет. Есть ещё бесплатные сервисы, предлагающие консоль через браузер, но я им как-то не доверяю.

Метки: , , , , , , , , , , ,

mod_magnet для WordPress MU

В предыдущем посте я писал про mod_magnet в lighttpd для обычного WordPress. Сегодня, в связи с переходом на ветку 1.5 lighttpd, решил также перевести MU-версию на mod_magnet.

В процессе возникло несколько сложностей, связанных с тем, как MU использует т.н. чистые ссылки. Например, это директории files, расположение wp-content и т.п. Тем не менее, с помощью lua удалось запрограммировать нужные правила перенаправлений.

Итак, сначала надо указать файл lua-скрипта в настройках Lighttpd:

$HTTP["host"] == "blog.piclab.ru" {
  server.document-root = "/home/www/piclab.ru/blog"
  magnet.attract-physical-path-to = ( server.document-root + "/rewrite.lua" )
}

Затем создать файл скрипта rewrite.lua в корне (всё зависит от вышеуказанных настроек) вашего сайта следующего содержания:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
attr = lighty.stat(lighty.env["physical.path"])
 
if (not attr) then
  i, j = string.find(lighty.env['uri.path'], "/download/")
  k, m = string.find(lighty.env['uri.path'], "/files/")
  t, f = string.find(lighty.env['uri.path'], "/wp-")
  e, s = string.find(lighty.env['uri.path'], ".php")
  if (i  == 1 and j == 10 and string.len(lighty.env['uri.path']) > 10) then
    id = string.sub(lighty.env['uri.path'], j + 1)
    lighty.env["uri.path"] = "/wp-content/plugins/download-monitor/download.php"
    lighty.env["physical.rel-path"] = lighty.env["uri.path"]
    lighty.env['uri.query'] = "id=" .. id
  elseif (k) then
    file = string.sub(lighty.env['uri.path'], m + 1)
    lighty.env["uri.path"] = "/wp-content/blogs.php"
    lighty.env["physical.rel-path"] = lighty.env["uri.path"]
    lighty.env['uri.query'] = "file=/" .. file
  elseif (t) then
    path = string.sub(lighty.env['uri.path'], t)
    lighty.env["uri.path"] = path
    lighty.env["physical.rel-path"] = lighty.env["uri.path"]
  elseif (e) then
    g, v = string.find(lighty.env['uri.path'], "/", 2)
    path = string.sub(lighty.env['uri.path'], g)
    lighty.env["uri.path"] = path
    lighty.env["physical.rel-path"] = lighty.env["uri.path"]
  else
    lighty.env["uri.path"] = "/index.php"
    lighty.env["physical.rel-path"] = lighty.env["uri.path"]
  end
  lighty.env["physical.path"] = lighty.env["physical.doc-root"] .. lighty.env["physical.rel-path"]
end

Как и в прошлый раз первая строчка определяет, существует ли файл на самом деле по данной ссылке (например, для статики), если же нет, то тут уже надо переписывать адреса.

С четвёртой по седьмую строки мы ищем вхождение необходимых нам элементов:

  • download для плагина WP Download Monitor;
  • files — внутренняя структура отдачи статических файлов (закачанных изображений, например) в WordPress MU;
  • wp- для директорий вроде wp-content и wp-includes. Связанно с тем, что у каждого блога в WordPress MU есть эти директории, хотя физически они расположены в корне;
  • .php для отработки таких файлов как xmlrpc.php, которые физически также располагаются в корне.

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

После этого всё работает стабильно и быстро.

Метки: , , , ,