1. Куча / Говнокод #25108

    0

    1. 1
    Type: Null

    https://bulbapedia.bulbagarden.net/wiki/Type:_Null_(Pok%C3%A9mon)

    Запостил: vistefan, 23 Ноября 2018

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

    • Type: Null
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • Кстати, знаешь dwitter.net?

        Там уже джаваскриптеры новую демосцену нарождают вовсю. Прямо из останков сишной. )
        Ответить
        • показать все, что скрытоvanished
          Ответить
          • Это типа твиттер. У тебя есть канвас, несколько глобальных переменных доступны, и 140 символов js кода на демку.
            Ответить
            • показать все, что скрытоvanished
              Ответить
            • показать все, что скрытоvanished
              Ответить
              • А у брейнфака есть графон?
                Ответить
                • показать все, что скрытоvanished
                  Ответить
                  • > У языков не бывает графонов
                    Бля, мы превысили лимит пунктуальности из-за доёбов до похапешников и друг до друга )) Теперь нам неудобно разговаривать, приходится развернуто и с терминологией.
                    хотя правильно говорить GNU/Linux

                    > изобрести для него возможность динамической загрузки библиотек
                    С этим проблемы, надо придумать, как это сделать без изменения синтаксиса. Может попробовать выделить ячейки с отрицательным индексом под работу с библиотеками? Надо прикинуть, что вообще требуется.

                    P.S. Я сегодня доебался до Романа, и он подумал, что у меня зелёный цвет распознаваться перестал, в треде про интелперелетацию Си. Теперь ты мне рассказываешь, что у языков не бывает графонов.
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • Ну это получится конкретная ОДНА библиотека. А как можно наладить импорт произвольной. Ну грубо говоря питоний import.

                        По поводу графония, пожалуй нужно весь буффер в обратном порядке разместить в ячейках с отрицательными индексами, как раз по три ячейки на пиксель. Только боюсь, что демки сильно не напрограммируешь, за 140 символов ты даже до одного нужного пикселя не доедешь )) чтобы в pong отрисовать мячик.

                        А на dwitter есть понг¹, кстати, за 140 символов. Вот он:
                        c.width=192;A=Math.abs;Y=A(t*99%176-88);X=A(t*139%376-188);x.F=x.fillRect;x.F(X,Y+7,3,3);x.F(187,Y+C(X/39)*29,5,20);x.F(0,Y-S(X/29)*22,5,20)
                        ¹ — https://www.dwitter.net/d/135
                        Ответить
                        • показать все, что скрытоvanished
                          Ответить
                          • показать все, что скрытоvanished
                            Ответить
                            • Вот тут нихуя не понял.
                              Ответить
                              • показать все, что скрытоvanished
                                Ответить
                                • Отличное объяснение. У меня возник ряд вопросов.

                                  Устройства и память в одном адресном пространстве что ли? То есть какие-то адреса -- это адреса ячеек памяти, а какие-то -- адреса устройств?

                                  А по поводу общей концепции я понял, но это не то, мы же хотим добавить графон в брейнфак, а не компилировать его. То есть сделать возможность загрузить библиотеку, и реализовать библиотеку для графония.
                                  Ответить
                                  • показать все, что скрытоvanished
                                    Ответить
                                    • показать все, что скрытоvanished
                                      Ответить
                                      • Какой-то он маленький. И что, на таком линукс запускался?
                                        Ответить
                                        • показать все, что скрытоvanished
                                          Ответить
                                          • > 8086 не имел […] ни защиты памяти […] под него был только DOS

                                            И ниже читаем:
                                            > В ДОС […] через прерывания. В начале памяти была таблица адресов.

                                            То есть в эту таблицу можно было писать, если память не защищена? То есть можно сделать
                                            C:\>DIR
                                            TURBOPAS.EXE
                                            SEX.EXE
                                            NAKED.EXE
                                            GIRLS.EXE
                                            C:\>GIRLS.EXE
                                            И теперь все программы, которым понадобилось писать на диск, джампают не на код обработчика этого прерывания, а на код твоей main, которая, например, выводит это на экран?
                                            Ответить
                                  • показать все, что скрытоvanished
                                    Ответить
                                    • У брейнфака есть спецификация? 0_o
                                      Ответить
                                      • показать все, что скрытоvanished
                                        Ответить
                                        • Ну, мы вернулись к прежнему моему вопросу, при таком подходе придётся либо патчить интерпретатор, либо вообще патчить окружение в котором он запускается (мапить память там или присматривать за каким-то адресом, и когда там поменяется — послать message по шине PCI Express). Придётся, например, установить соглашение о том, как мапятся адреса реальной памяти на ячейки внутри брейнфака. И получится либо корявая система, которая обеспечивает тебе, чтобы в какое бы место памяти ни загрузилась твоя программа, пропустив 2212 ячеек вправо, ты всегда попадал бы на контроллер диска, либо брейнфак действительно олжен быть ассемблером этой машины, и его ячейки должны непосредственно являться памятью, а не мапиться на них. И это всё ужасно, потому что тогда область кода и область данных смешаются.
                                          Ответить
                          • То есть единственный способ добавлять в такое MMIO какие-либо "библиотеки" (поддержку устройств) — это патчить интерпретатор?

                            P.S. А хотя нет, надо просто реализовать сокеты, и по ним наружу с кем хочешь говорить, с сетью, с контейнерами, устройствами и другими программами.
                            Ответить
                            • показать все, что скрытоvanished
                              Ответить
                              • Типа как в контроллерах ты просто знаешь что для сложения надо класть в такой-то и такой-то регистр, а потом выполнять ADD а потом из такого-то регистра читать результат.
                                Ответить
                                • показать все, что скрытоvanished
                                  Ответить
                                  • А в DOS ты знаешь, что если положить что-то в такой-то адрес памяти, то у тебя разблокируется верхняя память, и пойдёт КВАКА. Ну или система сломается. Поэтому я за "DOS".
                                    Ответить
                                    • показать все, что скрытоvanished
                                      Ответить
                                      • > ПРОЦЕССОР ШЕЛ ПО АДРЕСУ ТАБЛИЦА+N И ВЫПОЛНЯЛ УКАЗАННЫЙ ТАМ КОД (ДЕЛАЛ ТУДА JMP

                                        НЕ JMP ТУДА, А ЧТО-ТО ТИПА CALL ПО АДРЕСУ КОТОРЫЙ ТАМ ЗАПИСАН. В РЕАЛЬНОМ РЕЖИМЕ ТАБЛИЦА НАХОДИЛАСЬ ПО АДРЕСУ 0000:0000, СОСТОЯЛА ОНА ИЗ 4-Х БАЙТОВЫХ ЗАПИСЕЙ —– АДРЕСОВ ОБРАБОТЧИКОВ В ВИДЕ СЕГМЕНТ:СМЕЩЕНИЕ. ПРИ ВЫЗОВЕ ПРЕРЫВАНИЯ ВЫБИРАЛАСЬ ЗАПИСЬ ПО АДРЕСУ 0000:N*4, В СТЕКЕ СОХРАНЯЛСЯ АДРЕС РАЗВРАТА, И УПРАВЛЕНИЕ ПЕРЕДАВАЛОСЬ ОБРАБОТЧИКУ ПРЕРЫВАНИЯ.
                                        А В ЗАЩИЩЁННОМ РЕЖИМЕ ВСЁ СЛОЖНЕЕ.
                                        Ответить
        • показать все, что скрытоvanished
          Ответить
          • > демосцены были еще во времена спектрумов
            Демосцены были ещё во времена, когда люди на осциллографе в лаборантской определёнными усилиями получали бегущую строку FUCK YOU
            Ответить
            • показать все, что скрытоvanished
              Ответить
            • > бегущую строку FUCK YOU
              Challenge accepted. Правда на цифровом осциллябре это может не проканать...
              Ответить
            • показать все, что скрытоvanished
              Ответить
              • С двумя не спортивно, получится просто векторный дисплей.
                Ответить
                • А каким меандром ты нарисуешь параллельные горизонтальные линии у F?
                  Ответить
                  • https://upload.wikimedia.org/wikipedia/ru/thumb/7/79/Прогрессивная_развёртка.svg/420px-Прогрессивная_развёртка.svg.png
                    Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                      • показать все, что скрытоvanished
                        Ответить
                        • Кого повсюду узнают,
                          Скажите, как его зовут?
                          F! (тара-тата-та)
                          U! (тара-тата-та)
                          C! (тара-тата-та)
                          K! (тара-тата-та)
                          Ответить
                          • показать все, что скрытоvanished
                            Ответить
                            • А почему C и элемент K прерывистые?
                              Ответить
                              • показать все, что скрытоvanished
                                Ответить
                                • А, теперь разглядел еле заметные линии между отрезками в центре С и К.
                                  Ответить
                                  • показать все, что скрытоvanished
                                    Ответить
                                    • > изоморфизм — это биективный гомоморфизм, а биекция — это сюръективная инъекция

                                      ЗАЧЕМ ВСЁ ЭТО ЗНАТЬ ОБЫЧНОМУ СРЕДНЕСТАТИСТИЧЕСКОМУ ПРОГРАММИСТУ.
                                      Ответить
                                    • > Вспомнил фразу: изоморфизм — это биективный гомоморфизм, а биекция — это сюръективная инъекция.

                                      Почти как стихи маяковского.

                                      Гомоморфный образ группы,
                                      В честь победы коммунизма,
                                      Изоморфен факторгруппе
                                      По ядру гомоморфизма.
                                      Ответить
                                      • > Изоморфен факторгруппе
                                        но ведь это не маяковский?
                                        Ответить
                                        • > но ведь это не маяковский?

                                          Так это я про фразу, которую вспомнил гость. Я прям вижу её написанной капсом в разных направлениях.
                                          Ответить
                                      • > По ядру гомоморфизма.

                                        Гомоикон
                                        Ответить
                                      • https://i.imgur.com/HopNrVI.jpg
                                        Ответить
                                        • > катаморфизм

                                          это обычный обобщённый fold

                                          > анаморфизм

                                          это обычный обобщённый unfold

                                          > параморфизм

                                          fold с дополнительным параметром — частью структуры, которую уже свернули

                                          > иломорфизм

                                          Видимо, это hylomorphism
                                          Тупо фьюжен fold . unfold, чтобы избежать построения промежуточной структуры данных
                                          https://raw.githubusercontent.com/sellout/recursion-scheme-talk/master/cheat%20sheet.pdf
                                          Ответить
                                          • > Понял, петушок?

                                            Последнюю фразу забыл разъяснить.
                                            Ответить
                                          • https://i.imgur.com/Sr96Mvw.png
                                            Делаешь пандорический захват, лифтишь в монаду, потом строишь рекурсивную схему (здесь подойдёт зигохистоморфный препроморфизм) как монадический трансформер из категории эндофункторов, и метациклически вычисляешь результат. Любой второкурсник справится. А если делать на анафорических лямбдах — так задачка вообще на пять минут.
                                            Ответить
                                            • > зигохистоморфный препроморфизм

                                              https://wiki.haskell.org/Zygohistomorphic_prepromorphisms
                                              Ответить
                                            • P.S. https://www.linux.org.ru/forum/development/8450167
                                              Ответить
                                              • > P.S. https://www.linux.org.ru/forum/development/8450167

                                                Это довольно просто реализуется через GHC.Generics, который появился в сентябре 2012 года, незадолго до того, как задали этот вопрос.
                                                Сейчас QuickCheck сам умеет это делать, никаких библиотек добавлять не надо, кода писать тоже не надо.

                                                К слову, GHC.Generics это та самая компайл-тайм рефлексия, которой нет в крестах.
                                                Ответить
                                          • > это обычный обобщённый fold
                                            > это обычный обобщённый unfold
                                            > fold с дополнительным параметром — частью структуры, которую уже свернули
                                            > Тупо фьюжен fold . unfold, чтобы избежать построения промежуточной структуры данных

                                            вообще, если вникнуть, то все эти ваши зигогомоподхвостохуеизмоморфизмы это какое-то тупое говно для того чтобы хитровыебаным образом определить рекурсию, обход дерева рекурсивно, обход какого-то другого говна рекурсивно, схлопнуть какую-то хуйню через хуйню в хуйню рекурсивно (типа вот факториал(x) это как факториал(x-1)*x), и поэтому надо придумать этой поебени какие-то заумные названия, чтобы перед всеми выебываться
                                            Ответить
                                            • http://lib.ru/ANEKDOTY/FEINMAN/feinman.txt_with-big-pictures.html#45


                                              На конференции был один хаскелист социолог, который написал работу, чтобы ее прочитали все мы - он написал ее предварительно. Я начал читать эту дьявольщину, и мои глаза просто полезли из орбит: я ни черта не мог в ней понять! Я подумал, что причина в том, что я не прочел ни одной книги из предложенного списка. Меня не отпускало это неприятное ощущение "своей неадекватности", до тех пор пока я, наконец, не сказал себе: "Я остановлюсь и прочитаю одно предложение медленно, чтобы понять, что, черт возьми, оно значит".
                                              Итак, я остановился - наугад - и прочитал следующее предложение очень внимательно. Я сейчас не помню его точно, но это было что-то вроде: "Индивидуальный член социального общества часто получает информацию через визуальные, символические каналы". Я долго с ним мучился, но все-таки перевел. Знаете что это означает? "Люди читают".
                                              Затем я перешел к следующему предложению и понял, что его я тоже могу перевести. Потом же это превратилось в пустое занятие: "Иногда люди читают; иногда люди слушают радио", - и т.д. Но все это было написано так замысловато, что сначала я даже не понял, но, когда, наконец, расшифровал, оказалось, что это полная бессмыслица.
                                              Ответить
                                            • > чтобы перед всеми выебываться

                                              Нет, так делаешь тут только ты. Нахватаешься где-то умных слов и кидаешься ими, не понимая
                                              толком смысла.

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

                                              Если ты пишешь рекурсию сам, надо доказывать, что ты нигде не зациклился. В схемах рукурсия сидит в реализации схемы, и накосячить гораздо сложнее.

                                              Это как использовать foreach вместо goto.
                                              Ответить
                                              • > рукурсия
                                                https://ddfblog2011.files.wordpress.com/2011/10/recursion-1.jpg (перепиши на Haskell)
                                                Ответить
                  • > каким меандром
                    Вот таким, к примеру: https://imgur.com/5Sv3pdR

                    https://gist.github.com/bormand/0aedcabf0a344a12ed99416a537760a4
                    Ответить
    • показать все, что скрытоvanished
      Ответить
    • В следующем поколении будет покемон Bobby Tables.
      Ответить
      • Эволюционирует в форму DROP
        Ответить
        • ПУСТЬ ЭВОЛЮЦИОНИРУЮТ В УНДЕФИНЕД.
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • А в чём прикол регать какие-то ники и писать полтора сообщения с них, про проверку или про щёку?

              Это максимальный креатифф, на который ты способен? Тогда КГ/АМ. Давай лучше про программирование поговорим.
              Ответить
              • показать все, что скрытоvanished
                Ответить
                • И всё же даже это лучше пхпшной пустой строки вместо логического значения ложь.
                  Ответить
                • Слабая типизация, это кстати удобно, особенно когда нет операций/функций поведение которых зависит от типа, а которые для всех типов работают одинаково.
                  Снобол гут:
                  BEGIN
                      A = "19"
                      B = "тысячобезьянвжопусунулибанан"
                      OUTPUT = A * 2 + 2 B
                  END
                  Ответить
              • А в чём прикол писать всё время с одного акка? Это же скучно.
                Ответить

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