[bash.im] [IT Happens] [zadolba.li]

IT Happens

Клиент и саппорт. Разработчик и заказчик. Программист и программа. Вести с фронтов.
807978• • •7675747372• • •321

#8583: Коммит лыж в ёлку

22 февраля 2012, 11:00

рейтинг: 1133

Суббота. Разгильдяи отрабатывают накопившиеся за неделю опоздания (у нас с этим легко, лишь бы к концу месяца время сходилось). Лезут в SVN и обламываются. Вызванивают админа, вызванивают других сотрудников, наслаждающихся выходными, и понемногу выясняют причину. В пятницу вечером программист, уходивший последним (целый начальник отдела), своим апдейтом поломал дерево SVN. Делать нечего — приехал админ, восстановил из четвергового бэкапа. До виновника дозвониться не смогли: уехал кататься на лыжах.

Понедельник. Виновник весь в синяках и хромает. Оказалось, в субботу врезался в ёлку. Сломал и лыжи, и дерево.

 

#8519: Я Д’Артаньян — как страшно жить!

15 февраля 2012, 09:00

рейтинг: 762

Верно, вокруг много идиотов. Программерам, юзерам и техподдержке есть кого и за что поругать. Но интересно: кого будем ругать, если ругать некого?

Кого ругать-то, если программа изначально писалась под Windows 3.0, а сейчас взята с полки и перенесена на Андроид в силу малых запросов к памяти? Человека, который в 1993 году не знал АRM-архитектуру? Так некоторых и в живых-то нет…

Кого ругать за портированный с Фортрана алгоритм интегрирования дифуров Бурлиша-Штойера, в котором стопицот GOTO и ни одного коммента? Комменты на перфокартах пробивать — западло, они только замедляют загрузку и попусту тратят драгоценное машинное время. Такой был тогда кодстайл. Если считаешь себя умным — перепиши без GOTO и с комментами. В свободное время, поскольку в рабочее надо решать другие задачи.

А вот продажников, которые загнали суперпродукт в Таиланд, можно и поматерить. Под этим самым «ахренеть каким юниксом» все имена файлов кодируются в UTF-8. И когда в нескольких вложенных тайских директориях лежит тайский документ, из каждого тайского символа (включая диакритику в три этажа) получается три-четыре char, и оно не лезет не то что в 256 байт, а в что ни на есть MAX_PATH, который 4096. Правда, из тайских денег тебе платят зарплату, но это можно опустить.

Всю эту галиматью я пишу исключительно с одной целью. Здравая самоирония и самокритика свойственна нормальным спецам. Мания величия и уверенность в собственной непогрешимости — удел дилетантов. Поэтому малость задолбали истории на тему «я гений, а все вокруг идиоты». Хочется вспомнить старую пословицу: «Если всё вокруг воняет дерьмом, может, это ты сам обделался?»

 

#8504: Мои маленькие кривокодики

13 февраля 2012, 11:00

рейтинг: 799

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

При установке необходимо отредактировать конфиги в XML. Господа, кто вам сказал, что XML подходит для этого? Перемещаться внутри облака тегов в поисках начала и конца, особенно если конфиг «всё в одном» — та ещё задача. Что, какой специальный редактор? Софт устанавливается на сервер, что стоит в бункере, и на каждый байт там требуется свидетельство о сертификации на гербовой бумаге. Что помешало посмотреть, как это делается вот уже более 30 лет в UNIX-системах?

Установка внезапно валится на одном из этапов. В мануале: «Укажите путь к файлу в конфиге». На деле в половине модулей эта настройка игнорируется, а путь тупо забит в коде. Да, это быстрее, чем парсить XML-конфиг, — а я что говорил?

В программе сотрудник привязан к двум отделам — такое ТЗ дал менеджер проекта. Но вот теперь нам надо к трём отделам. Что? Нужно полностью пересматривать структуру базы? А почему было не сделать это с помощью двух таблиц и связки между ними? Думали, не нужно? Сложно спорить. Программисту надо ставить задачу чётко, он рассуждать не умеет. Может, и код за вас написать?

Разработали новую версию? Ну зачем, зачем было менять структуру конфига? Это же теперь переносить все настройки со старого в новый. Кстати, как там с путями? Берётся везде из конфига, окей. А почему не работает? Путь слишком длинный, больше 256 байт? И что? Ограничение Виндоус? При чём тут Виндоус, у нас ведь Джава на Соляре? У вас Виндоус, вы думали, так везде?

Не хватает производительности базы, надо таблицы партиционировать. Что такое партиционировать? Это вы меня сейчас спрашиваете, разработчики? Подсказываю: вевеве-точка-гоогле-точка-ком. Индекс слетает, говорите? Подсказываю… А-а, догадались сами?

Логи где? Нет, вон в тех стапятиста мегабайтах сами ковыряйтесь. Где логи «пришло-ушло-упало»? Да, надо сделать. Да, именно так. Нет, стопицот не надо. Не получается? Подсказываю: гоогле-точка-ком, шестая ссылка, читать, делать. Мне за вас сделать? Хорошо, зарплату перечислите авансом или потом?

 

#8500: Бородач с тысячью имён

13 февраля 2012, 09:00

рейтинг: 1207

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

Придумали решение, чтобы обеспечить народ приличной зарплатой.

Управление IT теперь называется «управление по менеджменту в сфере корпоративных информационных технологий».

Инженер-программист — «менеджер внутрикорпоративных программных продуктов».

Инженер по проектированию и прокладке сетей — «менеджер по решению проблем корпоративных сетей».

Центр управления сетями — «отдел менеджмента корпоративных сетей».

 

#8499: Но лучше индуса

13 февраля 2012, 09:00

рейтинг: 1135

Году в девяностом мы, студенты, проходили практику на машинках «Ямаха КУВТ». Писали на Паскале; сообщения об ошибках были переведены питерским универом.

Забыли поставить точку после последнего end. Текст сообщения об ошибке вывел из строя всю группу минут на пять:

Нежданный конец файла хуже татарина.

 

#8487: Гений: переаттестация

10 февраля 2012, 16:45

рейтинг: 843

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

Ну, парсеров-интерпретаторов за 25 лет я написал немало, включая собственные ActiveX скриптинг-языки и парсер PDF. Не затруднит написать и ещё десяток — Yacc не забывается. Но если меня просят написать «2 + 2», я пишу «2 + 2», а не универсальный всемогутер с конфиг-файлом на пять мегабайт XML. Почему? Ошибки в коде будут всегда, а отлаживать визивиг-редактор формул несколько сложнее, чем printf("%d", 2+2), не находите?

Степень сферичности коня в вакууме тоже надо ограничивать. У меня в работе одновременно до десятка компиляторов и операционок, так что найти, где упадёт самая «несферичная» и устойчивая программа, я могу за пять минут. На 50% машин она просто не соберётся.

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

Опять-таки, в настройки можно вынести всё, включая алгоритм, и из программы получится интерпретатор кривого самопального скриптового языка без чётких правил и грамматики, который только по недоразумению считается конфиг-файлом. То есть задача программирования перекладывается на пользователя, и это программирование без IDE и отладчика по недоразумению будет называться «правкой конфига». И бедный юзер будет копаться, портить данные, мега-универсальная программа будет ломаться, а программеры будут её чинить. А автор чудо-кода уволился, искать смысл в 300 мегах исходников на С++ — дело неподъёмное. Ни в чём не повинные молодые программисты просто обязаны городить костыли, лишь бы не падало. Их не ругать, а жалеть надо. Напиши гений что-нибудь попроще — глядишь, и исправления были бы адекватнее. Вот и выходит, что польза от всемогутера вполне компенсируется в ближайший год поддержкой того, что он написал.

Я не пишу абсолютные пути, но делаю только то, что просят. Я чётко знаю, в каком вакууме и с какой сферичностью могут работать мои программы, и не строю иллюзий. Я ас в написании костылей, потому что переписывание 300 мегов как-то занимает больше времени, чем точечные правки. Правда, костыли эти потом коллекционируют и собирают в библиотеку под именем «portability layer».

Просто я не озабочен поддержанием статуса гения.

 

#8476: Смертельная битва на костылях

9 февраля 2012, 12:45

рейтинг: 984

Я тот самый нелюбимый быдлокодерами программист, который пишет не «2 + 2», а интерпретатор формул (благо опыт позволяет это сделать быстрее, чем некоторые кодеры напишут и отладят свой «2 + 2»). Не пишу хардкодом параметр, который «никогда-никогда не будет меняться», а сделаю настройку. Могу вместо костыля плюнуть, потратить пару часов, но переписать так, чтобы не требовалось постоянно латать.

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

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

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

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

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

 

#8466: Котополис

8 февраля 2012, 12:45

рейтинг: 1124

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

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

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

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

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

Админ игры, если ты это сейчас читаешь — сделай, пожалуйста, откат на вечер воскресенья!

 

#8461: // TODO: coffee

8 февраля 2012, 09:00

рейтинг: 1013

Вычитываю чужую прогу, которую надо немного «подкрутить». Коммент в коде:

// Ну что, брат программер, устал рыться в чужих исходниках? :)
// Cочувствую… Cходи кофе выпей, может, полегчает.

 
807978• • •7675747372• • •321
 
новости
15 и 16 мая 2012 года в Москве состоится четвертая по счету CloudConf — профессиональная конференция для российских разработчиков, провайдеров и пользователей облачных технологий. Мероприятие проводится с 2010 года, организатор — компания Softline. Участников ждут новые выступления международных и российских докладчиков, специализированные секции, а также вручение премии Cloud Award 2012.
текст или номер истории
реклама
обратная связь
Хотите разместить рекламу?
Информация для рекламодателей.

Вопросы, предложения, что-то не так на сайте? Пишите в саппорт!
на сайте
Утверждено: 9105
Сегодня: 5
В рассмотрении: 2239
тэги
лучшие последних семи дней
10: #9173 (1486) - т__т
статистика
Рейтинг@Mail.ru