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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    [color=blue][u]https://otvet.imgsmail.ru/download/1bceee23eb24bf87101d513013c175aa_i-215.jpg[/u][/color]
    
    [color=blue][u]https://hsto.org/files/fb4/363/3e4/fb43633e4de04988b9f64eeb0c521f68.png[/u][/color]
    
    [color=blue][u]https://cdn.scratch.mit.edu/scratchr2/static/images/hp-video-screenshot.png[/u][/color]

    Можете бить ногами за передачу кода по ссылке, но на ГК картинки по значению не проходят.

    Запостил: inkanus-gray, 09 Июля 2016

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

    • SEO-пост.

      Теги: #вореции, #кобенации, #детскоепорно, #MIT, #массачусетс, #всёбудетхорошо, #нуихерснимспринстоном.
      Ответить
    • Ёбаное говно этот ваш скрэтч. Имел неудовольствие сравнить две группы детей, у которых первым языком было олдскульное лого и вот это говно с кирпичиками. Вторые почему-то упорно тупили на любом месте, где нужно сформулировать строчку кода.
      Ответить
    • По первой ссылке был зигующий педобир, остальные я открывать побоялся.
      Ответить
      • Надо будет настучать, чтобы внесли scratch.mit.edu в реестр за пропаганду педофилии и нацизма.

        Вот Генпрокуратура:
        http://ipriem.genproc.gov.ru/contacts/ipriem/send/
        Она может помочь внести Скретч в список экстремистских материалов.

        Вот «Роскомнадзор»:
        http://eais.rkn.gov.ru/
        А он поможет забанить сайт, чтобы никто это говно больше не качал.

        Ещё можно создать петицию на https://roi.ru/ , чтобы запретили использование Скретча в учебных заведениях.
        Ответить
        • > в учебных заведениях
          Его в школах уже начали юзать?
          Ответить
          • https://otvet.mail.ru/question/49724105

            Собственно оттуда я про него и узнал.
            Ответить
            • > Скретч 1 был написан на языке Squeak
              Smalltalk жив...
              Ответить
            • правильно

              я всегда задаю вопросы про программирование на ответ мейл ру
              там лучше чем на СО
              Ответить
          • > Его в школах уже начали юзать?
            Давно как-бы. С класса пятого-шестого.
            Ответить
            • Где?
              Ответить
              • В школах.
                Ответить
                • Во всех школах? Это часть школьной программы?
                  Ответить
                  • Нет, но один из четырёх популярных способов объяснять азы. Скрэтч, два варианта лого и ардуинки.
                    Ответить
                    • А тот же Бейсик чем плох?
                      Ответить
                      • «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации» - Э. Дейкстра
                        Ответить
                        • Хорошо, что я в свои шесть лет его толком не выучил.
                          Ответить
                        • Хорошо, что я не программист.
                          Ответить
                        • Хорошо, что я хомячок и бейсик мне не повредил.
                          Ответить
                        • Хорошо, что мне изначально некуда было деградировать, и Бейсик мне не мог повредить.
                          Ответить
                        • Хорошо что я гость
                          Ответить
                    • Блин, не тупите. Я спросил его http://govnokod.ru/20357#comment339252 где используется этот язык, а не какой это способ. Где это применяется и в каких количествах, ферштейст?
                      Ответить
                      • В гугле забанили? Первая ссылка по запросу scratch информатика: http://goo.gl/tRD5hp
                        Ответить
                        • Забанили. Вы же это г принесли.

                          >Эту программу разработал Громко Григорий Юрьевич, учитель информатики, Украина.
                          Аж в одной школе?
                          Ответить
                          • Это блин одна программа. Используют её скорее всего несколько школ. Если пробежаться по первой странице гугла, находятся как минимум 7 школ, которые это юзают в программе. Реальное количество, скорее-всего на порядки выше. Если считать количество отзывов оставленные к урокам на педпорталах, то за тысячу школ хоть раз юзали. Точное количество школ, которые официально включили это в программу не скажу, так как система Электронная Школа, это адское уёбище.
                            Ответить
                            • >Ко-ко-ко
                              Ясно. Для сравнения - пасцаль в старших классах используется почти везде.
                              Ответить
                  • В некоторых.
                    Ответить
    • А почему на последнем скрине стрелка на цикле не в ту сторону?
      Ответить
      • Неужели у них есть реверс порядка выполнения? Т. е. блоки могут выполняться не только сверху вниз, но и снизу вверх?
        Ответить
        • А что, удобно для обработки исключений... Бросаешь исключение, код начинает исполняться в обратном порядке и разлеплять пельмени.
          Ответить
          • start transaction... rollback
            Ответить
          • А ведь для этого нужно инвертировать не только порядок, но и действие операторов: инкременты менять на декременты, сдвиг влево на сдвиг вправо и т. п. А поскольку некоторые операторы не позволяют восстановить предыдущее значение, то ради них его придётся хранить в отдельной ячейке (были программируемые микрокалькуляторы, которые при вычислении синуса регистра X помещали аргумент в резервный регистр X1, а только потом затирали X новым значением; при необходимости аргумент можно было восстановить из X1 специальной командой).

            Насколько сложно реализовать компилятор/интерпретатор с возможностью реверса выполнения (с минимальным использованием дополнительных ячеек для восстановления)?
            Ответить
            • ШОК! Большинство паролей пользователей интернета оказались взломаны. Как оказалось, преступники воспользовались уязвимостью в системе аутентификации, которую используют большинство сайтов — хранение хеша пароля в базе. Как нашему агентству рассказал эксперт по безопасности, злоумышленники действовали хитро: они запускали программу для вычисления хеша под дебаггером, останавливали её после вычислений, заменяли вычисленный хеш в памяти на интересующий их и бросали исключение. В результате отмены действий, злоумышленники получали оригинальный пароль.
              Ответить
              • >они запускали программу для вычисления хеша под дебаггером, останавливали её после вычислений

                >заменяли вычисленный хеш в памяти на интересующий их и бросали исключение.

                Не пойму чего все плуюсуют. Это не взлетит.
                Контекст-стейт машины хранит инфу для другого хеша.
                Ответить
                • Плюсующие любят читать Говнокодик при свете зелёной лампы, поэтому весь текст воспринимают как сарказм. А зелёный текст вообще не видят, ибо в свете зелёной лампы белый становится зелёным, а зелёный текст сливается с фоном.
                  Ответить
                  • Не весь сарказм достоен плюсов. Он же тупо не будет работать.

                    Это будто подставить аргументы функции, но забыть сменить её контекст (захваченные извне переменные).
                    Ответить
                    • > Не весь сарказм достоен плюсов. Он же тупо не будет работать.
                      Я бы удивился, если бы он работал. На то он и сарказм.
                      Ответить
            • > возможностью реверса выполнения
              Есть такая хрень, как обратимая логика (g: ccnot gate). Но вот можно ли на ней замутить проц - х.з.
              Ответить
              • Для начала можно попытаться сэмулировать эту хрень: написать какой-нибудь ассемблер или стековый язык. Тогда порядок атомарных операций можно будет реверсировать.

                Меня пока пугает сама реализация этих операций. Для реализации XOR в CNOT нужно хранить значение одного из входных данных. Если мы делаем подряд несколько XOR'ов, то все эти дополнительные «выходы» придётся складывать в какой-нибудь стек, что приведёт к росту потребления памяти.

                Самое главное, что идея Soul_re@ver'а не сработает: мы можем подменить вычисленный хэш нашим, но нам нужно откуда-то брать ещё состояния этих лишних выходов (количество которых зависит от длины пароля). Если мы хэш подменим, а эти лишние выходы оставим, то после реверса получим питушню.
                Ответить
                • > лишние выходы
                  А там с ними как раз и засада. Вот эти выходы, как раз уничтожают информацию и греют схему.
                  Ответить
            • Был такой разработчик первого ЯП высокого уровня (plankalkul) - Zuse звали. Он так же доказал возможность обратимых вычислений.
              Ответить
              • Был такой
                в Германии, в конце 30х
                Вам ли не знать
                Ответить
              • Plankalkül
                :)
                Ответить
              • А что там доказывать? Это ведь однозначно обратимо только для подмножества всех существующих программ. Как сортировку обратить? Или хэш?
                Ответить
                • > Как сортировку обратить?
                  Записать совершённые перестановки и вернуть тупл (отсортированный_массив, перестановки).
                  Ответить
                  • Ну если все действия логгировать, то конечно все можно обратить. Только зачем?
                    Ответить
                  • Есть сортировки без перестановок, например сортировка подсчетом, то уже хуй. По-хорошему, обратная сортировка должна возвращать все возможные кобенации(перестановки) из элементов того сортированного массива. А если на вход обратной сортировки передать несортированный массив, то должен быть UB
                    Ответить
                  • О кстати, принципиально новый алгоритм сортировки. Если надо отсортировать массив чисел uint8_t
                    uint8_t massiv[] = {21,35,31,74,18,...};

                    тогда берем множество простых чисел, и пронумеруем их от 0 до 255 в массив
                    например 2 это нулевое простое число, 3 - 1, 5 - 2, 7 - 3. Короче, делаем массив такой
                    uint16_t primes[] = {2,3,5,7,11,13,17...};

                    И потом все числа из массива берем через
                    uint512_t product = 1;
                    product *= primes[massiv[0]];
                    product *= primes[massiv[1]];
                    product *= primes[massiv[2]];

                    только в цикле. А потом факторизуем на квантовом компьютере
                    Ответить
                    • Зачем велосипеды? Есть же Quantum Bogosort: http://c2.com/cgi/wiki?QuantumBogoSort
                      Ответить
                • А если обратить выхлоп ГПСЧ, то можно намагнитить всякие счетчики именно так, как оны были намагничены до того, как данный ГПСЧ был сгенерирован.
                  Ответить
            • Интересный вопрос. Тут еще интересно что откатывать? Каждое вычисление по отдельности или пак? Если пак, то достаточно сохранить стейт регистров и записи в память [STM/ Intel TSX?]

              Если по-отдельности, то главное с плавающим питухом не связываться. Плюс часть данных мы просто выкидываем.

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

              Они херятся. Если их хранить, а также флоу программы, то всё АЛУ обратимо.
              Конечно с динамическими goto (указателями на функции) будет трудновато, но при правильной парадигме думаю это не составит трудностей.
              Ответить
            • >Насколько сложно реализовать компилятор/интерпретатор с возможностью реверса выполнения (с минимальным использованием дополнительных ячеек для восстановления)?

              Допустим в целочисленном обратимом DCT важным свойством является dynamic range expansion.
              То есть сколько бит добавляется к результату, чтобы он оставался обратимым.

              Так и здесь.
              range expansion сложения/вычитания - 1 бит
              Каждое умножение 2х 32 битных даёт 64 бита. Таким образом если мы построим систему типов так что
              i32+i32=i33=union[i32,carry_flag]
              i32*i32=i64
              i64/i32=[i32,i32]

              И не будем херить неиспользованные в дальнейшем переменные (в смысле нужно строить дерево зависимостей переменных и хранить только его листья).

              А имея два потомка нетрудно вычыслить обратным преобразованием узел дерева обратными преобразованиями.

              Допустим
              var a:i64,b:i32,d:i32;
              c=a/b;  //остаток остался неиспользованным - лист дерева
              d+=c;   //перенос остался неиспользованным - лист дерева
              return c; //d остался неиспользованным - лист дерева

              Ну как-то так. Надеюсь понятно написал.
              Ответить
    • Ты бы еще написал что это такое.
      Ответить
    • как по мне, лучше бы в образовании сильнее фокус делали на умение писать и изложение своих мыслей. и в общем полезно, и от этого 1-2 шага до программирования.
      Ответить
      • Формализацией мышления занимается больше математика, нежели залитые водой сочинения по литературе о душевных терзаниях Германна.
        Ответить
        • формализация мышления ортогональна способности связные 10-15 предложений (или строчек кода) написать.

          как "прикладной математик", я знавал также "настоящих математиков" которые просто в принципе не способны программировать. (но сегодня их всех уже заставляют программировать и совсем не способные уже редки.) потому что математический язык далек от языков программирования. последние намного ближе к естественным языкам, и представляют последовательность действий (типа: кулинарный рецепт). в то время как мат язык декларативен и представляет произвольное множество фактов/предикатов, которые часто сидят глубоко в контексте (типа: теорема + кучка аксиом и следствий, в середине Нго тома мат анализа).

          конечно есть и языки основанные на мат языке - функциональщина. но для того что бы мат язык выучить, нужно относительно долго математику изучать. в то время как естественные языки мы начинаем учить с самого детства.
          Ответить
          • > языки основанные на мат языке
            PHP? Как код увидишь - так понимаешь, что мата не хватает.
            Ответить
            • трехэтажная матерщина это тоже форма высшей математики.
              Ответить

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