Software is like sex; it's better when it's free.
Linus Torvalds
...а я бы ещё добавил "and open".
Размышления навеяны недавними бурлениями в ЖЖ по одному весьма забавному поводу. Но я, пожалуй, на этот раз отступлю от своих привычек и начну сразу "с места в карьер".
[ Читать дальше]Есть такой российский писатель по имени Виктор Пелевин. Помимо прочего он написал рассказ "Шлем ужаса". В нём он вывел некую "формулу человека". Которая, как мне потом объяснил тов. malck, является отображением буддистского колеса Сансары в вольной интерпретации. Эта "формула" выглядит примерно так:
Опыт → Желания (стремления) → Вероятности (случай) + Осознанный выбор (воля) → Действие → Опыт
Поясню.
Изначально человек рождается с нулевым опытом, что-то перенимает от родителей, в чём-то набивает шишки сам. На основании полученного опыта он формирует некий набор желаний, часто взаимоисключающих. В каждый конкретный момент времени ему приходится выбирать одно желание из данного набора, которое стоит попытаться реализовать. Выбор может происходить осознанно, на основе доброй воли. Может неосознанно. Могут влиять какие-то случайные внешние или внутренние возмущения, происходящие с той или иной вероятностью. То есть имеет место быть роль случая.
Выбрав конкретное желание, человек начинает пытаться его реализовать. То есть предпринимает какие-то действия. Данные действия приводят к приобретению нового опыта. По результатам которого формируется новый спектр желаний, из которого снова что-то выбирается, и так далее. Цикл замкнулся. Это и есть тот самый "шлем ужаса".
Вышеописанная модель ни разу не претендует ни на научность, ни на объекивность, но лично мне очень нравится. Если попробовать развить мысль дальше, то из этой формулы можно вывести два следствия.
- Если желаешь найти себя, своё счастье и разобраться чего ты на самом деле хочешь, то необходимо попробовать (испытать) как можно более далёкие крайности: пожить и в богатстве, и в нищете; забраться на Эверест и нырнуть в Марианскую впадину; попробовать и сладкое и горькое, и так далее. Только так можно сформировать достаточно широкий разброс своих собственных желаний. В противном случае будет просто не из чего выбирать. Ограниченный диапазон желаний → скудный опыт → нет развития.
- Человека как объект можно однозначно охарактеризовать любой составляющей формулы. "У каждого своя история, нужно только понять которая из них твоя". "Скажи мне что ты хочешь, и я скажу кто ты". "Не по словам, а по делам судите их". То есть это просто взгляд на одно и то же, только с разных сторон.
Вот по второму пункту дальше начинаются интересные наблюдения. Допустим, передо мной стоит некий незнакомый человек. Для меня как для сисадмина он представляет собой своеобразный "чёрный ящик". Некую систему с закрытым исходным кодом. Я хочу разобраться как устроен данный конкретный экземпляр, как он работает, чтобы лучше понять что от него можно ожидать в той или иной ситуации. Какие у меня есть для этого инструменты?
- Reverse Engineering. Самый сложный способ. Моделировать нужные мне внешние (граничные и начальные) условия, подавать на вход ряд раздражителей, следить за реакцией. Таким образом можно понять как человек действует. Проблема в том, что для построения более-менее достоверного среза личности требуется провести очень большое количество тестов, для этого нужно много времени. С другой стороны, при проведении в подходящих экстремальных ситуациях такой метод вскроет самые потаеные закоулки души: "Если друг оказался вдруг и не друг, и не враг, а - так", ну и далее по тексту.
- Отладка. Способ попроще. Каким-то образом выяснить чего человек хочет в краткосрочной и в долгосрочной перспективе. Если он достаточно честный (правдивый) и идёт на контакт, то часто можно узнать необходимую информацию просто задав ряд открытых вопросов. Или даже наоборот, попросив его задать вопросы мне самому. А дальше придется напрячь мозги и попытаться вычислить недостающие параметры в цепочках принятия решений.
- Изучение исходного кода. Самый простой способ. Исходный код человека - это его история, биография. Очень много ценной информации разом даёт знакомство с его/её родителями. Там вообще в большинстве случаев сразу становится ясно откуда и какие ноги растут. Но, увы, не всегда такие возможности предоставляются. Да и мало кто готов выкладывать свою историю незнакомцу, которого видишь в первый раз в своей жизни. Приходится идти "на ощупь", рискуя нечаянно вломиться в личное пространство и отвратить от себя собеседника.
К чему я это всё? К тому, что мне, чёрт побери, всегда очень легко, комфортно и приятно общаться со всеми, у кого исходники открыты. С opensource-людьми. Кому нечего и незачем прятать. Равно как и иметь дело с opensource-софтом.
А ещё меня ужасно и раздражают и забавляют одновременно те, кто пытается отлаживать или реверс-инженирить меня самого. Потому что вижу как они боятся просто взять и попросить те самые "сырцы". Боятся по неосторожности выдать себя или свои желания. А может им просто лениво один раз прочесть их от начала до конца.