Мы зарелизили новую версию сайта. Рассказываем, как и зачем. Многабукав.

Вся жизнь поделилась на «до» и «после». Сегодня наступил этот момент, эта точка экстремума, это событие — если и не всей жизни, то последнего её года точно: мы зарелизились. Finalement.

Что именно мы сделали?

Сайт создавался в 2010 году, как домашний проект — чтобы дать возможность друзьям заниматься по этим урокам. Масштаб задачи определил и выбор инструментов: простенькая и непритязательная платформа, ни к чему не обязывающий «форум». В таком виде это просуществовало почти восемь лет.

Сегодня Гугл заявляет о том, что он прекращает поддержку устаревшей платформы Google Sites, на которой работал сайт. Google Groups, где крутился форум, устарели сами по себе лет двадцать назад и так — это технология 80-х годов прошлого века. Пока была возможность, мы ставили заплатки, чтобы сайт продолжал работать на мобильных устройствах, но всему наступает предел. Наступил он и в нашем случае.

Мы начали искать новые технические решения. Был соблазн быстро перепрыгнуть на WordPress — до сих пор популярную платформу для сайтостроения. И в этой идее было рациональное зерно — все можно было сделать весьма быстро. Но мы понимали, что таким образом Штирлиц лишь оттягивал бы свой конец — со временем мы бы снова уперлись в очередные ограничения.

Не было масштаба в таком решении. Кольчужка маловата!

Другое дело — замутить целое серверное приложение: фреймворки, базы данных... Круто! Дайте две! (с) Ничего в этом не понимаем, зато получаем полный контроль. Мы ведь этого хотели, n'est-ce pas ?

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

Одну из таких классных вещей вы сейчас держите в руках. Под вашей мышкой там трепещут скрытые пружины и мечутся кванты данных. Не без заусенцев это все, конечно, но мы стоим с напильником наготове. :)

Почему так долго?

Первоначально у нас были планы объездить этого жеребца где-то к апрелю-маю. Потом, когда мы осознали всю нетривиальность задачи, мы поняли, что раньше осени не справимся. И чем ближе мы были к результату, тем больше обнажалось проблем, не разрешив которые даже помыслить о релизе было нельзя. В какой-то момент мне показалось, что мы идем по ленинскому принципу: шаг вперед — два шага назад.

Я снова потерял сон. Я осознал, что это уже никогда не случится, потому что мы оторвались от реальности и уже не понимали, с чем можно мириться, а с чем нет.

Дело в том, что когда происходит релиз, разработчики, как правило, знают почти все недостатки и ошибки своего продукта — и даже могут их перечислить в Release Notes и в разделе Known Bugs (известные ошибки). «А что было бы их все сперва не исправить?», — так можно подумать.

ВОТ! В этом-то и состоит искусство — вовремя остановиться!

Можно бесконечно исправлять косяки. Это страшное проклятие перфекциониста: решиться выпустить продукт, ЗНАЯ (!!!), что в нем есть ошибки. Он готов сдвигать дату релиза на очередной день, чтобы только успеть закрыть вот этот косяк; и этот; и еще вот этот — ну пожалуйста, и этот, этот! «Я отказываюсь с вами дальше работать,если вы считаете возможным выпускаться ВОТ С ЭТИМ!» — так рассуждают перфекционисты накануне релиза. Вы знаете, по-моему, перфекционисты — тупиковая ветвь эволюции. Очень надеюсь, в моих детях это мое свойство притупилось. Ну, в конце концов, у меня среди моих детей — одна дочь, это дает шансы моему роду.

Так или иначе, но ты бесконечно отодвигаешь момент релиза, уподобляясь Ахиллесу, соревнующемуся с черепахой. Поймать этот момент, определить эту тонкую черту, что вот ЭТО недопустимо никак и и ни при каких обстоятельствах, а ЭТО пока можно пережить — с ТАКОЙ задачей справиться нелегко, я вам скажу! Без дружеского окрика — очень тяжело, практычески нэвазможна (с). К счастью, такой окрик вовремя случился.

Нелицеприятный разговор, который открыл нам глаза на происходящее.

Окрик друга

Почему то, что мы сделали, — это мега круто?

Мы мигрировали форум. За этой простой фразой кроется ОЧЕНЬ много. Если ее расшифровать, мы «сдернули» информацию с Google Groups, где был наш старый форум (он нам не принадлежал — как администратор, я не мог править даже собственные посты), и залили ее на новый форум, которым мы управляем сами. Я почти уверен, что ДО нас в ТАКОМ объеме этого не делал никто. Мы не только восстановили всех пользователей, мы даже сохранили их аватарки — сегодня они могут зайти под собой и продолжить писать от своего имени! Но и это — лишь малая часть всей крутости.

Технически детали крутости

Старый форум жил в Google Groups, слегка приукрашенной и обернутой в красивую упаковку технологии XX века под названием News Groups. Ей примерно столько же лет, сколько и электронной почте, и по сути эти технологии во многом схожи. Каждое сообщение в группу представляет собой по форме электронное письмо. С помощью самописаной программы, которая имитирует поведение пользователя на странице, мы прошлись по всем страницам и веткам Google Groups, докапываясь до самых исходных текстов сообщений, каждое из которых в сыром виде выглядит примерно так:

Исходник сообщения

Тут можно даже прочесть человеческое сообщение: « merci beaucoup de votre aide ! » :)

И в конечном итоге мы получили примерно три тысячи таких вот файлов с кракозябрами.

Фигова туча файлов с кракозябрами

Мы все их расшифровали (они все были закодированы разными системами кодирования в зависимости от особенностей почтовых программ пользователей), распознали авторов, воспроизвели систему пользователей на новом форуме и привязали к ним их сообщения — мы ПОЛНОСТЬЮ восстановили и все сообщения, и их авторов, для которых создали аккаунты под их оригинальными адресами из почты Гугл — под теми, с которых они писали эти сообщения. Более того: мы даже восстановили их аватарки! Ну, это вообще вертикальный взлет!

Но на этом мы не остановились. Мы прошлись по всем сообщениям, отыскали все адреса e-mail, упоминаемые открытым текстом, наши по этим адресам имена — и заменили упоминания адресов именами. А еще мы весь оверквотинг (чрезмерное цитирование) спрятали под спойлеры. Взгляните на старый форум — он причесан до невероятности — за этим всем стоит огромный труд.

И тут появился мой друг и сказал… Ну, вы видели, что он сказал. ;) Если перевести литературно, мысль была такой: «Вы делаете больше, чем необходимо для релиза». Ну, вот нет, чтобы так и сказать! А он что сказал? А еще нарисовать пытался!

И вот: крутость всего этого не в том, что мы изобрели что-то новаторское и новое. Совсем нет. Крутость в том, что мы это реально сделали. Просто раньше это было в мечтах, а теперь стало реальностью. Ну, это же круто!

Почему еще это круто? Нам охрененно помогли друзья.

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

Мой бывший коллега Семен Атамась, который и предложил такой технический подход, взялся нам помочь на первом этапе.

Семен Атамась, человек, сделавший неоценимо много для этого проекта

Профессионала от любителя отличает то, что очень сложную с точки зрения неискушенного человека задачу профессионал сделает быстро и эффективно. Семен заложил техническую основу нашего нового проекта: создал его структуру, перенес в новую базу весь старый контент (это звучит просто, а технически это виртуозное действо), на ходу заменив архаичные проигрыватели уроков на современные (и делай с ними теперь, шо хошь!). Другой мой коллега, Володя Григорьев нарисовал дизайн основных страниц сайта, подсказал новый подход к организации данных на сайте. Серго Головачёв нарисовал для нас потрясающего кота — того самого, в которого на закрытой голосовалке влюбились все глосующие — и это теперь лицо нашего проекта... Да. Лицо. А что?!

Без такой помощи и помыслить было невозможно даже ввязываться в такой проект.

И еще: мы смоги в этом всем разобраться и продолжить самостоятельно.

Мы понимали, что не можем сидеть у друзей на шее бесконечно. Кроме того, спектр задач постоянно расширялся — мы хотели всяких фишек, мы хотели форум, который в исходном ТЗ не обсуждался, туда надо было втянуть данные со старого форума. мы хотели его интеграции с сайтом, со страницами уроков — все это предстояло делать самим. Рассчитывать можно было только на себя. И вот сперва исподволь, а потом уже и всерьез нам пришлось изучить всю эту кухню, стать программистами на Python под Django, освоить html, разобраться с Bootsrap'ом. Увы, наш скромный опыт не избавил нас от вопросов — мы до сих пор сидим на шее у Семена, хотя и постарались свести этот процесс к нулю.

На последнем этапе к нам присоединилась Светлана Малышева из Одессы, которая прошерстила весь сайт, отыскала все косяки, руками добавила недостающие транскрипты и ревизьоны (тоже по ходу изучив html и навыки работы в WebStorm). И поэтому это еще одна причина, почему все это офигенно круто.

Что мы все в результате получили.

Все, что выше — это был ответ на вопрос «как?». А теперь пара слов о том, что.

Мы догнали паровоз. Раздела «Впереди паровоза» на сайте больше нет. Он был там потому, что оформление страничек уроков не поспевало за новыми уроками, их материалы надо было куда-то складывать — так родился этот раздел. Теперь всем сестрам по серьгам — у каждого урока есть своя страничка, и на ней собраны абсолютно все материалы, которые к нему относятся. А от 160+ и далее уроков появятся комментарии, основанные на рассылке. у 220+ уроков появляются révisions — важные замечания преподавателя, касающиеся грамматики, словоупотреблений, способов запоминания — словом, всех тех квантов знаний, ради которых мы переслушиваем уроки, чтобы лучше все это запомнить.

У каждого урока теперь появился свой топик на форуме, где можно задать вопос, оставить свой комментарий, где можно писать или пополнять народный конспект — для тех уроков, где статьи в Народном конспекте уже были, мы перенесли в качестве первого поста в эти топики.

Появился обновленный форум, и мы будем рады встретиться там с вами, покалякать и поговорить о французском языке.

Нам нужна ваша помощь. Пожалуйста, поддержите Le-francais.ru !

Предыдущий релиз был техническим — его увидело всего несколько десятков человек, хотя даже этого хватило, чтобы началось какое-то оживление на форуме.

Сегодня, 15 ноября 2017 года в половине пятого мы выложили новую версию сайта публично.

Поехали!

С сегодяншнего дня у большинства пользователей по адресу www.le-francais.ru открывается уже новый сайт.

Нам нужна ваша помощь. Пожалуйста, поддержите Le-francais.ru !

Поздравляю! Сколько труда вложено в этот сайт и в новую версию! Вы - молодцы! Удачи и новых творческих успехов!

Ура!!! Свершилось! Поздравляю!

Свершилось. Это настоящий день рождения!
Мои поздравления!
Поздравления в первую очередь Илье, создателю, душе и сердцу этого сайта и всем кто работал над новой версией: Антону, Светлане, Семёну, Владимиру. Спасибо вам! Невероятно, сколько воли, терпения и любви вложено в этот проект.
Поздравляю таких как я, подельников, с замиранием сердца следящих за происходящим, потому что участие в работе сайта стало для нас важным и неотъемлемым куском жизни, позволяющим чувствовать себя нужным и полезным.
Поздравляю всех, кто изучает вместе с нами французский язык. По себе знаю, сколько надежд, новых возможностей и просто радости дарит этот сайт.
Для всех нас новая версия означает, что жизнь продолжается и будет долгой!
Это настоящий проект будущего. Удачи!

 
Зарегистрируйтесь или войдите чтобы оставить сообщение.