Читать «Bash IT Happens Истории ## 5701 – 5800» онлайн - страница 2

Bash.org.ru IT

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

#5705: «С» не как доллар

19:45 15.03.2011, IT happens

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

«Система не удовлетворяет минимальным требованиям».

«Недостаточно места на диске».

«Не удаётся создать сетевой путь».

После нескольких часов догадок, мучений, проверок системы и прочего была найдена проблема: в переменных окружения %TEMP% и %TMP% буква диска была написана по-русски, а остальное — по-английски. Да, глупая ошибка, зато сколько разных методов её обработки инсталляторами мы узнали!

#5706: В глубоком табе

12:00 16.03.2011, IT happens

Знаете, коллеги, я убедился, что университет с мировым именем — не гарантия, что вас не научат индийскому программированию.

Сдаю в бумажном виде госы.

— И где же у вас здесь протокол SMTP?

— Вот это всё — реализация. Вот список команд, вот список кодов ответов…

— Так, где создаётся сокет?

Тыкаю пальцем: server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

— Та-а-ак! Но у вас же здесь TCP!

— Правильно. SMTP — протокол слоя приложения. А при создании сокета указывается транспортный.

— А как тогда отличить, что ваша программа работает про протоколу SMTP? Где это написано?

— По структуре заголовка пакета — никак. По порту разве что.

Показываю на строчку: addr.sin_port = htons(IPPORT_SMTP);

— О! Так вот эта константа. Но она должна быть в протоколе.

— Нет, она должна быть здесь. Даже по имени константы видно, что в протокол она не лезет. Давайте покажу на практике, попробуем подставить эту константу туда и запустить — получим INVALID_SOCKET.

— Так! Что ты тут со мной споришь? В книге было написано, что должен быть IPPORT_SMTP, и прилагались рабочие примеры!

— Покажите, пожалуйста.

— Нету, книга в библиотеке.

— Тогда давайте сейчас покажу на практике, — поворачиваюсь к ближайшей машине, — что моя программа работает. Заодно попробуем туда подставить этот IPPORT…

— Так, иди переделывай.

Позже дома проверил — действительно, сокет не создаётся, если подставить туда любую константу портов. Повторная попытка доказать это провалилась. Пришлось в глубоком табе писать: #define IPPROTO_SMTP IPPROTO_TCP.

#5707: Месячная терапия Вульфенштайном

12:00 16.03.2011, IT happens

Как-то я работал сервис-инженером в компьютерном магазине. Приносит мне в ремонт видеокарту один товарищ, не обременённый интеллектом. Жалоба: «В играх квадраты появляются и картинки совсем не видно». Я по неопытности решил, что надо этим заняться — может, с видеопамятью проблемы?

С клиентом и видеокартой я безуспешно боролся два месяца. После очередного визита к нам в сервис клиент подходит в торговом зале к Аймаку, на необъятном мониторе которого запущена третья «квака» в разрешении 1024?768, тычет пальцем на квадраты на несглаженных краях объектов в игре и восклицает: