1. Си / Говнокод #25036

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    #include <stdio.h>
    
    #ifdef DEBUG
      #define TRACE printf
    #else
      #define TRACE(...)
    #endif
    
    #define DEF(type, name, ...) type name __VA_ARGS__ { TRACE("<вызвали " #name ">");
    #define RET(name, ret_val) {TRACE("<" #name " не упала>"); return (ret_val);}
    #define END(name, ret_val) RET(name, ret_val);}
    
    DEF(int, main, (int argc, char **argv))
        puts("Моя супер-мего отладка ;D");
    END(main, 0)

    Моя супир-мего отладка ;D

    Запостил: adrnin, 29 Октября 2018

    Комментарии (210) RSS

    • Чож вы пиздите, я капчу с первого раза правильно ввёл.
      Ответить
      • Интересно, а таймаут каптчи считается от момента создания нового комментария или треда?
        Ответить
    • И никто не скажет, как это у людей делаецца?
      Ответить
      • Чочото мне припоминается, что чуть ли не в Visual Studio была какая-то опция типа Trace Calls или Trace Functions, но я уже не помню.
        Ответить
    • Да это же AOP!
      Ответить
      • Действительно, правда я о нём 5 минут назад узнал. Получается, что я придумал Аспектно-ориентированное программирование! А мне просто хотелось меньше кода писать...
        Ответить
        • Это обычная ситуация для программера

          1) Я придумал foo
          2) интересно, а нет-ли готовых решений...
          3) ого, оказывается есть FooServer и книга и статья википедии
          Ответить
          • Часто бывает, что если утилита которая делает именно то что надо не нагуглилась после 5 минут - проще написать свою
            Ответить
            • Я о более глобальных вещах. Я так "изобрел" ORM один раз, а другой раз BDD.
              Потом оказалось что все это уже сделали до меня и намного лучше
              Ответить
      • AspectJ – говно. Выглядит ещё отвратительнее жабы.
        Ответить
        • AspectJ не единственная реализация, есть еще и в спринге тоже, но только рантайм (не компайл как умеет аспкет J).

          Идея была классная, но ее по какой-то причине признали "нинужным гавном", теперь за упоминание AOPа бьют лицо
          Ответить
          • Шо-шо?
            Ответить
            • Что именно тебе показалось непонятным в моем сообщении, дружище?
              Ответить
              • Кто сказал что АОП нинужно?
                Ответить
                • https://stackoverflow.com/questions/959143/future-of-aspect-oriented-programming
                  Ответить
                  • >2009
                    Ты хоть на дату смотри.
                    Ответить
                    • С тех пор стало еще хуже.

                      AspectJ занял почетную нишу рядом с EJB, WebSphere и пр
                      Ответить
                      • Пруфы неси, живность.
                        Ответить
                        • Это очевидно любому, кто сталкивался с жабаразработкой

                          Тебе то это зачем, сема?
                          Ответить
                          • Пруфы, а не хрюканину свою, животное.
                            Ответить
                            • Пруфы уже доставлены тебе за щеку, проверяй скорее
                              Ответить
        • In Lisp, if you want to do aspect-oriented programming, you just do a bunch of macros and you're there. In Java, you have to get Gregor Kiczales to go out and start a new company, taking months and years and try to get that to work. Lisp still has the advantage there, it's just a question of people wanting that.

          -- Peter Norvig



          Именно поэтому я за...
          Ответить
          • Осталось чтобы кто-то на лиспе начал писать не для суходрочки.
            Ответить
          • Чего бы такое ни изобрели мейнстримщики -- тут же оказывается что в функциональных ЯПах это было 35 лет назад
            Ответить
            • Даже GC, лол.
              Ответить
              • GC, lambda, docstrings, симольные вычисления, ленивые коллекции (есть такая либа series для CL, которую даже хотели включить в стандарт CL, но не успели. компилятор почти всегда может оптимизировать всю эту ленивую функциональную питушню в один императивный цикл).
                Ответить
                • В "PHP" вся эта лишняя поеботня отсутствует.
                  Ответить
                  • орлы? в пыхе нет GC? лямбд? phpdoc?
                    Ответить
                    • Как минимум в моей практике все эти термины мне ни разу не встречались.
                      Ответить
                      • GC точно есть и phpdoc есть. Лямбды тоже завезли кажется
                        Ответить
                        • Как они могут пригодиться "ВКонтакте" или "Facebook"?
                          Ответить
                        • Лямбды в пыхе действительно есть. Следуя своей философии "найди самую блевотную имплементацию, слегка её ухудши, и добавь в язык" разработчики "PHP" сделали лямбды с ключевым словом function, как в JS.
                          echo preg_replace_callback('~-([a-z])~', function ($match) {
                              return strtoupper($match[1]);
                          }, 'hello-world');

                          буэ
                          Ответить
                          • В "PHP" есть очень удобное слово "use", которое позволяет явно указать, что затаскивается в замыкание.

                            Что они ухудшили?
                            Ответить
                            • Напиши мне однострочную лямбду
                              Ответить
                              • Взять пример выше и удалить переносы строк.
                                Ответить
                                • с function и return?
                                  охуенно!

                                  даже в современном JS можно ()=>{}
                                  Ответить
                                  • Один хрен, => в браузерах не работает, а node.js не нужен.

                                    Жалко слово «function» что ли написать? Экономим байты, как на «Спектруме»?
                                    Ответить
                                    • >>в браузерах не работает,
                                      Открой для себя babel

                                      >>Жалко слово «function» что ли написать?
                                      жалко, как и return.

                                      Лямбда должна быть такой

                                      names = duraki.map {|p| p.name}
                                      или так
                                      names = duraki.name( p -> p.name)

                                      //а это фигня
                                      name = duraki.each( function(petuh) {return petuh.name })
                                      Ответить
                                      • Ну в лиспах лямды тоже обычно не супер-короткие, (lambda (x) …) или (fn [x] …) для кложуры.
                                        Ответить
                                      • Именно поэтому ты за "Ruby"?
                                        Ответить
                                        • хе-хе, ты его узнал)

                                          на самом деле даже в жабе восьмой примерно такие лямбды

                                          Даже в сорта сишечки их завезли

                                          [array do: ^(id p) {
                                                  NSLog(@"petuh %@", p);
                                              }];
                                          Ответить
                                          • >> хе-хе, ты его узнал)

                                            В каком ещё языке есть вот такие палки: |p| ?
                                            Ответить
                                            • > |p|
                                              Модуль p?
                                              Ответить
                                              • Допустим. В каком языке программирования применяется такая нотация?
                                                Ответить
                                              • каст к unsigned, лол
                                                Ответить
                                            • Плаки кстати это один из многих способов описяния ламбды в роубях
                                              Ответить
                                          • > Даже в сорта сишечки их завезли
                                            > NSLog

                                            Если Objective-C — сорт сишечки, то SETL — сорт Алгола, Javascript — сорт Java, Бейсик — сорт Фортрана, а 1С — сорт русского языка.
                                            Ответить
                                            • надмножество конечно же
                                              Ответить
                                            • SETL охуенен
                                              факториал же */[1..n]
                                              Ответить
                                              • Некоторые возможности SETL'а реализовали в Питонии.

                                                Хотелось бы увидеть что-то подобное в языках типа Си или Паскаля. Всё-таки паскалевские множества — это костыль.
                                                Ответить
                                                • Они через ABC передались

                                                  Да, арифметика множеств в питонии это няшно
                                                  Ответить
                                                • Чем плохи пасалевыйэ множества?
                                                  Ответить
                                                  • а их можно пересекать там один апиратором?
                                                    ибо абидинять?
                                                    Ответить
                                                    • * пересечение
                                                      - разность
                                                      + объедение

                                                      Есть цикол for/in.
                                                      Ответить
                                                      • в поскале? в классическом?
                                                        пруф!
                                                        Ответить
                                                        • for...in в классическом не было.

                                                          А остальное было.

                                                          http://www.pascal-central.com/docs/iso7185.pdf
                                                          Ответить
                                                        • https://ideone.com/cfA2Rf
                                                          В стандарте extended pacal вроде бы, не помню точно, сказано, что не боьше 255 лементов.
                                                          Ответить
                                                          • но как?
                                                            Ответить
                                                            • хз, я с чем то перепутал.
                                                              Ответить
                                                              • а причем там ркг?
                                                                Ответить
                                                                • Так это же он на паскаль напал.
                                                                  Ответить
                                                                  • >>сё-таки паскалевские множества —
                                                                    Это не ркг

                                                                    он бы написал "--"
                                                                    Ответить
                                                                    • зы: ркг вроде любит все ЯПы крмое пхп
                                                                      Ответить
                                                                    • Если честно, правду узнать не получится, ни ты, ни я не сможем доказать свои версии, и верить никому нельзя. Но мне кажется, что всё таки это он, он и раньше на поцкаль нападад.
                                                                      Это моё мнение.
                                                                      Ответить
                                                          • Я точно помню, что ограничение на 256 элементов было в Турбо Паскале, чтобы легче было реализовать компилятор и рантайм. В нём множества были реализованы как битовые маски, т. е. каждый байт хранил признаки присутствия в данном множестве 8 элементов. Таким образом, для хранения set of byte требовалось 256/8 = 32 байта.

                                                            Хранение set of word потребовало бы уже 65536/8 = 8 килобайт, что по тем временам было жирно (сегмент данных в Турбо Паскале был ограничен 64 килобайтами; под кучу для программ реального режима обычно оставалось около половины мегабайта).
                                                            Ответить
                                                            • >>сегмент данных в Турбо Паскале был ограничен 64 килобайтами

                                                              Сегмент в реальном режиме был ограничен размером регистра смещения:)

                                                              Но умел ли паскаль хранить данные в нескольких сегментах (с дальними указателями на них) я хз
                                                              Ответить
                                                              • До четвёртой версии (не включая) была модель памяти tiny (COM-файл). Там все указатели были ближними.

                                                                Начиная с четвёртой версии, перешли на экзешник и все указатели стали дальними (у функции с атрибутом near теперь нельзя взять указатель). Но сегмент памяти (для глобальных переменных) был один. Если не хватает 64 килобайт, используй кучу.

                                                                Модель huge с автоматическим переключением сегментов для Турбо Паскаля не реализовали (хотя в Турбо Си она была), поэтому размер массива был ограничен размером регистра смещения. Т. е. в TP можно было выделить в куче кусок размером в полмегабайта, но целиком отобразить на массив его было нельзя, обходить его надо было маленькими шажками. Например, отобразить начало на массив размером 64 К, потом подвинуть указатель и поработать со следующими 64 К...
                                                                Ответить
                                                                • В "PHP" вообще нет никаких указателей.
                                                                  Ответить
                                                                  • Зато в "PHP" есть какой-то хуйец в гавне.
                                                                    Ответить
                                                                  • конечно же есть http://php.net/manual/ru/language.references.php

                                                                    правда референсы, но референс это авторазыменовывающийся константый не lvalue указател
                                                                    Ответить
                                                                • Кстати, в библиотеке Turbo Vision были так называемые коллекции, в которых реализовали даже автоматическую реаллокацию. Правда, ценой некоторого оверхеда.
                                                                  Ответить
                                                                • Там же можно было выделить максимум там... ну меньше 64к за раз, там какч-то хуйня служебная быоа ещё в сегменте.
                                                                  Ответить
                                                                • Кароч, запускаешь Turbo Pascal 7.0, вводишь getmem, жмякаеш help→topic search или ctrl+f1 и видишь письмена древних:
                                                                  The largest block, that can be safely allocated on the heap at one time is 65,528 bytes (64K - $8).
                                                                  Ответить
                                                                  • А я ведь всё это знал... Лет 20 назад

                                                                    Но у меня в голове часто путается борланд си и борланд паскаль: в си были huge поинтеры а в поскале не было
                                                                    Ответить
                                                                  • > 64K - $8
                                                                    8 баксов за 64 килобайта? Богатые, наверное.
                                                                    Ответить
                                                                    • $ это 16-чно число, видимо, там не всегда было (64K-$8) я в интернетах находил ещё 65,521.
                                                                      Ответить
                                                                      • Анек был даже

                                                                        Гена говорит: нам Шапокляк дала $10, каждому по 8
                                                                        Чебуршка говорит: так не делица же!
                                                                        Гена отвечает: а меня не волнует, я свои 8 забрал
                                                                        Шапокляк услышала, и говорит: ламеры ебаные
                                                                        Ответить
                                                                  • Спутал. Да, через GetMem можно было выделить 64К - 8.

                                                                    Это через функции DOS можно было отхватить больший кусок. Максимальный размер MCB — 64 килопараграфа, т. е. 1 мегабайт. Можно было отжать всю conventional память.

                                                                    P.S. Я просто привык, что в более-менее серьёзных программах было принято выделять память в обход стандартной библиотеки: через MCB, если хватало мегабайта; через XMS и EMS, если не хватало (тот же TEMSStream в Turbo Vision). Наконец, в TP 7.0 можно было использовать защищённый режим (хотя и сегментированный).
                                                                    Ответить
                                                                    • а еще там были оверлеи
                                                                      Ответить
                                                                      • Были. Но опять же в седьмом можно было перейти в защищённый режим и не парить голову оверлеями.

                                                                        А если нужна совместимость с XT, то да, оверлеи были необходимы.
                                                                        Ответить
                                                                        • на 286 тоже protected фигово работал: нано было перегружаца чтобы вернуца в реальный

                                                                          но там редко было так уж много памяти и свеч оно не стоило
                                                                          Ответить
                                                                          • Именно поэтому я за "оверлеи".
                                                                            Ответить
                                                                            • Я помню что оверлеи" мне очень помогли когда надо было .pcx картинки тягать с диска. Я вручную бы заябался жонглировать
                                                                              Ответить
                                                            • Кстати, для множеств в таком формате у x86 были инструкции BT, BTS, BTR, BTC. Но они появились то ли в 286, то ли в 386, поэтому Турбо Паскаль, поддерживающий совместимость с 8086, эти инструкции не использовал.

                                                              А ещё у x86 были BSF и BSR... Жаль, они были недооценены языкостроителями.
                                                              Ответить
                                                              • А там не было опции копулятора чтобы из юзать?

                                                                Я вот know for sure что у С++ была опция "генерировать код для 8086/8, 286 или 386" и там еще была опциия "юзать реальный FPU або эмулить плавающего питуха" (бо fpu в первых писи могло и не быть)
                                                                Ответить
                                                                • У Турбо Паскаля была опция {$G+}, чтобы юзать инструкции 286. А для инструкций 386 опции не было.

                                                                  Частично это можно было исправить, если переписать библиотечный модуль System (некоторые его функции использовались компилятором как inline).

                                                                  А ещё был неофициальный TPU peephole optimizer, который в уже скомпилированных TPU (с включенной отладочной информацией) производил оптимизацию под 386 и более новые. Вот эта легендарная программа:
                                                                  http://www.ishodniki.ru/list/info.php?id=3854
                                                                  Ответить
                                                                • Поддержку железного плавающего питуха или его эмуляции в TP нужно было включать явно( {$N+,E+} если хочешь автоматический выбор эмуляции или железного, {$N+,E-} если хочешь послать куда подальше тех, у кого железного нет).

                                                                  Ламеры, не знающие такой директивы, недоумевали, почему тип Real работает (это полностью софтовый 48-битный тип), а Single/Double/Extended — нет.
                                                                  Ответить
                                                                  • што значит нет? Не копулировался?

                                                                    А опции нельзя было включать через настройки IDE, чтобы они епередавалась копулятору? или надо было тока мокросом таким вот?
                                                                    Ответить
                                                                    • Через IDE включать можно было. Но в чистой установке по умолчанию эта опция была выключена (в целях максимальной совместимости). Надо было лазить и включать, иначе он при попытке скомпилировать ругался, что не знаю тип double.

                                                                      Можно было сделать эту опцию по умолчанию включённой для всех проектов. Но опять же для этого нужно было знать, куда лезть. Поди высшее образование нужно, чтобы разобраться в IDE, а у нас готовят математиков.
                                                                      Ответить
                                                                      • Я помню что читал мануалы по броланд си и чото там даже понимал в этом IDE

                                                                        А время паскалирования я был совсем мелкий и умел только Ctrl+F9 и F2.

                                                                        Я даже не уверен что я умел дебагер паскаля.

                                                                        Еще умел менять размер сетка почему-то, видимо миня научили бороть stack overflow
                                                                        Ответить
                                                                    • options→compiler options
                                                                      м ставмшь где надо крестики, но с директивами копулятору ты типо крутой прогер.
                                                                      как-то так.
                                                                      Ответить
                                                                      • Тем более с директивами можно на другом сичтеме без настроек собирать.
                                                                        Ответить
                                                                      • >> но с директивами копулятору ты типо крутой прогер.
                                                                        а еще с асмовставками:)
                                                                        Ответить
                                                                        • > еще с асмовставками:)
                                                                          Без них режим 13h с 256 цветами не включишь, ещё можно VESA но он сложнее.
                                                                          Ответить
                                                                          • Асмовставки для включения графического режима не нужны. При наличии хорошего bgi-драйвера всё включалось стандартной функцией InitGraph.

                                                                            Это цари не любили модуль Graph (типа у него анскилльный пирфоманс) и использовали асмовставки...
                                                                            Ответить
                                                                            • там был максимум egavga.bgi, вроде vesa там не было.

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

                                                                              просто в dos.h был для этого API
                                                                              Ответить
                                                                              • В стандартной поставке — да, без VESA. Но на дисках вроде «Библиотека программиста», «Программирование от А до Я» и т. п. можно было найти крутые bgi-драйвера с поддержкой VESA.

                                                                                В память напрямую в Турбо Паскале можно было писать через псевдомассивы Mem, MemW, MemL (они отображались на первый мегабайт ОЗУ 1:1) или через каст целого питуха к указателю. Обращение к портам ввода-вывода было через псевдомассивы Port, PortW, PortL (в версии для защищённого режима этих псевдомассивов не было, ибо для третьего кольца это харам, а кто пишет для нулевого, тот не поленится использовать асмовставку).

                                                                                Была и функция Intr для вызова прерывания.
                                                                                Ответить
                                                                                • ну тоись асм был нинужн же

                                                                                  Я из сисечки со всем оборудованием работал напрямую, и с fdd и с контроллер пррвыаний и кловиатуры и писиспикером

                                                                                  Строго по Журдену же

                                                                                  И мне хватало in/out, прямого доступа кастом к указателю и int
                                                                                  Ответить
                                                                                  • Даже свой обработчик прерывания можно было писа́ть на Паскале (была директива interrupt, которая генерировала функцию, заканчивающуюся инструкцией iret).
                                                                                    Ответить
                                                                                    • Я помню что это было важно

                                                                                      Обработчик пррвыаня клавы по умолчанию (от доса или биоса наверное) копил в буфер нажатия и начинал противно пищать

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

                                                                                      но я все это делал уже на сишечке, но думаю что тоже саамое можно было и на поцкале конечн
                                                                                      Ответить
                                                                          • В сишечке был API чтобы дергать прерывания и писать в регистры, ну а в память понятно что можно писнуть скастив инт к указателю


                                                                            я делал 13h без асма
                                                                            Ответить
                                                                          • >>но он сложнее.
                                                                            а
                                                                            planes ебуче
                                                                            один пиксел из трех несмежных областей памяти
                                                                            не напоминайте
                                                                            Ответить
                                                                            • Почему вы все ещё не перешли на "PHP"? В чём удовольствие пассивно сношаться с памятью, регистрами, драйверами и компиляторами?
                                                                              Ответить
                                                                            • Нашол код:

                                                                              http://www.helloworld.ru/texts/comp/games/dos/vesa/vesa.htm

                                                                              Можете помастурбировать поностальгировать...
                                                                              Ответить
                                                                            • Из несмежных — мягко сказано. Если эти три-четыре области в сумме не влезали в 64 кило, то они на conventional память одновременно не отображались. Отображалась только одна, а для выбора другой нужно было что-то отправить в порт, чтобы видеокарта ремапнула на conventional память другую область.
                                                                              Ответить
                                                                              • То ли дело защищённый режим, где вся видеопамять может сразу отразиться на адресное пространство...
                                                                                Ответить
                                                                              • Связано эт было емнип с тем что так проще и быстрее было работать DACу: он мог одновременно читать каждый цвет, а программисту было грустно от тово что один пиксел так распидарашывало

                                                                                VGA вообще была страшная, у нее было охулион всего и это всё смотрелона мир через пару маленьких окошек и треба было писать в IO чтобы оно повернулось к тебе нужным бочком

                                                                                Я потом на пинду перешел, а там GDI и device context и можно ниачем не думать
                                                                                я так щаслив был
                                                                                Ответить
                                                                                • А потом цари сказали, что GDI работает слишком медленно и придумали DirectX и ещё кучу всяких баззвордов.
                                                                                  Ответить
                                                                                  • GDI не умел (и не умеет) 3Д
                                                                                    а в какой-то момент он джаже вообще полностью был софтварным (в висте кажется, когда дисплей менеджер завезли)

                                                                                    но мне было пофиг
                                                                                    я тока двумерные игрушки писал, три де нинужно
                                                                                    Ответить
                                                                                    • 3Д не нужно. Монитор всё равно двухмерный, поэтому царь сам сделает свою софтварную проекцию 3Д на 2Д.
                                                                                      Ответить
                                                                                      • Графика не нужна. У меня хорошее воображение, и потому я за "Hamurabi"*

                                                                                        * https://en.wikipedia.org/wiki/Hamurabi_(video_game)
                                                                                        Ответить
                                                                                        • >> Multiple versions of the game were created for the FOCAL and FOCAL-69 languages.

                                                                                          Даже в прошивке БК-0010 был интерпретатор «ФОКАЛа», если я не ошибаюсь. Или на кассете из комплекта... Но звали его обычно не «ФОКАЛ», а «ФАКОЛ». FUCK ALL.
                                                                                          Ответить
                                                                                          • Язык фак олл 69 хорошо работает на pidora/pitux
                                                                                            Ответить
                                                                                            • На "IBM Thinkpad" под управлением "DOS" тоже должен хорошо работать:
                                                                                              http://www.computinghistory.org.uk/userdata/images/large/44/26/product-74426.jpg
                                                                                              Ответить
                                                                                              • Сам лично видел логотип "PenDOS", когда запустил инсталлятор "IBM PC-DOS", и он в конце предложил поставить софт для перьевого ввода.
                                                                                                Ответить
                                                                                                • в первых PC были даже API для чтения пера и проверки его наличия

                                                                                                  там в Bios Data Area были байты
                                                                                                  Ответить
                                                                                                  • У видеокарточек "EGA" даже были гнёзда-тюльпаны для этих перьев. Только вживую я перьев не видел.
                                                                                                    Ответить
                                                                                                    • > гнёзда-тюльпаны для этих перьев
                                                                                                      Кстати, а как перо работало? Фотоэлемент?
                                                                                                      Ответить
                                                                                                      • Мне стало интересно и я погуглил

                                                                                                        A light pen detects changes of brightness of nearby screen pixels when scanned by cathode ray tube electron beam and communicates the timing of this event to the computer. Since a CRT scans the entire screen one pixel at a time, the computer can keep track of the expected time of scanning various locations on screen by the beam and infer the pen's position from the latest timestamp.

                                                                                                        Выходит что работает тока на ЭЛТ и надо знать развертку

                                                                                                        Теперь понятно почему оно втыкалось в видеокарту
                                                                                                        Ответить
                                                                                                    • Вот оно
                                                                                                      http://zvonoknaurok.ru/Kirill/156/25.jpg

                                                                                                      Кстати, у EGA вывод был цифровой, только у VGA аналоговый
                                                                                                      И Пёрьев там не стало

                                                                                                      совпадение?
                                                                                                      не думаю!
                                                                                                      Ответить
                                                                                                      • Цифровой и аналоговый — это громко сказано.

                                                                                                        У EGA ЦАП был в мониторе. Ну какой ЦАП? Матрица R-2R, которую Борманд на коленке спаяет. Для каждого канала (R, G, B) было по два провода (не считая «земли»), что давало по четыре уровня сигнала. Итого EGA в принципе не могла отображать больше 64 цветов (чтобы экономить видеопамять, одновременно использовалось только 16 из 64 возможных).

                                                                                                        Когда изобретали VGA, решили, что 64 цветов мало. Новые провода решили не добавлять, а то жгут слишком толстый получится, поэтому ЦАП перенесли из монитора в видеокарту. Теперь на канал достаточно одного провода, а максимальное количество цветов определяется разрядностью ЦАП в видеокарте.

                                                                                                        Вот и вся разница.
                                                                                                        Ответить
                                                                                                        • P.S. Я пытался переделать монитор EGA в VGA. Из-за того, что у VGA частота развёртки больше, у отклоняющих катушек ЭДС самоиндукции больше, поэтому выходные каскады развёрток стали сильнее греться. Оно работало, потом перегревалось. Пришлось вернуть, как было.

                                                                                                          Зато узнал, чем VGA отличается от EGA.
                                                                                                          Ответить
                                                                                                          • >>поэтому выходные каскады развёрток стали сильнее греться. Оно работало, потом перегревалось

                                                                                                            В "PHP" ничего этого нет
                                                                                                            Ответить
                                                                                                        • НУ почему громко? Передавалась же там цифра а vga аналог
                                                                                                          DAC и есть DAC, даже не сложный)

                                                                                                          У некоторых вон до сих пор VGA торчит (особенно это смещно в LCD), но у нормальеных людей конечно уже лет 10 как TMDS: DVI или HDMI или еще чтонить такое же цЫфровое
                                                                                                          Ответить
                                                                                                          • >> DAC и есть DAC, даже не сложный)

                                                                                                            Ещё можно сказать, что использовалась PCM (ИКМ — импульсно-кодовая модуляция; однобитовая, ага). Ну чтобы побольше умных слов использовать.
                                                                                                            Ответить
                                                                                                            • Я когда читал про устройство видео там было слово DAC, я его и запомнил, хотя я прекрасно понимаю что по русски будет ЦАП

                                                                                                              Надо говорить отладчик и компоновщик а не дебагер и компилятор

                                                                                                              >> импульсно-кодовая модуляция
                                                                                                              И кстати когда я говорю про звуковую карту, про кто как она звук синтезирует, я говорю именно PCM, а не ИКМ

                                                                                                              Это плохо?
                                                                                                              Ответить
                                                                                                              • Я обратил внимание даже не на язык терминологии (русский/английский), а на то, что банальное чередование «свет-тьма» без сложного кодирования, но с привязкой к интервалам времени, можно обозвать какой-то модуляцией.
                                                                                                                Ответить
                                                                                                                • Разумеется.

                                                                                                                  Первый пример кодирования информации и передачи ее на расстояние это греки, которые там костры зажигали на холмах.

                                                                                                                  Это тоже модуляция.
                                                                                                                  Ответить
                                                                                                                • P.S. В каком-то говнокоде кидали ссылку на однобитовый процессор!
                                                                                                                  Ответить
                                                                                                                  • У него все регистры по одному биту?

                                                                                                                    Я правильно понимаю что он мог адресовать 2^1 бит информации?

                                                                                                                    Не очень-то развернешься
                                                                                                                    Ответить
                                                                                                                    • https://ramlamyammambam.livejournal.com/178916.html
                                                                                                                      Ответить
                                                                                                                    • Инструкций было 16. Для ввода опкода использовалось 4 вывода. Т. е. какое-то внешнее устройство должно было его кормить опкодами по каждому тактовому импульсу.

                                                                                                                      Ножка для данных была одна. Опять же откуда брать данные — забота внешнего устройства.
                                                                                                                      Ответить
                                                                                                                      • воу
                                                                                                                        Ответить
                                                                                                                      • >> Для ввода опкода использовалось 4 вывода
                                                                                                                        >>Ножка для данных была одна.
                                                                                                                        ГАРВАРДСКАЯ РАХИТЕКТУРА!!11
                                                                                                                        Ответить
                                                                                                                        • Это не машина с хранимой в памяти программой.

                                                                                                                          У него был вывод JMP, который сигнализирует внешнему устройству, что следующую инструкцию пропускаем. В общем, можно было сделать JMP на длину одного бита и только вперёд.
                                                                                                                          Ответить
                                                                                                                          • Ещё был вывод RTN. Что делать с этим сигналом, решало внешнее устройство. По идее этот сигнал должен попросить источник опкодов перейти назад.
                                                                                                                            Ответить
                                                                                                                            • АААА! Handbook по однобитному процессору на 112 страниц!
                                                                                                                              Ответить
                                                                                                                              • Несколько страниц со схемами обвязки (ведь его внешнее устройство должно снабжать данными и инструкциями).

                                                                                                                                Несколько страниц по организации циклов и ветвлений.

                                                                                                                                Как я и предполагал, запоминать адрес возврата для организации подпрограмм должна обвязка.
                                                                                                                                Ответить
                                                                                                                              • Там же ещё подробный гайд по портированию с релюх был.
                                                                                                                                Ответить
                                                                                                                                • >>релюх
                                                                                                                                  https://www.youtube.com/watch?v=gI8luQnyM9A

                                                                                                                                  тащемто там стоит тока первые 15 сек посмотреть
                                                                                                                                  Ответить
                                                    • Пример на трубопаскакале:

                                                      https://ideone.com/xGoNTI
                                                      Ответить
                                            • >>Javascript — сорт Java
                                              лет двадцать назад их регулярно путали
                                              Ответить
                                              • Слоупоки и сейчас их путают.
                                                Ответить
                                                • вы тут песдите про шаблоны а тут у нас CSS полна по тьюрингу
                                                  https://codepen.io/jcoulterdesign/pen/NOMeEb
                                                  Ответить
                            • Не обращай внимание, тут принято ругать "PHP"
                              Ответить
                    • > phpdoc?

                      В CL (и ELisp) документация является частью синтаксиса defun. Эту документацию можно получить в рантайме.

                      т.е. сравнивать надо с питоньими докстрингами.
                      Ответить
          • (лисп (охуеннен) (его макросы охуенны) (но (от (обилия (скобок (в нём (не спастись)))))))
            Ответить
            • (не(скобки (писать вручную)))
              Ответить
            • использую Paredit, он божественнен
              Ответить
              • Не знаю, я довным-довно привык сперва писать скобки () {} [] begin end do end, а потом уже писать внутрии их.
                Ответить
                • В лиспе ты заебешься закрывающие скобки вручную писать.
                  Ответить
                • Я никогда их вручную не пишут, тем более end
                  все IDE это делают
                  Ответить
                  • Мешает писать на "J".
                    Ответить
                    • Да, кстати, в "J" же есть непарные скобки...
                      Ответить
                      • [ 'Как ты не крути, но мы не пара, не пара.'
                        ] 'Вот такая вот у нас с тобой запара, запара.'
                        [ 'Как ты не крути,' ] 'Ага.'
                        [ 'нам не попути,' ] 'Е!'
                        [ 'мы с тобой не пара, прости.'
                        ] 'Давай ещё раз, левая квадратная скобка!'
                        Ответить
                        • Я не знаю "J", но обилие несбалансированных фигурных скобок в типичной программе на "J" с непривычки режет глаза.
                          Ответить
                          • В J {}[] и " не считаются парными, это самостоятельнве символы. А одиночные ' в лиспе, форте, хачкеле, бейсике, английских письменах глаза не режут? То, что | в математике и рубе парные, но значат разные вещи, а в сишкоподобных языках это бинарный оператор глаза не реже? Просто везде свои обозначения.
                            Ответить
                            • >> А одиночные ' в лиспе, форте, хачкеле, бейсике, английских письменах глаза не режут?

                              Не режут. Мне режут глаза парные 'апострофы' вместо кавычек в некоторых языках. То ли дело `M4'. Хотя всё равно выглядит как ‘говно’.

                              >> То, что | в математике и рубе парные, но значат разные вещи, а в сишкоподобных языках это бинарный оператор глаза не реже?

                              За это вообще бы поубивал. Борманд снёс таблицу в БД из-за этой неоднозначности:
                              http://govnokod.ru/13032
                              Ответить
                              • > вообще бы поубивал. Борманд снёс таблицу в БД из-за этой неоднозначности
                                Это немного другое, SQL язык стандартизированываный, и Брандом думал что знает, что пишеь, но мускуль усьроил ему подьёбку. В своих языках разработчики используют ту систему обозначений, которую считают удобной, допустим в баше ебанутая булева логика, но зато делайраз&&делайдва&&делайтри удобно юзать и читать.
                                Ответить
                        • ] 'Жми на мех ваня!'
                          [:|||||:] [:|||:] [:||||:]
                          [:|||||:] [:|||:] [:|||||:]
                          [:||||||||||||||:]
                          Ответить
                          • http://infryazino.ru/upload/page/120/74620_picture_a4b4f4526a25ef496e21465b8c d08eb813a57c41.jpeg
                            Ответить
                          • Одиночный символ ] использовался на «Apple ][» и на его клонах в качестве так называемого command prompt'а.

                            ] PRINT "HELLO, WORLD!"
                            Ответить
                            • Apple ][ имел комманд промпт?
                              Ответить
                              • Да, комманд промпт... интерпретатора Бейсика. Даже на фанатском сайте это отражено:
                                http://www.apple2.org/
                                Ответить
                  • Кстати меня это очень сильно раздражает и я это отключаю. Я делаю как адрнин.
                    Ответить
            • Поэтому я против "Lisp".
              Ответить
              • Ты узнал о нем минуту назад
                Ответить
                • Покажи хоть один крупный проект на этом языке.
                  Ответить
                  • http://govnokod.xyz/_25036/#comment-398951
                    http://govnokod.xyz/_25036/#comment-398955
                    Ответить
                    • >>>"Google Flights"

                      Почему этот сервис нельзя было написать на "Python" или "Java" (не пися уже о "PHP")?
                      Ответить
                      • Вероятно, на лиспе получается меньше кода и его проще параллелить
                        Ответить
                        • PHP идеально параллелится по запросам. У них даже общего стейта нет.
                          Ответить
                          • по HTTP запросам от пользователя?
                            Вероятно, Google Flights стоит не только из них
                            Ответить
                        • > Вероятно, на лиспе получается меньше кода и его проще параллелить

                          Просто когда-то была компания ITA, в которой работали лиспофанатики, у которых был самый шустрый поисковый движок для полётов, в большой степени написанный на лиспе. Потом эту компанию купил Гугл. Всё тоже самое можно было сделать и на C++, разумеется.
                          Ответить
                          • Было ли бы это лучше?
                            Ответить
                            • Я бы не рассматривал всерьёз язык для калькуляторов. Есть другой вариант. Позволю себе напомнить, что на "PHP" работают такие мастодонты IT-индустрии, как "ВКонтакте" и "Facebook". С "Google Flights" ничего страшного не произошло бы, если бы его переписали на "PHP".
                              Ответить
                              • Кстати, кода на С++ в ВК и Facebook много больше, чем кода на PHP
                                Ответить
                              • Кстати, твой аватар напомнил мне анекдот

                                --Лейтенант, говорят у вас там педерастия процветает
                                --Извините товарищ майор, разберемся
                                [через сутки]
                                --Товарищ майор, педерастии не обнаружено: ни у кого из бойцов хуй говном не пахнет, лично всех проверил
                                Ответить
                                • Блядь, я лишь сейчас, по прошествии многих лет, заметил, что аватары в комментариях не "кликабельны".
                                  Ответить
                                  • Отправил твой аватар твоей маме с твоего emailа, проверь
                                    Ответить
                        • >>>"меньше кода"

                          Но понятнее ли?
                          Ответить
                          • Безусловно.
                            PHP очень вербозный
                            Ответить
                            • Напиши какой-нибудь код на страшном "PHP" и, для сравнения, его аналог на влажном "Lisp".
                              Ответить
                              • Ты же не думаешь что я всерьез буду обсуждать LISP с чуваком у которого на автаре ХУЙ В ГОВНЕ?!
                                Ответить
                          • Смотря как писать.
                            Ответить
                            • Я предпочитаю стоя. Только какое это имеет отношение к обсуждаемой теме?
                              Ответить
    • Разумеется, это тоже есть в CL
      http://clhs.lisp.se/Body/m_tracec.htm
      Ответить
    • Ебать дебил )))
      Ответить

    Добавить комментарий