1. PHP / Говнокод #24589

    +1

    1. 001
    2. 002
    3. 003
    4. 004
    5. 005
    6. 006
    7. 007
    8. 008
    9. 009
    10. 010
    11. 011
    12. 012
    13. 013
    14. 014
    15. 015
    16. 016
    17. 017
    18. 018
    19. 019
    20. 020
    21. 021
    22. 022
    23. 023
    24. 024
    25. 025
    26. 026
    27. 027
    28. 028
    29. 029
    30. 030
    31. 031
    32. 032
    33. 033
    34. 034
    35. 035
    36. 036
    37. 037
    38. 038
    39. 039
    40. 040
    41. 041
    42. 042
    43. 043
    44. 044
    45. 045
    46. 046
    47. 047
    48. 048
    49. 049
    50. 050
    51. 051
    52. 052
    53. 053
    54. 054
    55. 055
    56. 056
    57. 057
    58. 058
    59. 059
    60. 060
    61. 061
    62. 062
    63. 063
    64. 064
    65. 065
    66. 066
    67. 067
    68. 068
    69. 069
    70. 070
    71. 071
    72. 072
    73. 073
    74. 074
    75. 075
    76. 076
    77. 077
    78. 078
    79. 079
    80. 080
    81. 081
    82. 082
    83. 083
    84. 084
    85. 085
    86. 086
    87. 087
    88. 088
    89. 089
    90. 090
    91. 091
    92. 092
    93. 093
    94. 094
    95. 095
    96. 096
    97. 097
    98. 098
    99. 099
    100. 100
    <?php
    error_reporting(0);
    ini_set('display_errors', '0');
    mb_internal_encoding('UTF-8');
    header('Access-Control-Allow-Origin: *');
    header('Content-Type: text/html; charset=utf-8');
    $string=mb_strtolower(trim($_REQUEST['q']));
    $string=str_replace('#', 'sharp', $string);
    $string=str_replace('++', 'plusplus', $string);
    preg_match_all('/(\w+)/u', str_replace('_', '', $string), $matches);
    $words=$matches[1];
    $bad=array();
    $good=array();
    foreach($words as $word){
    if(mb_strpos($word, 'java')!==false || mb_strpos($word, 'джав')!==false || mb_strpos($word, 'ява')!==false){
    if(mb_strpos($word, 'script')===false && mb_strpos($word, 'скрипт')===false){
    $bad[]='Java';
    }
    }
    if(mb_strpos($word, 'python')!==false || mb_strpos($word, 'питон')!==false || mb_strpos($word, 'пайтон')!==false){
    $bad[]='Python';
    }
    if(mb_strpos($word, 'perl')!==false || mb_strpos($word, 'перл')!==false || mb_strpos($word, 'пёрл')!==false){
    $bad[]='Perl';
    }
    if(mb_strpos($word, 'cplusplus')!==false || mb_strpos($word, 'сplusplus')!==false || mb_strpos($word, 'cpp')!==false){
    $bad[]='C++';
    }
    if(mb_strpos($word, 'csharp')!==false || mb_strpos($word, 'сsharp')!==false || mb_strpos($word, 'сишарп')!==false || mb_strpos($word, 'сшарп')!==false){
    $bad[]='C#';
    }
    if($word=='c' || $word=='си' || $word=='сях'){
    $bad[]='C';
    }
    if(mb_strpos($word, 'haskel')!==false || mb_strpos($word, 'хаскел')!==false){
    $bad[]='Haskell';
    }
    if(mb_strpos($word, 'pascal')!==false || mb_strpos($word, 'паскал')!==false){
    $bad[]='Pascal';
    }
    if(mb_strpos($word, 'delphi')!==false || mb_strpos($word, 'delfi')!==false || mb_strpos($word, 'делф')!==false || mb_strpos($word, 'дельф')!==false){
    $bad[]='Delphi';
    }
    if(mb_strpos($word, 'assembler')!==false || mb_strpos($word, 'asm')!==false || mb_strpos($word, 'ассемблер')!==false || mb_strpos($word, 'асм')!==false){
    $bad[]='Assembler';
    }
    if(mb_strpos($word, 'ruby')!==false || $word=='руби' || mb_strpos($word, 'рубист')!==false || mb_strpos($word, 'рубях')!==false){
    $bad[]='Ruby';
    }
    if(mb_strpos($word, '1c')!==false || mb_strpos($word, '1с')!==false || mb_strpos($word, '1ц')!==false){
    $bad[]='1C';
    }
    if(mb_strpos($word, 'dart')!==false || mb_strpos($word, 'дарт')!==false){
    $bad[]='Dart';
    }
    if(mb_strpos($word, 'linux')!==false || mb_strpos($word, 'линукс')!==false || mb_strpos($word, 'линух')!==false || mb_strpos($word, 'ubunt')!==false || mb_strpos($word, 'убунт')!==false || mb_strpos($word, 'debian')!==false || mb_strpos($word, 'дебиан')!==false || mb_strpos($word, 'freebsd')!==false || mb_strpos($word, 'фрибсд')!==false){
    $bad[]='Linux';
    }
    if(mb_strpos($word, 'unix')!==false || mb_strpos($word, 'nix')!==false || mb_strpos($word, 'юникс')!==false || mb_strpos($word, 'юних')!==false){
    $bad[]='Unix';
    }
    if(mb_strpos($word, 'jvm')!==false || mb_strpos($word, 'жвм')!==false){
    $bad[]='JVM';
    }
    if(mb_strpos($word, 'jsharp')!==false){
    $bad[]='J#';
    }
    if(mb_strpos($word, 'jplusplus')!==false){
    $bad[]='J++';
    }
    if(mb_strpos($word, 'git')!==false || mb_strpos($word, 'гит')!==false){
    if(mb_strpos($word, 'hub')===false && mb_strpos($word, 'хаб')===false && mb_strpos($word, 'lab')===false && mb_strpos($word, 'лаб')===false){
    $bad[]='Git';
    }
    }
    if(mb_strpos($word, 'svn')!==false || mb_strpos($word, 'свн')!==false){
    $bad[]='SVN';
    }
    if(mb_strpos($word, 'postgres')!==false || mb_strpos($word, 'постгр')!==false || mb_strpos($word, 'pg_')!==false){
    $bad[]='PostgreSQL';
    }
    if(mb_strpos($word, 'composer')!==false || mb_strpos($word, 'композер')!==false){
    $bad[]='Composer';
    }
    if(mb_strpos($word, 'bower')!==false || mb_strpos($word, 'бовер')!==false || mb_strpos($word, 'бауэр')!==false || mb_strpos($word, 'боуэр')!==false){
    $bad[]='Bower';
    }
    if(mb_strpos($word, 'node')!==false || mb_strpos($word, 'ноде')!==false || mb_strpos($word, 'нода')!==false){
    $bad[]='NodeJS';
    }
    if(mb_strpos($word, 'php')!==false || mb_strpos($word, 'пхп')!==false || mb_strpos($word, 'пых')!==false || mb_strpos($word, 'пэхапэ')!==false || mb_strpos($word, 'похапэ')!==false || mb_strpos($word, 'пехапе')!==false || mb_strpos($word, 'похапе')!==false || mb_strpos($word, 'эйч')!==false || mb_strpos($word, 'пшп')!==false){
    $good[]='PHP';
    }
    if(mb_strpos($word, 'mysql')!==false || mb_strpos($word, 'мускул')!==false || mb_strpos($word, 'майскул')!==false){
    $good[]='MySQL';
    }
    if(mb_strpos($word, 'windows')!==false || mb_strpos($word, 'виндовс')!==false || mb_strpos($word, 'шинд')!==false || mb_strpos($word, 'винд')!==false){
    $good[]='Windows';
    }
    }

    Запостил: HighVoltageDick, 06 Августа 2018

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

    • $bad=array_unique($bad);
      $good=array_unique($good);
      $cons=array('говно', 'для быдла', 'для чмошников');
      $pros=array('для элиты', 'непередаваемое наслаждение');
      $phrases=array();
      if(count($bad)>0){
      $phrase='';
      $i=1;
      shuffle($bad);
      foreach($bad as $word){
      $phrase.='"'.$word.'"';
      if($i==count($bad)-1){
      $phrase.=' и ';
      } elseif($i<count($bad)){
      $phrase.=', ';
      }
      $i++;
      }
      $phrase.=' - '.$cons[array_rand($cons)].'.';
      $phrases[]=$phrase;
      }
      if(count($good)>0){
      if(count($bad)>0){
      $phrase='А вот ';
      } else {
      $phrase='';
      }
      $i=1;
      shuffle($good);
      foreach($good as $word){
      $phrase.='"'.$word.'"';
      if($i==count($good)-1){
      $phrase.=' и ';
      } elseif($i<count($good)){
      $phrase.=', ';
      }
      $i++;
      }
      $phrase.=' - '.$pros[array_rand($pros)].'.';
      $phrases[]=$phrase;
      }
      if(count($phrases)>0){
      echo implode(' ', $phrases)."\nФакт.\n\nОтправлено с помощью \"PHP\".";
      }
      ?>
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • Добавь тогда уж и автоголосвалку. А то чо как быдло!
      Ответить
      • "Pascal", "Unix", "Bower", "1C", "SVN", "J++", "Dart", "NodeJS", "Perl", "C#", "PostgreSQL", "Ruby", "J#", "Haskell", "C++", "JVM", "Assembler", "Linux", "Composer", "Python", "Delphi", "Git" и "Java" - говно. А вот "MySQL", "Windows" и "PHP" - для элиты.
        Факт.

        Отправлено с помощью "PHP".
        Ответить
    • Я, HighVoltageDick, находясь в здравом уме и твердой памяти, торжественно заявляю:
      Ответить
    • HighVoltageDick, ты какой таймаут обновления поставил, пидор? Из-за тебя ГК лагать начал. Факт.
      Ответить
      • var cids=[];
        setInterval(function(){
        jQuery.get('/comments', function(response){
        var html=jQuery(response);
        var breaked=false;
        jQuery.each(html.find('.hentry'), function(){
        if(!breaked){
        var entry=jQuery(this);
        var username=jQuery.trim(entry.find('.entry-author').first().text());
        var comment=jQuery.trim(entry.find('.entry-comment').first().text());
        if(username!='HighVoltageDick'){
        var link=jQuery.trim(entry.find('.answer').first().attr('href'));
        var cid=link.split('replyTo=')[1];
        if(cids.indexOf(cid)==-1){
        cids.push(cid);
        jQuery.get(link, function(response2){
        var html2=jQuery(response2);
        var form2=html2.find('form').eq(1).serialize();
        jQuery.get('http://localhost/langs.php?q='+encodeURIComponent(comment), function(response3){
        if(jQuery.trim(response3)!=''){
        console.log(response3);
        jQuery.post(link, form2+'&text='+encodeURIComponent(response3));
        }
        });
        });
        }
        }
        }
        });
        });
        }, 10000);
        Ответить
        • Ничего не понимаю. Переведи на "PHP".
          Ответить
          • "PHP" - для элиты.
            Факт.

            Отправлено с помощью "PHP".
            Ответить
            • Я понял, что "PHP" - для элиты, а ты возьми да переведи.
              Ответить
              • "PHP" - для элиты.
                Факт.

                Отправлено с помощью "PHP".
                Ответить
                • Я понял, что "PHP" - для элиты, а ты возьми да переведи.
                  Ответить
        • Говно – PHP здесь ненужен, хватило бы одного жопаскрипта.
          Ответить
    • >>> Отправлено с помощью "P‎HP".
      Так это же пиздёж, получается. Это сгенерировано оно с помощью "P‎HP", а вот отправлено - очень даже с помощью "Ja‎vasc‎ript".
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • показать все, что скрытоvanished
      Ответить
    • отравлено с помощью "PHP"
      Ответить
    • $ugly[] = $urmom
      Ответить
    • >>> []=
      А это такая операция "push_back"?
      Ответить
    • А Lua как всегда никуда не попал.
      Ответить
      • Потому что никому кроме тебя и меня до него нету дела
        Ответить
        • Почему, его иногда вспоминают, когда шутят про итерацию с единицы
          Ответить
          • показать все, что скрытоvanished
            Ответить
          • Скорее уж про паскаль вспомниают, кмк про луа знает куда меньше народу
            Ответить
            • Странно, что именно про паскаль вспоминают, ведь индексом у массива может быть любой перечисляемый тип, даже char, и начинать индексацию тоже можно с любого значения. Разве что в типе string идёт индексация с 1, потому что в 0-м элементе хранится её длина.
              Ответить
              • Я паскаль не видел четверть века.
                Напомни пожалуйста как там поменять индексацию? директивой копелятора?
                Ответить
                • var a: array ['a'..'z'] of integer;
                  Ответить
                  • и правдаю. А так же можно [42..100] ?

                    значит, по умолчанию она там была с единицы

                    А еще так в VB(S), кажется.

                    В Lua вообще индексация штука забавная: там таблица может быть и массивом и словарем/мапой/хешем и объктом одновременно
                    Ответить
                    • показать все, что скрытоvanished
                      Ответить
                    • > А так же можно [42..100] ?
                      Любой перечислимый тип, "42..100" – тип диапазон, его тоже можно юзать, можно даже [byte] – эквивалентно [0..255], или даже [word] (помню что в TP это не работало, потому что макс рпзмер массива был чуть поменьше размера сегмента). В динамических массивах (array of integer) индексация с 0.

                      > В Lua
                      Там же всё таблы? Как реализовано? Всё – хэш-таблицы, независимо от того массив ли это, словарь, объект и пр.?
                      Ответить
                      • Да, таблы. Табла может быть массивом или словарем.
                        petux  = {"pit", "tux", kurochka="rjaba"} --это массив из двух элементов, а по ключу kurochka у нас ряба
                        
                        print(#petux) --"длина" массива у нас 2, бо оператор # считает до первой "дырки"
                        print(petux[1]) --pit
                        print(petux['kurochka']) --pit
                        Ответить
                    • показать все, что скрытоvanished
                      Ответить
                  • показать все, что скрытоvanished
                    Ответить
                    • Можно даже так:
                      type
                          huinya = (huinya1, huinya2, huinya3, huinya4, huinya5);
                          mas = array [huinya1..huinya3] of huinya;
                      Ответить
                      • Какой всё таки охуенный язык
                        Ответить
                        • ...похоронили
                          Ответить
                          • показать все, что скрытоvanished
                            Ответить
                            • Со множествами? На уровне синтаксиса только перечисление элементов {1,2,4}, всё остальное – конструкторы и методы.
                              Ответить
                            • list (нумерующийся с ноля динаический массив) имеет свой литерал

                              spam = ['eggs', 'bar']
                              print (len(spam)) # 2

                              ренджей (как в руби и перле) как таковых нет
                              Ответить
                              • > нумерующийся с ноля динаический массив
                                Да скорее мутабельный кортеж
                                Ответить
                                • В целом нет: семантически кортеж это упорядоченный набор фиксированной длины, возможно гетерогенный. А лист гомогенный и не фиксированный.

                                  name = ("ivan", "pupkin")[0] #ok
                                  for foo in ("ivan", "pupkin") # не ok

                                  name = ["ivan", "pupkin"][0] #не ok
                                  for user in ["roskomo", "needless"]# ok

                                  но это тонкие материи оче
                                  Ответить
                                  • > лист гомогенный
                                    Ниразу
                                    Ответить
                                  • показать все, что скрытоvanished
                                    Ответить
                                    • К сожалению, большинство людей именно так и думает
                                      Ответить
                                      • показать все, что скрытоvanished
                                        Ответить
                                        • В том что семантика у них разная
                                          https://stackoverflow.com/questions/1708510/python-list-vs-tuple-when-to-use-each?answertab=votes#tab-top

                                          (сам так же апвотнутый коммент к ответу)
                                          Но большинству программистов на семантику срать, они и слов-то таких не знают. Знают только что они ридонли, а другой нет. И так их и используют. Sad, but true
                                          Ответить
                                      • > К сожалению, большинство людей именно так и думает

                                        Вот и я о том же, и они правы. Язык не энфорсит твоих красивых идей, поэтому можно делать что хочется.
                                        В нормальных языках со статической типизацией это энфорсится, и твои рассуждения в них имели бы смысл.
                                        Ответить
                                        • Питон вообще ничего не энфорсит. Плюс это или минус это другой вопрос.
                                          Ничто не мешает тебе обращаться к непубличными символам, например:
                                          from spam import _eggs
                                          _eggs._MyClass()._foo()

                                          Но так делать плохо, правда?

                                          Так же и тут: правила есть, но за ними никто не следит
                                          Ответить
                                    • показать все, что скрытоvanished
                                      Ответить
                                      • > Ещё низя зделать кортеж длины 1. или можно?
                                        ("можно",)
                                        tuple(["можно"])
                                        Ответить
                                        • Ох нихуя себе! Это с какой версии можно? С самой первой?
                                          Ответить
                                          • > Это с какой версии можно? С самой первой?

                                            Не знаю по поводу первой, но уже лет 15 можно. К примеру, статья [1] последний раз обновлялась в 2008 году
                                            [1] https://wiki.python.org/moin/TupleSyntax
                                            Ответить
                                          • Когда мне первый раз показали питон там уже было

                                            pituh = ("kurochka",) везде


                                            Потом я увидел
                                            ptushki = ("kurochka", "tsyplenochek"), и говорю: почему не ["kurochka", "tsyplenochek"] ?

                                            А мне: "ну чтобы не изменить случайно". Тут-то я и понял что немного PHP есть в каждом питоне
                                            Ответить
                                  • Зачем ты приплетаешь сюда понятия из других языков? Мы говорим про питон, ау. Ты говоришь, что список гомогенный (хоть почти всегда это так и есть), а гетерогенный – плохо, что юзать кортеж как ридонли массив – плохо, но на вопрос "чем плохо?" ты вякаешь "семантика разная" и всё, ничего конкретного.

                                    > for foo in ("ivan", "pupkin") # не ok
                                    Что "не ok"? Итерироваться по кортежу, потому что элементы могут быть разного типа? Так проверяй тип, если не уверен что этот кортеж гомогенный. Со списком та же хуйня.

                                    > name = ["ivan", "pupkin"][0] #не ok
                                    Тут что "не ok"? И почему можно с кортежом? Ты уверен, что если функция возвращает кортеж, что он ненулевой длины?
                                    Ответить
                                    • даже в хачкеле только ленивый не хочет итерироваться по кортежу с элементами разного типа, это называется Generic programming.
                                      Ответить
                                    • >>ничего конкретного.
                                      я тебе ссылку дал сверху, поди почитай до просветления
                                      https://stackoverflow.com/questions/1708510/python-list-vs-tuple-when-to-use-each?answertab=votes#tab-top


                                      И тут еще
                                      [quote]
                                      Though tuples may seem similar to lists, they are often used in different situations and for different purposes. Tuples are immutable, and usually contain a heterogeneous sequence of elements that are accessed via unpacking (see later in this section) or indexing (or even by attribute in the case of namedtuples). Lists are mutable, and their elements are usually homogeneous and are accessed by iterating over the list.
                                      [/quote]
                                      https://docs.python.org/2/tutorial/datastructures.html#tuples-and-sequences
                                      Ответить
                                      • Опять же, ты не ответил на вопрос "почему нельзя использовать кортеж как ридонли массив и почему гетерогенный список – плохо". Список обычно гомогенный и изменяемый, кортеж обычно нет. Обычно – не значит, что по-другому обязательно плохо.
                                        Ответить
                                        • У любого инструмента есть правильное использование ("по назначению"). Правильным ("по назначению') я называю такое использование, которое задумывал его создатель. Однако у многих инструментов есть какие-то свойства, которые позволяют использовать их не по назначению (например утюгом можно угнетать капусту потому что он тяжелый).

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

                                          Например следующий кортеж указывает на точку в двумерном пространстве: (22, 34).

                                          Тут 22 это координата по оси X, а 34 по Y. Не смотря на то, что это два числа, у них разный смысл (та сама ситуция, когда тип один, а семантика разная)

                                          Если это понять, то становится так же понятно почему не имеет смысла добавлять что-то в кортеж: он (как структура) имеет изначально известное количество мест, и за каждым закреплен какой-то смысл.
                                          А вот в стек, очередь и вектор добавлять можно.

                                          Разумеется, можно использовать туплу как "рид-онли-лист" пытаясь с ее помощью компенсировать отсутствие его в питоне, но это использование не по назначению (см утюг), да к тому же зачем искуственно тащить в язык "неизменяемый" объект, если его там нет изначально? не лучше тогда сразу взять язык с ридонли листом?

                                          Вот если бы у питона вместо туплы были сразу же структуры (привет, руби) то насколько легче было бы жить
                                          Ответить
                                          • показать все, что скрытоvanished
                                            Ответить
                                            • Согласен, что у вектора название в программировании неудачное.

                                              Про остальное то что думаешь?
                                              Мне правда интересно, кто-то кроме меня, Supamee и Izkata читал "datastructures.html", или все правда думают что кортеж это ридонли лист?
                                              Ответить
                                              • > все правда думают что кортеж это ридонли лист?

                                                Честно говоря, ты люто задрал своей «семантикой». Семантика задаётся либо рефересной имплементацией, либо спекой.
                                                Если в спеке написано "так делать низя" или спеки нет и референсная реализация этого не позволяет, вот это значит, что так делать низя.

                                                Давай откроем референс бидона.
                                                https://docs.python.org/3/reference/datamodel.html#objects-values-and-types
                                                Спека нигде никаких семантик не упоминает, кроме иммутабельности никаких отличий от списка не упоминается. Референсная реализация CPython, как ты понимаешь, тоже никаких дополнительных ограничений не налагает.

                                                Более того, есть куча примеров, когда тюплы используются в спеке просто как иммутабельные списки, вот например

                                                __bases__ is a tuple containing the base classes, in the order of their occurrence in the base class list
                                                Ответить
                                                • показать все, что скрытоvanished
                                                  Ответить
                                                  • Сёма, не вмешивайся когда взрослые разговаривают
                                                    Ответить
                                                • Блядь, как всё сложно. "Кортежи", "семантика", "иммутабельные списки", "спека"...
                                                  Ответить
                                                • В питоне все задается человекочитаемым текстом, и технически ничего не запрещается.

                                                  Полистай на две строчки вверх, или давай я тебе скопирую:

                                                  [quote]
                                                  Though tuples may seem similar to lists, they are often used in different situations and for different purposes. Tuples are immutable, and usually contain a heterogeneous sequence of elements that are accessed via unpacking (see later in this section) or indexing (or even by attribute in the case of namedtuples). Lists are mutable, and their elements are usually homogeneous and are accessed by iterating over the list.
                                                  [/quote]

                                                  https://docs.python.org/2/tutorial/datastructures.html#tuples-and-sequences
                                                  Ответить
                                                  • Да мне насрать на этот туториал и на того, кто его написал. В референсе написано, что тюплы в питоне ходят и крякают как иммутабельные списки, значит, это иммутабельные списки.

                                                    Если в вашем влажном воображении как-то по-другому, это ваши проблемы, обратитесь к специалисту.
                                                    Ответить
                                                    • Тебе насрать на туторил по питону на сайте python.org? Правда?
                                                      Ответить
                                                      • показать все, что скрытоvanished
                                                        Ответить
                                                      • > Тебе насрать на туторил по питону на сайте python.org? Правда?

                                                        Именно. Почему меня должен волновать туториал? Ты ещё скажи, что меня должно беспокоить, что написано в туториале по C++ на сайте cplusplus.com.

                                                        > they are often used in different situations and for different purposes.
                                                        > usually contain

                                                        Никакой конкретики, никаких референсов. Тот, кто писал туториал, предпочитает такую интерпретацию, это его право. Совершенно непонятно, почему чьё-то икспертное мнение побуждает тебя бегать по форумам и доказывать, что все вокруг неправы.

                                                        читани спекца.
                                                        Ответить
                                                        • Я не знаю какое отношение имеет сайт cplusplus.com к комитету по стандартам, а сайт python.org к питону имеет самое прямое отношение, и обычно если там что-то написано значит Гвидо именно это и имел ввиду.

                                                          Приведенный тобою референс отписывает техническую реализацию, а в туториале на python.org описывается как этим пользоваться.

                                                          В питоне ничего практически не форсится интерпретатором, но есть правила использования и обычно им следуют. Например, начинающиеся с подчеркивания символы не публичны (хотя никто не мешает к ним обращаться). Например, тупла это не "рид онли лист", хотя никто не мешает его так использовать.

                                                          В других языках тоже можно "обмануть" компилятор.

                                                          В сях можно скастить указатель на структуру с char полями в указатель на массив чаров и интерироваться по нему. Следуя твоей логике "структура в сях это массив" (привет, царь!) потому что это работает.

                                                          В HTML/CSS можно навесить background на таг strong, сделать его блочным, квадратным, и использовать в качестве кнопки.
                                                          Однако семантика у него "выделять важную часть текста", даже не смотря на то, что ее можно легко переопределить.

                                                          В джаве можно дергать рефреклисей приватные методы, и сделать вывод что контроля видимости в джаве нет, потому что ну вот же: работает!

                                                          Если что-то "просто работает" и идет в разрез с докой на основном сайте, то это хак.
                                                          Ответить
                                                          • > Следуя твоей логике "структура в сях это массив" (привет, царь!) потому что это работает.

                                                            Следуя моей логике этого делать нельзя, поскольку по стандарту такой код содержит Undefined Behavior.

                                                            > В джаве можно дергать рефреклисей приватные методы, и сделать вывод что контроля видимости в джаве нет, потому что ну вот же: работает!

                                                            Ты не поверишь, но фреймворки зачастую именно это и делают! При правильном использовании это полезно, и спека этого не запрещает.

                                                            > сделать вывод что контроля видимости в джаве нет

                                                            Есть, если выставить правильный секьюрити менеджер через setSecurityManager.
                                                            Ответить
                                                            • >>такой код содержит Undefined Behavior.
                                                              Почему? Если структура явно выровнена то почему нельзя кастить ее в array?
                                                              Как же кастят в структуру пришедшие из аппаратуры или по сети данные, если известно что это массив N байт с определенными значениями?

                                                              >> но фреймворки зачастую именно это и делают
                                                              Я в курсе, спасибо, однако речь была о том, что если в джаве можно рефлексией залезть куда угодно, то это не значит что в джаве нет контроля доступа.

                                                              Если в питоне можно туплой заменить лист, это не значит что тупла и лист это одно и тоже.
                                                              Ответить
                                                              • > Если в питоне можно туплой заменить лист, это не значит что тупла и лист это одно и тоже.

                                                                Разумеется это не одно и тоже. Тюпл иммутабельный вообще-то, а список — нет.
                                                                Ответить
                                                                • >>Есть, если выставить правильный секьюрити менеджер через setSecurityManager.


                                                                  Понятно. В джаве нету контроля видимости, пока не выставлен SecurityManager

                                                                  Вы все цари
                                                                  Ответить
                                                  • показать все, что скрытоvanished
                                                    Ответить
                                          • Плохо использовать кортежи для векторов, матриц, списков значений если мне не нужны ебанические ошибки с изменяемыми объектами? Плохо юзать списки списков как примитивные деревья? Плохо ющать список как стек?
                                            Ответить
                                    • показать все, что скрытоvanished
                                      Ответить
                        • "PHP"?
                          Ответить
                          • А нельзя ли что-нибудь занятное из аватарок сколотить? (по аналогии с модными некогда составными изображениями из иконок последних фотографий в соцсетях)
                            Ответить
                            • Можно полностью белую картинку, чтобы слиться с фоном.
                              Ответить
                            • Есть ещё приколы с картинками, когда на разных размерах разное изображение. Не знаю, с граватаром можно-ли.
                              Ответить
                              • Я, честно говоря, рассчитывал на лесенку комментариев, из аватарок авторов которых собиралось бы какое-нибудь слово (буквы на аватарках) или картинка (тут сложнее).
                                Ответить
                                • Не считает ли сударь грехом созерцание недостойного?
                                  Ответить
                                  • Не считает, если это недостойное появилось перед глазами созерцающего без его желания, неожиданно и в подобных ситуациях, когда повлияли внешние силы.
                                    Ответить
                                    • @Я, честно говоря, рассчитывал на лесенку комментариев, из аватарок авторов которых собиралось бы какое-нибудь слово (буквы на аватарках) или картинка (тут сложнее).

                                      Invalid memory access

                                      То есть, ты осознаёшь всю незаконность сего деяния и готов взять грех на душу?
                                      Ответить
                      • показать все, что скрытоvanished
                        Ответить
                • показать все, что скрытоvanished
                  Ответить
    • Переведи на "PHP".
      Ответить
    • Стрелка3
      Ответить
    • "JavaScript" - для быдла.
      Факт.

      Отправлено с помощью "JavaScript".
      Ответить

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