Истории с тегом: программизмы

Всего историй: 896

8646

А тишина — в библиотеке

Объявил глобальную vector-переменную, сразу под объявлением начал присваивать значения элементам. Остановил себя перлом: «Кровь должна быть в артериях, дерьмо в кишках, а присваивание в функции».

8627

Апдейт du jour

Последний день сдачи контрольной по Delphi. После дописывания программы та отказалась запускаться, сразу выводя отчёт об ошибке. Все попытки заставить программу заработать ни к чему не привели. Один из однокурсников пошутил: «А ты отправь отчёт в Майкрософт». Нажал кнопку, посмеялись: «Уважаемый Билл Гейтс, вы сделали операционную систему, не совместимую с моей программой, срочно примите меры!»

День подошёл к концу, заставить работать программу так и не получилось, и о ней я благополучно забыл. Спустя t времени и n переустановок винды (с апдейтами) я разгребал папку с проектами и наткнулся на эту самую программу. Вспомнив историю, попытался запустить. Сильно удивился, когда на экране появилась форма. Программа, впрочем, выдавала всё ту же ошибку при нажатии кнопок, но сам факт, что её стало видно на экране, намекал: что-то там мелкомягкие подправили в своих обновлениях.

* * *

Сел баловаться: изучать свойства стандартных компонентов. Натыкал их на форму и давай собирать проект. При запуске проекта, где не было ни строчки самописного кода, Каспер ругнулся: «Project1.exe заражён!» Название «вируса» история не сохранила, но спустя пару обновлений ложное срабатывание прекратилось.

8626

Будьте позитивнее

Сижу потихоньку на рабочем месте, стучу по клавиатуре. Тут приходит SMS от известного московского 4G-оператора с названием из четырёх букв:

Сегодня последний оплаченный день доступа в интернет. Пополните ваш счёт ***** на −57 руб.

Захожу в личный кабинет — точно, на счету лежит на 57 рублей больше, чем нужно заплатить по тарифу. Мужики, может, проверять достаточность средств и рассчитывать сумму доплаты надо порознь, а не в одно действие?

8623

Компьютер синеет лицом и ругается

Будучи студентом с некоторым знанием сложного языка Бейсик, во времена компьютеров ДВК я был назначен лаборантом по информатике в сокурсных группах. Чтобы не усложнять жизнь своим же ребятам, придумал простенькие задания. Одним из них было написание программки с использованием генератора случайных чисел. А чтоб уж совсем просто, разложил и разжевал каждую строчку программы, но только на родном, на русском. Оставалось только слова подменить на коды.

На экране первого же студента было следующее:

20 Компьютер генерирует число от 0 до 100.

30 …

Бездушная машина не понимала красивого славянского слога. Учителя, как я вас тогда стал понимать!

8622

Косяк по-американски

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

2 октября с сайта мне пришло поздравление с днём рождения по электронке, причём дважды. «О, великий Ктулху, какие они доброжелательные», — подумалось мне. Но почему сейчас? День рождения-то у меня зимой.

Первая мысль: неправильно заполнена личная информация. Захожу на сайт. Личный кабинет, личная информация… Всё правильно: 10 февраля 1981 года. Но почему в октябре меня поздравляют? Гоняю думки… До меня доходит, в чём подвох, и я начинаю потихоньку сползать под стол от смеха и удивления, понимая, почему они меня поздравляют 02.10.

А извинения с неправильным поздравлением они всё-таки принесли — через месяц. Обещали больше программеров такой травой не угощать.

8609

Внесистемный Adobe Air

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

— Правильно, в паскалях надо давление измерять! А в атмосферах неправильно — это внесистемная единица.

8601

Оболочка повышенной неприкосновенности

Дело было в конце восьмидесятых. Учился я тогда в институте, и был у нас предмет «программирование». Работали на мейнфрейме то ли 1045, то ли 1061 в СВМ. В ней было организовано под сотню виртуальных машин, но студентов-то куда больше. Каждому на семестр выделялась виртуальная машина. Ей можно было пользоваться во время лабов, какое-то время выделялось по вечерам для подготовки отладки. На той же виртуальной машине в другое время работал другой студент.

В очередном семестре попался мне коллега чуть более продвинутый, чем остальные. Он знал, что можно для линковки и компиляции создавать командные файлы. Ну, чтоб не ручками каждый раз две строки в 50–60 символов набирать. Всё бы ничего, но в СВМ отчего-то приоритет был отдан не встроенным командам ОС, а командным файлам. Однажды по команде fl я получил не список файлов на своём виртуальном диске, а компиляцию чужой задачи. Не, можно, конечно, filelist — но это же долго, да и отвык я. Руки же сами пишут. Переименовываю fl во что-то там. Работаю. На следующий раз всё, конечно же, повторяется. Жалуюсь преподу — ему пофиг.

За неделю до следующих лаб решение было найдено и реализовано. Я сделал набор командных файлов, имена которых полностью повторяли набор команд ОС (полных и сокращённых). В принципе, почти все они делали простую вещь — тупо вызывали одноимённую системную команду с некоторыми доработками, а именно: из списка файлов выкусывали сами себя, не давали себя стирать/переименовывать/показывать/редактировать и пр.

Чудесным образом я прожил на своей ВМ до конца семестра. На консультации перед экзаменом я с удивлением узнал, что у меня пятёрка автоматом.

— Почему?

— Вы же сами знаете.

— А как вы догадались?

— Из четырёх пользователей ВМ вы один не подошли жаловаться на то, что система ведёт себя не так, как должна.

8588

Домашний питонец

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

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

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

Стали смотреть, что там установлено. Ни одной игры, только Python. И несколько программ, явно написанных самим сыном, например, для нахождения чисел ряда Фибоначчи — он как раз проходит эту тему в школе. В закладках браузера — ничего, кроме учебника по Python.

Теперь всерьёз опасаемся, как бы пацан не стал тем самым «замкнутым и нелюдимым роботом». Или айтишником? А мы так надеялись художника из него сделать!

8586

Daemons vs. Zombies

Однажды во время дебага обнаружил следующее:

I/DEBUG(3176): debuggerd committing suicide to free the zombie!

Конец света наступит точно в этом году.

8584

Ме-е-едленные методы

Смотрю код высоконагруженного сервера. В ядре обсчёта вижу код типа:

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 тактов на каждый переход. Всего таких объектов в секунду надо обсчитать порядка нескольких миллионов. Частота ядра — три миллиарда операций в секунду. Отсюда вывод: идите вы лесом со своим ООП!»