Учусь на кодера, параллельно подрабатываю по специальности, иногда делаю курсовые и лабы людям с моего потока. Есть у меня увлечение — по бездорожью ездить. Так вот, глядя, как пишут некоторые мои «коллеги», задумался я: что было бы, если б «программисты» готовили машины к трофи?
Так, есть УАЗик, надо подготовить его. Первым делом что? Правильно — лебёдка. Поставим её вместо левого бака, а сам бак переставим на крышу. Что? Работает не так? Ладно, поставим ещё одну под водительское сиденье. Опять не работает? Должна тянуть вперёд? Поставим кучу роликов, чтоб выходило спереди, вместо правой фары. Не нравится? Ну так работает же почти как надо — сойдёт.
Дальше. Колёса увеличенной размерности. Что? Должны быть одинаковыми? Ладно, клонируем какое-нибудь и поставим. А? Резина направленная и должна быть направлена «ёлочкой» в одну сторону? Зачем, работает же? Ладно. Что, при этом она должна ещё и остаться одного размера? Вы требуете слишком многого — и так работает. А то, что диски на каждом колесе имеют разный вылет от +22 до –40, так это не баг, это фича!
35" колёса с одной стороны и 36" с другой не лезут в родные арки. Порезать арки и поднять кузов на 6 см? Зачем? Арки мы заварим вообще, а кузов поднимем на метр, а чтоб держался — приварим. Что? Устойчивость ухудшилась? Приделаем вам боковые опорные колёсики, как на детском велосипеде. По лесу будет трудно ездить? Мешаться, деревья цеплять будет? Сделаем складными — фича же! Залезать неудобно? Приделаем выдвижные гидропневматические ступеньки, которые будут с прикольным «пши-и-их» выезжать из-под днища.
Поставим бамперы, самые тяжёлые и крепкие, какие найдём. А нашли мы несколько рельс, вот из них и сделаем, будет прочно. Что? В болоте тонуть будет? Ладно, приделаем понтоны с гелием по бокам. Ага, подпорки и понтоны конфликтуют между собой. Сделаем так, чтобы двигатель не заводился, если подпорки и понтоны нужны одновременно — пусть выбирают.
Что? Родного двигателя в 75 л. с. не хватает, чтоб тянуть эту шайтан-повозку? Ерунда, приделаем ещё один, на 300 «лошадок». Как объединить с родным? Поставим спереди и сзади по колесу, которые будут приводиться в движение новым двигателем. Поворачивать трудно? Ладно, выкинем эти два колеса, поставим ещё пару мостов. Будет у нас восемь колёс, два рулевых механизма, причём второй будет управляться педалью сцепления. Сцепление? На кнопку, прям на руле.
Неудобно? Не нравится? Привыкайте — вам на этом ездить.
Разбираю код, наваянный предшественниками, и документирую его. Дохожу до модуля, реализующего цепочку фильтров — подключаемых объектов, преобразующих входные данные. Наблюдаю классику кода «руки б оторвал»: массив объектов, у которых надо поочерёдно вызвать метод process, и рекурсивную функцию next, через которую это делается. Что ж поделать, надо документировать. Переключаюсь в Word, начинаю набирать описание. На полуфразе программа намертво зависает и вот уже больше получаса ни на что не реагирует, демонстрируя песочные часики. То ли отказывается, чтобы набирали такой бред, то ли умерла от расстройства. Азимов с его правилами робототехники и убийством андроида созданием «вилки» отдыхает.
Решил последовать примеру незадачливого автора линукс-будильника и научить компьютер тому же — правда, под Windows.
Итак, Govorilka, чтобы научить компьютер молвить человечьей речью. PHP, чтобы парсить яндексовские новости, почту и температуру воздуха. HiAsm, транзисторы и паяльник, чтобы включать свет сигналом в LPT. В последний момент вспоминаю о том, на чём обжегся мой предшественник — о музыке. Прописываю команду для консольного VLC, проверяю: полет нормальный, всё работает отлично.
Названия моделей современных автомобилей как-то неуловимо похожи друг на друга, будто у них один автор. Обращали внимание? Наверняка существует программа, лепящая случайные названия согласно каким-то разработанным психологами алгоритмам, чтоб звучало приятно и продавалось бодро.
Мы с парнями, понятно, не автоконцерны и оригинала той программы, разумеется, не имеем. Но вот свой аналог как-то вечером ради развлечения слепили на «пыхе» за пару минут. Алгоритм дубовый: задали список звучных окончаний, подсмотренных в буржуйском автопроме (-is, -olla и т. п.), от балды придумали простейшие правила чередования гласных и согласных. Великий Рандом лепит из случайных букв начало слова (от двух до пяти символов) и приделывает ко всему этому окончание из списка. Напоследок придумали с некоторой вероятностью добавлять к названию число — для пущего понту.
Программа запущена. Среди первых же вариантов: «Lues 3». В моей памяти как раз были свежи булгаковские «Записки юного врача», а вот парням пришлось лезть в гугл для ответа на вопрос, почему это их товарищ забился в конвульсиях, упал под стол и хрюкает оттуда? Решили, что эту модель следует выпускать в бескапотной компоновке.
Дело было вечером, делать было нечего. Решил я, что хватит использовать свой старый советский будильник. Раз уж ноут сутками качает, то пусть он меня и будит, и не просто будит, а с шахматами и балеринами.
Что мне с утра надо? Погоду, новости, свежую почту. Хм... Ну, чтобы ещё и поприветствовал меня как хозяина. Шелл, festival в зубы — и вперёд.
Может, ещё добавить список завершённых торрент-закачек? Пусть он ещё вентилятор включает и мягкий свет релаксирующей лампы. А если тут прописать вот так — сработает? А если так? А почему русским голосом не говорит?
Вроде всё. Глаза привычно скашиваются в нижний левый угол экрана. Лёгкий мат: вставать через полтора часа.
echo "sh ./.alarm.sh" | at 8:00
Проснулся я только в полдень под мягкое жужжание вентилятора. Включение плеера прописать-то и забыл.
Добавляя го и гейш, не забывайте и про главную функцию программы!
Лето третьего курса. Защита практики. Обсуждаем друг с другом, как да что. Один из сдающих объявил, что результаты подсчитывались у него пять суток. Стало интересно.
— Ну, там массив 65536×65536, всего восемь гигов, пришлось в файл загонять. А с файлами, сам понимаешь, работа небыстрая, особенно если нужно считать нужно переменную из самого конца. — Ты про функцию fseek() когда-нибудь слышал? Не поверишь: можно перейти к заданному байту файла. — Бли-и-ин!
Так программа и работала: для того, чтоб считать два байта из конца файла, она пережёвывала все восемь гигов.
Друг без инета сидит, попросил скинуть ему страничек сорок Башорга. Мне вручную сохранять, понятно, лень. Накидал программку строк на двадцать: автоматом качает странички и сохраняет. Компилирую. Антивирь как заорёт: «Даунлоадер детектед! Вирусня! Держи её!» Вот так и я стал разработчиком потенциально опасного ПО.