bash.im ithappens.me zadolba.li

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

314

Яваскрипт мы есть не будем

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

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

Разговор получился таким:
я: Привет! Ты сильно занята? Вопрос есть.
она: Нормально, давай.
я: Вот думаю, что с меню делать...
она: На javascript? Высылай код, посмотрю!
я: Нет, я о другом - горячее там, салатики...

273

Темная сторона Саппорта

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

Оказалось, что новый клиент браузерный. Помимо его практически полного несоответствия инструкции со скриншотами с сайта другого, ныне покойного банка, была еще как минимум одна проблема: как из 1С выгрузить данные для отправки по инету? Звоню в Банк - нам нужен текстовый файл из 1С и как его достать не знаем. Ступор в трубке. Истинные Гуру. Ни тебе инструкции, ни понимания процесса, ни клиент-ориентированности.

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

Бухгалтерия тихо воет. Надо работать. Кое как договорились с банком.
Они отправили мне контакты фирмы, которая с задачей справилась.
Оказывается, все решается тривиально, в одно предложение, нужно просто четко знать возможности 1C.

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

222

Внучка за бабку, бабка за дедку, дедка за репку

Живу в Израиле. Делаю сайты.
Заказываю некий модуль для %frameworkname% у местного ивритоязычного фрилансера. Через месяц получаю готовый, проверяю, вроде работает, расплачиваюсь. Через пару дней обнаруживаю глюк, решаю починить сам. Читаю код и вдруг вижу:

$sysvar = str_replace($chto, $nachto, $parm); //vot blya!

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

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

А я-то ещё удивлялся, почему такой простой проект у первого отнял месяц.

211

Use SVN, Luke!

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

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

Утро.
Захожу на сайт.
%#@!

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

- А может это потому, что я оставила открытыми окошки DreamWeaver'а и с утра сохранила?
- ...
- Не надо так на меня смотреть.
- ...
- Ты чего молчишь? Скажи хоть что-нибудь! Цензурное.

207

Это было неописуемо!

Как-то раз писал свой собственный фрэймворк на PHP. Разработал архитектуру. Запрограммировал основные компоненты. Все протестировал - работает замечательно. И тут, значит, приходит заказ - написать CMS для простенького сайта. Решил поднять на этом самом фрэймворке. Все было замечательно, но в одном месте потребовалось обратиться на самый низкий уровень за значением, в результате чего родилась вот такая, поражающая своей информативностью, строчка кода:

$result = $cur_obj->values->value->value->get_value();

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

$result = $cur_obj->values->value->value->get_value(); // ЫЫЫЫЫ!!! =8]

Так и сдал, заказчику.
Если кто будет поддерживать сайт и встретит это творение, знай брат, я не специально...

201

Но дело не в этом!

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

На форуме %sitename% в разделе по MS Access человек с проблемой: есть Accessовская база, он делает простую страницу доступа к ней. Локально она открывается, по сети - нет. Ему советуют изучать Perl, PHP, поставить Apache...

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

172

Исправление

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

Накануне вечером ему начали названивать клиенты: "У нас нет интернета!". Он сначала пытался пинговать сервер наш, так как мы обеспечивали интернет некоторым клиентам. Потом приехал, проверил всю сеть, позвонил людям насчет удаленного сервера. А все это время ему продолжали звонить....

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

Пришлось изображать кота из второй части Шрека.

169

С точностью до миллиметра!

Только что закончил правку javascript-файла. Делал это "по-быстренькому", то есть прямо на сервере. Правил редактором mcedit (он умеет работать с файлами по ftp). Часа через 3 добился нужного результата. Пора возвращать файл на историческую родину, то есть на локальную машину.

Жму F5 в mc (в одной панели - локальный каталог, в другой - ftp). Вылезает вопрос "Заменить файл ${FILENAME} размером 3096 на файл размером 3096?". Это что же такое? Правил, правил и где результат? Даты, правда, отличаются, и все-таки стало как-то неуютно. Стал проверять, выяснилось, что действительно, после нескольких часов правки, многочисленных убавлений и добавлений размер файла стал таким же, как до ее начала с точностью до байта.

138

Последняя ошибка

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

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

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

На вопрос, что же случилось, хватает за руку и тащит к компьютеру. Открывает давеча отредактированный напарником проект, открытый и официально анонсированный в сети и тычет пальцем, а там... там логин и пароль администратора домена (а это - доступ к 13 локальным серверам и 10 удалённым в регионах, доступ ко всем админкам интранета - щёлкнуло у меня в мозгу), в коде ошибки framework`a. В двух других им редактированным проектах такая-же фигня.

Оказалось, что этому герою ничего лучше не пришло в голову, как включить в web.config строчку <identity impersonate="true" userName="****\***" password="*******" />, для того чтобы писать в файлы на сервере, и при этом он умудрился сделать ошибку в написании домена, что и вызвало ошибку. Вывод ошибок он, конечно же, не закрыл.

Возвращения напарника из отпуска мы все ждали с нетерпением.

Люди - если ваша программа компилируется, это не значит что она работает!