Ревизия бутылок пива на стене

Число языков, на которых я написал песню о бутылках с пивом достигло 39. Для того, чтобы увидет не было ли где-то пропусков, я выписал все эти языки. Получился солидный список.
Читать дальше

  1. PostgreSQL
  2. MySQL
  3. Apache SSI
  4. W2K Batch (CMD)
  5. PHP
  6. JUnix shell
  7. Small HTTP Server SSI
  8. PriceConvertor Short Talk 2.00RC2
  9. Parser
  10. ASP (JScript) и JavaScript
  11. язык SCP-файлов
  12. С--
  13. WSH (JScript)
  14. SmallC
  15. dbPager
  16. Oberon-2
  17. Ox
  18. РАПИРА
  19. VIRT
  20. PasScript
  21. ActionScript5 (Flash)
  22. Miva
  23. Ruby
  24. KiXtart
  25. Omens
  26. RBASIC
  27. MACS
  28. RW1
  29. Euphoria
  30. Базовый SIMPLE
  31. Bascom-8051
  32. Parrot
  33. OW-Basic
  34. Паркетчик
  35. PocketBasic
  36. NSIS
  37. JavaScript for Photoshop
  38. XSLT
  39. TBC

2 комментария

9I BAC noHuMAI-O

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

fuf = ага
jr = ок
щл = ok
eue = угу
ghbdtn = привет
rfr ltkf, = как дела?

Кстати, опечатка «fuf» мне понравилась настолько, что я уже употребляю это слово наравне с «ага». Не удивляйтесь, если увидете её в тексте. Fuf?

4 комментария

«Омут»

В Казани открылся киноклуб «Омут», в четверг мы с Настей сходили туда на мюзикл «Чикаго». Довольно приятное место — два зала на 16 и 20 мест заняты диванчиками на двоих, ограждённых ширмой по уровню дивана. Под рукой кнопки вызова официанта и включения небольшого светильника. Из недостатков — довольно маленький, по сравнению с кинотеатрами экранчик и звук на троечку, в зале несколько прохладно. Впрочем, на звук я перестал обращать внимание довольно быстро. Расценки на напитки и закуски — на уровне остальных клубов. Буду туда ходить иногда. Но всё-таки кинотеатры мне нравятся больше.

P.S. When you're good to mama // Mama's good to you © Chicago

6 комментариев

99 бутылок: XSLT и TBC

38. XSLT. Язык преобразований одного XML-документа в другой, основанный на XML же. Написано о нём достаточно много, так что останавливаться на нём не буду. Это, в отличие от большинства языков, на которых я программировал — декларативный язык. Строго говоря, XSLT мёртв без другого языка — XPath, языка выборки. С его помощью, например, выполняются все вычисления. В парсерах первых версий нет циклов, что кажется несколько странным, так что мне пришлось использовать рекурсию. Кстати, наиболее странное в XSLT другое — однажды объявленная переменная больше не может менять своего значения. Это ограничение обходят при помощи рекурсии и использования локальных переменных.

Запустить скрипт на выполнение можно, сохранив листинг в файл beer.xml и открыв его браузером Internet Explorer.

Программа, выводящая песню о пиве (beer.xml)

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="#beer"?>

<!-- Beer song. Written by Evgeny Stepanischev -->

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
id="beer">
<xsl:output method="html"/>
<xsl:strip-space elements="*"/>

<xsl:template name="beer">
  <xsl:param name="n"/>
  <xsl:choose>
    <xsl:when test="boolean($n)">
      <xsl:value-of select="$n"/>
    </xsl:when>
    <xsl:otherwise>
      No
    </xsl:otherwise>
  </xsl:choose>
  <xsl:text> bottle</xsl:text>

  <xsl:if test="boolean($n - 1)">
    <xsl:text>s</xsl:text>
  </xsl:if>
</xsl:template>

<xsl:template name="while" match="/">
  <xsl:param name="i" select="99"/>
  <xsl:choose>
    <xsl:when test="$i != 0">
      <xsl:variable name="str">
        <xsl:call-template name="beer">
          <xsl:with-param name="n" select="$i"/>
        </xsl:call-template>
      </xsl:variable>

      <xsl:value-of select="$str"/>
      <xsl:text> on the wall, </xsl:text>
      <xsl:value-of select="$str"/>
      <xsl:text> of beer.</xsl:text><br />
      <xsl:text>Take one and pass around,</xsl:text><br />
      <xsl:call-template name="beer">
          <xsl:with-param name="n" select="$i - 1"/>
      </xsl:call-template>
      <xsl:text> on the wall.</xsl:text><br /><br />

      <xsl:call-template name="while">
        <xsl:with-param name="i" select="$i - 1"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      No more bottles of beer...<br />
      Go to the store and buy some more...<br />
      99 bottles of beer.
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:stylesheet>

39. TBC (Tokiwa BASIC Compiler). Эта бесплатная версия компилятора является урезанной версией коммерческого компилятора TWK-86BC и написал её японец Tokiwa.

Компилятор умеет компилировать код в COM и DOS EXE-файлы и интересен тем, что имеет интеграцию со встроенным ассемблером и довольно развитый интересный синтаксис, основанный на языке BASIC. Например, присутствует оператор DefInt, который сообщает компилятору, что переменные, начинающиеся с заданных оператором букв, имеют целочисленный тип.

Есть блочные конструкции, операторы обработки ошибок, выбора альтернативы (on … goto …), поддержка строк и меток, в связи с чем поддерживаются как обычные процедуры и функции, так и переходы по номерам строк. Предусмотрены операторы ввода-вывода для работы с устройствами DOS и файлами и многое другое.

Кстати, что неприятно удивило — возвращаемым значением для процедур и функций (кстати, можно сказать, что процедуры и функции тут различаются только ключевыми словами) может быть только числовое значение.

Программа, выводящая песню о пиве (beer.tkw)

* Beer song. Written by Evgeny Stepanischev

Integer I
Character S

For I=99 To 1 Step -1
    Call Beer(I)

    Print S; " on the wall, ";S;"."
    Print "Take one and pass around,"

    Call Beer(I-1)
    Print S; " on the wall." : Print
Next I

Print "No more bottles of beer..."
Print "Go to the store and buy some more..."
Print "99 bottles of beer."

SubRoutine Beer(I)
    Integer I

    If I=0 Then S="No" Else S=Str$(%1I I)
    S=S+" bottle"

    If I<>1 Then S=S+"s"

    S=S+" of beer"

    Return
SubEnd

End


Оставить комментарий

99 бутылок

Когда-то очень давно я начал писать на попадающихся мне под руку языках реализацию американской «песни о пиве». С тех пор написано уже почти 40 таких программ. Рад представить новую серию этого пивного сериала /3041 на этот раз XSLT и TBC (Tokiwa BASIC Compiler).

Оставить комментарий

Вредные привычки

Господа люди, ну что за привычка у вас в тему писать начало фразы, а в поле сообщения — продолжение? Это вы зачем так? Читать неудобно и смысла нет. Я, например, привык воспринимать заголовок как заголовок, туда я иногда вообще не смотрю.

11 комментариев

VC++

Чудны дела твои, Билли! Для того, чтобы функция из DLL импортировалась под своим именем (GetProcAddress(dllHandler, «some_func»), какой-то забавный дядя в недрах Microsoft придумал вот такую строку:

extern «C» __declspec(dllexport) int __cdecl some_func(void)

кого мне за это расцеловать? кто-нибудь знает, почему сделано так, а не иначе?

10 комментариев

Яndex шутит?

Догадайтесь в какую категорию на Яndex'e попал мой регистр? Ни за что не догадаетесь! «Рассказы, стихи и пародии» [ >>> ]

4 комментария

На что похож человек?

Шесть слепых слонов как-то собрались и давай рассуждать, на что похож человек. Один потрогал человека ногой и сказал:

— Человек — это что-то маленькое и плоское.

Все остальные тоже потрогали человека ногой и согласились, что человек — что-то маленькое и плоское.

Это был анекдот.

Оставить комментарий

Поисковые запросы

Зашли по запросу «голые тату», попали на абзац озаглавленный «не голые тату» [ >>> ]. На первых трёх страницах Яndex'a этой ссылки по упомянутому вопросу не обнаружилось. Далеко же может человек зайти в поисках обнажённых кумиров!

Оставить комментарий

Каламбур

Втутрях матом.
Читать дальше

Придумал каламбур для женский трусиков. «Сюда — хуй». Каламбур заключается в том, что, в зависимости от интонации, фразу можно понять двояко, поскольку «хуй» употребляется часто в запретительном смысле (ср. «хуй тебе!»).

3 комментария

Какой вы ЖЖ-юзер.

Мне сказали, что у меня шизофрения и никто, даже я сам, скорее всего не знает, какой я ЖЖ-юзер. http://lj.hole.ru:8080/

2 комментария

PCAnywhere SDK

Господа люди! Помогите найти PCanywhere SDK, пожалуйста. Нужны вот эти файлы:

winawsvr.tlb
awrem32.tlb
Winawsvr.h
Winawsvr.cpp
Awrem32.h
Awrem32.cpp

2 комментария

Болки питания

Всё говорит о том, что мы, болки, востребованные твари. 970 страниц на Яндексе… [ >>> ]

Оставить комментарий

Никому не нужен?

Домкрат эластичный ПДВ-1 [ >>> ] «может комплектоваться болком питания». Только готовлю я не очень.

Оставить комментарий

Интернет-мантра

Yandex наконец-то проиндексировал мой регистр. Будем смотреть на запросы.

химия, хит-парад, открытки, рефераты, пост, безопасность, 1с, арсенал, гороскоп, кролики, мебель, adobe, компьютер, иконки, масяня, мтс, mts, тату, работа, финансы, новости, туризм, лесбиянки, газета, халява, олимпиада, доска, объявление, интернет, радио, знакомства, роберт, приколы, библиотека, глобализация, этика, доклад, халява, тату

6 комментариев

WWW — МММ вверх ногами?

Первого февраля открылась пирамида, принимающая деньги через системы WebMoney и Яndex.Деньги. Желаете поучавствовать? [ >>> ]

Оставить комментарий

Mail.Ru… ну, вы знаете…

Я уже очень давно не пользуюсь ящиками mail.ru. С той давней (сколько лет прошло?) истории, когда некоторые пользователи этого сервиса стали получать чужие (!) письма. Позже я моё мнение подкрепилось нескольми найденными там и до сих пор не залатанными дырами в защите. И вот, новая проблема, с которой сталкивается всё больше и больше людей. На ящики mail.ru невозможно отослать письмо. Администрация вводит новую политику — при получении спама с какого-то почтового сервера, они не обращаются к провайдеру, а отлучают почтовый сервер. Целиком. Процедура получения индульгенции абсолютно невнятна, да и проходить её многие просто не захотят. Когда я столкнулся с этой проблемой впервые, я потратил 2 месяца на разрешение этой проблемы. Если я столкнусь с этим ещё раз, я просто плюну на эту проблему. Пусть mail.ru варится в своём маленьком котелочке, продолжая эту политику, думаю, они просто растеряют пользователей, которые не смогут нормально переписываться с друзьями. [ >>> ]

5 комментариев

Windows .NET

Что будет представлять из себя релиз новой («революционной» писать не буду) операционной системы Windows .NET можно узнать уже сейчас. На сайте Постмастера. [ >>> ] Попытка установить RC2.

Оставить комментарий

А знаете ли вы что?..

У автора картинки, которую я размещал у себя 11 марта, есть домашняя страничка с другими, не менее симпатичными работами? [ >>> ] Зовут автора Михайлова Татьяна. Спасибо ей большое за вложенную в эту и другие работы душу.

Оставить комментарий