Battle Forum

Battle Forum (http://battlefox.rooty.ru/index.php)
-   Клоунада (http://battlefox.rooty.ru/forumdisplay.php?f=41)
-   -   Женщины, как web-сервер (http://battlefox.rooty.ru/showthread.php?t=871)

Алёша 23.09.2006 22:58

Женщины, как web-сервер
 
400 Ваd Rеquеst - свидание без букета.
401 Unаuthоrizеd - замужем.
402 Рауmеnt Rеquirеd - ужин при свечах.
403 Fоrbiddеn - я знать тебя больше не хочу!
404 Nоt Fоund - сегодня я гуляю с подругами.
405 Меthоd Nоt Аllоwеd - нет, только не сзади....
406 Меthоd Nоt Ассерtаblе - мне противен оральный секс!
407 Рrоху Аuth. Rеquirеd - мне надо спросить маму.
408 Rеquеst Тimеоut - знаешь, сколько ты уже мне не звонил?
409 Соnfliсt - а что это за блондинка вчера с тобой была?
410 Dосumеnt Rеmоvеd - хочу развода!
411 Lеnght Rеquirеd - и ЭТО ты называешь длинным?
412 Рrесоnditiоn Fаilеd - Что?! У тебя нет презерватива?
413 Rеquеst Еntitу Тоо Lаrgе - ой, он ТАКОЙ большой!
415 Unsuрроrtеd Меdiа Туре - не-е-е, вчетвером не интерестно.
500 Intеrnаl Sеrvеr Еrrоr - критические дни.
501 Nоt Imрlеmеntеd - хмм, так я ещё никогда не пробовала.
502 Ваd Gаtеwау -... фууу, солёно!
503 Sеrviсе Unаvаilаblе - извини, что-то у меня голова раскалывается.
504 Gаtеwау Тimеоut - как, и это уже всё?!!!!

a2z 06.06.2007 15:23

Чего только не придумают :D

Male C - язык программирования для женщин

Код:

  Предисловие редактора

  Сложность операционных систем и программного обеспечения для них рас-
тет по  экспоненте. Программы становятся монстрообразными и неработоспо-
собными. В  этом свете данная работа,  в которой предпринимается попытка
нестандартного подхода к этой проблеме, представляется очень интересной.
Особенно мне понравилась идея "заложил одно - получил совершенно другое"
в отличии от банального "что вложил - то и получил".
  Однако я  не  не  могу отметить, что логику его языка понимают только
два человека: сам автор и его жена.
                                                        Much O.F. LAGER


  Предисловие автора

  Естественно, первый вопрос к названию этой книги:  зачем нужен специ-
альный язык программирования для женщин? До этой книги все языки програ-
ммирования писались мужчинами и для мужчин. А суть в том, что любой язык
программирования - прежде всего язык логики, а женская логика существен-
но отличается  от мужской.
  Редактор (кстати, мой  друг по светлому пиву) правильно заметил,  что
основное преимущество  программ  на Male C в том, что они пишутся не для
решения задач, ответ  которых известен;  программы на этом языке пишутся
для нахождения нетривиальных решений.
  Почему тогда "Male C", а не "Female C"? Дело в том, что этот язык ну-
жен скорее для мужчин, чтобы понять логику женщин,  а не наоборот - жен-
щины прекрасно  понимают  мужчин (но это не значит, что они разделяют их
взгляды). Поясним на примерах. (в дальнейшем служебные слова языка будем
писать целиком в верхнем регистре).

  1. Что означает?
  GOTO begin;

  Мужчина скажет, что  он  собирался перейти на заданную метку и поэтому
поставил этот  БЕЗУСЛОВНЫЙ переход. Однако спросите женщину и она вам от-
ветит, что если она куда-то собралась, то это не значит, что именно туда
она и пойдет. Если она собиралась в прачечную, затем в продуктовый мага-
зин, то не исключено, что сначала она зайдет в модный магазин, купит там
что-нибудь,  а затем зайдет к приятельнице обсудить покупку. И это будет
ее конечная остановка.

  2. Что означает?
  WHILE (hour == 23.00) WORK();

  Мужчина скажет, что  он  - добытчик и это заставляет его работать до-
поздна. Женщина же сделает вывод,  что мужчина любит работу больше,  чем
ее.

  3. Что означает?
  IF (I'd like to eat) I eat;
    ELSE I don't eat;

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

    4. Что означает
  It is TRUE;
  Everything;
  I DO;
    I DO;
    it;
  FOR (you) ...

  Мужчина найдет здесь массу синтаксических ошибок (с точки зрения язы-
ка C). И  только  женщина может понять,  что это просто любовная песенка
Билли Джоэла...
  Кое-кто может сказать,  что женская логика - не логика вообще. Однако
критерий теории - практика, и каждый может убедиться, что такие нелогич-
ные существа,  как  женщины,  вполне успешно существуют в этом мире. Так
что начнем.
                                                                S. Cool


  1. Константы

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

  LOVE /* наиболее важная константа, чаще всего цель программы.
        Имеет два значения:
        YES
        NO */
        Эта единственная  константа, понять  которую  можно только
        из контекста, поскольку необходимо еще знать, какая LOVE имеется
        ввиду.
        Примечание: Некоторые  считают,  что  существует множество
        промежуточных значений этой константы. Комментарий: осетрина
        бывает свежей или...

  SEX /* менее важная константа, чаще всего путь к первой константе */
      Примечание: Кое-кто думает наоборот. Без комментариев.

  HEALTH /* самая непостоянная константа. Обычно принимает три значения:
  BAD - иногда
  GOOD - иногда
  SO-SO - чаще всего. */

  MONEY /* критический параметр, всегда не хватает */
        Примечание: Некоторые полагают, что с помощью этой константы можно
        получить все остальные. Без комментариев.

  WORK /* средство для наполнения предыдущей константы */
        Примечания: Некоторые полагают, что WORK существует ТОЛЬКО для
        самовыражения. Комментарий: в доме без туалета жить можно.
        Но неудобно.
        Примечание: в  Male C+ WORK придается статус оператора,
        а не константы. Это новые веяния - работа уже не считается
        необходимой для успеха.

  STATE /* вообще-то, это константа из языка Male C+,  однако в послед-
  нее время она введена в большинство трансляторов языка С. Хотя мы счита-
  ем, что Male C+ более мужско-шовинисткий диалект, но... */
  Принимает два состояния:
  RULEZ - Все ОК, все отлично, великолепно и пр.
  SUX  - Все наоборот.

  Примечание: В  Male  C вводится еще несколько констант,  к сожалению,
мужско-шовинистских. Не вдаваясь в подробности,  мы опишем несколько для
полноты картины:
  BEER /* обычно принимает дробные значения, 0.3, 0.5, реже 1, 2 */
  CAR /* обычно равно 1; зачастую заменяет все остальные константы */
  SPORT /* если не WORK, не SEX и не BEER,  но SPORT, однако чаще всего
  в пассивной форме наблюдения */

  Забегая немного вперед, предлагаем для самостоятельного разбора прос-
тенькую программу с использованием вышеописанных констант (заметьте, что
смысл программы надо искать исходя не только из одних операторов).

  RULEZ;
  IF (LOVE == SEX) BAD;
    ELSE
    IF (LOVE == WORK) SO-SO;
      ELSE (LOVE == YES) GOOD;
  LOVE == NO; VERY BAD;
  END;

  Короче, если вы чувствуете любовь,  но не можете дать ей определение,
это хорошо.


  2. Переменные
  2.1. Одиночные переменные

  Переменные в  языке Male C имеют примерно то же самое значение, что и
в других языках. Однако, как в старых языках, в Male C нет необходимости
явно определять тип переменных, когда их смысл ясен из контекста.
  К примеру, если  парикмахер плохо уложил вам волосы,  это безусловно,
Shit. А если он к тому же еще и сжег их, то это DOUBLE Shit. Для женщины
Whisky редко бывает DOUBLE, а мужчина вполне может осилить такую порцию.
  Wood,  конечно,  имеет тип FLOAT. А Axe - навряд ли.  А для Submarine
этот вопрос находится в стадии обсуждения.
  GLASS обычно INT, но если применить к нему оператор BREAK,  то навряд
ли оно (он) останется целой(лым).
  Skirt лучше всего SHORT (впрочем,  вечером можно и LONG). А вот стро-
ковая константа (разговор двух женщин) почти всегда LONG а не SHORT.
  Если женщина замужем, но на курорте она одна,  то Husband для нее по-
нятие VIRTUAL, однако дома, он, конечно, REAL.
  Многие женщины  хотели  бы  иметь CHAR (приходящую уборщицу), но чаще
всего это  остается UNSIGNED мечтой и пахать на кухне и на уборке прихо-
дится самой.
  Charge может  быть STATIC, а вот CURRENT (электрический) - по опреде-
лению нет.
  Особый тип  переменной - LOGICAL. Хотя она принимает всего два значе-
ния TRUE и FALSE, это не значит, что на основании ее значения можно при-
нимать какие-либо действия. Если MONEY is EMPTY,  это еще не значит, что
купить новую  шляпку  невозможно  (особенно не советуем высказываться об
умственных способностях своей жены, которая все же сделала это).
  Примечание: в  Male C+ и некоторых диалектах C для решения этой проб-
лемы вводятся  дополнительные значения этой переменной, типа ALMOST.TRUE
или BETWEEN.TRUE.FALSE. Мы считаем,  что в этом нет необходимости,  т.к.
не решается  главная  проблема:  выбор. Если  ваш муж возвращается очень
поздно, в подпитии, странно пахнет духами и при этом говорит, что задер-
жался на работе, это может хоть ALMOST.TRUE, хоть ALMOST.FALSE, все рав-
но ничего,  кроме  скалки,  не поможет. Через три месяца после вашей же-
нитьбы жена  может  принести вам чернокожего младенца. Если при этом она
убеждает вас, что ни с кем, кроме вас, последний год в близких отношени-
ях не  была, ваша  LOVE  к ней может заставить считать это и за BETWEEN.
TRUE.FALSE и даже за TRUE. Однако вы,  вероятней всего, будете едиствен-
ным в этом убеждении.


  2.2. Наборы переменных

  Наборы переменных - группа переменных,  связаных общими свойствами. К
примеру, массив Furniture [] содержит набор мебели, а составная перемен-
ная Age_of_Women - возраст женщины. INT LOVE [ SEX, Flirt, LOVE] очевид-
но обозначает набор состояний любви.


  3. Операции присваивания.

  Операции присваивания вообще одни из самых популярных у нас операций.
Этим занимаются все, начиная с ваших детей и кончая государством.
  Операции присваивания для переменных в общем такие же, как и в обычном
C, кроме  некоторых  неважных  случаев для упрощения понимания программ.
Примеры:

  MONEY = $100    то же самое, что MONEY is $100
  IF ( FOUND )    то же самое, что FOUND
  STATE is RULEZ  то же самое, что RULEZ


  4. Цикл DO.

  По замыслу создателей языка, должен быть самым употребительным опера-
тором. Действительно,  разве всех нас не учили в детстве, что единствен-
ный путь к известности и достатку - труд? Однако многие из нас выросли и
нашли разные  пути  к достатку  и без утомительных циклов DO. К примеру,
молодая девушка  пишет  в газеты  бесплатных объявлений: "18 лет,  обая-
тельная-привлекательная 90-60-90, без специальных навыков, расмотрю пре-
дложения от $500". Кстати, разберем это объявление на Male C и попробуем
сделать выводы.

  MONEY is EMPTY;
  SEEK ( WORK );
    IF ( MONEY < $500) BREAK; /* Облом */
    DO {
    SEX;
    WHILE (HEALTH is SO-SO);
        }
    Is STATE GOOD ?

  Молодая-привлекательная без  особых  навыков, но  с запросами от $500
может получить только определенную работу, причем весьма интенсивно. При
этом, правда,  ответ  на последний оператор программы остается открытым.
Кое-кому нравиться быть "секретуткой".


  5. Особые операторы.

  Смысл особых операторов можно понять из их перевода. Нет смысла пере-
числять их все, т.к. список существенно зависит от реализации языка. Од-
нако мы разъясним смысл некоторых, используемых в этом руководстве.

  SEEK () - поиск. В скобках указывается переменная, по которой ведется
поиск. SEEK  ( Husband ) и SEEK ( Lover ) далеко не одно и то же,  хотя,
конечно, каждая женщина надеется, что ее муж всегда будет хорошим любов-
ником, а ее любовник наконец разведется с женой и жениться на ней.

  FOUND () - найдено! Что найдено, смотрите в скобках. Следующий пример
иллюстрирует хорошо известный факт, что искать черную кошку в темной ко-
мнате - безнадежное занятие.

  DOUBLE Room = Cat = Black;
  SEEK ( Cat );
    FOUND ( EMPTY );


  6. Оператор RETURN.

  Все возвращается на круги своя. Таким образом, RETURN непосредствен-
но связан с операторами циклов. Пример:

  INT Age;
  IF ( Age > 50 )
    IF ( WORK is GOOD \!\! Alcohol is EMPTY ) HEALTH is GOOD;
      ELSE HEALTH is BAD;
    Age != RETURN;
    DIE;
    END;

  Конечно, после 50 здоровье уже не то,  особенно если вы злоупотребля-
ли. С другой стороны,  "Кто не курит и не пьет, тот здоровенький помрет"
- годы не возвратишь.


  7. Оператор CONTINUE

  Большей частью опять же используется в циклах. Рассмотрим пример:

  INT Age;
  INT Man;
  INT Tired is NO;
  IF ( Age_of_Women > 30 )
    DO {
    SEX;
    IF ( Man is Tired ) {
      SUX;
      LOVE is NO;
      BREAK;
                            }
    CONTINUE;
      }

  Если женщине  за тридцать и ее мужу где столько же или больше, то для
него начинаются  трудные  времена. Если  он будет постоянно ссылаться на
усталость, то  женщину ждет облом,  неудовлетворенность в любви и вообще
SUX. А  если не будет,  но вы полагаете,  что будет RULEZ?  А вот и нет.
Есть только продолжение, продолжение и продолжение.


  8. Оператор SWITCH

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

  DOUBLE Relax;
  DO {WORK;
  WHILE ( HEALTH is SO-SO )}
  SWITCH ( MONEY ) {
    CASE ($1000):
    KANARY;
    CASE ($500):
    Relax_House;
    CASE ($10):
    BEER;
                    }

    HEALTH is GOOD;

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


  9. Оператор BREAK

  BREAK -  оператор  аварийного  выхода, чаще всего в негативном смысле
(облом). Разберем пример:

  CHAR WORK is Empty;
  SEEK ( WORK );
  FOUND;
  SWITCH ( MONEY ) {
    CASE ($10/Month):
    BREAK;
    CASE ($100/Month):
    BREAK;
    CASE ($1000/Month):
    RULEZ;
                    }

  Результат поисков  работы  может  быть  разным. Если  зарплата меньше
$1000 в месяц - SUX и BREAK (т. е. облом). Еще пример:

  INT Glass;
  IF ( SUX )        {
    DO Glass BREAK; }
  RULEZ;

  Рецепт улучшения  настроения - битье посуды совершенно непонятен муж-
чинам. Однако,  представьте,  что  на месте Glass (бокала) могли бы ока-
заться вы...


  10. Оператор GOTO

  GOTO -  оператор  языка, которым  пользователи  Male C обмениваются с
друг другом. Очень  удобно:  ваш шеф просит вас принести квартальный от-
чет, а вы посылаете его в $%# до переполнения его стека терпения. Другой
случай: даже  если вы очень торопитесь,  советуем все же воспользоваться
переходом, а не бежеать сломя голову прямо через дорогу.
  В новых веяниях (Male C++) считается, что этот оператор лишний. Одна-
ко разберем пример:

 #DEFINE HOUSE KEEPING
 #INCLUDE WASHING MACHINE
  MAIN ()
 {
  FLOAT Thing is Dirty;

  WHILE (Thing) {
    Wash;
    BAD;
      GOTO HELL;
                }
HELL: Shop \!\! Barbeshop \!\! Love-story_reading;
 }

  Понятно, что домашняя работа (в частности, стирка) бесконечна, и чис-
ло грязных  вещей  (Thing)  никогда  не кончится. Поэтому необходимо ис-
пользовать оператор безусловного перехода, которое в данном случае посы-
лает эту работу в HELL. Когда его использовать,  зависит от вашего наст-
роения, однако если вы не хотите BAD с вашим мужчиной,  старайтесь им не
злоупотреблять.
  Примечание: некоторые скажут, что в написанном примере можно было во-
спользоваться оператором BREAK. И что? Вы остановили работу, а не посла-
ли ее к черту и вам придется рано или поздно ее продолжить, причем наве-
рняка переменная THING существенно увеличится.
  Некоторые могут заметить странное определение метки "черта". Так ведь
к черту  посылается стирка, а вместо нее предлагается или поход по мага-
зинам, или парикмахерская, или просто чтение любовных романов.
  Еще один пример иллюстрирует тот факт, что женщина любит ушами:

  CHAR  Ask "Do you love me?";
Neverending:
  IF ( Ask is 'Yes') GOTO Neverending;


  11. Условные операторы

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


  12. Примеры

  1. Кандидат на брак.

  #UNDEFINE MAN
  #INCLUDE ALL
    MAIN (Target is LOVE);
    LONG CHAR  Why = "Зачем вы девушки, NICE LOVE, неCONST у них LOVE";
    INT MAN [ Boss, Friend, Nice ...];
    INT LOVE [ SEX, Flirt, LOVE];
    SEEK ( LOVE );
    FOUND MAN;
    IF ( Man[Boss] ) FOUND SEX;
      IF ( Man[Friend] )  FOUND Flirt;
      IF ( Man[Nice] ) DO Why;
    ELSE New SEEK;

  Примечание: могут сказать, а как же все же найти свою любовь. Ну, до-
рогие дамы, если вы считаете,  что это задачу за вас смогут решить маши-
ны...


  2. Муж вернулся из командировки...

  INT Lover is IN_FRIDGE;
  INT Husband is FOOL;
  LONG CHAR Kill ( Lover must die! );
  INT Furniture[Dresser, Bed, ...];
  RETURN ( Husband );
    Husband;
    SEEK ( Lover );
    IF ( Furniture[Any] ) FOUND {
      SAY Kill;
      SUX;                      }
    ELSE RULEZ;

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


  13. Задачи.

  Как вы уже поняли, Male C - универсальный язык программирования, пос-
редством которого  можно решать обширный круг повседневных задач. Единс-
твенный путь  изучения языка - говорить на нем. Предлагаем несколько за-
дач для самостоятельного решения:

  1. Классический треугольник:  вы любите его,  он любит другую,  а она
любит вас. Варианты решений:
  - вы добиваетесь его взаимности;
  - вы добиваетесь ее взаимности;
  - вы становитесь их взаимности;
  - вы отвечаете взаимностью своей собаке.
  Примечание: могут  возразить,  что  классический треугольник выглядит
по-другому. Однако мы полагаем,  что если двое влюблены в одного, то это
не треугольник, а угол:

 ------> 
        /|\
        |
        |

  2. Вариант без соперницы: Вы любите его, а он любит себя.  Попробуйте
сами найти все решения.

  3. Вас шеф активно добивается вас. Варианты решения:
  - вы отвергаете его домогания и теряете работу;
  - вы уступаете ему и теряете свое достоинство;
  - вы  знакомите  его со своим другом-бандитом и он теряет свое досто-
инство.

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

  Множество других проблем вы сможете найти в известной книге, классике
нашего дела "1001 проблема про это" а также в журнале "Все проблемы, ко-
торые вы хотели решить, но не имели для этого подходящего инструмента".
  Примечание: Проблемы Male C- можно найти и в популярной газете "C-pid
Info". и в передаче "Я C-ама.  В передаче "LOVE C 1 взгляда" обсуждаются
проблемы языка  LOVE  C версии  1. В  журнале "5 How C" вы найдете более
сложные задачи из языка версии 5.


  14. Послесловие

  В следующей  книге  мы  разберем особенности реализации Male C+, Male
C++,  и вообще Male Cn+. К сожалению, мы не будем обсуждать проблемы лю-
бой реализации языка C- по понятным морально-этическим причинам.

                                                          сентябрь 1997
                                                                  ПАЛЕК


Вилварин 06.06.2007 17:00

a2z, Жесть... Мне про любовный треугольник понравилось) Было уже так...


Текущее время: 06:35. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot