blogging

Блог переехал на AWS

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

Переехал я на обычную виртуалку EC2 t2.micro. После shared-хостинга на ней чувствуешь себя очень просторно. Кроме того, оно еще и почти вдвое дешевле, чем на Bluehost (при условии предоплаты, конечно, но на старом месте я тоже платил вперед). А первый год так и вовсе бесплатно за счет Free Tier. Разумеется, все, что на готовом хостинге предоставлялось "из коробки", теперь пришлось устанавливать и настраивать самому, но, во-первых, я вполне в состоянии это сделать, а во-вторых, у меня появилась замечательная возможность сделать все так, как я хочу, а заодно и попробовать применить в домашних условиях docker - инструмент, которым я недавно проникся :)

Под катом немножко технических тонкостей.

Чертова дыра

Я уже неоднократно писал про своего хорошего друга Диму - даже посвятил ему отдельный тег barateli. Это заядлый путешественник, искатель приключений, программист высокого класса, многодетный отец, неунывающий оптимист - а в последнее время еще и израильтянин-репатриант. А также блогер со стажем, умеющий писать порой так здорово и красочно, что некоторые его творения просто обязаны войти в историю.

К сожалению, сам он относится к этому вопросу совершенно наплевательски. Например, несколько раз он, будучи не в духе, попросту удалял свой журнал, не сохранив даже архива. Ныне он и вовсе пишет исключительно в фейсбук, что в плане сохранности и доступности его творений для общественности, примерно эквивалентно периодическому удалению всех своих записей (даже хуже, потому что фейсбучные записи даже поисковикам не видны). На все мои просьбы "Дима, не зарывай талант в землю, заведи себе нормальный блог хотя бы просто для ретрансляции!" вежливо обещает подумать. Я даже уверен, что совершенно искренне.

Не надеясь на лучшее, я давно уже собираю коллекцию его перлов у себя в блокнотике. Кое-что удалось в свое время вырвать из лап забвения при помощи кэша Яндекса. Кое-что я своевременно скопировал из фейсбука прежде, чем фейсбучная лента унесла запись в небытие. Отдельные вещи даже доводилось перепостить у себя в журнале. Но так не могло продолжаться вечно. Мало хранить записи у себя, надо еще сделать так, чтобы их мог видеть весь мир, а не только те избранные, кому фейсбук сегодня счел нужным эти записи показать.

Решение пришло относительно внезапно. Я давно уже подыскиваю новую блог-платформу на замену морально устаревшему Друпалу, и, разглядывая минималистичный движок под названием Jekyll, пришел к выводу, что Димкины мемуары - это идеальный формат для такого блога!

Вечер на установку и эксперименты, еще вечер на перетаскивание из блокнота в отдельные файлы в формате Markdown - и вуаля! Сайт ожил и заработал: kuradiauk.ostankin.net. Пополняется по мере того, как я мониторю Димкину фейсбучную ленту.

Название сайта "Чертова дыра" (по-эстонски "kuradiauk") сложилось как-то само собой, еще задолго до появления самого сайта. Аналогичное название было и у странички в блокноте. Ну а как еще назвать страницу с творчеством человека по имени Дима Чертов, которое должно было кануть в небытие, но попало сюда?

Отдельного упоминания заслуживает его собственная реакция на появление "Чертовой дыры":

Вааааау! Это удивительное ощущение, когда вдруг твои блоги и записи начинают жить собственной жизнью!

Это очень израильский подход. Что нужно, чтобы у тебя появился минималистичный блог? Правильно, ничего :)

Дружественный к мобильникам Drupal 7

Блог на Drupal - да и вообще любой standalone-блог - требует некоторых усилий по настройке. Особенно сложно найти более-менее пристойно выглядящую тему оформления. Давние читатели, возможно, помнят штук пять разных "лиц" сайта, которые я менял одно на другое в попытках улучшить визуальное восприятие своего блога. Несколько месяцев назад я остановился на теме Zero Point - она была практически идеальной, и мне казалось, что вопрос с оформлением закрыт надолго.

Но в мой уютный мир, как обычно, вмешался Гугл. Это случается уже не первый раз: некоторое время назад своими нововведениями он разломал с трудом выстроенную схему входа по OpenID, которую в конечном итоге так и пришлось похоронить, заменив ее на более современную OAuth-идентификацию через соцсети. В этот же раз он заявил, что сайты, не оптмизированные под мобильные устройства, с апреля начнут получать более низкий рейтинг в поисковой выдаче по сравнению с "дружественными" к мобильным устройствам.

Поскольку львиная доля визитов на мой сайт приходится на поисковые запросы, я забеспокоился, насколько это нововведение отразится на мне. Сам-то я неоднократно заходил к себе с мобильника и не испытывал каких-либо сложностей, но оказалось, что Гугл считает иначе. Вот, как выглядел тест моего сайта на "дружественность" к мобильным устройствам:

Сайт Myx.Ostankin - not mobile-friendly

Поизучав прилагающиеся к результатам теста рекомендации, я узнал, что в случае с Drupal проблему можно решить установкой более подходящей темы оформления - из тех, что называются "adaptive" или "responsive". Zero Point к подобным темам не относится - значит, придется опять искать новую. Так что, пользуясь тем, что я недавно сделал себе инструмент для создания временной копии сайта, я начал неторопливо экспериментировать с разными темами оформления, каковых в Интернете валяется не один десяток.

Как ни странно, я сравнительно быстро нашел практически полностью подходящую тему Alpha Responsive Theme, установил ее, немножко подкрутил CSS-свойства - и вуаля! Теперь я тоже дружественный к мобильникам! :)

Сайт Myx.Ostankin - теперь оптимизированный под мобильники

P.S. А полезно все-таки излагать свои мысли в письменном виде. Пока писал пост, полез искать ссылку на тему Zero Point, и обнаружил, что там тоже появилась mobile-friendly версия. Но когда я с ней поэкспериментировал, мне не понравилось, как она растягивает страницы на больших экранах, перемешивая текст с картинками - старая версия так не делала, да и Alpha тоже таких вольностей себе не позволяет. Так что пусть остается Alpha.

Как не терять друзей во френдленте

В те времена, когда я читал своих друзей через френдленту, у меня часто возникала проблема следующего характера. Были люди, которые писали, что называется, "редко, но метко", и мне не хотелось пропускать ничего из того, что они пишут. А если не читать френдленту регулярно "от корки до корки", то всегда есть риск, что ты что-то пропустишь. Более того: если френдов много, а времени мало - это будет происходить постоянно. Нет, я в курсе про группы и фильтры, но в ЖЖ оно настолько неудобно сделано, что чисто номинально, возможно, и работает, но на практике толку практически никакого.

Facebook. Расстанемся друзьями

Tags: 
"Все на благо человека, все во имя человека! И мы все знаем этого человека..."

Народный вариант известного лозунга времен СССР.

Facebook sucksНадоело. Вы знаете, наступает момент, когда множество вроде бы незначительных, но раздражающих мелочей собираются в один большой комок, и вдруг неожиданно решаешь: все, хватит. Это я про Фейсбук.

В любом массовом сервисе что-то может не нравиться - это нормально. Люди своенравны, непохожи друг на друга, а, кроме того, инертны - поэтому всем не угодишь. Так что соцсетям подобного масштаба приходится регулярно жертвовать гибкостью ради простоты, постоянно что-то менять, чтобы быть на волне моды, а также часто принимать решения за пользователя, зачастую вообще не поинтересовавшись его мнением. Естественно, это приводит к потере небольшого процента аудитории, которым такой подход не нравится, но пока этот процент невелик - кого это волнует?

Мне вообще не нравятся соцсети, мне гораздо ближе блоги как площадки для общения - но именно соцсети сейчас являются наиболее популярным средством общения, и с этим приходится считаться. Поэтому я честно пытался активно пользоваться хотя бы какой-то одной соцсетью (понимая, что двоих Боливар точно не выдержит). Как пользователь Гугла, я вначале сделал ставку на G+, но даже моей лояльности надолго не хватило - это такое убожество, что я вскоре плюнул и сбежал Фейсбук, где у меня с незапамятных времен был аккаунт. Но вскоре и Фейсбук переполнил чашу моего терпения.

Соцсети по сути своей созданы для того, чтобы жить одним днем - сегодняшним. Написанное сегодня завтра уже никому не будет интересно, послезавтра об этом забудут, а через неделю даже сам автор не сможет найти свою запись. Как следствие, все заточено под то, чтобы в максимально простой форме - главное быстрее! - поделиться мыслью, сопроводить фотографией и скорее послать. Оформление, форматирование - это все несущественно: все будет оформлено единым шрифтом, втиснуто в узкую полоску ленты, обрезано на полуслове и скормлено потоку.

Мне почему-то так и не удалось смириться с таким подходом. Я как-то привык к тому, что все, что я пишу, относительно аккуратно (в пределах моего чувства вкуса) оформлено, актуально в течение значительного промежутка времени и для потенциально неограниченной аудитории, и при желании это можно легко найти и отправить ссылку кому угодно. А соцсети с их замкнутостью на самих себя вызывают во мне перманентное раздражение: сами искать не умеем, но и поисковикам не отдадим. И ссылку кому попало не покажем. Ты еще пойди найди эту самую прямую ссылку на пост, а если найдешь - попробуй показать ее тому, у кого нет аккаунта в Фейсбуке!

В общем, в какой-то момент я четко почувствовал, что дискомфорт и раздражение от Фейсбука перевешивают плюсы от общения в нем. Поэтому ну их нафиг, эти соцсети: G+ отвратителен, Фейсбук бесит, остальные, я уверен, тоже не лучше.

Сначала я хотел подробно расписать список претензий к Фейсбуку, но потом решил ограничиться тезисным перечислением "системных" проблем, которые меня раздражают. А именно - мне не нравится, когда соцсеть:

  • решает за меня, как будет выглядеть то, что я написал, а также кто (и когда!) может это увидеть;
  • не дает мне абсолютно никаких инструментов для организации и последующего поиска даже собственной писанины, не говоря уже о чужой;
  • хвалится щепетильностью в плане прайваси, но при этом часто информирует других о действиях, которые я предпочел бы не афишировать, а также регулярно показывает мне то, что я не могу откомментировать или хотя бы просто поставить "лайк" - то есть, по идее, и видеть-то не должен.

Поэтому я возвращаюсь обратно к ведению блога. Вот характерные черты блога, которые меня привлекают:

  • абсолютная открытость и доступность любого поста через поиск и по прямой ссылке, а также возможность публиковать RSS-поток;
  • возможность организации постов по меткам;
  • нормальные древовидные комментарии, где четко прослеживается каждая ветвь дискуссии;
  • возможность отформатировать пост так, как я хочу, вставить картинку туда, куда я хочу, настроить сворачивание-разворачивание там, где это нужно.

Так что надеюсь, что теперь я буду писать чаще, поскольку перестану распыляться на соцсети :)

Спам с пословицами

Как и многих других владельцев блогов, меня регулярно донимают спамеры, гадящие в комментариях. Большинство пытается маскироваться под читателей и пишут что-то вроде "Замечательно изложено, пишите больше подобных статей!", а где-нибудь внутри расположена скрытая ссылка на рекламируемый ресурс. Наличие подобных комментариев не только загаживает комментарии, но и отрицательно сказывается на рейтинге блога - поисковики отслеживают источники поискового спама и принимают соответствующие меры.

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

Установка капчи на регистрацию нового пользователя несколько улучшила положение, но ненамного. Перебрав несколько антиспамовых модулей, я остановился на spambot, который при регистрации нового пользователя сверяется с сервисом Stop Forum Spam, и при выявлении спамера сразу его блокирует. Кроме того, упростилась процедура очистки результатов жизнедеятельности спамеров: одним движением удаляется и пользователь, и все его комментарии, а заодно и отсылается уведомление на тот же Stop Forum Spam.

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

Итак, некто оставляет комментарии с пословицей, в которую "запрятано" от одной до трех скрытых ссылок. Пословицы самые разные, от крылатых до таких, которые я видел впервые - база пословиц у него огромна, он практически не повторяется:

"Хочешь жить - умей вертеться!"

"И среди дураков находится умный: тот, кто молчит. "

"Кандалы остаются кандалами, даже если они позолочены."

"Когда нет хлеба, едят и желуди."

Комментарии с пословицами и скрытыми ссылкамиЛогично предположив, что спамер работает по площадям, я полез в Гугл и нашел множество других жертв этого спамера, у которых в комментариях висели такие же пословицы со ссылками. Ими оказались блоги, форумы и прочие платформы на базе Drupal - причем преимущественно русскоязычные.

Собственно, встал вопрос, как это фильтровать. Вводить премодерацию любого рода я не хочу принципиально: любой пользователь считается благонамеренным, пока он не доказал обратного. Spambot может распознавать спамеров по email-адресу и по IP-адресу, но "знаток пословиц" заводит ящик на mail.ru, использует его до тех пор, пока он не наберет достаточно негативной статистики для блокировки, после чего выбрасывает и заводит новый. Аналогично он поступает и с IP-адресами: берет какого-нибудь левого провайдера с динамическим IP (преимущественно из стран бывшего СССР), поочередно "отрабатывает" адреса из диапазона, потом меняет провайдера. Иногда вместе со страной. Не знаю, как технически это делается, но, подозреваю, что это требует изрядного количества ручной работы

При этом почтовые адреса выглядят вполне пристойно, например: lera-bеsperstova@mail.ru, еmelyanchikova-katerina@mail.ru, dоnin_kondrat@mail.ru, nikоlaj_zyatev@mail.ru и т.п.

Единственная имеющаяся на данный момент зацепка - это имена, под которыми пользователь регистрируется. Они генерируются случайным образом и состоят из набора цифр, букв, потом опять цифр: 162sentitarsarh1574, 975liodiabige291, 875woostiysanpio1513 и т.п. Даже располагая примитивным штатным фильтром Друпала, можно создать правило "блокировать пользователя, чье имя начинается на цифру и длиннее десяти знаков" - все подобные имена в этот шаблон укладываются, при этом не страдает ни один легитимный пользователь.

Но это будет работать только до тех пор, пока наш "знаток пословиц" не изменит механизм генерации имен. Так что следующий ход за ним :)

Иероглифы и твиттер

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

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

А вся ирония заключается в том, что как раз в Китае твиттер закрыт Великим Китайским Фаерволом :) Впрочем, у них там есть свои микроблоги (как и свои поисковики, свои картографические сервисы и все тому подобное).

P.S. Весь этот пост, если его немного подсократить, на китайском вполне влезает в твиттерное сообщение :) Переводил, естественно, гугл-транслейтом :)

P.P.S. Только сейчас вспомнил, что среди читающих меня людей есть как минимум один профессиональный китаист :) marionette_maia, мне уже стыдно за тот бред, что у меня наверняка получился :)

Профессиональная деформация тестировщика в финансовой сфере

Tags: 

Прошло уже больше шести лет с тех пор, как я сменил профессию программиста на профессию тестировщика. Так случилось, что это примерно совпало по времени с началом активного ведения блога. То есть, конечно, что-то писал я и до того, но очень время от времени. А тогда, видимо, моя графомания вырвалась на свободу и нашла себе применение в облике блоготворчества. Я в свое время даже пытался ее заткнуть, уничтожив свой ЖЖ, но безуспешно - блог возродился из небытия и продолжился практически сам собой.

И вот, последние полгода-год я начал замечать серьезный спад в потоке исходящей от меня писанины. И не то, чтобы не о чем было писать - писать попросту не хотелось. Сначала я списывал это на занятость по работе, на переезд, на ремонт... но время шло, а "творческий кризис" все не проходил. "Не может быть!" - думал я. - "Не могла же графомания просто взять и исчезнуть сама собой!". Я уже даже подумывал, что вся энергия уходит на разменивание по мелочам в соцсетях - я активно присутствую в Google+ и иногда бываю в Facebook...

И вдруг на меня снизошло прозрение. Но сначала - небольшое лирическое отступление с историей.

Как известно, я работаю в Дойче Банке, куда пришел тестировать систему, торгующую довольно сложными финансовыми деривативами. Несмотря на то, что это уже мое третье околофинансовое место работы после CQG и UBS, предметная область оказалась для меня новой и очень интересной, а изучить всего нового нужно было столько, что мне даже пришлось бросить курсы MBA (куда я, кстати, пошел со скуки, как раз работая в Luxoft на проекте UBS).

И вот, мало-помалу я начал разбираться в предмете настолько, что уже мог консультировать коллег. Пользуясь тем, что у меня довольно-таки неплохой письменный английский, совмещенный с природной тягой делиться знаниями, я начал потихоньку класть эти самые знания на бумагу (т.е. на корпоративную вики), что, разумеется, только приветствовалось. Более того, настал день, когда мне предложили заняться спецификациями и сбором требований "на полную ставку" - при условии, правда, что я найду и выращу себе смену в области тестирования.

Спустя какое-то время ученик нашелся, и он показал себя настолько достойно, что я с легким сердцем передал ему дела, а сам занялся общением с пользователями, фиксированием и структурированием их пожеланий, а также прочей формализацией различной информации о том, что творится в нашем мире FX-деривативов. И вот как-то, гуляя по офису и размышляя об опционной торговле, я проходил мимо коллеги, на чьем мониторе был примерно вот такой график:

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

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

Зачем я веду блог? Я неоднократно задавался этим вопросом, и, хоть я и не мог дать на него четкого ответа, в общих чертах он был примерно следующим: я хочу в письменной форме делиться своим опытом с неопределенным кругом лиц.

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

В общем, похоже, что моя графомания нашла применение в профессиональной сфере - что, по всей видимости, и стало причиной ослабления активности в блоге. Хобби и работа слились в одно целое. Хорошо это или плохо - пока не знаю, но то, чем я занимаюсь, мне определенно нравится!

Подписка на определенный тег в ЖЖ

Теги в ЖЖ (да и вообще в любом блоге) - вещь очень полезная, особенно если хозяин блога аккуратно их проставляет. Это дает возможность фильтровать записи по определенному типу - например, выбрать только те посты, которые помечены как "travel" или "books".

Однако это все можно проделать только читая старые записи. Зафрендив автора, или подписавшись на обновления каким-либо другим способом, подписчику приходится читать все подряд. И даже если автор методично классифицирует свои посты, обозначая шутки и анекдоты тегом "fun", тесты - тегом "test" и так далее, но мне, к примеру, интересно читать только анекдоты, а на один пост с анекдотами приходится с десяток всяких тестов, "флешмобов" и прочей хрени, которая мне нафиг не сдалась - то я все равно волей-неволей вынужден читать в своей ленте весь поток, исходящий от этого человека. Или отписываться совсем, когда это начинает раздражать.

Знакомо? Думаю, да. Но недавно я обнаружил, что ЖЖ таки позволяет подписаться на отдельный тег.

Рецепт успешного блога от Джоэла

Джоэл Сполски, после десяти лет ведения блога, на котором он сделал имя себе, а также компании Fog Creek Software, основателем которой он является, решил остановиться и написал свой последний, юбилейный, прощальный пост. Уходя, Джоэл оставил рецепт успешного блога.

Страницы