bash.im ithappens.me zadolba.li

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

5506

С соцсетью и видами

Долгое время уже удалённо занимаюсь маленькой веб-мордой простаивающей организации. Развиваться хотят все, но сваливают понятно на кого.

— Сделай нам интеграцию веб-чата в сообщения организации!

Всё бы можно, но сообщения эти крутятся только на Windows, а исходники закрыты.

— Переделай сайт! Хотим %CMS%!

Ребята, а на хрена вам оно? Что вы собираетесь обновлять? Вы ведь даже не поставляете ничего.

— Сайт не грузится! Сделай всё, как надо!

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

— А сделай нам ещё сюда соцсеть.

И зачем? Думаете, это поможет вам стать интереснее?

— Повелеваем выставить на главную страницу панораму нашего города.
— А саму панораму-то дадите?
— Ты админ, ты и делай! Ничего не знаем!

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

— Куда ты там пропал?! Сделай нам всё и сейчас же!

А что ещё делать, если я с этого имею растраченные нервы и нулевую зарплату?

5480

Что за сарай?

Довольно долгое время занимался мелким ремонтом компов на вызовах. Среди клиентуры завелось много полезных знакомых, и один из них как-то обратился ко мне: «Дело есть». Расспросив, я выяснил, что нужно сделать одному депутату сайт. Ну, сайт — так сайт.

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

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

— Чё это за сарай? На кой он мне тут нужен?
— Это просто для веса! Его мы заменим на то изображение, которое нужно вам.
— А на х#я он тут нужен-то? Зачем мне этот сарай?

С пятой попытки объяснил, что сарай убирается и заменяется на что угодно.

— Чё тут какие то бабочки делают? На кой мне они сдались?
— Да их тоже тут не будет! Я их разместил, чтобы вы могли увидеть, какого размера изображения будут. Можно больше, можно меньше.
— Ладно, с бабочками понял.

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

— Для начала мне нужны изображения.
— Дык возьми фотоаппарат да сфотографируй!
— Я ж не фотограф!
— Сайт ты делаешь — вот и фотографируй.

Проехались по местам, нащёлкали кадров. Я всё это дело отфотошопил и подогнал под размеры нужные, но оплаты за это дело так и не увидел.

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

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

5459

Динамично донельзя

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

$ find ./ -type f -exec sed -i 's/, (925)5xx-xx-x3//g' {} \;

Почему разработчик не может просто описать один шаблон и подключить его везде, где нужно? Сайт работает на MODx, однако его странички — обычные PHP-файлы, разбросанные по подкаталогам. Зачем нужна CMS вообще в таком случае? Неясно. При этом в базе данных 40 таблиц.

Прекраснее же всего раздел «Портфолио». В скрипте raboti.php около сотни строк следующего вида:

<A href="raboti.php?pics=fotos/30.jpg" title="Увеличить изображение">
<img src="/fotos/s30.jpg" alt="образец №30">
</A>
<A href="raboti.php?pics=fotos/31.jpg" title="Увеличить изображение">
<img src="/fotos/s31.jpg" alt="образец №31">
</A>
<A href="raboti.php?pics=fotos/32.jpg" title="Увеличить изображение">
<img src="/fotos/s32.jpg" alt="образец №32">
</A>

5440

Не хакер, но близко

Разрабатываю сайты. Звонит клиент:

— Алло, это веб-студия %studioName%?
— Да, здравствуйте!
— Мне тут нужно доделать один сайт. Сколько будет стоить? Только я сразу скажу, что я этот, как его, хакер. То есть, э-э-э, ну, не хакер, конечно, но близко — хорошо разбираюсь. Мне сделали сайт, но его нужно поправить.

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

— А вы на Джумле программируете? А то мой сайт на этом языке…

5252

Чтоб тебе всю жизнь для IE6 верстать!

Из жизни фрилансера: несколько законов, применимых к веб-программированию.

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

На компьютере самого главного начальника будет использоваться IE6. Компьютер будет подключён через кеширующий прокси с самой агрессивной политикой. Будет включён антибаннер. Политикой безопасности домена будут запрещены куки, плагины (например, Flash) и отключён JS. Главный будет проверять работу суперпупервебдванольного сайта именно в этом браузере.

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

5212

Сайт закрыт на ревизию

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

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

— Это бывает. Через час всё будет нормально.

«Как так: вы берёте деньги за рекламу на портале, за аккаунты, но при этом позволяете, чтобы сайт падал?» — подумал я.

Прошёл час. Сайт всё ещё лежал. Босс, почесав репу, заметил:

— Странно... Обычно через час начинал работать.

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

После многочасового молчания руководитель изрёк:

— Я понял, в чём дело! Сегодня Яндекс обновляет поисковый рейтинг сайтов, и на время обновления он отключил наш портал.

Я пулей выскочил из кабинета, чтобы просмеяться. Девушек отпустили домой; я ушёл сам с намерением не возвращаться. Позже я узнал, что сайт зависал неоднократно, и каждый раз во всём был виноват злостный Яндекс.

Знаете, что самое удивительное? Статья о методах и опыте продвижения сайтов моего бывшего начальника вышла в финал конкурса, проводимого уважаемым мною блогом. Яндекс становится опасным — будьте осторожны!

5210

Почему директор дрожит?

Подрабатываю созданием сайтов. Текущий клиент — небольшой холдинг местного значения. Работа подходит к непосредственному наполнению сайта: движок крутится, шаблоны натянуты, дизайн в общих чертах утверждён. Вдруг звонок: «А нельзя ли сделать фон там-то посветлее, добавить текстур, а вот тут тень наложить, а вот там вот градиент?» Недоуменно смотрю на свою работу. Текстуры везде есть, где надо — градиенты, и тени тоже отбрасываются, как и положено. Предлагаю звонящему обновить страницу. Потом предлагаю повторить, но с нажатым Ctrl. Лезу проверять имена графических файлов: может, под баннерорезку попали, вот и нет ни теней, ни текстур?

На том конце провода продолжают: «И фотографию директора надо переделать. Она очень тёмная!» Смотрю на фотографию, вижу благообразную тётушку в розовой шали со светлыми волосами. Из тёмного на фото — только зрачки. Тут начинает играть моё сисадминское прошлое. «Скажите, — спрашиваю, — а вы сидите перед каким монитором? Который сразу напротив входа?»

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

5200

Сунем блок поперёк

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

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

Я долго бился головой обо всё твёрдое, что попадалось на пути. 50 ошибок и 300 предупреждений в HTML только на главной странице я ещё мог понять. Но как, как можно было сделать 70 ошибок в CSS и при этом заставить дизайн отображаться правильно? В какой стране это писали? Индия явно ни при чём.

5145

Рубли уже не в моде

Попросили меня посмотреть один сайтик, который ну никак не хотел раскручиваться в поисковиках. Для начала скормил валидатору — 200+ ошибок. Так, будет интересно.

Сайт сделан на популярной CMS. Поставил себе демо-версию этого чуда. Дефолтный сайт в комплекте — та же ерунда с кучей ошибок. Ну да ладно, чего там, шаблончики поправим. Шаблончиков насчиталось 85 штук, не считая кучи HTML внутри PHP-кода. Ладно... Сконцентрируемся на основном. Читаем описание шаблонизатора. Переменные:

@productPrice@ — стоимость товара в валюте.
@productPriceRub@ — думаете, стоимость в рублях? А вот фиг там: старая стоимость товара.

И это продают.