IT happens. #1-800 - Bash.org.ru
Шрифт:
Интервал:
Закладка:
Развернулся и ушел. Денег не взял. Знакомый админ отпаивает валерьянкой...
#495: Чтоб под руками не мешалось
16 января 2009, 09:00. рейтинг: 795
Пришёл к нам парнишка на испытательный срок. Теория от зубов просто отлетает... А вот как садится что-то делать, вечно что-то отмочит: то в sql where код группы товаров с кодом площадки приравняет, то ещё чего.
Один раз такой случай был. Дали парню написать одну задачу. Сделал, значит, и несёт руководителю отдела на проверку (я рядом сижу). Написал что-то типа:
declare date1 DATE; date2 DATE;
...
select ... into date1 from ......;
select ... into date2 from ......;
select ... where somedate between date1 and date2;
Ему говорят: "Не мучай сервер несколькими запросами, заверни всё в один запрос, а переменные убери" (там это можно было сделать очень логичным образом). Парень подумал-подумал и уточнил: "Ну, одним запросом я сделаю... А куда мне переменные девать?"
Мы с нач.отдела не выдержали и почти хором ответили: "Ну удали, что ли?"
#496: Мал да удал
16 января 2009, 09:00. рейтинг: 2072
Лет 7 назад пятилетнему сынишке директора нашей маленькой конторки по продаже компов был собран компьютер.
Все бы ничего, но парень оказался двольно любознательным и чересчур пристрастился к компу, сутками просиживая за ним.
Отец, дабы отучить чадо от вредной привычки, забирал на работу с собой переходник от мышки. Через какое-то время он все-таки заметил, что сынок в его отсутствие компьютером как-то пользуеться. Долго ходил и чесал репу директор. А выяснилось все случайно: сынишка, нередко посещая сборочную, углядел нужный девайс – переходник, и прихватил его с собой, да не один, на всякий случай.
В нижнем ящике его стола, обнаружился целый склад переходников. Дотумкал в свои пять лет до того, как и какой применять, он сам.
#497: Жития разработчиков
16 января 2009, 16:45. рейтинг: 2881
Лекция по дисциплине "операционные системы".
На большом экране периодически сменяются картинки – лекция на слайдах. Препод объясняет отличия разработчика от пользователя и программиста: "Разработчики скрывают от пользователя ненужные подробности работы аппаратной части компьютера, избавляют нас от детального изучения алгоритмов работы устройств, значит, кто они?".. На слайде медленно грузится изображение православной иконы... "Они святые" – с невозмутимым видом продолжает препод.
#498: SOM: Спасите наши мониторы!
16 января 2009, 16:45. рейтинг: 3123
Работал в довольно большой конторе, преподавал там IT-основы для сотрудников и сотрудниц. В основном, контингент – это бухгалтеры и юристы. Контора не бедная, все мониторы – либо ЖК, либо трубы не меньше 21". При этом, снабжение централизованное и очень, очень медленное...
Ну вот, как-то раз меня спрашивают слушательницы после занятий:
С: Не подскажете, где можно купить защитный экран на монитор?
Я: Зачем он вам? ЖК мониторы не излучают, а у больших труб есть своя встроенная защита.
С: Нет, вы не поняли. Нам нужна защита для монитора. Нашей начальнице место в контракте не понравилось, она ткнула карандашиком, а монитор вытек...
#499: Месть – это блюдо, которое подается кусками
17 января 2009, 09:00. рейтинг: 3269
Лет несколько назад, во времена диалапа и коннекта на 19200, переписывались между собой две конторы, по электронной почте.
Одна контора запросила у другой некий документ. А чтобы тем было проще документ составить – отправили форму, для заполнения. Листов 10 – всякие ячейки, столбцы и прочее в том же духе.
Предварительно распечатав эту форму на принтере, и отсканировав каждую страницу.
В TIF. Несколько мегабайт.
Поскольку в почтовый ящик оно не лезло – запаковали в архив, разбитый на пару десятков кусков.
И отправили. По диалапу.
Восторгу получателей не было предела: надо все это скачать, собрать, распаковать, потом по картинкам набить вручную в Экселе, заполнить...
И месть была страшна: документ был изготовлен, заполнен, распечатан, отсканирован, картинки вставлены в Вордовский документ (ах, с каким трудом еле шевелился под многомегабайтным грузом Ворд!...), все это запаковано в архив и порезано кусками.
И отправлено по диалапу обратно...
#500: Глобально, на века!
17 января 2009, 09:00. рейтинг: 1936
Работаю тестировщиком в офшорной софтверной компании. На одном проекте со мной трудятся китайские разработчики, которые регулярно, простите, жгут. Не могу не поделиться последним их подвигом.
Есть на одной из форм поле "Дата рождения". Во время тестирования было выяснено, что значения туда могут быть введены уж очень фантастические (люди столько не живут), крайней датой, которую можно сохранить, было 1 января 1573 года, после крайней даты система вываливала страшный ексепшен.
Иду в багтрек и пишу предложение китайским друзьям – ребята, есть смысл во-первых, определить приемлемый диапазон дат (это ж не просто дата, а дата рождения), во-вторых сделать юзер-френдли сообщение, на случай если пользователь опечатается в этом поле, дабы не пугать его.
В следующей версии приходит фикс. Иду проверять, ввожу какую-то, совсем уж мохнатую дату, на что получаю "user friendly" сообщение:
"The date should be between January 1, 1753 and December 31, 9999"
Это ж как масштабно мыслят эти парни – система, видимо должна работать не только с супер-долгожителями, но и с людьми, которые родятся только через несколько тысячелетий...
#501: Подземные лучи
17 января 2009, 09:00. рейтинг: 3913
Подрабатывали как-то с другом ремонтом ноутбуков.
Стандартная поломка – замена разбитой матрицы. Матрица куплена, поставлена и проверена, все работает. Приходит клиент за своим ноутом, мы с напарником выносим пациента на демонстрацию, ставим на тумбочку в коридоре, включаем его в розетку, все пускается, матрица не работает.
Опаньки.
Рассказываем про непредвиденные обстоятельства, скрытые дефекты, а в голове перспектива разбора, да еще не дай бог матрицу тащить назад сдавать. Просим пять минут – разобраться, что могло случиться.
Уходим назад в комнату, подключаемся к розетке, включаем – чудо! Матрица завелась. Ну и слава богу, мало ли что это могло быть. Работает вроде бы стабильно. Выключаем, тащим обратно клиенту показать победу. Ставим в коридоре, включаем и... правильно, не работает! Ну, думаем, приплыли – догорело что-то, уносим в комнату. Работает. Одновременно приходит мысль, что все дело в розетке. Воображение рисует разные картины – вплоть до перевернутой кверх ногами синусоиды. И тут на третьем подходе меня осенило.
С веселым, но несколько нервным гоготом я выволок с полочки той самой тумбочки, куда мы ставили ноут на демонстрацию, спрятанный до лучших времен динамик 35-ГДН, лежавший там вверх магнитом диаметром около 12 сантиметров. Своим магнитным полем агрегат пробивал слой ДСП, корпус ноута с материнкой и заставлял срабатывать магнитный флип на матрице ноутбука. А тот считал, что крышка всегда закрыта...
#502: Точный математический прибор
18 января 2009, 09:00. рейтинг: 2645
Небольшая IT-компания, занимаемся в основном внедрениями 1С.
Выезд в деревню, бугалтерия, выделили компы, нужно сделать им 1С-Бухгалтерию.
Приезжаю, захожу в офис, сидят бухгалтеры, вокруг стоят компьютеры, на столах у каждого помимо машин лежат калькулятор и счеты.
Спрашиваю, зачем счеты.
– А вдруг калькулятор неправильно посчитает? Мы проверяем.
Боюсь рассказывать им, для чего нужна 1С-Бухгалтерия....
#503: А тем, кто не поймет, он откусит ногу
18 января 2009, 09:00. рейтинг: 1273
Разрабатываем одну большую корпоративную систему – огромная база данных, большие нагрузки на сервера ну и веб-интерфейс, куда ж без него. Интерфейс этот пишется с использованием одной библиотечки, которая в свою очередь вовсю использует AJAX. Библиотека open-source, но как-то раз преподнесла совершенно неожиданный сюрприз.
Решил я ее обновить, скачал новую версию, пересобрал, залил – все вроде в порядке. Но при заходе на одну из страничек сервер стал тут же падать! Не поняв с первого раза, как стабильно работающее приложение может вдруг выкинуть такой фокус, стал внимательно изучать логи. И обнаружил там, о ужас, StackOverflowException! При этом, точно зная что рекурсию нигде не использую, порылся в своем коде пару минут, да и решил заглянуть в код библиотеки. А там увидел вот такую прелесть на месте того метода, который вызывал ошибку:
/**
* @return
* @see #getPage()
* @deprecated
*/
public int getPageIndex() {
return getPageIndex();
}
Вот оказывается как надо объявлять метод устаревшим, чтобы его впредь больше никогда не использовали!