August 8th, 2002

moose, transparent

ещё о Дейкстре; первая программа

(контекст)

Я время от времени вспоминаю это его высказывание:
Практически невозможно научить хорошо программировать студентов, ориентированных первоначально на БЕЙСИК: как потенциальные программисты они умственно оболванены без надежды на исцеление.


Первая нетривиальная программа в моей жизни была мной написана на Бейсике.

Ещё и какая забавная была программа: она вычисляла число пи до любого знака после запятой (это в теории; на практике больше тысячи было нереально, Бейсик начинал задыхаться). Делала она это, суммируя тригонометрический ряд, который сходился к пи с точностью до коэффициента. Притом самый естественный ряд такого рода -- а именно 1 + 1/3 - 1/5 + 1/7 - 1/9 + 1/11 .... = pi/4 -- использовать было нельзя, так как он сходится до невозможности медленно. Поэтому я пошёл в библиотеку, зарылся в справочники и нашёл быстро сходящуюся формулу. Это было разложение по арктангенсу: пользуемся тем, что pi = 16*arctan(1/5) - 4*arctan(1/239), а эти два арктангенса раскладываем в ряды по формуле arctan(x) = x - x3/3 + x5/5 - x7/7 + .... Такой метод давал больше одного значимого знака на каждую итерацию. Цифры я хранил в бейсиковском массиве, и ещё там были какие-то оптимизации, не помню.

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


А афоризму Дейкстры этому я не верю, и никогда не верил. Он, несомненно -- забавен? остроумен? не знаю, какое слово подобрать взамен идеально подходящего здесь английского cute -- но одновременно глубоко неверен.
  • Current Mood
    nostalgic nostalgic
moose, transparent

OED news; Толкин; skeevy и другие слова

Интересный очередной выпуск периодического бюллетеня Оксфордского словаря:
Oxford English Dictionary News (June 2002)

Рассказывает о том, как Толкин участвовал в работе над словарём в 1919-1920, и даже приводит фотографии карточек, над которыми он работал.

Кроме того, рассказывает о расширении отдела американского языка внутри редакции словаря. Проверьте знание своего американского:
Some of the words we have drafted in recent months include tipping point, gentleman's C, weaponize, collateral damage, blog, skeevy, and perp walk.

Я из этих слов не знал только skeevy; оно означает "shady, unsavory, icky" и обсуждается в этой статье.
moose, transparent

неформальный опрос (первая программа)

Дорогие программисты и программистки (а также те, кто к программистам себя не причисляет, но программы писать умеет)!

Расскажите, пожалуйста, о своей первой нетривиальной программе ("нетривиальной" можно понимать, как вам удобно). На каком языка она была написана, что делала, на каком компьютере бежала, сколько вам тогда было лет? Конечно, можно рассказать только часть этой информации или, наоборот, подробнее.

Здесь уже набралось несколько интересных рассказов, но было бы здорово ещё почитать. Мне это ни для чего конкретного не нужно -- просто, по-моему, интересная тема.
  • Current Mood
    curious curious
moose, transparent

американский сленг

The College Slang Resource Project

Интересный ресурс; жаль, что так мало есть собственно онлайн, вместо этого они просят присылать им $4, и высылают по почте. Лень мне присылать им $4 ;)

Любопытный список Top 20 (мне в нём незнакомы #20, #18, #4 (в этом специфическом значении; общее сленговое значение "обманщик" известно, конечно) и -- стыдно признаться -- #1), а также отличная подборка ссылок на другие сайты, посвящённые сленгу.
moose, transparent

The Dead Letter Office; смерть-кардинал

Сама идея сайта The Dead Letter Office интересна. Предположите, что вы сейчас умерли, прямо сейчас -- ни с кем не попрощавшись, ничего не завершив, сию минуту. Теперь представьте, что у вас есть возможность написать письмо миру -- и сказать ему (и кому угодно из знавших вас людей) всё, что вам заблагорассудится. Всё, что угодно. Из таких вот писем, сочинённых посетителями сайта, и состоит The Dead Letter Office. Сейчас их там больше четырёх тысяч. Заходишь просто на страницу чтения -- и читаешь какое-нибудь наугад выбранное. Или пишешь своё.

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

Интересные обрывки иногда попадаются разве что вопреки авторскому замыслу, когда сквозь приторную сладость или дешёвый антагонизм проглядывает оскаленная мордочка абсурда. Как в этом письме, например:
FUCK my school. and everybody in it. all you fucking geek douchebags need fucking LIVES. I swear some of you guys are fucking GEEKS.
my biggest regret in life goes out to my second grade chinese school teacher.
when i spilled my pencils on the floor you came over and picked them off the ground. i sat there and watched you. you were on your knees and you picked up everysingleone. if i could do it all over again.. i would have picked up those pencils myself.

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

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


Пояснение: недостижимый кардинал -- это такой математический термин, я прошу прощения ;)
moose, transparent

загадка (для программистов)

Загадка: что напечатает приведенная ниже однострочная программа, если её запустить? Желательно отгадать, не запуская. Если никак не получится, советую хотя бы попробовать объяснить, почему она печатает то, что печатает. Кстати, компилировать и запускать надо на каком-нибудь Юниксе (почему? дополнительный вопрос).

main() { printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}

Это одна из самых любимых мной программ из числа победителей Obfuscated C Contest. Она победила в категории one-liner в 87-м году. А ещё одна программа-победительница в том же году замечательно иллюстрирует тезис статьи Дейкстры "Goto statement considered harmful": Collapse )
moose, transparent

о русской азбуке

Внезапно подумал о том, что, может быть, не так уж и странно, что русский язык отбросил старую азбуку с названиями букв (аз, буки, веди...) и перешёл к "фонетической" азбуке (а, бэ, вэ...). Я думал раньше уже о том, что не очень понимаю, как именно это случилось и почему. Например, было ли это чьим-то авторитарным решением (большевиков?) или сложилось само по себе?

Так вот, идея, которая мне пришла в голову, очень проста: аббревиатуры!

Аббревиатурам нужен алфавит с фонетическими буквами. Не будешь же, действительно, произносить РСДРП как "рцы-слово-глаголь-рцы-покой". Какое-то количество аббревиатур может проникать в язык и оставаться в нём только в письменном виде, всегда расшифровываясь в речи. Но далеко на этом не уедешь. Ведь, в конце концов, одно из преимущество аббревиатур в том, что они сокращают длинные словосочетания, которые целиком выговаривать каждый раз не хочется.

Кажется интуитивно верным, что, по мере того, как мода на аббревиатуры, вообще очень сильная в Европе в конце 19-го века, начала проникать в Россию, возникла необходимость как-то произносить русские буквы. Из нескольких возможных вариантов естественным образом был выбран французский (бэ, вэ, жэ и т.п). Главное, что аббревиатуры помогли закрепиться (а может, даже и возникнуть?) альтернативной традиции наименования букв; поэтому потом, после революции, стало возможным относиться к традиционной азбуке как к архаично-церковной, и следовательно плохой -- и постепенно перестать ей пользоваться.

Всё это только приблизительные соображения, надо проверять.
moose, transparent

английские ругательства, Гамлет, каламбур

Сначала -- ссылка: A Short Guide to Short Words - небольшой, но полезный путеводитель по английским табуированным словам.

В тексте там упоминается один любопытный каламбур у Шекспира, о котором я читал когда-то, но совсем забыл. А сейчас вот вспомнил.

Этот весьма неприличный каламбур находится в "Гамлете", акт III, сцена 2. В первой сцене Гамлет произносит "Быть или не быть" и посылает Офелию в монастырь; во второй сцене он сначала наставляет бродячих актёров, а затем, когда все входят смотреть представление, кладёт голову Офелии на колени:

Hamlet. Lady, shall I lie in your lap?
[Sits down at Ophelia's feet.]
Ophelia. No, my lord.
Hamlet. I mean, my head upon your lap?
Ophelia. Ay, my lord.
Hamlet. Do you think I meant country matters?
Ophelia. I think nothing, my lord.
Hamlet. That's a fair thought to lie between maids' legs.
Ophelia. What is, my lord?
Hamlet. Nothing.
Ophelia. You are merry, my lord.

Collapse )