Объявил глобальную vector-переменную, сразу под объявлением начал присваивать значения элементам. Остановил себя перлом: «Кровь должна быть в артериях, дерьмо в кишках, а присваивание в функции».
Истории с тегом: программизмы
Всего историй: 896
Апдейт du jour
Последний день сдачи контрольной по Delphi. После дописывания программы та отказалась запускаться, сразу выводя отчёт об ошибке. Все попытки заставить программу заработать ни к чему не привели. Один из однокурсников пошутил: «А ты отправь отчёт в Майкрософт». Нажал кнопку, посмеялись: «Уважаемый Билл Гейтс, вы сделали операционную систему, не совместимую с моей программой, срочно примите меры!»
День подошёл к концу, заставить работать программу так и не получилось, и о ней я благополучно забыл. Спустя t времени и n переустановок винды (с апдейтами) я разгребал папку с проектами и наткнулся на эту самую программу. Вспомнив историю, попытался запустить. Сильно удивился, когда на экране появилась форма. Программа, впрочем, выдавала всё ту же ошибку при нажатии кнопок, но сам факт, что её стало видно на экране, намекал:
* * *
Сел баловаться: изучать свойства стандартных компонентов. Натыкал их на форму и давай собирать проект. При запуске проекта, где не было ни строчки самописного кода, Каспер ругнулся: «Project1.exe заражён!» Название «вируса» история не сохранила, но спустя пару обновлений ложное срабатывание прекратилось.
Будьте позитивнее
Сижу потихоньку на рабочем месте, стучу по клавиатуре. Тут приходит SMS от известного московского 4G-оператора с названием из четырёх букв:
Сегодня последний оплаченный день доступа в интернет. Пополните ваш счёт ***** на −57 руб.
Захожу в личный кабинет — точно, на счету лежит на 57 рублей больше, чем нужно заплатить по тарифу. Мужики, может, проверять достаточность средств и рассчитывать сумму доплаты надо порознь, а не в одно действие?
Компьютер синеет лицом и ругается
Будучи студентом с некоторым знанием сложного языка Бейсик, во времена компьютеров ДВК я был назначен лаборантом по информатике в сокурсных группах. Чтобы не усложнять жизнь своим же ребятам, придумал простенькие задания. Одним из них было написание программки с использованием генератора случайных чисел. А чтоб уж совсем просто, разложил и разжевал каждую строчку программы, но только на родном, на русском. Оставалось только слова подменить на коды.
На экране первого же студента было следующее:
20 Компьютер генерирует число от 0 до 100.
30 …
Бездушная машина не понимала красивого славянского слога. Учителя, как я вас тогда стал понимать!
Косяк по-американски
Зарегался я
2 октября с сайта мне пришло поздравление с днём рождения по электронке, причём дважды. «О, великий Ктулху, какие они доброжелательные», — подумалось мне. Но почему сейчас? День рождения-то у меня зимой.
Первая мысль: неправильно заполнена личная информация. Захожу на сайт. Личный кабинет, личная информация… Всё правильно: 10 февраля 1981 года. Но почему в октябре меня поздравляют? Гоняю думки… До меня доходит, в чём подвох, и я начинаю потихоньку сползать под стол от смеха и удивления, понимая, почему они меня поздравляют 02.10.
А извинения с неправильным поздравлением они всё-таки принесли — через месяц. Обещали больше программеров такой травой не угощать.
Внесистемный Adobe Air
Наблюдал в трамвае сцену. Школьник беседует с кем-то по телефону на тему домашнего задания по информатике, периодически упоминая Паскаль. Внезапно сидящий на одним сидении со школьником спящий пьяный мужик поднимает голову и заплетающимся языком произносит:
— Правильно, в паскалях надо давление измерять! А в атмосферах неправильно — это внесистемная единица.
Оболочка повышенной неприкосновенности
Дело было в конце восьмидесятых. Учился я тогда в институте, и был у нас предмет «программирование». Работали на мейнфрейме то ли 1045, то ли 1061 в СВМ. В ней было организовано под сотню виртуальных машин, но
В очередном семестре попался мне коллега чуть более продвинутый, чем остальные. Он знал, что можно для линковки и компиляции создавать командные файлы. Ну, чтоб не ручками каждый раз две строки в 50–60 символов набирать. Всё бы ничего, но в СВМ отчего-то приоритет был отдан не встроенным командам ОС, а командным файлам. Однажды по команде fl я получил не список файлов на своём виртуальном диске, а компиляцию чужой задачи. Не, можно, конечно, filelist — но это же долго, да и отвык я. Руки же сами пишут. Переименовываю fl во
За неделю до следующих лаб решение было найдено и реализовано. Я сделал набор командных файлов, имена которых полностью повторяли набор команд ОС (полных и сокращённых). В принципе, почти все они делали простую вещь — тупо вызывали одноимённую системную команду с некоторыми доработками, а именно: из списка файлов выкусывали сами себя, не давали себя стирать/переименовывать/показывать/редактировать и пр.
Чудесным образом я прожил на своей ВМ до конца семестра. На консультации перед экзаменом я с удивлением узнал, что у меня пятёрка автоматом.
— Почему?
— Вы же сами знаете.
— А как вы догадались?
— Из четырёх пользователей ВМ вы один не подошли жаловаться на то, что система ведёт себя не так, как должна.
Домашний питонец
Вы здесь освещаете только точки зрения людей, которых родители в детстве ограждали от компьютера. И
Мы продали настольный компьютер вместе с 19-дюймовым монитором. Выручили семь тысяч — хватило ровно на два трёхлетних нетбука. Один мне, другой мужу. Мы с ними не расстаёмся, носим с собой повсюду, поэтому когда ребёнок остаётся дома один, взять компьютер ему просто негде.
Во всяком случае, мы так думали, пока не обнаружили в комнате нашего пацана спрятанную в диване начинку от
Стали смотреть, что там установлено. Ни одной игры, только Python. И несколько программ, явно написанных самим сыном, например, для нахождения чисел ряда Фибоначчи — он как раз проходит эту тему в школе. В закладках браузера — ничего, кроме учебника по Python.
Теперь всерьёз опасаемся, как бы пацан не стал тем самым «замкнутым и нелюдимым роботом». Или айтишником? А мы так надеялись художника из него сделать!
Daemons vs. Zombies
Однажды во время дебага обнаружил следующее:
I/DEBUG(3176): debuggerd committing suicide to free the zombie!
Конец света наступит точно в этом году.
Ме-е-едленные методы
Смотрю код высоконагруженного сервера. В ядре обсчёта вижу код типа:
func() {
ObjectGame* OG=MainOG;
while(OG->next!=NULL)
{
ia=(int*)OG+12;
i=*ia;
/*
*ia=i;
/* код функции, внутри функции ia претерпевает различные изменения*/
OG=OG->next;
}
}
С большими глазами иду к прогеру, который это всё написал. Спрашиваю: почему он не пользуется методами Set и Get, и вообще, почему именно 12 байт?
На что он мне отвечает: «Внутри кода функции есть ветвящийся цикл, в котором перебираются многие параметры объекта. Если пользоваться методами Set и Get, а это переход по адресу, причём у каждого объекта он свой, конвейер процессора офигеет и сбросится. Это плюс 30 тактов на каждый переход. Всего таких объектов в секунду надо обсчитать порядка нескольких миллионов. Частота ядра — три миллиарда операций в секунду. Отсюда вывод: идите вы лесом со своим ООП!»