bash.im ithappens.me zadolba.li

Образование

11418

Учись, играя

Дело было в колледже во время моего обучения на ПОВТа. В то время безлимитный интернет только начинал своё распространение в массы, процветали компьютерные клубы. Вот только платить не хотелось, а поиграть по сети в CS или Warcraft III — очень даже. Недолго думая, скооперировались с одногруппниками и занесли вышеописанный контент на все компьютеры учебного заведения. Впрочем, мы были не первыми «гениями», которым захотелось вместо написания программок поиграть, и все игры были довольно быстро найдены и удалены преподавателями. На этом наше противостояние только началось.

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

Преподы сделали ответный ход, установив в антивирусе ограничения на запуск определённых программ. Но и это нас не остановило. Касперский даже без знания пароля к нему и без прав админа вырубался достаточно просто: открывался MS Word, писалась какая-нибудь кракозябля, после чего запускалось выключение компьютера. При появлении окошка с предложением сохранить данные перед закрытием Ворда нужно было немножко подождать (но не слишком, а то в конце концов он тоже закрывался), нажать «Отмена», и — та-дам! — Касперский закрыт. Потом появился Радмин, но он последовал за антивирусом…

В конце концов преподы вышли с нами вничью: ужесточили требования к лабораторкам, экзаменам и зачётам, и на игры просто перестало хватать времени.

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

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

11405

Приличные люди исходниками не сверкают

Один из вузов нашей необъятной Руси (татарской её части). Институт управления, автоматизации и тому подобного. Факультет управления и автоматизации. Направление — информатика и вычислительная техника. Препод:

— К экзамену по информатике знать: операционные системы с текстовым интерфейсом типа DOS, с графическим интерфейсом типа MS Windows, текстовый процессор MS Word. Компьютеров в аудитории мало, поэтому сдавать будете по очереди.

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

— Можно будет принести свой аппарат и на нём сдавать экзамен?

— Конечно!

— А если на нём в Дебиане виртуалку Windows запущу и там поменяю ядро системы, зачёт автоматом будет? — спрашиваю с подколом.

— Молодой человек, у нас тут приличное заведение, а вы сюда с линуксом! Будь моя воля, я бы вас всех, пингвинолюбов, отчислял бы!

— Почему?!

— Пользоваться Linux — значит жульничать!

11400

Where’s your head at?

2003 год, один из кабинетов информатики провинциального колледжа. Кабинет примечателен тем, что в него спихивалось всё старье со всего учебного заведения. Была даже оригинальная ЕС-1843 (почти 286-й комп с небольшими нюансами). Соответственно, на всех машинах стоял DOS.

В кабинете заканчивается пара у непрофильной группы — технология авторемонта. Препод тоже с отделения «автомобилистов», но пару вёл сам. Изучали они «экспертные системы» на примере программулины, написанной этим самым преподом на Basic M86 (тот же GW-Basic, только из пакета софта ЕС-ки). Когда все студенты посдавались, препод начал бегать от компьютера к компьютеру и чего-то пытаться набирать в командной строке. Поначалу ни меня, ни кого-либо из лаборантов это не встревожило. Когда лицо препода стало выглядеть совсем уж перекошенным, я поинтересовался, в чём дело. Оказывается, он захотел повыключать все компьютеры в кабинете, но перед этим, по его мнению, абсолютно необходимо было выполнить команду park, иначе якобы могла произойти потеря данных и поломка HDD. Так как никто из лаборантов ни о чём подобном не слышал, препод был отправлен восвояси, а компьютеры мы повыключали сами.

Мне всё-таки стало интересно, откуда препод взял эту ересь. Придя домой, нарыл на книжной полке родителей «Самоучитель работы с ПК» 1991 года издания. Оказалось что команда park была на самом деле, вот только актуальна она была для самых первых моделей PC, для которых наличие винта было опцией. Нужна команда была для того, чтобы парковать головку жёсткого диска в отведённую для этого зону, так как первые дешёвые модели HDD не имели механизма автопарковки при отключении питания. Невыполнение команды действительно вело к описанным преподом последствиям. Надо заметить, что даже на ЕС-1843 винт парковался уже сам.

11344

Выкрутасы с расширениями

В школе ввели нам информатику. Тогда в классах находились БК-шки. Пока все создавали «Hello World», мы с другом рисовали синусоиды и радовали преподавателей.

Позже в классе поставили 486SX. Стояла там игра Stunts — кто помнит, машинки со всякими выкрутасами. Не понравилось нам с другом, что все могут играть. План созрел быстро. Написали простенькую программульку на Турбо-Паскале, которая заменяла EXE-файл и требовала ввести пароль. После правильного пароля игра запускалась. А ведь экзешник лежал в той же папке с расширением OVL.

Препод порадовался, что мы «выключили» игру, так как кроме нас в неё рубились трудовик и физкультурник. А на информатику мы до 11 класса не ходили и экзамен сдали на отлично.

11271

Ловкость рук и немного щёлочи

Было это в те времена, когда отец учился в институте — что-то в области радиоэлектроники. Всем дали задание сделать преобразователь напряжения из 220 В в 3 В. Один из группы сделал такой блок питания, что сразу отхватил зачёт: и напряжение ровно 3 вольта, и корпус уж очень аккуратный. Ну, а внутрь лезть никто не стал.

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

11259

Вперёд в прошлое

Дело было в мае. Наткнулся я на очень интересный язык программирования и начал его изучать. Писать классическое Hello World я не стал и взял быка за рога: появилась на свет утилита, отключающая через реестр распознавание USB-устройств. У нас в школе все компьютеры на Edubuntu; что это за зверь, я не знаю, поэтому в качестве полигона для испытаний выбрал компьютер с Windows XP нашей учительницы химии.

Сказано — сделано. Притаскиваю флешку с прогой. Вставляю, запускаю. Странно: флешка читается. Достаю, вставляю обратно — не распознаёт. Ура! Работает. Стоп, а как включить распознавание, если прога осталась на флешке, а флешка не читается?

Конечно, история заканчивается хэппи-эндом (вручную поползал по реестру), но всё-таки перед каждым действием лучше делать бэкап, ведь может получиться так, что действие «вперёд в прошлое» будет неосуществимо.

11255

Сложно — но можно?

В институте был предмет с названием «Структуры и алгоритмы обработки данных». Нас учили реализовывать простые и двусвязные списки, деревья, графы и так далее. Заодно осваивали основы ООП — все эти структуры писали в виде классов. В методичке приводилась реализация всех структур и основных методов — самая базовая функциональность, а в качестве задания студентам предлагалось реализовать ещё какой-нибудь метод. Студенты отжигали не по-детски.

Написать функцию size() для списка? Нормальные люди для этого заводят переменную, обнуляют при создании массива, инкрементируют при вставке элемента и декрементируют при удалении. Но это не по фэн-шую: мы просто пересчитаем все элементы.

Надо вычислить сумму элементов списка, но писать итератор лень. Да и зачем, если в методичке есть замечательная функция seek(i), возвращая i-й элемент? Но в списке, в отличие от массива, невозможен прямой доступ к элементу, нужно просматривать все с начала списка, поэтому сложность будет квадратичной. А можно ещё написать цикл так: for(int i = 0; i < size(); i++) S += seek[i]. Это вообще замечательно: на каждую итерацию сначала выполним size(), которая просматривает весь список, а потом ещё просмотрим с помощью seek только i первых элементов.

Но один студент переплюнул всех. У него было задание написать функцию, сравнивающую два списка как множества: истина возвращалась, если элементы в списках одинаковые, независимо от порядка следования. Он сделал цикл от 0 до size() одного списка, а туда воткнул такой же цикл для второго. Сложность алгоритма получилась О(N^4)!

11250

Цитирую на языке оригинала

В 1995 году, будучи студентом и истосковавшись от безделия и сна на парах после бурных ночей, решил устроиться на кафедру лаборантом. Прихожу, а там, оказывается, конкурс. Балбесов не берут. Завкафедрой, строгий дядька, ставит задачу. Вот тебе кусок кода на ассемблере, завтра принеси аналогичное творение на Borland C. @#$! Ассемблер понимаю, долбаный Паскаль и Бейсик вроде тоже, а с Си что-то не сложилось. Книги читал, а вот писать никак не получалось.

Решение родилось моментально. Ошалевшему завкафедрой сразу же пишу:

asm — и дальше растакой код в ассемблере.

Препод фигеет на ходу. Зовёт другого. Смотрят на это безобразие и друг на друга. Начинают тащиться.

Взяли меня. За находчивость.

11115

С нуля и до нуля

В середине девяностых мне исполнилось десять лет. На мой первый юбилей родители купили 386-й комп — краса и гордость нашей улицы!

Первое время я честно играл. Потом играть честно надоело, захотелось полегче. Решил посмотреть, как устроены игры изнутри, чтобы понять, как можно их поломать. Итогом стали добытые книжки по ассемблеру и компилятор FASM.

Счастье длилось целых три дня, пока я писал учебные программы. На четвёртый день решил написать свою и с нуля. Короче, после запуска моей программы комп начал показывать девственно чёрный экран, а после перезагрузки не смог найти DOS. Так я переписал нулевую дорожку винчестера и похерил бухгалтерию моей мамы. Впрочем, это не отбило у меня желания программировать, а родителей научило держать все важные данные на дискетах.