Если вы знаете, и помните человека под ником CYBERMANIAC, для вас этот разговор будет похож на внезапное обнаружение половины студенческой зарплаты во внутреннем кармане старой куртки. Для тех кто никогда не слышал о Станиславе, я думаю будет тоже интересно почитать о небольшой, но уникальной искре времени начал интернета в далеком от столиц городов России глазами CYBERMANIAC'а. Он мне показался неизменным с 00 годов да и настолько изолированным, что очень уж захотел написать о нем.
Мы осторожно поговорим о жизни программиста в глубинке, о языках программирования с момента появления их в России: Forth, Borland Pascal, Delphi ,C#, MegaBasic, Java, SQL, C++. о япоском языке, о змеях, о национальных напитках, о Сократе, о советских объективах, о звездах, человеческих страхах.
CYBERMANIAC носит в себе большой опыт в крекинге, написании утилит, автор Neo Sign 0f Misery, древней электронной книги “Теоретические основы крегинга”, а так же автор многим любимого windows scanner и большого фотолюбителя-звездочета. Интервью получилось многим больше, чем я расчитывал. Но надеюсь, для вас будут звучать колокольчиками похожие мысли. Именно их мы и слушаем, когда читаем…
Давай начнем с разговора о твоей текущей деятельности, а потом переключимся к моим безумным вопросам?
Скажи, пожалуйста, каким уровнем задач ты сейчас загружен? В каком городе ты живешь?
Ведешь ли какой проект и за что отвечаешь? Существует ли у вас в компании шаблон ведения бизнеса с западными словечками-ярлыками?
Живу в Железногорске, что в Красноярском крае, город хотя и довольно развитый в промышленном плане, но вполне себе «медвежий угол» в самом прямом смысле слова: из любой его точки до тайги — от силы полчаса ходьбы, а на городских окраинах медведей замечают с пугающей регулярностью. Сам лично я с «хозяином тайги», правда, близко не общался и не особо жажду, но вот следы — находил.
По роду деятельности — программист, занимаюсь автоматизацией управления производством на предприятии. Однако на слово «управление» внимание можно не обращать, поскольку в действительности речь идёт всего лишь об учёте мат. ценностей, планировании закупок, загрузки цехов и прочих столь же приземлённых вещах. Так что менеджерский сленг у нас не в ходу, бизнес-частью занимаются совсем другие люди, с которыми я практически не пересекаюсь. Всё это «управление производством» держится на самописной MPRII-системе, серверная часть которой крутится на Oracle и повидала и VAX, и Alpha, и не удивлюсь, если и x86 переживёт, и «супертолстом» модульном пользовательском клиенте, модули для которого я и сочиняю. Занятие это настолько не воодушевляющее, что с подоконника приходится регулярно сметать мух, насмерть заскучавших, глядя на нас. Я хоть и не обделён воображением, но представить себе людей, которые способны заниматься такими вещами с удовольствием и не ради денег, у меня никак не получается. Бывает, правда, возникают задачи, требующие использования WinAPI, владения Delphi или просто разработки небанального алгоритма, но случается такое редко и хватает их совсем ненадолого.
Как ты очутился там где находишься? Есть ли люди, которые как то давят на тебя на работе просто из-за иерархического статуса?
С трудоустройством всё банально: пока учился, параллельно работал то там, то сям, пока не подвернулся вариант, хотя бы отдалённо похожий на то, в чём я разбирался. Так там и остался, более оплачиваемые вакансии по специальности у нас не часты, а если уже менять место жительства, то сразу на тропики, в этом вопросе компромиссы для меня абсолютно неприемлемы.
Сама иерархия как данность меня не особо напрягает, поскольку непосредственный руководитель — тоже практикующий программист. Сложность лишь в том, что он — программист старой закалки, а потому вышепомянутый клиент снаружи выглядит так, как будто родился в один год с 95-й виндой, хотя дело даже не в дизайне, а в том, что уже лет пять как такие задачи решаются не мегабайтными клиентами на C++, самоскачивающими программные модули, а средствами web-программирования. Однако менять парадигму никто не хочет и не будет, покуда наконец всё это чудо техники наглухо не откажется работать под какой-нибудь Windows 9.
Город, в котором ты живешь, ты его любишь? Я знаю, ты как то жаловался на приливы тоски, связанные с малым количеством теплых дней. Твои фотографии в блоге, снятые экспериментами на советские объективы, дают немного понять — если что и менялось в этом пейзаже для тебя, так это высота обзора, так как с возрастом ты становился выше…
Трудно сказать… Я скорее люблю места, которые для меня значимы, и ощущения, которыми они отзываются в моей душе, в родном городе таких, конечно, больше, чем где-либо ещё. Однако город сильно изменился на моих глазах, и я всё чаще замечаю, что в окрестных городках места, которые похожи на мой родной город даже больше, чем он нынешний — на себя прошлого. Не могу сказать, что это всегда так уж плохо — улицы становятся ярче, дома — современнее, просто со всем этим меня почти ничего не связывает, и «малая родина» превращается в просто «город, где я живу». К тому же, я давно уже стал замечать, что пространство вокруг меня с каждым годом как бы сжимается, если в детстве просто сходить на другой конец двора было уже «далеко», съездить на автобусе к бабушке — целое путешествие, а уж добраться до краевого центра (всего-то 50 километров) — почти как слетать на Луну, то сейчас проехать на велосипеде 30 километров — всего лишь обычная вечерняя прогулка, а ощущение освежающей новизны я начинаю испытывать только где-то за сотым километром от дома. Неизменна лишь тайга: иным тропам, которыми я хожу, уже точно больше четверти века. Выйдя на балкон, увидеть верхушки сосен до горизонта — пожалуй, единственное, чего мне иногда не хватало под тропическим солнцем.
Климат у нас совсем не подарок — «пять месяцев — снег, три месяца — грязь, остальное — клещи». Зима, конечно, раздражает особенно; грязь — эфемерна, от тесного общения с клещами тоже можно уклониться, но холода с ноября по апрель — это воистину ужасно. Мало того, что приходится напяливать на себя столько одежды, что чувствуешь себя космонавтом, так ещё и заняться все эти пять месяцев почти что нечем: о пляже и велосипеде можно забыть сразу, к обычным зимним развлечениям вроде лыж и сноуборда я совершенно равнодушен, фотоохотиться получается только на птиц, да и то за час-полтора замерзает либо камера, либо руки, посмотреть на звёздное небо тоже нечасто удаётся, потому как самые ясные ночи обычно самые же и холодные. Остаётся лишь валяться на кровати, читать книжки с iPad'а, учить японский или брать отпуск и ехать в тропики, три недели жить там на всю катушку, а потом пару месяцев приходить в себя от того, что там всё было тёплое, солнечное и яркое, а здесь лишь снег и холод.
SOFTWARE
Здесь начинается самое интересное. Потому что география, дорогие читатели, похоже, влияет не только на культурные особенности, но и на предпочтения в выборе средств разработки. Факт?
Продукция Borland своей популярностью в экс-СССР обязана скорее не географии, а качеству продукта и тому, какие задачи в то время стояли перед большинством программистов (которые тогда были именно программистами, а не «разработчиками» и «software engineer»-ами). Во-первых, у Borland раньше других появилась интегрированная среда разработки, причём настолько удачная, что быстро стала негласным стандартом и образцом для подражания: RHIDE для «открытого» компилятора DJGPP, BlackCat ASIDE для TASM и многие другие копировали именно её. Вполне современный FreePascal тоже использует практически точную копию среды Borland Pascal 7.0, и хотя текстовые интерфейсы уже лет десять, как почти полностью вытеснены графическими, я бы не сказал, что она неудобна в обращении. Видимо, по этой же причине компиляторы Borland прижились и в учебных заведениях: разбираться в ключах командной строки ради сборки учебного проекта из двух десятков строчек — удовольствие сильно на любителя, от которого преподаватели и студенты, благодаря стараниям фирмы Borland, были избавлены.
Вторым преимуществом была библиотека Turbo Vision, сделавшая «фирменный» интерфейс Borland общедоступным. До этого едва ли не каждый программист проходил через написание собственной библиотеки для создания кнопочек-окошечек, без которых законченный программный продукт уже тогда представить было трудно. Для разработчиков бесчисленных бухгалтерско-кадрово-складских программ, в которых кроме этот самый интерфейс с неизбежными кнопочками и полями редактирования нередко был самой объёмной частью, Turbo Vision стала поистине даром с небес. Вообще же Borland тогда всё же не была абсолютным лидером, а делила пальму первенства с Watcom, причём для создания приложений реального режима чаще применяли Borland, а Watcom практически безраздельно властвовал в режиме защищённом. Нынешний же софтверный монстр до появления Windows был известен широкой общественности не корявеньким и ничем не примечательным Microsoft C и даже не бессмертным MASM, а «народным» QuickBasick'ом.
Да и, насколько я знаю, популярность продукции Borland — отнюдь не российский феномен, в Европе она получила распространение намного раньше, откуда и пришла к нам, а Северная Америка с их модой на Microsoft — совершенно отдельный от нас мир со своими малопонятными пристрастиями.
Какие языки актуальны на твоей работе? Я знаю, что вы до сих пор кладете великое слово на детище майкрософта C#.
Не могу сказать, что я его абсолютно ингорирую, я даже немножко на нём программировал: существует плагин для Paint.Net, который позволяет написать на C# программу обработки изображения и тут же, без привлечения всяких «студий», его запустить. Вот именно для этого я им и пользовался, для экспериментов и разовых задачек, когда код пишется дольше, чем работает. Но чтобы на нём что-то разрабатывать с нуля и целиком, на такие жертвы я пока что не готов. После того, как какая-то из программ попросила установить ей .Net Framework предыдущей версии при том, что у меня была уже имелась более новая, я пришёл к выводу, что для конечного и массового пользователя .Net — это девятый круг DLL-ада, и у меня нет ни малейшего желания их туда отправлять.
Поднимите руки кто считает что будущее за C#? — да, впечетляет.
Поднимите руки, кто считает что Delphi жив и не умрет еще очень долго?
— СИ шарписты, прекратите смеяться и щекотать коллег.
Я думаю, мой шутливый пример хорошо показывает реальность. Ты испытываешь грусть от этого?
По мне, так подход Embarcadero вредит Delphi сильнее, чем это смог бы сделать Microsoft. Если посмотреть на эволюцию Delphi (да и C++ Builder), нетрудно заметить, что среда разработки обрастает инструментарием, ориентированным на промышленное применение в крупных и сложных проектах. Для небольших и средних проектов нынешняя среда разработки явно избыточна, поэтому довльно много народу до сих пор сидит на Delphi 7, на уровень стабильности которой Embarcadero смогла вернуться только в Delphi XE. «Творчески переосмысленная» справка в Delphi 2005, думаю, для многих стала неприятным сюрпризом: описание многих функций в ней занимало лишь пару строчек, ничуть не проясняющих тонкости их работы, а то и вовсе отсылавших за подробностями на официальный сайт. С тех пор справку, конечно, подрихтовали, но «белых пятен» в ней всё ещё хватает. Зато радикальная смена формата справки на новый и «модный» в разы увеличила время от нажатия кнопки F1 до получения нужной информации.
Не по душе и то, что увлёкшись добавлением ультрасовременных технологий, команда разработчиков Delphi не торопится реализовывать крайне необходимый, но более «приземлённый» функционал. Компонент «иконка в трее» — один из самых востребованных — появился в 2006 году, однако из-за досадной ошибки использовать его стало возможно только в следующей версии; перевод VCL на использование Unicode, необходимость которого была очевидна уже в начале нулевых, состоялся лишь в Delphi 2010, компиляцию под 64-разрядные платформы мы тоже дождались только в прошлом году, хотя техника на основе x86-64 лет пять, как прописалась на рабочих столах. О полноценной поддержке BMP с альфа-каналом и говорить не приходится: несмотря на то, что на дворе уже второе десятилетие 21 века и требования к дизайну приложений существенно выросли, VCL всё ещё живёт в мире доисторических картинок с индексированными цветами. Есть, правда, FireMonkey, но это пока что «тёмная лошадка» с норовом, в то время, как для VCL написаны уже гигабайты проверенного и стабильно работающего кода.
Главная же беда Delphi в том, что ныне она существует лишь в платном варианте, резко ограничивая приток новых разработчиков, в то время, как главный конкурент раздаёт экспресс-версии своих средств разработки в порядке гуманитарной помощи. Раньше для энтузиастов существовала Turbo Delphi Explorer Edition, урезанная до нериличия в плане установки новых компонентов, но даже эта весьма скромная инициатива заглохла, едва начавшись. Неудивительно, что популярность продукции Embarcadero среди тех, кто только начинает программировать, отнюдь не растёт.
Мне кажется, что человек, имеющий большой опыт, просто обязан рассказать что чувствует в каждом языке замечательного.
Мой идеал языка программирования — минимум синтаксиса при полном представлении о том, как будет исполняться программа. Я вообще надеюсь, что когда-нибудь мы придём к языку, вообще не имеющему синтаксиса в традиционном понимании этого слова. Возможно, те, кому англиийский язык — родной, все эти «if», «while», «continue» действительно воспринимают как слова, несущие некий смысл, но для всех остальных это не более, чем набор латинских закорючек, которые можно без всякого ущерба заменить любыми другими закорючками, хоть арабскими, хоть китайскими, хоть абстрактными (и потому общепонятными) пиктограммами, а процесс описания алгоритма свести к рисованию блок-схемы. Такой подход к созданию сценариев автоматизации и построению SQL-запросов используется довольно давно, но если рассматривать индустрию программирования в целом, всё это — капля в море, несовершенство существующих средств ввода очень сильно нас ограничивает. Действительно, набирать программу на клавиатуре пока что быстрее и проще, чем «собирать» при помощи мыши, однако «бесклавиатурные» устройства с сенсорными экранами, всё решительнее вторгающиеся в нашу жизнь, вполне способны изменить баланс сил.
Если говорить о конкретных языках программирования, более всего меня в своё время впечатлил Forth. По сути, весь его синтаксис укладывался в две строчки:
Программа состоит из «слов», каждое из которых является исполняемым.
Слова отделяются друг от друга пробелами.
Совершенно восхитительный образчик синтаксического экстремизма! Не содержа в себе операторов, служебных слов, функций и всей прочей атрибутики традиционных языков программирования, он при этом он обладал практически безграничной расширяемостью. Forth, изначально не поддерживающий даже типизацию, мог быть превращён во что угодно исключительно средствами самого себя.
Delphi я выбирал из подобных же соображений: синтаксис классического Паскаля прост и непротиворечив, а расширения, внесённые Borland, не выглядят чем-то чужеродным и противоестественным. Delphi для меня — «прозрачный» язык, позволяющий излагать суть алгоритма, совершенно не задумываясь о форме, в которую его предстоит облечь. Другой причиной была возможность быстро создавать интерфейс программы, не спускаясь без крайней необходимости на уровень вызовов WinAPI и обработки сообщений. Ну и, разумеется, компоненты, которые очень экономят время и нервы: не представляю, сколько сил у меня бы ушло на самостоятельное создание шестнадцатиричного редактора для Window Scanner'а или на редактор с подсветкой синтаксиса для Neo Sign 0f Misery, и осталось ли бы после этого желание написать ещё хоть что-нибудь.
Сейчас же я понемногу осваиваю Ruby. В некотором смысле этот язык — антитеза моим идеалам: синтаксически избыточный, не имеющий ныне компилятора в «честный» исполняемый код, не слишком удобный для непосредственного общения с операционной системой на уровне API. И всё-таки, что-то в нём есть: один только оператор unless («если не») при первом знакомстве повергает в экстаз. Да и с чисто практической практической точки зрения ограничивать себя исключительно классическими областями и языками, не уделяя внимание современному программированию, было бы категорически неправильно.
А поскольку от любви до ненависти один шаг, не могу не отметить языки, которые мне более всего не понравились.
Во-первых, Java. Я не написал на ней ни единой строчки, но каждый раз, пока загружается LibreOffice, я её просто ненавижу, ибо «офис» от Microsoft, написанный без использования JRE, стартует за пару секунд, а свободный, но с JRE — едва ли не в десять раз медленнее. Воистину, этот язык создавался с единственной целью: побольше съесть и поменьше работать.
Второй номер — SQL. Мне трудно доверять языку, в котором элементарный вопрос: «Что быстрее — внешнее соединение таблиц или вложенный запрос?» в общем случае умозрительно разрешить практически невозможно. Кроме того, меня регулярно раздражает, насколько громоздкие запросы порой порождаются элементарными, по сути задачами.
И, наконец, C++. Обречённая попытка объять необъятное; монстр, разжиревший на попытках впихнуть в него все «модные» парадигмы, который, однако, из года в год тащит на себе седую древность в виде заголовочных файлов и архаичного препроцессора, который при большом желании можно заставить сделать многое, но обычно желание заканчивается намного раньше, чем это «многое» получается сделать и отладить. Про «мелочи жизни» вроде перегруженного синтаксиса или времени компиляции, проистекающие опять же из обширности языка и тех же заголовочных файлов, даже и говорить неудобно. В общем, этот язык — полное собрание проблем, характерных для проекта, пережившего собственную смерть.
А теперь давай в твое прошлое. Твой первый компьютер и твой первый язык?
«Мой первый компьютер» и «первый компьютер, с которым мне довелось плотно пообщаться» для меня — две весьма отличающиеся машины. Два года я ходил в кружок программирования при местной Станции Юных Техников, там был весьма продвинутый по тем временам компьютерный класс на основе Yamaha MSX-2, машины были хоть и 8-разрядные, но с аппаратной поддержкой спрайтов, звуковым сопроцессором, RAM-диском, какой-никакой локальной сетью, и даже цветным монитором, мышью и дисководом на «головной» машине. Реализация Бейсика на той машине тоже была лучшей из всего, что я видел для техники этого уровня. Единственный недостаток — у нас было всего три занятия в неделю, да и то почти за каждой машиной сидело по два человека, и очень важно было придти раньше, чтобы оказаться тем из двоих, который сидит за клавиатурой.
Домой же компьютер я заполучил на не помню уже какой по счёту день рождения, это была «Дубна-48К», клон «Спектрума» с уменьшенной в 2 раза тактовой частотой и совершенно дубовой клавиатурой, после шести часов пользования которой пальцы чуть ли не судорогой сводило. До «Ямахи» ей, конечно, в техническом плане было далеко, зато она была только моя все 24 часа в сутки, к ней можно было раздобыть программы, а через пару лет — даже найти в продаже книжку "ZX Spectrum для пользователей и программистов", которая на развалах стоила чуть ли не как «Копи царя Соломона», зато позволила, наконец, разобраться и в ассемблере для Z80, и в архитектуре Спектрума. Пониженная тактовая частота процессора «Дубны», собственно, меня и сподвигла на изучение ассемблера и первые эксперименты по взлому: мои собственные программы на Бейсике иногда работали не так быстро, как хотелось, а некоторые игры, рассчитанные на нормальную частоту, просто не загружались. А уж когда я написал свою собственную программу поиска шрифтов в памяти, и она работала так быстро, что пришлось вставлять в неё пустые циклы для замедления, и при этом умещалась в пару сотен байт, тут мне стало окончательно ясно, что ассемблер — это сила, способная горы свернуть. Спектрум — пожалуй, та из платформ, об уходе которой я сожалею больше всего. Если ты умеешь программировать на ассемблере, знаешь назначение портов ввода-вывода (которых использовалось не больше десятка), умеешь обращаться с прерываниями и владеешь документацией по подпрограммам ПЗУ — ты способен сделать со Спектрумом всё, что он позволяет, и даже чуть больше. Современная Wintel в этом плане — болото, в котором по выражению Пелевина, «тупой ум утонет, как утюг, а острый — как дамасский клинок».
HACKING
Про твой хакерский опыт я знаю мало. Я не сильно здесь в теме. Когда все началось? Откуда возникла потребность, открывать запретные сложные вещи?
Начнём с того, что некогда всё это ещё не было запретным. Переписать программу или музыку было в порядке вещей, никто в том греха не усматривал. И уж, конечно, никому и в голову не приходило осуждать человека, который поправил десяток байт, чтобы программа, которая ранее отказывалась загружаться и работать, всё-таки начала это делать. Взлом игр на предмет получения «бесконечных жизней» так и вообще процветал, выходили даже брошюрки о том, в какой игре какие байты надо поправить, чтобы было легче её пройти, и — для более продвинутых — как эти байты выявить самостоятельно.
То есть потребность и тогда, и ныне, была большей частью практическая: ускорить свои программы кусочками на ассемблере, заставить загружаться и работать чужие, посмотреть, чем кончается игра, честно пройти которую никак не получается. Программы тогда не стоили ничего, а вот информация о том, как ими пользоваться, ценилась на вес золота. Документация была почти недоступна, что особенно мешало освоению языков программирования, которыми я заинтересовался практически сразу. И вот я придумал просматривать код программы при помощи простейшего монитора в одну строчку на Бейсике, выискивая текстовые строки. А потом пробовал использовать эти строки в качестве операторов, подставляя после них всевозможные параметры и изучая сообщения об ошибках. Несмотря на всю примитивность подхода, мне таким способом удалось практически полностью разобраться в MegaBasic'е и ZX-Forth'е.
Самый первый свой взлом я провернул не только совершенно не разбираясь в машинных кодах, но и имея весьма смутные представления о компьютерах вообще. Было это в красноярском аэропорту, и «взломал» я игровой автомат. Бытовали тогда такие раскрашенные железные короба с вмонтированным внутрь телевизором, джойстиком и каким-нибудь бытовым компьютером, в который загружали специальным образом пропатченную игру (в моём случае это оказался нестареющий «River raid»). Скорми агрегату 15-копеечную монетку, нажми на красную кнопку, и можешь играть. Разбил три самолётика — доставай следующую монетку и начинай сначала. Игра была незнакомая, джойстик — дубовый, поэтому монетки убывали очень быстро. Тут-то мне и пришла шальная мысль: «А что, если, не бросая монетку, нажать на красную кнопку до того, как игра закончится?» Неизвестный умелец, скрещивавший «River raid» с кнопкой и монетоприёмником, такого хода детской мысли явно не ожидал: игра просто перезапустилась с начала, и у меня вновь было три самолётика. Нетрудно догадаться, что каждый раз, когда дело шло к проигрышу, я просто жал красную кнопку, и отлип от автомата только тогда, когда за спиной собралось совсем уж неприлично много народу.
Ближе к концу 90-х, когда PC начали понемногу превращаться из предметов роскоши в бытовую технику, ситуация несколько изменилась: основным источником программ стали компакт-диски со всевозможным ПО, собранным с миру по нитке. Там документация обычно поставлялась в составе продукта, зато часто попадались «условно-бесплатные» программы, которые через 30 дней начинали настойчиво требовать регистрации. Купив как-то по случаю диск «всё для программиста», я обнаружил на нём прямо-таки залежи полезных программ и библиотек на все случаи жизни, значительная часть из которых, однако, страдала недугом жадности. К моему счастью, на том же диске обнаружилась и заветная директория со сборником серийных номеров Oscar, отладчиком SoftIce, дизассемблером W32Dasm и коротеньким учебником по крэкингу за авторством the Keyboard Caper'а, пояснявшим на примерах, как всё это добро использовать. В итоге взлом программ с этого диска стал для меня основным развлечением на несколько последующих месяцев, и соперничать с ним по увлекательности мог разве что первый Fallout.
Ты участвовал в какой либо команде или ты был волком? ( про текущее положение наверное нет смысла спрашивать, все равно ты мне точно не расскажешь) )
Я вообще не командный игрок. Если под «командой» понимать крэкерскую команду из тех, плодами трудов которых пользуется едва ли не весь интернет, то в таких я не участвовал. Поначалу я свой уровень считал неподходящим, а когда до нас добрался скоростной интернет, без которого даже скачивание OllyDebug растягивалось чуть ли не на полчаса, не осталось ни желания, ни причин, которые могли бы его породить. Если по первости я подписывал свои крэки, «чтобы всё было, как у людей», то последние мои изделия ходят безымянными.
Если же говорить об участии в каких-либо проектах вообще, то участвовал я много где, но эпизодически, и по большей части — как литератор. Самым продолжительным опытом в этом плане были «Теоретические основы крэкинга», которые впервые увидели свет в виде цикла статей в белорусском журнале по радиолюбительству, название которого я уже и запамятовал за давностью лет.
FREEWARE
Признаться честно, если бы не пиратство, Россия была бы в полной разрухе, ведь пиратский фотошоп 6 версии таки дал мне пищу для размышления в 16 лет, а сколько людей обучились помимо меня? Это можно расценивать как пропаганду пиратства, но я здесь врятли что пропагандирую. Просто декларирую свое прошлое.
Быть может здесь работает некий закон равновесия? Ведь это глупо присваивать авторство программного кода, обкладываться патентами, авторством песен, когда ты не знаешь на самом деле благодарить ли кого, что ты вообще в состоянии что то делать, напрягать мозги и видеть белый свет. С другой стороны, художнику нужно на что-то жить и кормить семью. Ведь код — это очень серьезный труд.
Если бы в России не было пиратства, нам бы и компьютеры были ни к чему. «Россия без пиратства» — по-моему, отличная тема для фантастики в жанре «альтернативная история», но вообразить такое у меня как-то не очень получается. Думаю, если бы в конце 90-х люди были поставлены перед альтернативой «платить за каждую программу, сколько скажут, или не иметь компьютера вообще», многим было бы проще выбрать второе.
История же об ограбленном злыми пиратами программисте — по большей части сказка. Если десять лет назад значительную часть программ, попадавших на мой «операционный стол», составляли двадцатибаксовые утилиты из мира shareware, то сейчас «шаровары» впору объявлять вымирающим видом: снизу их жёстко прижал обширный сегмент бесплатного ПО, сверху — давят корпоративные монстры. Многие продукты бесплатны не потому, что автор принципиально денег не берёт, а просто не питает иллюзий насчёт доходности проекта. Программист-одиночка, который живёт исключительно на прибыли с продаж своего продукта — это скорее разработчик под Android или iOS, где ещё остались незанятые ниши. Но ведрофоны, и уж тем более iГрушки я бы назвал платформами, крайне недружественными к варезу, так что пиратство — последнее, о чём стоит беспокоиться тем, кто под них пишет. Ну и, наконец, даже у вольного художника есть альтернатива лечебному голоданию перед шедевром, не нашедшим покупателя — пойти в художники-оформители, то есть PHP, SQL, 1C и прочая. Там, конечно, можно умереть от скуки и ожирения, но уж точно не с голоду.
Отрешившись же от пиратства программного и перейдя к рассмотрению «использования нелицензионного контента» вообще, мы обнаружим существование потребностей, которые вне пиратства сейчас удовлетворить невозможно в принципе. Иностранное кино — не Голливуд, разумеется, а, к примеру, Азия или Латинская Америка, старые книги и журналы, альбомы малоизвестных или давно распавшихся групп, софт под давно вышедшие из употребления платформы — всё это оцифровывается, сканируется и переводится исключительно силами энтузиастов. А ведь материалы эти почти всегда «накрыты» чьим-то авторским правом и без согласия правообладателя, по идее, распространяться не должны. То есть мы имеем целый культурный пласт, который вынужденно незаконен и существование которого держится на снисходительном отношении правообладателя. Что тут можно сказать, кроме как пожалеть о несовершенстве мироздания?
SIGN OF MISTERY
Теперь ближе к твоим разработкам. Что касается Sign of mistery — маркетолог ты никакой) Я так и не могу без запинок написать имя программы. Начал думать о ней ты еще в 99 году, насколько мне известно, из твоего блога. А реализовал что-то стоящее в 2001? Жалко, что крепкое комьютити все же она не обрела до сих пор, ведь я тебя спрашивал как то, это что за программа без форума поддержки. Но веб не твой конек, я тебя понимаю. На все времени не хватит.
Интерфейс последней версии программы Neo Sign of Mistery.
Зато мало кто может похвастать настолько оригинальным подходом к выбору названия для программы. 2001-2002 годы действительно были для Sign 0f Misery в некотором смысле вершиной развития, когда программа «научилась» делать всё, что я в неё закладывал изначально. Популярность, правда, пришла на пару лет позже — тогда каждая вылазка в интернет стоила довольно чувствительную сумму, поэтому никакой «рекламной стратегией» и «раскруткой» там и не пахло, моё детище в интернете жило своей, отдельной от меня, жизнью.
По этой же причине и моё присутствие в софт-каталогах ограничено только самыми крупными и старыми, и форума нет. Да и нужен ли для того целый форум? Насколько я знаю, топик по этой программе уже существует на ru-board, и там не так, чтобы сильно оживлённо. А если заводить отдельный — это, по-хорошему, нужно сразу и доменное имя, и хостинг, и за порядком приглядывать, и спамеров отстреливать. И всё это — за счёт свободного времени. Сейчас NeoS0M пишется наполовину для текущих практических задач (о которых можно догадаться по списку новых команд очередной версии программы), а на другую — для развлечения. Если это превратится в работу… В общем, я пока не встречал такой работы, которая бы мне не надоела.
Есть и психологический момент: я не могу заставить себя потратиться на доменное имя и хостинг, поскольку обладание ими не принесёт совершенно ничего, кроме расходов и хлопот по поддержанию их в рабочем состоянии. И сумма-то сравнимая с ценой одного качественного светофильтра или браслета от Diesel, но браслет можно носить, через светофильтр можно фотографировать, а с мегабайтов хостинга — ни шерсти, ни мяса, ни радости, разве только рекламой обвешать.
Почему сайт твой не работает сейчас?
Уже работает :-) Через две недели и четыре письма в техподдержка mail.ru сообщила, что у них антивирус жалуется на дистрибутив пре-релиза Sign 0f Misery 2.70. Когда такое было в прошлый раз, проблема решилась за неделю, на этот раз — больше трёх, проще оказалось удалить злосчастный файл и поставить вместо него ссылку на какой-нибудь крупный софт-портал, благо программа много где представлена. Вообще, конечно, ситуация удручает: оный файл там семь лет там лежит в неизменном виде, ссылка на него присутствует в куче софт-каталогов, однако до отдельных антивирусов всё никак не дойдёт, что ядро Sign 0f Misery само по себе не вирус, и глупо вносить его в «чёрный список» из-за некоторого количества вредоносных скриптов, его использующих. И моя проблема отнюдь не уникальна: насколько я знаю у разработчиков AutoIt с некоторыми антивирусами совершенно аналогичное непонимание.
Как-то по работе, я с коллегой решил написал бота по заполнению формы. С десктопным софтом разбираться было некогда, решили использовать js. Конечно, заполнить форму со своего сайта через iframe не позволяла политика безопасности браузеров. И единственный браузер легко разрешивший это — Chrome. ( запуск с ключем --disable-web-security ). Однако это было не все, на сайте находилась кнопка прикрепления фотографии. И с помощью js было уже не возможно выбрать файл с компьютера.
Мы решили использовать твою Sign 0f Misery. Js-ом мы нажимали кнопку “обзор”.
Далее уже скрипт Sign 0f Misery ожидал появления окна с надписью “Открыть файл”.
Потом он обращался к title родительского окна браузера, чтобы взять с него имя файла “photo123.jpg” в переменую (В title браузера мы генерировали имя нужной фотографии) Далее, мы вставляли этот title в input открывшегося окна выбора файла, и симулировали нажатие кнопки “Открыть.” Бот был готов и работал он отлично. Но делали его мы пол дня точно.
Это был какой то ужас с преобразованием типа переменной из массива. С этими индексами очень большой запар. Было интересно, и домой мы пошли в отличном настроении за наши способности к извращениям в принятии вариантов решения задач, но в этих 40 строчек кода, что означают числа после команд, через два дня вспомнить довольно сложно. Это огромный минус. Создание цикла с условием выхода ох…
Я к тому, что языки программирования, из за своих абстрактных моделей, у профессионалов чертовски похоже расширяют область оперативной памяти в голове как назачи «n-назад».
И именно отсутствие задач глубже “2-назад” и позволяют вливаться в любой скриптовый кодинг шустрее, чем в тот же C#. Именно так выскочил AutoIt. Твоя предыдущая версия sign of mystery не требовала у пользователя оперативной памяти — все на лицо. Твои последние версии Neo, на которые я с трудом переходил, ибо не шарил вообще в программировании, уже реальный скриптовый кодинг. Не имеет смысла изучать NeoSignOfMystery, когда лучше начать изучать что то серьезное. Увы, для меня это правда.
Cинтиаксис вида
“BRANCH 9 9 2”
где нужно хранить в своей оперативной памяти что это за цифры и куда они ссылаются… ох, задачки n-назад.
Тут я полностью согласен, что язык в NeoS0M хоть и простой по сути, но весьма объёмный по содержанию. Я и сам пользуюсь подсказками о порядке параметров и даже иногда заглядываю в собственную справку. И вполне сознаю, что людей, которым не доводилось общаться с программируемыми калькуляторами, шокирует самая идея обозначения переменных безликими номерами. Однако нынешнему состоянию Neo Sign 0f Misery есть оправдание, которое незримо присутствует в документации: этот язык там именуется внутренним. Изначально он задумывался как относительно простой в реализации промежуточный слой между визуальным конструктором скриптов, подобным оболочке Sign 0f Misery, но без ограничений на число параметров команд, переменных и т.п., и ядром, задача которого — максимально быстро исполнять байт-код.
Начни я программировать с интерфейса, проект бы заглох в дебрях кнопочек и формочек, даже не начавшись, поскольку в программировании не так уж много вещей, которые были бы зануднее организации интерфейса с пользователем. В нынешнем же состоянии программа уже умеет делать то, для чего предназначалась, и позволяет пользователю решать практические задачи по автоматизации. К примеру, скрипт, сочинённый за пару вечеров (большая часть из которых ушла на изучение под отладчиком чужой DLL и исследование особенностей исчисления зимне-летнего времени в Windows), за 20 минут привёл в порядок архив из 40 гигабайт фотографий, к которому я до этого несколько месяцев даже подступиться боялся.
Нынешнее состояние NeoS0M таково, что почти все необходимые команды уже реализованы, синтаксис тоже устоялся и революций в нём не планируется, поэтому в последующих версиях основной упор будет сделан как раз на совершенствовании визуальных средств конструирования скриптов. Больше того, у меня даже появилась на этот счёт идея настолько захватывающая, насколько же и меня ужасающая, ибо визуальный конструктор в его нынешнем виде она отменяет полностью и требует переписывания оболочки NeoS0M более, чем наполовину.
Если твое комьюнити увеличится, появятся авторы, будешь ли ты готов изменить логику языка Sign 0f Misery? Или же для всего остального есть AutoIt?
Я всё же призываю воспринимать NeoS0M не как ещё один язык программирования, от которого требуется (в идеале) одинаково хорошо решать и школьные задачки по программированию, и быть пригодным для разработки систем промышленных масштабов. Я ориентировался прежде всего на решение скромных «домашних» задач, отсюда и сравнительная ограниченность языковых средств. Циклы в NeoS0M выглядят непривычно лишь потому, что последние тридцать лет господствует парадигма структурного программирования, где использование GOTO — первый из смертных грехов. Почему-то считается, что структурное программирование — это очень просто и понятно, хотя я замечал, что люди, далёкие от программирования, гораздо легче понимают классический Бейсик с его GOTO, чем структурные навороты. Поэтому мои BRANCH и CALL_BRANCH — ни что иное, как доведённые до логического завершения операторы ON… GOTO и ON… GOSUB из Бейсика. В некоторый момент я заметил, что NeoS0M предполагает свой особый стиль написания не только скриптов, но и комментариев к ним. Когда я программирую на «обычных» языках, я описываю, действия выполняемые тем или иным блоком кода. Когда я пишу скрипт NeoS0M, я описываю назначение содержимого переменной, с которой будут работать последующие команды скрипта. Без этого скрипт NeoS0M действительно выглядит ненамного понятнее, чем дырки в перфокарте.
Если как объект критики рассматривать именно отсутствие именования переменных и констант, то тут я согласен, что запись вроде
MBOX "Файл не найден. Продолжить исполнение?" "Ошибка" {ICONERROR+YESNO} $ {ответ_пользователя}
была бы более прозрачна, чем нынешняя
MBOX "Файл не найден. Продолжить исполнение?" "Ошибка" $14 $ 5
Необходимость определённых шагов в этом направлении определённо назрела и такие усовершенствования не противоречат первоначальной идее Neo Sign 0f Misery как визуальной среды, в котором скрипты не пишутся, а «собираются» из кубиков. Идти же по пути AutoIt и создавать узкоспециализированный язык программирования с управляющими конструкциями, объектами, лямбда-выражениями и прочей традиционной атрибутикой я не планирую; если бы у меня было такое намерение, я бы ограничился написанием библиотеки для того же C#, тем более, что компилятор этого языка уже несколько лет, как входит в состав Windows.
HARDWARE
Какое твое оборудование из техники на сегодня? Какой компьютер? Фотоаппарат, стеклышки?
Компьютер у меня не самый новый, как 4 года назад купил под Новый год четырёхядерник Q6600, так до сих пор на нём и сижу, только память нарастил до 8 гигабайт и этим летом воткнул в него очередной винчестер. Мощностей вполне хватает, менять пока не вижу особых причин. Вот на периферию пришлось разориться гораздо существенней: корпус ASUS Vento 7700, мышь Logitech Performance MX, клавиатура Microsoft Reclusa — даже если не считать монитор (HP ZR24W), снаружи мой компьютер дороже, чем внутри :-) С некоторых пор дизайн и удобство я стал ставить превыше чисто технических характеристик, а это, увы, в современной технике стало самой дорогой «деталью». Процессор, винчестер и прочие потроха «на всю катушку» используются не так уж часто, чтобы всерьёз беспокоиться о нехватке мегагерц, а вот неудобная клавиатура или «резиновая» мышь раздражали бы постоянно, это я усвоил ещё во времена, когда сидел за своим первым Pentium MMX в безликом корпусе цвета поддельной слоновой кости с клавиатурой и мышью неизвестного происхождения.
Нынешняя моя «большая» камера — Canon 50D, используется почти исключительно «для бабочек» в связке со 100/2.8L Macro. Лет семь назад я купил свой первый цифровой фотоаппарат — Canon 350D — с прицелом на использование оптики от старого «Зенита», затем — телеобъектив и вспышку к нему, после чего менять систему стало уже слишком накладно. За несколько лет мне удалось собрать некоторое количество старой оптики, из которой особо любимыми стали цейссовский Тессар 50/2.8, Гелиос 44-3, который верой и правдой служил мне в самых различных ситуациях, Мир-10А и Таир-3С, сразу ставший незаменимым при съёмке небесных явлений. Есть ещё недорогой зум Sigma 70-300 APO Macro, которым я поначалу тоже снимал макроживность, но теперь использую редко и только для птичек, а также кэноновский же 17-55/2.8, который в последнее время остался совсем без работы. Случилось так, что в позапрошлый свой тайский вояж я взял все три этих объектива, а поскольку сдавать в багаж всю эту технику я не рискнул, опасаясь по прилёте получить её в виде запчастей, носить их все пришлось в фотосумке на плече. И если туда я доехал без приключений, то по возвращении от многочасового таскания всего этого, да ещё сильно потяжелевшего от сувениров чемодана, у меня неделю жутко болела спина. Это и привело меня к мысли о столь же качественной, но более миниатюрной камере. Увидев однажды в магазине беззеркалку Sony NEX-5, я на следующий же день купил её не раздумывая. С тех пор NEX, маленький, лёгкий и незаметный, стал основным моим аппаратом: он сопровождает меня и в зарубежных поездках, и в велопрогулках, и в вылазках на природу, а после обзаведения 30мм макрообъективом я смог снимать им и своих любимых бабочек.
Из тех же соображёний лёгкости и удобства я, поначалу мучимый выбором между нетбуками и обычными компактными ноутами, в итоге отверг их все в пользу iPad2. Поначалу широта способностей данного устройства даже вызывала у меня удивление, смешанное с радостью. После, конечно, я начал воспринимать это как должное, но изначально-то полагал, что планшеты годятся лишь на роль смотрелки интернета, читалки книг и интерактивной карты звёздного неба, не более. О том, чтобы на столь «несерьёзном» устройстве набросать не слишком сложный чертёж или сделать с фотографией что-нибудь, хотя бы отдалённо напоминающее работу в Photoshop, я даже не помышлял, и был искренне рад обмануться в своём пессимизме.
HUMANWARE
Я знаю ты большой любитель фотографии и астрономии. Мне это тоже очень близко. Мне кажется, что люди, которые вообще не интересуются звездами, просто их боятся, ведь страх неопределенности в жизни является чуть ли не самым важным мотивом для поступков. Все мы пытаемся найти уверенность. Ты не чувствуешь себя Адамом в библейском раю, с инструментом познания мира, когда летом выходишь в свои сибирские поля? Не с тем инструментом, что под фиговым листочком, а с тем, на что ты накручиваешь свою коллекцию объективов.)
В детстве я тоже боялся космоса — тогдашние научно-популярные передачи умели правильно пугать детей :-) Все эти истории о тысячах парсек тьмы и вечного холода, давно погасших звёздах, свет от которых идёт до нас тысячелетия, Солнце которому суждено остыть через какие-то жалкие миллиарды лет (таков уж парадокс детского восприятия: тысячелетия полёта до ближайших звёзд — это «ужас, потому что никогда», а миллиарды лет до угасания Солнца — «ужас, как скоро»). Детские впечатления часто забываются, но ни для кого не проходят даром — отсюда, наверное, и нежелание слишком глубоко заглядывать в бездну. Да и ничто, пожалуй, так не уничижает человечество, как звёздное небо над головой. Оно было миллионы лет до нас и будет миллионы лет после, в иные ночи кажется, что ещё чуть-чуть, и звёзды можно будет собирать с неба руками, но мы не в силах сдвинуть с места даже наименьшую из этих светящихся точек.
А ещё у современного человека не так уж много возможностей посмотреть на звёзды. Интерес редко возникает на пустом месте, а сейчас даже в небольшом городе небо засвечено настолько, что из всего великолепия глазу доступна лишь сотня блеклых точек. Многие восхищаются снимками ночного неба из National Geographic, и после этого пыльное и пустое городское небо скорее разочаровывает, нежели побуждает приглядеться к нему внимательнее. Когда однажды на соседнем доме сгорел фонарь, я и сам, выйдя поздним вечером на лоджию, был поражён, сколько звёзд, оказывается, над нашим двором можно увидеть без всякого телескопа. Увы, звёздное небо всё более превращается в роскошь, ради встречи с которой нужно забираться всё дальше и дальше от людского жилья — в этом звёзды сродни бабочкам, которые в городской черте нечасты и ограничены полдесятком наиобычнейших видов совсем не впечатляющей раскраски, и лишь за городом понимаешь, насколько они на самом деле многочисленны и разнообразны.
Познание мира для меня даже не главное, прежде всего я — искатель впечатлений, живущий по завету Пифагора: «Жизнь подобна игрищам: иные приходят на них состязаться, иные — торговать, а самые счастливые — смотреть». Я не столько изучаю объекты своих интересов, в надежде выпытать их тайны, сколько стремлюсь настолько близко познакомиться с ними, чтобы они раскрыли мне эти тайны без принуждения. И если раньше я изрядное количество времени тратил на чтиво о том, «на сколько линий/мм объектив А лучше, чем объектив Б», то сейчас оборудование для меня уже не самоценность, а способ больше увидеть и лучше запомнить, а технические параметры интересуют лишь как очень приблизительный ответ на вопрос «достаточно ли он хорош, чтобы запечатлеть то, что мне нравится так, как я хочу».
Тебе не попадался змий? Был ли он искуситель я знать не могу, но кажется, ты его тоже смог сфотографировать?
Змеи мне интересны с детства, очень изящные существа. Я, конечно, не единожды видел их в террариумах, но одно дело — разглядывать сидящую за толстым пыльным стеклом кобру или раскормленного до полного безразличия питона, и совсем другое — самолично встретить-сфотографировать хотя бы самую тщедушную, но дикую змейку. Только вот все они почему-то долго не желали попадаться мне на глаза. За тридцать лет я, сколько ни бывал в окрестных лесах, не встретил ни одной, и уверился было, если где и доведётся исполнить свою мечту, то в Юго-Восточной Азии. Почитать интернет, так там змеи туристам проходу не дают: то в центре города возле отеля в кустах затаятся, то к бассейну выползут погреться, то в душевой кабинке устроятся на ночлег. А поскольку не все змеи тамошние безобидны, прежде чем сойти с дорожки, я на всякий случай смотрел, не шуршит ли кто в траве и не свисает ли с дерева. Там даже обитает очень красивая и притом совершенно неядовитая, но зато умеющая летать райская змея. Однако как я их не выискивал, так ни одной змеи и не углядел: то ли их там и правда не было, то ли прятались очень хорошо. В общем, свидеться с райской змеёй мне не довелось. Зато в качестве компенсации туземная природа подарила мне встречу с ярким чёрно-жёлтым пауком с тарелку размером, устроившимся в паутине двухметрового диаметра.
И только этой весной в начале июня, в месте, исхоженном буквально вдоль и поперёк, мне наконец-то повезло повстречать самого настоящего змея, по счастливому стечению обстоятельств имея под рукой фотокамеру. Побегать за ним пришлось изрядно, но заполучить его портрет мне всё-таки удалось. Правда, я за это фото чуть не поплатился отдыхом на больничной койке — очень уж сильно было искушение «поправить» змейку рукой ради более удачного ракурса. Я ведь был почти уверен, что передо мной всего лишь безобидный уж. И только когда «уж» как-то нехорошо на меня зашипел, я решил на всякий случай воздержаться от более близкого знакомства. Дома же, внимательно рассмотрев фотографию, я заметил, что зрачки у змея не круглые, как у ужей, а вертикальные, какие положены всякой порядочной гадюке.
А что касается фигового листочка… Все твои туристические приключения, все твои тексты, программы, фотографии и рассказы пахнут неким определением, детерминированием реальности вокруг себя с примесью одиночества. Ты себя ощущаешь одиноким?
Но не за этим ли люди ездят за тридевять земель? Многие едут как раз за «добровольным одиночеством», которое даже не одиночество, а всего лишь отказ жить «для публики». Футболка «со слониками», бриджи и сандалии скрывают национальную идентичность не хуже шапки-невидимки, одновременно избавляя от всех сопутствующих обязательств. Не могу сказать, что россияне чем-то хуже прочих туристов — времена, когда по заграницам ездили только персонажи с золотыми цепями в руку толщиной, неспособные связать двух слов без мата, к счастью, уже в прошлом. Однако общение с соотечественниками слишком уж часто выливается в ритуальное сдвигание шезлонгов в общую кучу — «тут все свои», питием, даже если не хочется, и разговорами о том, кто где был и как там нынче в России. Если местные достопримечательности ещё обсуждаются более-менее живо, то разговоры «о доме» — изредка — усталость от впечатлений настолько новых, что хочется кусочек чего-нибудь привычного, а по большей части лишь ритуал. «Несварением впечатлений» я уже успел переболеть в свой самый первый вояж и с тех пор со мной такого не случалось, а исторически сложившийся ритуал, по мне, так просто скучен. Потому и не считаю, что был самым одиноким иностранцем в тропиках; вот когда хочется общения хоть с кем-нибудь, лишь бы он понимал по-русски, это действительно было бы для меня запредельным одиночеством.
Ощущение же одиночества навевает скорее мой стиль изложения. Как-то знакомая упрекнула меня за эгоцентричность речи, за то, что я слишком часто использую местоимение «я» и его производные. Оттого, наверное, и впечатление отстранённости от всех и вся: в моих текстах есть «то, что вокруг», и скользящий сквозь него, созерцающий и запоминающий, но не смешивающийся и не растворяющийся в окружающем «я». Для меня (вот, я опять использовал это слово) же это — всего лишь способ передать совершенную субъективность мироздания, которое каждый видит по-своему. Потому и излагаю впечатления так, чтобы рассказ был историей о некогда единожды случившемся, и, может быть, неповторимом, а не обещаниями в стиле туристического путеводителя: «вы сможете увидеть, вы сможете попробовать...». Да и в блог я пишу меделенно и, как правило, не по «горячим следам»; любой текст «вылёживается» в голове, созревает, а уж после возвращения с отдыха мне пару месяцев вообще ничего не хочется делать. Когда пишешь о чём-то даже всего лишь неделю погодя, поневоле разделишь себя нынешнего и события прошедшие, даже если был увлечён и вовлечён без остатка. Говорить же о себе в третьем лице, как это умеют делать японцы, вашему покорному слуге пока что редко удаётся.
Знаешь, мне кажется что получая какие то знания, разум человека становится чуть более опытнее, но он теряет способность воспринимать какие-то вещи уже без этого опыта — на чистую голову. Можно в доказательство я приведу простой тест. Покажи сейчас пальцем на абсолютно любой предмет перед тобой. Пусть это будет флешка. Спроси себя внутренне:”Что это?” Честно ответь себе голосом “Я не знаю”. Повтори это с чем то другим и так же честно себе ответь, что это вещь, которую ты видишь первый раз в жизни. Если у тебя получится, ты ощутишь очень забавное чувство на долю секунды. Это будет взгляд ребенка. Возможно это та же самая магия от взгляда на красивую фотографию в первые секунды.
Твоя любовь к программированию, не делает тебя чем то, возможно грубо сказано, слепым? Ты не чувствуешь, что возможно розы пахли бы сильнее, не попадись тебе компьютер на глаза и ты бы занялся лепкой фигурок из мастики, добытой в окнах? Делал бы на рынке прекрасным дамам скидки на турецкие фрукты вместе с фотографиями?
У меня опыт несколько иного рода: я брал какое-нибудь слово и мысленно повторял его множество раз, пробуя его на вкус и цвет, пытаясь найти смысл в каждой его части и понять их взаимодействие. Однако чем дольше это делаешь, тем более пресным и бессмысленным это слово становится, а в некоторый момент обнаруживаешь, что это слово больше уже не обозначает ничего. Хотя некоторые слова и повторять не надо, они теряют свой смысл сами. К примеру, слово «хакер» — оно уже лет пять ничего не означает, кроме названия одноимённого журнала. В своё время у него было много смыслов, от фанатика компьютерных технологий, изощрённого программиста, взломщика или хотя бы «суперпользователя», до мошенника, применяющего в своей деятельности электронику. И тогда все эти смыслы действительно могли умещаться в одном человеке. Сейчас программист это программист, «суперпользователь» — системный администратор, взломщик ПО — крэкер, а околокомпьютерный криминал вообще не заинтересован, чтобы его как-то называли вслух. На долю хакера же осталась только главная роль в фильме «Хакеры».
С другой стороны, «затирание» смыслов нередко лишает нас информации столь оригинальной, что впору было бы считать её откровением. Например, мне как-то попалось на глаза исследование англоязычной программистской терминологии, в котором отмечалось преобладание в ней слов, подразумевающих агрессию и насилие: «execution», «interrupt», «access violation», «general protection fault», «kill (process)» и т.д… Или, например, такой штамп, как «всемирная паутина»: мы встречаем его едва ли не каждый день, совершенно не задумываясь о «всемирном пауке». Определённо, язык — такая штука, которая никогда не перестанет преподносить сюрпризы.
Что программирование изрядно сузило мой кругозор — тут не поспоришь, я это и сам за собой замечал. Бывали времена, когда сидел перед монитором часами и света белого не видел, да ещё к тому же всё это пришлось на время моей учёбы, а подход к образованию «технаря», когда любую банальность «выводят», «рассчитывают» и «доказывают», развивает узость кругозора, бедность эмоций и прочие составляющие «профессионального идиотизма», как ничто другое. Однако меня лет 7 назад угораздило купить фотоаппарат — поначалу я даже толком не понимал, зачем истратил на него квартальный доход и что мне делать с таким большим счастьем, пока не сфотографировл на огороде бабочку-лимонницу и не увлёкся фотоохотой. На следующий год я, вместо того, чтобы спустить отпускные на какую-нибудь «жизенно необходимую» компьютерную железку, поехал в Таиланд, и там осознал, сколь многого я был лишён вдали от моря. А через несколько месяцев после возвращения подался на курсы японского языка. Вот так и открыл для себя «жизнь вне кода».
Знаком ли ты с моделью творчества в психологии: обучение, напряжение, инсайт?
Буду тебя ломать. Нельзя стать хакером не зная ассемблера, нельзя стать хакером даже зная ассемблер. Этого мало. Необходим опыт, огромные силы и время и что-то свое индивидуальное. Современный подросток хочет стать хакером сразу- какое там программирование, дайте мне эксплоит и я переверну весь мир.
Допустим, юный хакер и вправду решил подучить свое ремесло, но потом часто осознает, что не хакером он хотел быть, а искал он признания среди значимых для себя людей.
Поначалу, конечно, доля тщеславия имела место, но… Когда я в первый раз попробовал сломать программу, у меня ничего не получилось. Отдохнул, поразмыслил, попробовал во второй, опять не получилось. С четвёртой попытки защиту я всё же одолел, тут бы появиться оркестру с фанфарами, торжественным речам, лавровому венку для победителя — а ничего этого нету. Потому что из всех, с кем знаком, хорошо, если наберётся пять человек, представляющих, о чём речь. Некому охать и восторгаться. Разве только мне самому — как-то обмолвился знакомой, что умею ломать программы, и тут же получил вопрос, могу ли я взломать страничку «ВКонтакте». Эпоха «великих географических открытий» в информатике закончилась с началом нулевых, каждый последующий финт, что программный, что аппаратный, удивляет менее, чем предыдущий, а программист из героев дисплея и клавиатуры низведён в рядовые «наладчики по компьютерам». Не удивлюсь, если обучение IT-специальностям в недалёком будущем вообще перекочует из ВУЗов в ПТУ, ибо упор всё больше делается на «технологии», для усвоения которых важнее не творческий подход, а хорошая память, крепкие пальцы и мозолистая задница. Программирование — абсолютно не то, чем стоит заниматься во имя «минуты славы»: на вопрос «назовите хотя бы одного знаменитого программиста» немногие найдут, что ответить.
От всезнайства же меня избавил Сократ — моей любимой фразой «я знаю то, что ничего не знаю». Чуть позже я добрался до философии постмодернизма, которая рассматривает любое знание вообще как социальный конструкт, а в таком контексте претензии на «своё особое юберзнание» выглядят совсем уж смешно — конструкт он на то и конструкт, что обоснован лишь волей конструктора. Если в научно-технических областях знание — это фраза, к которой можно приписать "=True" или "=False", то для специалиста по наукам о социуме знание — всё, что угодно, в чём тебе удалось убедить остальных. Какой подход гибче — догадаться нетрудно, и если обратиться к делам давно минувших дней, то знаменитый Кевин Митник, если верить очевидцам, был прежде всего маэстро социальной инженерии. Уильям Гибсон, родоначальник литературного жанра «киберпанк» и автор знаменитейших «Нейроманта» и «Сожжения Хром», вообще как-то признался, что эти едва ли не первые книги «про хакеров» (тогда и термин-то такой ещё не родился, вместо «хакеров» там «компьютерные ковбои») написаны им на обычной печатной машинке, а за консультациями по «компьютерному» антуражу он обращался к приятелям. А ведь именно ему мы обязаны и «матрицей», и «киберпространством», и вообще всей эпохой «компьютерного романтизма» конца прошлого тысячелетия. Я бы предположил, что сейчас «великим хакером» можно стать, даже не отличая компьютер от кофеварки, главное — написать о себе в интернете захватывающую дух историю. И это действительно будет великий хакер — может быть, не компьютеров, но тех, кто за ними сидит — определённо.
Что же это за место размышлений о коде? Ведь даже я знаю ( я никогда не работал программистом ) что в глубоком размышлении перестаю фиксировать информацию с глаз, иногда пугаюсь, что ослеп. Но это реакция настолько быстрая, что я едва ее замечаю. Куда мы переносимся? Что это за мир, место где ты решаешь сложнейшие задачки для программистов: поиск механизма аутентификации лицензионного ключа для написания генератора ключиков. Ведь это ад кромешный! Попробуй описать свое ощущение, когда ты полностью погружен в себя битый час.
Я не умею погружаться в себя, я умею погружаться только в созерцание. Но созерцание — совсем другое, в таком состоянии вообще трудно о чём-то думать, да и не хочется. Погрузиться в задачу с головой и без остатка — это не моё, у меня лучше получается «забег на длинные дистанции». Если дело не движется, я лучше отодвину его в сторонку и, ожидая озарения, займусь чем-нибудь более подходящим. Хорошие идеи приходят без спросу, долгожданное решение иногда находится в совершенно неподходящем месте и времени — по дороге из магазина, когда занимаюсь домашними делами, а то и вообще в отпуске. И тогда я вполне способен вытащить уже было покрывшуюся пылью разработку и за пару дней сделать больше, чем за весь предыдущий месяц.
Говорить об этом сложно. Но начал я это потому, что в нашей культуре эта область размышлений особо ничем не называется. Здесь, на хабре, проскакивают статьи об этой области, и они часто вываливаются в топ. Это что-то связанное с оперативной памятью человека, с его способностями к внутренней визуализации. Говорят, Тесла обладал поистене великой способностью строить в воображении сложные объемные машины. Он их включал и забывал. Возвращался проверить все ли в порядке через недельку.
У тебя есть амулет какой, или привычка что-то делать в этот момент? Что тебе помогает “выключится” от внешнего мира? Твой любимый напиток?
Отключаться" от внешнего мира мне нужно только если я делаю что-то рутинное и оттого невыносимо скучное — вот в этом случае действительно приходится делать над собой усилие, ибо постоянно одолевает искушение отвлечься на любую ерунду, лишь бы она было хоть немного менее занудной. Тогда-то и приходится надевать наушники, иногда даже без музыки, лишь бы ни ухо, ни глаз не вводили в соблазн пойти попить чая, поболтать о какой-нибудь ерунде или посмотреть, как скачут за окном синички. Я и системный блок на работе расположил так, чтобы видеть лишь монитор, но не то, что творится вокруг меня, но всё равно плохо помогает. Достойную мысль я вообще не могу думать сидя. Могу ходить по комнате, смотреть в окно или даже завалиться на кровать, если я дома — всё, что угодно, лишь бы не кресло. Лучше всего мои мысли движутся тогда, когда двигаюсь я сам.
Напитки для меня подобны музыке в том плане, что я почти всеяден, но особые предпочтения, конечно, имеются. Как всякий старый пират, я, конечно же, особенно неравнодушен к доброму рому, однако ничего не имею против вермутов, ликёров и коньяков. Собственно, не пью я только слишком вычурные или заведомо ядовитые зелья вроде водки с соком или рисового самогона. В некотором смысле, я приобщаюсь к культуре иных стран, пробуя их национальные напитки: для Греции — метакса, для Германии — шнапс, для Японии — сакэ и сётю, ну и так далее. Подход, может, не самый возвышенный, но всё равно интересно. А когда просто лето и жарко, пью либо пиво «Асахи», либо что-нибудь прохладительное, и частенько скучаю по клубничной «Миринде» и совершенно фантастическому миксу «Тякудза» — кому ещё, кроме японцев, пришло бы в голову сделать холодный газированный зелёный чай с мёдом? Однако результат получился неожиданный: насколько нелепо звучит его рецепт, столь же приятен этот напиток на вкус.
Ты сдавал экзамен по японскому языку, познать каково японцы называют область размышлений наших еще не удалось?) Может я глупость спрашиваю, но есть же байка про 40 определений видов снега у Чукчей.
О, на понимание образа мысли японцев я даже не претендую, однако сам японский язык, стоит лишь погрузиться в него чуть глубже базового уровня, восхищает и ужасает одновременно. Восхищает — богатством языковых конструкций, ужасает же — количеством времени и сил, необходимых, чтобы их освоить. Если изучение английского языка заключается в усвоении за несколько месяцев небогатого слоя грамматики, после чего наступает время наполнения словарного запаса, заучивания тридцати значений слова «get», устройчивых «фигур речи» и изнурительных тренировок на правильное использование времён, то после обманчиво лёгкого изучения «базового японского» приходит пора «вежливых» и «неформальных» оборотов. Тут-то и начинаешь понимать, что до сих пор плавал в языковом «лягушатнике», а теперь тебя бросили — нет, вовсе не в открытое море, а всего лишь в бассейн для взрослых — но под ногами уже бездна. Если единственному нашему местоимению «я» у японцев имеется не меньше полудюжины аналогов для повседневного употребления, каждому из которых есть своё время и место, да плюс ещё невесть сколько — для высокого литературного штиля, очевидно: за изучением такого языка скучать явно не придётся. К тому же, в разговорном японском многое не произносится, «недостающие» слова нужно уметь извлекать из контекста. Даже из такая нехитрая фраза, как «я умею кататься на лыжах», в подстрочном переводе с японского звучит как «умею лыжи». Ну как можно было не полюбить такой язык? В японском языке вообще немало закоулков, в которые мне хотелось бы заглянуть. Ну и, конечно, его родина для меня — страна, куда хотелось бы приехать и там остаться: когда у нас ещё снег лежит и даже не думает таять, на Хонсю народ уже гуляет в лёгких курточках и пьёт «Асахи» под цветущей сакурой, а мне остаётся отчаянно завидовать и страстно желать к ним поскорее присоединиться. Из опыта же предыдущих поездок я вынес не слишком воодушевляющую истину: «языки международного общения» существуют лишь в рекламных буклетах языковых курсов; всерьёз говорят на них лишь гиды и персонал отелей, да и то исключительно с иностранцами. Если же хочешь увидеть и понять чуть больше, чем лежит на поверхности — учись понимать родной язык того, с кем общаешься, других вариантов нет.
Каждый человек может припомнить то чувство удовлетворения, когда он добился значимой для себя цели, возможно даже случайно. Она может быть смешной для другого, но я уже почти уверен на сегодня, что мы живем в таких Уилсоновских тоннелях реальности, что просто настоящие чудо, что понимаем еще друг друга!
Твои внутренние победы были связаны с чем? ( прямо как на собеседовании) )
Когда в 2008 году мне пришёл сертификат, подтверждающий четвёртый уровень Норёку сикэн, я чуть было не подпрыгнул до потолка. А третий уровень, полученный в следующем году, хоть в табели о рангах он был выше, такого ощущения окрыляющей радости уже не принёс. Похожее ощущение я испытал разве что когда впервые прилетет в Бангкок — тогда самолёты ещё не швартовались к «гейтам» с кондиционируемым воздухом. Когда я шагнул на трап и вдохнул бангкокский воздух (которым первые полчаса с непривычки дышать трудновато, настолько он горячий и плотный), для меня это было как попасть в другую Вселенную. Но тут, конечно, с моей стороны никакого особого достижения не было, не считать же достижением способность отсидеть восемь часов в самолёте.
Расскажи про свои сны, я тебя своими напугаю отдельно в другом емейле. Ты что-то важным определяешь для себя в них?
Сны мне снятся редко. А чтобы что-то замечательное приснилось, такое случается хорошо, если раз в год. Но самое обидное даже не в этом, а что из сна ничего не получается взять с собой в бодрствование. Несколько раз уже во сне приходилось слышать то истории, которые вполне смогли бы украсить иной литературный сборник, то песни. Жаль только, после пробуждения от них оставалось лишь коротенькие, беспомощные и совсем не вдохновляющие обрывки, резко контрастирующие с ощущением, что слышал вещи по художественной силе совершенно фантастические, но безвозвратно их упустил.
Несколько раз мне доводилось видеть «рекурсивные» сны, когда, пробуждаясь от одного сна, я оказывался в другом. Иногда такие фокусы Морфея пугают, но как я осознаю, что всего лишь сон, могу одним лишь усилием мысли прервать или даже поменять сюжетную линию в ту сторону, которая мне больше по душе.
Однако самый жуткий мой кошмар связан не со сном, а с пробуждением от него. Как-то мне приснилось, что воздух вокруг меня отравлен и я задыхаюсь, а пробудившись, понял, что лежу, уткнувшись лицом в подушку, и пытаюсь сквозь неё дышать. Вот это оказалось пострашнее любых гримас подсознания.