bash.im ithappens.me zadolba.li

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

11579

Заметьте, никаких веществ

Как-то на работе искал какую-то информацию в интернете. В своих странствиях по паутине вышел на простенький на вид сайт: серый фон, чёрный Arial, просто пачка статей на какую-то тему. Но глаза не могут сосредоточиться на тексте. Присматриваюсь и вижу, что фон куда-то ползёт. Проморгался. Теперь плывут какие-то пятна. Хотя нет. Вы видели анимацию амёбы? Стоп. Нет. Скорее лёгкий шум какой-то. Опять нет… Теперь опять плывёт. Да что за хрень!

Отвожу глаза к окну (обычному, в стене которое) на пару минут. Смотрю на монитор — опять чертовщина. Открываю другой сайт — нормально. Опять этот. Плывёт! Открываю код. Ничего необычного, ни скриптов, ни графики. Стоп! Фоновая картинка, на стол её! Открываю в Пейнте (другого ничего нет) — плывёт! Обычный JPEG. А на фига серый квадрат сажать в картинку?.. Увеличиваю. Вот он, корень зла!

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

11535

Беру деньги!

Коллеги-фрилансеры, берите предоплату! Хотя бы потому, что она вас дисциплинирует и заставит чувствовать себя кому-то должным, не переваливая за дедлайны. Тем самым вы сами себя поставите в рамки, которые наверняка оговорены с заказчиком.

Если этот абзац нашептал мне капитан Очевидность, то вот жизненная история. Где-то в июле знакомый предложил мне перевести сайт небольшой компании с проприетарного движка на CMS с открытым исходным кодом. Мотивировано было тем, что разработчик в столице, на всякие контакты с вопросом о доработке детища идёт не очень охотно и просит денег. (Последнее особенно странно, да?) Войдя в положение и оценив объём работ — довольно простой сайт с небольшим каталогом товаров, — я встретился с менеджментом организации и приступил к работе, получив аванс примерно в треть от суммы сделки.

Прошёл месяц. Переверстал шаблон, перенёс контент, и всё это весело крутилось на моём VDS по временному адресу. Внесли некоторые доработки в шаблон, и вот тут мне надо было сказать, как в телешоу «Поле чудес»:

— Беру деньги!

Но я так не сделал и сейчас являюсь героем этой истории.

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

Как говорится, «чем дальше в лес, тем толще партизаны». Тут у организации совершенно внезапно происходит ребрендинг. Один из менеджеров довольно долго промывал мне уши, что они поработали с бизнес-консультантами, и теперь все будет по-другому: новые стратегии, новые горизонты… и новое оформление сайта.

Вот тут мне точно стоило бы остановиться и взять хотя бы деньги за то, что я уже сделал. Но нет, я же тот ещё добряк. Подумал: «Ну, всякое бывает…» Дождался, пока на почту упадёт новый макет. Увидел и понял, что мне не просто придётся доработать существующий шаблон, а вообще с нуля написать ещё один.

Дальше началась какая-то ромашка. Когда шаблон был написан, прошло несколько стадий доработок в духе: «Вот тут переделай! А, нет, оставь старый вариант! Нет! Верни новый!..» Всё это время я терпеливо, хоть и периодически скрипя зубами, выполнял хотелки заказчика. Раз взялся, надо же доделать…

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

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

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

— тот и этот элементы оформления не нравятся (стоп! Вы сами сказали, что они должны быть такие!);

— и вообще, а что это вы так долго всё делаете (а вы зачем уже раза три кардинально изменили ТЗ?)

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

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

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

11470

Кривые руки на высшем уровне

Я уже давно начал думать о том, что программисты, кодеры, патчеры и «все эти люди» ушли в теорию слишком глубоко. Об этом говорит не только лента новостей с сайта с клубком нитей на логотипе, но и количество багов, которое я периодически нахожу, а также места их обитания.

Начнём с простого. Главная страница правительства США. Не-ет, я не преувеличиваю — usa.gov на главной странице имеет глупый баг. Есть секция новостей. Там должно быть три новости. Есть стрелочки влево-вправо, переключатель новостей внизу на три позиции. А вот новости всего две. Если мы нажимаем на третью позицию переключателя, тот показывает нам пустоту и не позволяет вернуться каким-либо способом, кроме F5. О, а как замечательно отрисовывается этот переключатель в трёх браузерах! Один рисует сразу три состояния кнопки, другие два рисуют картиночку со смещением. Вот уж действительно — сократили бюджет страны, денег даже на хорошего веб-программиста или тестера не нашлось.

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

В связи с этим у меня возникает целый ворох вопросов. В чём причина такой жести? Кривое ТЗ? Узкие сроки? Или просто повсеместная скорость внедрения «принципиально новых технолагий» в продукт? Или просто концентрация криворуких?

11462

Как русская «с»

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

Обратились к нам с несложным заданием: написать новый шаблон для интернет-магазина и продвинуть несколько категорий хотя бы на пятую страницу Яндекса. Заказчик — дамочка, которая живёт этим магазином, холит и лелеет его. Сайту три года, в поисковой выдаче его редко где найдёшь, разве что по некоторым запросам на тридцатой-сороковой странице.

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

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

Раньше таких проблем не было. В шоке перерыли всё, но ничего не отыскали. Я написал скриптик для проверки <title> страницы, метатегов и контента, который искал ключевые слова и выдавал процент соответствия. Скрипт сообщил, что ключевое слово не совпадает с названием страницы и названием товара. Зашёл вручную, проверил — всё окей…

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

Мы были в шоке. Теперь в софте появилась новая проверка.

11455

Грядёт новая школота

Раз уж пошёл холивар про олдскул, добавлю свои пять копеек. Скажу сразу: я такой, что олдскульнее сейчас редко бывает. Много ли из вас помнят перфокарты? А у меня в голове до сих пор сидит Фортран и «GO.SYSIN DD *», хотя я уже стал забывать, что это такое.

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

Два года назад форум нашей фирмы переехал на другой сервер, и поменялись ссылки. Было www.companyname.ru/productname/forum, стало productname.company.ru/forum. Старые ссылки на форум не работают. Ну, те, что на наших сайтах, поменять не сложно, а вот те, что по всему инету торчат, — хрен поправишь. Цитируемый у нас форум. Хоть и редко, но будет случаться. Нужен редирект. Бригада разработчиков сайта на охренеть каком «дотнете» просит три недели на исправление ошибки. В какой-то XML правила прописать, потестить, подумать… Я, хоть от инет-разработок отошёл, статус 302 помню, поэтому взрываюсь как бомба, ибо нефиг конопатить мозги. Спрашиваю, есть ли у них скрипт, который вызывается при запросе несуществующей страницы. Естественно, есть. На голом Си пишу CGI-прогу, смысл которой — с помощью scanf считать строку, проверить, заменить одну подстроку на другую и обычным printfвыдать:

HTTP/1.1 302
Location: blah-blah-blah

Любопытные могут RFC почитать. Попробовал — работает. Дальше — юмор. Тимлид этих .NET-разработчиков не понял, о чем идёт речь. Решение отклонили и пошли своим путём. Я до сих пор не знаю, битые у нас ссылки или нет.

Задачка одна, школы разные. Поэтому пути решения различаются.

Ребята «новой школы»! Я не осуждаю ваше желание зарабатывать деньги. Я даже ратую за то, чтоб беречь работу до пенсии. Только не трогайте «работу на результат». Это мы могли во вред себе (одна перфокарта — один рубль) оптимизировать программу, а для вас результат — зарплата. Так что не смешите.

11427

Лицом к людям

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

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

Будьте добрее, и люди к вам потянутся.

11414

ЭйчтитипиГорТранс

Работаю я недалеко от центра города, а живу на окраине. На работу добираться либо с пересадками, либо на трёх маршрутках с номерами 200, 404 и 500. Я не знаю, имеет ли владелец этих машин какое-то отношение к IT, но:

Маршрутка номер 200 — чистенький, уютный «форд», ни разу не сломалась, а водитель никогда не нарушает правил.

Маршрутка номер 404 — чисто, уютно, но водитель никак не может запомнить маршрут. Постоянно спрашивает дорогу у пассажиров или коллег по телефону. Пару раз завозил не туда.

Маршрутка номер 500 — грязная, ушатанная «газелька». Постоянно ломается, частенько приходится дозаправляться прямо на маршруте. А ещё у неё сложный маршрут, поэтому она всегда переполнена. Стоит ли говорить, что на ПДД водила (водителем это назвать не получается) внимания не обращает?

А ещё есть 304-я. Никогда не ней не езжу, потому как приходится пересаживаться на полдороги.

Третий год пытаюсь понять, случайность или нет.

11388

По старой памяти

Изменил дизайн сайта — в том числе две картинки заменил, но имена файлов картинок оставил прежними. Запускаю. Всё нормально, а в Хроме — старые картинки. F5 — ноль на массу. Очистил историю Хрома — всё в порядке, картинки новые.

А потом я вспомнил про целевую аудиторию — и переименовал изменённые картинки от греха подальше.

11261

Есть проблема: нет проблем

Делаю сайт на любимой CMS — WordPress. Добавляю плагин Really Simple Issue Tracker и вижу такое вот сообщение:

Проблемы не найдены! Создайте проблемы или настройте параметры своего виджета. :-)

Делать было нечего — пошёл создавать себе проблемы…