Пустой чемодан

Собираю чемодан в дорогу, а он оказывается пустой — богат ли мужской гардероб? Без чемодана лететь нельзя, а в полупустом всё внутри будет тарахтеть и греметь — попробуйте сами загрузить его процентов на 10-15 и затем с ноги пнуть вниз по лестнице (приблизительно такое происходит с ним в аэропорту). Пришлось положить туда коробок от принтера. Пустой, разумеется. Он просто идеально занял там почти всё место — такой-себе плейсходер получился.

Чемоданчег с плейсхолдером. Коробок от принтера пуст внутри.

Update. Украинская таможня в Жулянах, проводя выборочную проверку багажа на просвечивающем сканере возбудилась, увидев мой большой чемодан, и возжелала его досмотреть через тот самый сканер. Как результат — потребовали от меня дополнительных комментариев, что там за фигня такая внутри. Рассказал, что это коробок от принтера, даже не от принтера а от МФУ, — цветной, струйный, Epson, и я нему [принтеру] очень привязался. Жаль не предложил вскрыть его и убедиться — тогда бы не пришлось самому мучаться, снимая с чемодана полиэтиленовую аэропортовую упаковку.

Об измерении женщин

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

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

Разумеется, к женщине можно приложить линейку (варианты — метр, рулетку, шаговый циркуль, кому что ближе), и мужчина, со свойственной ему наивной прямотой и непосредственностью, получит одну цифру, вроде 1750мм, 1.75м или даже 175см (неправославно, конечно, но ежели кто в силу гуманитарности своего образования никогда не проводил время за кульманом, то для него и сантиметр за единицу измерения сойдёт). Далее, оперируя полученными результатами, можно сравнить результаты измерения двух женщин (лучше, разумеется, тайно), и сделать вывод о том, что одна выше или ниже другой. Сами же женщины, конечно, более искушены в способах измерять себя, — они пользуются сантиметром, который висит в ванной, и старательно журналируют в укромном месте до десятка различных параметров, но нам, мужчинам, малоинтересны их числовые значения, — гораздо приятнее оценить «на глазок» или даже «на ощупь».

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

Женщины любят принимать ванны-джакузи, так  что если поприсутствовать в процессе и понаблюдать за ними, стараясь не отвлечься от научно-исследовательской составляющей происходящего, можно выяснить объём женщины (привет Архимеду). А зная массу и объем можно найти и среднюю плотность, хотя лично я совершенно не могу представить, зачем это может кому-либо понадобиться.

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

Но есть такой параметр, который многим бросаетя в глаза, но до сих пор остаётся без количественного выражения и названия. За неимением подходящего термина, я называю его просто — «волшебство», и показывает он степень невероятности той или иной девушки.  Численно он выражается формулой 1.1:

Формула 1.1

Формула 1.1

где M — волшебство девушки, а P — вероятность встретить ещё одну такую девушку. Разумеется, поскольку 0 ≤ P ≤ 1 (кто сказал, что вероятность измеряется процентами? Встал и вышел из аудитории!), то и  0 ≤ M ≤ 1, то есть имеем диапазон изменения невероятности от нуля до единицы.

Как же проявляется и изменяется волшебство в жизни женщины? В процессе взросления, где-то года в три-четыре от знакомства с фольклором и литературой девочки узнают о волшебных принцессах и сказочных феях. В этот момент каждая из них в своём воображении — гарантировано самая волшебная и невероятная. Разумеется, по известным психологическим причинам, это всё щедро подогревается аналогичными убеждениями родителей. Пёстрые платья, волшебные палочки, короны и блёстки – все это аттрибутика фантстической невероятности, которая сопровождает их лет до шести-семи. В этот момент уровень их волшебства просто зашкаливает и достигает пика. В принципе, это нормально, и, наверное (матан мне ближе, чем педагогика), это очень важный и ответственный этап формирования женской психики. Затем школа понемногу показывает им реальность, и их волшебство постепенно сходит на нет, окончательно улетучиваясь на первом курсе университета. Разумеется, нас совершенно не интересуют всё, что описано в этом абзаце, поскольку в этой статье речь идет об уже сформировавшихся и взрослых в псхологическом плане людях.

Так вот, у некоторых взрослых девушек наблюдается ненормально высокий уровень волшебства-невозможности. Таких нынче принято называть «гламурными кисами». Сложно описать такое явление лучше, чем это сделано в соответствующей научной литературе, поэтому я ограничусь лишь парой слов. Многие девушки пытаются произвести впечатление настолько фантастически-невероятно-невозможных существ, что становится удивительно — как же так могло случиться, что она, настоящая, находится вот здесь, прямо сейчас, конкретно в это время и в этом месте, ведь сам факт её существования во всём человечестве столь ничтожно мал, что о шансах её встретить говорить вообще бессмысленно. В то же время налицо её заурядность и даже унылость, и это вызывает в ней острую гамму негативных чувств ко всему окружающему миру (люди, предметы, явления, философия), который отказывается вращаться вокруг неё. Примечательно то, что женщны с нулевым волшебством — это нормальные и интересные личности. Так что, в общем зачёте, чем больше уровень невероятности, тем хуже. Как не трудно догадаться, этот параметр в том числе описывает и уровень «гламурности кис», а соответственно, чем он ближе к единице, тем более разрушительно для мозга времяпрепровождение с такой девушкой.

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

Формула 1.2

Формула 1.2

где L — некоторое количество лулзов, которые потенциально можно извлечь, k — коэффициент, который позволит выразить количество этих лулзов в какой-либо измеримой величине (выходит за рамки данного повествования, здесь о женщинах, а не о троллинге), и М — волшебство-невероятность из формулы 1.1. Легко увидеть, что справедливо следующее:

Формула 1.3

Формула 1.3

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

На практике же шкала волшебства от нуля до единицы немного неудобна (кому интересно возиться с дробными-то числами?), и на порядок удобнее выделить из нее около пяти фиксированных уровней волшебства, и ввести какую-либо единицу измерения. В описываемой системе такая единица волшебства девушки называется «Мальвинка», в честь одной сказочной особы с голубыми волосами и пуделем по кличке Артемон. Её волшебство было принято за эталон и приравняно к трём единицам. Ниже приведены приблизительные описания того впечатления, которое пытаютяс произвести женщины с разными уровнями волшебства, выраженного в Мальвинках с соответствующим указанием его абсолютного значения (заранее прошу заметить некоторую логарифмичность шкалы — так правильнее). И помните, здесь как со счётчиком Гейгера – чем меньше, тем лучше:

0 Мальвинок. (0 ≤ M < 0.4) Нормальная женщина, с которой приятно общаться.

1 Мальвинка. (0.4 ≤ M < 0.65) Что-то с ней не так. Вроде-бы ничто не выдает невероятности, но где-то в глубине души она уверена, что она — избранница космоса, и её сказочный принц уже в пути!

2 Мальвинки. (0.65 ≤ M < 0.8) Однозначно, её присутствие на этой земле делает мир лучше, тому есть много неоспоримых доказательств и она даже немножко светится в темноте приятным мягким свечением! (Эхх, ну как, как же тут не вспомнить-то в третий раз о счётчике Гейгера и эффекте Вавилова-Черенкова, хотя это и совсем не в тему)

3 Мальвинки. (0.8 ≤ M < 0.9) Роковая женщина. Мужчины, которые её видели вживую натурально падают к её ногам штабелями. Те, которые видели только на фото, жаждут встречи и готова положить мир к её ногам. А те, кто только слышал о ней, развязывают войны, чтобы заполучить хотя-бы её фотографию. Жалкие неудачники, которые о ней не знают даже не подозревают, как ничтожна их жалкая жизнь.

4 Мальвинки. (0.9 ≤ M < 1) При виде такой женщины мужчины просто растворяются в окружающей её ауре. Они теряют дар речи (на устах застыло её имя), и дальнейшее общение могут продолжить только жестами и взглядами. Да какое общение, они становятся просто незримыми тенями, плавающими в эфире Вселенной. Эффект наблюдается в радиусе прямой видимости (обычно — от 5 до 20 метров), и продолжительность абстинентного синдрома после её исчезновения — не менее двух дней. В радиусе 5-10 метров от такой женщины расцветают все цветы, и фруктовые деревья, запевают птицы и начинать порхать бабочки.

5 Мальвинок.  (M=1) Натурально какает фиалками.

Такие дела.

Всё оказалось простым до банальности

Головная боль — состояние весьма неприятное, но с одним существенным бонусом. Когда болит голова, всё ненужное само по себе отпадает на задний план. Именно поэтому я стараюсь и не употреблять нимесулидсодержащие препараты. Так и случилось неделю назад, — разболелась голова вечером, захотелось лечь, поспать. Сразу вся ненужная фигня ушла на задний план. Позвонил домой жене, поговорил с ней, затем взял блокнот, быстро набросал там маленький ToDo по работе, и, оценив масштабы написанного, пошёл спать. Было 9 вечера. Будильники поставил на 4 утра, так чтобы получилось 7 часов сна.

К моему удивлению, проснуться в 4 часа было крайне просто. Я ожидал, что весь день буду сонным, но нет, день прошёл вполне нормально, и вечером я повторил процедуру — лёг в 9, проспав 7 часов до 4-х. И так целую неделю.

Всё оказалось простым до банальности. Если нормально спать 6.5-7 часов в сутки, то можно высыпаться и чувствовать себя хорошо. Кстати, для меня такой критерий «выспанности» — бредовые сны. Если я вижу сны, в которых просиходит неописуемая хуита, значит я уже выспался и пора вставать. Я, правда, не настолько крут, чтобы проснуться самому, но мне помогает будильник с Barenaked Ladies — The Big Bang Theory.

И, самое главное. В то утро я сделал всё из ToDo, так что в плане работы это наиболее оптимальный график.

Пост ненависти к СЕО

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

Возможно за то, что они портят жизнь всем, загаживая выдачу поисковиков? Нет, что мне дела-то до всех, я и так нахожу в поисковиках то, что ищу.

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

Разумеется, есть что-то, чем они портят жизнь лично мне, но что это? Иногда приходится разгребать их высеры типа “сделать поменьше ссылок”, “расставить nofollow”, “прописать альты”, но это в целом не страшно — вполне обычная работа.

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

После всего того, что можно было понять гуманитарным складом ума, пришла очередь серьёзно поработать над редиректами. В числе прочих околоредирекных просьб, градус неадеквата которых был где-то на отметке “долбоебизм, конечно, ну да хуй с ним, чем бы дитя не тешилось”, мне предложили проверить, есть ли редирект с example.com на example.com/ (со слешем, ага), и если его нет, то сделать.

Лирическое отступление. Тот слеш для корневой страницы отрабатывается браузером. Есть он или нет, браузер пошлёт один и тот же запрос. Нет другого способа запросить у вебсервера корневую страницу, кроме как сославшись на нее как на /. И даже если этот слеш отсутствует в адресной строке, — сам браузер всё-равно шлёт его.

Первое желание — придавить авторитетом:

— Не гоните, чуваки, это же хуйня на постном масле!

— Нет, что ты, сеошники рекомендуют, и настаивают, что это очень важно.

На всякий случай уточнил, а не имеют ли они в виду example.com/foo и example.com/foo/, оказалось нет, они как раз имеют в виду корневую страницу. Ну ладно, следующий вариант — доказать свою правоту. Расшарил десктоп, открыл логи локального прокси и демонстративно сравнил HTTP заголовки для example.com и example.com/. Клиент увидел, согласился, что они одинаковы.

— Мудак твой сеошник, — говорю, — и рекомендации у него мудацкие. Теперь его очередь подобным образом доказать, что я неправ.

— Так это не какой-то конкретный сео, — последовал ответ, — это все говорят такое и и рекомендуют уже лет восемь как. Я вижу, что страницы одинаковые, и логи одинаковые, но там должен быть какой-то редирект, и если его нет, то нужно его сделать.

Я ещё раз уточнил, имеет ли он в виду корневую страницу или нет. Всё верно, корневая страница. Я сказал ему, что это бред и я не буду это делать, но не потому, что не хочу или не согласен, а так как это технически невозможно. Это одна страница, нет смысла делать редирект с самой на себя. Чтобы исключить все возможные недопонимания, я предположил, что все эти сеошники (миллион леммингов не может ошибаться) имеют в виду то, как посторонние сайты ссылаются на его сайт, то ли через <a href=”http://example.com”>, либо же через <a href=”http://example.com/”>, но это уже, увы, лежало не в моей власти, и ему пришлось бы обращаться ко владельцам ссылающихся сайтов.

— Вот-вот, — ответил клиент, — как раз это и не в моей власти тоже, и чтобы не было разницы, нужно сделать этот редирект.

— Ёбаный хуй, НЕ МОЖЕТ ТАМ БЫТЬ НИКАКОГО РЕДИРЕКТА! Это одна и та же страница, я показал это, я могу сослаться на спецификацию протокола HTTP, могу даже сам отуда найти нужные выдержки и процитировать.

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

И ещё одно лирическое отступление. В HTML ссылки на сторонние сайты (домены) оформляются только с указанием протокола: <a href=”http://example.com/”>. Если протокол не указан, то клик по такой ссылке приведет на какую-то страницу внутри этого же домена. То есть <a href=”example.com”> на сайте http://foo.com приведет на страницу http://foo.com/example.com, либо на http://foo.com/bar/example.com, зависит от некоторых обстоятельств, не особо важных для нашего вопроса.

Трагичность была в том, что эти два секрета фигурировали в рамках одного повествования. Так что откровенный долбоебизм второго напрочь подрывал авторитет всех остальных. И тут у меня внутри что-то ёкнуло:

— Слушай, — говорю клиенту, — а я так понимаю, что следующим шагом ты меня попросишь…

Я не успел договорить, последовал ответ:

— Да-да, раз уж ты не хочешь [ёбаный хуй, я не хочу. Я не могу, этого сделать, это технически невозможно, это глупость — прим. автора] редирект с главной страницы «без слеша» на «со слешем», то сделай тогда редирект с example.com на http://example.com.

Я сделал фейспалм, сказал, что вторая просьба — ещё больший добоебизм, чем первая, хотя его уровеь в первой и без того превысил все разумные и неразумные меры, в паре фраз сказал всё, что я думаю о сеошниках вообще, и об авторах конкретно тех двух рекомендаций  в частности, объяснил, что дальше я, к сожалению, не могу продолжать диалог, поскольку могу перейти на личные оскорбления, сослался на то, что мне надо остыть, выпить чайку, подумать о бренности бытия и свалил.

Сеошники и без того живут в мире предположений, — ну не публикует гугл свои алгоритмы ранжирования, такова жизнь, увы, но спрашивается, какого хуя гадать о тех вещах, которые однозначно описываются соответствующими спецификациями? Just read the fuckin’ manual.

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

Верх наглости

Верх наглости — это писать пост на свой блог во время митинга с клиентами (что я сейчас и делаю). Присутствующих трое — я со свой стороны, и директор с менеджером со стороны клиента. Митинг проходит в кабинете у директора.

Следующий шаг — просмотр «Доктора Хауса». Или игра в OpenTTD.

Техзадание

Итак, мы пришли к выводу, что для выполнения некоего проекта нам нужно техзадание.

В такой ситуации я сразу же отбрасываю мысли о том, что клиент его составит сам. Он этого не сделает, так как не может физически. Он не владеет предметом (поэтому он к нам и обратился), и он просто не знает о том, что для нас важно, а что нет. А если и попытается, то от такого техзадания пользы будет немного. Например, для проекта со сложной бизнес-логикой дизайнер может прислать ТЗ, в котором будут описаны шрифты, цвета, размеры и тултипы на кнопках. Будет ли от него польза? Да никакой, разработка развалится еще до того, как дело дойдет до оформления страницы.

Техзадание нужно написать самому. Включить его в смету, в накладные расходы, неважно. Но написать его надо самому — для себя же. У нас уже есть информация от клиента о проекте. Отлично — надо спроектировать результат в техзадании. Открываем Google Documents, создаем там текстовый файл, расшариваем его с клиентом и начнаем там писать то, что впоследствии будет перенесено в код. Можно прямо в терминах MVC — чтобы проще было реализовывать.

Важно. Гугл-документ клиент прочитает и поймет, в отличии от UML-диаграммы, которая всё-же рассчитана на бездушных программистов.

Итак, модель User. Пара слов для клиента о том, что юзер — это зарегистрированный пользователь нашего сайта. Список свойств. Настоящее имя, — возникает логичный вопрос, как же хранить имя, которое моет состоять из собственно имён-фамилий, а также отчеств, титулов и прочей аттрибутики? Логично будет задать этот вопрос клиенту. Ставим там комментарий (Ctrl-Alt-M) и задаём в нём вопрос, отом, какие у клиента требования к имени, и как нам следует поступать с ним и сопровождающими его аттрибутами? Дальше, свойства. Удаление юзера. Ещё один вопрос, а что нам делать со всем тем, что юзер наплодил за время своего существования? Удалить, разлинковать, либо оставить. пометив что тот юзер уже удалён? Ещё один комментарий, и ещё один вопрос в нём.

Когда в нашем прототипе ТЗ будут расписаны, пусть даже, основные модели, на полях уже останется куча вопросов. Сообщаем об этом клиенту. Обязательно объясняем прямым текстом, что там вопросы и логические неувязки, которые обязательно бы всплыли если бы мы начали разработку без технического задания (и это — чистейшая правда), и тогда пришлось бы много чего переписывать. Клиент отвечает на них, мы обрабатываем его ответы и продолжаем процесс до получения такого результата, который нас устроит.

В процессе получения информации очень помогает вопрос: «Как вы это будете тестировать при приёмке?». Желательно полученную методику также занести в ТЗ. Затем — контрольная точка. Говорим клиенту: «Этим ТЗ мы будем отбиватья от вас, если вы захотите внести изменения в проект. Точно всё ок?». И если всё ок, то ТЗ экспортируется в PDF и формально согласовывается с клиентом. Уровень формальности зависит от клиента, — можно и просто по почте послать, а иногда следует распечатать и скрепить подписями, печатями или даже кровью (нужное подчеркнуть).

В чем плюсы такго подхода к составлению ТЗ?

  1. Сразу же отсеиваютя неадекватные клиенты.
  2. Мы, в результате, таки, получаем ТЗ к проекту.
  3. Мы делаем полный «проход» проекта, выявляем в нём все сомнительные места, логические неувязки, получаем к ним разъснения, и согласовываем решения с клиентом.
  4. Нам проще объяснить почему та или иная идея усложнит реализацию.
  5. ТЗ написано нами и защищает прежде всего наши интересы. Разумеется, клиент проследит, чтобы там были все затребованные им фичи, но все эти фичи уже будут описаны и проработаны нами.

Из недостатков — на это уходит время, которое, впрочем, окупится сэкономленными нервами.