четверг, 12 июля 2007 г.

Танцы с бубном: мифы и реальность

древня статейка, но актуальности все-же не теряет.

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

В разных источниках можно встретить массу рекомендаций. Например, что радиус бубна должен быть равным радиусу кривизны рук программиста [1] или, что бубен должен быть сделан из кожи "девственного юзера" [2] или, что цвет бубна должен совпадать с цветом обоев на компьютере и т.п. Е-р-у-н-д-а! Глупые суеверия и невежество! Неважно какого цвета, размера и из какого материала изготовлен бубен. Важно лишь то какие рунические письмена нанесены на бубен.

Какие же руны должны быть на бубне?

Ответ прост. Это должны быть фрагменты кода реальных, а главное, работающих программ. Желательно, чтобы фрагменты были взяты из разных программ и написаны на разных языках программирования.

На каких же языках должны быть руны на бубне? А это зависит в первую очередь от того на каком языке написана заклинаемая программа. Если Ваша программа написана на C++, то на Вашем бубне обязательно должна быть руна на C++, если программа на Java, то должна быть руна на Java и т.д. Если Ваша программа написана на нескольких языках, то Ваша задача усложняется, т.к. Вам потребуется бубен с рунами каждого из используемых языков. Можно ли использовать несколько бубнов вместо одного? Да, но только если они совместимы между собой [3]. Запомните, что бубен без руны используемого Вами языка программирования для Вас бесполезен. Однажды я встретил бубен с рунами на Коболе и ассемблере IBM 360. Дествительно редкая вещь! Но для современного программиста совершенно бесполезная.

Выбирая бубен, остерегайтесь подделок

Сейчас можно встретить множество бубнов с кричащими именами: 20 в одном, 40 в одном и даже 100 языков в одном бубне. Но если внимательно присмотреться к таким 'творениям', то видно, что все фрагменты кода приведенные там есть ничто иное, как программа 'Hello World!', продублированная на разных языках. Такой бубен Вам ничем не поможет. Разве только при создании программы уровня 'Hello World!'.

Предположим Вы выбрали бубен и приготовились к танцу. Хорошенько подумайте о том какой именно танец Вы собираетесь воспроизвести. Помните, что не любой танец подойдёт для Вашей программы. Танец изгнания духа Меморилика [4] совершенно бесполезен для программы написанной на Java, точно так же бесполезен танец задабривания виртуальной машины Java для программы на С++ [5].

И напоследок я хочу развенчать устоявшийся миф о том, что танцы с бубном способны изгнать баги из программы. Несусветная глупость! Однако очень живучая и кочующая из поколения в поколение. Суть танца с бубном есть обращение к Великому Духу Первопрограммера и его сыну Первопрограмме, а также отречение от Первородного Бага. Правильно исполненный танец с правильным бубном будет услышан Великими Духами и они даруют Вашему детищу своё Благословение и Защиту от багов. Таким образом Вы не избавитесь от багов, но они на время перестанут проявляться. А вот на какое время они перестанут проявляться зависит от мастерства танцора. Я различаю

4 уровня мастерства владения бубном

1-й уровень

Программист умеет заклинать конкретный экземпляр программы на конкретном компьютере на короткий срок.

2-й уровень

Программист умеет создавать собственный бубен.

3-й уровень

Программист умеет заклинать множество экземпляров программы на множестве удалённых компьютеров на длительный срок.

4-й уровень

Программист умеет обходиться без шаманского бубна.

И наконец, мой последний совет.

Допустим Вы купили бубен и совершили удачный танец - программа во время сдачи работала как надо. Не торопитесь почивать на лаврах. Сядьте и попробуйте разобраться, почему Ваш код работал не так как надо [6]. Если же это невозможно, то у Вас есть два варианта: пересмотреть свою жизненную позицию и заняться чем-то другим [7] либо валить нафиг из этой шарашки, в которой создание программного продукта без плясок с бубном невозможно.

Искренне Ваш,

Гура Кодович Бажев

Примечания

  1. Определение радиуса кривизны рук программиста и эмпирическая формула вычисления радиуса хорошо описаны в знаменитой книге Федора Буста "Мифический человеко-бубен".
  2. "Девственный юзер" - ныне почти вымерший вид пользователя, не испорченного графическим пользовательским интерфейсом.
  3. Совместимость бубнов между собой выходит за рамки данной статьи и будет расмотрена автором в отдельной статье.
  4. Меморилик - злое мифическое существо по мнению дотнетчиков проживающее в каждой программе на C++. ( (с) WolfHound )
  5. Обучиться танцами с бубном Вы можете с помощью моих книг: "50 эффективных танцев c бубном" и "Ещё 35 более эффективных танцев с бубном".
  6. А тебя Петя это касается в первую очередь. Ты думаешь я писал эту статью ради твоего развлечения?! Мне уже порядком надоел 'The instruction at "0x00405414" referenced memory at...' в твоём модуле. Сейчас после сдачи есть немного спокойного времени. Так вот сядь, разберись и покончи с этой ошибкой раз и навсегда!
  7. Нет, Петя, я не шучу.

вторник, 10 июля 2007 г.

И только лошади летают вдохновенно...

знакомая в аську скинула, читал в два захода, сразу не смог осилить.
Рыдаю
http://www.transheekopateli.com/html/Number2/Lowadi.html

Nero

копать-молотить...
1680 mb на диске отгрызает, а вот нужный Nero ImageDrive под vista не ставиться, ну и хер ей дать, UltraISO тут рулит однозначно.

понедельник, 9 июля 2007 г.

Wi-Fi

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

понятно если сеть свободном доступе, но когда и вся сеть расшарена это наводит на мысли "и кому это выгодно..." или это просто уверенность что люди в большинстве своем глупы и недалеки..

любопытные документы можно посмотреть, знакомому корреспонденту закинул пару-тройку на мыло, звонок через 15 минут:
- отуда у тебя ЭТО??? ты что меру города комп делал? или взломал их сеть? это же бомба!!
- напишешь?
- ты что, мне пока свобода и жизнь не надоели..
Вот такой разговор. :(

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

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

blogger & google

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