Мы — команда, которая делала Некий Музыкальный Сервис — ищем человека, который возьмется продолжать разработку после недавно выпущеной первой версии. Я был его основным и единственным разработчиком с самого начала, но в связи с началом работы в Фотолабе времени у меня больше не осталось.
Суть сервиса — обменная площадка музыкой между участниками сервиса. Хотя нет, суть не в этом. Суть — в большом количестве вкусных деталей :-). Там есть:
Каталог всей музыки, которая у участников есть.
Одна из особенностей системы, что она понимает разницу между "альбомом" и "альбомом у конкретного человека". Альбом — это название, картинка, список треков, год выпуска. А альбом у конкретного человека — это конкретный битрейт, наличие или отсутсвие всех файлов, наличие или отстутсвие альбома на сервере в данный момент времени, наконец личность владельца. Это различие позволяет при поиске "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!
В опере не видно картинок к параграфам, это только у меня так ?
Картинки — это я ошибся. Поправил.