IE 5.5: новые классы CSS

Скриншот окна браузера Internet Explorer с открытой страницей сайта pixelCO, где крупно отображается логотип «pixelCO» и надпись «THE ARTISTRY WEB».
Screenshot. Шоколадные полосы прокрутки.

Сегодня я зашел на сайт PixelCore под своим IE 5.5 и увидел там полосу прокрутки… шоколадного цвета! Мыслей возникло две — новые возможности новой версии и глюк браузера.

Версию о глюке я отложил в сторону и стал смотреть откуда растут шоколадные ноги у полос прокрутки. Под подозрение попал PixelCore’вский CSS-файл. Скачав его себе, я увидел внутри вожделенные свойства, начинающиеся со слова scrollbar. «Так,» — подумал я — «пора сходить на MSDN».

На MSDN’е мне вежливо объяснили, что браузере IE5.5 от мамы с папой при рождении получил, кроме нового в области фильтров и JavaScript, еще и новые атрибуты к евойному CSS, о чем подробнее можно почитать «здесь, там и еще вот тут». Я проникся уважением от такой заботы к разработчикам и с удовольствием почитал. И вот, что я узнал.

scrollbar-face-color, scrollbar-shadow-color, scrollbar-highlight-color, scrollbar-3dlight-color, scrollbar-darkshadow-color, scrollbar-track-color, scrollbar-arrow-color — весьма многочисленная группа атрибутов, управляющая цветами элементов прокрутки. Назначение каждого, думаю, понятно из названия или англо-русского словаря. Может быть применен к любому тегу, имеющему полосы прокрутки, например BODY или TEXTAREA.

word-wrap — управляет разбиением текста в контейнере. Возможные значения — normal и word-break. Второе указывает на то, что текст, не поместившийся в контейнер по ширине будет принудительно разбит на несколько строк. Помните, как слишком длинные слова «раздвигали» таблицу? Теперь это поправимо средствами CSS.

writing-mode — переключает между режимами написания «слева-направо, сверху-вниз» и «сверху-вниз, слева-направо», т. е. текст пишется горизонтально. Возможные значения — lr-tb и tb-lr. Соотвественно может применяться везде, где есть текстовое наполнение (вплоть до INPUT).

white-space — может принимать значения normal или nowrap. normal задает обычный режимом вывода (текст, не поместившийся по ширине, автоматически разбивается на строки по пробелам и знакам препинания), nowrap — режим, при котором не поместившийся текст увеличивает ширину контейнера.

text-underline-position — управляет стилем подчеркивания текста. Принимает значения below (линия под текстом) и above (линия над текстом).

zoom — как и следует из названия, атрибут, предназначенный для _масштабирования_ содержимого тега. Значения указываются в процентах (например, 110%, 200%, 14%) или как коэффициент масштабирования (например, 1.1, 2, 0.14). Масштабировать можно все, что имеет содержание (например BODY).

Кроме того в IE 5.5 наконец-то появились псевдоклассы :first-line и :first-letter, описанные еще в CSS1. Первый позволяет назначить стиль для первой строки, второй — для первой буквы абзаца.

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

Ускоряем VNC, boot, Colorer и PHP. OperaR, IE 6.0b

Если вы собираетесь в ближайшее время прикупить себе доменное имя, то подождите до 13 февраля. Именно с 13 февраля этого года организация RIPN обещает снизить стоимость регистрации домена в зоне RU до 24 долларов США. А с первого апреля нас ждет еще одна приятная новость — стоимость продления регистрации доменного имени будет стоить всего 18 долларов.

Окно настроек подключения с заголовком «Connection Options...» и выбранным параметром кодировки «Hexide» в разделе Preferred encoding.
VNC. Новые опции

Для удаленного управления из дома своим компьютером на работе я использую программу VNC. Жутко медленно, но, включив «Restrict pixels to 8-bit», кое-как работать можно. А можно ли работать быстрее? Кое-кто, оказывается, утверждает, что можно. Некая компания сделала к VNC патч, скачав который, я, например, увидел в меню настройки еще две опции: «Tight compression» и «Zlib compression».

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

Текст на чёрном фоне: «==>Теперь у нас доступен ФОРУМ
Screen shot сайта

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

В момент заливки заметки я обнаружил, что, список городов на сайте расширился (появилась Казань!), теперь их стало около двухсот. Обязательно сегодня же попробую подключиться.

И последнее: сайт часто переезжает и бывает недоступен. Если такое случится, то новый адрес можно узнать по ICQ 100077.

Продолжая тему ускорения. Для разработчиков, выбравших в свое время PHP, не секрет, что 4-я версия интерпретатора этого языка работает гораздо быстрее 3-й. В основном, за счет частичной прекомпиляции кода. Разработчики из BWare пошли еще дальше и предложили кешировать (сохранять) откомпилированный код. Таким образом скрипт компилируется только в первый раз, а далее, по мере необходимости, используется уже бинарный код. Утверждается, что удается добиться более чем 20-ти процентного ускорения. Единственное «но» — bware cache не работает вместе с Zend Optimizer.

С сайта можно скачать либо исходный код и скомпилировать все на месте, либо so- (shared object) файл. Если все прошло успешно, то функция phpinfo() должна выдать что-то подобное:

Логотип «Powered by Zend» с эффектом электрической дуги вокруг слова «Zend» на тёмном фоне.

This program makes use of the Zend scripting language engine:
Zend Engine v1.0.4, Copyright © 1998-2000 Zend Technologies
with Bware Cache v0.7, Copyright © 2000/2001 Bware Technologies,
by Roberto.Biancardi@bware.it

Продолжим. С выходом FAR 1.70b2, где, в инструментарий разработчика плагинов, добавились новые события редактора EE_REDRAW и EEREDRAW_CHANGE, появилась возможность отслеживать именно изменения текста в окне, а не передвижение курсора.

Скриншот окна Far Manager с открытым файлом 010205.htm, содержащим HTML-код таблицы с атрибутами border, cellpadding, cellspacing и ссылками на изображения.
Colorer

В связи с этим пользователям этой версии FAR и Colorer4you имеет смысл скачать патч библиотеки Colorer’а, который «обрабатывает новое событие редактора…», благодаря чему «…_значительно_ повышена скорость перемещения курсора в пределах одного экрана». Правда, предупреждает автор, скорость собственно раскраски несколько упала, так как модуль скомпилирован с применением Borland C++ Builder 3.0.

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

А закончить тему ускорения всего и вся я бы хотел ссылкой на программу Bootcelerator, которая призвана ускорить загрузку (boot) операционной системы Windows. Скачайте, посмотрите. Во встроенном help написано, что время загрузки уменьшается с трех минут до 30 секунд. Как я понял, все, что делает программа — меняет значения пары-тройки параметров в MSDOS.SYS (Boot Delay, Boot Logo, Auto Scan и т.п), а своим объемом (256К в архиве) она обязана языку программирования (MS VB 6.0) и файлу помощи.

Логотип Microsoft Internet Explorer: синий квадрат с белой буквой «e» в кольце, рядом цветные квадраты и надпись «Microsoft Internet Explorer».
MSIE Logo

С сайта WebCooler: «Ctrl-Alt-Del» пару недель назад опубликовала скриншоты бета-версии Internet Explorer 6.0. Ранее там можно было скачать и сам инсталляционный файл, но компания Microsoft попросила удалить его с сервера. Бета ставится только на Windows 2000, но, думаю, это ни о чем не говорит, наверняка позже появятся версии и для других ОС.

На скриншоты я, как и Cooler, взглянул, но какие-то выводы мне лично сделать трудно. Внешний вид Explorer с 4-й версии остается практически неизменным, а вот новых возможностей для веб-разработчиков появляется довольно много. Время подойдет — увидим.

L.P.S. Естественно, что нашлись люди, которые успели за отведенное время скачать бету и выложить ее у себя на FTP.

O, как ошибся! Компания Opera бросила-таки взгляд на Россию, раздираемую кодировочными противоречиями и выпустила версию Opera 5.02 RUS, где есть поддержка KOI, WIN, ISO и всего на чем традиционно читает наш русский человек. Я уже пытаюсь скачать, но сервер (или канал) так перегружен, что у меня пока ничего не получается. Если Opera еще выковыряет из своего браузера Instant Messanger с News Reader’ом и положит их отдельно, то я подарю каждому сотруднику этой фирмы по автомобилю Mersedes, в формате GIF или JPEG.

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

PComm, шуршик, WebClub и снова о FreeInternet

Несколько слов о бесплатном Интернете (см. предыдущую заметку). Людям, которые любят рассуждать о бесплатном сыре и мышеловке: если это и сыр, то очень замшелый и сроком годности прошедшим лет так на 5 назад. Я объясню почему. Вчера мне все-таки удалось выйти в Интернет, но!

  1. только с 20-й попытки и то, после того, как я провел всю сессию «руками», посмотрел где затыкается скрипт и подпатчил его.
  2. дозвонился я только по одному телефону (второй так и не ответил), на 12800, пинг 3—8 секунд и минимум 35 хостов между мной и любым из серверов, куда бы я не шел.
  3. сайты доступны все, но открываются ооооочень медленно. По полчаса. А может мне просто не повезло.

Как говорится, а что вы хотели за такие деньги? На фоне введенной повременки в Казани (3 рубля, 25 копеек в час) еще неизвестно, что дешевле выйдет — пользоваться доступом за деньги или «бесплатным» Интернетом. Но, как запасной вариант, совсем не помешает.

Красная сферическая щетка с жесткими радиальными щетинками на темном фоне.
Шуршик

Угадайте, что изображено на картинке? Это — шуршик! Именно так какой-то ларечный гений решил назвать сие изделие рук человеческих (в данном случае — китайских). А позиционируется оно, как игрушка для кошки. Сегодня буду испытывать. :) Надеюсь острый удушливый запах, исходящий от этого изделия не отобьет у кошки всякое желание с ним играть.

L.P.S. Извиняюсь за качество. Фотоаппарата под рукой не было, а был сканер и, в качестве фона, кружка.

Помниться, DZ, не далее как неделю назад, писал о компании Zairmail. Компания эта предложила жителям забугорья новую услугу: вы посылаете на электронный адрес компании e-mail с текстом письма, они его печатают на бумаге (вместе с заботливо вставленной рекламой) и отсылают указанному вами адресату по обычной почте. Завалишин очень расстраивался, что такой услуги нет у нас в России.

Такой нет. Но есть подобная, уже года два как есть. Называется она Mail Club. Для того чтобы пользоваться услугами клуба вы обязаны в него вступить и выполнять все указания координатора. Способ преобразования цифири в буковь прост: член клуба, получивший послание на ящик e-mail надиктовывает его адресату по телефону. Межгород не практикуется и это понятно, так что передать сообщение получится далеко не в любой город.

Сейчас в списке более 80 городов из более чем 10 стран. Всю, интересующую информацию, можно найти на сайте. Кстати, недавно при MailClub открылся еще и FaxClub. Я не интересовался, но, наверняка, принцип работы — тот же.

Microsoft собирается открыть исходный код Windows… нет, не каждому желающему, а еще нескольким сотням крупных заказчиков. Кажется, Билла Гейтса все-таки допекли нападками, типа «закрытое ПО — ненадежное ПО». Компания особо подчеркивает — этот шаг вовсе не означает, что корпорация включается в программу свободного распространения программных кодов.

Вы хотели бы установить модемное соединение между двумя компьютерами или подсетями, но качество линии связи не позволяет это сделать? Тогда, возможно, вас заинтересуют модемы фирмы PComm. Предназначены они для работы именно на линиях _низкого_ качества. Применяемая технология — ATMT; скорость передачи — до 30000 бит/сек в режиме коммутируемого канала, на стандартном диапазоне ТЧ 300…3400Гц — 24000 бит/сек, в режиме двухпроводной выделенной линии — до 56000 бит/сек.

Ограничения, накладываемые на линии связи:

  • Допустимое отношение сигнал-шум — до −3 дБ;
  • Допустимый уровень входного сигнала до −60 дБ;
  • Дрожание и скачки фазы — до 90 гр.;
  • Допустимые провалы мощности сигнала ниже −60 дБ до 20 сек;
  • Всплески шумов и помех до 60 дБ до 20 сек;
  • Сдвиг частот — до 20 Гц;

Стоимость модемов по Москве, если верить сайту Price.ru, — в пределах 250 — 350 долларов США.

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

Trek ThumbDrive, мертвый FreeInet и купленный доступ

USB-флеш-накопитель TRAX ThumbDrive с металлическим корпусом и разъемом USB-A, предназначенный для хранения и передачи данных.
ThumbDrive

Я давно искал способ переносить большие (по несколько мегабайт) объемы данных с работы домой и обратно. На дискетах часто появляются сбойные сектора, на них мало что помещается, они чересчур медленны. ZIP… неплохо, но очень громоздко, да оперативно смонтировать его трудно. CD-Writer — дорого, опять же монтирование… После долгих раздумий, я, кажется, нашел то, что мне нужно.

На картинке изображен ThumbDrive, носитель фирмы Trek. Подключается к компьютеру он через USB-порт и, в зависимости от варианта, имеет на борту от 16 до 256Мб памяти. Размером это чудо — чуть больше половины пачки от какого-нибудь «Орбита» без сахара, скорость передачи — на запись что-то около 500 килобайт/сек, на чтение — около 740. Цифры разные, так как носитель собран на базе памяти Flash.

С устройством в комплект входит дискета с драйверами и шнурок с чехлом — так что все это можно носить на шее или с ключами, как брелок. :)

После установки драйвера, стоит вставить ThumbDrive в разъем, в системе появляется новое устройство — съемный накопитель. Эмулируется файловая система FAT, т. е. устройство это можно отформатировать, проверить scandisk’ом, что-то туда записать, прочитать и тому подобное.

Чисто субъективно, устройство работает очень быстро, несмотря на то, что под Windows 98 не используется кеш. Так что, если у вас есть лишние 110$ (а именно столько стоит самая дешевая модель в Москве) — очень советую.

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

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

А я, тем временем, заплатил деньги и купил доступ в Интернет у одного из крупных казанских провайдеров. Я ругал FreeInet? О, это были цветочки. Причем бесплатные. Те ягодки, что я получил за деньги не идут ни в какое сравнение. Модем связывается на скорости 33600 (у меня Tainet, там эту скорость видно), вне зависимости от АТС, на которую я звоню, пинг уже только до головного сервера провайдера — примерно 300ms, с потерями 20—23%. Что уж говорить о удаленных сайтах. Линия кажется чистой, АТС цифровая. Переписка с провайдером пока ничего не дала. А по ощущениям — на FreeInet скорость была выше.

С уважением,
Евгений Степанищев.

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

99 бутылок: Microsoft Dialer

11. Microsoft Dialer. Можно только удивляться, сколько языков программирования можно найти у себя на компьютере. Эта песнь о пиве написана на языке программирования SCP-файлов, файлов, руководящих соединением через модем. Насколько я понял в этом языке есть примитивная арифметика, вывод, циклы и ветвление (правда без else), но нет преобразования типов. Так что переменная цикла nB используется только для упрощения. Но как бы то ни было, написать программу у меня получилось. :)

Скрипт, выводящий песню о пиве.

; "99 beer" song by Evgeny V. Stepanischev
proc main
    string szA = "9"
    string szB = "9"
    string szS = " bottles"
    string szX = ""
    string szY = ""

    integer nB = 99

    set screen keyboard on
    delay 2

    ; Эту строчку ждет мой провайдер
    ; У вас она может быть другой
    transmit "@D^M^M"

    while Nb>0 do

    if szA!="0" then
    transmit szA
    endif

    transmit szB

    szS = " bottles"
    if nB==1 then
    szS = " bottle"
    endif

    transmit szS
    transmit " of beer on the wall, "

    if szA!="0" then
    transmit szA
    endif

    transmit szB
    transmit szS
    transmit " of beer.^M"
    transmit "Take one and pass it around,^M"

    szX = szA

    if szB=="0" then
        if szA=="1" then
        szX = "0"
        endif

        if szA=="2" then
        szX = "1"
        endif

        if szA=="3" then
        szX = "2"
        endif

        if szA=="4" then
        szX = "3"
        endif

        if szA=="5" then
        szX = "4"
        endif

        if szA=="6" then
        szX = "5"
        endif

        if szA=="7" then
        szX = "6"
        endif

        if szA=="8" then
        szX = "7"
        endif

        if szA=="9" then
        szX = "8"
        endif

    szY = "9"

    endif

    if szB=="1" then
    szY = "0"
    endif

    if szB=="2" then
    szY = "1"
    endif

    if szB=="3" then
    szY = "2"
    endif

    if szB=="4" then
    szY = "3"
    endif

    if szB=="5" then
    szY = "4"
    endif

    if szB=="6" then
    szY = "5"
    endif

    if szB=="7" then
    szY = "6"
    endif

    if szB=="8" then
    szY = "7"
    endif

    if szB=="9" then
    szY = "8"
    endif

    szA = szX
    szB = szY

    nB = nB - 1

    if nB==0 then
    transmit "No more bottles of beer on the wall.^M"
    endif

    if nB!=0 then
    if szA!="0" then
    transmit szA
    endif

    transmit szB

    szS = " bottles"
    if nB==1 then
    szS = " bottle"
    endif

    transmit szS
    transmit " of beer on the wall.^M^M"
    endif

    endwhile


    transmit "No more bottles of beer...^M"
    transmit "Go to the store and buy some more...^M"
    transmit "99 bottles of beer.^M"

    delay 99
endproc

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

Валидатор. Ломаем Small HTTP Server. Scandisk

Наконец-то дошли руки. Написал свой собственный HTML-валидатор. Атрибуты тегов он, можно сказать, не проверяет, главный упор был сделан на проверку правильности построения таблиц. Ни один из валидаторов, которые я смог найти, толком этого делать не умеют. Как сопутствующее, добавил проверку на скрещивание и пропуск тегов. Язык — Perl, но работает довольно шустро. Выкладывать пока не буду — оставлю для собственного пользования.

Тестировал я его под Small HTTP Server (by Max Feoktistov) v 2.03 и решил этот самый сервер «поковырять» на предмет неустойчивой работы и дыр в системе безопасности. Вот что я наковырял:

  1. Встретив инструкцию <--#exec --> (именно в такой форме), в файле, где разрешены SSI, сервер «падает» с ошибкой при обращении к KERNEL.DLL.
  2. <--#include virtual="C:/autoexec.bat" --> — выдаст на экран файл autoexec.bat или, при указании другого пути, что-то более интересное. Так что, будьте осторожны, используя эту конструкцию с переменными, переданными странице через GET, в качестве параметра.
  3. Если знать название хотя бы одного SSI-скрипта, можно, довольно легко, «уронить» сервер дистанционно. Достаточно написать что-то вроде file.shtm?%.
  4. Посланные несколько раз подряд запросы, вида http://xxx.xxx.xxx.xxx/PRN (можно CLOCK$ или CONFIG$), вызывают, на моем Celeron-466 под Windows 98, долгую 100%-ю загрузку процессора, причем без свопа. То есть, чувствуется, что компьютер сильно тормозит, но от чего, без анализа, непонятно.
  5. И уж совсем «на сладкое». Запрос вида http://xxx.xxx.xxx.xxx./AUX вызвал у моей 98-й Винды глубокую кому, вывести из которой ее смогла лишь перезагрузка через Reset, тут же повлекшая за собой потерянные сектора и неправильные длинные имена файлов.

Кстати, могу предположить, что под 2000-й, например, что-то из перечисленного может и не сработать. Надо будет как-нибудь попробовать.

L.P.S. Попробовал. Все перечисленное, кроме последнего пункта, работает. Правда, 100%-я загрузка процессора на Windows 2000 не очень-то сказывается, хотя в мониторе видна. По правде говоря, вообще не сказывается. Вот что значит нормальная многозадачность.

Scandisk хвастается:

Папка C:\Windows
была повреждена:
Эта папка содержала одно или более длинных имен файлов,
не связанных с файлами.
  Устранение ошибок: Исправить ошибку
  Результаты: Ошибка была исправлена.

Программа проверки диска обнаружила на этом диске ошибки и все их исправила.

Почему хвастается? Потому что информации в логе — ноль рублей две копейки. Сколько именно было файлов? Что это были за имена? Как именно scandisk исправил ошибку? А по-другому было нельзя?

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

РК-86 и Орион-128, вирус на PHP, Opera на FD

Игрушка под PK-86
Оболочка под Orion
Диззи 7.5 для РК

Человеку свойственно мечтать о лучшем. Когда у меня была «двойка» я мечтал о «тройке», появился 386-й — стал мечтать о «четверке». А вот начинал писать программы я под РК-86, компьютере с черно-белым дисплеем, работающим только в текстовом режиме, и с частотой процессора что-то около 2—3 мегагерц. Мечтал я тогда об Орион-128…

И вот, как-то на днях, прохаживаясь по Вебу, наткнулся я на эмуляторы Радио РК-86 и Орион-128. Вспомнил «как это было» и ужаснулся… :)

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

Сейчас, когда стандартное приглашение РадиоРК можно встретить только в мониторе какого-нибудь «Пентиума», все гораздо комфортнее и красивее. К тому идем. Даже эмуляторы, не стесненные более рамками примитивного железа, ими же эмулируемого, и те туда же. Там своя эволюция. Появилась WindowsRT (Real Time), например, занимающая 25 килобайт, при 8-ми, имеющихся в наличии у настоящего РК-86, цвет, графика, звук.

Закономерно. Unix’ы, выбравшие в начале своего пути, иное направление, были практически непригодны, как рабочие станции, а значит путь в массы им был закрыт. Linux, привлекший внимание монстров, вроде Corel и IBM, все больше поворачивается к пользователю лицом. В смысле интерфейсом. Дружественные инсталляторы, драйверы, диалоговые утилиты.

Возможно, если так дело пойдет и дальше, Linux, в качестве desktop OS, заменит собой и тормозную, падучую Windows, и даже умницу BeOS. Хотя, теперь уже в рядах юниксоидов, набирает силу еще робкое «а Linux-то сакс!». С одной стороны — плевки в сторону Microsoft и призывы задавить Windows, с другой стороны — охаивание инициативы тех, кто, устав ждать милости от Билли, решил хоть что-то изменить. Наверное такова судьба всего популярного, «попсового». Я только надеюсь, что автора Линукса не назовут когда-нибудь последователем Билла Гейтса.

PHP обрел такую популярность, что на нем уже был написан первый вирус! Вирус пока опасности не представляет, просто заражает все .php, .hm, .html и .htt файлы, обнаруженные на машине, своей копией. Вот только «обучить» его выполнять что-нибудь деструктивное труда не составит — интерпретируемый язык к этому располагает. Но, в ближайшее время, думаю, не стоит опасаться нашествия PHP-вирусов, так как обмен файлами, которые могли бы их содержать, невелик. Подробнее можно почитать на сайте AVP.

Скачав по ссылке с сайта Opera.nm.ru браузер Opera, занимающий одну дискету, я, к сожалению, не смог его запустить. Программа вылетает с сообщением о недопустимой операции. Вооружившись UPX и здравым смыслом я изготовил свой дистрибутив, который так же занимает всего одну 3,5-дюймовую дискету при сохранении полной работоспособности под Виндами дома, на работе и в гостях. Вполне допускаю возможность появления каких-то глюков, связанных с подобным издевательством, но чем-то приходится жертвовать.

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

99 бутылок: C-​-, WSH

12. Sphinx C-​-. Есть язык Си, есть Си++, а есть, оказывается, Си-​-. Язык, занимающий промежуточное положение между Си и ассемблером. Его автором является Peter Cellik (Канада), в данный момент поддержкой и расширением синтаксиса языка занимается Михаил Шекер (Россия).

Язык мне показался обычным ассемблером, с внедрёнными элементами синтаксиса Си. Этакий навороченный макроассемблер. Попался бы мне такой лет так пять назад — оторвал бы с руками, а сейчас… Но, хотя на ассемблере теперь я пишу только мелочь, а мелочь лучше писать без применения всяческих прилад, стирать все же не буду — вдруг пригодится.

P.S. Кстати, на страничке языка можно скачать архиватор HA, переписанный на Си-​-. Работать он после такой модификации стал в полтора раза быстрее. Заслуга языка и компилятора или автора модификации?

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

?use80486
?include "WRITE.h--"

void PRINTBEER ()
{
    $PUSH AX;
    IF (AX) WRITEWORD (AX); ELSE WRITESTR ("No");
    WRITESTR (" bottle");
    $POP AX;
    IF (AX<>1) WRITE ('s');
    WRITESTR (" of beer");
}

void main()
byte bott;
byte beer = 99;
{
    WHILE (beer)
    {
        PRINTBEER (beer);
        WRITESTR  (" on the wall, ");
        PRINTBEER (beer);
        WRITESTR  (".\nTake one and pass it around,\n");
        beer--;
        PRINTBEER (beer);
        WRITESTR  (" on the wall.\n\n");
    };

    WRITESTR ("No more bottles of beer...\n");
    WRITESTR ("Go to the store and buy some more...\n");
    WRITESTR ("99 bottles of beer.");

    AX = 0x4C;
    $INT 0x21;
}

13. Windows Script Host — технология, заботливо упрятанная в недра вашей Windows заботливой компанией Microsoft. Скрипт написан с применением второй версии технологии, которая распространяется вместе с Windows 2000. Впрочем, ничего не мешает поставить его на любую другую ОС этого семейства. Базируется она на JScript или VBScript и позиционируется как замена пакетному (batch) языку DOS.

Способ запуска: wscript.exe beer.js. Во время выполнения настоятельно не рекомендуется переключать окна.

Скрипт, выводящий песню о пиве (beer.js).

function PrintBeer(i)
{
    return (i?i:"No")+" bottle"+(i-1?'s':'')+" of beer"
}

WshShell = WScript.CreateObject("WScript.Shell")
with (WshShell)
{
    Run("notepad.exe")
    WScript.Sleep(100)
    AppActivate("Untitled - Notepad")

    for (i = 99; i>0;)
    {
        SendKeys (PrintBeer (i)+" of beer on the wall, ")
        SendKeys (PrintBeer (i)+".~")
        SendKeys ("Take one and pass it around,~")
        i--
        SendKeys (PrintBeer (i)+" on the wall.~~")
    }

    SendKeys ("No more bottles of beer...~")
    SendKeys ("Go to the store and buy some more...~")
    SendKeys ("99 bottles of beer.")
}


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

PS-HTTPD, Shasm, растаманы, покровитель Интернета

Каждый сходит с ума по-своему. :) Кто-то коллекционирует жуков, кто-то прыгает с тарзанки, кто-то глотает расплавленный свинец. А у программистов своя болезнь. Увлекаясь, они порой пишут такое, что люди вокруг, почесывая затылок, недоуменно тянут: «нда…».

Во время приступов этой болезни у меня, писался эмулятор Unix и оптимизирующий интерпретатор языка Brainf*ck на DHTML. А вот в Германии живет маньяк, написавший, видимо, во время обострения, транслятор с Ассемблера на… языке bash. Не верится? Предлагаю скачать и убедиться. :)

Продолжая тему. В далеком забугорье сидели люди, пили кофе, говорили о принтерах, веб серверах и языке postscript. В шутку кто-то предложил написать веб сервер на постскрипте. Сказано — сделано. Сели и написали. ;) Естественно, что у этого языка для принтеров собственных средств для работы с TCP/IP нет, но с этой проблемой справились. Как? А вот так.

Ну и на закуску. В рунете есть намек на существование интерпретатора BASIC, написанном на… языке текстовой разметки TeX, но ссылку на него самого я, к сожалению, не нашел. Если кому-то удастся — киньте в меня мылом. :)

Обложка книги «Растаманские народные сказки» с изображением пальм на фоне заката.
Растаманские сказки. Книга

Hа днях я впервые купил книгу через Интернет. «Растаманские народные сказки» Дм. Гайдука. Внешний вид можно увидеть на картинке. Книжка обошлась мне 43 рубля с копейками, включая пересылку.

Я не люблю покупать в Интернет-магазинах, но тут случай особенный. Впервые я набрел на «…сказки» на одноименном сайте и с тех пор, как только появляется свободное время, переодически посещаю его, что бы получить очередную «порцию».

В книге, кроме самих рассказов, есть еще глоссарий с толкованием употребляемых в книге «терминов» :) и краткая история каждой сказки. Так что, если вам нравятся «Растаманские сказки» рекомендую купить еще и книгу, хотя бы для того чтобы поддержать ее автора.

Две страницы средневековой рукописи: слева — фигура человека в одежде с надписями, справа — схема здания с арками и текстом, выполненная красными и синими линиями.
Покровитель Интернета

Оказывается, Ватикан назначил Интернету собственного покровительствующего святого. Им стал Святой Исидор Севильский, который известен тем, что в VII веке написал первую энциклопедию. Она включала в себя знания по медицине, математике, грамматике, истории, риторике и теологии.

Интересно, что претендентов на эту должность было несколько: Святая Рита Каскийская, Апостол Филипп, Отец Пио и Архангел Гавриил. Как видно, святой, ставший покровителем, в списке не числился. Блат? :)

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

99 бутылок: Small C, dbPager

14. Small C. Написав в предыдущей серии программу, выводящую песню о пиве, на Си—, я заинтересовался классом малоизвестных си-подобных языков. Благо Интернет и поисковые машины под рукой.

Первое, что мне попалось — это Small C. Впервые сведения о этом языке появились в октябре 1999 года в Dr. Dobb’s Journal. Язык простой и удобный, настолько отличен от Си, что перечислять эти отличия тут я не буду. Подробности можно найти в документации, доступной там же, на сайте.

Интересно, что исполнение программ происходит, как и в Java, в два этапа. На первом программа прекомпилируется в байт-коды, на втором — байт-коды интерпретируются или, если используется JIT, компилируются в машинный код и исполняются.

Несколько матерных слов в адрес компилятора. Отвратительная диагностика, странная реакция на символы табуляции, лишние переводы строки и символы «^», неработоспособность конструкции «a?b:c» и так далее. Компиляция моего небольшого примера заняла на Pentium-II 333 примерно 10 секунд. А теперь сам листинг.

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

/* 99 beer song. Written by Stepanischev E.V. Small C */
#include <console>

printbeer (b)
{
     if (b) printf ("%d",b); else printf ("No")
     printf (" bottle")
     if (b!=1) printf ("s")
     printf (" of beer")
}

main ()
{
     for (new i = 99; i > 0;)
     {
           printbeer (i)
           printf (" on the wall, ")
           printbeer (i)
           printf (".^nTake one and pass it around,^n")
           i--
           printbeer (i)
           printf (" on the wall.^n^n")
     }

     printf ("No more bottles of beer...^n");
     printf ("Go to the store and buy some more...^n");
     printf ("99 bottles of beer.");
}

15. Язык dbPager. Предназначен для динамической генерации страничек под MS IIS. Инструкцию по настройке прекомпилятора под IIS5 я не нашел, так что тестировал под версией для командной строки. Язык несколько, на мой взгляд, необычен своей концепцией блочников и некоторыми конструкциями, но, в целом, очень хорошо читается и воспринимается.

Скрипт, выводящий песню о пиве (beer.dbp).

// Beer song. Written by Stepanischev E.V. (dbPager)
var "beer=99"
    var "LoopLimit=99" :: while 1
        var ""
            @beer:printbeer
        %Space%on the wall,
        var ""
            @beer:printbeer
        .%CrLf%
        Take one and pass it around,%CrLf%
        set "beer=[%beer%-1]"
        var ""
            @beer:printbeer
        %Space%on the wall.%CrLf%%CrLf%

No more bottles of beer...%CrLf%
Go to the store and buy some more...%CrLf%
99 bottles of beer.

:printbeer
    switch %beer%
        #0 :: No
        #else :: %beer%
    %Space%bottle
    switch %beer%
        #1 :: 
        #else :: s
    %Space%of beer


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

FreeInet, UIN Shop, граффити и MailBomb

Проект «Бесплатный Интернет» возрождается! Предыдущую страничку закрыли, но появилась новая. Список телефонов доступа теперь разделен на 3 части: 33600, 28800 и 14400 (мой город нашелся в последней), изменены скрипты для доступа и появилась программа для автоматической настройки в которой, по мнению AVP, находится троянец. Думаю, это не злой умысел, а просто оплошность автора. Известны случаи, когда вирусованные файлы скачивались с крупных freeware-серверов.

Судя по всему, проект получил довольно широкое распространение, в списке участников теперь числятся такие корпорации, как Sita International, Equant, Global One, UUNET USA и MCI WorldCom. Так что подключайтесь и пользуйтесь, пока бесплатно. :)

Меню сайта с пунктами: Магазин, Новости, Статьи, Инструменты, Конференция, Ссылки, Связь — каждый пункт сопровождается цветочной иконкой на оранжевом фоне.
Магазин UINов

Адресок аськи 44469999 не интересует?

Если интересует, добро пожаловать на сайт «Uin Shop», где выставляются на продажу UIN’ы тети аси. Цены, думаю, вас не порадуют. Например, за номер 100077 просят 1000 долларов США. Интересно, как много людей готовы выложить такую сумму за сомнительное счастье обладать легко запоминающимся номером?

Граффити с крупными стилизованными буквами на стене, выполненное в сине-белых тонах с оранжевыми акцентами; видны подписи художников.
Граффити

Шведское граффити. Мне понравилось. На страничке 20 фотографий «заборного творчества». Загляните для интереса. На мой непрофессиональный взгляд качество работ выше того, что можно найти на эту тему в РуНете, хотя, может быть я плохо искал.

Для тех кто не в курсе, «граффити» (ударение на второй слог) — это настенные рисунки или надписи, наносимые, обычно, аэрозолью или маркерами. Зародилось это течение в 70-х, если не ошибаюсь, годах в Нью-Йорке, как часть хип-хоп культуры и, постепенно, распространилось по всему миру.

Хорошая вещь AVP… Ищет вирусы даже в архивах и упакованных файлах, распаковывая их «на лету» и даже в почтовых папках известных (типа The BAT! и Outlook) программ… Красота! Теперь представьте, что в эту красоту, на почтовый ящик посылается архив, размером так, мегабайта два, содержащий всего один файл в четыре гигабайта размером. Представили? Ссылочка внизу, качайте и отправляйте своему врагу.

Кстати, что любопытно, не так давно появился AVP для провайдеров, который ставится у вашего ISP и проверяет все скачиваемые файлы на предмет вирусов. Интересно, что будет твориться на их машинах в момент отправки такого письма

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

23-е, Outlook, авторские права, Yandex

Поздравляю всех, к кому это относится, с Днем Защитника Отечества! Желаю все, что к этому дню желать положено и т. д. и т. п. Я, почему-то, не могу относиться к этому празднику, как к Международному Мужскому Дню, так что воспринимаю его крайне несерьезно, как и любой другой профессиональный праздник. Так что извините, если с поздравлением что-то не так. :)

Микрософт не устает радовать нас своими интерфейсными новинками. Вот и я, решив поставить MS Outlook, что бы посмотреть на этого монстра, наткнулся на такой вот экран. Специально для тех, кто отключил графику или не дождался загрузки поясняю. Мне предлагается выбрать «Пропустить», но такого пункта на экране нет. Очевидно переводчики напортачили.

Окно «Импорт данных» в Outlook 2000: выбор программы для импорта — Outlook Express или «Ни одно из перечисленного».
…выберите «Пропустить»… Пункта на экране нет

А вот интересно, сграбив эту формочку, я нарушил чьи-то авторские права? Ведь желтое безобразие слева кто-то рисовал, а текст кто-то сочинял и переводил…

Вообще тема авторских прав очень забавная. Вот я видел в одной лицензии запрет на дизассемблирование и сохранение более чем одной копии программы. Теперь вопрос. Точнее два или даже три. Вопрос первый: программа у меня выполнила нечто недопустимое и отладчик (SoftIce, например) показал мне кусок кода программы. Занимался ли я дизассемблированием? Вопрос номер два: я посмотрел в HEX-вьювере шестнадцатеричные коды файла, в уме, а многие из них я знаю, перевел их в ассемблер. Теперь я занимался дизассемблированием? Меня будут судить? Вопрос номер три: промучившись с месяц (ну или с год) я запомнил, скажем, все 30 килобайт (бывают и такие программы) кода. Получается я сохранил еще одну копию. Стоит ли меня отдавать под суд?

Думаю юристы сломают еще немало копий (или что у них там?) на этом поприще. Тут еще очень много странного. Вот один хитрый парень зарегистрировал торговую марку «:-)» и теперь собирается прижать весь Интернет к ногтю за, якобы, ее неправомерное использование. Мне эта ситуация, честно говоря, кажется очень странной. По идее, в регистрации подобной торговой марки ему должны были отказать.

Или, если я завтра открою фирму и зарегистрирую на нее, в качестве торговой марки, какой-нибудь распространенный китайский иероглиф, то весь Китай должен будет мне отстегнуть за право им пользоваться?

Еще пример. Кто-то, по-моему Amazon.com, получила патент на идею «покупки в один клик». Кажется, она заключалась всего-навсего в том, что товар можно было купить, кликнув на него мышкой только один раз. И это вот удалось запатентовать.
Может мне завтра взять патент на белый цвет или, может быть, форму буквы «О»? А что? Стал бы богаче Билла Гейтса. :) Кто тут последний в патентную комиссию?

Вкладка браузера с названием «Index: (...)» и иконкой документа
Яndex :(…

Увидев такое на своей панели задач, я долго не мог понять, чем я так огорчил Яndex, а потом вспомнил, что первым символом моей строки поиска (я активно пользуюсь языком запросов) была открывающая скобка… :)

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

Пушка и футболки, Cooler, WebBomb, Www2icq, Any key

Мужчина в чёрном костюме держит крупнокалиберный пулемёт, стоя рядом с женщиной в кожаной куртке на сцене.
Пушка. Стреляет футболками

Те, кто читает «Вебтилятора», видели, наверное, на его сайте пушку, стреляющую картошкой. А вот на вручении «Гремми-2001» я увидел орудие стреляющие… футболками. Судя по тому, что я видел, принцип действия — пневматический.

Таким вот способом организаторы шоу решили подарить нескольким, выбранным наугад, счастливчикам по футболке белого цвета.

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

Давно хотел попробовать и мыльная бомба из предыдущего выпуска меня к этому подтолкнула.

Современные браузеры от Netscape, Microsoft и Opera (да и Lynx, кажется, тоже) умеют работать не только с обычными HTML-файлами, но и со сжатыми gzip’ом документами, распаковывая их налету. Знакомая ситуация?

Так вот, заходим на свой сервер, говорим Apache (или что у нас там?), что файлы с расширением ghtml — это теперь gzip encoded и даем следующую команду (если Перл у вас старый, рекомендую вместо foreach поставить обычный цикл):

perl -e 'print "0" for (1...100000000)' | gzip -f -9 > tyx.ghtml

В итоге получаем файл в 94 килобайта, который открываем браузером, написав его URL в строке запроса. Бедный браузер, не ожидая такой подлости, терпеливо распаковывает в память почти 100 мегабайт мусора. Естественно, что, операционная система, через некоторое время, начинает жутко ругаться и свопиться (если не начинает, попробуйте увеличить диапазон), а через некоторое время у нее начинаются судороги и она, в мучениях, загибается. Спасает только кнопка «Reset».

Интересно будет попробовать приаттачить такой файл к письму, с соответствующим указанием всех заголовков, и отправить на Outlook или Netscape Messenger. Зная любовь этих клиентов к HTML-письмам, можно предположить некоторые любопытные последствия… :)

Баннер с надписью «Войти в СИСТЕМУ» на оранжево-сером фоне и размытым изображением человека в синих тонах; справа — вертикальная полоса с текстом «СИСТЕМЫ» и вопросами.
WWW2ICQ. Сайт

В РуНете появился новый интересный сервис — «WWW2ICQ». Как, наверное, понятно из названия сайт предоставляет возможность общаться с пользователем ICQ прямо из окна браузера. Имеется возможность ведения архива, контакт-листа и цитирования. Наиболее ценным, на мой взгляд, в сервисе является то, что ваш архив и контакт лист будет доступен вам с любого компьютера, подключенного к сети Интернет.

Ссылка предоставлена Andrew Arro

Фирма Compaq, наверное устав от бесконечных вопросов, типа «где на клавиатуре находится клавиша „any key“?», поместила ответ на этот вопрос в FAQ, публикуемое на её официальном сайте. Итак, что бы вы знали… :)

Compaq FAQ: Where is the ANY Key? (FAQ2859)
This is not a key. When you are instructed to press any key, this means you can press any of the keys on the keyboard (such as the Enter key, the R key, or the space bar).

Created: 3/23/99 9:48:24 AM
Modified: 3/23/99 9:48:24 AM
Author: COMPAQ — Marilyn O

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

JS-FTPD, снова Opera on FD и нечто на Перле

JS-FTPD

Пару дней назад, размышляя на тему PS-HTTPD, я вдохновился написать что-нибудь серверное, причем на каком-нибудь языке, совершенно для этого не предназначенном. И, как всегда, под рукой ничего, кроме JavaScript, не оказалось.

В качестве платформы я выбрал Netscape Commucator. JavaScript, как и PS, не имеет встроенных средств для работы с сокетами. Так что мне их пришлось «заимствовать» у Java, благо, что технология LiveConnect от Netscape позволяет это сделать.

Таким образом, пообщавшись телнетом с War-FTP и убив на всё два вечера, я получил вполне рабочий однопользовательский JS-FTPD.

  • Количество пользователей, обслуживаемых одновременно: 1;
  • Максимальная скорость передачи: 3Кб/сек;
  • Порт для подключения: 40001;
  • Поддержка докачки: есть;
  • Поддержка пассивного режима (RFC 1579): есть;
  • Поддержка OPTS и FEAT (RFC 2389): есть;
  • Поддерживаемые комманды: USER, PASS, QUIT, SYST, PWD, PORT, LIST, CWD, MODE (S), TYPE, RETR, SIZE, REST, OPTS, FEAT, NOOP, STRU (F), PASV, MDTM, CHUP.

Для запуска сервера нужно создать на диске C: каталог «Server» (его содержимое сервер будет показывать) и, открыв страничку под NC 4.xx¹, нажать на кнопку «Start».

Потом, настроив FTP-клиент² на соединение с адресом 127.0.0.1 через порт 40001, можно будет подключиться к серверу.

¹ Испытано под NC 4.7 и NC 4.75.
² Испытано под NC 4.7, 4.75, IE 5.0, 5.5SP1, Opera 5.02, FAR 1.70b2 FTP, FAR ProxyFTP 1.7r2.

Меня попросили выложить мой вариант «Opera on FD» куда-нибудь поближе. Выкладываю на Chat.ru. Качать тут.

На закуску. Программа на языке Perl, выводящая на экран «another Perl hacker». Найдено у DiBR’a.

$\='`'|"'";$\++;$;='/'|'`';$;++;$;++;$;++;$,=$;;$,++;$/=$,;$/++;$:=$/;$:++;
$_='%'|'`';$_.='`'|'#';$_.=$\;$_.='`'|'/';$_.=$".'"';$_.='@'|'*'&~'!';
$_.="$:$,$/".$";$_.='`'|'!';$_.='`'|'.';$_.='/'|'`';$_.=$/.$\;$_.='%'|'`';
$_.=$;.$";$_.='@'|':'&~'*';$_.='`'|'%';$_.=$;;$_.='`'|',';$_.=$".$\;
$_.='`'|'!';$_.='#'|'`';$_.='+'|'`';$_.='`'|'%';$_.=$;.'"'.$".'>&';
$_.=$,&':';`$_`;

Красота, неправда ли? :)

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

ЯузОС, прежний FreeInet, «Полиглот»

Яуз О

«ЯузОС» (Кодовое название «Dead Fish») — новейшая операционная система. Как и положено новейшим программам, она полностью 64-х разрядная, т. к. создавшие её программисты были не ниже 64-го разряда квалификации. «ЯузОС» базируется на ядре от Царь-пушки версии 1.02.33…

Нравится? :)) Ссылочка «на почитать» в конце заметки.

***

Ожила страничка о бесплатном доступе в Интернет по своему прежнему адресу. Так что страничек, посвященных этому удивительному явлению, теперь целых две. Ссылочка, как и водится, ниже, в «ссылках по теме».

Ссылка предоставлена Cyber Lirik

***

Как вам такое? Программа, написанная сразу на 7 языках: COBOL, ISO Pascal, ANSI Fortran, ANSI C, PostScript, Shell Script и машинном языке процессора 8086. Все инструкции по запуску — в комментариях листинга. Две пустые в начале программы обязательны для нормального функционирования!

Листинг программы «Полиглот»

(*O/*_/
Cu  #%* )pop mark/CuG 4 def/# 2 def%%%%@@P[TX---P\P_SXPY!Ex(mx2ex("SX!Ex4P)Ex=
CuG #%*                                                                  *+Ex=
CuG #%*------------------------------------------------------------------*+Ex=
CuG #%*   POLYGLOT - a program in seven languages      15 February 1991  *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*   Written by Kevin Bungard, Peter Lisle, and Chris Tham          *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*   We have successfully run this program using the following:     *+Ex=
CuG #%*     ANSI COBOL:            MicroFocus COBOL85 (not COBOL74)      *+Ex=
CuG #%*     ISO  Pascal:           Turbo Pascal (DOS &amp; Mac), Unix PC,    *+Ex=
CuG #%*                            AIX VS Pascal                         *+Ex=
CuG #%*     ANSI Fortran:          Unix f77, AIX VS Fortran              *+Ex=
CuG #%*     ANSI C (lint free):    Microsoft C, Unix CC, GCC, Turbo C++, *+Ex=
CuG #%*                            Think C (Mac)                         *+Ex=
CuG #%*     PostScript:            GoScript, HP/Adobe cartridge,         *+Ex=
CuG #%*                            Apple LaserWriter                     *+Ex=
CuG #%*     Shell script:          gnu bash, sh (SysV, BSD, MKS), ksh    *+Ex=
CuG #%*     8086 machine language: MS-DOS 2.00, 3.03, 4.01, 5.00 beta    *+Ex=
CuG #%*                            VPix &amp; DOS Merge (under unix)         *+Ex=
CuG #%*                            SoftPC (on a Mac), MKS shell          *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*   Usage:                                                         *+Ex=
CuG #%*     1. Rename this file to polyglot.[cob|pas|f77|c|ps|sh|com]    *+Ex=
CuG #%*     2. Compile and/or run with appropriate compiler and          *+Ex=
CuG #%*        operating system                                          *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*   Notes:                                                         *+Ex=
CuG #%*     1. We have attempted to use only standard language features. *+Ex=
CuG #%*        Without the -traditional flag gcc will issue a warning.   *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*     2. This text is a comment block in all seven languages.      *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*     3. When run as a .COM file with MS-DOS it makes certain      *+Ex=
CuG #%*        (not unreasonable) assumptions about the contents of      *+Ex=
CuG #%*        the registers.                                            *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*     4. When transfering from Unix to DOS make sure that a LF     *+Ex=
CuG #%*        is correctly translated into a CR/LF.                     *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*   Please mail any comments, corrections or additions to          *+Ex=
CuG #%*   peril@extro.ucc.su.oz.au                                       *+Ex=
CuG #%*                                                                  *+Ex=
CuG #%*------------------------------------------------------------------*QuZ=
CuG #%*                                                                  *+Ex=
CuG #%*!Mx)ExQX4ZPZ4SP5n#5X!)Ex+ExPQXH,B+ExP[-9Z-9Z)GA(W@'UTTER_XYZZY'CPK*+
CuG #(*                                                                  *(
C   # */);                                                              /*(
C   # *)  program        polyglot (output);                             (*+
C   #     identification division.
C   #     program-id.    polyglot.
C   #
C   #     data           division.
C   #     procedure      division.
C   #
C   # * ))cleartomark   /Bookman-Demi findfont 36 scalefont setfont     (
C   # *                                                                 (
C   #
C   # *                  hello polyglots$
C   #     main.
C   #         perform
C     * ) 2>_$$; echo   "hello polyglots"; rm _$$; exit
              print
C             stop run.
     -*,                'hello polyglots'
C
C         print.
C             display   "hello polyglots".                              (
C     */  int i;                                                        /*
C     */  main () {                                                     /*
C     */      i=printf ("hello polyglots\n"); O= &amp;i; return *O;         /*
C     *)                                                                (*
C     *)  begin                                                         (*
C     *)      writeln  ('hello polyglots');                             (*
C     *)                                                                (* )
C     * ) pop 60 360                                                    (
C     * ) pop moveto    (hello polyglots) show                          (
C     * ) pop showpage                                                  ((
C     *)
           end                                                          .(* )
C)pop%     program       polyglot.                                      *){*/}

Ссылки по теме

Яуз ОС
Старый FreeInet

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

← сюда туда →