ласт.фм вконтакте

Раньше я не понимал, как использовать last.fm, но теперь он мне кажется категорически необходимым! После установки приложения прямо не выходя из «вконтакта» можно:

  • слушать весь контент ласт.фм, используя файловые ресурсы вконтакта;
  • слушать музыку своих друзей на ласт.фм и вконтакте;
  • искать музыку по альбомам исполнителей, по тегам, рекомендациям ласт.фм;
  • слушать свою библиотеку и избранное;
  • автосохранять все прослушивания для формирования собственного «топа».

А также куча других фильтров, — каждый день открываю какой-то способ найти новую музыку. И еще когда открываешь нового исполнителя, то композиции сразу отсортированы по популярности ласт.фм, то есть стопицот миллионов пользователей как бы намекают тебе, что слушать в первую очередь.

Открытия этой недели: Hands All Over, The Time Machine, Röyksopp.

Правда, не хватает галочки «лайв» — для знакомых композиций живые записи слушаются крайне интересно. Например,

Метки: ,

Система одного фида, и это не fb

Пытаюсь настроить фид друзей.

Плюсы:

  • Можно подключать внешние RSS-источники, вплоть до произвольных (типа моего блога);
  • Социальная сеть фидов.

Минусы:

  • Не умеет делать репост; например, я пишу новый пост у себя в блоге, хочу, чтобы он репостился на мой фейсбук безо всяких плагинов;
  • Нельзя отправлять личные сообщения, на сайте нет контактов людей.

В сравнении с Google Reader-ом, френдфид умеет показывать RSS целиком, а не только предварительно «опубликованные» мной.

Метки:

jQuery ajax loader

Да-с, такая банальная вещь, как необходимость показать сообщение «Идет загрузка» во время ajax-запроса, привела меня к созданию своей «легкой версии» без картинки. Работает он глобально на всей странице, закрывая все элементы полупрозрачным слоем. Лоадер работает на jQuery, состоит из трех частей: HTML, CSS, и JS-кода.

ajax loader example

Итак,
html:
<div id="loader"><span>Загрузка...</span></div>

javascript:
<script>
  // вешаем колбэки для всех jQuery.ajax-запросов
  $('#loader').ajaxSend(function(){$(this).show()})
  .ajaxStop(function(){$(this).hide()});
</script>

css:
#loader {
  position:fixed; display:none;
  top:0; left:0;
  height:100%; width:100%;
  background:#ccc; opacity:.9;
}
#loader span {
  display:block; position:absolute; right:4px; top:4px;
  color:#fff; background:#C71D72;
  padding:5px 10px;
  -webkit-border-radius: 5px; -moz-border-radius: 5px;
  border-radius: 5px; cursor:default;
}

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

Метки: ,

Щютк

Я буду разговаривать только в присутствии своего авокадо!

Другие щютки.

Простоплеер ввел ограничения

Мой основной источник музыки простоплеер ввел ограничения на прослушивание музыки — 15 треков в сутки, а дальше предлагается заплатить.

Что ж, значит у них действительно много посетителей. Или мало рекламы. Предлагаю идею на миллион: продавать аудио-рекламу, как на радио.

Метки:

Проверка готовности symfony

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

  • Создание быстрых, но полезных страниц ошибок 403, 404, 500
  • Наличие иконки сайта favicon.ico (сюда же robots.txt)
  • Отказ от файлов .htaccess
  • Строгая фильтрация загружаемых пользователями файлов, запрет выполнения из папки загрузки
  • PHP-акселератор
  • HTML-атрибут языка lang="ru"
  • Задать свое название сессии в куках

Приятного выкатывания!

Метки: ,

***

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

Перенос проекта cp1251 → utf-8

Этот маленький скрипт я написал для проекта в кодировке windows-1251, так как база данных MySQL оказалась в кодировке UTF-8 и все «поплыло». Чтобы исправить отображение русских букв, я решил перевести все файлы проекта в современный формат UTF.

Использование: Кидаем скрипт в папку с проектом, запускаем с параметром -p dirname, в результате все скрипты и шаблоны (*.php, *.tpl, *.conf, *.inc) переводятся на UTF-8. Для работы необходимо расширение iconv. Если файл уже в UTF-8, то пропускает.


<?php
/**
 * @usage
 * php recode.php -p www
 */

// ищем файлы
function browseCall($dir$regex$cb) {
  foreach(
glob(chop($dir,'/')."/*") as $file) {
    if (
is_dir($file)) browseCall($file$regex$cb);
    if (
is_file($file) && preg_match($regexbasename($file)))
      call_user_func_array($cb, array($file));
  }
}
// заменяем кодировку
function myRecode($file) {
  
$s file_get_contents($file);
  
$e detectEncoding($s);
  echo 
"[".$e."] $file";
  if (
'windows-1251'==$e) {
    
$r iconv('windows-1251','utf-8',$s);
    
file_put_contents($file$r);
    echo 
" [written ".strlen($r)." bytes]\n";
  }
  else echo 
"\n";
}
// определялка кодировки
function detectEncoding($string) {
  static 
$list = array('utf-8''windows-1251');
  foreach (
$list as $item) {
    
$sample = @iconv($item$item$string);
    if (
md5($sample) == md5($string))
      return 
$item;
  }
  return 
null;
}

if (preg_match("~-p ([^ ]+)~"implode(' ',$argv), $matches)) {
  
$path $matches[1];
  
browseCall($path"~\.php$|\.tpl$|\.conf$|\.inc$|\.js$~""myRecode");
}
?>

Метки: ,

Трон

Музыка в фильме — ОООК. Само кино так себе, единственное, подумал, что там делает Батрутдинов?

Дорога=Деньги

Молодцы ребята.