День вчерашний
Вчера, решив проблему с «упавшими» сайтами, я лег спать. Проснувшись, соображал с трудом. На связь вышла Tella, стали обсуждать, что делать с прогулкой, которую мы наметили еще несколько дней назад на этот день. Я хотел было перенести все на субботу, но у Tellы получилось изобразить процессионную Волю и все же уговорить встретиться именно в пятницу. Сошлись на том, что перенесли время встречи на час позже, и я стал собираться.
Вопреки моим ожиданиям, прогулка получилась вполне спокойной и приятной. Мы снова отправились на север центра Москвы, на этот раз в район Трубной. Там свернули в 4-ый Колобовский переулок (да, опять бродим по всяким переулкам), вышли к Знаменской церкви, которую, собственно, и хотела показать мне Tella. Оттуда выбрались на улицу Петровка, к знаментому дому 38, где у одного из входов обнаружили памятник Жеглову и Шарапову. Затем ушли на Садовое кольцо, там увидели памятник М. Калашникову, причем установленный недавно. Дальше свернули на еще одну небольшую улицу (она называлась ул. Фадеева), и в итоге вышли к метро Белорусская, где потратили еще как-то время на фотографирование. И на этом разошлись.
Когда вернулся домой, в очередной раз пообещал себе, что ну уж сегодня точно лягу спать раньше. Но получилось как всегда: глубокой ночью я нашел необычный онлайн-квест под названием «Я тебя по IP вычислю» и решил его пройти. Сначала никак не мог понять, что к чему, но потом вспомнил описание прохождения другого квеста на Хабре, и дело сдвинулось с мертвой точки. Потом все уперлось в то, что не знал, как получить нужные данные из Redisа, так как простой GET не работал, а на большее не хватало знаний. Но где-то через час, почитав мануалы и попробовав разные варианты, все же справился. Следующий шаг требовал подключения к MongoDB. Это можно было сделать двумя способами: либо доделать полученный в ходе квеста кусок кода на PHP, либо через командную строку. И оба варианта не получались!
Но почему-то MongoDB — штука очень проблемная в плане работы с ней. В Ubuntu для нее по умолчанию ставится клиент древней версии 2.10, который не поддерживает механизма аутентифкации CRAM-SHA-1, который использовался на сервере, с которого требовалось вытянуть данные. А в PHP 7 полностью переделали extension для работы с MongoDB, сделав интерфейс из простого и логичного крайне сложным и неудобным, да еще с использованием кучи namespaces (как я ненавижу namespaces в PHP — это отдельная тема).
В результате в тот день я так и не прошел квест. Вернулся к нему сегодня (точнее, теперь уже это вчера). Вспомнил, что у меня есть виртуальная машина с Fedora Core, и поставил Mongo там. Оказалось, что там в дистрибутиве версия 3.x, которая поддерживает нужный метод аутентификации, и я наконец-то смог подключиться к серверу. Но и дальше было непросто: поскольку Mongo я знаю почти никак, пришлось потратить какое-то время на то, чтобы переделать код в PHP в запрос из командной строки, да еще и исправить недоделки. К тому же как всегда, в процессе я постоянно отвлекался. Но все-таки нужный запрос был написан, и данные получены, и, введя их на странице квеста, я получил радостное сообщение о том, что квест пройден!
Вопреки моим ожиданиям, прогулка получилась вполне спокойной и приятной. Мы снова отправились на север центра Москвы, на этот раз в район Трубной. Там свернули в 4-ый Колобовский переулок (да, опять бродим по всяким переулкам), вышли к Знаменской церкви, которую, собственно, и хотела показать мне Tella. Оттуда выбрались на улицу Петровка, к знаментому дому 38, где у одного из входов обнаружили памятник Жеглову и Шарапову. Затем ушли на Садовое кольцо, там увидели памятник М. Калашникову, причем установленный недавно. Дальше свернули на еще одну небольшую улицу (она называлась ул. Фадеева), и в итоге вышли к метро Белорусская, где потратили еще как-то время на фотографирование. И на этом разошлись.
Когда вернулся домой, в очередной раз пообещал себе, что ну уж сегодня точно лягу спать раньше. Но получилось как всегда: глубокой ночью я нашел необычный онлайн-квест под названием «Я тебя по IP вычислю» и решил его пройти. Сначала никак не мог понять, что к чему, но потом вспомнил описание прохождения другого квеста на Хабре, и дело сдвинулось с мертвой точки. Потом все уперлось в то, что не знал, как получить нужные данные из Redisа, так как простой GET не работал, а на большее не хватало знаний. Но где-то через час, почитав мануалы и попробовав разные варианты, все же справился. Следующий шаг требовал подключения к MongoDB. Это можно было сделать двумя способами: либо доделать полученный в ходе квеста кусок кода на PHP, либо через командную строку. И оба варианта не получались!
Но почему-то MongoDB — штука очень проблемная в плане работы с ней. В Ubuntu для нее по умолчанию ставится клиент древней версии 2.10, который не поддерживает механизма аутентифкации CRAM-SHA-1, который использовался на сервере, с которого требовалось вытянуть данные. А в PHP 7 полностью переделали extension для работы с MongoDB, сделав интерфейс из простого и логичного крайне сложным и неудобным, да еще с использованием кучи namespaces (как я ненавижу namespaces в PHP — это отдельная тема).
В результате в тот день я так и не прошел квест. Вернулся к нему сегодня (точнее, теперь уже это вчера). Вспомнил, что у меня есть виртуальная машина с Fedora Core, и поставил Mongo там. Оказалось, что там в дистрибутиве версия 3.x, которая поддерживает нужный метод аутентификации, и я наконец-то смог подключиться к серверу. Но и дальше было непросто: поскольку Mongo я знаю почти никак, пришлось потратить какое-то время на то, чтобы переделать код в PHP в запрос из командной строки, да еще и исправить недоделки. К тому же как всегда, в процессе я постоянно отвлекался. Но все-таки нужный запрос был написан, и данные получены, и, введя их на странице квеста, я получил радостное сообщение о том, что квест пройден!