Уже совсем скоро начнётся очередной 404 фестиваль. К его открытию я подготовил страницу, на которой собрал всех участников, чтобы они могли узнать друг друга в лицо ещё до начала фестиваля: antonshein.ru/404fest (осторожно, за ссылкой прячется трафик).
Под катом я расскажу о том, зачем нужно создавать такие страницы для мероприятий, а также немного расскажу о технической реализации.
Ценность любого мероприятия состоит не только в читаемых на нём докладах и проводимых мастер-классах, но и в людях. Чем с большим количеством людей удалось познакомиться на мероприятии — тем лучше.
С новыми людьми гораздо легче знакомиться, если где-то их уже видел и что-то о них знаешь. Для этого на официальном сайте 404 фестиваля есть страница с участниками: 2012.404fest.ru/members.
Но читать сухой список скучно, и просмотреть таким образом более 700 участников практически невозможно.
В то же время, длинный список из фотографий воспринимается гораздо легче и привлекает больше внимания. Хотя бы потому, что зачастую по фотографии можно неожиданно понять, например, что читаешь блог этого человека или как-то ещё знаком с ним виртуально.
Кроме того, зарегистрированные участники могут добавлять друг друга в избранное, и видеть кто добавил в избранное их. Это дополнительно снимает барьер при личном общении. Так как в таком случае, как минимум всегда есть тема для начала разговора.
Чем легче людям будет знакомиться на мероприятии, тем больше для них будет пользы от участия, и тем с больше вероятностью они приедут на него в следующем году.
Технические тонкости
Сама техническая реализация простая как пень. Сначала парсится страница участников 2012.404fest.ru/members/, после чего парсится информация каждого участника из списка. После чего остаётся только сохранить данные в базу и вывести их.
На этом можно было бы и закончить, но есть пара интересных моментов.
Юзерпики
В прошлом году я делал первую версию такой страницы и юзерпики участников просто брал с сайта организаторов. После чего сайт организаторов достаточно быстро упал.
В этот раз я перенёс картинки на свой сервер, но решил, что если отдавать более 700 юзерпиков на одно соединение, то и мой
Поэтому все превью юзерпиков были объединены в спрайты по 100 картинок в каждом. Всего получилось 8 картинок вроде этой:
Выдержит ли такая конструкция хабраэффект — скоро станет ясно. :)
Пол
Было интересно сгруппировать участников по полу. Но таких данных нет на официальной странице мероприятия. Пришлось определять пол по имени. Был взят список женских имён и простое сравнение имени участника с ним оказалось достаточным в большинстве случаев. Некоторые имена пришлось дописать вручную.
Единственной сложностью оказались имена вроде Саша, Женя и т. п. В данном случае помог поиск гласной буквы на конце фамилии.
Таких нехитрых мер хватило, чтобы рассортировать участников по полу. Но я не исключаю, что где-то закралась ошибка. Так что если вдруг система вас распределила не туда — дайте знать, я сразу поправлю. :)
Ручная обработка данных
Участники — не роботы, и вводят данные небрежно. Поэтому при группировке нельзя полагаться просто на строковое сравнение и приходится отрабатывать много вариантов вручную.
Например, для группировке по городу, его название приходится обрабатывать так:
function getCity(sRaw) {
var sCity = $.trim(sRaw);
var aCityTranslate = {
'Yekaterinburg':'Екатеринбург',
'г. Отрадный':'Отрадный',
'Tolyatti':'Тольятти',
'Novokuybuyshev':'Новокуйбышев',
'55.895386,37.597364':'Москва',
'Tula':'Тула',
'ПГУ, Ижевск':'Ижевск',
'Inc., Самара': 'Самара',
'г. Самара': 'Самара',
'Yoshkarola': 'Йошкар-Ола',
'Zhigulevsk': 'Жигулёвск',
'Cамара': 'Самара',
'LLC, Самара': 'Самара',
'Novomoskovsk': 'Новомосковск',
'':'Неизвестинск'
}
sCity = aCityTranslate[sCity]?aCityTranslate[sCity]:sCity;
return sCity;
}
Такие же списки используются для группировки по компаниям и профессиям, только в них гораздо больше элементов.
В остальном всё достаточно просто и по рабоче-крестьянски. Но если какие-то моменты интересны — спрашивайте, постараюсь рассказать.
P. S.: Кстати, сам я читаю на 404 доклад про управление временем: 2012.404fest.ru//themes/i-ll-be-back/.
Если вы из Москвы и не едете на 404 фестиваль, но вам интересно узнать о том как не заваливать дедлайны и найти время на развитие навыков и создание собственных проектов — напишите мне в личку. Если наберётся несколько желающих — прочитаю доклад завтра вечером (скорее всего, в коворгенге «Рабочая станция»).
Автор: Adrior