Мы — команда, которая делала Некий Музыкальный Сервис — ищем человека, который возьмется продолжать разработку после недавно выпущеной первой версии. Я был его основным и единственным разработчиком с самого начала, но в связи с началом работы в Фотолабе времени у меня больше не осталось.
Сервис
Суть сервиса — обменная площадка музыкой между участниками сервиса. Хотя нет, суть не в этом. Суть — в большом количестве вкусных деталей :-). Там есть:
Каталог всей музыки, которая у участников есть.
Одна из особенностей системы, что она понимает разницу между "альбомом" и "альбомом у конкретного человека". Альбом — это название, картинка, список треков, год выпуска. А альбом у конкретного человека — это конкретный битрейт, наличие или отсутсвие всех файлов, наличие или отстутсвие альбома на сервере в данный момент времени, наконец личность владельца. Это различие позволяет при поиске "The Beatles, Revolver" находить в результатах поиска один альбом, а не 500 одинаковых.
Информация об альбомах есть всегда, а вот файлы на сервере доступны не все время. Если кто-то хочет музыку скачать, но ее на сервере нет, он выбирает одного из людей, у которых этот альбом есть, нажимает кнопочку "положить в корзину", и умный сервер высылает владельцу уведомление о том, что его попросили закачать альбом на сервер. Он идет к себе в профайл, закачивает альбом, и умный сервер высылает запросившему сообщение, что файлы закачаны.
Закачивание музыки.
Закачивание чего бы то ни было через браузер — штука неудобная, поэтому с этим мы боремся разными способами: можно закачивать файлы на FTP системы и выбирать их оттуда, можно закачивать файлы через браузер одним zip-архивом и, наконец, можно выбирать список закачиваемых файлов по одному, но кнопочку "Закачать" нажимать один раз — файлы уйдут все разом.
При закачивании музыки система в состоянии порыться в тегах mp3-файлов, вытянуть оттуда названия альбомов, исполнителей, треков. А также определить битрейт и время звучания. Все это дело сопоставляется с уже имеющейся в базе информацией и если такой альбом уже существует, то только что закачанный не создается заново, в присоединяется к имеющемуся.
Скачивание музыки. Про которую я уже рассказывал более чем подробно. :-)
Поиск
У нас очень правильный поиск музыки. Он умеет искать музыку по названиям исполнителя, альбома, трека, году выпуска, тегам и владельцам. Он понимает, что "Beyoncé" скорее всего будут искать как "beyonce", а многострадальный "ЧАЙФ" могут написать и "Чай-Ф", и "Чай Ф". И даже то, что "Doors", "The Doors" и "Doors, The" — это хоть и четыре разных человека, но все же одна и та же группа.
Тегирование музыки.
В нашем модном сервисе на музыку можно вешать модные теги. И искать по ним. И удобно их добавлять и удалять. Именно из Некого Музыкального Сервиса вышла библиотечка TagsField.
При поиске по тегам система автоматически ищет и по полному совпадению (когда есть все указанные теги), так и по неполному (по "OR" то есть). А потом сортирует их по релевантности.
А еще эти теги совместимы с микроформатом "rel-tag", а значит их можно прикольно искать на del.icio.us через расширение для Firefox Operator. Понятия не имею, зачем это полезно, но прикольно — однозначно :-).
Ведение "wishlist"ов.
Когда вы знаете, что вам надо — вы идете в поиск. Но если в поиске этого не нашлось, вы можете оставить заявку об этом в свой wishlist. Если кто-то в будущем закачает на сервер эту музыку, система вспомнит про ваше желание и пришлет уведомление о том, что такая музыка есть. Больше того, если вы ее скачаете, система галантно пометит этот желание в wishlist'е приятным зеленым цветом.
Еще интересней, если вы не знаете, что именно выхотите ("такая приятная музыка в том фильме с этим актером, который еще тот мультик озвучивал"). Вы можете сформулировать это в wishlist'е и оповестить об этом все сообщество. И если найдутся люди, которые знают, что это, они смогут предложит вам прямо в wishlist'е или где поискать или прямо конкретный альбом, если он случился существующим на сервере.
Форум.
Который по странному стечению обстоятельств называется "Лента", имеет URL "/blog/", а похож больше всего на ЖЖ-сообщество. Это то место, где люди общаются. С благодарностями, восторгами, наездами, выяснением отношений. С умными высказываниями, дурацкими аватарками и понтовыми рейтингами. В общем — живут.
Персональные сообщения.
Любому коммьюнити-сайту нужна система персональных сообщений. Просто потому, что email — это
так немоднотолько для серьезной работы.Но и здесь все не так просто :-). Например, в наших сообщениях нет строки "Subject". Потому что все равно большинство людей не находят в себе моральных сил писать туда что-то полезное. Поэтому "Subject" в письмах формируется у нас автоматически с помощью чудовищно сложного эвристического алгоритма.
Нет, я конечно опять несу чушь :-). Эвристика заключается в том, что из текста письма выбрасываются цитаты и приветствия ("Здравствуйте", "Привет", "ПРЕВЕД" и другие), и первая значащая строка используется в качестве темы. Слишком длинная — обрезается по 7 словам. Работает на удивление полезно :-).
Штаб.
Штаб — это панель управления системой. Там модераторы следят за количеством места на диске, который по-модному рисуется SVG-чартом.
Могут ставить альбомы на удаление, следить за текущим скачиванием. Там же редактируется каталог: сливаются дубликаты альбомов, разделяются пары исполнителей на отдельные сущности и удаляются неиспользуемые теги. Специальные люди также могут там раздавать и отнимать у пользователей различные права и привелегии.
Синдикация.
Практически все, что случается на сайте — от сообщений в ленте до событий закачки и удаления файлов — доступно через фиды в формате Atom. А также в виде сообщений на email (которые, кстати, не страдают проблемами с кодировкой).
Вот это те из основных вещей, которые я смог сейчас вспомнить из головы. Под крышкой же там еще полно всяких интересных винтиков типа определения часового пояса пользователя, автоматических thumbnail'ов для обложек и аватаров, составления файлов tracklist.txt для вкладывания в архивы с альбомами, автоматизированная "ajaxизация" HTML-форм и... и остановите меня уже кто-нибудь :-)
Про платформу, на которой это все работает, ничего неожиданного не сажу: все целиком на Python и Django :-).
Развитие
Как я попытался показать выше, система — полный отстой.
В каталоге нет возможности указать, к какому треку сборника относится какой исполнитель. Не говоря уж о том, что самого отдельного понятия "сборник" просто нет. Поиск не в курсе, что "Bojrk" — просто опечатка. Теги удобно редактировать, но как раз поэтому в них происходит анархия — в такой вещи, как музыка, кроме "просто" тегов должны быть еще и "правильные" теги, которые не будет редактировать кто ни попадя. Нельзя загрузить ogg, wma и lossless-форматы. При загрузке файлов через браузер не рисуется прогресс-бар. Модераторы внуждены вручную ставить альбомы на удаление, хотя это можно делать и автоматом. И тем же автоматом надо бы догадываться, что если пользователь месяц назад забыл в корзине альбом, то нет особенной необходимсти держать его на сервере при нехватке места. Эта глупая система не умеет импортировать каталог музыки пользователя из iTunes, Rhythmbox и всяких разных Excel'ных файлов. А также не понимает, что "cover.jpg" в закачаном архиве — это обложка, а не просто "немузыкальный файл". Ну и неплохо бы уж тогда уметь не только читать теги из mp3, но и записывать их из информации в базе, потому что какого только ужаса у пользователей в этих тегах не понаписано. /шепотом/ А еще кривой HTML разбивает ленту!
Короче говоря, системе нужен грамотный разработчик!
Условия и контакты
Если вас заинтересовала предложенная идея, то надо писать про это организатору проекта по email'у на "placebokid" at "mail" "ru", зовут его Алексей.
Про условия он расскажет максимально подробно, а я здесь перечислю только некоторые:
Как заметили наиболее внимательные читатели, я ни разу не упоминал ни реального названия "Некого Музыкального Сервиса", ни его URL'а. Таково решение владельцев ресурса, причин которого я тоже касаться не буду. Такая вот особенность. Возможно это со временем изменится, а возможно и нет.
Разработка случается за деньги по договоренности.
Личного присутствия не требуется, поэтому вы можете находится, в общем-то, в любом не только городе, но и государстве. Пересылка денег тоже решается по договоренности.
Разработчику предоставляется бесплатный аккаунт :-)
Комментарии: 4
сорри за комментарий не по делу, но НМС вычисляется на раз :)
...А также в виде сообщений на email (которые, кстати, не страдают проблемами с кодировкой).
Это — 5!
В опере не видно картинок к параграфам, это только у меня так ?
Картинки — это я ошибся. Поправил.