1. Список говнокодов пользователя vistefan

    Всего: 40

  2. Куча / Говнокод #24645

    0

    1. 1
    2. 2
    3. 3
    4. 4
    def $qmark = 1
    def ? = 1
    
    // Error:(2, 6) method ? is defined twice

    Scala-way

    vistefan, 21 Августа 2018

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

    −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
    Чуваки, давайте тред про книги.
    
    Сейчас как раз хочу выбрать книгу младшему брату (14yo) какое-нибудь интро
    в программирование, такое же волшебное, как книга Ларри, только попроще тех-
    нически, где бы объяснялось, что переменная — это ебучая «ячеечка памяти»,
    и всё такое. Только я подумал лучше сначала дать что-нибудь компилируемое,
    а то потом хрен переучишь, как вы на это смотрите? Сразу на ум приходят книги
    Вирта, но у паскаля сейчас с инфраструктурой пиздец, и на линуксе его компи-
    лить как-то не нативно. (GNU Pascal почил, а заставлять брата патчить кде рано).
    
    У меня у самого опыт перекошенный, я начинал с VB, потом перешел на Pascal,
    но книги попадались отстойные.
    
    Короче, нужен ваш совет.
    Особенно, великих наставшиков roskomgovno, roman-kashitsyn и bormand, и всех
    остальных. Кроме Стертора.

    vistefan, 16 Июля 2018

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

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    // Making Wrong Code Look Wrong
    // by Joel Spolsky
    // https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong/
    
    us = UsRequest("name")
    usName = us
    recordset("usName") = usName
    sName = SFromUs(recordset("usName"))
    WriteS sName

    В упомянутой роскомговном статье «Making Wrong Code Look Wrong» Спольски упоминает венгерскую нотацию, как способ to make wrong code look wrong.
    Я хотел бы обсудить ЯП, в котором поверх (допустим, динамической) системы типов есть некоторый набор правил, основанный на Apps Hungarian. У переменных и функций сравниваются префиксы, и язык не даёт тебе присвоить количество мух в переменную, которая хранит количество слонов, хотя и то и то — int. Если же ты знаешь, что делаешь, можно использовать функции вида <prefix>From<suffix> и <prefix>To<suffix>, причем во избежание бойлерплейта, можно положить все такие функции существующими и тривиальными (возвращающими входное значение), если не определено другое.

    Что хорошего и плохого было бы в таком языке? Дискасс.

    vistefan, 11 Июля 2018

    Комментарии (18)
  5. PHP / Говнокод #24451

    −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
    if (isset($_GET['org'])) {
    $org=htmlspecialchars($_GET["org"]);
    }
    else $org=1;
    if ($num_resultsdop) {
    $sql = "SELECT * FROM `baza`, `sankomerc`, `sandop` WHERE baza.id='$org' and sankomerc.id='$org' and sandop.id='$org'";
    }
    else {
        $sql = "SELECT * FROM `baza`, `sankomerc` WHERE baza.id='$org' and sankomerc.id='$org'";
    }
    $row = mysql_fetch_array($result);
        $chotz=$row['chotz'];
        $nazvanie=$row['nazvanie'];
        $nazvaniech=$row['nazvanie'];
    
        //типографим название
        $typograph->set_text($nazvanie);
        $nazvanie = $typograph->apply();
        $nazvanienotags = strip_tags($nazvanie);

    SEO: #nazvanienotags

    SemaReal, помнишь, я тебе говорил, что летом скорее всего перейду на другую работу или восстановлюсь в универе?
    Тогда моя претензия была в том, что используют устаревающий Yii2, что нет CI, нет тестов…
    После импровизированного отпуска я пришёл, и получил проект, пример реального кода из которого ты видишь.

    vistefan, 06 Июля 2018

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

    −7

    1. 1
    2. 2
    3. 3
    4. 4
    Что случилось с SemaReal? Я не успевал следить из-за спама.
    Его взломали, или он сам по приколу взорвался?
    СёмаРиал, отзовись с того акка, ты в целом на сайте, или нет?
    А может он доступ проебал...

    vistefan, 20 Апреля 2018

    Комментарии (8)
  7. PHP / Говнокод #23919

    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
    public function insert(array $data)
    {
        $hstoreData = array();
        if (isset($data['description'])) {
            $hstoreData['description'] = $data['description'];
            unset($data['description']);
        }
        if (isset($data['developer'])) {
            $hstoreData['developer'] = $data['developer'];
            unset($data['developer']);
        }
        if (isset($data['localizer'])) {
            $hstoreData['localizer'] = $data['localizer'];
            unset($data['localizer']);
        }
        if (isset($data['gameplay_video'])) {
            $hstoreData['gameplay_video'] = $data['gameplay_video'];
            unset($data['gameplay_video']);
        }
        if (isset($data['news_community_id'])) {
            $hstoreData['news_community_id'] = $data['news_community_id'];
            unset($data['news_community_id']);
        }
        if (isset($data['bg_color'])) {
            $hstoreData['bg_color'] = $data['bg_color'];
            unset($data['bg_color']);
        }
        if (isset($data['bg_image'])) {
            $hstoreData['bg_image'] = $data['bg_image'];
            unset($data['bg_image']);
        }
        if (isset($data['bg_link'])) {
            $hstoreData['bg_link'] = $data['bg_link'];
            unset($data['bg_link']);
        }
        $result = parent::insert($data);
        $this->updateByID($result, $hstoreData);
        return $result;
    }

    Это зачем, интересно?

    vistefan, 13 Марта 2018

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

    −7

    1. 1
    Ещё один тред обсуждения несбыточного мифического «нового ГК»

    Такие мысли появиласть в результате флеймов с 1024-- и вообще.

    На новом говнокоде вместо модерации должены быть:
    1. Механизм скрыльничества на уровне сайта/api
    2. Как на имиджбордах, все посты и комменты должны подчищаться из базы после определенного скрока давности, чтобы не нужно было вмешательство никаких админов и модераторов. Это хорошо решает проблему любых набегов. Но некоторые посты пользователи могут пометить как важные, которые не следует удалять. Для этого они должны выразить такое желание в явной форме, например, нажимая на кнопку «cохранить». Проблема в том, что ботоводы могут сохранять свои комменты и посты скриптами, поэтому нужно ввести хорошую капчу и какой-то сложно вычислимый DRM, вычисляя который ты приносишь пользу новому ГК в любой форме. Это либо вычисление биткоинов на кошелёк, с которого оплачивается хостинг, либо ещё какая-то форма принесения пользы сообществу. Вот об этом и предлагаю поговорить: в каких формах вообще можно принести пользу ГК, так, чтобы для оценки пользы и подтверждения факта принесения пользы не требовалось вмешательство модераторов и админов?

    Срать в текущих, ещё не умерших разделах, это никак не помешает, но мусор достаточно быстро потрётся и останутся только те комменты, которые сообщество считает полезными. Кроме того, думаю, если спамер окупает свои действия полезной работой по отношению к сайту (например, оплачивает хостинг), он имеет полное право спамить, потому что механизмы скрытия доступны всем из коробки.

    vistefan, 08 Марта 2018

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

    +1

    1. 1
    2. 2
    3. 3
    Баг в railroad diagram, описывающей strling literal в JS (из книги Крокфорда Javascript: The Good Parts).
    
    https://i.imgur.com/8QFMrIQ.png

    Эквивалентно регулярке
    (\"([^\"^\\]|\\([\"\'\\\/bfnrt]|u[\d]{4}))*[^\"^\\]+\"|\'([^\'^\\]|\\([\"\'\\\/bfnrt]|u[\d]{4}))*[^\'^\\]+\')

    Ставить [ code ] боюсь, парсер уже починился?
    Ну, в общем, видно, что при таком раскладе, как на диаграмме, строковой литерал не может заканчиваться эскейп-последовательностью, что в действительности не так. Классический случай "something\n".

    vistefan, 06 Марта 2018

    Комментарии (214)
  10. JavaScript / Говнокод #23858

    −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
    var i, j;
    
    loop1:
    for (i = 0; i < 3; i++) {      //The first for statement is labeled "loop1"
       loop2:
       for (j = 0; j < 3; j++) {   //The second for statement is labeled "loop2"
          if (i === 1 && j === 1) {
             continue loop1;
          }
          console.log('i = ' + i + ', j = ' + j);
       }
    }

    Метки в js. Баян?
    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label

    vistefan, 03 Марта 2018

    Комментарии (6)
  11. JavaScript / Говнокод #23851

    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
    // ==UserScript==
    // @name     syomaGKignore
    // @description x-cross to ban GK users for syoma
    // @version  0
    // @match    http://govnokod.ru/*
    // @match    http://www.govnokod.ru/*
    // @grant    none
    // ==/UserScript==
    
    
    window.addEventListener('load', function() {
      localStorage.setItem('banned', localStorage.getItem('banned') || JSON.stringify([]));
      
      var banned = JSON.parse(localStorage.getItem('banned'));
      for (var i = 0; i < banned.length; i++) {
        var hide = document.querySelectorAll('.entry-author a[href$="/' + banned[i] + '"]');
        for (var j = 0; j < hide.length; j++) {
          hide[j].parentNode.parentNode.parentNode.style.display = 'none';
        }
      }
      
      var count = document.querySelector('.enrty-comments-count');
      count.style.cursor = 'pointer';
      count.addEventListener('click', function() {
        localStorage.setItem('banned', JSON.stringify([]));
        location.reload();
      });
      
      var votes = document.querySelectorAll('.comment-vote');
      for (var i = 0; i < votes.length; i++) {
        
        var cross = document.createElement('div');
        cross.innerHTML = '☓';
        
        cross.style.display = 'inline-block';
        cross.style.color = 'black';
        cross.style.marginLeft = '10px';
        cross.style.cursor = 'pointer';
        
        cross.addEventListener('click', function() {
          var id = this.parentNode.querySelector('.entry-author a').href.replace(/^.*\//, '');
      		var banned = JSON.parse(localStorage.getItem('banned'));
          if (banned.indexOf(id) < 0)
          	banned.push(id);
          localStorage.setItem('banned', JSON.stringify(banned));
          location.reload();
        });
        
        votes[i].parentNode.insertBefore(cross, votes[i]);
      }
    });

    Крестик для Сёмы на чистейшем JS, без $ и сложных евентов на аяксы. Работает только на страницах конкретных постов (другие и не нужны, с бормандстока кликнул по ссылке — попал куда надо), и только после полной загрузки страницы. Разбанить всех — это клик по цифре с общим количеством комментариев под постом, рядом со ссылкой на RSS.

    vistefan, 02 Марта 2018

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