В данной статье я расскажу, что было сделано мной за это лето. Работа программиста не всегда видна невооруженным взглядом, но тем не менее дает поразительные результаты.
Для тех, кто со мной не знаком, я кратко представлюсь. Меня зовут Евгений, я профессиональный программист со стажем более 15 лет, разработчик СуперСнимков, фотоклуба iso100, фотобанка ГеоФото и многих других проектов, большинство из которых уже, как динозавры, вымерли либо догнивают на мусорных просторах Интернета. Заниматься фотографией я стал в 13 лет, когда мой дядя подарил мне пленочную Смену 8М и научил всему процессу. Долго я тогда не снимал ( школа, спорт, питомцы, лихие девяностые), но опыт приобрел.
Красная комната, фотоувеличитель, ванночки с реактивами - все это было чрезвычайно интересно и вспоминается с ностальгией. Цифра - это совсем не то. Вернулся к фотографии я в начале 2000х с появлением в продаже недорогих цифровых камер. Первой камерой была Minolta X1, потом более продвинутый Fuji, потом Canon EOS 300D и другие зеркалки. После ухода с Canon EOS 5D Mark II я стал снимать на Sony Alpha 7 II.
Когда я работал в фотобанке ГеоФото, я имел честь часто общаться с настоящими фотографами - настоящими профессионалами своего дела. Я видел, как они работают, чем снимают, как живут и чем дышат. Многие из них очень много путешествуют, снимают репортажи о жизни этносов, животных, природу для популярных журналов. Я повидал большое количество фотографий, стал сам много снимать, научился многому у профессионалов.
Сейчас я живу в Швейцарии, работаю программистом. Люблю фотографировать пейзажи, гонять на мотоцикле, играю на гитаре и медленно так изучаю местные языки. У меня трое маленьких детишек, сейчас они живут в Москве. Если кому-то интересно о жизни, спрашивайте, напишу.
Не помню, как появилась идея создать iso100.ru, но он был создан очень быстро и сразу собрал небольшую группу пользователей. Профессионалы на сайт не заходили, им ни к чему было тратить время на очередной фотосайт, тем более что он был сырой и глючный. В то время я делал Интернет-магазины, занимался раскруткой сайтов, поэтому движок у меня был достаточно хороший и я сразу привлек к сайту довольно много людей. Фишкой исо100 было большое кол-во статей и каталог фототехники, в работе мне очень много помогала жена. Благодаря ей было собрано много интересного материала, а сайт получил импульс в развитии.
С ростом популярности у исо100 обозначились серьезные проблемы: из-за неопытности, использования неоптимизированного движка, старых технологий и большого кол-ва созданных фич, сервер едва справлялся с нагрузкой, сайт постоянно глючил и падал. Я часто создавал фишки, которые в будущем оказывались не нужными, много экспериментировал. В итоге сайт стал слишком тяжелым и громоздким, чтобы его дальше развивать и я решил делать новую версию, а старый сайт продал в конце 2011 года своим партнерам. партнеры, конечно, сайт загубили, но это меня уже не касалось. В течение 2 лет я вынашивал планы создания нового сайта, в котором бы не было недостатков iso100. Я изучал технологии, ставил эксперименты, создавал базу для нового проекта.
СуперСнимки появились в конце 2013 года в виде рабочего концепта с практически отсутствующим функционалом, но с крутым движком и навороченными технологиями. Это была мощная платформа с огромным потенциалом роста. За несколько месяцев сайт стал вполне пригодным для использования и я пригласил на него первых людей, чтобы протестировать все функции. Первое время было много недочетов, сильно не хватало многих полезных функций, но все это было со временем решено. Я внедрял одну фичу за другой, и сайт становился все более пригодным для жизни :)
Практически все силы в первые два года жизни сайта я бросил на создание базового функционала: заливку фото, комментарии, создание серий, сортировки, рейтинги, пользовательский интерфейс, инструкции, а затем я сконцентрировался на том, чтобы сделать сайт более интересным. Был сделан чат, открыт журнал и каталог фототехники, люди получили возможность по максимуму использовать свой творческий потенциал. Все обрело ясность и у всех было понимание процесса. Дальнейшей задачей стало развитие содержания сайта. Стали нужны статьи, уроки, записки путешественников и другие интересные вещи.
Я считаю, что сделать сайт интересным для всех можно лишь размещением тут полезного контента, выращиванием талантов и стимуляцией обмена опытом. Мы должны писать разборы фотографий, обсуждать недочеты работ, критиковать творчество друг друга. Очень важно пользоваться журналом для написания статей по фотографии, обзоров фототехники и новостей фотомира.
Именно поэтому в этом году я сконцентрировался на том, чтобы сделать механизмы по созданию этого контента. В частности дальнейшее усовершенствование журнала, чтобы сделать процесс более легким и приятным заданием. Так был создан блочный редактор, в котором я все это написал :)
Он позволяет легко создавать публикации с множеством фотографий, текста, удобно сортировать и редактировать статьи. Фотографии можно закачивать пачками, создавать из них карусели, двигать вверх и вниз. Они автоматически сжимаются до нужного размера, встают на свои места, не нужно больше мучаться с форматированием.
Была улучшена система модерации. Изначально мы удаляли с сайта откровенную порнографию или что-то, нарушающее закон, но потом понадобилось не только удалять, но и отсеивать хлам. Имеющаяся на сайте система модерации не позволяла это делать нормальным человеческим образом - с объяснением причин, в более мягкой форме, поэтому многие люди просто психовали и покидали нас.
Теперь неудачные работы переносятся в раздел с объяснением причины переноса. Модераторы стараются чистить сайт от брака, люди получают критику. Меньше психоза, больше понимания. Чтобы все понимали пользу модерации я разъясню.
Зачем мы чистим сайт от брака и неудачных работ?
- Чтобы люди не повторяли чужих ошибок. Для этого мы сначала пишем комментарии с разбором ошибок, затем смотрим понимает ли автор и учится ли. Если автор упорно продолжает делать одни и те же ошибки, работы переносятся с указанием причины. Объяснять уже нет смысла.
- Чтобы нивелировать влияние медоносов ( людей лайкающих друг друга по поводу и без ) на попадание вполне заурядных работ на первые позиции в рейтинги.
- Чтобы отсеять бесполезное и ненужное в эпоху радикального замусоривания всего и вся. В интернете слишком много хлама и возможностей его плодить. На нашей сайте все должно быть иначе.
- Чтобы люди равнялись на лучших в своем деле, не рассеивая свое внимание на ширпотреб. Заметьте, что мы переносим иногда спорные работы хороших авторов. Даже лучшие из нас временами от скуки или ради экспериментов ( тестов оптики и тушек ) начинают плодить хлам. Если автор способен на большее, то он не вправе выдавать поделки.
Сайт - это айсберг, наверху лишь малая часть того, что заложено внутри. Визуально не всегда можно заметить все те мелкие изменения, которые были сделаны в последнее время. Но тем не менее я постараюсь рассказать о них.
Сайт стал снова работать по протоколу HTTP/2.0, загрузка содержимого происходит быстрее. Мы используем защищенный канал для передачи данных самого последнего поколения. Соединение между вашим браузером и сервером не может быть перехвачено и расшифровано кем-то со стороны. Даже не имея тут ничего ценного, вы вполне можете быть рады самому факту того, что вас не взломают и не украдут ваш аккаунт, например. А еще быстрая загрузка делает работу с сайтом более приятным занятием, помимо всех прочих радостей сайта.
Иконки не дергаются при загрузке страниц в новых браузерах типа Safari 10 или последней версии Google Chrome. Раньше они перезагружались каждый раз и это дерганье вызывало дискомфорт.
В диалогах и чате появились дата и время для каждого сообщения. Чат стал доступен с главной страницы раздела "Люди" в слегка урезанном виде. Список людей в чате не расползается в ширину. Архив чата хранится теперь целый месяц. Напомню, что чат - это закрытая часть сайта и не видна снаружи неавторизованным посетителям и поисковым машинам.
Чат стал обновляться не каждую секунду, а каждые 2 секунды, причем отклик от сервера приходит вдвое быстрее. Не видимая на глаз оптимизация здорово облегчает жизнь серверу.
Пароли теперь шифруются и хранятся в зашифрованном виде. Шифрование идет с индивидуальной для каждого юзера солью, 10 000 итераций современной хэширующей функцией. Даже в случае взлома сайта и получения доступа к базе данных пароли пользователей защищены и не могут быть взломаны при помощи радужных таблиц. Каждый пароль хакеру придется взламывать чрезвычайно долго и нудно. Пароли больше нельзя напомнить, а только сбросить и установить новые. Опять же, ради вашего удобства, все ссылки из наших рассылок и писем содержат токен авторизации, при помощи которого вход на сайт осуществляется автоматически. Поэтому, берегите свою почту от несанкционированного доступа. Токен имеет ограниченное время действия ( обычно неделя ), поэтому старые письма в руках злоумышленника совершенно не опасны.
Кол-во новых фотографий рассчитывается для каждого пользователя индивидуально, в зависимости от того, когда он в последний раз заходил в раздел. Если в каком-то разделе человек не был, то и обновления для него не пишутся.
То же самое и для публикаций в журнале. При просмотре записей ваш браузер запоминает кол-во лайков и комментариев, и в будущем при посещении журнала вы увидите появились ли новые комментарии с момента вашего прошлого визита.
Механизм показа фотографий был ускорен и обновлен. Я пытался переписать его на C ( используя Perl XS ), получил выигрыш в 4 раза, но оказалось, что в общей картине при отдаче страницы это не дает существенного выигрыша производительности. Код и так быстро работал, но я сделал его умнее и быстрее. Визуально эффект можно оценить это в тех случаях, когда в профиле автора отсекались самые последние фотографии. Старый механизм не мог иногда построить горизонтальные блоки фотографий масштабированием по высоте и просто отсекал то, что не мог просчитать. Теперь этого нет. Все фотографии встают на свои места. Даже, если фотография всего одна, она просто займет весь экран.
Фото дня теперь выбирается после полуночи или ровно в полночь ( время Московское ), анонсируется в чате и получает специальную наградку, видимую в ленте работ в виде кубка. Автор фото дня получает от Духа сайта уведомление об этом важном событии. на странице фотографии видна награда и дата ее получения. Это послужит для многих поводом выкладывать на сайте лучшее, увеличит мотивацию и интерес к сайту.
Еще несколько фишек в плане безопасности и защиты от ботов. Новички должны иметь определенное количество фотографий, чтобы пользоваться некоторыми функциями сайта. Например, писать комментарии. Это защищает сайт от автоматических систем публикации, спам-ботов, любителей халявной рекламы и просто вредителей. Есть система ограничений по количеству диалогов в сутки. Вы не можете писать сообщения более 10 новым пользователям в сутки. В случае нарушений система уведомляет меня и я могу оперативно решить проблему. Слепой уже попался на ограничитель по количеству разговоров. Так что у нас уже есть первый тест системы от самого общительного человека нашего сообщества :)
В профиле появилась возможность указать ссылки на свои профили в Инстаграм и Вконтакте
Содержимое раздела Эротика скрыто от неавторизованных пользователей. Переход к фотографиям и их просмотр возможен с других страниц сайта или напрямую, зная ссылку. Это не мешает автору делиться фотографиями, но в то же время усложняет их просмотр несовершеннолетними. Обычно для просмотра спрашивают достиг ли пользователь возраста 18 лет, но у нас этого пока нет. Во-первых, можно соврать. Во-вторых, задавать этот вопрос каждый раз слишком надоедливо. Жду ваших идей по поводу того, как реализовать защиту от просмотра эротики от детей при этом не навредив взрослым.
Кроп теперь работает даже на сериях, любые кропы вставляются в комментарии и легко воспроизводятся другими. Были баги и недочеты в работе кропа, но это уже в прошлом.
На этом я вынужден закончить. Больше не могу ничего вспомнить, да и надо бежать в гости к друзьям. Шашлыки - это не то мероприятие, на которое можно опоздать :) Всем приятного дня и удачных снимков. Спасибо за внимание и за то, что пользуетесь СуперСнимками
Сайт выгодно отличается от многих других тем, что нет троллей и ботов. Здесь дружелюбная атмосфера и это многого стОит. Для меня это важно. Отдельное спасибо за подобные разъяснения.
ЗЫ. А кто автор снимка об обучении гончарному делу? Великолепная работа!
1. С самого начала было понятно, что сайтом руководят энергичные, умные и заинтересованные в росте контента люди, которые не жалеют сил и времени на его совершенствование, при этом работая только на энтузиазме.
2. Сюда можно загружать работы при минимальном резайзе и публикуемые фото АБСОЛЮТНО ничего не теряют в качестве.
3. На сайте много интересных авторов, многие из которых готовы делиться своим опытом по съёмке, обработке, работе с моделями.
4. Внимательная и непредвзятая модерация исключает увод обсуждения работ в русло обмена оскорблениями и не допускает никакого хамства.
5. Обстановка для общения и профессионального, и человеческого оптимальна: чат и обсуждение фото без возможности удалять неугодные комменты.
6. Оценила и отсев откровенно слабых фото. Делать это нужно ВСЕГДА.
7. Нравится, что администрация сайта активно проводит опросы среди пользователей, цель которых найти дальнейшие пути развития сайта. Получается, что мы тут все вместе стараемся сделать сайт ещё удобнее и интереснее.
8. Лояльность к пользователям, терпение ко всякого рода провокациям) - огромны. Иногда кажется, что терпение модераторов безгранично. Я не почувствовала, что с сайта пытаюсь искусственно кого-то "выдавить", сформировать кружок избранных, который диктовал бы остальным правила поведения. Наоборот, грамотная и обоснованная критика, общая атмосфера на сайте создают отличные условия для тех людей, которые стремятся именно вырасти профессионально.
А теперь ложка дёгтя.)
Хотя механизм, который просчитывает рейтинг фото дня был существенно доработан, думаю, надо найти способ поощрения авторов и работ, которые не укладываются в трендовые пейзажно-птично-грибочные предпочтения сайтовского большинства, которые традиционно голосуют именно за такие фотографии.
Иногда просто уникальные, редкие и замечательные работы просто остаются без внимания, они не укладываются в традиционные рамки. Может с определённой периодичностью выбирать такие работы и п...
Завершить хотелось бы на позитиве: а именно поблагодарить конкретно тебя, Жень, за то, что ты придумал и нашёл в себе силы довести идею сайта до реализации. Всё это было бы невозможно без людей, которые с самого начала были с тобой и помогали сайту вырасти, иногда спорили, что тоже правильно ибо в них, в спорах) часто рождается она - истина.)
Сайту - развития уже зарегистрированных пользователей и пополнение рядов новыми, интересными и общительными авторами.)))
С праздником! Сегодня в России отмечается день программиста.
Второе. Если, организаторы сайта думают, что замена анонимной оценки фото на обезличенную с пустыми незначащими формулировками типа "для домашнего альбома", "не соответствует концепции сайта" и др. стала лучше, то это ошибочное мнение. В праве (in just), например, такие термины требуют четкого определения.
П.2 (фото интересное для других) Требований нарушается самим Духом. Одно из моих фото было направлено в корзину через 5 (ПЯТЬ!!!) минут после опубликования. Я понимаю, хозяин - барин, но все же стоило бы проводить комиссионную духовную оценку спустя какое то время. Ну хоть через сутки! Или лозунг: "набраться опыта у более опытных" не входит в концепцию сайта?(((.
Не совсем, вернее совсем не понятен механизм отбора лучших фото. Учитываются ли лайки, посты коллег, за какой промежуток времени. Имеет ли смысл выкладывать фото в 23-55 или подождать 6мин, чтобы еще через 5мин...)))
Безусловно стоит поблагодарить Евгения за его не легкий труд. Сайт безусловно становится более зрелищным, интеллектуально наполненным, интерфейс дружелюбным.
Но! Заметил следующее:
Добавляешь к серии еще фотографию(уже после находясь на странице серии), вроде и установлен флаг на добавление в нужное место копирайта "суперснимки", но он не устанавливается на само фото.
Но если заливаешь серию сразу, то на все фото он встает как надо.
То же самое с версиями.
Еще хотелось бы его (копирайт суперснимки) менять для каждого фото в серии, но это уже наглость с моей стороны :))