Это - не то, что вы подумали ;-)
Начну издалека. Последние годы к каждой поездке за границу я делаю специальный сайт. Там собрано всё, что может понадобиться в дороге, а также информация для остальной семьи, когда и куда мы отправляемся. Сначала это была исключительно частная инициатива, то есть ни с кем делиться не приходилось. Потом мы съездили в Венгрию с моим братом и приятельницей жены, так что для удобства я просто послал всем участникам ссылку на сайт. Всё прекрасно открывалось и на айфонах, и на моём захудалом щяоми. Сайт можно было скопировать целиком в виде файлов на андроид и открывать оффлайн. Например - для чтения описаний к достопримечательностям, или для просмотра плана на следующий день. То есть вопросы совместимости и отчуждаемости были решены.
Но тут возникла проблема безопасности: могу ли я просто отправить кому-то ссылку и быть уверенным, что посторонний не скачает скан моего загранпаспорта? Тогда я обернул все папки с путешествиями в один общий каталог и доступ к нему ограничил пользователям, участвовашим в соответствующем путешествии. То есть если жена съездила со своей приятельницей в Париж, то заходя в корневой каталог они видели разные списки. У жены - все наши путешествия с 2000 года, а у приятельницы - только поездка на выставки модельеров.
Технически сайты строились из YAML-файлов, разделённых на фиксированные шаблоны и данные под конкретную поездку. Для сборки HTML кода использовался мой собственный макро-генератор, реализованный в виде класса на Пайтоне. И всё было бы хорошо, но хотелось бы будучи уже за границей редактировать расписание, добавлять маршруты и достопримечательности. А это возможно только при генерации кода на стороне сервера.
Почесал я лысую репу и ... переписал пайтоновский движок на PHP. Скоро сказка сказывается, да не скоро код портируется. У меня на это ушло два вечера. Один - чтобы сделать построчный "перевод", а второй - чтобы исправить опечатки и причесать исходные данные. Оказалось, что мой давний "друг" BOM-header очень даже влияет на древний парсер YAML который мне удалось прикрутить к PHP7. Более того, версия YAML 1.2 им не поддерживалась, так что пришлось выискивать и исправлять несовместимые куски в исходных данных. Но результат вышел - просто конфетка. Теперь осталось найти приличный онлайн-редактор для YAML данных, и тогда я смогу тыкаясь в телефонный экранчик где-нибудь в Венеции переставлять мероприятия с одного дня на другой.
Вы скажете, а почему бы не использовать такие очевидные средства как гугловский календарь? Ну там всё сложно. Он не будет работать так, как мне хочется, да и всякие списки придётся вести отдельно. То есть вопрос отчуждения именно этого путешествия становится камнем преткновения. Не буду же я расшаривать для каждого участника поштучно документы в моём гугло-диске. Есть конечно опция сложить таблицы и графики в гугло-папку, но всё равно, это какой-то low-tech. И самое главное - мне нужно иметь исходники в текстовом виде на своём компьютере, чисто на всякий случай. Так что теперь все новые поездки буду записывать без чиканья с заливкой статического HTML через FTP. Только data-driven, только хардкор :-)
Начну издалека. Последние годы к каждой поездке за границу я делаю специальный сайт. Там собрано всё, что может понадобиться в дороге, а также информация для остальной семьи, когда и куда мы отправляемся. Сначала это была исключительно частная инициатива, то есть ни с кем делиться не приходилось. Потом мы съездили в Венгрию с моим братом и приятельницей жены, так что для удобства я просто послал всем участникам ссылку на сайт. Всё прекрасно открывалось и на айфонах, и на моём захудалом щяоми. Сайт можно было скопировать целиком в виде файлов на андроид и открывать оффлайн. Например - для чтения описаний к достопримечательностям, или для просмотра плана на следующий день. То есть вопросы совместимости и отчуждаемости были решены.
Но тут возникла проблема безопасности: могу ли я просто отправить кому-то ссылку и быть уверенным, что посторонний не скачает скан моего загранпаспорта? Тогда я обернул все папки с путешествиями в один общий каталог и доступ к нему ограничил пользователям, участвовашим в соответствующем путешествии. То есть если жена съездила со своей приятельницей в Париж, то заходя в корневой каталог они видели разные списки. У жены - все наши путешествия с 2000 года, а у приятельницы - только поездка на выставки модельеров.
Технически сайты строились из YAML-файлов, разделённых на фиксированные шаблоны и данные под конкретную поездку. Для сборки HTML кода использовался мой собственный макро-генератор, реализованный в виде класса на Пайтоне. И всё было бы хорошо, но хотелось бы будучи уже за границей редактировать расписание, добавлять маршруты и достопримечательности. А это возможно только при генерации кода на стороне сервера.
Почесал я лысую репу и ... переписал пайтоновский движок на PHP. Скоро сказка сказывается, да не скоро код портируется. У меня на это ушло два вечера. Один - чтобы сделать построчный "перевод", а второй - чтобы исправить опечатки и причесать исходные данные. Оказалось, что мой давний "друг" BOM-header очень даже влияет на древний парсер YAML который мне удалось прикрутить к PHP7. Более того, версия YAML 1.2 им не поддерживалась, так что пришлось выискивать и исправлять несовместимые куски в исходных данных. Но результат вышел - просто конфетка. Теперь осталось найти приличный онлайн-редактор для YAML данных, и тогда я смогу тыкаясь в телефонный экранчик где-нибудь в Венеции переставлять мероприятия с одного дня на другой.
Вы скажете, а почему бы не использовать такие очевидные средства как гугловский календарь? Ну там всё сложно. Он не будет работать так, как мне хочется, да и всякие списки придётся вести отдельно. То есть вопрос отчуждения именно этого путешествия становится камнем преткновения. Не буду же я расшаривать для каждого участника поштучно документы в моём гугло-диске. Есть конечно опция сложить таблицы и графики в гугло-папку, но всё равно, это какой-то low-tech. И самое главное - мне нужно иметь исходники в текстовом виде на своём компьютере, чисто на всякий случай. Так что теперь все новые поездки буду записывать без чиканья с заливкой статического HTML через FTP. Только data-driven, только хардкор :-)
Tags:



