bash.im ithappens.me zadolba.li

Веб-разработка

5138

Обречённая с рождения

Рассматриваемое время — с 28 декабря по 4 января, самый разгар народных гуляний. Надо срочно доделать веб-проект с интеграцией со сторонними API.

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

Первое января, я дома, у меня всё ещё не устанавливается. Прошу полуживых друзей и знакомых по аське проверить работу куки у них. Работает у всех, кроме меня. Двое бессонных суток (с перерывами на пиво, вино и шашлыки), тонны прочитанных статей и форумов — нет результата.

Осенило только в ночь с третьего на четвёртое. Думаю, многие уже догадались, что часовой пояс на обоих моих компьютерах был установлен неправильно. Кука добросовестно устанавливалась, а при обновлении страницы благополучно стиралась как неактуальная.

Будьте внимательны, думайте о последствиях — и с Новым годом! Надеюсь, вы его встретили с меньшим расходом нервных клеток.

5083

И ещё немножечко шьёт

Явление первое. Я и клиент.

— Сделаете репорт к веб-шопу в формате CSV?
— Сделаю.

Явление второе. Я и секретарша клиента.

— У меня для вас две новости: хорошая и плохая. Хорошая: ваш репорт работает. Плохая: все заказы изменили статус.

Как же ж так, что ж такое?.. Ведь писал только репорт, в нём ни одного запроса на изменение, исключительно выборка. Ещё раз проверяю свой скрипт. Опрашиваю секретаршу на предмет манипуляций с БД другими сотрудниками. В итоге вспоминаю: для лучшего понимания процедуры я запустил другой репорт в формате XML, написанный моим предшественником. Оказывается, этот репорт заодно меняет статус заказов...

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

5082

Нельзя тебе, тебе и всем остальным

Саппорт хостера. Клиент ругается, что он следовал инструкциям, а теперь не может открыть сайт. Смотрим .htaccess, а там прелесть:

Order Deny,Allow
Deny from XXX.XXX.XXX.XXX
Deny from XXX.XXX.XXX.XXX
Deny from All

5021

Печально я гляжу на наше поколенье

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

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

Каков же типичный сайт теперь? Максимально много интерактива. Никакого чистого HTML — это моветон. Только исполняемый код, а ещё лучше — Flash-содержимое. Да здравствуют уязвимости во Flash Player! Сверхнавороченное горизонтальное меню, в котором из-за ограниченной ширины экрана представлено как можно меньшее количество пунктов. Не дай бог тебе выйти на такой сайт с хоть слегка устаревшего или мобильного браузера: работать ничего не будет (даже поиск), а навигация окажется максимально усложнена. В основной части главной страницы — гигантская картинка на весь экран монитора, не несущая никакой смысловой информации, или — ещё лучше — целое слайд-шоу, пожирающее трафик мегабайтами. Чтобы попасть хоть куда-то и мало-мальски сориентироваться на ресурсе, нужно вызывать карту сайта.

Гляжу я на все это с грустью и думаю: неужели кому-то удобно этим пользоваться? Или компания заказала сайт для красоты, а не для удобства клиентов?

5005

Не иди ко мне лечиться, если у тебя «лисица»

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

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

Решил разобраться. Запустил Firefox, заполнил форму на сайте, нажал «распечатать» — появилось окошко загрузки файла-скрипта, который эту форму обрабатывает. Вспомнил свою работу в QA-отделе. Вместо выполнения операции получаем загрузку файла вместо его запуска? Открыл исходник страницы... Всё ясно. Разработчики делали сайт под Эксплорер, использованный метод в других браузерах закономерно косячит. Запускаю IE — система формирует нормальный текстовый файл с номерком. Я-то разобрался, но жалко тех людей, кто не смог воспользоваться современными технологиями из-за лени программистов.

5001

Не гневи небеса

Попросили меня как-то закинуть на сайт страничек и кое-что поправить. Оказалось, что сайт на Вордпрессе, настроек почти никаких нет (или они хорошо прячутся), а весь вывод происходит через PHP. Сам я человек от этого дела далёкий, но отказываться не стал: привычка разбираться в коде на неизвестном языке программирования ещё со времён универа осталась.

Копаюсь в коде: что-то удалил, что-то перенёс... Ползаю по comments.php, выделяю небольшой кусок текста и натыкаюсь на надпись:

<?php endif; // if you delete this the sky will fall on your head ?>

Проверять не рискнул.

4982

Чё, самый умный?

Недавно подруге нужно было пройти один онлайн-тест по учёбе — я вызвался помочь. Открываю, значит, несравненную «лисичку», ввожу адрес, логин и пароль. Начинается дикий экшн. Слева — меню, с которого нужно начинать. Пытаюсь нажать на пункт — не выходит. «Лиса» отказывается воспринимать пункты как кнопки и отображает их простым текстом. Вдохновившись историей про регистрацию на Ютьюбе, открываю исходный код — там всё правильно. Сам тест, естественно, так не пройти.

Ковырялся примерно час. Уже сонный мозг выдал логическую цепочку: «Тест по учёбе → учёба → старенькие машинки в аудиториях → Internet Explorer». Решил проверить догадку. Открываю противный Эксплорер, ввожу адрес, логин, пароль и всё такое — работает!

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

4967

Парент парента парентом об парент

Я познакомилась с настоящим индусом. Правда-правда. Этот человек:

— пишет код в кадрах кадров кадров символов — парент парента парентом об парент;

— инициализирует переменные не там, где они используются (используются в первом, инициализирутся в 20-м кадре и на другом слое, но это фигня — работает же), называет максимум в три буквы (и функции тоже);

— никогда ничего не типизирует — зачем?

— знает кучу багов флеш-плеера, которые не встречаются обычным людям, и упрямо делает так, чтобы в проекте на них опять наткнуться (как?);

— при именовании придерживается своей логики: инстансы клипов — маленькими буквами, функции и всё остальное — большими. Констант не встречала — интересно, как он именует их?

— не форматирует код в принципе — а зачем? Между строчками может быть от одного до 15 переводов строки;

— может продублировать один и тот же код пару-тройку раз, в том числе и рядышком;

— делает вложенные функции (не забываем про отсутствие форматирования): три-четыре уровня вложенности найти в коде нетрудно.

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

4943

Больше, ещё больше медведей

Утро понедельника.
Так, посмотрим, что нам наши маркетологи прислали. И насколько срочно? Ещё вчера?! Они с какого дуба рухнули в очередной раз? Ясно, много текста, картинок нет. Отлично, щас за полчасика табличку сверстаем, текст туда загоним — и всем привет, можно заняться основной работой. Вроде отвертелись. Зарегистирировали домен, сваяли страницу, выложили на сервер.

Вечер вторника.
Шеф видел. Наехал почему-то на отдел программирования, а не на маркетологов. @#$, что они нарисовали, то мы и сваяли. Наше дело — код писать, дизайн — не наша головная боль. Они занятые? А мы-то тут при чём? Цвета у них самих изначально траурные, медведя фирменного в проекте нет. Опять нам переделывать? Ага, ещё и фирменного медведя добавить. И цвета исправить. Лезем в сеть за справочниками по колористике и дизайну.

Утро среды.
Отдел программирования на коленке в фотошопе ваяет картинки из того, что удалось вытрясти из маркетологов. Было применено насилие по телефону: долго объясняли маркетологам физику и результаты падения пяти тел по 80 кг с десятого этажа. Вроде что-то получилось: медведь в количестве четырёх морд в наличии. Сваяли, выложили на сервер.

Утро четверга.
Шефу не понравился цвет надписей под картинками и их расположение. Добавили ещё медведей, убрали «лишний» текст. Выложили на сервер.

Утро пятницы.
Хост-админ веселится: страница меняется каждый день, пользователи замучили техподдержку. Шеф сделал в Визио макет, переслал программистам с пометкой: «Вижу так». Недолго думая, переверстали страничку, добавили коричневого вместо красного, заменили зелёный на синий, в тегах автором обозначили шефа. Выложили на сервер.

Утро понедельника.
Сидим ждём...