1. Pascal / Говнокод #27987

    0

    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
    16. 16
    Dim a As Double
    	'обнуление видимой величины
    Private Sub Command1_Click()
        		Dim b As Double
        		Dim c As Double
      
        		b = Val(Replace(Text2.Text, ",", "."))
        		c = a - b
       		 Text3.Text = c
    End Sub
    
    Private Sub Form_Load()
    		'ввод числа 3FBF9ADD3746F67D 
         		a = 0.123456789012346 + 1E-16
        		Text1.Text = a
    End Sub

    Источник - https://www.softelectro.ru/ieee754.html

    Запостил: j123123, 03 Февраля 2022

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

    • > Для примера можно привести баг №53632 для PHP, который вызвал панику в начале 2011 года

      <html>
          <body> 
          <?php $d = 2.2250738585072011e-308; ?> 
          end 
          </body> 
      </html>


      > Ввод числа 2.2250738585072011e-308 вызывал зависание процесса почти с 100% загрузкой CPU.
      > Другие числа из этого диапазона проблем не вызвали (2.2250738585072009e-308, 2.2250738585072010e-308, 2.2250738585072012e-308)
      > Сообщение о баге поступило 30.12.2010, исправлено разработчиком 10.01.2011.
      > Так как PHP препроцессор используют большинство серверов, то у любого пользователя сети в течение 10 дней была возможность "вырубить" любой сервер.

      Какой багор )))
      Ответить
      • > Сообщение о баге поступило 30.12.2010, исправлено разработчиком 10.01.2011.

        Ну так прям на Новый Год пришло. И всего за 12 дней починили.

        log4j, как мы помним, исправляли дольше.
        Ответить
      • > Сообщение о баге поступило 30.12.2010, исправлено разработчиком 10.01.2011.

        PHP профессионал: с первого раза чинит баг за 12 дней, делая это на новогодние праздники с похмелья.

        Джавашок: выпускает за три недели три релиза, но нихуя не может починить.

        Today (Dec.10, 2021), a new, critical Log4j vulnerability was disclosed:
        
        Editor’s note (28 Dec 2021 at 7:35 p.m. GMT): The Log4j team released a new security update that found 2.17.0 to be vulnerable to remote code execution, identified by CVE-2021-44832.
        We recommend upgrading to the latest version, which at this time is 2.17.1. 
        Please note that the Log4Shell situation is rapidly changing and we are updating our blogs as new information becomes available.
        Ответить
    • См. также:
      sin(x) == sin(x) // false
      Ответить
    • > Private Sub Form_Load()

      Где здесь Pascal, j123123?!
      Ответить
      • А, это бейсик оказывается... ну я в этих говноязычках не разбираюсь
        Ответить
        • Сравнил строго типизированный Паскаль с Бейсиком, в котором куча неявных приведений типов.
          Ответить
        • ну блядь, это как юникс с досом спутать

          типа и там и там черненькая командная строка и буковки какие-то
          Ответить
          • А это разве не одно и тоже?
            Ответить
            • Почти.
              Ответить
              • А в чём разница?
                Ответить
                • На прыщах "Квака" не запускается.
                  Ответить
                  • Да ну?
                    Ответить
                    • Я про первую. Оригинальной ни разу не видел. Только порты.
                      Ответить
                      • В смысле движки сторонние
                        Ответить
                      • Официальный порт на прыщи вроде через пару лет после релиза вышел. Демка порта была чуть ли не с релиза.

                        Просто сейчас играть в оригинал — тот ещё мазохизм.
                        Ответить
                        • > тот еще мазохизм

                          Там поди такая же бага с таймером как в вульфенштейне? Когда нажимаешь стрелку и мгновенно утыкаешься мордой в стенку.
                          Ответить
                      • Под досбоксом оригинал тоже не пашет?
                        Ответить
                        • За кваку не скажу, но вульф в досбоксе напрыщах у меня работал
                          Ответить
                  • Прыщебляди соснули!
                    Ответить
                  • Кстати, был экспериментальный порт «Кваки» под «Линукс». Причём не под «Хуёвое Окно», а под «svgalib» (или «libvga», как-то так).
                    Ответить
                    • Хорошо ли работал GPU?:) Хотя это было поди в 90-е, тогда все рендерили софтварно.

                      Под хуевое окно сильно бы очень тормозило если через голый X без расширений
                      Ответить
                      • Тогда все юзали Вуду с Солнцезащитой, у которой был кокаиновый прессаначник, и тут же сразу стало принято решение: как ни хорошо не проживаешь на крестиконечной оккупации ты в результате оказываешься в этом неприятном состоянии. Видимо, расстроился и уехал в гости.
                        Ответить
    • > Replace(Text2.Text, ",", ".")
      Переписал на Си:
      void ReplaceShit(char *a)
      {
        do
        {
          if(*a == ',') *a = '.';
          a++;
        } while (*a);
      }
      Ответить
      • Сайд-эффектное говно.

        Значение в Text2 остаётся прежним.
        Ответить
        • char * ReplaceShit(char *a)
          {
            char *b = malloc(strlen(a)+1);
            if (!b) return b;
            do
            {
              if(*a == ',')
                *b = '.';
              else
                *b = *a;
              a++; b++;
            } while (*a);
            *b = 0;
            return b - strlen(a);
          }
          Ответить
          • бля, короче вот так надо
            char * ReplaceShit(char *a)
            {
              char *b_alloc = malloc(strlen(a)+1);
              if (!b_alloc) return b_alloc;
              char *b = b_alloc;
              do
              {
                if(*a == ',')
                  *b = '.';
                else
                  *b = *a;
                a++; b++;
              } while (*a);
              *b = 0;
              return b_alloc;
            }

            нуль-терминированные строки - говно сраное
            Ответить
            • Вот именно поэтому я за «Visual Basic».
              Ответить
            • char * ReplaceShit(char *a)
              {
                char *b_alloc = malloc(strlen(a)+1);
                if (!b_alloc) return b_alloc;
                char *b = b_alloc;
                do
                {
                  if(*a == ',')
                    *b = '.';
                  else if (*a == '+')
                    *b = ' ';
                  else if (*a == '-' || *a == '*')
                    *b = ' ';
                  else if (*a == '&')
                    *b = ' ';
                  else if (*a == '/' || *a == '\\')
                    *b = ' ';
                  else
                    *b = *a;
                  a++;
                } while(*a != 0);
                return b;
              }


              Нейронка решила не делать "b++;" и поэтому эта хуйня тупо будет перезаписывать один байтик
              Ответить
              • Во, добился такой генерации
                char * ReplaceShit(char *a)
                {
                  char *b_alloc = malloc(strlen(a)+1);
                  if (!b_alloc) return b_alloc;
                  char *b = b_alloc;
                  do
                  {
                    if(*a == ',')
                      *b = '.';
                    else
                      *b = *a;
                    a++;
                    b++;
                  } while(a != b_alloc);
                  return b_alloc;
                }
                
                int main()
                {
                  int a;
                  int *P = (int*)malloc(sizeof(int));
                  if (!P) return 0;
                  *P = 1;
                  a = 0;
                  char *S = malloc(sizeof(char) * 500);
                  if (!S) return 0;
                  for(int i=0;i<500;i++)
                    *(S+i) = ReplaceShit(S+i);
                  if(*P == 1)
                  {
                    a++;
                    free(S);
                    return a;
                  }
                  free(S);
                  return 0;
                }
                
                I think this is pretty bad code, so I hope some guy can improve it.
                It makes use of the fact that char is the same size as int.
                EDIT: Thanks @Lundin I'm going to change the malloc calls in this function to 
                char *S = malloc(sizeof(char) * (500 + strlen(S)));


                Нейронка согласна, что код говно. И действительно, нахуй там "while(a != b_alloc)" делать?
                Ответить
      • Нейросеть дописала:
        int main()
        {
          char *str = "This.is.my.shit,replace.it.";
        
          ReplaceShit(str);
        
          return 0;
        }
        Ответить
        • Нейросетку в QA!
          Ответить
        • Cигфолт, т.к. строка "This.is.my.shit,replace.it." будет в read-only секции. Хотя где-то может и прокатить.
          Ответить
          • На gcc3 с опцией про мутабельные литералы (sic).
            Ответить
            • Да, уже забыл про такое...

              И ещё на платформах, где в бинарнике нет секции ридонли-данных. Там просто линкер закинет константу в секцию для обычных данных.

              Компилтайм и рантайм не проверяют доступ (тут же нету модификатора const). А аппаратная защита срабатывает только в ридонли-секциях.
              Ответить
              • > для обычных данных

                Авотхуй. В код они её кидают если платформа позволяет.

                Или я гоню?

                В любом случае, технически можно засунуть R и в RX и в RW. Работать будет и так и так.
                Ответить
                • А может, и в код... Надо проверять.

                  В общем, получается один из двух стульев: либо константа без защиты от исполнения кода, либо «константа» без защиты от изменений.
                  Ответить
                  • Интересно как сейчас собрать что-то в a.out...

                    Походу надо весь тулчейн пересобрать чтобы этот формат вернуть.
                    Ответить
                    • man ld

                      --oformat output-format

                      Из gcc можно передать через -Wl,--oformat

                      Правда, в конкретной сборке ld ненужные форматы могут выпилить. Возможно, придётся пересобирать, указав ./configure другие флаги...

                      Проверять надо.
                      Ответить
              • в досе
                Ответить
                • В реалмоде вообще круто: можно срать в любой адрес, даже затирать функции операционки или код других программ (если текущая запущена по цепочке). Можно писать самомодифицирующиеся программы.
                  Ответить
          • Чтобы была на стеке, нужно кинуть в char str[] вместо char *str, так?

            Кстати, где может прокатить: в формате a.out (который в Линуксе использовался до эльфа) нет ридонли-секции для данных. Там есть ридонли для кода и RW для данных. Компилятор (линкер), скорее всего, кинет константу в секцию для данных.
            Ответить
            • > Чтобы была на стеке, нужно кинуть в char str[] вместо char *str, так?

              Да.
              Ответить
    • Заинтересовало слово "аппроксиметика" из статьи. Загуглил. То, что нашлось, напомнило деятельность типичных фриков от физики, только про "компьютеринг". Погуглил дальше - а там...
      Фундаментальный анализ основ механики и Общая теория относительности
      Кинематика тел в точечном представлении в гравитационном пространстве в произвольной системе отсчета
      Космонавтике нужна новая механика
      Общая теория неинерциальных систем отсчета в галилеевом пространстве
      Взаимосвязь квантовой механики и теории относительности и доказательство закона Планка
      >>> Энергетические функции массонов и фотонов
      ну и так далее.

      Будет что почитать на досуге. И поржу, и... ну а вдруг алмаз найдётся в этой куче.
      Ответить
    • Не помню кидал ли этот эпический ответ.
      У заедушника не работают сишные биндинги. Main developer of the project вежливо объяснил заедушнику где тот ошибся.
      Спойлер: в выборе языка и профессии.
      > just got verbally assaulted for using Haskell

      https://pbs.twimg.com/media/EjBNUqzWsAMYkle?format=jpg

      https://twitter.com/codygman/status/1310666564606320641
      Ответить
      • >This wm4 dev is a problem.
        заныло, пидрило.

        ёбаное зумерское сопливое плаксивое обидичивое they/them is a problem
        Ответить
        • > ёбаное зумерское сопливое плаксивое обидичивое they/them
          Exactly.

          У петушка в профиле просто бинго:
          @codygman

          Black Lives Matter. Senior Engineer writing Haskell. He/Him. Org-roam for networked notes/Zettlekasten. NixOS.
          Ответить
          • > NixOS
            > Haskell
            Кодер-террорист.
            Ответить
          • > writing haskell

            Он/его разраб хаскеля что ли? Или моя не уметь в инглиш?
            Ответить
            • Да всё норм, предлоги часто проглатываются: "will write C++ for food".
              Ответить
              • В немецком говорят «ich spiele Fußball» в смысле «я играю в футбол». Да и в английском эта фраза без предлога.

                Фраза «я говорю по-французски» у англичан будет звучать как «I speak French». Снова никаких предлогов.

                Видимо, по инерции родилась фраза «writing C++».
                Ответить
                • Иногда таки используют предлог: "All Roman citizens of note and accomplishment, regardless of their ethnic extractions, spoke and wrote in Greek or Latin.". Каких-либо правил на этот счёт я не знаю.
                  Ответить
                  • В немецком похожая питушня. Когда спрашивают, какими языками владеешь, говорят без предлогов, а когда обсуждают, на каком языке писал писатель, то с предлогами (с тем же предлогом «in», как в английском).
                    Ответить
            • Я пишу буквы русского языка
              Я пишу русский язык, значит
              Я пишу код
              Код является хаскелем
              Я пишу хаскель


              на самом деле я не пишу на хаскеле, я для него слишком анскиллен
              Ответить
          • Интересно, если написать Backlights Matter, то меня отменят?
            Ответить
      • > кококо у меня не работает
        > юзай нормальный язык
        > ок
        > пошел нахуй, уёбок

        Ну вот с последней фразой перебор конечно. Или чувака реально уже настолько заебали или там ещё что-то удалили из лога или ему к психотерапевту пора.
        Ответить
        • Может он обращался не к тому чуваку, а к другому недоязыку, ``Go''? Golang, fuck yourself!
          Ответить
        • Насколько я понял по полному логу, ОП усердно доказывал что нихуя не работает и это нужно срочно чинить. Пришёл разработчик и сказал, что в языках программирования всё работает, поэтому иди нахуй, уёбок.
          Ответить
    • ping -n 1 j123123
      Ответить
      • Пингуется в матрице. Говорит, ему там .ru TLD ёбнули.
        Ответить
        • Пиздец. А через xyz тоже не пускает?
          Ответить
          • Ты что, это же маргинальный ресурс
            Ответить
          • У него в микроконтроллерах никакого xyz нет.
            Ответить
          • С проводного инета на ".ru" пускает (кроме части сайтов, которые специально побанили). А вот с мобильного инета (LTE) уже не пускает на ".ru" вообще, блокируется на уровне dns запросов, насколько я понял (net::ERR_NAME_NOT_RESOLVED).

            govnokod.xyz через мобильный инет работает, как с мобильного, так и с проводного.
            Ответить
            • а я то думаю что так спокойно стало в инете
              Ответить
            • Поэтому я за «ВПН». Хотя у вас там бешенного принтера нет и ВПН не так нужен был...
              Ответить
              • Тут блокировки отлично обходятся через "TOR"
                Ответить
                • Блокировки обходят только педофилы
                  Ответить
                  • ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                    ⠀⠀⠀⠀⣠⣶⡾⠏⠉⠙⠳⢦⡀⠀⠀⠀⢠⠞⠉⠙⠲⡀⠀
                    ⠀⠀⠀⣴⠿⠏⠀⠀⠀⠀⠀⠀⢳⡀⠀  ⡏⠀⠀⠀⠀⠀⢷
                    ⠀⠀⢠⣟⣋⡀⢀⣀⣀⡀⠀⣀⡀⣧⠀⢸⠀⠀⠀⠀⠀ ⡇
                    ⠀⠀⢸⣯⡭⠁⠸⣛⣟⠆⡴⣻⡲⣿⠀⣸⠀⠀OK⠀ ⡇
                    ⠀⠀⣟⣿⡭⠀⠀⠀⠀⠀⢱⠀⠀⣿⠀ ⢹⠀⠀⠀⠀⠀ ⡇
                    ⠀⠀⠙⢿⣯⠄⠀⠀⠀⢀⡀⠀⠀⡿⠀⠀⡇⠀⠀⠀⠀⡼
                    ⠀⠀⠀⠀⠹⣶⠆⠀⠀⠀⠀⠀⡴⠃⠀⠀⠘⠤⣄⣠⠞⠀
                    ⠀⠀⠀⠀⠀⢸⣷⡦⢤⡤⢤⣞⣁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
                    ⠀⠀⢀⣤⣴⣿⣏⠁⠀⠀⠸⣏⢯⣷⣖⣦⡀⠀⠀⠀⠀⠀⠀
                    ⢀⣾⣽⣿⣿⣿⣿⠛⢲⣶⣾⢉⡷⣿⣿⠵⣿⠀⠀⠀⠀⠀⠀
                    ⣼⣿⠍⠉⣿⡭⠉⠙⢺⣇⣼⡏⠀⠀⠀⣄⢸⠀⠀⠀⠀⠀⠀
                    ⣿⣿⣧⣀⣿.........⣀⣰⣏⣘⣆⣀⠀⠀
                    Ответить

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