Читаем Bash.org.ru IT Happens Истории ## 9201 – 9300 полностью

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


Тут-то и оказалось, что я не субсубподрядчик — всё значительно хуже. Оказалось, что в одной фирме города N. произошла беда, и они сразу же попросили помощи у фирмы, которая обеспечивала поддержку. Фирма была aвстрийская. Те сразу же перебросили таск в пул, и баг попал на Украину. Там что-то случилось, но в итоге задача улетела в Индию. Индусы уже давно сами код не писали, а подряжали китайцев, а у тех специалистом по данному вопросу был я.


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


Короче, всю глубину творящегося идиотизма я прочувствовал, когда заявился в головной офис, а там меня ждал — не админ, нет, а целый технический директор с переводчиком. Там я скромно упомянул, что русским языком владею свободно. Директор очень обрадовался: вот, дескать, сервис в Европах, со знанием языка специалистов присылают! После этого меня уведомили, что гостиницу для меня забронировали и даже оплатили. Мол, если быстро почините, и культурная программа будет.


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



#9273: Не очень ноль

15:00 27.05.2012, IT happens


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


Моделировать пришлось связанные колебания маятников. Первый вариант программы я наскоро набросал на Delphi — для университетской конференции этого хватило. А затем была подготовка к такому же мероприятию, но уже между университетами. Поскольку времени хватало, я взялся переписать программу на FASM, заодно сохранив совместимость программы с Windows 95/98. Через несколько месяцев получилась вполне приличная 3D-модель с управлением параметрами системы, скоростью и направлением течения времени, возможностью подключать модели других физических процессов и прочими вкусняшками.


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


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


Поскольку в основном программа работала с вещественными числами, регистров общего назначения хватало с запасом. Чтобы подсократить размер экзешника, в самом начале программы я обнулял регистр EBX и использовал его везде, где это возможно, вместо константы 0. Всё тот же STDCALL этого не запрещает: вызываемые функции значение этого регистра сохраняют, так что оказалось действительно удобно. Есть только одна проблема: внутри себя функции WinAPI этот регистр активно используют, а соглашение вызова не обязывает их восстанавливать его значение перед вызовом callback-функций.


Моя ошибка оказалась в том, что в оконной процедуре (а с точки зрения User32.dll она как раз и есть callback) я забыл прописать явное обнуление EBX. На тех компьютерах, где программа работала корректно, мне просто везло: значение регистра оставалось нулевым. На остальных же системах там оказывалось ненулевое значение, которое успешно использовалось вместо всех нулей во многих процедурах программы. Одна строчка кода, два байта в экзешнике — полгода спустя они обрели своё место в коде, но было уже поздно.


Обнуляйте переменные и регистры — и будет вам счастье!



#9274: Заразите всё обратно

13:00 28.05.2012, IT happens


Звонок от одного из пользователей:


— Алло, как закрыть антивирус, не сохраняя?


Долгое молчание на нашей стороне.



#9275: Глюков не видать

13:00 28.05.2012, IT happens


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


Перейти на страницу:

Все книги серии Bash.org.ru IT Happens

Похожие книги

Морские досуги №6
Морские досуги №6

«Корабль, о котором шла речь, и в самом деле, возвышался над водой всего на несколько футов. Дощатые мостки, перекинутые с пирса на палубу, были так сильно наклонены, что гостям приходилось судорожно цепляться за веревочное ограждение — леера. Двое матросов, дежуривших у сходней, подхватывали дам под локотки и передавали на палубу, где их встречал мичман при полном флотском параде…»Сборник "Морские досуги" № 6 — это продолжение серии сборников морских рассказов «Морские досуги». В книге рассказы, маленькие повести и очерки, объединенных темой о море и моряках гражданского и военно-морского флота. Авторы, не понаслышке знающие морскую службу, любящие флотскую жизнь, в юмористической (и не только!) форме рассказывают о виденном и пережитом.В книги представлены авторы: Борис Батыршин, Андрей Рискин, Михаил Бортников, Анатолий Капитанов, Анатолий Акулов, Вадим Кулинченко, Виктор Белько, Владимир Цмокун, Вячеслав Прытков, Александр Козлов, Иван Муравьёв, Михаил Пруцких, Николай Ткаченко, Олег Озернов, Валерий Самойлов, Сергей Акиндинов, Сергей Черных.

Коллектив авторов , Николай Александрович Каланов

Юмор / Юмористическая проза / Прочий юмор