Истории с тегом: мысли о вечном

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

5342

Плед до добра не доведёт

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

5331

О сложности простоты

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

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

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

Оверинжиниринг — вот мировое зло, вот дьявол всеохватный. Надо же обязательно показать всему миру длину своей пиписьки, свою «современность» и владение всякими супер-пупер-технологиями. Как? Ты до сих пор ищешь четыре максимальных элемента в массиве при помощи цикла? Так ведь в последней версии надстройки для последнего Visual C++, которая продаётся всего за $1600, давно реализован готовый класс для этого! Или можно взять готовую функцию qsort, которая всего-то отсортирует зря остальные 4 миллиона элементов, зато ты потом просто сможешь взять e[0], e[1], e[2], e[3] — и всё!

Головоломщик пишет красиво, компактно, оптимально. Задача легко охватывается одним взглядом, блоки отделены один от другого логично и изящно, пусть и с нестандартным форматированием. Отличается от хорошего программиста тем, что не комментирует свой код и даёт всему сущему идиотские названия. Иногда доходит то такой изощрённой пытки, как некомментированная ассемблерная оптимизация, идеальная с точки зрения кода, но с читаемостью на уровне клинописи:

for (b=a=0, a

Возможно, после пары тумаков он станет нормальным программистом и начнёт писать так:

for (MaxVal=i=0, i
if (MaxVal
// Ищем максимальный элемент и его номер. Массив полностью нулевым не бывает (проверено выше), поэтому MaxIndex всегда определён.


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

5320

«Тру» не по нутру

Разрешите представиться: быдлокодер. Да-да, та самая мифическая и несуществующая личность. Кого ни спроси — он тру-программер, а быдлокодер ходит где-то рядом. Позвольте полюбопытствовать, господа тру-программеры, а за неделю до сдачи проекта вы таки пишете нетленный идеальный код? Написание быдлокода — это как дефлорация. Не написал быдлокода — не программист. Но вопрос не в этом. За 25 лет (да-да) быдлокодинга я составил для себя классификацию «тру программеров». Вот она.

* * *

«Гении». Берутся за всё, делают на треть. Потом говорят: «Остальное тривиально», и за них доделывают другие. Любой совет со стороны воспринимают как повод унизить собеседника: «Чё ты ваще понимаешь?»

«Архитекторы». Эти лучше только тем, что берутся не за всё сразу. Зато любят изобретать свои архитектурные решения. Казалось бы, для типовой задачи за полвека придуман не один десяток типовых решений — нет, надо изобрести очередной велосипед с квадратными колёсами. Чуть не забыл: в архитектуре, по их мнению, я тоже ничего не понимаю.

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

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

«Оптимизаторы». Могут веками переписывать что-то на ассемблере (внося баги, конечно), считать такты процессора в Java-приложении и хранить биты в SQL-сервере.

* * *

А что же быдлокодеры, к коим принадлежу и я? Принцип «сделай быстро, сделай тупо, не пиши лишнего кода» — он не от хорошей жизни.

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

Ладно, ребята, гордитесь, только не при мне. Я видел ваш код. С точки зрения унитаза люди различаются довольно слабо.

5308

Да, он такой

Он не считает себя настоящим программистом, так как знает много пацанов, которые реально круче, и даже одну женщину.

Его не переспоришь. Логика — его профессия, ею он зарабатывает на жизнь. Единственное, в чём он может признаться: «На сегодняшний день данный вопрос меня не интересует».

Первая заповедь программирования для него: «Программы пишутся не для компьютеров, а для людей».

На стене у него висит плакат «Не забывайте сохраняться!» как напоминание для пользователей и для него самого.

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

Он может высмеять или послать начальника — а вы попробуйте найти кого лучше!

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

Он не признаётся жене в любви, потому что знает, что услышит в ответ: «Докажи».

Любая кошка в его руках начинает мурлыкать, потому что безоговорочно признаёт в нём хозяина.

Дети в его присутствии перестают плакать, а одно его появление в бухгалтерии внушает уверенность и умиротворённость.

Он до сих пор может сокрушаться, что лет десять назад где-то не там поставил запятую или набрал символ не в том регистре, в результате чего «подвёл команду».

Ему до сих пор жалко потерянного рабочего дня, когда он забыл сделать бэкап.

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

Создание SQL-запроса внутри цикла он тоже считает грехом: знает, что такое стек, на аппаратном уровне.

Хеш-массивы вызывают у него чувство ностальгии по постреляционным БД, безвременно почившим в девяностых.

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

Алкоголь не оказывает на его способность к программированию ровно никакого действия: качество остаётся тем же, а скорость… Что ж, скорость в понедельник утром всегда низкая вне зависимости от.

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

На отраслевых форумах он никогда не издевается над новичками, потому что выставлять себя на весь мир недочеловеком не в его интересах.

В разговоре с пользователем он может произвести впечатление умственно отсталого, когда ему объясняют вполне очевидные вещи (которые в дальнейшем оказываются совсем не очевидными).

Над строкой комментария он думает больше, чем над строкой кода.

Его код красив, а если он на Перле, то читать можно нараспев: «foreach $key (sort keys %FORM)». Красота для него — отсутствие неопределённостей и ненужных сущностей.

Когда ему в очередной раз говорят: «А ведь вы тогда были правы», это вызывает у него не радость, а опустошённость из-за напрасно потерянного времени.

Да, он такой — настоящий программист.

5288

Кого ты грузишь?

Мы выросли в одном дворе, а учились в разных школах. Обычные мальчишки с разными судьбами. У меня физмат, стажировка в Чехии, потом в Америке, и хороший контракт по окончании вуза. У него девять классов, профтех по авторемонту, колония за хулиганку и по освобождении работа в небольшом авторемонтном сервисе.

Я как раз приехал из Америки. Тёма ко мне в гости зашёл и загорелся, увидев новенький ноут. Соблазны простые: игрушки, картинки с тачками и девчонками, доступ к тематическим автомобильным форумам. Пацан решил — пацан сделал! Через неделю мы откопали в инсте старенький «пенёк-четвёрку», и Тёма пропал недели на три — сидел в сети.

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

Работа шла в гору. Через год я приехал в старый двор к родителям в гости на своей новенькой «Хонде» и, встретив Тёмку, почти сразу начал грузить автомобильными вопросами. Так и сяк: одно спрошу, в другом попрошу посоветовать. «Наверное, — говорю, — шаровые сдыхают. При крутом повороте руля в любую сторону при движении страшный скрежет раздаётся». Друг детства сел в машинку, проехал кружок по двору, послушал, потом вылез и печально так мне начал говорить: «Шаровая, да? Чему вас только в универах ваших учат…» Срезался, молча подошёл и пинками сбил снег с колёсной арки.

Вот и вся история. Мораль в чём? Если уж перед тобой друг, не выпендривайся!

5258

Шампунь-фетиш

Если взглянуть с другого ракурса, окажется, что админы — лучшие кандидаты в мужья. Многие вещи, которые приходится делать ради других мужчин, с админами совершенно ни к чему.

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

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

И нечего ругаться, что он грязный. Посуду или ковры ты же за такое не ругаешь, а просто моешь. Админ просто не знает, что он грязный, поэтому надо просто взять его и отмыть. Не нужно даже объяснять — достаточно сказать, что тебе нравится процесс. Трогать нельзя только его рабочий стол, но если хорошенько запастись терпением, то можно уговорить его самому там прибраться.

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

Не нужно уговаривать его смириться с теми обоями (или мебелью), которые тебе нравятся. Достаточно не говорить ему, что ты их поменяла, а сам он не заметит.

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

5219

Индийский код: основы основ

Копаясь в папке с литературой, посвящённой компьютерным сетям, языкам и технологиям программирования, наткнулся на файл Йога для пальцев.pdf. Вот сижу и думаю: перенести в другую папку или оставить?

5216

Аптечка первой помощи

После реанимации очередного ноута я понял, почему «Линукс-центр» продаёт свои дистрибутивы в объёмных пластмассовых жёлтых коробочках. Это же для того, чтобы в них поместилось ещё полтора десятка дисков и флешек с другими осями!

5188

Там Дверью пахнет

У сисадмина серв от Intel,

Ядро i7 стоит на нём.

И днём и ночью ты, убитый,

Е@#шься с ним, как с букварём.

Как «линь» поставил — песнь заводишь;

Под Windows матом говоришь.

Там чудеса, там BSoD выводит,

Там в Микрософте Билл сидит...

Там от неведомых экзешек

Следы невиданных зверей.

Там выдаёт «Не отвечает»,

Когда нажмёшь ты на «ОК».

Там SSH не обитает —

Хреново без него порой...

А грёбаный telnet слетает,

Когда брутфорсят твой пароль.

Там chroot'а нет — как хостинг ставить?

Как обойтись без IIS?!

А вот никак! Format спасает...

Apache без «никса» — не жилец.

Там злостный вирь над hosts'ом чахнет,

Там гейтский дух, там Дверью пахнет.

* * *

И я в ней был, монитор разбил.

По кулаку текло, а реестр не починило.

5147

Сгодился бы и Бейсик

Встречая Новый год в одиночестве, решил сварить глинтвейн. В наличии была бутылка вина, но не нашлось штопора. К объекту «бутылка вина» в качестве метода открытия были применены последовательно моток скотча, толстый мануал и молоток. Горлышко я перемотал скотчем, положил на мануал и стукнул молотком выше внутреннего конца пробки, после чего налипшие на скотч куски горлышка убрал, а пробку со вбитыми в неё мелкими осколками выдернул. Глинтвейн был сварен, и первой фразой, услышанной в новом году, был голос Императора: «...увидишь мощь этой полностью оснащённой боевой станции».

А мануал был по Яве. Не пойму, за что её так ненавидят программисты?