DiBR
обычная кошмарная
домашняя страничка
Ежекакполучится околокомпьютерное обозрение
 
  <<<  предыдущий8 июля 01 годаследующий  >>>  
   Последний выпуск      Архив      Ссылки      Полезности      humor.filtered      О сайте   
         Берем сардельку. Режем вдоль пополам. Кладем две половинки рядом, плоской стороной вверх. Кладемломтики сыра, мажем майонезом, чуть поливаем кетчупом. В микроволновку до обтекания сыра.Это, конечно, не "омле де ля пассьон", но как fast food вполне катит.
         Иногда напишешь текст - и не знаешь, а стоит его вообще "в сеть" выкладывать,или оставить "для вутреннего применения". Вроде, раз уж написан - не пропадать жедобру, с другой стороны - каким-то это эксгибиционизмом попахивает... А, ладно.Другие и не такое выкладывают, значит и мне можно. И заранее прошу прощения читателей,что отошел от обычной компьютерно-сетевой тематики :-)
         

"Я Вас любил. Ещё, быть может?"


Being the one - is just like being in love. No one can tell you you're in love, you just know it.
(c) The Matrix

         Всегда завидовал влюбленным парочкам, летающим на крыльях любви, и не обращающим внимание на окружающий мир.Посмотрите вокруг - таких много, и если ты сам по несчастливому стечению обстоятельств оказался не в ихчисле - им действительно хочется завидовать.Они знают, что любят, и именно потому так счастливы. Если бы они были не уверены, сомневались -разве могли бы они быть так счастливы?
         "Матрицу" смотрели, похоже, все. В кинозале с "долбаным сюрраундом" или на жеваной пиратской кассете -но найти кого-то, кто не смотрел матрицу - уже тяжело.
         Помним эпизод, когда Нео привели к Пифии, чтобы узнать, "избранный" он, или так, способный студент-практикант?"Быть избранным - это все равно что быть влюбленным. Никто не может сказать тебе, что ты любишь -только ты сам, ты просто знаешь это. Или знаешь, что это не так".
         Многие пытались дать определение, что же такое любовь, и как отличить "настоящую" любовь от "ненастоящей".Все эти определения, вроде "любовь равно дружба плюс секс" или "любовь - это когда готов на всё",кроме очевидной упрощенности ("маша+миша=любовь") имеют один мелкий недостаток -они не работают. "Дружба плюс секс" не дают в результате любовь, "готовность на всё" трудновато проверить на практике,да и примеров, когда после этого "всего" от того, что считали любовью оставалось лишь что-то вродебрезгливости - их есть. Приводить не буду, чтобы не захламлять и без того длинный текст.
         Вот и остается пользоваться старым методом, известным еще до "матрицы", но очень хорошо озвученным именно там. Любовь - это когда ты знаешь,что влюблен. А когда знаешь, что не влюблён, или не знаешь, влюблен или не влюблен - ну, значит, не любовь, а дружба, плюс-минуссекс, или еще что-нибудь не такое возвышенное. Но если уж знаешь - то это точно оно, высокое и вечное,и, полетав на крыльях этого высокого и возвышенного, влюбленные летят в загс и заводят детей (илизаводят детей, и только потом задумываются о записи акта гражданского состояния - примеров масса),а через год-другой выясняется, что пифиябыла неправа, что чувства полёта и всего такого - недостаточно,и что "эта дура не знает ничего кроме развлечений а этот козел опять потратил всю зарплату и вернулсядомой в полпервого ночи". И это - любовь?! Даа, "это любовь, да-да, конечно"...
         Вспомним Матрицу. Что ответил Нео на вопрос пифии? Напомню. Он ответил "нет, я не избранный"."Извини, парень, но ты - не избранный. У тебя есть дар, но - похоже ты ждешь чего-то".Он не был уверен. Он не был уверен - вполне законное чувство для тех, кто привык обходиться без сильных чувствв своей жизни, и чаще пытаться понять умом, чем почувствовать сердцем - а поскольку"в учебнике" сказано, что раз не уверен - значит, не любовь... в смысле, не "избранный",то... все сомнения - в пользу обвиняемого.
         Чем всё закончилось мы тоже помним. Избранным он таки оказался, хотя и поверил он в это только после хорошейвстряски, пифия оказалась не права (ну... не совсем права), а наши победили. Ну, это ведь кино -в нем положено, чтобы наши побеждали а главный герой с главной героиней уходили вдаль по побережью моря,держась за руки... впрочем, стоп, это уже не матрица.
         В жизни редко бывает как в кино. Любовь - слепа, и даже сильному чувству доверять безоговорочно - не стоит.Потом может выползти что-то, чего не заметили за розовыми очками настоящей и возвышенной, и это "потом" может оказатьсяслишком поздно. Людям, обдумывающим житьё,тем более - решающим, с кем прожить жизнь, а не с кем провести лето или с кем переспать эту ночь,свойственно сомневаться, а поскольку сомнениятрактуются известно как - вполне перспективные с точки зрения долговременныхи семейных отношений парочки разваливаются - ведь если нет того самого, про которое знаешьи которое не может ошибиться - значит, что-то здесь не так, и надо искать кого-то другого.А потом ещё другого. А потом третьего, но это тоже не то, а потом этот женился, тот замужем, там роман с твоим же соседом и ты точно не у дел,пятый на тебя откровенно "забил",а тебе уже далеко "за тридцать", и уже видишь, что первый (или второй, или пятый-десятый) вариант были бы лучше, но...понадеялись в свое время на то самое определение, которое не врёт, а оно и не сработало.Или сработало, но не помогло - уже поздно. Не в кино ведь живем, полного и безоговорочного счастьяв конце первой серии никто не обещал.
         И сколько таких, интересно, ходят по миру, ждут чего-то особенно высокого и чистого,и не верят в то, что есть под боком, поскольку "что-то не то"? А ведь - "что имеем - не храним, потерявши - плачем".
         А сколько семей поверили в это "что-то", и теперь клянут жену-мегеру и мужа-алкоголика?
         А сколько людей - особенно молодых и закомплексованных - внушили себе, что вон та девчонкас косичками - это и есть оно самое (просто потому, что к другим подойти боишься -язык к гортани липнет, и наблюдаются прочие психосоматические расстройства бихевиористического плана)?..
         А сколько вокруг других осожнений из за того, что "being the one - is like being in love, и ты просто знаешь это"?... Не сосчитать.
         Всё-таки любовь, на мой предвзятый взгляд, не должна состоять только из чувства, "высокого,чистого и яркого". Она должна быть осознанной. Она должна быть проверена - и временем, и, как это ужасно бы ни звучало - рассудком.А "чистое и яркое" может и обмануть. Причем в обе стороны.
          По настоящемусчастливы наверно даже не те, кто знает, что любит,а те, кто об этом вообще не задумывается, и просто живет. Без проверки чувств и прочей подобной фигни.Жаль, не все так умеют, и не всегда эта дорожка (когда просто живешь как живется) приводит куда надо.Живешь себе живешь, а он хоп! и женится на твоей подруге...

         ...Девчонки и мальчишки, прежде чем брать пример с пифии и говорить кому-то "извини, парень, но..." -задумайтесь, действительно ли "но", и не окажется ли, что об этом "но" лет через десять вы будете вспоминатькак о самой большой ошибке в своей жизни? Конечно, в восемнадцать лет таких проблем нет -всё еще впереди. А в двадцать пять? А в тридцать? А в сорок пять? Передумать и откатиться назад -получится не всегда.
         
         Ладно, достаточно я вас заморочил, больше не буду - и продолжим наконец наш "околокомпьютерный" выпуск :-)
         Кстати, "зелень" в фильме матрица - это не "ляп" пиратов, катавших компакт, а вовсе даже режиссерский ход.Все, что происходит в матрице - чуть зеленовато, а все, что происходит в реальном мире - освещено чутьсиневатым светом. Я, кстати, синеватости не замечал, пока не прочитал об этом в интернете (сцен в "реальном мире"не так уж и много), и ругал пиратов. А зря.
         
От:
О чем: www & MS Word
Кстати Excel тоже неплохо url'ы открывает :)

         Проверил. Боже! Красота неземная, особенно в попытке разбора экселем тэга <table> :-)
         И, возвращаясь к isdigit(д). Во-первых, спасибо всем, принявшим участие в обсуждении- сам бы я запутался не так быстро. Во-вторых...
         isdigit() обычно реализуется как макрос (для скорости - одной рукой изобретают strlen(), strcat() и подобные функции, бегающие по всей строке в поисках , другой -оптимизируют isdigit() - странные люди). Но никто, конечно, не гарантирует, что оно реализовано как макросв конкретном компиляторе - и есть компиляторы, где is*() - функции. Там могут быть свои интересные эффекты,но это отдельная история.
         Именно в cygwin (gcc) - isdigit() реализован макросом. Макросом в стиле ((some_array+1)[(unsigned)(c)]&some_mask).В some_array[] побитно разрисовано, кто чем является (вроде бы инициализируетсяв runtime в зависимости от локали), some_flag - соответственно, проверяет, являетсяли наш символ тем, что мы хотим (цифрой, например).
         Единичка к array добавляется потому, что, например, "символ" EOF обычно (и cygwin -не исключение) определен как -1. Чтобы не выйти за границы массива - к нему добавляется единичка.
         Преобразование к unsigned не изменяет двоичного представления в случае (int)->(unsigned int),а поскольку int на интелевой архитектуре имеет тот же размер, что и "указатель" -при "-1" происходит вылет за границу массива, "заворот", и попадание одратно с другой стороны -как результат, корректная работа для c==EOF.
         В случае "с", заданного как unsigned char (или приведенного к типу unsigned char) -приведение к uint делается добиванием нулями слева, и макрос работает корректно.
         В случае "с" имеющего тип int (что, вообще-то, является чуть ли не "рекомендованым" местом для хранениясимвола - ряд функций ввода-вывода возвращают тот же EOF как -1, что вообще говоря, в случаеchar, совпало бы русской буквой "я" в 1251 кодировке), и символа, лежащего в младшем байте intа - int приводитсяк uint без изменения двоичного представления, далее - см. выше.
         В случае же "с", имеющего тип char (а с чего бы вдруг я должен использовать для хранения charactersчто-то отличное от char??), char (который signed char) приводится к uint (который unsigned int)довольно странным методом - с "расширением знака" до нужного размера (т. е. фактическим переводомsigned char в signed int), а затем - переводом signed int в unsigned int (то есть,оставлением бинарного представления как есть). Как результат - char, заданный константой (тот жед), преобразуется в отрицательный int (при расширении знака), а далее... как и с EOF - переполнение,заворот, но - до массива мы уже не долетаем, и читаем информацию из "левого" места.В лучшем случае имея неработающий макрос, в худшем - access violation.
         Самое интересное - что простым образом бороться с этим безобразием (я имею в виду - написатьмакрос как-то по другому) как бы и непонятно как. Приводить к uchar - нельзя, тогда EOFокажется буквой. Приводить к int - тем более. Вообще не приводить - неявно приведетсяк int...
         Другая фигна в том, что если не вдаваться в тонкости того, как оно работает - макрос выглядитправильным - "символ" приводится к беззнаковому типу (чтобы не "вылететь" за массив "слева"),к беззнаковому int - чтобы отработался символ EOF...
         Так что вопрос у меня есть. К знатокам языка Си. Тот факт, что в cygwin (signed char)переводится в (unsigned int) с расширением знака (то есть, как в signed int) -это есть специфицированная особенность языка, особенность gcc, особенность cygwinа,или просто глюк? Мне почему-то кажется, что глюк. С другой стороны - посколькускорее всего глюк этот отлично известен разработчикам gcc - он наверняка описанкак "фича" (и где-нибудь используется, не иначе). GCC - это не абы какой компилятор с улицы,это один из наиболее широко используемых компиляторов языка Си, поэтомупо нему я имею право составить впечатление и о языке в целом. А впечатление, извините...
         Мне нравится Си. Мне очень нравится Си. Я до сих пор считаю его лучшим языкомдля "системного" низко- и средне-уровневого программирования. С одним (точнее - уже с двумя)исключениями.
         Встроенная работа со строками (char *), как и сами строки, никуда не годятся.Неэффективны (для определения длины строки нужно сканировать всю строку),ограничены (символ трактуется как конец строки - это, вообще-то, резкоограничивает те места, где можно применять Сишные строки), небезопасны(даже и комментировать не хочется. buffer overrun - в множестве мест libc,от известных gets или strcat до не столь известных scanf или sprintf).
         Кроме того - встроенные макросы работы с символами - с символами работают неадекватно,зато работают с int. Поскольку часть функций libc возвращают int, а не char, и на эторазработчики заложились. А на то, что character data люди хотят хранить в char, а не в int или double -на это заложиться не догадались. В общем, если бы в Си не было строк вообще - и то было бы лучше...
         Заранее отвечу на два возражения.
         - в Си нет gets или strcat - это всё функции libc, а libc к языку имеет косвенное отношение!
         - готов принять это к сведению, как только мне покажут более-менее функциональную программу(я уж не буду намекать, что "программа по подсчету числа Пи" должна это число как-то вывести наружу),не использующую libc, но написанную "на Си" - т. е., собирающуюся большинством компиляторов.
         - в Си нет строк! Строковые функции лежат в libc (см. выше), а char* - не более чем"указатель на char", строкой формально не являющийся, хотя и часто использующийся.
         - поверю не раньше, чем мне расскажут, чем же, если не строкой, являетсяпонимаемая компилятором как const char* конструкция вида "произвольный текст в кавычках".Часть языка? Да! Строка? Хм.
         В Калужской области год продавали фальшивую туалетную бумагу, но жалоб не было.Фальшивая бумага ничем не отличалась от настоящей, но не приносила радости налоговой инспекции.






Архив dibr