8145
Сдал тестовое задание в одну крупную фирму на должность программиста. Получил ответ:
Руководители ознакомились с выполненным вами тестовым заданием и указали на момент, что задание сделано в основном при помощи стандартных мастеров. Мы же хотели посмотреть на то, как вы программируете. В настоящий момент мы не готовы сделать вам предложение о трудоустройстве.
Блин, вот хотел же я сделать всё, как обычно, через задницу! Так нет, послушал внутренний голос, который говорил: «Не выпендривайся, не изобретай велосипед, хоть раз сделай всё, как положено»…
8132
Девочка рассказала, что утром видела реализацию стека FIFO (first in, first out) в реальной жизни. Плотно набитый двухдверный автобус останавливается на остановке. В первую дверь втискивается мужик, а из последней выталкивает не вместившегося бедолагу.
8112
22 мая 1983 года, «Известия».
Статья «Умысел» рассказывает об инциденте на Волжском автомобильном заводе в г. Тольятти: в результате произошедшего по неизвестной причине сбоя остановились электронно-вычислительная машина, управляющая главным конвейером завода, сам конвейер, а за ним и завод, на котором работает более ста тысяч человек. Только через 6 часов работа возобновилась. Как вскоре выяснилось, это была забастовка одного человека: программист Мурат, недовольный медленным продвижением по службе и зарплатой, совершил умышленную ошибку, остановившую компьютер и завод. Обратив внимание на свои требования, он сам исправил ошибку и сам в своём поступке признался, за что было осуждён на три года лишения свободы условно и уплату 7 тысяч рублей штрафа.
Журналист, подробно описавший эту историю, отмечает: «Фигура программиста делается массовой быстрее, чем мы привыкаем к ней». Он особенно подчёркивает бесконтрольность деятельности программиста: «Абсолютная проверка правильности программы другим программистом или невозможна, или требует трудоёмкости, близкой к её написанию». «На всем пути (программирования) с начала до конца, — пишет журналист, — мы можем положиться лишь на самого специалиста». Происходит «отставание управления», опережаемого развитием техники. Автор выражает надежду на то, что «скоро, очевидно, программы станут надёжными и утвердятся формы их проверки». Пока же надо усилить воспитание у специалистов «гражданских качеств», «чувства долга». Заботиться об этом должен прежде всего коллектив.
8093
Один из студентов по прозвищу Вано решил освоить Си и написал свою первую программу, которая читала кусок из памяти и записывала его в текстовый файл. Зачем уж ему это понадобилось, неизвестно, но один из лаборантов залез в текст его программы и вставил кусок кода так, что он оказался за пределами экрана.
После многократных попыток понять, что произошло, студент бросил попытки изучения языка. Несмотря на все усилия, вместо ожидаемого результата в виде тарабарщины он каждый раз открывал в текстовом файле одну и ту же строку, многократно повторённую: «Вано — дятел!!!»
8084
В процессе работы полез в исходники одного пакета (очень удобного и полезного, кстати). Код красивый, прозрачный, понятный, неплохо откомментированный. И вдруг натыкаюсь на такой кусок:
// check if any component is linked to OnRxChar event
procedure CheckLinks;
{$WARNINGS OFF}
var
I: Integer;
FuckMeAndMyDogToo: Pointer; //TCPortBytes;{Pointer}
ComLink: TComLink;
ReadFromBuffer: Boolean;
begin
FuckMeAndMyDogToo := nil;
Это ж до чего человек дошёл в процессе разработки, что так переменную обозвал?
8081
Когда я учился на первом курсе, старшие, уже мнившие себя великими программерами, всячески издевались над новичками. Стоило в компьютерном классе оставить открытым свой исходник и отойти, как он тут же подвергался небольшой правке: в каком-нибудь идентификаторе английская буква «o» менялась на идентичную, только русскую. Бедняга-первокурсник по возвращении не мог откомпилить только что работавший код, долго рвал на себе волосы и не мог понять, за что компилятор называет его инвалидом.
8072
Вечером притопал к другу в гости. У него подъезд на кодовом замке — такой, знаете, с десятью кнопками. Нужно зажать комбинацию, чтобы открылся.
Код замка я знаю. На улице ни зги не видно. Считаю на ощупь, нажимаю — не открывается. Считаю ещё раз — без толку. Звоню товарищу, спрашиваю код замка. Называет те же цифры. Пробую ещё раз, чтобы наверняка. Отчаявшись, прошу его выйти и впустить меня.
Открывает, рассказывает, какой я криворукий идиот. Требую показать мне, как этот замок открывается. Друг хмыкает, но показывает: «Смотри, считаем с краю: один, два, три…»
Кто же знал, что у этих обычных людей нумерация идёт с единицы!
8066
Учусь на первом курсе технического университета. При написании программ в школе мне приходилось сталкиваться лишь со статическим выделением памяти, поэтому динамику я изучала с нуля.
Сидела полночи над лабораторной по динамическим структурам. Поспать удалось пару часов. Звенит будильник, я открываю глаза, и в моей голове происходит мыслительный процесс:
— Сейчас у нас что? Лекция по истории. Препод даст новую информацию. Но я же не выделила для этой информации память!
Последующие полчаса я лежала и думала, как же мне выделить в своей голове кусочек памяти для того, чтобы усвоить лекцию. Не придумала и с чистой совестью заснула обратно.
Перезанималась я, в общем, в ту ночь. Боюсь, что в следующий раз не смогу подключить к себе библиотеку, чтобы выполнить функцию вставания с кровати по утрам.
8056
На Маке я не программировал давно, а тут потребовалось посмотреть работу программы под iOS 4.1 — чисто для себя. Откомпилировать, посмотреть и забыть. Естественно, помимо прочего, надо иметь iOS SDK и сертификаты. Последние я одолжил у подчинённого (в фирме он теперь Маками занимается), принёс исходники домой, подключил айфон и приступил.
Требуемого SDK не оказалось. Хакинтош старенький — давно не включал. Полез в сетку искать, где скачать. Рапидшары и прочие торренты наперебой предлагали либо скачать за деньги, либо установить трояна, либо рассказать пароль от своей почты. Найденные торрент-закачки отказывались стартовать. Сайт Apple требовал Developer ID.
Заскучал. Переключился на виндовый комп, почитал анекдоты, на автомате переформулировал запрос и ещё раз послал в Гугл, оттуда вывалился на яблочный сайт. В окошке, куда надо было вводить Developer ID, красовался неизвестно из каких кук достанный мой ID пятилетней давности. Пароль набрался сразу — руки не забыли.
Оказывается, я зарегистрированный разработчик под OS X и iOS. И какого хрена убивал время, копаясь в пиратских сайтах? Cила привычки, блин…
8020
Да, товарищи, заработались мы, привыкли к умным компиляторам и IDE.
Помнится, на первом курсе университета я проходил факультативный курс программирования микроконтроллеров. Два дня дебажил задание, не понимая, почему стандартный «хеллоу-ворлд» на Си не компилится. В исступлении на третьи сутки обратился к гуру. Посмотрел он код мой, пожурил и отправил мануалы читать.
Сначала я вспылил: «Как так! Я к нему с простейшей просьбой, а он мне какие-то бумажки суёт!» Поостыв, принялся за чтение спецификации компилятора.
Оказалось, что в коде моём действительно имелся досадный баг. Я-то по наивности писал int main(), а вот в спецификации было указано, что все функции без параметров объявляются как [type] [name](void), и это обязательное требование. В обычном Cи компилятор сам подставлял «пустоту», а этому нужно было указывать явно.
С тех пор я научился читать документацию и лог вывода компилятора, включаю во время дебага все ворнинги и не успокаиваюсь, пока каждый не исправлю.