Ломаем proxy от Small HTTP Server, warez, FreeInet
Привет!
Всех с праздником! Хотя я уж и не знаю каким… :) Что
Вчера я вспомнил о том, что кроме
Написал небольшого клиента на Java (под рукой ничего, работающего с сокетами, не оказалось), посмотрел, что именно передает браузер при соединении через прокси, открыл telnet на порт 3128 (порт по умолчанию для SHS proxy) и начал экспериментировать.
Оказалось, что прокси можно заставить бесконечно запрашивать информацию от самого себя, занимая все доступные соединения. Достаточно открыть telnet на тот порт, на который у вас настроен proxy и написать запрос вида:
GET http://127.0.0.1:3128
Host: 127.0.0.1:3128Причем атаку можно производить удаленно, в запросе для этого менять ничего не нужно. Популярный Squid на такую строчку реагирует менее бурно — просто возвращает «Access denied». Обидно, что SHS proxy после моего исследования можно выкидывать на помойку…
Впрочем, после двух месяцев молчания (о чем я сейчас буду ниже писать) автор все таки исправил большинство указанных мной уязвимостей
Быстренько разделаюсь с warez. :)
Итак, вышла новая версия PHP 4.0.5. Событие, не менее ожидаемое мной, чем выход PostgreSQL 7.1. Ссылки на «скачать» и список изменений можно найти на обычном своем месте — внизу страницы. Список внушительный и, лично для меня, значимый. Особенно меня порадовали дополнительные функции для работы с Large Object и багфиксы для Postgres.
Вышел новый (2.04) Small HTTP Server! Автор исправил большинство из указанных мной
Из других новостей — вышла финальная ( 0.1.0.0 ) версия альтернативного ICQ-клиента с открытым исходным кодом «Miranda» (на скриншоте). Клиент очень хорош, занимает очень мало (всего 3 мегабайта, сравните с ICQ) места в памяти, в новой версии имеет много настроек, умеет делать импорт контакт листа ICQ, принимать и передавать сообщения и файлы, работать через прокси, есть подключаемые плагины. В общем посмотрите — возможно это именно то, что вы так долго искали. Из интересных особенностей — под W2K Miranda умеет становиться полупрозрачной, причем степень прозрачности настраивается из меню.
Я, кажется, догадался почему автор проекта FreeInet так легко отдавал ворованные пароли. Принцип толпы, перебегающей дорогу на красный свет — «всех не задавит». Т. е. «чем больше народу пользуется этим паролем, тем меньше вероятность, что отвечать придется именно мне». ИМХО, очень простое и разумное объяснение.
А для тех, кто все еще хочет искусить судьбу — внизу скриптик однодневной давности. Возможно, еще не прикрыли.
На сегодня хватит… :)) Пойду отдыхать, остальное допишу завтра. Всех, еще раз, с праздниками.
99 бутылок: Miva, Ruby
22. Miva. Доступ к этому языку я получил чисто случайно. Будем считать, что я нашел распечатки парочки программ на этом языке на улице. Это недалеко от истины, ибо документацию по Miva я в глаза не видел.
Итак Miva — это скриптовый полнофункциональный язык, применяемый исключительно
Скрипт, выводящий песню о пиве (beer.mv)
<HTML><MIVA STANDARDOUTPUTLEVEL = "text, html, compresswhitespace">
<MvCOMMENT>
| Beer song. Written by Evgeny Stepanischev
</MvCOMMENT>
<MvFUNCTION NAME="Beer" PARAMETERS="n">
<MvIF EXPR = "{ l.n NE 0 }">&[ l.n ]<MvELSE>No</MvIF>
bottle<MvIF EXPR = "{ l.n NE 1 }">s</MvIF>
of beer</MvFUNCTION>
<MvASSIGN NAME = "g.i" VALUE = 99>
<MvWHILE EXPR = "{ g.i GE 1 }">
<MvEVAL EXPR="{ Beer(g.i) }"> on the wall, <MvEVAL EXPR="{ Beer(g.i) }">.<BR>
Take one and pass around,<BR>
<MvASSIGN NAME = "g.i" VALUE = "{ g.i - 1 }">
<MvEVAL EXPR="{ Beer(g.i) }">
on the wall.<BR><BR>
</MvWHILE>
No more bottles of beer...<BR>
Go to the store and buy some more...<BR>
99 bottles of beer.
</HTML>23. Ruby. Скриптовый язык, который я посчитал очень похожим на Перл, поэтому писал на нём как на Перле. Отличия есть, и существенные, но тем не менее. Как и предыдущем языке, есть префиксные различия между глобальными (начинаются на «$» или «@») и локальными переменными. Из странностей — конструкцию «1?2:3» не удалось заставить работать с локальными переменными. Возможно это особенность языка, но не ясен её смысл.
Скрипт, выводящий песню о пиве.
# Beer song. Written by Evgeny Stepanischev
def Beer (n)
if n!=0 then
print n
else
print 'No'
end
print " bottle"
print "s" unless n==1
end
$i = 99
while $i>0 do
Beer ($i)
print " on the wall, "
Beer ($i)
print "\nTake one and pass around,\n"
$i-=1;
Beer ($i)
print " on the wall.\n\n"
end
print <<EOF
No more bottles of beer...
Go to the store and buy some more...
99 bottles of beer.
EOFСамоновости, warez, Shell, FreeInet spy
Прислали мне вчера ссылочку в аську. Захожу — gazeta.ru, читаю заголовок и не верю своим глазам — «Евгений Степанищев — обладатель золотого болта». Я никаким золотым болтом не обладаю, так что первая мысль была — появился
Ларчик открывается просто. Для того что бы понять в чем фокус, достаточно внимательно посмотреть на URL. Если в URL’е содержиться собачка, то все, до последней собачки, относится к строке авторизации пользователя. Таким образом www.gazeta.ru в данном случае, ничто иное, как логин, а 62.118.250.28 — сервер, с которого показывается страничка.
Ссылочку прислал Much Foster
Warez. В нескольких словах.
Вышел,
Обновилась Opera. В новой версии (5.11) из изменений — одни багфиксы, в количестве
И, примерно неделю назад, вышел релиз PostgreSQL 7.1. Ждал я его с нетерпением, а как появился — стало не до него. Так что я его еще не поставил… Но от людей, которые это сделали, слышал
Каждое утро по пути на работу я проезжаю мимо ларька «Shell», если кто не знает — это фирма производит автомобильные масла. Так вот, пару дней назад, проезжая все той же дорогой, я обратил внимание, что трех последних букв в названии фирмы уже нет. Так что ларёк стал называться просто «Sh». Юниксоиды меня поймут, а остальным скажу, что sh — имя самого распространённого командного интерпретатора Unix, общее название для которых — shell.
Примечание: собственно, «sh» — это и есть сокращение от слова «shell». В общем для меня ситуация весьма забавная.
FreeInet меня настолько заинтриговал, что я решил попробовать провести небольшое расследование. Вот что я выяснил. FreeInet — вещь ворованная, доступ идет через сеть X25. Что это такое я не интересовался, но, кажется эту сеть, в свое время активно пользовали, например, банковские структуры. Аккаунт, насколько я понял подбирается простым перебором, для этого есть, например, специальные скрипты, написанные на языке SCP-файлов.
Так что выходить через FreeInet не рекомендую. Я не слышал что бы за это
Кому как, а меня от потуг НоНаМыча найти спонсора уже несколько мутит. Стоит ли объяснять человеку, что сайт его классный, спору нет, но спонсоры на посещаемость в 5000 человек в день сами приходят крайне редко. К ним надо приходить, уговаривать и объяснять, убеждать и рассказывать, как это все хорошо и что им это все даст. А так, кому это нужно?
Все равно, как я бы попытался продать свой пупок торговцам органами. Или аппендикс. Никому аппендикс не нужен? Почти не юзаный?
Но, в любом случае, удачи тебе, НоНаМыч! Не вздумай закрывать сайт! :)
FreeInet, Favicon, ReactOS и E-OS, autocomplete, dlls
Только вчера человек, как его называют в НоНаМе, с неприлично короткой аськой 100077 сообщил о открытии странички FreeInet по новому адресу FreeInet2002.Chat.Ru, а уже сегодня он собрал вещички и съехал с Chat.Ru. В неизвестном направлении. Причем настолько внезапно, что есть мнение. У меня. В общем есть мнение, что скорее его «съехали», чем он это сделал сам. Что ж, следите за новостями.
Знаете что такое favicon.ico? Это иконка 16×16, которую помещают в корне сайта, что бы Internet Explorer (а сейчас еще и Konquer) при добавлении сайта в закладки или просто при его просмотре заменял им свой скучный значок белой бумажки с синей буквой «е». Пример можно посмотреть у DZ.
Так вот. Узнал только вчера. Так получилось. Оказывается эту иконку не обязательно называть favicon и не обязательно помещать в корень сайта. Конечно, о том где она находится и как называется надо
<HEAD>
<LINK REL="SHORTCUT ICON" HREF="http://www.host.com/icon/favicon.ico">
<TITLE>Page Title</TITLE>
</HEAD>Время шло, DOS теряла популярность,
К чему я? Сегодня, свернув
Разработчики поставили перед собой цель «создать и поддерживать качественную операционную систему. Непрерывно бороться за качество во всем включая надежность, эффективность и внешний вид». Принять участие в разработке может любой. Я только одного не понял… Работа идет до сих пор или проект давно заброшен?
CMD.EXE, «DOS под Windows» (ну, знаете, ярлык «Сеанс
Эта возможность
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor или<br>
HKEY_CURRENT_USER\Software\Microsoft\Command Processor<br>и исправить значение параметра CompletionChar на 9 (или добавить его с типом REG_DWORD, если он отсутствует). Теперь, при нажатии клавиши Tab, операционная система будет пытаться сама дописать введённую строку так, как это делается в шеллах Unix.
Ссылки на «DLL-библиотеки», т. е. сайты, где выкладываются различные DLL, которые некоторые программы требуют для своего функционирования, кто уже только не давал. Но я редко их вспоминаю, когда мне становится нужной выкладываю ссылочку на один такой ресурс. Может и еще
И, под занавес, порадую ссылочкой «операционной системой на Flash» ссылочка внизу, а эта «операционная система» никакая не ОС, конечно, а вовсе даже десктоп.
«ОС на DHTML» уже была, а вот это, если не ошибаюсь, первая ласточка
Загляните, если интересно. Внутри есть своя «кнопка пуск», калькулятор, графический редактор, блокнот и еще
Что называется, «когда верстался этот номер» я узнал, что FreeInet жив и здоров. И жив и здоров он по ссылочке внизу. Как говорится, enjoy!
Получи свою карту, warez, бей телепузиков, спам
Сайт Mnogo.Ru предлагает всем желающим бесплатно получить именную дисконтную карту, дающую скидку от 3 до 30% в более чем 200 предприятиях по всей России. Есть
Я свою уже получил, но воспользоваться еще не успел. :) Время бесплатного сыра ограничено, так что рекомендую поторопится. Кстати, карточка выглядит очень здорово. :)
О warez.
Mirabilis выпустила новую версию ICQ 2000b v4.65 build 3281. ( Здравствуйте, баннеры! :). Что в ней нового я не знаю, давно перестал этим интересоваться, но, для интереса ее поставил. Управу на баннеры я нашел минуты за три ковыряния редактором HIEW. Выяснилось, что магические слова звучат так:
1766F: B8 33
17670: A9 C0
17671: 40 C3Править надо файл ICQCore.dll. Кроме того, очень не помешает следующий ключик в реестре:
[HKEY_CURRENT_USER\Software\Mirabilis\ICQ\DefaultPrefs]
"Auto Update"="No"Вышел новый FarNavigator (так же известный, как ProxyFTP). В новой версии (1.80b3) изменен диалог настройки
FAR Team, напомню, это группа программистов, занимающихся разработкой популярного файлового менеджера FAR, анонсировала список изменений, которые уже внесены в еще не вышедший FAR 1.70b3. Приводить его здесь не имеет смысла (он занимает почти 30 килобайт), я его выложил в Интернет. Ссылочки, где можно это все скачать, ниже.
Ненавидите ли вы «телепузиков» так, как ненавижу их я? В общем, если да, предлагаю воплотить свою ненависть в действие.
Для функционирования этой нехитрой игрушки требуется лишь Ссылочка внизу.
Ссылочку прислал Булат Каримов aka System 104
Спаммеры в конец обнаглели. Очевидно, до кого из них, наконец, дошло, что спам вида «я хочу поделицца способами быстава зарабатывания 5000$ в Интернете» и «наша компания торгует канализационными трубами, наш адрес…» неэффективен. Я такие письма удаляю даже не читая.
Недавно я получил несколько писем от спаммеров, довольно хорошо замаскированных под обычную переписку.
Методы маскировки нехитрые, но довольно действенные. Первый вариант — «ошибся адресом». Пишется письмо, примерно такого вот содержания: «Привет, Евклид! Ездил на Канары, отлично отдохнул, заплатил недорого, всего 10000$. А заработал я эти деньги, сходив по ссылке…». Я, конечно, упрощаю, но по смыслу схоже.
Вариант номер два — «старый знакомый». Начинается оно, примерно, так: «Привет! Это Софокл. Еще помнишь меня? Недавно был на классном сайте…». Ну и так далее.
На последнее я чуть было не попался. :) Ко мне приходит масса писем, иногда некоторые люди пропадают на полгода, что бы потом напомнить о себе вот примерно таким письмом, что я привел чуть выше. Выручило меня лишь то, что спаммеры ещё не очень хорошо умеют пользоваться новоприобретённым инструментом и, читая их письма, рекламу распознать можно.
Вот что неприятно, так это тот факт, что эти письма приходится читать. Предлагаю начать, наконец, бороться со спамом активно. А именно. Пишется письмо на почтовый ящик postmaster того сервера откуда пришло письмо, туда вкладывается письмо от спаммера вместе с заголовком (в TheBAT! — Ctrl+Shift+K, что бы показать заголовок) с просьбой принять меры. Например, на chat.ru и mail.ru реакция наступает очень быстро, особенно, если письмо было не одно — такой почтовый ящик просто блокируют.
Удачи вам! И, как было написано в одном спаммерском письме, «SPAM IS BAD! DON’T SEND IT!».
Java ICQ, языковая пузомерка, warez, пара ссылочек
Mirabilis, похоже, решила перекрыть, наконец, кислород всем альтернативным ICQ-клиентам. На днях на их сайте появилась
Доведут до ума, лично я — буду пользоваться. А пока это не то что бы даже сыро… это пока никак.
Хотите узнать насколько результативен тот или иной язык? В смысле скорости разработки программ? Внизу есть ссылочка на «Programming Languages Table». В таблице два числа «Level» и «Average source statements per function point». Числа взаимозависимы, так что имеет смысл рассматривать только первое.
«Level» (уровень) языка показывается насколько просто написать на этом языке
Естественно, в таблице перечислены далеко не все языки (например, PHP там нет), но взглянуть на результаты сравнения, тем не менее, очень интересно. Perl получил level 15, стандартный Pascal получил 3,5, а его вечный противник Си — всего лишь 2,5.
Вообще, как я заметил, на «вершине Олимпа» стоят узкоспециализированные языки, такие, как MATHCAD (level 60) или Excel (51—57), а тот факт, что язык находится у «подножья» вовсе не говорит о том, что он примитивен. Т. е. выбирая по таблице наиболее эффективный язык нужно держать в голове область его применения.
Warez. Э… это уже даже не смешно. Вышел PostreSQL 7.1RC4… Надо мной определенно издеваются. :( Если завтра выпустят RC5 я напишу в Postres конструктивное письмо с убедительной просьбой перевести проект назад, в разряд бет и не морочить честным людям голову.
Вышла Opera 5.10. О новости поторопился сообщить НоНаМыч. Конечно, файл было видно еще три дня назад, но скачать его было нельзя. Итак, новая версия вышла. Whats new?
- Появилась плохонькая поддержка скинов;
- Новый индикатор загрузки;
- APOP в клиенте
e-mail ; - Улучшенная поддержка CSS и DOM;
- Поддержка regexp и прочие изменения в JavaScript;
- Поддержка XHTML namespace;
- Исправления багов.
Ну, и еще несколько мелких пунктов. Я прошелся по РуНету, рендер HTML’а стал определенно лучше, но все еще далек от идеала. Transalte.ru смотрится несколько не так, как должен бы, Ozone.Ru — расползается, а «Казанский Портал» вообще разваливается целиком.
Когда же его доведут до ума?
Как же ссылочку я поместил вниз, на ее обычное место.
Ну все, мне ссылочку. :)
FreeInet, warez, М$ отличился, JS1.5, T-288C, readme
Новостей сегодня — воз и маленькая тележка.
Проект FreeInet, несколько дней был доступен только москвичам. Хорошая новость: список точек доступа вырос до прежней величины. Скрипты и телефоны дозвона можно забрать по следующему адресу: freeinet2001.chat.ru. Заходите, пока опять не закрылся. :)
Информация предоставлена человеком с аськой 100077
Из warez’a. Вышел PostgreSQL 7.1RC3. :)) Меня это все уже немного утомило, но я все еще не теряю надежду на появление релиза. :)
Кроме того, появился
Компания Микрософт заботится о нас… Не так давно (в версии
Такой вот формат хранения контента страничек. Так как формат разделенный, в фирме Микрософт решили все это дело
Поясняю. Попробуйте в Проводнике создать файл, скажем my.htm и папку my_files. А теперь удалите файл (Shift+Delete)… И вот тут срабатывает правило «таскаем везде с собой»… Файл благополучно утащит папку с собой. В могилу.
Спасение от доброты и заботы мелкомягких, как всегда, в реестре. Сам не проверял, но люди говорят, что если тудой добавить один магический ключик:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
"NoFileFolderConnection"=dword:00000001То проблем со случайным удалением папок, кончающихся на «_files» станет гораздо меньше. Кстати, если пользоваться FAR’ом с отключенной функцией удаления в корзину, то ключик можно и не редактировать. Там таких проблем нет.
Читал книгу по Flash (автор Грибов Д.Е.). Много смеялся. Вот одна цитата:
Роль серверного приложения может играть программа, написанная на любом языке программирования. Она способна работать по множеству технологий: CGI, ASP, API, FastCGI, HPH и т. п.
То, что PHP назвали HPH, это бог с ним, опечатка. Но, что «роль серверного приложения может играть программа, написанная на любом языке программирования» или «она способна работать…» ну и далее по тексту.
P.S. Хотя, может быть, «ASP, API» следует читать, как «ISAPI», а HPH — это
Из нового. Кратко. Появилась обработка исключительных ситуаций; класс Number получил 3 новых метода: toExponential, toFixed и toPrecision; в регулярных выражения стало возможным использование расширенного синтаксиса («нежадные» выражения, предосмотр и прочее); возможность определения функции внутри if и выражений; появились константы и многое другое.
Что смущает — некоторые свойства и методы объекта RegExp, а так же объявления внутри строк и регулярных выражений символов в восьмеричной системе объявлены «deprecated», т. е. более не рекомендуются к использованию. Не люблю, когда язык становится несовместимым с предыдущими версиями, а это, как известно, обычная политика Netscape.
Вчера еще несколько модифицировал драйвер для модема TAINET Ссылочка на «скачать» внизу. Кстати, как оказалось, при сбросе стандартной командой ATZ модем загружает user profile #0. Так что, рекомендую туда записать конфигурацию
99 бутылок: PasScript, ActionScript
20. PasScript. Можно сказать, что это VIRT со всеми присущими ему особенностями и конструкциями (например, «P << [[ 70, 5], <<P]»), только с синтаксисом Object Pascal. Из глюков интерпретатора я заметил нежелание конструкции «for» работать с переменными типов «byte» и «word», плюс конструкция «writeln» сначала печатает перевод строки и только потом —свой параметр.
Скрипт, выводящий песню о пиве (beer.pas)
// Beer song. Written by Evgeny Stepanischev
program Beer;
procedure PrintBeer( n: byte );
begin
if n<>0 then write (n)
else write ('No');
write (' bottle');
if n<>1 then write ('s');
write (' of beer');
end;
var
I: integer;
begin
for I:=99 downto 1 do
begin
PrintBeer (I);
write (' on the wall, ');
PrintBeer (I);
write ('.');
writeln ('Take one and pass around,');
writeln ();
PrintBeer (I-1);
write (' on the wall.');
writeln ();
writeln ();
end;
write ('No more bottles of beer...');
writeln ('Go to the store and buy some more...');
writeln ('99 bottles of beer.')
end.21. ActionScript5. Внутренний язык Flash5. По виду очень похож на JavaScript (если не считать «add», обязательные точки с запятой и прочие мелочи), даже многие предопределенные объекты те же, но по идеологии — нет. Например, как в JavaScript осуществляется доступ
Из интересных особенностей интерпретатора… ActionScript от версии к версии сильно изменяется. Вплоть до несовместимости. Так вот, если интепретатору подсунуть Flash предыдущей версии, он выполняет все необходимые преобразования в ActionScript за программиста, комментируя все свои действия.
Скрипт, выводящий песню о пиве.
// Beer song. Written by Evgeny Stepanischev
function PrintBeer (i)
{
return (i?i:'No') add ' bottle' add (i-1?'s':'') add
' of beer';
}
for (i = 99; i>0; i--)
{
trace ((b=PrintBeer (i)) add ' on the wall, ' add b add '.');
trace ('Take one down and pass it around,');
trace (PrintBeer (i-1) add ' on the wall.\n');
};
trace ('No more bottles of beer...\n' add
'Go to the store and buy some more...\n' add
'99 bottles of beer.');Проект «Изголовье», Cmart, warez
Сегодня на полдня остался без Интернета. К перебоям в местной сети приплюсовались проблемы на М9. У господ из АО «Ростелеком» возникли «непредвиденные проблемы при замене фидеров центрального узла».
В Интернете появился еще один интересный проект. На сайте «Изголовье» можно узнать, как воспринимают наш мир настоящие программисты. :) В разделе «Аманез», к примеру, собраны случаи, когда человек видит окружающий мир продолжением компьютера.
Лично со мной такое, происходило неоднократно. От попыток найти мышку у телевизора, до попыток «сохранить» закат, что бы использовать его как «обои» в Windows. :) В общем загляните — не пожалеете, ссылочка — внизу.
Ссылку предоставил Head
Сегодня на сайте Кулера появилась ссылочка на один очень неплохо сделанный Flash-сайт. Безусловно, посмотреть есть на что. Сходите, только запаситесь терпением, флешки там размером
Но мне, все же, больше нравится Flash, сделанный дизайнером Cmart. Сказать
Кстати, создание на скриншоте справа будет сопровождать вас при просмотре меню, в движении все это смотрится изумительно. Сайт стоит посетить и тем ем, кто был там раньше. Cmart недавно сменил дизайн.
Теперь, что касается warez’a.
Дело PostgreSQL движется к победному концу. В смысле выпуску релиза. Судя по списку изменений в версии 7.1 Realise Candidate 2, релиз, этот самый, не за горами. Уже который раз, что бы не сомневались, повторю: жду с нетерпением.
Мир Windows порадовал меня, и, возможно,
Кстати, меня всегда интересовало, что же такого до сих исправляет в полуразложившимся Netscape 4.xx команда его разработчиков. Хотя бы указывала
На сегодня это все. Завтра можно не заходить — будет очередная победная песня о пиве. Первый язык —
99 бутылок: РАПИРА (КИ) и VIRT
18. РАПИРА. Точнее некий диалект языка РАПИРА для Конструктора Исполнителей.
Среда разработки и диалект мне не понравились. Не запоминаются положения и размеры окон, расцветка хромает, после вывода ошибки происходит выход, не хватает множества функций, синтаксис, не смотря на заявление разработчика,
Сам язык РАПИРА (расшифровывается, как «Расширенный Адаптированный
Программа, выводящая песню о пиве (Panupa для Конструктора Исполнителей).
// Песня о пиве. Написал Степанищев Евгений
фун встр (и)
старш:= и/10
младш:= и mod 10
если старш>0
возврат симв(48+старш)+симв(48+младш)
иначе
возврат симв(48+младш)
всё
кон фун
фун пиво (и)
если и=0
стр:= 'No'
иначе
стр:= встр (и)
всё
стр:= стр+' bottle'
если и<>1
стр:= стр+'s'
всё
возврат стр
кон фун
проц старт()
для и от 99 до 1 шаг -1
печать пиво (и)+' on the wall, '+пиво (и)+'.'
печать 'Take one and pass it around,'
печать пиво (и-1)+' on the wall.'
печать ''
кц
печать 'No more bottles of beer...'
печать 'Go to the store and buy some more...'
печать '99 bottles of beer.'
кон проц19. VIRT.
Пара слов о реализации. Отступы в программе осуществляются при помощи пробелов, табуляции интерпретатор не любит, кроме того не любит он пробелов между именем функции и скобками. Но это не самое странное. Реализованный язык, по всей видимости, не дает использовать многобуквенные переменные, по крайней мере внутри функций. Так что, если вдруг, будьте внимательны.
На сайте есть компонент (45$) для Delphi, позволяющий использовать интерпретатор в качестве внутреннего языка
Программа, выводящая песню о пиве (beer.w).
-- Песня о пиве. Написал Евгений Степанищев
function PrintBeer(n)
s := ''
if n<>0 then
s := s+str(n)
else
s := s+'No'
end
s := s+' bottle'
if n<>1 then
s := s+'s'
end
return s+' of beer'
-- Main program
P := 99
While P Do
Writeln( PrintBeer( P )+' on the wall, '+PrintBeer( P )+'.' )
Writeln( 'Take one and pass it around,' )
P := P-1
Writeln( PrintBeer( P )+' on the wall.'+EOL() )
End
Writeln( 'No more bottles of beer...' )
Writeln( 'Go to the store and buy some more...' )
Writeln( '99 bottles of beer.')
returnНовости от FreeInet, Word, Skin, про нежность, ASP lib
Обновления на странице проекта FreeInet. Изменения коснулись информации по доступу в Интернет из города Москва.
Информация предоставлена человеком с аськой 100077.
Мучал сегодня вордовый анализатор текста, тот который выдает статистику удобочитаемости. В частности мне было интересно, как этот монстр оценивает показатели легкости чтения, особенно «уровень образования».
Оказывается считает он все это не абы как, а по особой методике, сплошь состоящей из кучи формул. Заинтересовавший меня «уровень образования», например, «основан на образовательном индексе
Сами формулы я не смотрел, но у меня есть сомнения, подтверждаемые опытом, что такие величины вообще
Для примера я взял слова «физиотерапия» и «аааа». Так вот, для того, что бы прочитать первое слово вам (как и мне), по мнению Ворда, нужно обладать уровнем образования 20 (15 — последний курс ВУЗа), а второе — 8,8. ;)
Не ожидал, что, обороненная вскользь, просьба подарить адекватный русскоязычный термин к слову «skin» вызовет такой приток писем и сообщения по аське. Подарили. Шуба, одежда, обои, морда, шкура, носок (нда… :), балахон. Всем спасибо. :) Мне понравились «шкура», ну и еще, пожалуй, «носок».
P.S. Кстати, хорошая загадка придумалась: слово из восьми букв с одной только гласной. (отгадка: вскользь).
Словаpь нежных слов v 3.63 от 17/11/1997 г. 363 нежных слова для вашей любимой. Несмотря на дату
Напоследок весьма полезная ссылка. Когда я начал программировать на ASP, с удивлением обнаружил, что в этом, предназначенном для разработки сайтов языке, нет обработки заливки файлов через браузер (FILE-форм). Ну нет и нет, вот в Perl тоже нет, но в последнем, в отличие от детища старика Билли, есть методы работы с бинарными файлами (MidB и присные пробуксовывают на \0). Кроме того, обработка заливки хотя бы и текстовых файлов с порядком 2МБ на ASP занимает оооочень длительное время.
Так вот. Проблема решается при помощи сторонних ActiveX-компонентов. Например, я пользовался ASPUpload. Задачу поиска всего этого добра облегчает следующая ссылочка на небольшой сайтик, где, силами самих посетителей все это хозяйство собирается и копится. А вот, собственно, и сама ссылочка.
Очередной FreeInet, warez, regexp для английского мата
Для тех, кому интересно: FreeInet теперь обитает по адресу FreeInet2001.chat.ru. Предлагается заглянуть и обзавестись новыми скриптами доступа.
Похоже на прятки
Ссылка предоставлена человеком с аськой 100077.
Переработал, наверное…
Сидел я вчера на диване, смотрел телевизор, фильм, канал «ВарианТ» (не сочтите за рекламу :). На самом интересном, как водится, влепили рекламу. Когда пошла заставка с красивыми маленькими рыбками, мой засыпающий мозг выдал — «это скринсейвер» и руки, на автопилоте, потянулись к несуществующей мышке… :))
Теперь о свеженьком. В мире *NIX.
PHP 4.0.5 не вышел до сих пор, но тем, кому уже невмоготу, могу предложить 4.0.5RC2. Ссылочка внизу, вес — 2,5 мегабайта. Новые функции обильно описаны в доке.
Вышел новый Webmin. Новая версия (0.85) отличается от предыдущей двумя модулями (NIS Client/Server и Shell Commands), улучшенным переводом и кучей мелких довесков и багфиксов. Кроме того, Webmin портирован на i, Redhat 7.1 и MacOS X 1.3. С чем я искренне поздравляю владельцев этих операционок.
Так же позвольте поздравить поклонников MySQL и тех, кому эту СУБД просто приходится (как мне) использовать. На днях вышла ее очередная,
Тронулся лед в отношении конкурирующей PostgreSQL. 3 дня назад вышел 7.1 Realise Candidate 1. Обильные багфиксы, возможность компиляции под Win32, чистка кода, косметические переделки. Так, что дело, видимо, идет к финалу. Что не может меня не радовать.
В темных подвалах мира Windows, точнее той части, что интересует меня — полное затишье. Если не считать GetRight 4.5 beta 3. Можно и не считать. Беты качалок я не люблю. Из опыта. Два раза ставил беты и оба раза они умудрялись скачивать файл так, что он оказывался битым. Так, что — нафик. Но, специально для любителей азартных игр (скачается нормально или нет…) оставляю ссылочку. Внизу.
Ну и под занавес. Регэксп (regular expression), описывающий весь английский мат. :))
fuc?k|[kc]unt|ar[zs]e?hole?|a[sz]?[zs]hole?|face$|pi[zs]?[zs]|shit|wank|pric?k|to[zs]?[sz]er|vagina|vaginer|pu[zs]?[zs][yi]|breath|mo?oke?[iy]|stink|bit?ch|bar?[sz]tar?d|s[kc]rew|bal?l[sz]|bol?lo[kc]?[ck][zs]|gonads?|idiot|mole[zs]ter|mole[sz]t|pen[iu][sz]|anu[sz]|coc?k|horrible|dirty?|filthy?|dic?k|head$|slime|kille[rd]|puke|vomit|suck|spastic|spaz|bugg?ery?|(you )|( you )|(u )|( u )|( of?f$)|( of?f )|[asz]{3,}Прислано Булатом Каримовым aka System 104.
FreeInet, Taintet T-288C driver, Postgres, WinAMP skin
Так, проект FreeInet опять жив. Очередная реинкарнация произошла на Narod.Ru. Всем интересующимся — ссылочка внизу. Да, чуть не забыл, за ссылочку спасибо проекту NoNaMe.
Устав от общения с собственным модемом (TAINET
P.S. Галочка «сотовая связь» (или как она там называется) не работает. Мне ее просто лень убирать было. Может быть, позже, я навешу на нее
Нет справедливости в Интернете. Вот уже сегодня двадцать пятое число, в смысле марта, а обещанный Postgres 7.1 не вышел. Ну, то есть, вышел, но не как релиз, а как шестая, дай бог последняя, бета. Ну что за безобразие? Ну разве так можно? Как говорил Stan, который Enimen «ну нельзя так с нами, с поклонниками».
Да и еще, о минувшем.
А вот из того, что греет мне душу. Нашел очередной skin (подарите адекватный русскоязычный термин?) для WinAMP. Прошу внимания на скриншот. Называется QNX_RTP_AMP (вслух я бы произнести не решился) и качается по ссылочке ниже.
Иееех… Работа затянула. Всем, кто сюда заглядывает, совет: делать это не чаще, чем раз в неделю. Радовать, тех, кто этому радуется, чаще я не могу. Всем пока, до следующего раза.
Unix Inet, PHP doc, warez, Cooler
001, 010, 011, 100, 101, вышел зайчик погулять.
(детская считалочка)
Тяжело, наверное, истинному UNIXоиду ориентироваться в Интернете.
Например, сайт www.vi.ru посвящен не консольному редактору vi, как можно было подумать, а телеиграм «Два рояля», «Устами Младенца», «Своя игра» и «100 к одному». Специально для тех, кто не смотрит телевизор: в последнюю не так давно играл «Яndex».
Cайт www.ls.ru, не клуб фанов популярной Unix-команды ls, а вовсе даже принадлежит рекламному холдингу «Locus Standi». И занимается этот холдинг чем угодно, только не показом листинга текущего директория.
Попав на www.who.ru, я сначала подумал, что сайт посвящается «Черному квадрату», но, когда произошел редирект на www.baja.com я понял, что ошибся. В любом случае, к команде who это все не имеет никакого отношения.
Продолжая ряд, www.cat.ru — страничка кота «Нельсона», www.last.ru —
Шутка, конечно. :)
Как много видов «ware» вы знаете? Freeware, shareware, adware, emailware…
Господа из PHP.net, наверное, прочитав мои стенания по поводу их неудобной документации, исправились. Да как! Сегодня благо внизу заметки есть ссылочка. PHP — хорошая компания, правильная. :)
В копилку ссылок. ddd.deusexmachina.ru/soul. Хорошо мужик пишет, в том смысле, что хочется ему верить и верится. По всему сайту я еще не прошелся, но, по крайней мере про дизайн прочитать стоит. Даже не дизайнерам.
За ссылочку спасибо Наталие Морозовой.
Вышла новая версия моего наилюбимейшего (после Colorer) плагина к FAR ProxyFTP. Новая версия называется FARNavigator и, кроме всего прочего, теперь умеет еще смотреть списки файлов, возвращаемых
Справка для тех, кто не знает для чего предназначен этот плагин. Он умеет работать с FTP (теперь уже и с HTTP тоже) через
Да, и кстати o Colorer. Этот плагин номер один (по крайней мере для меня) тоже обновился. Автор выпустил версию Colorer4ever. Тем, кто сейчас будет меня уверять, что пользуется этой версией «вот уже полгода» сообщаю: то, чем пользуетесь вы —
Краткая инструкция: ссылочки внизу, качать надо оба файла. Первый ставится в Program Files/Colorer, второй — как обычный плагин, после чего запускается исталлятор (setup.bat).
Читаем Excel 2.0
В одном из последних проектов у меня возникло несколько довольно специфических проблем. Они возникли у меня, могут возникнуть и еще
Проблема заключалась в чтении данных из формата Excel 2. Обычно, под ASP для доступа к Excel используется ADODB. Загвоздка в том, что драйвер, используемый системой в этом случае работает с форматом Excel версий 3.0 и выше. Так что мне пришлось искать другой путь.
Попытки найти другой драйвер или использовать DDE ничего не дали, я решил поискать в Интернете описание этого формата и попробовать написать собственный парсер (WinCGI). Выручила поисковая машина Google, просмотрев более 500 ссылок, я нашел то, что искал.
Итак, формат Excel 2 a.k.a. Excel BIFF представляет собой набор записей (record) определенного формата:
| Заголовок записи | Тело записи
Номер байта | 0 1 2 3 | 0 1 ...
-----------------------------------
Содержимое | XX | XX | XX | XX | XX | XX | ...
-----------------------------------
| тип | длина | данныеВ первых двух байтах записан числовой тип записи, о нём позже, далее идут два байта, это длина данных, далее — сами данные. Записи — это то, чем мы будет оперировать.
Пример на Delphi, читающий одну запись:
...
var F: File of byte;
Opcode, Len,
Code: Word;
Operand: Array of byte;
begin
AssignFile(F, 'имя_файла.xls');
FileMode := 0;
Reset(F);
BlockRead (F, Opcode, 2);
BlockRead (F, Len, 2);
SetLength (Operand, Len);
BlockRead (F, Operand[0], Len);
Proccess (Opcode, Operand); // Функция для обработки записи
CloseFile (F);
end;Типов записей около 64, но я, для обработки данных, использовал только 7. Заголовок файла (BOF), где описан версия файла и его тип; размер листа Excel (DIMENSION); пустая запись (BLANK); целое число (INTEGER); строка (LABEL); число с плавающей точкой (NUMBER), совмещенное поле — логический тип или поле ошибки (BOOLERR) и поле формата числа (FORMAT).
Семь типов записей:
const xBOF = 09;
xDIMENSION = 00;
xFORMAT = $1E;
xBLANK = 01;
xINTEGER = 02;
xLABEL = 04;
xNUMBER = 03;
xBOOLERR = 05;Запись типа BOF содержит два слова [1]. В первом записана версия файла (в данном случае «2») и тип файла (обычно это $10 [2] — worksheet). Эта запись — первая в любом файле формата Excel, прежде чем заниматься дальнейшим разбором стоит проверить ее содержимое.
Следующий тип, DIMENSION содержит данные о размере листа данных. Запись этого типа содержит четыре слова: номер первой строки, номер последней строки плюс один, номер первого столбца, номер последнего столбца плюс один. Я использую это поле для выделения места под данные, которые будут преобразованы из Excel.
Тип FORMAT содержит в поле данных строку форматирования в виде Pascal string (т. е. в первом байте длина, далее — строка). Строки формата идентифицируются в порядке следования, начиная с нуля. Тут есть одна тонкость: типы, выбираемые в Excel из списка «Формат ячеек», хранятся, как INTEGER или NUMBER. То, как они будут представлены человеку определяется форматными строками. Форматы даты и времени совпадают с принятыми в функции FormatDateTime среды разработки Delphi, а численные форматы могут быть легко сведены к параметрам функции Format.
BLANK — пустое поле. Как и любой из последующих типов, содержит в первом слове строку, а во втором — столбец ячейки на листе Excel.
INTEGER — целое. В 7
LABEL — строка. Начиная
NUMBER — число.
BOOLERR —
Простой пример чтения LABEL, NUMBER и BOOLERR.
...
Procedure Proccess (Opcode: Word; Op: array of byte);
var Str: ShortString;
Dbl: Double;
Begin
if (Opcode=xLABEL) Or (Opcode=xBOOLERR) Or (Opcode=xNUMBER) Then
Begin
iX:=Op[2]+Op[3]*256;
iY:=Op[0]+Op[1]*256;
End;
Case OpCode of
xLABEL: begin
Move (Op[7], Str, SizeOf(Str));
MBuff[iY][iX]:= Str;
end;
xBOOLERR: If Op[8]=0 Then MBuff[iY][iX]:= IntToStr(Op[7]) Else
MBuff[iY][iX]:= '';
xNUMBER: begin
Move (Op[7], Dbl, 8);
MBuff[iY][iX]:= FloatToStr (Dbl)
end;
End;Для той задачи, которую решал я, этого было вполне достаточно. Более подробную информацию можно найти, правда на английском языке, в файлах по ссылкам внизу заметки.
[1] слово (здесь) — два байта, записанных в обычном, для процессоров Intel, порядке: сначала младший, потом старший. В Delphi — это тип word.
[2] в Паскале запись вида $00 означает шестнадцатеричную систему счисления.
Довесок к TheBAT!, PgSQL 7.1, соединение без хаба
Потрясающая новость! Меня — потрясла. :) Выход релиз новой версии PostgreSQL 7.1 назначен
Возникла у меня проблема — соединить два компьютера через сетевые карточки. Проблема вот в чем — карточки на витую пару, а хаба нет. Вспомнил я, что
Надеюсь, в ней все кристально ясно. Если нет, то объясню первую строчку. Она означает, что выход «1» первого разъема соединяется
Соединение компьютер-компьютер на 10Mbs
| Разводка первого разъема | Разводка второго разъема | ||
| 1 | оранжевый с белым | 1 | зеленый с белым |
| 2 | оранжевый | 2 | зеленый |
| 3 | зеленый с белым | 3 | оранжевый с белым |
| 4 | синий | 4 | синий |
| 5 | синий c белым | 5 | синий c белым |
| 6 | зеленый | 6 | оранжевый |
| 7 | коричневый с белым | 7 | коричневый с белым |
| 8 | коричневый | 8 | коричневый |
Кроме того, оказывается, есть способ разрешить подобного рода затруднения, если машин не две, а три. Рецептик заботливо сохранен уважаемым DiBR’ом, где я его, вооружившись Яндексом и нашел. Публикуется
Соединение 3-х компьютеров через витую пару без хаба.
- (SU.HARDW.SCHEMES) ----------------------------------------------------------
From : Alex Harthenko 2:5030/561.22
To : Timofey Yakushev
Subj : сеть на витухе без хаба
Hello, Timofey !
Писал(а) как-то Среда 03 Марта 1999 19:21 , Timofey Yakushev к All:
TY> Слышал я, что существует вариант соединения 3 (если не больше) машин
витухой
TY> без хаба. Точнее там собирали что-то типа пассивного хаба на резюках... Hи
у
TY> кого этих схем не завалялось?
Схемы не завалялось, но делается пpимеpно так:
12 pезистоpов 82 ома спаивается в кольцо, RX и TX пеpвой сетевyхи пpипаиваются
к кольцy пеpпендикyляpно дpyг к дpyгy, втоpой сетевyхи - пеpепендикyляpно дpyг
дpyгy и под yглом 30гpад. к пеpвой, тpетьей - соотв. 60 гpад.
v Среда 17 Марта 1999 18:46
v Алекс Харченко
... [VFreq] [GPM alpha team]
--- GoldED/2 2.50+.
* Origin: Keyboard error! Press F1 to continue... (2:5030/561.22)Чего только не узнаешь. :) Схему я не пробовал — мне без надобности. Если
Не прощаюсь,
Евгений Степанищев
Кряк к Apache, «русские» домены и нечто на C
Вчера я забыл поздравить всех, кто сюда заходит с первым днем весны. Чтобы
***
Сегодня, просматривая сайт с кряками (грешен, каюсь :), нашел одну любопытную вещицу. А именно кряк к… Apache Web Server. Я в недоумении. Чего там
***
С 26 февраля стало возможным зарегистрировать доменное имя в зонах com, net, org в русском написании. Через 3—4 месяца обещают завершить работу «над новой мировой инфраструктурой. До этого момента полноценное использование „русских“ адресов… будет ограничено».
Ссылка предоставлена Jazz The Boot
***
Не на одном Перле можно писать абсолютно непонятные, на первый взгляд, программы. Вот, пожалуйста, версия на сях. Выводит на экран текст
#include <stdio.h>
main(t,_,a)
char *a;
{
return!
0<t? /* Ternary block #1 start */
t<3? /* Ternary block #2 start */
main(-79,-13,a + main(-87,1-_, main(-86, 0, a+1 ) +a)):
1,
t<_?
main(t+1, _, a )
:3,
main ( -94, -27+t, a )
&&t; == 2 ?_
<13 ?
main ( 2, _+1, "%s %d %d\n" )
:9:16:
t<0?
t<-72?
main( _, t,
"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+,/+#n+,/#;\
#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;\
q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; \
r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\
\
n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;\
{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\
#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/")
:
t<-50?
_==*a ?
putchar(31[a]):
main(-65,_,a+1)
:
main((*a == '/') + t, _, a + 1 )
:
0<t?
main ( 2, 2 , "%s")
:*a=='/'||
main(0,
main(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry")
,a+1);}На эту неделю я прощаюсь. Отдохну
Евгений Степанищев a.k.a. BOLK
99 бутылок: Оберон-2, Ox
16.
Считается, что язык это крайне простой и аскетичный. Лично мне он не понравился. Уж не знаю чем. Впечатлил меня транслятор. Использовал я JOB v0.75 С.Свердлова. Интересен он тем, что переводит программу
Отсюда и, встречающиеся в листинге, строчки «javalang» и «javalang.PString». Думаю, транслятор этот пригодится Pascal-ориентированным программистам, которым понадобилось написать пару апплетов или классов Java.
Программа, выводящая песню о пиве
(* Beer song. Written by Stepanischev E.V.*)
MODULE Beer;
IMPORT javalang, Out;
PROCEDURE PrintBeer( n : INTEGER );
BEGIN
IF n#0 THEN Out.Int (n,1) ELSE Out.String ("No") END;
Out.String (" bottle");
IF n#1 THEN Out.Char ("s"); END;
Out.String (" of beer");
END PrintBeer;
PROCEDURE main*( VAR args : ARRAY OF javalang.PString );
VAR beer: INTEGER;
BEGIN
Out.Open;
FOR beer:=99 TO 1 BY -1 DO
PrintBeer (beer);
Out.String(" on the wall,");
PrintBeer (beer); Out.Char ("."); Out.Ln;
Out.String ("Take one and pass it around,"); Out.Ln;
PrintBeer (beer-1);
Out.String (" on the wall."); Out.Ln; Out.Ln;
END;
Out.String ("No more bottles of beer..."); Out.Ln;
Out.String ("Go to the store and buy some more..."); Out.Ln;
Out.String ("99 bottles of beer.");
END main;
END Beer.17. Ox («Окс») —
Программа на языке Ox.
// Beer song. Written by Evgeny Stepanischev
#include <oxstd.h>
printbeer (const beer)
{
print (beer?beer:"No", " bottle", beer-1?"s":"");
}
main()
{
decl beer;
for (beer = 99; beer > 0;)
{
printbeer (beer);
print(" on the wall, ");
printbeer (beer);
print (".\nTake one and pass it around,\n");
beer--;
printbeer (beer);
print (" on the wall.\n\n");
}
print ("No more bottles of beer...\n",
"Go to the store and buy some more...\n",
"99 bottles of beer.");
}ЯузОС, прежний FreeInet, «Полиглот»
«ЯузОС» (Кодовое название «Dead Fish») — новейшая операционная система. Как и положено новейшим программам, она полностью
Нравится? :)) Ссылочка «на почитать» в конце заметки.
***
Ожила страничка о бесплатном доступе в Интернет по своему прежнему адресу. Так что страничек, посвященных этому удивительному явлению, теперь целых две. Ссылочка, как и водится, ниже, в «ссылках по теме».
Ссылка предоставлена 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 & 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 & 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= &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
JS-FTPD, снова Opera on FD и нечто на Перле
Пару дней назад, размышляя на тему
В качестве платформы я выбрал Netscape Commucator. JavaScript, как и PS, не имеет встроенных средств для работы с сокетами. Так что мне их пришлось «заимствовать» у Java, благо, что технология LiveConnect от Netscape позволяет это сделать.
Таким образом, пообщавшись телнетом
- Количество пользователей, обслуживаемых одновременно: 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».
Потом, настроив
¹ Испытано под 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»
На закуску. Программа на языке Perl, выводящая на экран «another Perl hacker». Найдено у DiBR’a.
$\='`'|"'";$\++;$;='/'|'`';$;++;$;++;$;++;$,=$;;$,++;$/=$,;$/++;$:=$/;$:++;
$_='%'|'`';$_.='`'|'#';$_.=$\;$_.='`'|'/';$_.=$".'"';$_.='@'|'*'&~'!';
$_.="$:$,$/".$";$_.='`'|'!';$_.='`'|'.';$_.='/'|'`';$_.=$/.$\;$_.='%'|'`';
$_.=$;.$";$_.='@'|':'&~'*';$_.='`'|'%';$_.=$;;$_.='`'|',';$_.=$".$\;
$_.='`'|'!';$_.='#'|'`';$_.='+'|'`';$_.='`'|'%';$_.=$;.'"'.$".'>&';
$_.=$,&':';`$_`;Красота, неправда ли? :)