четверг, 18 июня 2009 г.

Василий Щепетнёв: Пир слепых

... известны примеры изобретений и открытий, которые совершались практически даром. Или не совершались вовсе. Цивилизации доколумбовой Америки, вернее, доколумбового Нового Света, не знали колеса. Храмы возводили, дороги прокладывали, идолов ваяли, а вот до колеса не додумались. Почему? Что помешало? Отсутствие на континенте лошадей? Но было бы колесо, а тягло найдется. Да хоть те же люди. Возможно, аборигены иначе на мир смотрели, в другую сторону думали. ...

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

среда, 10 июня 2009 г.

Факты и заблуждения профессионального программирования

Факт 1
Самый важный фактор в разработке ПО — это не методы и средства, применяемые программистами, а сами программисты.

В создании ПО важен человеческий фактор. Именно эта мысль главная в данном конкретном факте. Свою роль играют инструментальные средства. Важны и методы. И процессы. Но роль людей намного более значима.
Идея эта стара, как сама компьютерная индустрия. Она вышла из столь многочисленных научных исследований и докладов за прошедшие годы (она там встречается и сейчас), что к настоящему моменту должна быть одной из самых важных "вечных истин". Но в индустрии ПО о ней по-прежнему забывают. Мы считаем Процесс альфой и омегой разработки ПО. Мы выдвигаем инструментальные средства на роль волшебных палочек, усиливающих нашу способность создавать ПО. Мы собираем вместе разношерстные методы, называем результат методологией и требуем, чтобы тысячи программистов читали о ней, посещали курсы по ней, отполировывали знания путем зубрежки и упражнений и затем применяли ее в ответственных проектах. И все это от имени средств, методов, Процесса, стоящих над людьми.


В заключение я бы хотел привести одно из моих любимых высказываний:
Реальность - это убийство прекрасной теории бандой мерзких фактов.
Здесь я не ставил перед собой задачу определить состав "банды мерзких фактов". И я не думаю, что любая теория прекрасна. Но я уверен, что любая теория, чего-то стоящая в индустрии ПО, не должна противоречить фактам, представленным в этой книге, неприятные они или нет. Я предложил бы ученым, теории которых не согласуются с одним или несколькими из этих фактов, еще раз обдумать то, что они предлагают (или отстаивают). И практикам, собирающимся применять какой-то инструмент, технологию, метод или методологию, которые противоречат этим фактам, я бы посоветовал остерегаться неприятных сюрпризов на избираемом ими пути.
За много лет в индустрии ПО совершена масса ошибок Я не имею в виду заваленные проекты или продукты, потому что я думаю, что их намного меньше, чем многие окружающие хотят нас уверить. Я говорю не о тех, кто приговаривает "это изобретено не здесь" или "это никуда не годится", потому что я думаю, что их тоже очень немного. Ошибки, о которых я говорю, совершаются потому, что яркие в остальном представители нашей отрасли предлагают, отстаивают и проводят в жизнь очевидно ложные истины.
Я надеюсь, что этот сборник фактов и заблуждений поможет искоренить эти ошибки.

понедельник, 1 июня 2009 г.

Глава 5. Корни религии

Могут ли дуализм и телеология как-то помочь в этом? Чтобы лучше разобраться в данной гипотезе, воспользуемся предложенным философом Дэниелом Деннетом понятием «целевой, или интенциональный, уровень».

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

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

Целевой, или интенциональный, уровень (уровень намерений), по сравнению с проектным является еще более эффективным упрощением задачи. Предполагается, что объект не только спроектирован с определенной целью, но еще и содержит в себе некое активное начало, направляющее его действия к определенной цели. При виде тигра лучше не задумываться надолго о его возможном поведении. Не важно, как взаимодействуют на физическом уровне его молекулы, не важно, как сконструированы его лапы, когти и зубы. Эта кошечка собирается вами пообедать, и для выполнения своего намерения она самым ловким и эффективным образом использует и лапы, и когти, и зубы. Самым быстрым способом предсказания ее поведения будет, забыв о физическом и проектном уровне, сразу перепрыгнуть на целевой. Заметим, что, подобно тому как проектный уровень можно использовать для спроектированных и для неспроектированных вещей, целевой уровень также можно применять как для имеющих сознательные цели объектов, так и для объектов, сознательных целей не имеющих.

суббота, 2 мая 2009 г.

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

Фильм "..." не о том, как мирных, законопослушных граждан насилует банда мутантов-людоедов-лесбиянок-нинзя. Этот фильм не о выживании в экстремальных условиях, и не о борьбе бобра с ослом. Это фильм о гопниках. О самых обычных, знакомых каждому с малолетства гопниках. О гопниках, которые не выбирали быть гопниками. О гопниках, которых так воспитали.

Мы любим порассуждать о том, что каждый человек – сам пи*ц своему счастью, в том смысле, что у любого человека есть выбор, и всё в твоих руках. Что даже в самых невероятных отстойниках выростали истинные цветы, прямо светочи человечества – пусть и один на миллион. Как, впрочем, в самых потрясающих условиях могут воспитать будущего мелкого хулигана – чуть чаще, ну пусть один на тысячу. Но не льстите ни себе, ни другим – 99,9 процентов людей – не более, чем продукт своего окружения. Гопы взращены бывшими гопами, и выростят (когда повзрослеют, женятся по залёту, и переедут от родителей в отдельный вагончик со всеми удобствами) таких же точно гопов. И этот порочный круг невозможно разорвать.

Моя жена высаживает у нас под окнами траву и цветы (мы живём в многоквартирном доме в посёлке на краю большого города). Ну, ей нравится, когда смотришь из окна – а там красиво. Да и с землёй возиться ей нравится. Так вот каждую осень, когда цветёт основное количество цветов, их кто-то срывает. Какое-то пьяное чмо залезает к нам на газон и рвёт цветы. Чёрт его знает, что он с ними дальше делает – продаёт, или домой приносит, может, детишкам даёт, чтоб те на день знаний подарили учительнице краденный папой с чужого газона букет. Моя жена каждый раз рыдает. Лампочку, которую я регулярно вкручивал в подъезде, у нас регулярно кто-то выкручивал – пока мы не организовали товарищество жильцов дома и охрану не наняли. И я долго такое могу перечислять. Моя жена после каждого подобного инцидента носится с идеей "отгородиться от быдла высокой стеной", а я её убеждаю, что стены, напротив, надо сносить, иначе мы построим на Украине настоящий Гондурас, где будут бедные, богатые и никого посередине. Я рассказываю ей о том, что люди не выбирают, в какой семье им родиться, и вместо массовых расстрелов куда лучше заняться педагогикой. Я рад, что моя жена не стала смотреть "Райское озеро". Боюсь, я не нашёл бы аргументов в споре с ней на этот раз.
...
Невероятно, как тема противостояние "нормальных", образованных и интеллигентных людей и гопов к 2009 году стала едва ли не лейт-мотивом современной культуры.

Английские гопы, кстати, практически ничем не отличаются от наших. ... И это наталкивает на совершенно невесёлые размышления о том, что гопы, как явление – есть нечто природное, естественное, не зависящее от конкретной страны или континента. О том, что противостояние образованных и интеллигентных людей, любящих уединение, ценящих свою самобытность, и не стремящихся к союзу с другими такими же, как они, и безликой армии гопов, никогда не объединявшихся друг с другом, но объединённых извечной животной силой, бессмысленно. О том, что мировое гопство обречено на победу.

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

понедельник, 13 апреля 2009 г.

Кривая забывания Эббингауза и повторение

Забывание — сложный и неравномерный процесс. В 1885 году немецкий ученый Эббингауз получил кривую забывания, на которой видно, какую часть прочитанного человек помнит через разные промежутки времени. В первые часы объем усвоенной информации быстро падает и через 10 часов составляет всего 35% от изученного.

суббота, 4 апреля 2009 г.

А.Богатырев. Руководство полного идиота по программированию

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

Строки и указатели в C# и Java другие, и в книге ни слова об объектах - но книга обязательна к прочтению перед изучением любого другого языка, и уж тем более перед "в VS(NetBeans, ..., ) я нарисовал окно".

четверг, 2 апреля 2009 г.

Веревка достаточной длины, чтобы... выстрелить себе в ногу

...Есть разные мнения о возможности мышления вне языка, но я убежден, что аналитическое мышление того типа, который нужен в компьютерном программировании, тесно связано с языковыми навыками. Я не думаю, что является случайностью то, что многие из знакомых мне лучших программистов имеют дипломы по истории, филологии и схожим наукам. Также не является случайностью то, что некоторые из виденных мной худших программ были написаны инженерами, физиками и математиками, затратившими в университете массу энергии на то, чтобы держаться как можно дальше от занятий по языку и литературе.
Сущность заключается в том, что математическая подготовка почти не нужна в компьютерном программировании. Тот тип организационного мастерства и аналитических способностей, который нужен для программирования, связан полностью с гуманитарными науками. Логика, например, преподавалась на философском факультете, когда я был в университете. Процесс, используемый при проектировании и написании компьютерных программ, почти полностью идентичен тому, который используется, чтобы сочинять и писать книги. Процесс программирования совсем не связан с теми процессами, которые используются для решения математических уравнений.
Здесь я делаю различие между информатикой (computer science) — математическим анализом компьютерных программ — и программированием или разработкой программного обеспечения — дисциплиной, интересующейся написанием компьютерных программ. Программирование требует организационных способностей и языковой подготовки, а не абстрактного мышления, необходимого для занятий математическим анализом. (В университете меня заставили проходить год на лекции по математическому анализу, но я никогда из него ничего не использовал ни на занятиях по информатике, хотя для них матанализ был необходимым условием, ни в реальной жизни).
Я как-то получил открытую рецензию на книгу, посвященную мной предмету проектирования компиляторов, в которой рецензент (который преподавал в одном из ведущих университетов) заявил, что он "считает абсолютно неуместным включение исходного кода компилятора в книгу о проектировании компиляторов". По его мнению, необходимо учить "фундаментальным принципам" — лежащей в основе математике и теории языка, а детали реализации — "тривиальны". Первое замечание имеет смысл, если у вас создалось впечатление, что книга написана ученым-специалистом по информатике, а не программистом. Рецензент интересовался лишь анализом компилятора, а не тем как его написать. Второе замечание просто показывает вам, насколько изолировала себя научная элита от реального труда программирования. Интересно, что основополагающая работа по теории языка, сделавшая возможным написание компиляторов, была выполнена в Массачусетском технологическом институте лингвистом Наумом Хомским, а не математиком...
(Ален Голуб)

Программирование как высшая форма творчества

... работая психологом в крупной компании, занимающейся разработкой больших программных проектов, невозможно не общаться с программистами, чем я обычно и занимаюсь. Многие из моих друзей -- именно программисты, так что мое мнение в первую очередь основано на их взглядах на жизнь в целом и на свою профессиональную деятельность в частности.
...
Так мы приходим к пониманию того факта, что слово "программист" вовсе не является синонимом определения "прикладной математик", хотя многие и не чувствуют разницы между этими понятиями. Например, Пол Хольцер (Paul Holtser -- прим. пер.), мой хороший приятель, говорит буквально следующее: "Я не использую в своей работе практически ничего из изученного в университете. Математический анализ и прочая абстрактная математика не дают мне способов написания элегантного и компактного кода программ. Возможно, для людей, поставленных перед необходимостью программирования узкоспециальных задач в области математики, эти знания могли бы пригодиться, но мы всё-таки работаем не над отображением трехмерных графических сцен, а занимаемся задачами другого уровня... Могу честно признаться, что занимаюсь программированием не с точки зрения практикующего математика. Напротив, я выполняю работу лингвиста -- переводчика с повседневного языка на компьютерный, объясняя компьютеру, что и как нужно выполнить, чтобы прийти к желаемому результату".
Что ж, в сочетании с тем, что Пол считается отличным программистом и лидером многих проектов, его слова нельзя попросту отбрасывать.

... обычный программист -- не столько математик, сколько лингвист и философ в одном лице, активно применяющий положения формальной логики.

среда, 25 марта 2009 г.

10 мифов о Средневековье

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

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

Голубятня: "Миллионер из трущоб"

Что же такого необычного в фильме Денни Бойла, что заворожило атлантистов и оставило равнодушными индийцев? Добавлю интриги: на финишной прямой "Миллионер из трущоб", снятый на 15 миллионов долларов и без актерских звезд первой величины, обошел "Любопытную историю Бенджамина Баттона" с бюджетом в 150 миллионов и бесподобными Кейт Бланшетт и Брэдом Питтом в главных ролях. Разберем теперь "Миллионера" по косточкам.

Фильм Денни Бойла материализует три самых грандиозных социальных мифа современности - миф об индивидуальной мобильности ("стоит только сильно захотеть и приложить серьезные усилия, как любая сказка обернется былью"), миф о природной интеллектуальности simple man, простого человека ("мы ваших университетов не кончали, однако наш жизненный опыт стоит мешка всех кабинетных знаний") и миф о надежде ("даже в самых страшных переделках нельзя падать духом"). Для читателей, не знакомых с культурологической терминологией, поясню, что слово "миф" напрочь лишено каких бы то ни было уничижительных контекстов (насмешек, презрительного высокомерия, осуждения). Миф - это не плохо, не хорошо, не стыдно и не примитивно. Миф - это всего лишь определение подсознательного социального процесса, единственно способное обозначить бытие широких народных масс. У простого народа мифологично все: мышление, поведение, социальная мотивация, жизненные идеалы, цели, устремления и даже эмоциональные реакции.

Мифология "Миллионера из трущоб" тотально ориентирована на народное мировосприятие - обстоятельство, десятикратно усиленное сюжетной канвой игры "Кто хочет стать миллионером", колоссальный успех которой во всем мире объясняется мифологичным же отождествлением в народных массах понятия жизненного успеха с денежным обогащением ("если ты такой умный, почему тогда такой бедный?")

вторник, 24 марта 2009 г.

Будущее здесь → Продолжение топика о детях

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

пятница, 13 марта 2009 г.

Принцип неопределенности

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

К сожалению, реальность устроена иначе.