Cyril Slobin ([info]slobin) wrote,
@ 2007-08-03 06:00:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:lingvoj, taglibro, tekniko

Этот вопрос мне задавали в комментариях неоднократно, поэтому объявляю его FAQ:

Кто/что подставляет эти забавные строчки в конце моих постов? Почему иногда они получаются настолько в тему?

Эти строчки -- Наглядная Манифестация Диалектического Единства Слепой Судьбы и Свободы Выбора. Сначала простенький скрипт на Питоне извлекает из файла fortune.txt от четырёх до десяти случайно выбранных строк и кидает их в буфер, а потом я уже сам выбираю из них ту, которая мне кажется наиболее подходящей к теме послания. Исключения бывают, но очень редко.

Для любопытных: скрипт на Питоне

import os, sys, random

format = "<p><em>... %s ...</em>\n"

cookies = open(sys.argv[1]).readlines()
cookies = random.sample(cookies, random.randint(4, 10))
cookies = [format % line.rstrip() for line in cookies]

pipe = os.popen("winclip -c", "w")
pipe.writelines(cookies)
pipe.close()

Update:

Для любопытных: теперь на Лиспе

(setq input (read-file (main-args 2)))
(setq markup "<p><em>... %s ...</em>")
(rand 0)

(setq cookies (clean empty? (parse input "\r\n")))
(setq cookies (0 (+ 4 (rand 7)) (randomize cookies)))
(setq cookies (map (curry format markup) cookies))

(exec "winclip -c -w" (join cookies "\r\n" true))
(exit)

Размер файла на текущий момент -- 598 строк. 500 строк было 196 дней назад, что даёт скорость роста 1/2 строки в день ровно. Но эта скорость непостоянна -- файл старше, чем три с небольшим года. В принципе строки из файла иногда выкидываются, но это бывает крайне редко. В файле есть строки на двенадцати языках.

Для любопытных: статистика по языкам

Русский      489
Ложбан        50
Английский    32
Квэнья         5

Латынь         3
Немецкий       3

Силиэ          2
Халонский      2
Эсперанто      2

Испанский      1
Клингон        1
Санскрит       1

Непонятно      7

Я не знаю, как эти строчки правильно называются. Ориджины, тэглайны, фортунки, куки, наконец, просто подписи. Популярное мнение, что эта традиция зародилась в ФИДО, неверно -- в интернете она была гораздо раньше ("интернет" не равно "паутина", жизнь была задолго до html/http).

Update:

Для любопытных: ссылки на литературу

http://catb.org/jargon/html/C/cookie.html
http://catb.org/jargon/html/C/cookie-bear.html
http://catb.org/jargon/html/C/cookie-file.html
http://catb.org/jargon/html/C/cookie-jar.html
http://catb.org/jargon/html/C/cookie-monster.html
http://catb.org/jargon/html/F/fool-file.html
http://catb.org/jargon/html/F/fortune-cookie.html
http://catb.org/jargon/html/M/magic-cookie.html
http://catb.org/jargon/html/S/sig-block.html
http://catb.org/jargon/html/S/sig-virus.html
http://catb.org/jargon/html/S/sigmonster.html

Если читать всё лень или некогда, достаточно ограничиться первой и последней ссылками.

... В двадцать первом веке, в самом начале ...



(Post a new comment)


[info]vvagr
2007-08-03 08:52 am UTC (link)
"- в интернете она была гораздо раньше"

почему в интернете? в ос какой-то это было вообще до сетей каких-либо.

(Reply to this)(Thread)


[info]slobin
2007-08-03 08:58 am UTC (link)
По-моему, "это" осмысленно, только если есть какая-то переписка между людьми. Почта, ньюсы, форумы, эхи. До сетей была почта в пределах одной машины, но там такой традиции вроде бы не было. Хотя да, были фортунки при входе в систему (или выходе), но там обычно не одна строчка, а абзац. Другой контекст, другой стиль.

... Приходит миг, приходит срок - и рвётся связь ...

(Reply to this)(Parent)(Thread)


[info]vvagr
2007-08-03 11:41 am UTC (link)
только что дошло - это ж от fortune cookies ведёт происхождение! а браузерные куки - они оттуда же получили имя?

(Reply to this)(Parent)(Thread)


[info]slobin
2007-08-03 03:11 pm UTC (link)
http://catb.org/jargon/html/C/cookie.html
http://catb.org/jargon/html/C/cookie-bear.html
http://catb.org/jargon/html/C/cookie-file.html
http://catb.org/jargon/html/C/cookie-jar.html
http://catb.org/jargon/html/C/cookie-monster.html
http://catb.org/jargon/html/F/fool-file.html
http://catb.org/jargon/html/F/fortune-cookie.html
http://catb.org/jargon/html/M/magic-cookie.html
http://catb.org/jargon/html/S/sig-block.html
http://catb.org/jargon/html/S/sig-virus.html
http://catb.org/jargon/html/S/sigmonster.html

Если лень читать всё, то достаточно ограничиться первой и последней ссылками.

... Брею тех, кто не бреется сам. Недорого, возможен выезд на дом. ...

(Reply to this)(Parent)(Thread)


[info]vvagr
2007-08-03 03:24 pm UTC (link)
Я прекрасно понимаю путь от кулинарного пирожного в китайском ресторане до цитаты при логине или в конце письма.

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

(Reply to this)(Parent)


[info]klina
2007-08-03 11:12 am UTC (link)
А я думала ты сам их сочиняешь... Блин...
Куда не плюнь, одни программеры:)

(Reply to this)


[info]phd
2007-08-03 04:55 pm UTC (link)
Сигнатурные монстры питаются печеньем? ;)

(Reply to this)


[info]juri_jurta
2007-08-04 11:10 am UTC (link)
В Дебиане только что добавили новый пакет fortunes-ru.deb, который основан на коллекциях фортунок со страницы http://jack.kiev.ua/content/view/8/9/lang,ru/

(Reply to this)(Thread)


[info]slobin
2007-08-04 03:50 pm UTC (link)
Отказать. Свою коллекцию я собирал с любовью и старанием, у меня с каждой строчкой связаны тёплые воспоминания. Впрочем, если уж играть в эти игры, то, наверное, найдётся пара строк, обстоятельств и мотивов внесения которых я не помню. Но ведь это само по себе интересно -- строчка есть, а соответствующего воспоминания нет! Этот факт сам по себе -- достаточное основание её сохранить. ;-)

... В окна врывается ветер прощаний и встреч ...

(Reply to this)(Parent)(Thread)


[info]juri_jurta
2007-08-04 05:14 pm UTC (link)
Можно туда добавить Вашу коллекцию ;-)

(Reply to this)(Parent)


[info]juri_jurta
2007-08-04 05:15 pm UTC (link)
Кстати, еще есть неплохой источник пополнения фортунок - из сборника, используемого в качестве эпиграфов на сайте cooler-online.com.

A еще помню, была такая досовская резидентная программка talker.com, которая выдавала из файла talker.msg разные прикольные ответы на команды.

(Reply to this)(Parent)

fortune из AT&T Unix Version 7
(Anonymous)
2007-10-23 08:41 pm UTC (link)
"- в интернете она была гораздо раньше"

Было гораздо раньше интернета! Ибо программа fortune была уже в Unix version 7 (1979), а интернет (BSD 4.2) появился на пять лет позже (1984)

http://en.wikipedia.org/wiki/Fortune_(program)
A fortune program first appeared in Version 7 Unix. The most common version on modern systems is the BSD fortune, originally written by Ken Arnold.

(Reply to this)


[info]eyres
2008-06-25 12:42 pm UTC (link)
А для Greasemonkey это никак нельзя адаптировать? Очень уж соблазнительная штука.

(Reply to this)(Thread)


[info]slobin
2008-06-26 04:42 am UTC (link)
Да в принципе можно, но нафига? Работает и ладно. Правда, насколько я помню, грисманкины скрипты не умеют читать файлы с диска, поэтому весь запас фортунок придётся держать в его собственной персистентной памяти и редактировать через формочку. Не говоря уже о том, что вдруг я пишу в ЖЖ из Эксплорера? Геморроя больше, удобства меньше. Разве что на спор. ;-)

... Засiб гарний!... Але мета ...

(Reply to this)(Parent)(Thread)


[info]eyres
2008-06-26 07:47 am UTC (link)
Разве что на спор. ;-)

Типа такого: Значит слабо?:))
Неловко шучу.
Просто я совсем не понимаю, как мне, в том виде как он есть, заставить его работать у себя. Но если адаптация под GM такое хлопотное дело, то что ж ...

(Reply to this)(Parent)


[info]eyres
2008-07-09 05:45 am UTC (link)
Я опять пришел:) Если будет время ответьте, пожалуйста, на несколько вопросов.

Установил Python -> Запускаю IDLE (Python GUI) -> Ctrl+N -> Копирую текст скрипта -> Ctrl+F5 -> Открывается диалоговое окно сохранения. Вопрос: куда сохранять скрипт и с каким расширением?
И второй вопрос, если позволите, где должен находиться файл fortune.txt?
Спасибо.

(Reply to this)(Parent)(Thread)


[info]slobin
2008-07-10 04:27 pm UTC (link)
Эээ... Извините, но при таком уровне понимания это, видимо, безнадёжная задача. Просто бывает, что программы публикуют, чтобы ими пользовались. "Поставил -- работает", пользователь не обязан понимать деталей. А бывает, что отрывок кода выкладывают для того, чтобы другие программисты на него посмотрели и что-то из него поняли. Эти скрипты (что на питоне, что на лиспе) не были рассчитаны на работу в руках посторонних, это скорее была демонстрация возможностей для тех, кто способен их прочитать. Я буду объяснять Вам, как его запустить, гораздо дольше, чем писался сам скрипт. Извините.

P.S. Скрипты для пользователей я тоже пишу: например, в моей загружалке видео всё сделано для того, чтобы ей могли пользоваться не только программисты. Это просто разные случаи.

... За всю привязанность к сортам дешёвых вин ...

(Reply to this)(Parent)(Thread)


[info]eyres
2008-07-11 06:44 am UTC (link)
Понятно. Прошу прощения за то, что отнял время.

(Reply to this)(Parent)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…