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.");
}Кряк к 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
Довесок к 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)Чего только не узнаешь. :) Схему я не пробовал — мне без надобности. Если
Не прощаюсь,
Евгений Степанищев
Читаем 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 означает шестнадцатеричную систему счисления.
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).
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 (вслух я бы произнести не решился) и качается по ссылочке ниже.
Иееех… Работа затянула. Всем, кто сюда заглядывает, совет: делать это не чаще, чем раз в неделю. Радовать, тех, кто этому радуется, чаще я не могу. Всем пока, до следующего раза.
Очередной 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.