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

    −5

    1. 1
    Эмуляторы

    Объясните пожалуйста, почему пишут эмуляторы всяких там GBA, но нет ни одного транслятора в самодостаточную программу? И почему все заботься о том, что бы эмулятор работал с такой же скоростью, как и настоящий процессор?

    dm_fomenok, 17 Мая 2018

    Комментарии (50)
  2. Куча / Говнокод #24262

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    ...
         F = fun(S) ->
                  ets:give_away(Table, NewOwner),
                  S
              end,
          sys:replace_state(OldOwner, F)
    ...

    Паттерн steal

    CHayT, 15 Мая 2018

    Комментарии (31)
  3. Куча / Говнокод #24253

    +1

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    // https://github.com/Navadvipa-Chandra-das/prabhupada_calendar/blob/master/source/Prabhupada_convert.d
    
        bool день_ли_это;
        Тип_строки вид_строки;
        
        Класс_Хитрый_накопитель Хитрый_накопитель = new Класс_Хитрый_накопитель( !Нужно_ли_удалять_пустые_дни, !Нужно_ли_удалять_пустые_дни_окончания_поста, Выходной_файл );
        // цикл не простой, а с меткой "цикл"
        цикл: while ( ( строка = Входной_файл.readln() ) !is null ) {
    
          if ( Нужно_ли_удалять_служебные_строки ) {
            if ( строка.length < 3 )
              // чудо, а не возможность! Можно делать любые переходы и вылеты из множества вложенных циклов!
              continue цикл;
            служебная_строка = matchFirst( строка, выражение_служебная_строка );
            if ( служебная_строка.captures.length > 0 )
              continue цикл;
          }
        
          день_месяца = matchFirst( строка, выражение_день );
          день_ли_это = день_месяца.captures.length > 0;
          
          if ( день_ли_это ) {
            вид_строки = Тип_строки.День;
            if ( Нужна_ли_табуляция ) {
              строка = "\t"c ~ день_месяца.captures[ 1 ] ~ "\t"c ~ день_месяца.captures[ 2 ]              ~ "\t"c ~ день_месяца.captures[ 3 ] ~
                       "\t"c ~ день_месяца.captures[ 4 ] ~ "\t"c ~ день_месяца.captures[ 6 ].stripRight() ~ "\t"c ~ день_месяца.captures[ 7 ] ~
                       "\t"c ~ день_месяца.captures[ 8 ] ~ "\t"c ~ день_месяца.captures[ 10 ];
              // обрабатываем "звездочку" поста
              if ( день_месяца.captures[ 11 ].indexOf( '*' ) != -1 )
                строка ~= "\t*"c;
              строка ~= "\n";
            }
            // Удаляем, при желании комментрий к Экадаши - подходит для поста и не додходит для поста. Все равно есть еще символ звездочка и
            // строка с именем Экадаши и явным упоминанием о посте!
            if ( Нужно_ли_удалять_комментарий_Экадаши ) {
              строка = replaceFirst( строка, выражение_для_чистки_комментария_Экадаши, ""c );
            }
          } else {
            проверка_месяца = matchFirst( строка, выражение_месяц_ли_это );
            if ( проверка_месяца.captures.length > 0 ) {
              вид_строки = Тип_строки.Месяц;
              // Просто удаляем цепочку начальных пробелов в строках месяца, если готовим табуляцию
              if ( Нужна_ли_табуляция )
                строка = replaceFirst( строка, выражение_цепочка_пробелов_в_начале_строки, ""c );
            } else {
              // Заменяем цепочку пробелов вначале строки на один единственный символ табуляции для праздников, но только если нужна табуляция
              пробелы_в_начале_строки = matchFirst( строка, выражение_цепочка_пробелов_в_начале_строки );
              if ( пробелы_в_начале_строки.captures.length > 0 ) {
                окончание_поста = matchFirst( строка, выражение_окончание_поста );
                if ( окончание_поста.captures.length > 0 )
                  вид_строки = Тип_строки.Окончание_поста;
                else
                  вид_строки = Тип_строки.Праздник;
                if ( Нужна_ли_табуляция )
                  строка = replaceFirst( строка, выражение_цепочка_пробелов_в_начале_строки, "\t"c );
              } else
                вид_строки = Тип_строки.Солнце;
            }
          }
    
          // Удаляем строки из тире и GCal, но только если нужна табуляци. В книге они не нужны.
          // Можно указать номер версии программы GCal в колонтитулах книги при желании
          if ( Нужна_ли_табуляция ) {
            if ( вид_строки == Тип_строки.Месяц )
              строка = replaceAll( строка, выражение_для_чистки_Месяца, ""c );
            if ( вид_строки == Тип_строки.Солнце )
              строка = replaceAll( строка, выражение_для_чистки_Солнца, ""c );
          }
          
          // Переводим сначала фразы. Длительная операция, так как переводятся все имеющиеся фразы, не зависимо от того, встречаются ли они в строке или нет
          foreach ( ref фраза; фразы )
            строка = replaceAll( строка, regex( фраза ), _Словарь_фраз[ фраза ] );
    
          // Переводим слова. Быстрее, так как переводятся только те слова, которые встречаются в данной конкретной строке
          слова = std.regex.split( строка, выражение_разделитель );
          // сортируем, чтобы короткие слова не позаменялись в более длинных словах внутри
          // Вдохнули поглубже! Такого чуда я еще не видел! Не иначе как mixin в действии!
          слова.sort!( "a.length > b.length" );
          foreach ( ref слово; слова )
            if ( слово.length > 0 )
              строка = replaceAll!( Чудо_слов )( строка, regex( слово ) );
          
          Хитрый_накопитель.В_копилку( строка, вид_строки );
        }
        // Пропихнем в файл последнюю строку
        Хитрый_накопитель.В_копилку( ""c, Тип_строки.День );
    
        window.showMessageBox( UIString.fromId( "ЧЕСТЬ_ИМЕЮ_ДОЛОЖИТЬ"c ),
                               UIString.fromId( "ЗАДАНИЕ_ВЫПОЛНЕНО!"c ) );
    }

    Кришнаит, пишущий на языке D в стиле 1С

    j123123, 12 Мая 2018

    Комментарии (10)
  4. Куча / Говнокод #24228

    −2

    1. 1
    2. 2
    Золотце
    https://lj.rossia.org/users/sadkov/103320.html?nc=55

    OpenGL - говно опенсурсное
    Попытался реализовать getPixel и putPixel на OpenGL, в результате получение одного пикселя занимает болшьшую часть времени выполнения программы. Другие люди тоже жалуются на тормознутость функций OpenGL, вроде glDrawPixels и glReadPixels

    https://stackoverflow.com/questions/39821850/why-is-glreadpixels-so-slow-and-are-there-any-alternative
    https://stackoverflow.com/questions/36534933/gldrawpixels-vs-textures-to-draw-a-2d-buffer-in-opengl

    >glDrawPixels is known to be very slow

    Зачем вообще нужно все это 3d ускорение? В DOS все было идеально:
    ((uint8_t*)(0xB8000))[y*320+x] = pixel

    почему нельзя современным программам предоставить такой 0xB8000 адрес и пару регистров вывода? Зачем все эти ритуалы? И да, MMU и protected mode значительно замедляют доступ к памяти, посему современный DOS работал бы на порядок быстрей Windows/Linux. Протекция памяти оправдана только на этапе разработки программы, а для release билда ее лучше отключить, чтобы иметь прямой доступ к реальной памяти.

    И я не одинок в негодовании:
    https://stackoverflow.com/questions/39430404/drawing-pixels-in-opengl

    >I'm using integrated GPU (Intel HD graphics 4000), as far as I know CPU and GPU share the same memory so why is it that I need to download? Why is it impossible to get a pointer?

    Начинаю думать, что Unabomber был прав во всем - надо к чертям взорвать офисы мразотных бюрократов из Khronos Group.

    j123123, 05 Мая 2018

    Комментарии (48)
  5. Куча / Говнокод #24221

    −6

    1. 1
    Бомбёж по поводу Telegram

    Вот что бы там не говорили про право на тайну переписку, а у него есть важное ограничение, о котором все забыли: если человек подозревается в преступлении, то государство имеет полное моральное и юридическое право читать его переписку. А вот Пашка Дуров об этом не знает, либо знает, но намеренно это игнорирует, а потом тысячи глупых хомячков бросают из окон самолётики и обвиняют РКН. Я вот полностью поддерживаю международное уголовное преследование Пашки за пособничество терроризму.

    dm_fomenok, 04 Мая 2018

    Комментарии (45)
  6. Куча / Говнокод #24194

    −6

    1. 1
    https://github.com/syn2cat/pidor

    dm_fomenok, 24 Апреля 2018

    Комментарии (4)
  7. Куча / Говнокод #24182

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    <!DOCTYPE html>
    <html>
     <head>
      <title></title>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <link rel="stylesheet" href="css/style.css">
      <!--[if IE]>
       <script src="https://raw.githubusercontent.com/aFarkas/html5shiv/master/dist/html5shiv.min.js"></script>
      <![endif]-->
      <style>
       article, aside, details, figcaption, figure, footer,header,
       hgroup, menu, nav, section { display: block; }
      </style>
     </head>
     <body>
      <form id="form">
        <input type="date">
        <input id="inp" type="email" required>
        <input type="submit">
      </form><br>
      <section itemtype="http://data-vocabulary.org/Person" itemscope>
        <h1 itemprop="name">Mark Pilgrim</h1>
        <p><img itemprop="photo" src="http://www.example.com/photo.jpg" alt="[me smiling]"></p>
        <p><a itemprop="url" href="http://diveintomark.org/">weblog</a></p>
      </section>
      <progress id="pg" value="50" max="100">
        <br>
    
      <script>
        let forward = true;
        function pgset() {
          if(forward) {
            pg.value = +pg.value + 1;
            if(+pg.value == 100)
              forward = false;
          }
          else {
            pg.value = +pg.value - 1;
            if(+pg.value == 0)
              forward = true;
          }
        }
        //setInterval(pgset, 100); //нахуй!
      </script>
     </body>
    </html>

    Куда мне ещё говно скидывать??

    fuckercoder, 21 Апреля 2018

    Комментарии (1)
  8. Куча / Говнокод #24181

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    <!DOCTYPE html>
    <html>
     <head>
      <title></title>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <link rel="stylesheet" href="css/style.css">
      <!--[if IE]>
       <script src="https://raw.githubusercontent.com/aFarkas/html5shiv/master/dist/html5shiv.min.js"></script>
      <![endif]-->
      <style>
       article, aside, details, figcaption, figure, footer,header,
       hgroup, menu, nav, section { display: block; }
      </style>
     </head>
     <body>
      <input id="inp" type="number" placeholder="num" min="-2" max="37" step="7" value="17">
      <br>
      <input type="button" value="+" onclick="plus()">
      <input type="button" value="-" onclick="minus()">
      <br>
      <div id="info"></div><br>
      <input id="rng" type="range" min="0" max="255" step="1" value="0" onchange="info2.innerHTML = rng.value; info2.style.color = 'rgb('+rng.value+','+0+','+rng.value+')'">
      <div id="info2"></div>
      <br>
      <input type="date">
      <input type="time">
      <br>
      <input type="search">
      <script>
        function plus() {
          inp.stepUp(3);
          Info();
        }
        function minus() {
          inp.stepDown(3);
          Info();
        }
        function Info() {
          info.innerHTML = inp.valueAsNumber;
        }
      </script>
     </body>
    </html>

    fuckercoder, 21 Апреля 2018

    Комментарии (0)
  9. Куча / Говнокод #24180

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    <!DOCTYPE html>
    <html>
     <head>
      <title></title>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <link rel="stylesheet" href="css/style.css">
      <!--[if IE]>
       <script src="https://raw.githubusercontent.com/aFarkas/html5shiv/master/dist/html5shiv.min.js"></script>
      <![endif]-->
      <style>
       article, aside, details, figcaption, figure, footer,header,
       hgroup, menu, nav, section { display: block; }
      </style>
     </head>
     <body>
      <div id="example">
      Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. Test test test test test. 
    </div>
    <style>
      #example {
        width: 300px;
    
        height: 200px;
    
        border: 25px solid #E8C48F; /* рамка 25px */
    
        padding: 20px;              /* поля 20px */
    
        overflow: auto;             /* прокрутка */
      }
    </style>
      <input type="button" value="Размер снизу" onclick="below()">
      <input type="button" value="Ширина полосы прокрутки" onclick="widthScroll(example)">
      <script>
        function below() {
          alert(example.scrollHeight-example.scrollTop-example.clientHeight);
        }
        function widthScroll(elem) {
          alert((elem.offsetWidth-(elem.clientLeft*2))-elem.clientWidth+'px');
        }
      </script>
     </body>
    </html>

    1488 плохое число

    fuckercoder, 21 Апреля 2018

    Комментарии (0)
  10. Куча / Говнокод #24179

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    <!DOCTYPE html>
    <html>
     <head>
      <title></title>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <link rel="stylesheet" href="css/style.css">
      <!--[if IE]>
       <script src="https://raw.githubusercontent.com/aFarkas/html5shiv/master/dist/html5shiv.min.js"></script>
      <![endif]-->
      <style>
       article, aside, details, figcaption, figure, footer,header,
       hgroup, menu, nav, section { display: block; }
    
       #moving-div {
        border: 5px groove green;
        padding: 5px;
        margin: 10px;
        background-color: yellow;
      }
      </style>
     </head>
     <body>
    
    Before Before Before
    
    <div id="moving-div">
    Text Text Text<br>
    Text Text Text<br>
    </div>
    
    After After After
    
    <script type="text/javascript">
      'use strict';
      let empty = document.createElement('div');
      let mdiv = document.getElementById('moving-div');
      let cs = getComputedStyle(mdiv);
    
      function clone_Node(elem) { //плохая релизация глючит:(((
        let r = document.createElement(elem.tagName);
        for(let k of getComputedStyle(elem)) {
          try {
            r.style[k] = getComputedStyle(elem)[k];
          }
          catch(e) { /*пофиг!*/ }
        }
        r.innerHTML = elem.innerHTML;
        return r;
      }
      let copy = mdiv.cloneNode(true);
    
      mdiv.style.opacity = '0';
    
      copy.style.position = 'absolute';
      copy.style.right = copy.style.top = 0;
      mdiv.after(copy);
    </script>
     </body>
    </html>

    хуй!

    fuckercoder, 21 Апреля 2018

    Комментарии (0)