bash.im ithappens.me zadolba.li

Образование

1284

Здоровое питание

В начале нулевых я учился на подготовительном курсе на одну из IT-специальностей в маленьком городе. Учреждение было довольно бедным: в компьютерном классе стояла дюжина пентиумов-233 с мониторами 17" и непонятно как туда попавший пентиум-100 с подслеповатым 14". Сеть на коаксиале; ни о каких бесперебойниках, конечно, и речи нет. Когда группа приходила на занятия, все старались занять «нормальную» машину для комфортной работы, а опоздавший бедняга попадал за тот самый «сотый», на котором процесс компиляции небольшой СУБД с десятком форм занимал четверть часа, а то и больше.

Итак, работаем над курсовыми по программированию. На улице зима и уже давно стемнело. Пишем, компилируем, отлаживаем. Вдруг на секунду пропадает свет. Надо сказать, у нас в городе это случалось крайне редко, поэтому у нас ещё не была отработана привычка как можно чаще сохранять изменения. Естественно, все компьютеры ушли на перезагрузку. Ахи-вздохи, крики «я не сохранился», картинное заламывание рук и всё в таком духе.

Вова, работавший в тот день за злосчастным «сотым», тоже бросился к компьютеру. Минут десять назад он начал компилировать свой код и слонялся в ожидании по аудитории. Когда монитор наконец включился и показал картинку, Вова издал удивленный вопль, и группа собралась вокруг. Оказывается, винтажный компьютер, проигнорировав скачок напряжения, спокойно продолжал компиляцию. «Такой тормознутый, даже не заметил, что свет пропадал!» — выдал кто-то из остряков.

Видимо, в «сотом» стоял хороший блок питания, и при небольшой потребляемой мощности запаса энергии на конденсаторах вполне хватало на несколько секунд бесперебойного питания. С тех пор «старичка» мы стали уважать, хоть и работать с ним было не особо удобно.

1271

Если это ваш программист, то какие же у вас охранники?

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

Восемь утра. Админы возятся с настройкой проектора, учителя пьют кофе, я же, борясь с бессоницей, мнусь в коридоре и жду, когда всё начнется. Я не очень похож на типового айтишника: небольшой рост, 92 кг живого веса (отнюдь не жира), с трудом заметная между плечами и головой шея, мясистые сбитые кулачки. Одним словом, «сколько я зарезал, сколько перерезал...»

Похоже, что админы вот-вот закончат настройку аппаратуры. Я вялой походкой невыспавшегося дембеля вхожу в класс. Один из представителей педагогического коллектива смотрит на меня с некоторым сомнением: вроде и не школьник, и не учителя не похож...

— А вы тоже в команде?
— Да, в некотором роде.

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

Пифагор был чемпионом Олимпийских Игр по боксу, а Нильс Бор — футболистом-любителем. Я в неплохой компании.

1268

Суровая ASCII-правда

Недавно в институте мы начали изучать ассемблер. При отладке первой же программы со мной произошёл забавный случай. Так как ввод данных мы ещё не проходили, задание значений переменных и проверка результата производились через окно TASM'а, отображающее содержимое ячеек памяти и интерпретирующее эти данные как коды символов.

Так вот, после очередного запуска программы я лезу проверять результат, нахожу в памяти нужную переменную и обнаруживаю, что записано в ней не что-нибудь, а «xy☺». И правда — результат был действительно неверным.

1241

d-_-b

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

Никогда не забуду выражение лица товарища, обнаружившего причину мучений. Оказалось, что я, в первый раз правя код, вместо переменной b в одном из операторов влепил d. С тех пор я стараюсь называть переменные осмысленно, а однобуквенных имён и вовсе избегать.

1217

Прикладное применение манипулятора с двумя степенями свободы

Дело было в эпоху царствования 386-х — в то время IT-ориентированных людей было намного меньше, чем нынче.

Сотрудник одной из кафедр нашего института написал прикладную графическую программу для визуального отображения результатов расчёта математических моделей своей научной работы. Завершив отладку, для демонстрации работы программы он пригласил в вычислительный центр кафедры своего научного руководителя, многоуважаемого профессора, представителя старой школы и старой закалки. Усадив его рядом с компьютером, сотрудник в руку мышку и со словами «смотрите, как она работает» принялся задавать различные параметры расчётов.

Через десять минут его прервал недоумённый возглас профессора: «И долго мне ещё на это смотреть?!» Оказывается, всё это время тот сосредоточенно следил за... мышкой.

1211

Консольное Ремесло

Дело было на первом курсе университета. Проходил у нас тогда практикум по Unix — мы писали скрипты, подключаясь к серверу через PuTTY. Мужская часть группы (12 человек), дружно игнорируя изучение awk и sed, во время практикума играла в Warcraft III.

Курс был интенсивный — четыре первые пары каждый день. Препод приходил лишь раз в неделю и смотрел результаты, что нам было весьма на руку. Сознательных же девчонок очень сильно смущал тот факт, что толпа пацанов с утра до ночи убивает «крипов» и не даёт заниматься самообразованием. Быстро смекнув, во сколько приползают «игрунки», девушки решили приходить в универ пораньше.

Естественно, однажды утром свободных машин нам не досталось. За десять минут был написан скриптик (таким образом, я, кстати получил знания об awk), который вытаскивал с сервера список пользователей и отправлял каждому файл с тысячей пустых строк. Крик, визг из машинного зала — конец всему, что сделано за утро! Прекрасная половина курса отправилась работать домой, а мы спокойно продолжили «творческий процесс».

1203

Мечты, мечты...

Талантливый препод объясняет продвинутым школьникам алгоритмы.

Преподаватель: Еще задачка на динамику. Сейчас мы узнаем, как сгенерировать все последовательности длины N из нулей и единиц так, чтобы рядом не стояло трёх единиц.
Голос с задней парты: А зачем все это нужно?
Преподаватель: Нужно. Вот представь — гуляешь ты с девушкой, и вдруг она тебе говорит: «А сгенерируй-ка мне все последовательности длины N из нулей и единиц так, чтобы трех единиц не стояло рядом!»
Голос с задней парты: ...и я покажу ей исходники решения, а она сама сгенерирует.
Голос с первой парты: (мечтательно) Да-а, девушка-компилятор — это круто!..

1195

Кошмар верстальщика, или жизнь без валидатора

Дело было ещё в школе. Вместо обычной практики нашему спецклассу летом достались задания по математике и информатике. В тот год мы как раз учились верстать веб-странички на HTML. Нас разделили на группы по два-три человека и раздали задания.

Сидим, печатаем, у нас все получается. Тут две моих одноклассницы зовут учительницу: у них не задаётся ни один атрибут в тегах. Подходит учительница, долго и внимательно вычитывает код, говорит, что вроде все правильно. Браузер не согласен — учительница, проверив по новой, только развела руками и отошла в сторону. На помощь позвали разбирающегося в вопросе друга, но и тот через десять минут признал свою несостоятельность.

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

С тех прошло достаточное количество времени, но проверяю чужой код я с тех пор очень кропотливо.

1193

Hello, computer!

В конце 11 класса мы с двумя друзьями из класса сдавали ЕГЭ по информатике. Один из них испытывал трудности в подготовке к экзамену и обратился ко мне за помощью. Дело происходило в июне, в школу мы уже не ходили, поэтому алгоритмы решения задач я объяснял ему по аське. Это было крайне неудобно: задачи были нетривиальными, поэтому печатать приходилось очень много.

Мы решили организовать видеоконференцию. То ли я нажал не туда, то ли мой друг воткнул микрофон не в ту дырку, но я не получал ни изображения, ни звука, а друг меня только слышал. Работали мы по такой схеме: он в письменном виде присылает мне задачу, а я устно объясняю решение.

Представьте: сижу я и вдумчиво излагаю, как определить, сколько чисел в двумерном массиве после выполнения алгоритма на Паскале примет отрицательные значения. Входит мать и видит картину: её сын сидит, смотрит на пустой рабочий стол (все окна я свернул для концентрации внимания) и о чём-то разговаривает со своим компом. Крику было!.. С трудом отговорил маму вызывать психиатра, объяснив, что я ещё не успел сойти с ума от многочасовых бдений за клавиатурой.